Đồ án Xây dựng hệ thống phục vụ bạn đọc qua mạng tại Trung tâm thông tin tư liệu

MỤC LỤC

MỤC LỤC 1

CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI 3

I. GIỚI THIỆU THƯ VIỆN VÀ TRUNG TÂM THÔNG TIN TƯ LIỆU ĐHĐN 3

I.1. Giới thiệu thư viện. 3

I.2. Trung tâm thông tin tư liệu ĐHĐN (TTTTTL) 3

II. TIẾP CẬN CỦA TIN HỌC ĐỐI VỚI THƯ VIỆN 4

II.1. Công cụ xây dựng chương trình 4

II.2. Mô hình công việc của chương trình 4

II.3. Khả năng sử dụng thư viện từ xa 5

III. NHIỆM VỤ CỦA ĐỀ TÀI VÀ PHƯƠNG HƯỚNG GIẢI QUYẾT 5

III.1. Hỗ trợ bạn đọc sử dụng thư viện từ xa 5

III.2. Chương trình sử dụng được trên mạng 6

III.3. Phương hướng giải quyết 7

CHƯƠNG II. PHÂN TÍCH VÀ TRIỂN KHAI HỆ THỐNG 8

I. MÔ HÌNH TỔNG THỂ CỦA BÀI TOÁN 8

Mô hình chung 8

I.2. Đặc điểm của mô hình 9

II. LỰA CHỌN GIẢI PHÁP THỰC HIỆN 9

II.1. Mô hình CSDL Khách/ Chủ 9

II.2. Phương án giải quyết thứ 1 10

II.3. .Phương án giải quyết thứ 2 11

II.4. Phương án giải quyết thứ 3 12

II.5. Tổng kết 13

III. PHÂN TÍCH VÀ TRIỂN KHAI 14

III.1. Các thành phần của ứng dụng CSDL Khách/Chủ 14

III.1.1. Thành phần trình bày/Giao tiếp với người dùng (User interaction) 14

III.1.2. Thành phần ứng dụng (Application component) 15

III.1.3. Thành phần quản trị CSDL (Database management) 15

III.2. Áp dụng vào xây dựng chương trình 15

III.2.1. Phân bố thành phần CSDL Khách/Chủ cho ứng dụng 15

III.2.2. Đặc tả các thành phần cho ứng dụng 16

CHƯƠNG III. THIẾT KẾ CHƯƠNG TRÌNH 21

I. HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH TRÊN MẠNG 21

I.1. Cách thức xây dựng chương trình 21

I.1.1. Chương trình dùng cho bạn đọc (Chương trình trên máy khách) 21

I.1.2. Chương trình dùng cho thư viện (Chương trình máy chủ). 22

I.1.3. Hoạt động của chương trình trên mạng 22

I.2. Các vấn đề chính khi xây dựng chương trình. 22

I.2.1. Khuôn dạng dữ liệu truyền thông trên mạng 22

I.2.2. Xử lý nhiều truy cập của bạn đọc đến thư viện tại cùng thời điểm 24

I.2.3. Giao tiếp CSDL 24

II. TỔNG THỂ CHƯƠNG TRÌNH 26

III. CHƯƠNG TRÌNH CỦA MÁY CHỦ THƯ VIỆN 28

III.1. Lớp điều khiển chung - Lớp Server 28

III.1.1. Lưu đồ thuật toán 28

III.1.2. Chương trình 29

III.2. Lớp giao tiếp - Lớp SrvConnection 29

III.2.1. Sơ đồ hoạt động 29

III.2.2 Lưu đồ thuật toán 30

III.2.3. Chương trình minh họa 30

III.3. Lớp Server mở rộng 32

III.3.1 Lưu đồ thuật toán 32

III.3.2. Chương trình minh hoạ 33

III.4. Lớp SQL 33

III.4.1 Lưu đồ thuật toán 33

III.4.2. Các câu hỏi vấn tin của bạn đọc để yêu cầu dữ liệu từ thư viện 34

III.5. Lớp FileSeek 35

III.5.1 Lưu đồ thuật toán 35

III.5.2. Mã chương trình minh hoạ 35

IV. CHƯƠNG TRÌNH CLIENT 36

IV.1. Lưu đồ thuật toán của chương trình bạn đọc 36

IV.2. Chương trình minh hoạ 38

IV.3. Lớp trợ giúp kết nối 39

IV.4. Lớp kiểm tra bạn đọc 39

IV.5. Lớp Tra cứu tài liệu 40

IV.6. Lớp hiển thị kết quả tra cứu 40

IV.7. Lớp Đăng ký từ xa 42

CHƯƠNG IV. KẾT LUẬN 43

I. NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 43

I.1. Về lý thuyết: 43

I.2. Về thực nghiệm: 43

I.3. Về chương trình: 44

II. ĐÁNH GIÁ VÀ NHẬN XÉT 44

II.1. Ưu điểm 44

II.2. Hạn chế 44

III. PHẠM VI ỨNG DỤNG CỦA ĐỀ TÀI 45

IV. HƯỚNG PHÁT TRIỂN, MỞ RỘNG 45

 

 

doc41 trang | Chia sẻ: netpro | Lượt xem: 2010 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng hệ thống phục vụ bạn đọc qua mạng tại Trung tâm thông tin tư liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
viện nên các hoạt động đăng ký mượn tài liệu từ xa cũng được thư viện xác nhận dễ dàng. Ví dụ: Bạn đọc gởi yêu cầu tìm kiếm tài liệu có chủ đề là “Java” của tác giả “Noel Enete”. Nếu tài liệu là sách thì bạn có thể đăng ký mượn với thư viện hoặc nếu tài liệu đó là Webbook thì bạn có thể đọc trực tiếp trên mạng. Yêu cầu của bạn đọc được chuyển đến thẳng cho thư viện mà bạn đăng ký, thư viện sẽ lục tìm các file dữ liệu tương ứng để gởi vể cho bạn đọc. Điều này không thể triển khai trong hai phương án đầu. Hạn chế quá tải cho máy chủ và cho đường truyền vì máy chủ chỉ có chức năng tiếp nhận yêu cầu và trả lời, không có chức năng chuyển yêu cầu sang các thư viện khác. Bạn đọc kết nối sang thư viện khác thì liên kết với thư viện ban đầu bị huỷ bỏ nên giải phóng đường truyền. Tổng kết Với các phương án trên, ta chọn phương án thứ 3 để xây dựng ứng dụng. Nguyên lý hoạt động của phương án 3 được mô tả theo sơ đồ thuật toán sau: Bắt đầu Bạn đọc đăng ký làm việc tại một thư viện Bạn đọc giao tiếp dữ liệu với thư viện Trợ giúp kết nối Đến thư viện khác Kết thúc S Đ Yêu cầu chuyển sang thư viện khác Hình 10: Lưu đồ thuật toán của phương án giải quyết thứ 3 Từ mô hình phương án và lưu đồ hoạt động, ta nhận thấy: Bạn đọc sử dụng chương trình để truy cập đến một thư viện bất kỳ hoặc Trung tâm TTTL thông qua địa chỉ của máy chủ tại đó để gởi các yêu cầu về tài liệu cần thiết cho mục đích của mình nên chỉ cần xây dựng một chương trình ứng dụng chung cho bạn đọc. Chương trình ứng dụng Chương trình máy khách Chương trình máy chủ Nếu thất bại trong công việc tìm kiếm tài liệu và thông tin cần thiết tại một thư viện, chương trình sẽ tự động giúp bạn đọc kết nối với một thư viện khác. Qua đó, bạn đọc có thể bắt đầu mọi công việc tìm kiếm, đọc qua mạng, copy... trực tiếp với thư viện được chỉ định và chịu sự quản lý của thư viện đó. Do vậy, chương trình máy chủ thư viện cũng duy nhất là một nhưng được đặt tại nhiều nơi khác nhau. Hình 11: Cấu trúc chung của chương trình Phân tích và triển khai Trong phần này ta tiếp tục khảo sát các thành phần của một ứng dụng Khách/Chủ để xác định những yêu cầu cần thiết của một chương trình máy khách mà bạn đọc sử dụng tương tác với TTTTTL, các thư viện và chương trình máy chủ phục vụ nhu cầu cho bạn đọc; quyết định sự phân bố các thành phần ứng dụng đó trên mạng như thế nào, làm cơ sở xây dựng thuật toán xử lý trong chương sau. Các thành phần của ứng dụng CSDL Khách/Chủ Phần mềm xây dựng cho kiến trúc CSDL Khách/Chủ có ba thành phần chính sau: Thành phần trình bày/Giao tiếp với người dùng (Presentation component/User interaction) Thành phần này thực hiện toàn bộ các chức năng giao tiếp với người sử dụng qua giao diện đồ họa. Nhiệm vụ cơ bản nhất của thành phần này là tiếp nhận các tình huống phát sinh của người dùng trên các đối tượng đồ hoạ như hộp lựa chọn, menu, nút lệnh, ô văn bản... của giao diện chương trình để tiến hành công việc hình thành các câu hỏi, các yêu cầu trong các thủ tục tình huống, chuẩn bị chuyển cho chương trình máy chủ. Ngoài ra, nó còn có nhiệm vụ sắp đặt các thông tin trả lời từ máy chủ lên các đối tượng đồ hoạ. Thành phần ứng dụng (Application component) Thành phần này thực thi những yêu cầu cho ứng dụng trong ngữ cảnh mà ứng dụng hoạt động. Trong trường hợp ứng dụng thực hiện trên mạng thì nhiệm vụ chính của thành phần này truyền thông dữ liệu trên mạng, nghĩa là thực hiện công việc chuyển dữ liệu từ chương trình máy khách đến chương trình trên máy chủ và ngược lại nhận dữ liệu trả lời từ máy chủ cho máy khách. Ngoài ra, để chuẩn bị cho việc truyền thông dữ liệu qua mạng và sắp xếp dữ liệu phục vụ cho chương trình, thành phần này còn có thêm chức năng định khuôn dạng cho dữ liệu Thành phần quản trị CSDL (Database management) Thành phần này gồm hai bộ phận cơ bản đó là: Bộ phận giao tiếp CSDL và bản thân CSDL. Bộ phận giao tiếp CSDL còn được gọi là Database Gateway. Nó có nhiệm vụ xác định loại CSDL cần sử dụng như Foxpro, MS Access, Dbase...,thiết lập một kết nối đến CSDL, tiếp nhận các yêu cầu truy vấn (Query) dữ liệu của người dùng, tiến hành vấn tin với CSDL. Kết quả trả về là một tập con của CSDL. Còn bản thân CSDL có nhiệm vụ lưu trữ dữ liệu cụ thể phục vụ cho chương trình. Áp dụng vào xây dựng chương trình Phân bố thành phần CSDL Khách/Chủ cho ứng dụng Dựa trên mô hình bài toán, ta phân bố các thành phần của ứng dụng Khách/Chủ vào chương trình như sau: Bạn đọc là người dùng cuối sử dụng chương trình hay nói cách khác, chương trình bạn đọc sử dụng là chương trình của phía máy khách. Mọi vấn đề liên quan đến người dùng (bạn đọc) đều phải được thực thi tại đây. Hiển nhiên, thành phần trình bày được đặt tại chương trình của máy khách. CSDL chứa các thông tin về tài liệu phục vụ cho bạn đọc tra cứu, tìm kiếm, copy...thuộc trách nhiệm quản lý của các thư viện các trường và TTTTTL. Mỗi thư viện có một CSDL riêng nhưng giống nhau về cấu trúc. Do vậy, chương trình máy chủ đặt tại các thư viện đó và thành phần quản trị CSDL phải thuộc chương trình máy chủ. Thành phần ứng dụng được chia đều cho cả hai phía máy khách và máy chủ bởi vì chương trình có một số đặc điểm sau: Cả hai chương trình máy chủ và máy khách đều phải có chức năng gởi và nhận dữ liệu qua mạng. Dữ liệu của chương trình máy khách gởi cho máy chủ cần phải được tuân theo một khuôn dạng qui ước để chương trình trên máy chủ dễ xử lý và thuận tiện trong việc mở rộng chương trình. Mặt khác, chương trình máy chủ không chịu trách nhiệm về sự hiển thị kết quả trả lời trên máy khách nên chương trình máy khách phải có chức năng xử lý các dữ liệu trả lời của máy chủ để trình bày lên giao diện. Yêu cầu của Bạn đọc có thể là yêu cầu tìm kiếm tài liệu hoặc có thể là yêu cầu xem hay copy một tài liệu điện tử nào đó. Do vậy, chương trình máy chủ cần phải có chức năng nhận biết từng loại yêu cầu của bạn đọc để chuyển sang bộ phận xử lý thích hợp, trả kết quả đúng cho từng bạn đọc. Chương trình ứng dụng Chương trình máy khách Chương trình máy chủ TP. Trình bày TP. Ưng dụng TP. Ưng dụng TP. Quản trị CSDL Hình 12: Phân bố các thành phần cho ứng dụng Đặc tả các thành phần cho ứng dụng a. Thành phần trình bày: Hiển thị các biểu mẫu để bạn đọc điền các thông tin cần thiết về tài liệu để tìm kiếm. Chỉ tiêu tìm kiếm tài liệu gồm: Tìm kiếm theo thể loại tài liệu: Sách, tạp chí,CD ROM, luận án, tài liệu điện tử... Tìm kiếm theo tên Tác giả của tài liệu Tìm kiếm theo phân ngành tài liệu Tìm kiếm theo nhà xuất bản Tìm kiếm theo chủ đề chính của tài liệu Tìm kiếm chính xác theo tên tài liệu Tìm kiếm nhanh tài liệu, thông tin khoa học mới theo chủ đề tuỳ ý Các chỉ tiêu tìm kiếm ở trên là tuỳ chọn. Bạn đọc chỉ cần xác định ít nhất một điều kiện là có thể tìm kiếm. Nếu bạn đọc xác định càng nhiều điều kiện tìm kiếm thì kết quả có độ chính xác càng cao hơn. Kết quả tìm kiếm là một danh sách các tài liệu thoả mãn điều kiện kèm theo các mã số tương ứng của chúng. Ví dụ: Nếu điều kiện tìm là: Tên tác giả=Phan Huy Khánh thì kết quả có thể là: T0001 Lý thuyết ngôn ngữ hình thức và Automat. T0002 Công nghệ phần mềm. T0003 Phân tích và thiết kế hệ thống. Nhưng điều kiện tìm là: Tên tác giả=Phan Huy Khánh, Chủ đề=Công nghệ phần mềm - thì kết quả: T0002 Công nghệ phần mềm. Nếu muốn biết thêm thông tin chi tiết về tài liệu đó như Tác giả, Nhà xuất bản, Nội dung tóm tắt, Phân ngành...Bạn đọc có thể chọn tài liệu đó từ danh sách kết quả và yêu cầu “Xem chi tiết”. Trường hợp đối với tài liệu điện tử. Sau khi có kết quả tìm kiếm, bạn đọc có thể chọn một tên tài liệu trong danh sách đó và yêu cầu Copy hoặc Đọc Online. Sau đó, nội dung tài liệu sẽ được chức năng Download của trình duyệt Web (Web Browse) sao chép về máy cục bộ hoặc sẽ được hiển thị trên cửa sổ trình duyệt để bạn đọc tham khảo trực tiếp (văn bản, hình ảnh, âm thanh, video...). Trong thành phần trình bày của ứng dụng phải kể đến một bộ phận không thể thiếu đó là các thủ tục tình huống. Thủ tục tình huống là các chương trình con được tạo lập sẵn nhưng gọi thực hiện nó lại là các thao tác của người dùng trên giao diện. Có thể hiểu rắng mỗi tình huống của bạn đọc là một yêu cầu. Ví dụ: tình huống kích chuột vào nút “Đọc Online”. Một chương trình con thực hiện lấy Mã số tài liệu từ trong Danh sách kết quả tài liệu, tạo ra một câu yêu cầu và gởi yêu cầu này đến Server, Server cung cấp file tương ứng với mã số đó về cho chương trình. Trình duyệt sẽ đảm trách vai trò hiển thị file kết quả. b. Thành phần ứng dụng của máy khách Thành phần ứng dụng của máy khách thể hiện trong chương trình này bao gồm hai chức năng chính: Định dạng dữ liệu và gởi dữ liệu cho máy chủ; Xử lý kết quả nhận từ máy chủ và hiển thị. Định dạng dữ liệu và gởi dữ liệu cho máy chủ Chương trình ta đang xây dựng thuộc tầng ứng dụng. Theo tham chiếu của mô hình OSI (Open System Interconnection) 7 tầng thì mỗi tầng có một qui tắc truyền thông dữ liệu riêng gọi là giao thức. Vì vậy, chương trình phải có một qui ước về dữ liệu để có thể thống nhất trong việc viết chương trình trao đổi dữ liệu qua mạng máy tính. Xử lý kết quả nhận từ máy chủ và hiển thị Dữ liệu mà máy chủ gởi về cho máy khách là các chuỗi ký tự được định dạng bằng các ký tự đặc biệt. Ví dụ: Kết quả là một tập bản ghi của CSDL, các trường được phân cách bằng ký tự “^” và kết thúc một bản ghi bởi ký tự “~”. “T0001^Lý thuyết ngôn ngữ hình thức và Automat~T0002^Công nghệphần mềm~T0003^Phân tích và thiết kế hệ thống~” Tuỳ theo từng đối tượng đồ họa trên giao diện chương trình của bạn đọc mà chuỗi ký tự trên được xử lý và điền vào các đối tượng đồ hoạ. Java cung cấp một số tiện ích khá mạnh để xử lý chuỗi đó là thay thế một ký tự trong chuỗi bằng ký tự khác và các phương thức chẻ chuỗi thành các từ tố dựa trên các ký tự cho trước. Thuật toán hoạt động tổng quát của chương trình máy khách. Khởi tạo chương trình If có yêu cầu từ bạn đọc then Nhận các tham số tra cứu, tìm kiếm tài liệu Định dạng dữ liệu Gởi dữ liệu đến thư viện If có kết quả trả lời từ thư viện then Nhận dữ liệu và định dạng dữ liệu Hiển thị và đợi yêu cầu tiếp theo Else Thông báo không tìm thấy tài liệu Else tiếp tục đợi c. Thành phần ứng dụng của máy chủ Thành phần ứng dụng của máy chủ khá phức tạp hơn so với thành phần ứng dụng của máy khách bởi vì cùng một lúc có thể có nhiều yêu cầu của bạn đọc gởi đến và nội dung của yêu cầu của bạn đọc có thể khác biệt nhau đòi hỏi máy chủ phải có khả năng xử lý song song và có nhiều chức năng phục vụ hơn. Khối điều khiển chung (Master Process) Khối này có nhiệm vụ nhận tất cả yêu cầu kết nối của nhiều chương trình bạn đọc. Mỗi khi nhận được một yêu cầu kết nối từ máy khách, nó sẽ tạo ra một tiểu trình phụ (Slave Process). Nhiều tiểu trình phụ có thể hoạt động đồng thời với nhau. Mỗi máy khách có kết nối sẽ được một tiểu trình phụ đảm trách việc liên lạc. Vấn đề xây dựng chương trình khối này được trình bày chi tiết trong chương 3. Giải thuật cho khối này như sau: While true do Begin Đợi kết nối If có kết nối then Tạo tiểu trình phụ liên kết với máy có yêu cầu End Khối giao tiếp với bạn đọc Yêu cầu của bạn đọc rất đa dạng. Có thể là một yêu cầu truy vấn dữ liệu để tìm kiếm tài liệu, yêu cầu xác nhận bạn đọc, yêu cầu đăng ký tài liệu cũng có thể là yêu cầu xem hoặc copy một văn bản (Text/HTML), file hình ảnh, video, flie âm thanh, file chương trình...Do đó, khối này có nhiệm vụ xác định từng yêu cầu cụ thể để chuyển sang chương trình xử lý tương ứng thích hợp. Giải thuật cho khối này như sau: If yêu cầu là truy vấn dữ liệu then Gọi chương trình giao tiếp CSDL Else If yêu cầu tìm file then Gọi chương trình tìm file Else thông báo lỗi Khối tìm file Nếu yêu cầu của bạn đọc xác định một file cụ thể trên máy chủ thì khối này có nhiệm vụ tìm ra file đó, kiểm tra loại file văn bản hay nhị phân và gọi khối chuyển dữ liệu để truyền về cho bạn đọc. Khối chuyển dữ liệu Xác định loại dữ liệu mà có phương thức truyền thích hợp. Giải thuật cho khối này như sau: If dữ liệu là văn bản then Chuyển theo dạng chuỗi ký tự (Text) Else Chuyển theo dạng nhị phân (Byte) d. Thành phần quản trị CSDL Thành phần quản trị CSDL bao gồm khối giao tiếp CSDL và bản thân CSDL. Khối giao tiếp CSDL Có nhiệm vụ tạo một liên kết với CSDL được chỉ định và tiến hành truy vấn trên CSDL đó để lấy kết quả. Giải thuật cho khối này như sau: If yêu cầu là xác nhận bạn đọc then Gọi thủ tục xác nhận Else If yêu cầu tìm kiếm các thông tin về tài liệu then Gọi thủ tục tìm kiếm Else If yêu cầu là đăng ký mượn tài liệu then Gọi thủ tục đăng ký Bản thân CSDL Có nhiệm vụ lưu giữ các thông tin liên quan về tài liệu phục vụ cho công việc tìm kiếm của bạn đọc. Thiết kế CSDL không phải là một vấn đề của ứng dụng. Thực chất, chương trình sử dụng CSDL đã thiết kế sẵn của các thư viện như là một phương tiện để phục vụ cho mục đích xây dựng ứng dụng. CSDL phục vụ cho chương trình sẽ trình bày ở phụ lục A. CHƯƠNG III THIẾT KẾ CHƯƠNG TRÌNH Hoạt động của chương trình trên mạng Tương lai mạng của ĐHĐN sẽ là sự liên kết của các LAN của các trường ĐH, phù hợp với đặc điểm của hệ thống được mô tả trong chương trước. Bạn đọc truy cập và sử dụng thư viện từ xa ở một vị trí bất kỳ. Bạn đọc có thể ở làm việc với máy chủ trong một mạng LAN. Trường hợp mạng LAN này có kết nối với một LAN khác thì bạn đọc cũng có thể làm việc với máy chủ của mạng LAN đó.Ngoài ra, bạn đọc ở xa không thuộc một LAN nào cũng có thể sử dụng modem với đường dây điện thoại để sử dụng thư viện từ xa. Khi bạn đọc không muốn giao tiếp với một thư viện thì bạn đọc có thể chuyển sang một thư viện khác bằng cách kết nối với thư viện chỉ định trong chương trình qua địa chỉ của máy chủ thư viện. Ứng dụng có đề cập đến sử dụng thư viện điện tử, đó là các hoạt động đọc/xem tài liệu trực tiếp qua mạng, xem các thông tin là âm thanh, hình ảnh, hay các đoạn phim video hoặc copy tài liệu về máy cá nhân để sử dụng. Do vậy, để giải quyết tính khả thi của chương trình trên mạng, chương trình được xây dựng trên nguyên tắc hoạt động của World Wide Web (WWW). Dựa trên cơ sở của WWW, công việc thiết kế chương trình không còn quan tâm đến các yếu tố vật lý cấu thành của mạng vì sự truy cập của máy khách đến máy chủ dựa trên định danh (địa chỉ) của máy chủ trên mạng, nên bạn đọc ở vị trí bất kỳ có kết nối mạng đều có thể truy cập đến máy chủ của các thư viện để sử dụng chương trình. Khi bạn đọc muốn chuyển đổi sang thư viện khác thì chỉ cần xác định một địa chỉ máy chủ của thư viện được cung cấp sẵn trong chương trình để tiến hành kết nối đến đó. Kết nối của bạn đến thư viện cũ bị hủy bỏ và bạn đọc bắt đầu công việc giao tiếp dữ liệu với thư viện mới. Chức năng này tương tự như hoạt động của siêu liên kết (hyperlink) của Web. Trên Web, chuơng trình còn có thể sử dụng các chức năng trình bày văn bản, đồ họa, âm thanh, copy để hỗ trợ sử dụng thư viện điện tử. Cách thức xây dựng chương trình Chương trình dùng cho bạn đọc (Chương trình trên máy khách) Java có hai hướng lập trình. một là xây dựng chương trình ứng dụng độc lập, đó là các chuơng trình thực thi bình thường trên một hệ điều hành. Hai là xây dựng chương trình tích hợp trong các trình duyệt Web, đó là các Applet. Chương trình bạn đọc gồm một trình duyệt thông dụng mà hạt nhân điều khiển chính là các Applet. Chương trình Applet sẽ thực thi các hoạt động của ứng dụng như tạo giao diện, nhận các thông tin yêu cầu của bạn đọc về tài liệu, chuyển yêu cầu của bạn đọc đến một thư viện mà bạn đọc đang làm việc và nhận kết quả trả lời. Trình duyệt sẽ tham gia vào các chức năng phụ như hiển thị văn bản, âm thanh, hình ảnh và copy file. Chương trình dùng cho thư viện (Chương trình máy chủ). Mục đích chính của chương trình máy chủ là đáp ứng các đòi hỏi về thông tin tài liệu cho bạn đọc. Tuy nhiên để hoạt động trên mạng, chương trình máy chủ được xây dựng mô phỏng theo nguyên lý làm việc của máy chủ Web. Chương trình có khả năng nhận các kết nối của bạn đọc phát đi từ các trình duyệt Web, có khả năng tiếp nhận và xử lý đồng thời nhiều yêu cầu của bạn đọc gởi đến (xử lý đa truy cập tại cùng thời điểm). Đặc biệt, để phục vụ trọng tâm ứng dụng là tìm kiếm tài liệu và sử dụng các tài liệu điện tử, chương trình máy chủ phải có nhiệm vụ kết nối đến CSDL của thư viện, vấn tin và gởi kết quả trả lời cho bạn đọc, đồng thời phải chuyển được các loại file mà bạn đọc yêu cầu về trình duyệt đang sử dụng. Hoạt động của chương trình trên mạng Hoạt động của chương trình trên mạng máy tính được thể hiện trong hình vẽ sau đây: Gateway to database là một chương trình giao tiếp với CSDL Hình 13: Hoạt động của chương trình Các vấn đề chính khi xây dựng chương trình. Khuôn dạng dữ liệu truyền thông trên mạng Trong phần trên, chúng ta có đề cập đến phương án sử dụng chương trình Java tích hợp trên các trình duyệt Web. Do dó, ta có thể kết hợp sử dụng khuôn dạng dữ liệu của giao thức HTTP (HyperText Transfer Protocol-Giao thức dữ liệu dùng cho Web) để dùng cho chương trình mà không cần phải đi xây dựng một tập qui tắc định dạng dữ liệu riêng. HTTP là giao thức chuẩn dùng cho WWW nên có thể khai thác các điểm mạnh của Web như hiển thị hình ảnh, văn bản, âm thanh, video, download...để phục vụ cho chương trình. Trong chương trình, việc sử dụng HTTP chủ yếu để tiến hành gởi một yêu cầu cho Server và chuẩn bị cho việc gởi kết quả trả lời từ Server. Ơ đây, ta không cần phải dựng nguyên lại cấu trúc mà chỉ tập trung vào dòng đầu tiên của một yêu cầu hay một đáp ứng. Ví dụ: Một yêu cầu có thể có dạng GET HTTP/1.0 GET /SQL?Select+tentailieu+from+tailieu HTTP/1.0 Một đáp ứng có thể có dạng HTTP/1.0 200 Document follow Content-type: text/html --------Data---------- Trong Java, nhiệm vụ này được thực hiện bằng việc khởi tạo một địa chỉ URL (Uniform Resource Locator) và gắn các phương thức vào nó để gởi yêu cầu hoặc nhận dữ liệu qua URL. Nhưng trước khi gởi yêu cầu ta phải định dạng chuỗi yêu cầu theo qui định của HTTP. Xét đoạn mã sau: s="SELECT TAILIEU.Ma_TL,TAILIEU.Ten_TL FROM TAILIEU” s="&"+URLEncoder.encode(s); host=”” +"SQL?"+"Ketqua"+"&"+bang+s; try{ url=new URL(host); } catch(MalformedURLException e){} getAppletContext().showDocument(url); Trong đoạn mã trên, ta sử dụng phương thức URLEncode.encode(s) với tham số s là một chuỗi ký tự. Kết quả là ta được một chuỗi mới theo định dạng của HTTP. Chuỗi mới như sau: “SELECT+TAILIEU.Ma_TL,+TAILIEU.Ten_TL+FROM+TAILIEU” Với câu lệnh getAppletContext().showDocument(url) và giả sử tham số url có dạng: thì câu lệnh này được phiên dịch thành một HTTP Request có dạng: GET HTTP/1.0 Câu yêu cầu này đòi Server phải gởi tập tin có tên index.html về cho Client. Đoạn mã sau là chuẩn bị cho phần header của một câu trả lời với dữ liệu thuộc dạng văn bản từ Server: public void putHtmlMime() { putMime(200, "text/html"); } public void putMime(int iReturnCode, String sContentType) { put ("HTTP/1.0 " + iReturnCode + " Document follows\n" // Status-line + "Content-type: " + sContentType + "\n" + "\n"); // Empty Line } Xử lý nhiều truy cập của bạn đọc đến thư viện tại cùng thời điểm Một vấn đề đặt ra cho chương trình là khả năng nhiều người dùng. Trong cùng một thời điểm, có thể có nhiều hơn một bạn đọc kết nối đến Thư viện hoặc TTTTTL để tra cứu tài liệu. Một chương trình tuần tự xử lý và đáp ứng từng yêu cầu của bạn đọc là không thể chấp nhận mà phải có chức năng xử lý song song nhiều yêu cầu của bạn đọc. Giải quyết vấn đề này là xây dựng chương trình MultiThread. Một chương trình MultiThread là chương trình có nhiều hơn một đoạn chương trình khác nhau thực hiện gần như cùng một lúc. Hình 14: Chương trình tuần tự và chương trình MultiThread Chương trình MultiThread được sử dụng để viết chương trình cho Server. Sau khi chương trình chính tại Server nhận được một kết nối của bạn đọc thì lập tức nó tạo ra một tiểu trình (Thread). Tiểu trình này sẽ thực hiện mọi công việc giao tiếp với bạn đọc đó. Nếu có nhiều bạn đọc kết nối thì sẽ có nhiều Thread được tạo ra. Mỗi Thread tương ứng cho một bạn đọc cụ thể. Giao tiếp CSDL Các nhà thiết kế Java đã nhận thấy rằng lập trình giao tiếp CSDL trên mạng sẽ là một ưu thế mạnh của Java nên đã cung cấp một API (Application Programming Interface) chuẩn để mọi chương trình Java có thể kết nối với nhiều CSDL khác nhau trên các hệ thống khác nhau. API này là JDBC (Java Database Connectivity). JDBC là các lớp API dùng cho việc xây dựng các chương trình Java xử lý CSDL. Mục tiêu của JDBC cũng như ngôn ngữ Java là tính độc lập nền và khả năng làm việc với nhiều hệ quản trị CSDL trên một qui tắc chung. Phần bên dưới của API này là các trình quản lý điều khiển JDBC cho rất nhiều loại CSDL viết cho sự kết hợp giữa phần cứng và hệ điều hành. Tuy nhiên, bản thân JDBC đang trong giai đoạn phát triển và sự hỗ trợ JDBC của các nhà sản xuất DBMS (Database Management System) cũng còn hạn chế. Trên môi trường Windows, Sun cung cấp một trình điều khiển JDBC làm việc với ODBC. ODBC (Open Database Connectivity) là nghi thức do Microsoft phát triển để các ứng dụng trên môi trường Windows có thể truy xuất cơ sở dữ liệu bất kỳ. Query Statement JdbcOdbcDriver DATABASE JDBC ODBC Chương trình được viết trên JDK 1.11 do Sun cung cấp. Phiên bản này chỉ hỗ trợ JDBC cho ODBC. Do vậy chương trình phải sử dụng cả JDBC và ODBC. Việc truy xuất cơ sở dữ liệu bằng Java phải thông qua cầu nối JDBC và ODBC. Cầu nối JDBC/ODBC là một lớp mỏng bên trên JDBC để chuyển đổi các lời gọi đến JDBC sang các lời gọi cho ODBC. Hình 15: Giao tiếp JDBC-ODBC Mã chương trình minh hoạ: String execQuery(String query){ String result=""; String url="jdbc:odbc:MS Access 97 Database"; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn=DriverManager.getConnection(url,"Myname","Password"); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(query); Int col=(rs.getMetaData()).getColumnCount(); while(rs.next()){ for(int i=1;i<=col;i++){ if(!rs.wasNull()){ result+=rs.getString(i); } } catch(SQLException e){System.out.println(e.getMessage());} catch(ClassNotFoundException e){System.out.println(e.getMessage());} return result; } Tổng thể chương trình Theo kết quả phân tích hệ thống ở chương 2, ứng dụng được chia làm hai chương trình chính : Một chương trình cho máy chủ thư viện và một chương trình cho máy khách (bạn đọc). Chương trình của máy chủ bao gồm các lớp: Lớp điều khiển chung(Server class): có nhiệm vụ nhận các kết nối từ bạn đọc và tạo ra một tiểu trình mới để giao tiếp hai chiều với bạn đọc. Lớp giao tiếp (SvrConnection class): có nhiệm vụ quản lý mọi giao tiếp giữa máy chủ và một máy khách. Đặc điểm nổi bật của chương trình này là nạp một chương trình Server mở rộng thích hợp sau khi chương trình Server mở rộng đã xác định được tài nguyên và chuyển các tham số cần thiết của một yêu cầu của một bạn đọc cho chương trình Server mở rộng đồng thời đóng vai trò là công cụ để các chương trình Server mở rộng chuyển dữ liệu về chương trình máy khách. Chương trình này được thiết kế để chạy trong một tiểu trình. Lớp Server mở rộng (ServerExtend class): có nhiệm vụ xác định tài nguyên mà bạn đọc yêu cầu (file hay chương trình giao tiếp CSDL) để gọi chương trình xử lý thích hợp. Nó còn có hai lớp phụ trợ sau: + Chương trình file (FileSeek class): có nhiệm vụ xác định file mà bạn đọc yêu cầu và chuyển file đó về cho bạn đọc. + Chương trình giao tiếp CSDL (SQL class): có nhiệm vụ nhận các yêu cầu truy vấn từ bạn đọc, vấn tin trên CSDL và gởi kết quả về cho chương trình máy khách. Dự án của chương trình bạn đọc gồm có nhiều chương trình nhỏ. Mỗi chương trình xử lý một nhiệm vụ riêng như Tra cứu, Hiển thị kết quả, Đăng ký tài liệu, Kiểm tra bạn đọc...Nhìn chung, các chương trình nhỏ này đều có ba chức năng cơ bản: Xử lý tình huống trên giao diện để nhận tham số cho các yêu cầu. Định dạng dữ liệu và gởi cho máy chủ. Xử lý kết quả trả lời từ máy chủ và hiển thị. CHƯƠNG TRÌNH PHỤC VỤ BẠN ĐỌC QUA MẠNG CHƯƠNG TRÌNH CỦA MÁY CHỦ THƯ VIỆN CHƯƠNG TRÌNH CỦA BẠN ĐỌC LỚP ĐIỀU KHIỂN (SERVER CLASS) LỚP GIAO TIẾP (SVRCONNECTION CLASS) LỚP MỞ RỘNG (SERVEREXTEND CLASS) TÌM FLIE GIAO TIẾP CSDL LỚP TRỢ GIÚP KẾT NỐI LỚP TRA CỨU TÀI LIỆU LỚP HIỂN THỊ KẾT QUẢ LỚP KIỂM TRA BẠN ĐỌC LỚP ĐĂNG KÝ TỪ XA Hình 16: Tổng thể chương trình Chương trình của máy chủ thư viện Lớp điều khiển chung - Lớp Server Là chương trình đóng vai trò điều khiển hoạt động của máy chủ, công việc đầu tiên của chương trình này là nhận các tham số để thiết lập cấu hình cho chương trình máy chủ như cổng ứng dụng, thư mục gốc, thư mục chương trình, thư mục dữ liệu...Sau đó, chương trình khởi tạo một vòng lặp vô hạn đợi kết nối từ bạn đọc. Nếu có kết nối, nó tạo ra một socket (công cụ này đảm trách vai trò truyền thông dữ liệu giữa một máy khách và một máy chủ qua mạng) và một tiểu trình đồng thời đẩy một đối tượng của lớp giao tiếp và socket vào tiểu trình vừa đư

Các file đính kèm theo tài liệu này:

  • docTMdoantn.doc
  • rarCHUONGTRINH.rar