Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 91 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
91
Dung lượng
2,46 MB
Nội dung
MỤC LỤC MỤC LỤC CHƯƠNG GIỚI THIỆU NỘI DUNG ĐỀ TÀI 1.1 Hệ thống quản lý thư viện 1.1.1 Nhiệm vụ hệ thống quản lý thư viện .3 1.1.3 Hướng phát triển hệ thống thư viện đại 1.2 Hướng thực thi đề tài CHƯƠNG PHÂN TÍCH VÀ LỰA CHỌN MÔ HÌNH SỬ DỤNG 2.1 Các cấu hình sở liệu Client/Server 2.1.1 Mô hình sở liệu tập trung (Centralized database model) .7 2.1.2 Mô hình sở liệu theo kiểu file– server (File– server database model) 2.1.3 Mô hình xử lý phần sở liệu (Database extract processing model).8 2.1.4 Mô hình sở liệu Client/Server (Client/Server database model) .9 2.1.5 Mô hình sở liệu phân tán (Distributed database model) 10 2.2 Mô hình sử dụng .10 2.2.1 Server 11 2.2.2 Database .11 CHƯƠNG 12 CƠ CHẾ TRUYỀN NHẬN TRONG JAVA 12 3.1 Các kiến thức Networking 12 3.2 Networking 16 3.2.1 Giao tiếp phần thực client Browser máy local .16 3.2.2 Sockets .17 3.2.3 Threads, Synchronization Exceptions .23 CHƯƠNG 28 CƠ SỞ DỮ LIỆU .28 4.1 JDBC .28 4.1.1 JDBC ? 28 4.1.2 Cấu trúc JDBC 28 4.1.3 ODBC JDBC 29 4.1.4 Sử dụng JDBC driver 30 4.2 Sử dụng JDBC để truy suất cở sở liệu 30 4.3 Kết nối tới sở liệu 31 4.4 Truy Suất Cơ sở liệu .31 4.5 Đối Tượng ResultSet 32 4.6 Đối Tượng ResultSetMetaData 34 4.7 Đối Tượng DatabaseMetaData 35 4.8 Lấy Thông Tin Trên Table .36 CHƯƠNG 38 PHÂN TÍCH VÀ THIẾT KẾ 38 5.1 Giới thiệu công cụ hỗ trợ thiết kế UML .38 5.2 Xác định Use Case .38 5.2.1 Độc giả .38 5.2.4 Root 52 5.3 Biểu đồ “Cho mượn sách” 53 5.4 Biểu đồ “Đăng nhập hệ thống” .53 5.5 Biểu đồ “Xét độc giả đăng ký” 54 5.6 Biểu đồ “Cập nhật sách” 54 5.7 Biểu đồ “Cập nhật User” .55 5.8 Xây dựng biểu đồ lớp 55 5.9 Biểu đồ cài đặt 56 5.9.1 Biểu đồ thành phần “Gói Giao Diện” 56 5.9.2 Biểu đồ thành phần “Gói Thực Thể” 56 5.10 Biểu đồ triển khai 57 5.11 Biều đồ hoạt động “Độc giả” .57 5.12 Biểu đồ hoạt động “Thủ thư” .58 CHƯƠNG 59 CHƯƠNG TRÌNH QUẢN LÝ THƯ VIỆN .59 6.1 Nguyên tắc hoạt động: .59 6.1.1 Các loại User quyền, cách đăng ký 59 6.1.2 Cơ chế login 60 6.1.3 Cơ chế mượn sách .60 6.1.4 Cơ chế xử lý vi phạm 60 6.2 Mô tả sở liệu 61 6.3 Mô tả chương trình 64 6.3.1 Tổng quan 64 6.3.2 Mô tả chi tiết chế trình cập nhật liệu 66 6.3.3 Mô tả chi tiết liệu đặc biệt 80 6.3.4 Cơ chế timeout 81 6.3.5 Server 82 6.3.6 Client 83 6.3.7 Giao tiếp client server .84 CHƯƠNG 86 HƯỚNG PHÁT TRIỀN CHƯƠNG TRÌNH 86 7.1 Kiến trúc RMI 86 7.1.1 Đặc điểm RMI 86 7.1.2 Phát triển mã cho RMI 86 7.2 Kết chương trình 87 7.2.1 Những điểm chương trình làm 87 7.2.2 Những điểm chưa làm hướng giải .88 7.3 Hướng phát triển chương trình 88 TÀI LIỆU THAM KHẢO 90 NHẬN XÉT CỦA GIÁO VIÊN 91 CHƯƠNG GIỚI THIỆU NỘI DUNG ĐỀ TÀI 1.1 Hệ thống quản lý thư viện 1.1.1 Nhiệm vụ hệ thống quản lý thư viện Một hệ thống quản lý thư viện có nhiệm vụ quản lý kho tư liệu mà thư viện có, phục vụ công tác tra cứu, nghiên cứu độc giả Hệ thống quản lý thư viện phải nắm giữ số lượng sách thư viện, phân loại sách theo chương mục cụ thể để dễ dàng mã hoá, tiện cho việc truy tìm Ngoài hệ thống phải biết tình trạng tài liệu tại, phải cập nhật thông tin bổ sung tư liệu lý tư liệu giá trị Đối với việc phục vụ tra cứu, hệ thống phải đưa mục lục phân loại sách có thư viện, cho độc giả dễ dàng tìm tư liệu cần thiết, bên cạnh hệ thống phải quản lý độc giả có yêu cầu mượn tư liệu Thông thường việc phân loại sách quản lý độc giả công việc phức tạp hệ thống quản lý thư viện 1.1.2 Tổ chức đa số hệ thống thư viện Các hệ thống thư viện thường tổ chức hoạt động theo cách sau: a Bổ sung, bảo quản lý sách Sách nhập đăng ký phòng phân loại – biên mục Tại sách xem xét nội dung, thể loại qua phân loại sách theo chuyên mục sẵn có thư viện Đồng thời sách gắn với mã số để tiện cho việc tìm kiếm, qua mã số nhân viên thư viện biết sách nằm vị trí kho lưu trữ Đôi sách có hai loại mã số, để phục vụ cho việc xếp tìm kiếm kho, để quản lý thời gian sách nhập vào thư viện, tiện cho việc bảo quản, lý Sau sách có mã số, cung cấp thẻ mục lục, thường có tên sách, nội dung, tác giả, nhà xuất bản, năm xuất bản… Đối với hệ thống tra cứu sách thủ công, thẻ mục lục cạc đặt hệ thống mục lục thư viện Với hệ thống có trang bị máy tính, record sở liệu thư viện Theo thời gian, sách bị hư hỏng nội dung không phù hợp đem lý, loại bỏ khỏi hệ thống b Phục vụ bạn đọc Khi có nhu cầu tìm hiểu tư liệu, độc giả đăng ký làm thẻ với thư viện cấp phiếu đăng ký Sau điền số thông tin cá nhân chứng nhận quan có thẩm quyền, phiếu đăng ký thư viện xác nhận lưu giữ, đồng thời độc giả cấp thẻ thư viện Trên thẻ thư viện có mã số bạn đọc, qua thư viện tìm lại thông tin độc giả nhanh chóng cần thiết, thư viện quản lý bạn đọc qua mã số Khi có nhu cầu nghiên cứu, bạn đọc dò tìm mã số tư liệu muốn qua hệ thống mục lục theo chủ đề, nội dung, tác giả tay máy tính (nếu có) Tiếp theo bạn đọc phải đăng ký mượn sách với thư viện qua phiếu mượn sách Trên phải ghi rõ tên mã số bạn đọc, tên mã số sách mượn, ngày mượn ngày trả Sau xác nhận tính đắn phiếu, nhân viên thư viện vào mã số sách để tìm sách kho tư liệu đem cho độc giả Định kỳ, nhân viên thư viện phải kiểm tra lại phiếu mượn sách để thống kê số sách mượn, sách thư viện, qua thông báo cho độc giả biết sách hết, lúc có độc giả yêu cầu Nhân viên phải kiểm tra độc giả vi phạm quy chế, chẳng hạn mượn số lượng sách cho phép, sách mượn hạn trả, làm sách để có biện pháp xử lý thích ứng c Nhược điểm hệ thống quản lý thư viện : Hệ thống dùng nhiều đến giấy tờ, việc bảo quản, truy tìm nhiều thời gian Hệ thống dễ mắc phải sai sót chưa tiện lợi với bạn đọc Công việc quản lý độc giả khó khăn số lượng bạn đọc lớn, việc kiểm tra thời gian mượn trả sách, số lượng sách mượn thủ công, dễ thất thoát tư liệu Việc phân loại sách tạo mục lục cần nhiều thời gian Ngay số thư viện dùng hệ thống máy tính để phục vụ tra cứu quản lý nhiều nhược điểm như: giao diện người sử dụng phức tạp, phần mềm sử dụng máy đơn mạng cục bộ, tổ chức sở liệu thường bị hạn chế dung lượng tốc độ đa số sở liệu chuẩn hãng phần mềm Mặc dù có máy tính việc đăng ký mượn sách phải tiến hành tay chưa tận dụng hết ưu điểm máy tính 1.1.3 Hướng phát triển hệ thống thư viện đại Ngày với phát triển máy tính, đời mạng Internet, hệ thống thư viện có nhiều đổi Đa số công việc tiến hành máy tính, từ việc phân loại, tra cứu mượn sách tiến hành máy tính với ưu điểm nhanh hơn, xác thuận lợi Người ta không cần phải đến thư viện để tra cứu sách mà phải làm nhà, với điều kiện máy tính phải kết nối vào mạng có hệ thống máy tính thư viện Việc quản lý bạn đọc tiến hành máy tính đơn giản xác nhiều Thậm chí, thực thư viện "từ xa", nghĩa bạn đọc đọc sách mà thích nhà, thông qua mạng vi tính Mặt khác, với hỗ trợ công nghệ mutlimedia máy tính, độc giả không cảm thấy khô khan đọc trang sách máy tính nữa, mà có đoạn nhạc, phim, ảnh từ điển thuật ngữ liên kết, tương tự trang Web sống động… 1.2 Hướng thực thi đề tài Hiện có nhiều phần mềm phục vụ cho việc quản lý thư viện viết nhiều ngôn ngữ khác Từ phần mềm sử dụng máy đơn, nghĩa sở liệu chương trình truy xuất phải cài đặt máy đến phần mềm sử dụng mạng, nghĩa máy truy xuất tới sở liệu cài đặt sẵn máy phần mềm mắc phải nhược điểm phải có phần mềm kèm sử dụng Và thường phần mềm thư viện quản lý, độc giả muốn sử dụng phải đến thư viện Nếu truy xuất sở liệu thư viện thông qua mạng máy tính mà không cần phải cài đặt phần mềm chuyên biệt thật thuận tiện Ngày nhờ tiến ngôn ngữ lập trình tiện ích mạng, làm điều Và đề tài đưa hướng thực thi việc truy xuất sở liệu từ xa thông qua công cụ hổ trợ sẵn mạng Internet trình duyệt Web Việc thực áp dụng hệ thống thư viện thí dụ điển hình CHƯƠNG PHÂN TÍCH VÀ LỰA CHỌN MÔ HÌNH SỬ DỤNG 2.1 Các cấu hình sở liệu Client/Server 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) Các mô hình xử lý sở liệu khác trường hợp ba loại thành phần nói định vị đâu Thông thường có năm 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.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ý 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 2.1.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 maý tính file vật lý tạo nên sở liệu nằm hệ thống máy tính khác, 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 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ới thành phần ứng dụng phần mềm sở liệu Tuy nhiên thành phầ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 mô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.1.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 đĩa 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ó hai hệ thống máy tính để kiểm soát để kiểm soát truy cập chuyển liệu hai hệ thống Tuy nhiên, phần mềm sở liệu chạy hai 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.1.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 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 file- server, 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 Fron-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 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.1.5 Mô hình sở liệu phân tán (Distributed database model) 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 2.2 Mô hình sử dụng Qua mô hình sở liệu trên, dễ thấy mô hình Client/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 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 Apllet 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) Mô hình quản lý thư viện xây dựng sau: người quản lý thư viện thông qua Applet để quản lý hệ thống thư viện Chương trình cho phép administrator bổ sung sách vào thư viện, hủy bỏ sách, đăng ký bạn đọc, quản lý việc mượn sách bạn đọc Nếu thực việc đọc sách từ xa, 10 public void clickedb_gia_han(MSSach, UserID) Hình 6.18: Sơ đồ khối “Gia hạn sách” - update bảng ThongTinSach fields (NgayHen = NgayMuon + ThoiGianMuon + m_ngaygiahan) với điều kiện (MSSach = m_mssach) - update bảng KetQuaMuonSach fields (TGMuon= m_tgmuon, GhiChu = m_ghichu) với điều kiện (UserID = m_userid, MSSach = m_mssach, Muon = ‘ Roi’, Tra = ‘Chua ‘) k.public class ThuThuXemKetQuaSachMuon extends Panel ActionListener public void clickedb_canh_cao(UserID, MSSach) Khi thủ thư xem kết mượn sách user thấy có user mượn sách hạn , hay vi phạn việc mượn sách cảnh báo user cách gởi cụ thể thông tin cảnh báo đến cho Adm qua bảng DocGiaViPham : insert đến bảng DocGiaViPham trường (UserID, GhiChu= m_ghichu, NgayTTCanhCao (Ngày hệ thống tự động cập nhật)) Hình 6.19: Sơ đồ khối “Xử lý độc giả vi phạm” 77 public void clickedb_back_up(UserID, MSSach) Khi thủ thư xem kết trả sách cuả user, thấy có user trả sách Khi thủ thư nhấn nút “backup”, thông tin độc giả trả sách lưu vào bảng KetQuaTraSach để lưu trữ cho mục đích thống kê sau - Lấy thông tin tất trường bảng KetQuaMuonSach với điều kiện trường (UserID = m_userid, MSSach = m_mssach, TGMuon = m_tgmuon, Tra = ‘Roi’) - insert vào bảng KetQuaTraSach trường (UserID= m_userid, MSSach= m_mssach, TGMuon = m_tgmuon, NgayMuon =m_ngaymuon , NgayTra = m_ngaytra, GhiChu = m_ghichu, NgayBackup) NgayBackup hệ thống tự động cập nhật theo ngày server Hình 6.20: Sơ đồ khối “Cập nhật kết trả sách” l.public class DocGiaXemTTSach extends Panel public void TheHienThongTinSach(DocGiaXemTTSach dgxemthongtinsach, String sach ) Sau user login vào, user vào form để xem thông tin sách Server thực việc lấy thông tin sách, Server thực câu lệnh select lấy liệu bảng ThongTinSach gồm trường (MSSach, TenSach, NhaXB, NamXB, PhanLoai) public void clickedb_Find(MSSach) Ở form độc giả thực việc tra cưú sách Độc giả tra cứu sách theo tên sách, theo tác giả , độc giả tra cứu sách mà nhớ phần tựa đề sách mà cần tra cưú 78 Khi độc giả nhấn nút “Find”, Server thực câu lệnh select lấy liệu bảng ThongTinSach public void clickedb_dang_ky_muon_sach(MSSach, TGMuon) Hình 6.21: Sơ đồ khối “Đăng ký mượn sách” Khi độc giả nhấn nút “DangKyMuon”, Server thực việc kiểm tra (select) user có đăng ký mượn nhiều hay không? Nếu có báo cho user biết bạn đăng ký nhiều Nếu hợp lệ kiểm tra(select) xem trước độc giả có mượn sách hay không Nếu có số sách có vượt phạm vi thư viện cho mượn hay không? Nếu phạm vi hệ thống cho mượn báo cho độc giả biết mượn sách nhiều, cho mượn thêm, muốn mượn phải trả sách tiếp tục mượn Nếu hai trường hợp điều thỏa yêu cầu Server thực việc lấy thông tin trường (DangKy) bảng ThongTinSach với điều kiện (MSSach = m_mssach, DangKy = ‘Chưa’) Nếu có user khác đăng ký báo cho user biết có người đăng ký Nếu thỏa yêu cầu làm công việc sau: 79 - update bảng ThongTinSach set (DangKy = ‘Roi’) với điều kiện (MSSach = m_mssach) - insert đến bảng KetQuaMuonSach trường (UserID=m_userid, MSSach = m_mssach ,Muon = ‘Chua’, Tra = ‘Chua’, GhiChu = ‘ChuaMuon’, m_thongtinkhac) m_userid userid độc giả dùng login vào hệ thống n.public class DocGiaXemKetQuaMuonSach extends Panel public void LayKetQuaMuonSach(DocGiaXemKetQuaMuonSach docgiaxemketquamuonsach) Ở class user xem kết đăng ký mượn sách đồng thời xem kết mượn sách riêng m_userid userid độc giả dùng login vào hệ thống public void LayKetQuaDangKyMuonSach (DocGiaXemKetQuaMuonSach docgiaxemketquamuonsach) Server thực việc lấy kết đăng ký mượn sách, Server thực câu lệnh select lấy liệu bảng KetQuaMuonSach thỏa mãn điều kiện (UserID = m_userid, Muon = ‘Chua’) public void LayKetQuaMuonSach (DocGiaXemKetQuaMuonSach docgiaxemketquamuonsach) Server thực việc lấy kết đăng ký mượn sách, Server thực câu lệnh select lấy liệu bảng KetQuaMuonSach thỏa mãn điều kiện (UserID = m_userid, Muon = ‘Roi’, Tra = ‘Chua’) 6.3.3 Mô tả chi tiết liệu đặc biệt Mã số độc giả đăng ký không trùng Mã số sách tự động Khi tư liệu cập nhật vào hệ thống mã số tự động tăng lên 80 Không dùng field số lượng sách mà sách lưu trữ riêng thành record Ngày đăng ký làm thẻ, ngày đăng ký mượn sách, ngày cho mượn sách, tất lấy từ Server hệ thống không bị cố năm 2000 6.3.4 Cơ chế timeout Yêu cầu Khi client kết nối với server, cung cấp thread, kênh truyền kết nối với CSDL Chương trình server phải có chế biết user thoát khỏi trang Web thư viện, server đáp ứng dịch vụ cho số lượng client định Tuy nhiên có trường hợp chương trình client không hoạt động báo cho server biết (máy client bị tắt đột ngột, đường truyền bị ngắt) Nhưng thread phục vụ kênh truyền dành cho client sống, điều gây lãng phí tài nguyên Do chương trình server phải có chế để phat điều để tự động giải phóng thread đóng cầu nối, dành tài nguyên cho client khác Ngược lại, chương trình client phải biết server không hoạt động (hay kênh truyền bị đóng) để kết nối lại (hay chuyển sang trang web khác) Phân tích thiết kế Trong trạng thái hoạt động bình thường, user thoát khỏi trang web thư viện, chương trình client phải báo cho server biết Ngược lại chương trình server bị đóng, phải báo cho tất client kết nối biết Trong trường hợp chương trình client bị đóng mà báo cho server biết, ta dùng phương pháp timeout để loại bỏ client Sau khoảng thời gian xác định trước, client yêu cầu liệu chương trình server tự động giải phómg thread đóng cầu nối Tương tự, chương trình client cần có timer Sau gởi yêu cầu, vượt thời gian qui định mà trả lời, chương trình client 81 biết server ngừng hoạt động (hoặc kênh truyền bị ngắt ), tiến hành kết nối lại (yêu cầu user bấm nút RECONNECT) Hiện thực Khi user thoát khỏi trang web thư viện (hay browser bị đóng), hàm stop ( hay destroy) applet tự động gọi Do ta đặt hai hàm câu lệnh gửi tín hiệu chấm dứt hoạt động cho chương trình server Tương tự chương trình server bị đóng, event WINDOW_DESTROY tạo Do hàm handleEvent, ta phải bắt kiện & gửi cho tất ac1c client kết nối tín hiệu chấm dứt hoạt động Sau giải phóng thread kênh phục vụ Để phục vụ cho việc định thời, ta tạo thread timer có dạng sau(giả sử timer phục vụ cho instance thuộc lớp client) Tại server, thread sinh nhận yêu cầu từ từ client Khi có yêu cầu tiếp theo, timer bị đóng timer khác sinh Khi timer timeout(nghĩa khỏng thời gian yêu cầu liệu) Nó gọi hàm timeout thuộc lớp client hàm có nhiệm vụ loại bỏ instance đóng kết nối Tương tự client, gửi yêu cầu liệu, timer set timer bị đóng chương trình client nhận liệu Khi timeout, timer gọi hàm timeout thuộc lớp IO hàm làm hai việc: - Đóng cầu nối cũ - Enable button "Nối lại " thông báo cho user biết, yêu cầu user click vào button muốn kết nối 6.3.5 Server Là chương trình Java Application có chức sau : Chờ tín hiệu yêu cầu kết nối thiết lập cầu nối với client 82 Tạo cho client thread để quản lý việc trao đổi liệu với client Vòng lặp lấy liệu từ stream nhập để nhận message, phân tích message gọi hàm xử lý tương ứng Tạo câu lệnh SQL hòan chỉnh từ yêu cầu cập nhật liệu Tạo kết nối với CSDL(thông qua JDBC) để thực thi câu lệnh SQL Nhận kết thực thi câu lệnh SQL gửi cho client Kiểm tra quyền user user đăng ký nhập liệu hay quản trị hệ thống Kiểm tra liệu nhập gửi thông báo sai (nếu liệu không hợp lệ) cập nhật CSDL (nếu liệu hợp lệ) Cho phép người quản trị hệ thống sửa đổi liệu thông tin người nhập liệu Đóng cầu nối giải phóng thread chương trinh client ngừng hoạt động 6.3.6 Client Các applet client load với trang web thư viện thực thi máy user Các applet có chức sau : Tạo giao diện client, trình bày nội dung thông tin nhiều dạng cho phép user tương tác với chương trình cách trực quan Kết nối với server , tạo stream nhập để nhận thông tin gửi tới từ server stream xuất để gửi yêu cầu đến server Nhận yêu cầu liệu từ user, phân tích yêu cầu để chọn câu lệnh SQL thích hợp gửi đến server Cập nhật trang web có thông tin từ server Báo cho server user đóng chương trình 83 6.3.7 Giao tiếp client server Khi tạo socket thiết lập cầu nối client server,ta đồng thời tạo stream nhập/xuất để client applet server application trao đổi liệu thông qua stream này.Trao đổi liệu client server dựa vào chế truyền nhận message.Chương trình client & server vào ký tự đầu message để phân loại message gọi hàm xử lý thích hợp.Ví dụ số loại message: a Các message client gửi cho server Tên thông tin user xem Câu lệnh SQL client muốn thực thi Tín hiệu kết thúc hoạt động b Các message Server gửi cho client Kết câu lệnh SQL client gửi tới Các thông tin cần thiết để client tạo giao diện Thông báo yêu cầu cập nhật trang web nội dung cập nhật Tín hiệu kết thúc hoạt động c Định dạng message Yêu cầu Chương trình quản lý thư viện sử dụng nhiều cấu trúc liệu nhiều đối tượng liệu Các liệu phải trao đổi chương trình client chương trình server Tuy nhiên, chế giao tiếp client-server truyền nhận message nên ta phải chuyển đổi cấu trúc đối tượng liệu khác thành kiểu chuỗi trước truyền, bên nhận phải chuyển đổi ngược lại dòng liệu nhập thành cấu trúc đối tượng liệu ban đầu Do bên truyền bên nhận phải thống định dạng message phải có chế để biết message nhận thuộc loại định dạng 84 Hiện thực Cơ chế xác định loại message: ta xáx định chuỗi gởi message để gọi hàm.Ví dụ:Message client gửi yêu cầu liệu đến Server : message.QUERY +câu lệnh SQL Message server gửi kết trả :message.QUERY +kết thực thi câu lệnh SQL Cơ chế định dạng cấu trúc message Server thực thi câu lệnh SQL nhận bảng liệu (nằm đối tượng ResultSet) gồm nhiều mẩu tin nhiều trường Để gửi cho client, bảng liệu phải chuyển thành String ta phải có cách định dạng để client khôi phục lại bảng liệu từ String này.Ta dùng phương pháp tổng quát ghi thành phần liệu liên tiếp nhau,được phân cách ký tự đặc biệt (message.DELIMITER).Thông thường ta phải dùng loại ký tự phân cách bảng liệu (một để phân cách trường để phân cách thông tin), nhiên số trường không thay đổi bảng liệu nên ta dùng loại ký tự phân cách Nếu bảng có N trường khi duyệt tới thành phần N+1 ta hiểu thuộc mẩu tin thứ hai Chuyển bảng liệu thành chuỗi xuất : ResultSet rs=stmt.executeQuery(query); // thực thi câu lệnh SQL int col=(rs.getMetaData()).getColumnCount(); // lấy số trường while(rs.next()){ // liệu for(int pos=1;pos