Viết chương trình cho giáo viên dựa trên mô hình Client-Server gồm các modul

25 780 2
Viết chương trình cho giáo viên dựa trên mô hình Client-Server gồm các modul

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Viết chương trình cho giáo viên dựa trên mô hình Client-Server gồm các modul

Luận văn tốt nghiệp Phân tích đề tài Trang 53 Phần : Phân Tích Đề Tài I Nội dung đề tài Viết chương trình cho giáo viên dựa mô hình Client – Server gồm modul • Soạn câu hỏi trắc nghiệm • Quản lý ngân hàng đề soạn đề thi • Trắc nghiệm quản lí thông tin người thi II Yêu cầu đề tài Dựa vào nội dung đề tài đặt ,chúng ta cần xây dựng chương trình ứng dụng dựa yêu cầu sau : Xây dựng chương trình theo mô hình Client – Server, toàn liệu liên quan đến hệ thống lưu trữ Server, việc truy cập truyền liệu thực thông qua mạng nhằm phục vụ cho việc kiểm tra trắc nghiệm, cập nhật sở liệu Hệ thống ngân hàng đề thi trắc nghiệm quản lí, lưu trữ tất câu thi, đề thi giáo viên để kiểm tra trắc nghiệm, đồng thời hệ thống quản lí, lưu trữ nhóm người sử dụng kết thi sinh viên Mỗi đề thi có mức kiểm tra khác nhau, phù hợp với trình độ người sử dụng, nội dung muốn kiểm tra hình thức đề Thông qua trình duyệt Web, người sử dụng hệ thống ngân hàng đề thi trắc nghiệm thực thao tác phù hợp với chức mà hệ th ống ngân hàng đề thi trắc nghiệm cho phép Người sử dụng, tùy theo mức độ cho phép hệ thống ngân hàng đề thi trắc nghiệm mà có quyền thao tác hệ thống khác Đối tượng sử dụng hệ thống ngân hàng đề thi trắc nghiệm gồm : Người quản trị chung , Giáo viên , Sinh viên III Giải yêu cầu đề tài Vì chương trình xây dựng theo mô hình Client – Server ,việc truy xuất, truyền liệu qua mạng thông trình duyệt web Do chương trình ta có liên quan đến vấn đề sau Networking Mạng máy tính tập hợp máy tính nối với đường truyền vật lý theo kiến trúc Luận văn tốt nghiệp Phân tích đề tài Trang 54 Trong thực tế máy tính mạng chạy hệ điều hành khác phần cứng khác Do để nói chuyện với nhau, trình cần phải dùng chung phương thức giao tiếp (protocol) Tổ chức ISO (International Standards Organization) đưa mô hình tham khảo OSI ( Open Systems Interconnection) dùng để phân lớp kiến trúc mạng Theo mô hình OSI, thông tin muốn gửi hay nhận qua mạng phải qua lớp Mỗi lớp có chức khác cung cấp interface để lớp phía sử dụng dịch vụ mà lớp cung cấp 1.1.Mô hình mạng OSI Hình II.1.1 Application layer : chứa dịch vụ phục vụ cho người dùng truyền nhận file hay email … Presentation layer : chứa dịch vụ thao tác liệu nén, giải nén … Cấp dịch vụ thông tin riêng noù APPLICATION LAYER PRESENTATION LAYER SESSION LAYER TRANSPORT LAYER NETWORK LAYER DATALINK LAYER PHYSICAL LAYER Sending Application Receiver Application SESSION LAYER PRESENTATION LAYER APPLICATION LAYER TRANSPORT LAYER NETWORK LAYER DATALINK LAYER PHYSICAL LAYER Luận văn tốt nghiệp Phân tích đề tài Trang 55 Session layer : chứa dịch vụ cho phép trao đổi thông tin trình, tạo kết thúc kết nối trình máy khác Transport layer : chứa dịch vụ tìm sửa lỗi nhằm bảo đảm tính đắn liệu nhận Network layer : quản lý việc kết nối mạng liên quan đến địa máy tính gửi máy tính nhận tắc ngẽn giao thông mạng Datalink layer : bảo đảm gói liệu gửi thông qua mạng vật lý Physical layer : phục vụ cho việc gửi liệu bit thô thông qua kênh truyền Do đặc tính mô hình OSI, liệu gửi phải qua tất 14 cấp để đến chương trình nhận Ở cấp, liệu bị trễ khoảng thời gian Điều làm giảm hiệu suất mạng Mô hình TPC/IP có ưu điểm sử dụng rộng rãi 1.2.Mô hình mạng TCP/IP Hình II.1.2 Để đảm bảo việc truy cập, truyền liệu mạng không mát, gói liệu đến đích phải theo thứ tự gởi máy tính chạy mạng Internet truyền thông với dùng protocol TCP, UDP Do ta sử dụng mô hình mạng TCP/IP gồm bốn lớp mô tả hình II.1.2 Application layer : chứa ứng dụng có sử dụng mạng Lớp tương ứng với hai lớp (application presentation layer) mô hình OSI Application Layer HTTP,FTP,Telnet, SMTP Transport Layer TCP/IP,UDP Physical Layer EthernetX.25, Token Ring Network Layer IP Receiving Data Sending Data Luaän văn tốt nghiệp Phân tích đề tài Trang 56 Transport layer : cung cấp dịch vụ truyền nhận liệu trình với Các trình trao đổi thông tin với thông qua địa máy tính gửi/ nhận cổng thông tin Cấp tương ứng với cấp (session transport layer) mô hình OSI Network layer : đảm nhận việc xác định, tìm đường phân phối gói thông tin tới địa đích Network layer mô hình TCP/IP tương ứng với hai lớp network datalink mô hình OSI Physical layer : sử dụng giao tiếp chuẩn có Ethernet, Tokenking,… để phục vụ cho việc gửi nhận liệu Các thành phần liên quan đến mạng • Host : máy tính riêng lẻ mạng Mỗi host mạng TCP/IP có địa IP (IP number) • Hostname : Đó tên tượng trưng ánh xạ vào IP number Một vài phương thức tồn biểu diễn cho ánh xạ đó, DNS (Domain Name Service) Sun's NIS (Network Information Service) • IETF : Internet Engineering Task Force nhóm chịu trách nhiệm cho việc trì chuẫn Internet định nghóa chuẫn • internet : mạng nhiều mạng Khi viết chữ in hoa (Internet), quy chiếu đến toàn mạng có mối liên hệ với nhiều mạng • IP number : địa cho host Internet Nó biểu diễn số nguyên 32bits • packet : thông điệp riêng lẻ gởi mạng Đôi packet quy chiếu đến datagram, giới hạn cũ luôn quy chiếu đến liệu lớp mạng sau quy chiếu thông điệp đến lớp cao • protocol : Tập hợp định dạng liệu thông điệp sử dụng để chuyển thông tin Những thực thể mạng khác phải protocol theo trật tự để thực thể mạng khác hiểu Luận văn tốt nghiệp Phân tích đề tài Trang 57 • socket : truyền thông endpoint Trong mô hình TCP/IP socket thường xác định cặp trùng khớp địa IP nguồn, số port địa IP đích, số port • router : Một host mà biết đến package trả mạng khác Một router trở thành điều đơn giản máy với hai giao diện mạng (mỗi mạng vật lý khác nhau) • Port number: nằm khoảng 0-65535(vì port biểu diễn số nguyên 16bits) Những port nằm khoảng 0-1023 port dành riêng cho dịch vụ quen thuộc HTTP, FTP, dịch hệ thống, không nên dùng port ứng dụng Khi viết chương trình java truyền qua mạng điều có nghóa lập trình lớp Application Chúng ta cần quan tâm tới protocol TCP UDP … Mà dùng lớp package java.net Các lớp cung cấp việc truyền thông qua mạng độc lập với hệ thống Tuy nhiên cần hiểu rõ khác biệt TCP UDP để xác định rõ lớp thư viện java mà sử dụng Khi muốn hai chương trình truyền liệu cho cách đáng tin cậy chúng phải thiết lập connection gữi liệu qua lại thông qua connection • TCP protocol dựa connection cung cấp dataflow hai máy tính đảm bảo data gữi từ đầu connection tới đầu không mát thứ tự (nếu có lỗi thông báo) Những ứng dụng yêu cầu kênh truyền point-to-point đáng tin cậy dùng TCP HyperText Transfer Protocol (HTTP), File Transfer Protocol (ftp) Telnet(telnet)là ứng dụng đòi hỏi hênh truyền đáng tin cậy, thứ tự gữi nhận phải đảm bảo điều kiện buộc phải có ứng dụng Khi dùng HTTP để đọc từ URL(Uniform Resource Location) liệu cần phải nhận theo thứ tự mà gữi không thứ bị đảo lộn • UDP protocol cung cấp việc truyền nhận data không đảm bảo hai ứng dụng mạng UDP không dựa connection TCP UDP gữi package độc lập với gọi datagram từ ứng dụng tới ứng dụng Việc gữi datagram giống việc Luận văn tốt nghiệp Phân tích đề tài Trang 58 gữi thư thông qua bưu điện Các package đến đích không theo thứ tự, không đảm bảo message độc lập với Do ta định nghóa : UDP protocol gữi package độc lập gọi datagram từ máy tới máy khác, không đảm bảo data đến thành công UDP không dựa connection TCP Một máy tính nối mạng connection vật lý mạng Tất liệu gữi cho máy tính thông qua connection Tuy nhiên, liệu gữi cho ứng dụng khác máy Do làm cách để máy tính biết ứng dụng nhận liệu gữi đến? Điều giải thông qua việc sử dụng port, ứng dụng mạng có port tương ứng Dữ liệu truyền qua mạng có kèm theo thông tin địa nhằm xác định máy tính vàport đích Mỗi máy tính xác định địa IP 32bits, IP protocol dùng địa để phân phát liệu cho máy Port xác định số 16bits Các protocol TCP UDP dùng port number để phân phát liệu tới cho ứng dụng Trong việc truyền nhận data dựa connection, ứng dụng thiết lập connection với ứng dụng khác cách gắn socket cho port number Do có hai ứng dụng dùng chung port Thông qua lớp package java.net ngôn ngữ Java, chương trình viết Java dùng TCP hay UDP để truyền nhận data qua mạng Trong package java.net có URL, URLConnection, Socket ServerSocket dùng TCP lớp DatagramPackage, DatagramServer dùng UDP Việc sử dụng khả mạng Java support dể dàng so với C C++ Applet nhúng file HTML Để chạy chương trình Applet qua mạng, trước hết cần load trang HTML máy cục Các Applet nhúng trang HTML thông qua phần khai báo APPLET Việc load file ảnh file audio thực thông qua lớp URL package java.net.URL: Uniform Resource Location địa tài nguyên mạng Để load file ảnh từ mạng, chương trình Java cần tạo URL chứa địa tới file ảnh đó, sau dùng số hàm cần thiết để connect truy xuất file ảnh Điểm nỗi bật networking Java mang lại tính hữu dụng dể sử dụng, điều thể qua package java.net lớp thư viện java Các mô hình sở liệu Luận văn tốt nghiệp Phân tích đề tài Trang 59 Nhìn chung ứng dụng sở liệu bao gồm phần : Thành phần xử lý ứng dụng (Application processing components) Thành phần phần mềm sở liệu (Database software components) • Bản thân sở liệu (The database itself) Thông thường có mô hình kiến trúc dựa cấu hình phân tán truy nhập liệu hệ thống máy tính Client/Server : Mô hình sở liệu tập trung (Centralized database model) Mô hình sở liệu theo kiểu file-server(File – server database model) Mô hình xử lý phần sở liệu (Database extract processing model) Mô hình sở liệu Client/Server (Clent/Server database model) Mô hình sở liệu phân tán (Distributed database model) 2.1.Mô hình sở liệu tập trung (Centralized database model): Trong mô hình thành phần xử lý ứng dụng, phần mềm sở liệu thân sở liệu xử lý Ví dụ người dùng máy tính cá nhân chạy chương trình ứng dụng có sử dụng phần mềm sở liệu Oracle để truy nhập tới sở liệu nằm điã cứng máy tính cá nhân Từ thành phần ứng dụng, phần mềm sở liệu thân sở liệu nằm máy tính ứng dụng thích hợp với mô hình tập trung Hầu hết công việc xử lý luồng thông tin thực nhiều tổ chức mà phù hợp với mô hình tập trung Ví dụ xử lý mainframe chạy phần mềm sở liệu IMS DB2 IBM cung cấp cho trạm làm việc vị trí phân tán truy cập nhanh chóng tới sở liệu trung tâm Tuy nhiện nhiều hệ thống vậy, thành phần ứng dụng sở liệu thực máy mainframe cấu hình tương tự mô hình tập trung 2.2.Mô hình sở liệu theo kiểu file – server( File – server database model) : Trong mô hình sở liệu theo kiểu file – server thành phần ứng dụng phần mềm sở liệu hệ thống máy tính file vật lý tạo nên sở liệu nằm hệ thống máy tính khác Một cấu thường dùng môi trường cục bộ, hay nhiều hệ thống máy tính đóng vai trò server, lưu file liệu cho hệ thống máy tính khác thâm nhập tới Trong môi trường file – server, phần mềm mạng Luận văn tốt nghiệp Phân tích đề tài Trang 60 thi hành làm cho phần mềm ứng dụng phần mềm sở liệu hệ thống người dùng cuối coi file sở liệu file server thực máy tính họ Mô hình file server giống với mô hình tập trung Các file sở liệu nằm máy khác vơí thành phần ứng dụng phần mềm sở liệu ; nhiên thành pphần ứng dụng phần mềm sở liệu có thiết kế để vận hành môi trường tạp trung Thực chất phần mềm mạng làm cho phần mềm ứng dụng phần mềm sở liệu tưởng chúng truy xuất sở liệu môi trường cục Một nôi trường phức tạp mô hình tập trung phần mềm mạng phải thực chế đồng thời cho phép nhiều người sử dụng cuối truy nhập vào sở liệu 2.3.Mô hình xử lý phần sở liệu (Database extract processing model) : Trong mô hình khác sở liệu xa truy cập phần mềm sở liệu, gọi xử lý liệu phần Với mô hình này, người sử dụng máy tính cá nhân kết nối với hệ thống máy tính xa nơi có liệu mong muốn Người sử dụng sau tác động trực tiếp đến phần mềm chạy máy xa tạo yêu cầu để lấy liệu từ sở liệu Người sử dụng chuyển liệu từ máy tính xa máy tính vào điã cứng thực việc chép phần mềm sở liệu máy cá nhân Với cách tiếp cận này, người sử dụng phải biết chắn liệu nằm đâu làm để truy nhập lấy liệu từ máy tính xa Phần mềm ứng dụng kèm cần phải có hệ thống máy tính để kiểm soát để kiểm soát truy cập chuyển liệu hệ thống Tuy nhiên, phần mềm sở liệu chạy máy không cần biết việc xử lý sở liệu từ xa diễn người sử dụng tác động tới chúng cách độc lập 2.4.Mô hình sở liệu Client/Server (Client/Server database model) : Trong mô hình sở liệu Client/Server , sở liệu nằm máy khác với máy có thành phần xử lý ứng dụng Nhưng phần mềm sở liệu tách hệ thống Client chạy chương trình ứng dụng hệ thống Server lưu trữ liệu Luận văn tốt nghiệp Phân tích đề tài Trang 61 Trong mô hình này, thành phần xử lý ứng dụng hệ thống Client đưa yêu cầu cho phần mềm sở liệu máy client, phần mềm kết nối với phần mềm sở liệu chạy Server Phần mềm sở liệu Server truy cập vào sở liệu gửi trả kết cho máy Client Mới nhìn, mô hình sở liệu Client/Server giống mô hình file -server, nhiên mô hình Client/Server có nhiều thuận lợi mô hình file-server Với mô hình fileserver, thông tin gắn với truy cập sở liệu vật lý phải chạy toàn mạng Một giao tác yêu cầu nhiều truy cập liệu gây tắc nghẽn lưu lượng truyền mạng Giả sữ người dùng cuối tạo query để lấy liệu tổng số, yêu cầu đòi hỏi lấy liệu từ 1000 ghi, với cách tiếp cận file-server nội dung tất 1000 ghi phải đưa lên mạng, phần mềm sở liệu chạy máy người sử dụng phải truy cập ghi để thoã mãn yêu cầu người sử dụng Với cách tiếp cận sở liệu Client/Server, có query khởi động ban đầu kết cuối đưa lên mạng, phần mềm sở liệu chạy máy lưu giữ sở liệu truy nhập ghi cần thiết, xử lý chúng gọi thủ tục cần thiết để đưa kết cuối Trong mô hình sở liệu Client/Server, thường nói đến phần mềm front-end software back-end software Front-end software chạy máy tính cá nhân workstation đáp ứng yêu cầu đơn lẽ riêng biệt, phần mềm đóng vai trò Client ứng dụng sở liệu Client/Server thực chức hướng tới nhu cầu người dùng cuối Phần mềm Front-end software thường chia thành loại sau : • End user database software : Phần mềm sở liệu thực người sử dụng cuối hệ thống họ để truy nhập sở liệu cục nhỏ kết nối với sở liệu lớn sở liệu Server • Simple query and reporting software : Phần mềm thiết kế để cung cấp công cụ dễ dùng việc lấy liệu từ sở liệu tạo báo cáo đơn giản từ sở liệu co ù • Data analysis software : Phần mềm cung cấp hàm tìm kiếm, khôi phục, chúng cung cấp phân tích phức tạp cho người dủng Luận văn tốt nghiệp Phân tích đề tài Trang 62 • Application development tools : Các công cụ cung cấp khả ngôn ngữ mà nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng ứng dụng sở liệu họ Các công cụ bao gồm công cụ thông dịch, biên dịch đơn đến công cụ CASE (Computer Aided Software Engineering ), chúng tự động tất bước trình phát triển ứng dụng sinh chương trình cho ứng dụng sở liệu • Database administration Tools : Các công cụ cho phép người quản trị sở liệu sử dụng máy tính cá nhân trạm làm việc để thực việc quản trị sở liệu định nghóa sở liệu, thực lưu trữ hay phục hồi Back-end software : Phần mềm bao gồm phần mềm sở liệu Client/ Server phần mề m mạng chạy máy đóng vai trò Server sở liệu 2.5.Distributed database model (Mô hình sở liệu phân tán) : Cả hai mô hình File – Server Client/Server giả định liệu nằm xử lý chương trình ứng dụng truy nập liệu nằm máy khác, mô hình sở liệu phân tán lại giả định thân sở liệu có nhiều máy khác Qua mô hình sở liệu trên, dễ thấy mô hình Clie nt/Server mô hình phù hợp yêu cầu đặt Vấn đề thực mô hình ngôn ngữ thực Các ngôn ngữ lập trình xây dựng giao diện đẹp thuận tiện thường sở liệu tốt kèm, thường hạn chế khả sử dụng mạng diện rộng Các phần mềm sở liệu sử dụng mô hình Client/Server thường đòi hỏi có tính chuyên nghiệp cao Và hầu hết biện pháp có nhược diểm phải có cài đặt máy đơn trước móc nối với Server Ngôn ngữ Java đưa hướng giải đơn giản vấn đề Với việc thực thi Applet nhúng trang Web, không cần có cài đặt mà sữ dụng tính chương trình (Với điều kiện có trình duyệt Web máy tính nối mạng) Do tính mạng cung cấp sẵn nên Java dùng mạng Internet dễ dàng Với tính độc lập nền, người sử dụng e ngại việc phần mềm không tương thích với hệ điều hành Đặc biệt Java kết nối với hầu hết sở liệu chuẩn hãng phần mềm thông qua JDBC, sở liệu hệ thống xây dựng hệ sở liệu chuẩn, chẳng hạn Oracle để quản lý liệu cách chặt chẽ (Ở dùng sở liệu Ms Access môi trường Window Luận văn tốt nghiệp Phân tích đề tài Trang 63 95) Mô hình quản lý ngân hàng đề thi trắc nghiệm xây dựng dựa theo mô hình Threetier hình II.2.5 Client chương trình chạy dạng applet thông qua trình duyệt web để kết nối gởi yêu cầu đến server Server chương trình chạy dạng application, có nhiệm vụ lắng nghe, phục vụ yêu cầu từ client, trả kết quảvề cho client cầu nối trung gian tới sở liệu Database Server phần sở liệu hệ thống dùng để lưu trữ tất liệu liên quan đến hệ thống Ta sử dụng Access để tạo sở liệu kết nối với server Tất liệu lưu máy Server (máy chủ), việc kết nối, truy xuất sở liệu thông qua JDBC Sử dụng JDBC để tạo truy xuất sở liệu 3.1 Thế sở liệu (Database)? Security login Encryption CLIENT Encryption CLIENT Encryption CLIENT Encryption Database Server Application Server Hình II.2.5 Three-tier system structure Luận văn tốt nghiệp Phân tích đề tài Trang 64 Cơ sở liệu tập hợp liệu có liên hệ với tổ chức lưu trữ lại thiết bị trữ tin Nó cho phép nhiều người sử dụng, nhiều chương trình ứng dụng với mục đích khác đồng thời truy cập khai thác 3.2 Lấy liệu từ sở liệu SQL (Structure Query Language) ngôn ngữ chuẩn xử lý liệu ANSI ISO thừa nhận Hiện hầu hết hệ sở liệu hổ trợ SQL SQL l ngôn ngữ phi thủ tục (non procedure language) : ta cần yêu cầu máy tính đưa mà không cần biết máy tính làm Người sử dụng cần đưa lệnh SQL sau hệ sở liệu phân tích, xử lý lệnh trả kết người sử dụng (người sử dụng không cần lập trình) Vì SQL trợ giúp đắt lực cho việc xuất liệu, thống kê, tổng hợp, hay nói khác SQL làm tăng khả giao tiếp người máy SQL chuẩn thường cung cấp thêm số tính khác, SQL giống tất hệ sử liệu hệ sở liệu có điểm riêng cho SQL 3.3 ODBC (Object DataBase Connectivity) ODBC có nhiệm vụ trả lời cho kết nối tới sở liệu Window phát hành năm 1992 Microsoft ODBC cho phép phát triển phiên khác phổ biến năm 1994 nhanh ổn định hơ n phiên 32 bit Thêm vào đó, ODBC bắt đầu di chuyển khác Window trở nên hoàn toàn thâm nhập vào PC giới workstation ODBC driver cung cấp gần database vendor chủ yếu Nhiều database vendor xác minh ODBC "alternate interface" cho tiêu chuẩn chúng chương trình ODBC không thông thường Nó giống chương trình Window khác, gồm có yếu điểm chọn lựa làm cho Dữ liệu vào Dữ liệu Dữ liệu lưu trữ Xử lý Hình Luận văn tốt nghiệp Phân tích đề tài Trang 65 khó học Cuối ODBC tiêu chuẩn điều khiển độc lập Nó phát triển tiến hóa Microsoft, đưa môi trường phần mềm cạnh tranh cao làm việc làm cho tương lai mạnh dự đoán 3.4 JDBC ? JDBC object-oriented bao bọc phát thảo lại ODBC API để dễ cho việc học sử dụng cho phép ta viết code độc lập để chất vấn (query) thao tác sở liệu Mục đích JDBC kết nối chặt chẽ chương trình Java với sở liệu Java định nghóa hướng cho việc nhận liệu application applet driver JDBC cấp thấp tiến hành việc chuyển sở liệu riêng biệt đến giao diện JDBC cấp cao hơn, giao diện sử dụng người phát triển không cần lo lắng cú pháp sở liệu đặc trưng tiến hành kết nối query sở liệu khác Những lớp (class) JDBC nhóm gói java.sql (java.sql package) Nhưng thông thường phần phát triển phần mềm chuẩn Các hướng có JDBC driver cần thiết cho việc kết nối sở liệu mà không đòi hỏi cài đặt client Một driver JDBC nạp xuống applet 3.5 Cấu trúc JDBC Có lý để tách rời lập trình cấp thấp từ giao diện ứng dụng cấp cao Lập trình cấp thấp JDBC Driver JDBC uyển chuyển, tài nguyên liệu cục server cở sở liệu từ xa Việc thực thi kết nối thực tài nguyên liệu/ sở liệu cho bên JDBC Driver Cấu trúc JDBC bao gồm khái niệm sau : • Mục tiêu JDBC giao tiếp độc lập DBMS, “cơ cấu truy xuất sở liệu SQL chung” giao tiếp giống cho tất tài nguyên liệu khác • Người lập trình viết sở liệu sử dụng JDBC, chương trình truy xuất tài nguyên liệu Cấu trúc JDBC hình Luận văn tốt nghiệp Phân tích đề tài Trang 66 Lớp DriverManager sử dụng để mở kết nối tới sở liệu qua JDBC driver, driver phải đăng ký với DriverManger trước việc kết nối hình thành Khi kết nối gắn vào, DriverManager lựa chọn từ danh sách driver tương thích với kiểu xác sở liệu kết nối Sau việc kết nối hình thành, việc gọi query lấy kết làm trực tiếp với JDBC driver JDBC driver phải thực thi lớp để xử lý hàm cho sở liệu riêng biệt, đặc điểm kỹ thuật JDBC đảm bảo driver tiến hành dự kiến Điều cốt yếu người phát triển có JDBC driver cho sở liệu không cần thiết phải lo lắng việc phải thay đổi đoạn mã cho chương trình Java kiểu sở liệu khác sử dụng ( giả sử JDBC driver cho sở liệu khác có sẵn) Điều đặc biệt hữu dụng cho sở liệu phân bố 3.6 ODBC JDBC ODBC mô hình JDBC mô tả hình Java Aplication JDBC API JDBC Driver Manager JDBC Driver JDBC Driver DBMS DBMS Hình Luận văn tốt nghiệp Phân tích đề tài Trang 67 ODBC JDBC chia sẻ nguồn gốc chung : hai tảng X/OPEN gọi cấp giao tiếp cho SQL Mặc dù JDBC driver bật cho nhiều sở liệu, viết chương trình Java sử dụng ODBC driver có Trên thực tế Javasoft Intersolv có viết Java driver – cầu nối JDBC – ODBC – cho phép người phát triển sử dụng ODBC driver có chương trình Java Hình minh họa vị trí JDBC – ODBC Brigde kiến trúc toàn thể JDBC Tuy nhiên JDBC – ODBC Brigde đòi hỏi cài đặt client, hay nơi mà chương trình Java thực chạy, Bridge phải gọi phương thức nội để chuyển từ ODBC sang JDBC Chỉ có Java driver 100% download thông qua mạng với Java applet, không cần cài đặt lại Nhiệm vụ ODBC driver kiểu tương tự JDBC driver Trên thực tế JDBC – ODBC Brigde thật JDBC driver chuyển đến từ ODBC cấp thấp Khi JDBC driver cho sở liệu sẵn có, dễ dàng bật từ ODBC driver đến JDBC driver với vài thay đổi, có thay đổi đoạn mã chương trình Java 3.7 Các kiểu JDBC driver Java Aplication JDBC API JDBC Driver Manager DBMS DBMS JDBC /ODBC Bridge ODBC Driver Manager ODBC ODBC Hình Luận văn tốt nghiệp Phân tích đề tài Trang 68 Có xác bốn phương pháp cho chương trình Java kết nối tới sở liệu : • JDBC-ODBC bridge ODBC : trường hợp này, giải pháp cục từ JDBC driver bridge phải diện máy user Đây nguyên tắc giải pháp tạm thời • Mã tự nhiên (Native code) với Java driver : cách thay ODBC cầu nối với giải pháp cục : native code cho gọi Java • JDBC-Net pure Java driver : Java-driver-translated JDBC gọi tới protocol độc lập, chuyển tới Server Server kết nối tới số sở liệu Phương thức cho phép ta gọi Server từ applet máy Client tavà trả kết applet • Native protocol Java driver : Java driver chuyển đổi trực tiếp tới protocol cho sở liệu thực việc gọi Phương thức sử dụng hệ thống hiển thị kết Web browser applet Nếu ta muốn viết code để thao tác sở liệu PC client giống dBase, FoxPro, hay access, ta sử dụng phương thức thứ vàcó tất code máy user Rộng hơn, sản phẩm sở liệu client-server IBM, DB2 cung cấp driver cấp cho ta 3.8 Sử dụng JDBC Driver Muốn sử dụng JDBC driver, phải có JDBC driver (vì chúng không kèm với gói có Java API ) Tiếp theo muốn sử dụng ODBC, đừng quên cần ODBC driver Nếu server sở liệu, muốn sử dụng JDBC, sử dụng gói ODBC driver với Microsoft Access Sử dụng JDBC –ODBC Bridge, viết Java application giao tiếp với sở liệu Access Không may, applet bắt buộc giới hạn bảo mật nên không cho phép truy xuất đóa cục bộ, ODBC driver không làm việc phạm vi applet (trên trình duyệt Web) Tuy nhiên bây giờ, với thay đổi công nghệ có khả sử dụng JDBC – ODBC Bridge Sử dụng ODBC driver chương trình Java đòi hỏi cài đặt lại ODBC driver JDBC – ODBC Bridge máy client Ngược lại, JDBC driver lớp Java download động qua mạng với file chứa applet gọi 3.9 Mô hình hai lớp ba lớp Luận văn tốt nghiệp Phân tích đề tài Trang 69 Khi sở liệu ứng dụng chất vấn máy server code can thiệp dẫn đến kết chương trình mô hình hai lớp (twotier) Một lớp chương trìn h ứng dụng khác sở liệu Đây luôn trường hợp hệ thống JDBC-ODBC Khi có ứng dụng hay applet goi server mà khuynh hướng gọi sở liệu, gọi mô hình ba lớp (three-tier) Đây luôn trường hợp có chương trình gọi server để ta thực việc gọi Trong trường hợp cuối này, server sở liệu phải máy riêng rẽ với chương trình ứng dụng Hơn nữa, server code có lẽ chèn thêm vài công việc luận lý trước thực gọi sở liệu 3.10 Kết nối tới sở liệu Tất đối tượng sở liệu phương thức java.sql package ta phải import java.sql.* vào chương trình sử dụng JDBC Để kết nối tới sở liệu ODBC, ta phải load JDBC-ODBC bridge driver : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Câu lệnh load driver tạo ví dụ (incstance) cho lớp Kế kết nối tới sở liệu đặc thù, ta phải tạo instance lớp kết nối chuyển đến sở liệu sử dụng cú pháp URL : String url = "jdbc:odbc:"); Connection = .getConnection(url); Chú ý: tên sở liệu sử dụng phải trùng với tên Data Source ODBC setup panel Phương thức URL hoàn toàn khác kiểu sở liệu khác : jdbc:subprotocol:subname Những ký tự đại diện cho phương thức kết nối luôn JDBC có nhiều subprotocol subprotocol định rõø ODBC Nó định nghóa kết nối máy móc cho lớp sở liệu Nếu ta kết nối tới sở liệu server máy khác, ta phải định rõ máy subdrectory Cuối ta phải rõ username password 3.11 Truy xuất sở liệu Luận văn tốt nghiệp Phân tích đề tài Trang 70 Một ta kết nối tới sở liệu, ta yêu cầu cung cấp thông tỉntên tên bảng, tên nội dung cột chúng ; ta chạy câu lệnh SQL mà chất vấn sở liệu, thêm vào, thay đổi nội dung Những đối tương j mà ta thường dùng để thu thông tin từ sở liệu : • DatabaseMetaData: thông tin sở liệu nói chung : tên bảng, bảng liệt kê (index), tên sản phẩm sở liệu phiên bản, hành vi xác minh bỏi sở liệu • ResultSet: thông tin bảng hay kết query Ta truy cập liệu theo hàng, truy cập cột • ResultSetMetaData : thông tin tên cột kiểu ResultSet Trong đối tượng có số lớn phương thức cho phép ta lấy nhiều thông tin chi tiết yếu tố sở liệu, có vài phương thức chủ yếu đối tượng cho ta thông tin đầy đủ liệu ta ResultSet Đối tượng ResultSet đối tượng đơn quan trọng JDBC Nó yếu tố cần thiết cho việc lấy bảng với tổng chiều rộng chiều dài Gần tất phương thức query trả liệu ResultSet Nó chứa đựng số tên cột mà ta yêu cầu tên Nó gồm có hay nhiều hàng mà ta có thẻ di chuyển theo từ xuống Trước ta dùng ResultSet cần hỏi có cột Thông tin lưu trữ đối tượng ResultSetMetaData : //get the number of columns from the metadata ResultSetM etaData rsmd; rsmd = result.getMetaData(); numCols = rsmd.getColumnCount(); Trong ta thu ResultSet, trỏ đến điển bắt đầu hàng Ta sử dụng phương thức next() để thu hàng thêm vào phương thức trả lại false không hàng Ta lấy liệu ResultSet nhiều form tùy thuộc vào loại liệu lưu trữ cột Hơn nữa, ta lấy nội dung cột số cột hay tên cột Vài phương thức bình thường cho đối tượng ResultSet : Luận văn tốt nghiệp Phân tích đề tài Trang 71 getlnt(int) ; trả nội dung cột đánh số int số nguyên getlnt(String) ; trả nội dung cột đặt tên String số nguyên getFloat(int) ; trả nội dung cột đánh số int Float getFloat(String) ; trả nội dung cột đặt tên String Float getDate(int) ; trả nội dung cột đánh số int Date getDate(String) ; trả nội dung cột đặt tên String Date next() ; di chuyển hàng trỏ tới hàng kế Trả false không hàng close() ; đóng ReultSet getMetaData() ; trả nội dung cột đánh số int số nguyên ResultSetMetaData Ta thu đối tượng ResultSetMetaData từ ResultSet dùng phương thức getMetaData() Ta sử dụng phương thức để tìm số loại cột tên cột : getColumnCount() ; trả số cột ResultSet getColumnName(int) ; trả tên cột số int getColumnLable(int) ; trả nhãn đề nghị cho cột số int isCurrency(int) ; trả true cột chứa số trongđơn vị thi hành isREadOnly(int) ; trả true cột đọc isAutoincrement(int) ; trả true cột tự động tăng Như cột luôn khóa đọc getColumnType(int) ; trả loại liệu SQL cho cột Những loại liệu gồm có: bigint, binary, bit, char, date, decimal, double, float, integer, longvarbinary, longvarchar, null, numeric, other, real, smallint, time, timestamp, tiyint, varbinary, varchar DatabaseMetaData Đối tượng DatabaseMetaData cho thông tin toàn sở liệu Chúng ta sử dụng chủ yếu để tìm tên bảng sở liệu tên cột bảng Từ sở liệu khác xác minhkhác Luận văn tốt nghiệp Phân tích đề tài Trang 72 SQL, có số phương thức query sở liệu phương thức SQL support : GetCatalogs() ; trả danh sách catalog thông tin sở liệu với JDBC-ODBC bridge driver ta lấy danh sách sở liệu cập nhật vớiODBC GetTables ; trả mô tả tên bảng cho tất bảng phối hợp tableName tất cột phối hợp với columnName GetColumns ; trả mô tả bảng tên cột cho tất bảng phối hợp tableName tất cột phối hợp với columnName GetURL ; tìm tên URL kết nối GetDriverName() ; tìm tên của database kết nối tới 3.12 Lấy thông tin table Ta lấy thông tin table sở liệu sử dụng phương thức gettable( ) DataBaseMetaData Results = dma.getTable (catalog, schema, tablemsk, type[]); • catalog: tên catalog nhìn vào tên table Đối với sở liệu JDBC-ODBC nhiều loại khác gán null Catalog vào sở liệu xác theo tên đường dẫn xác thực chúng hệ thống file • schema: bao gồm lượt đồ sở liệu Nhiều sở liệu không khuyến khích schema khác username chủ nhân sở liệu thường null • tablemask : mặt nạ mô tả tên table ta muốn phục hồi Nếu ta muốn phục hồi tất tên table gán tới % bảng ký tự lạ(wildcard character %) Chú ý wildcar character SQL % ký hiệu không thương dùng ký hiệu * PC user • type[]: dãy chuỗi mô tả loại table ta muốn phục hồi Nếu type[] null, ta lấy table 3.13 Xây dựng đối tượng JDBC cấp cao Xây dựng đối tượng resultSet : Luận văn tốt nghiệp Phân tích đề tài Trang 73 Chúng ta xây dựng đối tượng resultSet mà gói gọn đối tượng JDBC ResultSet trả liệu hàng dãy chuỗi Ta luôn thu số cột tên cột từ đối tượng ResultSetMetaData gần hoàn toàn hợp lý để tạo đối tượng gói gọn metadata Hơn nữa, thường xuyên cần đem yếu tố hàng tên hay số nguyên index, có ích luôn bao bọc chúng khối thử Cuối muốn nội dung toàn hàng, có lẽ tiện lợi để thu String Xây dựng đối tượng sở liệu : Những sáng tạo đối tượng Database mà gói gọn hành vi đốùi tượng Connection, Statement DatabaseMetaData tốt SQL Query ResultSet vừa xây dựng Những đối tượng sở liệu cho phép tạo mối liên kết, lấy tên table di chuyển qua sở liệu lấy tiêu chuẩn hàng cột kiểu đơn giản Chú ý, phương thức Execute trả đối tượng resultSetmà ta thi hành Một chương trình sở liệu ảo (Visual Database) : Đó chương trình GUI đơn giản cho phép hiển thị tên table, tên cột nội dung sở liệu Nó gồm có text area mà ta gõ vào SQL query để thực thi sở liệu Tổ chức sở liệu Dữ liệu liên quan đến hệ thống gồm có : • Dữ liệu thông tin user sử dụng hệ thống (Administrator, Giáo viên, Sinh viên ) • Dữ liệu thi (môn thi ,câu hỏi thi ,đề thi ,bài thi ,kết thi) • Dữ liệu thống kê (report báo cáo theo định kỳ) Câu hỏi dùng thi trắc nghiệm có nhiều loại Câu hỏi có nhiều lựa chọn với câu (Multi Choice Question) Câu hỏi có nhiều chọn lựa với nhiều câu (Multi Choice Question) Câu hỏi sai (Yes/No Question) Câu hỏi điền khuyết (Suply Question) Luận văn tốt nghiệp Phân tích đề tài Trang 74 Câu hỏi ghép đôi (M atch Question) Câu hỏi có phần mô tả chung (Complex Question) • Câu hỏi có nhiều lựa chọn với câu dạng câu hỏi trắc nghiệm khách quan gồm phần mô tả chung lưa chọn A, B, C, D, Người sử dụng cần lựa chọn câu trả lời số lựa chọn • Câu hỏi nhiều lựa chọn với nhiều câu dạng câu hỏi trắc nghiệm khách quan gồm phần mô tả chung lưa chọn A, B, C, D, Người sử dụng cần lựa chọn câu trả lời số lựa chọn Kết xem chọn xác tất câu • Câu hỏi sai câu hỏi trắc nghiệm khách quan dạng đặc biệt câu hỏi nhiều lựa chọn Dạng có hai lựa chọn ĐÚNG SAI • Câu hỏi điền khuyết dạng câu hỏi trắc nghiệm khách quan gồm phần mô tả chung có vị trí chưa có liệu thích hợp Người sử dụng cần trả lời giá trị hay cách chọn lựa danh sách giá trị có sẵn • Câu hỏi ghép đôi dạng câu hỏi trắc nghiệm khách quan gồm phần mô tả chung bảng hai cốt lưa chọn 1, 2, 3, 4, cột A, B, C, D, cột thứ hai Người sử dụng cần chọn lựa cặp ghép đôi tương ứng từ hai cột lựa chọn • Câu hỏi có phần mô tả chung dạng câu hỏi trắc nghiệm khách quan gồm phần mô tả chung với câu hỏi nhỏ Dựa phần mô tả chung, người sư dụng trả lời câu hỏi nhỏ Mỗi câu hỏi nhỏ có dạng câu hỏi nhiều lựa chọn (Multi Choice Question), câu hỏi sai (Yes/No Question), câu hỏi điền khuyết (Suply Question), câu hỏi ghép đôi (Match Question) Có nhiều loại câu hỏi sử dụng thi trắc nghiệm tóm lại ta có hai dạng câu hỏi sử dụng hệ thống ngân hàng đề thi trắc nghiệm : • Dạng : Một câu hỏi co ùmột nhiều lựa chọn • Dạng : Một đoạn văn (phần mô tả chung) có nhiều câu hỏi, câu hỏi có lựa chọn cách trả lời khác Nội dung câu trả lời khác thứ tự chọn trùng Nội dung câu trả lời giống thứ tự chọn khác Luận văn tốt nghiệp Phân tích đề tài Trang 75 Thời gian chuẩn thời gian giới hạn chuẩn để trả lời thi Một thi có nhiều câu hỏi câu hỏi giáo viên soạn có kèm theo thời gian để trả lời Do thời gian chuẩn cho thi tổng thời gian tất câu thi Ngân hàng đề thi trắc nghiệm tập hợp tất câu hỏi giáo viên soạn đưa vào hệ thống Một đề thi gồm nhiều câu thi, phần thi, mức kiểm tra, môn thi giáo viên chọn lấy random từ tập hợp câu hỏi thi trình soạn đề thi lưu lại hệ thống Bài thi trắc nghiệm trực tiếp máy thi trình bày trình duyệt Web để người sử dụng trả lời chương trình chấm điểm Mỗi đề thi có mức kiểm tra thời gian giáo viên quy định cụ thể trình soạn đề Do trình sinh viên thi hệ thống ngân hàng đề thi trắc nghiệm tính thời gian, khoảng thời gian quy định mà sinh viên chưa điền xong kết vào form thi hệ thống tự động ngắt, lưu thi, chấm điểm trả kết cho sinh viên Trong hình 3.1 sơ đồ logical giửa class thiết kế hướng đối tượng, ta sử dùng CASE Tool (Computer Aided Software Engineering Tool) Rational Rose 98 Enterprise Edition để vẽ sơ đồ giửa class, class chứa tất thuộc tính class tham chiếu đến class khác sơ đồ Tất liệu liên quan đến hệ thống liệu user sử dụng hệ thống ; liệu câu hỏi thi, đề thi giáo viên soạn ; liệu thi kết thi sinh viên lưu trữ dạng bảng(Access, Oracle, Fox…) máy Server Luận văn tốt nghiệp Phân tích đề tài Trang 76 Ở sở liệu hệ thống lưu dạng bảng Access Do từ sơ đồ logical giửa class ta chuyển sang sơ đồ quan hệ Access, class sơ đồ logical giửa class chuyển thành bảng sơ đồ quan hệ Access tương ứng Sơ đồ quan hệ giửa bảng hình : Luận văn tốt nghiệp Phân tích đề tài Trang 77 Trong đề tài ta sử dụng bảng Access để lưu liệu Do bảng liệu trước sữ dụng ta phải đăng ký với hệ thống thông qua 32bit ODBC Control Panel hình : Trong hình ta chọn Tab Control System DSN nhấn button Add … Ta chọn data source Microsoft Access Driver (*.mdb) nhấn button Finish để đăng ký data source dùng chương trình Luận văn tốt nghiệp Phân tích đề tài Trang 78 Trong hình ta đánh tên data source dùng chương trình vào textfield Data Source Name nhấn button Select … để chọn đường dẫn đến data source dùng chương trình, sau: Chức user sử dụng hệ thống Người quản trị chung thực tất thao tác liên quan đến ngân hàng đề thi mà quản lý bao gồm : Thay đổi password Luận văn tốt nghiệp Phân tích đề tài Trang 79 Đăng ký giáo viên, sinh viên tham gia vào hệ thống Thay đổi thông tin giáo viên, sinh viên bao gồm : thay đổi password, xóa bỏ user không dùng hệ thống khỏi hệ thống ngân hàng đề thi Tạo report thống kê theo định kỳ Giáo viên có chức quyền thao tác hệ thống ngân hàng dề thi trắc nghiệm thông qua trình duyệt web sau : Soạn câu hỏi thi Soạn đề thi Thêm môn thi Thay đổi password Xem kết thi sinh viên Sinh viên : chia làm hai nhóm • Nhóm : sinh viên có đăng ký thông qua Administrator, sinh viên đăng ký cấp cho username password để login vào hệ thống Những sinh viên thuộc nhóm hệ thống quản lý, cập nhật liệu thông tin cá nhân kết thi sinh viên Do sinh viên thuộc nhóm có chức quyền thao tác hệ thống ngân hàng đề thi trắc nghiệm thông qua trình duyệt web sau : Thay đổi password Thực thi trắc nghiệm trực tiếp máy bao gồm : nhận đề, trả lời nhận kết Xem lại kết thi Xem lại trình thi • Nhóm : sinh viên không đăng ký mà có nhu cầu muốn thi trắc nghiệm để kiểm tra khả trình độ Những sinh viên thuộc nhóm hệ thống không quản lý mà cho phép sinh viên thực thi trắc nghiệm trực tiếp máy trả kết cho sinh viên Do sinh viên chọn nhấn vào button Thi Trắc Nghiệm form Login để thực thi trắc nghiệm trực tiếp máy nhận kết ... liệu gửi trả kết cho máy Client Mới nhìn, mô hình sở liệu Client/Server giống mô hình file -server, nhiên mô hình Client/Server có nhiều thuận lợi mô hình file-server Với mô hình fileserver,... xử lý chương trình ứng dụng truy nập liệu nằm máy khác, mô hình sở liệu phân tán lại giả định thân sở liệu có nhiều máy khác Qua mô hình sở liệu trên, dễ thấy mô hình Clie nt/Server mô hình phù... đoạn mã cho chương trình Java kiểu sở liệu khác sử dụng ( giả sử JDBC driver cho sở liệu khác có sẵn) Điều đặc biệt hữu dụng cho sở liệu phân bố 3.6 ODBC JDBC ODBC mô hình JDBC mô tả hình Java

Ngày đăng: 26/04/2013, 10:09

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan