1. Trang chủ
  2. » Luận Văn - Báo Cáo

phân tích và lựa chọn mô hình sử dụng

391 1,1K 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phân tích và lựa chọn mô hình sử dụng
Tác giả Nguyễn Đức Cường, Lê Thành Sách
Trường học Trường Đại học Công nghệ Thông tin - Đại học Quốc gia Hà Nội
Chuyên ngành Hệ thống Thông tin, Quản trị Thư Viện, Công nghệ Mạng
Thể loại Báo cáo thực tập
Năm xuất bản 2014
Thành phố Hà Nội
Định dạng
Số trang 391
Dung lượng 2,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngay cả đốivới một số thư viện dùng hệ thống máy tính để phục vụ tra cứu vàquản lý cũng còn nhiều nhược điểm như : giao diện người sử dụngphức tạp, phần mềm chỉ sử dụng trên máy đơn hoặc

Trang 1

MỤC LỤC

CHƯƠNG MỘT: GIỚI THIỆU NỘI DUNG ĐỀ TÀI 3

I HỆ THỐNG QUẢN LÝ THƯ VIỆN 3

1 Nhiệm vụ của một hệ thống quản lý thư viện : 3

2 Tổ chức của đa số hệ thống thư viện hiện nay : 3

3 Hướng phát triển của hệ thống thư viện hiện đại : 4

II HƯỚNG THỰC THI CỦA ĐỀ TÀI : 5

CHƯƠNG HAI: PHÂN TÍCH VÀ LỰA CHỌN MÔ HÌNH SỬ DỤNG 6

I CÁC CẤU HÌNH CƠ SỞ DỮ LIỆU CLIENT/SERVER : 6

1 Mô hình cơ sở dữ liệu tập trung (Centralized database model): 6

2 Mô hình cơ sở dữ liệu theo kiểu file – server( File – server database model) : 7

3 Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model) : 7

4 Mô hình cơ sở dữ liệu Client/Server (Client/Server database model) : 8

5 Distributed database model (Mô hình cơ sở dữ liệu phân tán): 9

II MÔ HÌNH ĐƯỢC SỬ DỤNG : 9

1 Server: 10

2 Database : 10

CHƯƠNG BA: KIẾN TRÚC MẠNG VÀ MÔ HÌNH TCP/IP 11 I KIẾN TRÚC MẠNG VÀ NHỮNG VẤN ĐỀ LIÊN QUAN: 11

1 Sự phân cấp Protocol: 11

2 Kiến trúc mạng 11

Trang 2

II MÔ HÌNH TCP/IP (TRANSMISSION CONTROL PROTOCOL/

INTERNET PROTOCOL): 14

1 Host-to-network layer (Physical layer): 15

2 Internet layer: 15

3 Transport layer: 15

4 Application layer (Process layer): 16

CHƯƠNG BỐN: CƠ CHẾ TRUYỀN NHẬN TRONG JAVA 17

I CÁC KIẾN THỨC CƠ BẢN VỀ NETWORKING 17

II NETWORKING: 20

1 Giao tiếp giữa phần hiện thực client và Browser ở máy local: 21

2 Sockets 22

3 Threads , Synchronization và Exceptions: 28

CHƯƠNG NĂM: CƠ SỞ DỮ LIỆU 33

I JDBC: 33

1 JDBC là gì ? 33

2 Cấu trúc JDBC : 34

3 ODBC và JDBC : 35

4 Sử dụng JDBC driver : 35

II SỬ DỤNG JDBC ĐỂ TRUY SUẤT CƠ SỞ DỮ LIỆU: 36

1 Đang ký Cơ sở dữ liệu vơi JDBC: 36

III KẾT NỐI TỚI C Ơ SỞ DỮ LIỆU: 36

IV TRUY SUẤT C Ơ SỞ DỮ LIỆU: 37

V ĐỐI TƯỢNG RESULTSET: 37

VI ĐỐI TƯỢNG RESULTSETMETADATA: 39

VII ĐỐI TƯỢNG DATABASEMETADATA: 40

VIII LẤY THÔNG TIN TRÊN TABLE: 40

CHƯONG SÁU: THIẾT KẾ CƠ SỞ DỮ LIỆU 42

I GIỚI THIỆU CÔNG CỤ HỖ TRỢ THIẾT KẾ UML: 42

Trang 3

1 Khái quát phương thức UML: 42

2 Chiến lược phương pháp học: 45

II HIỆN THỰC THIẾT KẾ CHƯƠNG TRÌNH BẰNG RATIONAL ROSE: 53 CHƯƠNG BẢY: HIỆN THỰC CHI TIẾT 54

I NGUYÊN TẮC HOẠT ĐỘNG: 54

1 Các loại User và quyền, cách đăng ký: 54

2 Cơ chế login 55

3 Cơ chế mượn sách 55

4 Cơ chế xử lý vi phạm 55

II MÔ TẢ CƠ SỞ DỮ LIỆU: 55

III MÔ TẢ CHƯƠNG TRÌNH: 59

1 Tổng quan: 59

2 Mô tả chi tiết về cơ chế và quá trình cập nhật dữ liệu : 61

3 Mô tả chi tiết các dữ liệu đặc biệt 78

4 Cơ chế timeout : 79

5 Server 80

6 Client: 80

7 Giao tiếp giữa client và server: 81

CHƯƠNG TÁM: KIẾN TRÚC MỚI VÀ HƯỚNG PHÁT TRIỀN CHƯƠNG TRÌNH 83

I PHƯƠNG THỨC RMI 83

1 Đặc điểm RMI 83

2 Phát triển mã cho RMI: 83

II KẾT QUẢ CHƯƠNG TRÌNH: 84

1 Những điểm chương trình làm được : 84

2 Những điểm chưa làm được và hướng giải quyết: 84

III HƯỚNG PHÁT TRIỂN CHƯƠNG TRÌNH : 85

CHƯƠNG CHÍN: SOURCE CHƯƠNG TRÌNH 86

Trang 4

I SERVER: 86

II CLIENT: 143

TÀI LIỆU THAM KHẢO 267

Trang 5

CHƯƠNG MỘT: GIỚI THIỆU NỘI DUNG ĐỀ TÀI

I Hệ thống quản lý thư viện.

1 Nhiệm vụ của một 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 hiện có, phục vụ công tác tra cứu, nghiên cứu củađộc giả Hệ thống quản lý thư viện phải nắm giữ được số lượng sáchtrong thư viện, phân loại sách theo từng chương mục cụ thể để có thể

dễ dàng mã hoá, tiện cho việc truy tìm Ngoài ra hệ thống cũng phảibiết được tình trạng tài liệu hiện tại, phải được cập nhật thông tinmỗi khi bổ sung các tư liệu mới hoặc thanh lý các tư liệu không cógiá trị Đối với việc phục vụ tra cứu, hệ thống phải đưa ra mục lụcphân loại các sách có trong thư viện, sao cho độc giả dễ dàng tìmđược những tư liệu cần thiết, bên cạnh đó hệ thống cũng phải quản lýđược những độc giả có yêu cầu mượn tư liệu Thông thường việcphân loại sách và quản lý độc giả là những công việc phức tạp nhấttrong hệ thống quản lý thư viện

2 Tổ chức của đa số hệ thống thư viện hiện nay :

Các hệ thống thư viện của chúng ta hiện nay thường được tổchức và hoạt động theo cách như sau :

a Bổ sung, bảo quản và thanh lý sách :

Sách nhập về được đăng ký tại phòng phân loại – biên mục.Tại đây cuốn sách sẽ được xem xét nội dung, thể loại qua đó phânloại cuốn sách theo chuyên mục sẵn có trong thư viện Đồng thờicuốn sách cũng được gắn với một mã số để tiện cho việc tìm kiếm,qua mã số này nhân viên thư viện có thể biết được cuốn sách nằm ở

vị trí nào trong kho lưu trữ Đôi khi một cuốn sách có hai loại mã số,một để phục vụ cho việc sắp xếp và tìm kiếm trong kho, một để quản

lý về thời gian sách nhập vào thư viện, tiện cho việc bảo quản, thanh

lý Sau khi cuốn sách có mã số, nó sẽ được cung cấp một thẻ mục

Trang 6

lục, trên đó thường có tên sách, nội dung, tác giả, nhà xuất bản, nămxuất bản… Đối với hệ thống tra cứu sách thủ công, thẻ mục lục làmột tấm cạc được đặt trong hệ thống mục lục của thư viện Với các

hệ thống có trang bị máy tính, đó là những record trong cơ sở dữ liệucủa thư viện Theo thời gian, những cuốn sách bị hư hỏng hoặc nộidung không còn phù hợp nữa sẽ được đem ra thanh 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ả sẽ đăng ký làm thẻvới thư viện và sẽ được cấp phiếu đăng ký Sau khi điền một sốthông tin cá nhân và được chứng nhận của cơ quan có thẩm quyền,phiếu đăng ký sẽ được thư viện xác nhận và lưu giữ, đồng thời độcgiả cũng được cấp thẻ thư viện Trên thẻ thư viện có mã số bạn đọc,qua đó thư viện có thể tìm lại thông tin về độc giả nhanh chóng khicần thiết, và nói chung thư viện sẽ quản lý bạn đọc qua mã số này

Khi có nhu cầu nghiên cứu, bạn đọc sẽ dò tìm mã số của tưliệu mình muốn qua hệ thống mục lục theo chủ đề, nội dung, tác giảbằng tay hoặc bằng 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 và mã số bạn đọc, tên và mã số sách mượn, ngày mượn và ngàytrả Sau khi xác nhận tính đúng đắn của phiếu, nhân viên thư viện sẽcăn cứ vào mã số cuốn sách để tìm ra cuốn sách trong kho tư liệu vàđem cho độc giả Định kỳ, nhân viên thư viện phải kiểm tra lại cácphiếu mượn sách để thống kê số sách mượn, sách còn trong thư viện,qua đó thông báo cho độc giả biết cuốn sách nào đã hết, lúc nào sẽ cókhi độc giả yêu cầu Nhân viên cũng phải kiểm tra những độc giả nào

vi phạm quy chế, chẳng hạn đã mượn quá số lượng sách cho phép,sách mượn quá hạn trả, làm mất sách để có biện pháp xử lý thíchứng

Trang 7

c Nhược điểm của hệ thống quản lý thư viện trên :

Hệ thống trên dùng nhiều đến giấy tờ, vì vậy việc bảo quản,truy tìm mất nhiều thời gian Hệ thống dễ mắc phải sai sót cũng nhưchưa tiện lợi với bạn đọc Công việc quản lý độc giả rất khó khăn khi

số lượng bạn đọc lớn, bởi việc kiểm tra thời gian mượn trả sách, sốlượng sách mượn là thủ công, vì vậy rất dễ thất thoát tư liệu Việcphân loại sách và tạo ra mục lục cần khá nhiều thời gian Ngay cả đốivới một số thư viện dùng hệ thống máy tính để phục vụ tra cứu vàquản lý cũng còn nhiều nhược điểm như : giao diện người sử dụngphức tạp, phần mềm chỉ sử dụng trên máy đơn hoặc mạng cục bộ, tổchức cơ sở dữ liệu thường bị hạn chế về dung lượng cũng như về tốc

độ vì đa số không phải là những cơ sở dữ liệu chuẩn của các hãngphần mềm Mặc dù có máy tính thì việc đăng ký mượn sách cũngphải tiến hành bằng tay do đó chưa tận dụng hết được các ưu điểmcủa máy tính

3 Hướng phát triển của hệ thống thư viện hiện đại :

Ngày nay cùng với sự phát triển của máy tính, sự ra đời củamạng Internet, các hệ thống thư viện sẽ có nhiều đổi mới Đa số cáccông việc sẽ được tiến hành trên máy tính, từ việc phân loại, tra cứucho đến mượn sách sẽ được tiến hành trên máy tính với các ưu điểm

là nhanh hơn, chính xác hơn và thuận lợi hơn Người ta có thể khôngcần phải đến thư viện để tra cứu sách mà có thể phải làm tại nhà, vớiđiều kiện là máy tính của anh ta kết nối vào mạng có hệ thống máytính của thư viện Việc quản lý bạn đọc tiến hành bằng máy tính sẽđơn giản và chính xác hơn nhiều Thậm chí, có thể thực hiện một thưviện "từ xa", nghĩa là bạn đọc có thể đọc cuốn sách mà mình thíchngay tại nhà, thông qua mạng vi tính Mặt khác, với sự hỗ trợ củacông nghệ mutlimedia trên máy tính, độc giả có thể sẽ không còncảm thấy khô khan khi đọc những trang sách trên máy tính nữa, mà

có thể có các đoạn nhạc, phim, ảnh và từ điển thuật ngữ liên kết,tương tự như các trang Web sống động…

Trang 8

II Hướng thực thi của đề tài :

Hiện nay có rất nhiều các phần mềm phục vụ cho việc quản lýthư viện được viết bằng nhiều ngôn ngữ khác nhau Từ những phầnmềm đầu tiên chỉ có thể sử dụng trên máy đơn, nghĩa là cả cơ sở dữliệu là chương trình truy xuất phải được cài đặt trên cùng một máyđến các phần mềm sử dụng trên mạng, nghĩa là các máy truy xuất tớicùng một cơ sở dữ liệu được cài đặt sẵn trên một maý thì những phầnmềm này đều mắc phải những nhược điểm là phải có phần mềm đikèm mới sử dụng được Và thường thì những phần mềm này do thưviện quản lý, vì thế độc giả muốn sử dụng thì phải đến thư viện

Nếu như chúng ta có thể truy xuất cơ sở dữ liệu của thư việnthông qua mạng máy tính mà không cần phải cài đặt bất cứ phầnmềm chuyên biệt nào thì thật thuận tiện Ngày nay nhờ sự tiến bộcủa các ngôn ngữ lập trình và các tiện ích trên mạng, chúng ta có thểlàm được điều này Và đề tài sẽ đưa ra một hướng thực thi việc truyxuất cơ sở dữ liệu từ xa thông qua một công cụ hổ trợ sẵn của mạngInternet là các trình duyệt Web Việc hiện thực sẽ được áp dụng đốivới hệ thống thư viện như là một thí dụ điển hình Chương tiếp theochúng ta sẽ xem xét các mô hình quản lý cơ sở dữ liệu và sẽ chọn môhình cũng như ngôn ngữ thực thi

Trang 9

CHƯƠNG HAI: PHÂN TÍCH VÀ LỰA CHỌN MÔ HÌNH

SỬ DỤNG

I Các cấu hình cơ sở dữ liệu Client/Server :

Nhìn chung mọi ứng dụng cơ sở dữ liệu đều bao gồm cácphần:

 Thành phần xử lý ứng dụng (Application processingcomponents)

 Thành phần phần mềm cơ sở dữ liệu (Database software components)

 Bản thân cơ sở dữ liệu (The database itself)

Các mô hình về xử lý cơ sở dữ liệu khác nhau là bởi cáctrường hợp của ba loại thành phần nói trên định vị ở đâu Thôngthường có năm mô hình kiến trúc dựa trên cấu hình phân tán về truynhập dữ liệu của hệ thống máy tính Client/Server :

 Mô hình cơ sở dữ liệu tập trung (Centralized database model)

 Mô hình cơ sở dữ liệu theo kiểu file-server(File – server database model)

 Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model)

 Mô hình cơ sở dữ liệu Client/Server (Clent/Server database model)

 Mô hình cơ sở dữ liệu phân tán (Distributed database model)

1. Mô hình cơ sở dữ liệu tập trung (Centralized database

model):

Trong mô hình này các thành phần xử lý ứng dụng, phần mềm

cơ sở dữ liệu và bản thân cơ sở dữ liệu đều ở trên cùng một bộ xử lý

Ví dụ người dùng máy tính cá nhân có thể chạy các chương trình ứngdụng có sử dụng phần mềm cơ sở dữ liệu Oracle để truy nhập tới cơ

sở dữ liệu nằm trên điã cứng của máy tính cá nhân đó Từ khi các

Trang 10

thành phần ứng dụng, phần mềm cơ sở dữ liệu và bản thân cơ sở dữliệu cùng nằm trên một máy tính thì ứ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 chính được thực hiện bởinhiều tổ chức mà vẫn phù hợp với mô hình tập trung Ví dụ một bộ

xử lý mainframe chạy phần mềm cơ sở dữ liệu IMS hoặc DB2 củaIBM có thể cung cấp cho các trạm làm việc ở các vị trí phân tán sựtruy cập nhanh chóng tới cơ sở dữ liệu trung tâm Tuy nhiện trong rấtnhiều hệ thống như vậy, cả 3 thành phần của ứng dụng cơ sở dữ liệuđều thực hiện trên cùng 1 máy mainframe do vậy cấu hình này cũngtương tự mô hình tập trung

2. Mô hình cơ sở dữ liệu theo kiểu file – server( File – server

database model) :

Trong mô hình cơ sở dữ liệu theo kiểu file – server các thànhphần ứng dụng và phần mềm cơ sở dữ liệu ở trên một hệ thống maýtính và các file vật lý tạo nên cơ sở dữ liệu nằm trên hệ thống maýtính khác Một cấu hình như vậy thường được dùng trong môi trườngcục bộ, trong đó một hay nhiều hệ thống máy tính đóng vai trò củaserver, lưu dữ các file dữ liệu cho hệ thống máy tính khác thâm nhậptới Trong môi trường file – server, phần mềm mạng được thi hành

và làm cho phần mềm ứng dụng cũng như phần mềm cơ sở dữ liệutrên hệ thống của người dùng cuối coi các file hoặc cơ sở dữ liệu trênfile server thực sự như là trên máy tính chính họ

Mô hình file server rất giống với mô hình tập trung Các file

cơ sở dữ liệu nằm trên máy khác vơí các thành phần ứng dụng vàphần mềm cơ sở dữ liệu Tuy nhiên các thành pphần ứng dụng và cácphần mềm cơ sở dữ liệu có thể có cùng một thiết kế để vận hành mộtmôi trường tập trung Thực chất phần mềm mạng đã làm cho phầnmềm ứng dụng và phần mềm cơ sở dữ liệu tưởng rằng chúng đangtruy xuất cơ sở dữ liệu trong môi trường cục bộ Một môi trường như

Trang 11

thể phải thực hiện cơ chế đồng thời cho phép nhiều người sử dụngcuối có thể truy nhập vào cùng cơ sở dữ liệu.

3 Mô hình xử lý từng phần cơ sở dữ liệu (Database extract

processing model) :

Trong một mô hình khác trong đo một cơ sở dữ liệu ở xa cóthể được truy cập bởi phần mềm cơ sở dữ liệu, được gọi là xử lý dữliệu từng phần Với mô hình này, người sử dụng có thể tại một máytính cá nhân kết nối với hệ thống máy tính ở xa nơi có dữ liệu mongmuốn Người sử dụng sau đó có thể tác động trực tiếp đến phần mềmchạy trên máy ở xa và tạo yêu cầu để lấy dữ liệu từ cơ sở dữ liệu đó.Người sử dụng cũng có thể chuyển dữ liệu từ máy tính ở xa về chínhmáy tính của mình và vào điã cứng và có thể thực hiện việc sao chépbằng phần mềm cơ sở dữ liệu trên 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ắc chắn là

dữ liệu nằm ở đâu và làm như thế nào để truy nhập và lấy dữ liệu từmột máy tính ở xa Phần mềm ứng dụng đi kèm cần phải có trên cảhai hệ thống máy tính để kiểm soát để kiểm soát sự truy cập vàchuyển dữ liệu giữa hai hệ thống Tuy nhiên, phần mềm cơ sở dữliệu chạy trên hai máy không cần biết rằng việc xử lý cơ sở dữ liệu từ

xa đang diễn ra vì người sử dụng tác động tới chúng một cách độclập

4 Mô hình cơ sở dữ liệu Client/Server (Client/Server

database model) :

Trong mô hình cơ sở dữ liệu Client/Server, cơ sở dữ liệu nằmtrên một máy khác với một máy có thành phần xử lý ứng dụng Nhưng phần mềm cơ sở dữ liệu được tách ra giữa hệ thống Clientchạy các chương trình ứng dụng và hệ thống Server lưu trữ dữ liệu.Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thốngClient đưa ra yêu cầu cho phần mềm cơ sở dữ liệu trên máy client,phần mềm này sẽ kết nối với phần mềm cơ sở dữ liệu chạy trên

Trang 12

Server Phần mềm cơ sở dữ liệu trên Server sẽ truy cập vào cơ sở dữliệu và gửi trả kết quả cho máy Client.

Mới nhìn , mô hình cơ sở dữ liệu Client/Server có vẻ giốngnhư mô hình file-server, tuy nhiên mô hình Client/Server có rấtnhiều thuận lợi hơn mô hình file-server Với mô hình file- server,thông tin gắn với sự truy cập cơ sở dữ liệu vật lý phải chạy trên toànmạng Một giao tác yêu cầu nhiều sự truy cập dữ liệu có thể gây ratắc nghẽn lưu lượng truyền trên mạng

Giả sử một người dùng cuối tạo một query để lấy dữ liệu tổng

số, yêu cầu đòi hỏi lấy dữ liệu từ 1000 bản ghi, với cách tiếp cận server nội dung của tất cả 1000 bản ghi phải đưa lên mạng, vì phầnmềm cơ sở dữ liệu chạy trên máy người sử dụng phải truy cập từngbản ghi để thỏa mãn yêu cầu của người sử dụng Với cách tiếp cận

file-cơ sở dữ liệu Client/Server, chỉ có query khởi động ban đầu và kếtquả cuối cùng đưa lên mạng, phần mềm cơ sở dữ liệu chạy trên máylưu giữ cơ sở dữ liệu sẽ truy nhập các bản ghi cần thiết, xử lý chúng

và gọi các thủ tục cần thiết để đưa ra kết quả cuối cùng

d Fron-end software

Trong mô hình cơ sở dữ liệu Client/Server, thường nói đếncác phần mềm front-end software và back-end software Front-endsoftware được chạy trên một máy tính cá nhân hoặc một workstation

và đáp ứng yêu cầu đơn lẽ riêng biệt, phần mềm này đóng vai trò củaClient trong ứng dụng cơ sở dữ liệu Client/Server và thực hiện cácchức năng hướng tới nhu cầu người dùng cuối cùng, phần mềmFront-end software thường được chia thành các loại sau :

 End user database software : Phần mềm cơ sở dữ liệu này có thể được thực hiện bởi người sử dụng cuối trên chính hệ thống của họ để truy nhập các cơ sở dữ liệu cục bộ nhỏ cũng như kết nối với các cơ sở dữ liệu lớn hơn trên cơ sở dữ liệu Server

 Simple query and reporting software : Phần mềm này được thiết kế để cung cấp các công cụ dễ dùng hơn trong việc lấy dữ

Trang 13

liệu từ cơ sở dữ liệu và tạo các báo cáo đơn giản từ cơ sở dữ liệu đã có.

 Data analysis software : Phần mềm này cung cấp các hàm về tìm kiếm, khôi phục, chúng có thể cung cấp các phân tích phứctạp cho người dùng

 Application development tools : Các công cụ này cung cấp cáckhả năng về ngôn ngữ mà các nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng các ứng dụng cơ sở dữ liệu của họ Các công cụ ở đây bao gồm các công cụ về thông dịch, biên dịch đơn đến các công cụ CASE (Computer Aided Software Engineering), chúng tự động tất cả các bước trong quá trình phát triển ứng dụng và sinh ra chương trình cho các ứng dụng cơ sở dữ liệu

 Database administration Tools : Các công cụ này cho phép người quản trị cơ sở dữ liệu sử dụng máy tính cá nhân hoặc trạm làm việc để thực hiện việc quản trị cơ sở dữ liệu như địnhnghĩa các cơ sở dữ liệu, thực hiện lưu trữ hay phục hồi

e Back-end software

Phần mềm này bao gồm phần mềm cơ sở dữ liệuClient/Server và phần mềm mạng chạy trên máy đóng vai trò làServer cơ sở dữ liệu

5 Distributed database model (Mô hình cơ sở dữ liệu phân

tán):

Cả hai mô hình File – Server và Client/Server đều giả định là

dữ liệu nằm trên một bộ xử lý và chương trình ứng dụng truy nạp dữliệu nằm trên một máy khác, còn mô hình cơ sở dữ liệu phân tán lạigiả định bản thân cơ sở dữ liệu có ở trên nhiều máy khác nhau

II Mô hình được sử dụng :

Qua các mô hình cơ sở dữ liệu trên, dễ thấy mô hìnhClient/Server là mô hình phù hợp các yêu cầu đặt ra nhất Vấn đề ở

Trang 14

đây là chúng ta sẽ hiện thực mô hình này bằng ngôn ngữ gì và hiệnthực như thế nào Các ngôn ngữ lập trình có thể xây dựng nhữnggiao diện đẹp và thuận tiện thì thường không có cơ sở dữ liệu tốt đikèm, và thường hạn chế khả năng khi sử dụng trên mạng diện rộng.Các phần mềm về cơ sở dữ liệu có thể sử dụng mô hìnhClient/Server thì thường đòi hỏi có tính chuyên nghiệp cao Và hầuhết các biện pháp này thì đều có nhược diểm là phải có sự cài đặttrên máy đơn trước khi móc nối với Server Ngôn ngữ Java đưa ramột hướng giải quyết đơn giản các vấn đề trên Với việc thực thi cácApllet nhúng trong trang Web, chúng ta không cần có bất cứ một sựcài đặt nào mà vẫn sử dụng được các tính năng của chương trình(Với điều kiện là có một trình duyệt Web và máy tính đã được nốimạng) Do tính năng mạng là được cung cấp sẵn nên Java có thểdùng trên mạng Internet dễ dàng Với tính độc lập nền, người sửdụng không phải e ngại việc phần mềm không tương thích với hệđiều hành của mình Đặc biệt là Java có thể kết nối với hầu hết các

cơ sở dữ liệu chuẩn của các hãng phần mềm thông qua JDBC, vì vậy

cơ sở dữ liệu của hệ thống có thể xây dựng bằng hệ cơ sở dữ liệuchuẩn, chẳng hạn Oracle để quản lý dữ liệu một cách chặt chẽ( Ở đâychúng ta sẽ dùng cơ sở dữ liệu là Ms Access trong môi trườngWindow 95) Mô hình quản lý thư viện được xây dựng như sau :

Người quản lý thư viện sẽ thông qua một Applet để quản lý hệthống thư viện Chương trình này sẽ cho phép administrator bổ sungsách vào thư viện, hủy bỏ sách, đăng ký bạn đọc, quản lý việc mượnsách của bạn đọc Nếu thực hiện việc đọc sách từ xa, thì chươngtrình này sẽ tạo ra "tài khoản" để độc giả có thể truy cập tư liệu quamạng Cũng có thể đưa chức năng quản lý, phân loại các trang Webvào hệ thống dữ liệu của thư viện

Người sử dụng sẽ tra cứu hệ thống mục lục của thư viện thôngqua một applet trên một trang Web Như vậy chỉ cần một trình duyệthiểu Java là người đọc có thể tra cứu mục lục thư viện tại bất cứ đâu

Trang 15

Applet này sẽ tạo ra hệ thống menu cho phép người đọc lựa chọncách thức tra cứu sách : theo tên sách, theo tác giả, nhà xuất bản,theo nội dung,… Tuy nhiên nếu người đọc muốn mượn sách về nhà,thì phải liên hệ với người quản lý thư viện và thực hiện việc làm thủtục mượn sách thông qua Applet của Administrator đã nói ở trên.Tương lai nếu chúng ta lưu trữ tất cả các tư liệu trên đĩa từ thì có thểcho phép người đọc đọc tư liệu từ xa qua applet này, tất nhiên là saukhi người đọc đã đăng ký và được cấp một mật khẩu cho phép truycập.

6 Server:

Đây là một chương trình Server đúng nghĩa Chương trình này

có nhiệm vụ sẽ lắng nghe và phục vụ các yêu cầu của User vàAdministrator, là cầu nối trung gian tới cơ sở dữ liệu

Trang 16

CHƯƠNG BA: KIẾN TRÚC MẠNG VÀ MÔ HÌNH TCP/IP

III Kiến truc mạng và những vấn đề liên quan:

Protocol layer N

Protocol layer N-1

Protocol layer 2

Protocol layer 1Layer N/N-1

Interface

Trang 17

9 Kiến trúc mạng

Mạng được tổ chức thành một loạt các lớp, mỗi một lớp cónhiệm vụ cung cấp các dịch vụ cho lớp bên trên của nó và có thể gọicác dịch vụ mà lớp bên dưới nó cung cấp Việc liên lạc giữa các lớptrong mạng phải theo một số luật hay quy ước nào đó gọi là nghithức (protocol)

 Sắp xếp thứ tự các thông điệp (Message Sequencing)

 Điều khiển tốc độ của dòng dữ liệu cho phù hợp giữa hai bên (flow control)

 Quản lý chiều dài thông điệp cho phù hợp với đường truyền

 Khả năng multiplex và demultiflex phải được thực hiện khôngcho người sử dụng biết

 Vấn đề tìm đường (routing)

b Mô hình OSI (Open System Interconnection

SVTH: Nguyeãn Thò Huyeàn Vy Trang 17

Communication Subnet Boundary

Presentation

Session

Transpor t

Internal subnet protocol

Trang 19

Lớp này có nhiệm vụ chia nhỏ dữ liệu đưa xuống từ lớp Networkthành các frame dữ liệu (frame thường dài từ vài trăm byte đến vàingàn byte) để truyền đi và tổ chức nhận sao cho đúng thứ tự cácframe Cung cấp khả năng truyền không lỗi trên đường truyền vật lýcho các lớp cao hơn Vấn đề đặt ra ở đây là phải xác định cơ chế đểxác nhận một frame có truyền thành công hay không (AcknowledgeFrame), xử lý nhiễu (truyền lại).

3 Network layer:

Điều khiển hoạt động của Subnet, tức là tìm đường cho một packet

đi từ nguồn đến đích (truyền dữ liệu giữa hai máy bất kỳ trongmạng)

Vấn đề lớn nhất của lớp này là tìm đường (Routing), giải quyết đụng

độ (Collision), giải quyết vấn đề địa chỉ (Addressing), vấn đề tínhtiền (Accounting)

4 Transport layer:

Chức năng cơ bản của lớp này là chia nhỏ gói dữ liệu được đưa từlớp bên trên xuống thành những đơn vị nhỏ hơn để truyền qua mạngvới sự đảm bảo là dữ liệu sẽ tới nơi một cách chính xác (kiểm tra sốsequence, error detection: kiểm tra lỗi, flow control) Lớp này cungcấp cho các lớp bên trên phương tiện để truyền các message độc lậpvới các lớp bên dưới (end to end layer: hai hệ thống thực sự kết nốivới nhau)

5 Session layer:

Cung cấp những phương tiện cho phép hai thực thể của lớp ứng dụng

có thể tổ chức và đồng bộ cuộc đối thoại và quản lý sự trao đổi thôngtin giữa chúng (các dịch vụ để các quá trình có thể trao đổi với nhau,tạo và kết thúc kết nối giữa các quá trình trên các máy khác nhau)

6 Presentation layer:

Lớp này biểu diễn những thông tin được truyền (được hiểu là cúpháp và ngữ nghĩa), nó đồng nhất các thông tin giữa các hệ thống

Trang 20

khác nhau Ngoài ra, nó còn cung cấp dịch vụ thao tác trên dữ liệunhư nén và mã hóa (compression & cryptography).

Do đặc tính của mô hình OSI là một mô hình tham khảo, việc

áp dụng mô hình OSI vào thực tế là khó có thể thực hiện (hiệu suấtkém vì dữ liệu muốn đi từ máy này sang máy kia trong mạng thì phảiqua tất cả các lớp của mô hình OSI ở cả hai máy), nó chỉ là một tiêuchuẩn để các nhà phát triển dựa theo đó mà phát triển các mô hìnhkhác tối ưu hơn Có rất nhiều các mô hình khác nhau, tuy nhiên, hiệnnay trên thế giới cùng với sự phát triển như vũ bão của mạngInternet, mô hình TCP/IP là được sử dụng phổ biến nhất

Bộ Protocol TCP/IP bao gồm:

 TCP (Transmission Control Protocol): một protocol có cầu nối(connection-oriented) cung cấp khả năng truyền dòng dữ liệu không lỗi, hai chiều (full duplex) cho các quá trình của người

sử dụng

 UDP (User Datagram Protocol): một protocol không thiết lập cầu nối (connectionless) cho các quá trình của user (không giống như TCP, nó không đảm bảo dữ liệu khi truyền đi có đến nơi chính xác không)

 ICMP (Internet Control Message Protocol): Protocol xử lý lỗi

và điều khiển thông tin giữa các gateway và các host

Trang 21

 IP (Internet Protocol): IP là protocol cung cấp dịch vụ phân

phối các packet cho TCP, UDP và ICMP

 ARP (Address Resolution Protocol): Protocol ánh xạ một địa

chỉ internet thành vào trong một địa chỉ phần cứng

 RARP (Reverse Address Resolution Protocol): Protocol ánh xạ

một địa chỉ phần cứng vào trong (thành) một địa chỉ internet

Mô hình TCP/IP được phân ra thành bốn lớp, trong đó hai lớp dưới

(1 và 2) của mô hình OSI được gộp lại thành một lớp gọi là lớp

Host-to-network; hai lớp Session và Presentation của OSI không có trong

mô hình giao thức TCP/IP

Mô hình tham khảo TCP/IP

Tương tự như mô hình OSI, trong mô hình TCP/IP, dữ liệu từ

một máy cũng đi từ lớp Application xuống Transport, rồi xuống tiếp

lớp Internet, sau cùng đi tới lớp Host-to-network (ứng với data link

layer của OSI), thông qua đường dây vật lý đến một máy khác trong

mạng, dữ liệu ở đây sẽ đi ngược từ dưới lên (tức là từ lớp

Host-to-network đến lớp Application của máy thứ 2) Cũng như mô hình

OSI, ở đây, giữa các lớp của hai máy giao tiếp với nhau thông qua

một protocol, giữa lớp này với lớp kia của một máy giao tiếp trực

Không có trong mô hình này

Trang 22

tiếp với nhau gọi là Interface Lớp bên dưới cung cấp các dịch vụcho lớp bên trên.

10 Host-to-network layer (Physical layer):

Kết nối host với network sao cho chúng có thể chuyển cácmessage tới các địa chỉ IP

Tùy theo dịch vụ mà ta dùng một trong hai cách trên (TD: khi

dữ liệu cần truyền đi là các đoạn film hay âm thanh thì nên dùngConnectionless)

Nhiệm vụ của lớp này là đảm bảo cho các host chuyển cácpacket của chúng vào mạng bất kỳ và chuyển chúng đến đích màkhông phụ thuộc vào vị trí của đích đến

Trong mô hình TCP/IP, người ta đưa ra khái niệm IP address

để định địa chỉ các host trên mạng (IP address là 1 tập hợp số 4 byte

có dạng A.B.C.D, mỗi một byte có giá trị từ 0 đến 255; tuy nhiênhiện nay số 4 byte là không đủ đáp ứng nhu cầu phát triển củaInternet nên người ta lại đưa ra các khái niệm mới như Expanded IPgồm 8 bytes để tăng số đường địa chỉ lên)

12 Transport layer:

Lớp Transport được thiết kế để cho các phần tử ngang cấp ởlớp host có thể được đối thoại với nhau

Hai protocols chính là:

Trang 23

 TCP: là một Connection Oriented Protocol, cho phép chuyển một chuỗi byte từ host này sang host kia mà không có lỗi (dùng cơ chế phân chia dữ liệu thành các gói nhỏ ở máy nguồn

và sẽ gom lại thành một gói lớn ở máy đích)

 UDP (User Datagram Protocol): là một Connectionless

Protocol được xây dựng cho các ứng dụng không muốn sử dụng cách truyền theo một thứ tự của TCP mà muốn tự mình thực hiện điều đó (tùy theo mục đích của ứng dụng mà người

ta dùng UDP hay không)

Số hiệu port:

Một process của một máy có thể liên lạc với một máy kháctrong mạng qua địa chỉ IP Tuy nhiên, với địa chỉ như vậy không đủcho một process của máy này liên lạc với một process của một máykhác Và vì vậy, TCP/UDP đã dùng 16 bits để có thể đặc tả nên một

số hiệu port

Như vậy, để hai process của hai máy bất kỳ trong mạng có thểgiao tiếp được với nhau thì mỗi frame ở cấp Network có IP gồm:

+ Protocol (TCP/UDP)

+ Địa chỉ IP của máy nguồn

+ Số hiệu port của process ở máy nguồn.+ Địa chỉ IP của máy đích

+ Số hiệu port của process ở máy đích.Thí du: {Tcp, 172.28.11.83, 6000, 172.28.11.241, 7000};

13 Application layer (Process layer):

Chứa các dịch vụ như trong các lớp Session, Presentation,Application của mô hình OSI TD: Telnet là một virtual terminal chophép user xâm nhập vào một host ở xa và làm việc ở đó như đanglàm việc trên một máy local, FTP là một công cụ hữu hiệu để chuyểnfile từ máy này sang máy kia trên mạng, SMTP (Simple MailTransfer Protocol) cũng là một dạng của FTP nhưng được phát triển

Trang 24

theo các đặc điểm riêng, DNS (Domain Name Service) dùng để biếnđổi (ánh xạ) các tên host thành các địa chỉ IP của nó, …

Trang 25

CHƯƠNG BỐN: CƠ CHẾ TRUYỀN NHẬN TRONG JAVA

V Các kiến thức cơ bản về Networking

Các máy tính chạy trên mạng Internet truyền thông với nhaudùng các Protocol TCP, UDP Mô hình mạng 4 lớp được mô tả bằnghình vẽ dưới đây :

Application(HTTP,ftp,telnet)Transport(TCP/IP,UDP)Network(IP,…)Link(device driver)

Khi bạn viết các chương trình Java có truyền thông qua mạng,điều này có nghĩa là bạn đang lập trình ở lớp application Nhìnchung, bạn không cần quan tâm tới các protocol TCP và UDP -Thay vì vậy, bạn có thể dùng các lớp trong package java.net Các lớpnày cung cấp việc truyền thông qua mạng độc lập hệ thống Tuynhiên, bạn cần hiểu rõ sự khác biệt giữa TCP và UDP để xác định rõnhững lớp nào trong thư viện Java mà bạn sẽ sử dụng

Khi hai chương trình muốn truyền dữ liệu cho nhau một cáchđáng tin cậy, chúng thiết lập một connection và gửi data qua lạithông qua connection đó Điều này giống như một cuộc điện thoại nếu bạn muốn nói chuyện với tôi ở HCM City, một connection đượcthiết lập khi bạn quay số của tôi và tôi trả lời Bạn gửi data qua lại

Trang 26

thông qua connection bằng cách nói với người kia thông qua đườngđiện thoại Giống như các công ty điện thoại, TCP đảm bảo rằng datađược gửi từ một đầu connection tới đầu kia không mất mát và đúngthứ tự (nếu không, một lỗi sẽ được thông báo)

Định nghĩa: TCP là một protocol dựa trên connection, cung cấp các

data flow tin cậy giữa 2 máy tính

Những ứng dụng yêu cầu một kênh truyền point-to-point,đáng tin cậy đều dùng TCP Hyper Text Transfer Protocol (HTTP),File Transfer Protocol (ftp), và Telnet (telnet) là những ứng dụng đòihỏi một kênh truyền đáng tin cậy Thứ tự gửi và nhận phải đảm bảo

là điều kiện buộc phải có đối với những ứng dụng này khi dùngHTTP để đọc từ một URL, dữ liệu cần phải nhận được theo đúng thứ

tự mà nó được gửi đi, nếu không mọi thứ sẽ đảo lộn cả lên

Tuy nhiên, cũng có những ứng dụng không đòi hỏi tính độcậy quá cao Điều này lại có lợi về hiệu suất

Một ví dụ của loại kênh truyền này là lệnh ping Mục đích của lệnhping là kiểm tra việc truyền nhận data giữa hai chương trình quamạng Thực ra, lệnh ping cần biết các package bị rơi rớt hay sai thứ

tự để xác địng chất lượng một connection Do đó một kênh truyềnđáng tin cậy sẽ không thích hợp với loại dịch vụ này

UDP protocol cung cấp việc truyền thông không đảm bảogiữa hai ứng dụng trên mạng UDP không dựa trên connection nhưTCP UDP gửi những package độc lập với nhau, gọi là datagrams, từứng dụng này tới ứng dụng kia Việc gửi những datagram giống nhưviệc gửi thư thông qua bưu điện Thứ tự phân phát không quan trọng

và khộng đảm bảo, và các message độc lập với nhau

Định nghĩa:

UDP là một protocol, gửi những package độc lập, gọi là cácdatagrams, từ máy này tới máy khác, không đảm bảo chắc chằn sẽthành công UDP không dựa trên connection như TCP

Trang 27

Nói một cách tổng quát, một máy tính nối mạng là mộtconnection vật lý đối với mạng đó Tất cả dữ liệu gửi cho một máytính thông qua conection đó Tuy nhiên, dữ liệu có thể được gửi chonhững ứng dụng khác nhau trên máy đó Vậy thì làm cách nào máytính biết ứng dụng nào sẽ nhận dữ liệu được gửi đến? Điều này đượcgiải quyết thông qua việc sử dụng Ports, mỗi ứng dụng mạng có mộtport tương ứng

Dữ liệu truyền qua mạng có kèm theo thông tin địa chỉ nhằmxác định máy tính và port đích Mỗi máy tính được xác định bằngmột địa chỉ IP 32-bits, IP protocol dùng địa chỉ này để phân phát dữliệu đúng cho từng máy Port được xác định bằng một số 16-bits, cácprotocol TCP và UDP dùng port number để phân phát data tới đúngcho từng ứng dụng

Trong việc truyền nhận data dựa trên connection, một ứng dụng thiếtlập môt connection với một ứng dụng khác bằng cách gắn một socketcho mỗi port number Điều này có ý nghĩa đăng ký ứng dụng với hệthống để ứng dụng có thể nhận tất cả data được gửi đến cho port đó.Không thể có hai ứng dụng dùng chung một port Mọi cố gắng gắnmột socket với một port đã dùng đều sẽ thất bại.Trong việc truyền nhận data dựa trên datagram, datagram chứa portnumber của ứng dụng đích mà nó gửi tới

Trang 28

Thông qua những lớp trong package java.net, những chươngtrình Java có thể dùng TCP hay UDP để truyền nhận data quaInternet Các lớp URL, URLConnection, Socket và ServerSocketdùng TCP Các lớp DatagramPacket và DatagramServer dùng UDP.

Java sử dụng HTTP để phân phát các Applet đa nền, có thểchạy trong môi trường Browser Nhìn chung, đây là công dụng chínhcủa Java : tạo ra các trang HTML có nội dung động Tuy nhiên, đây

Trang 29

chỉ là mặt ngoài của cái mà Java có thể làm được thực sự Các package và kiến trúc Java cho phép nó được dùng như một kiến trúcđộng, có thể chủ động dùng nguồn code, data, và input thông quaInternet Bằng cách tổng hợp các Java-package, programmers có thểphối hợp chương trình của mình cùng các protocol Telnet, FTP,NNTP, WWW để tạo ra các ứng dụng mạng, thay vì chỉ chạy trênmột máy như trước đây.

Net-Java tương tác với Internet theo cách riêng của nó, dữ liệu kéo

về dưới dạng các file bytecode (.class), các file khác như ảnh, audiohay input từ việc tương tác với các user khác Chức năng này đượcgiao tiếp chính thông qua mội trường Browser support Java; mặc dùvậy, interpreter cũng có thể sử dụng các connection mạng Nhằm đápứng hai khả năng quan trọng là tính có thể mở rộng và tính đa nền,Java đã cung cấp một kiến trúc hướng đôí tượng không bị ràng buộcbởi việc hiện thực chương trình được compile từ trước khi thực thi(dạng file EXE) Ngoài ra, để đáp ứng được những yêu cầu củangười sử dụng, Java phải đảm bảo tính an toàn, hiệu xuất cao Tuynhiên, cho đến thời điểm hiện tại, tốc độ thực thi một chương trìnhJava còn quá chậm Hy vọng điều này sẽ được cải thiện hơn khi cónhững phần cứng support Java riệng biệt

Các tính chất an toàn, đa nền, của ngôn ngữ Javađược giảiquyết bằng interpreted design Bằng cách Compile code ra dạng máy

ảo, và tạo ra memory layout tại thời điểm chạy chương trình thay vìtại thời điểm compile, Java có khả năng truy xuất điều kiện của codetrước khi nó được thực thi trên một máy client

Tất cả những ưu điểm trên phải trả giá cho hiệu suất thực thichương trình thấp Tuy nhiên, điều này đã được khắc phục phần nàobằng cách tạo code trung gian dưới dạng bytecode, cung cấp khảnăng thực hiện chương trình Multithread khá dễ dàng, và đặc biệthơn là chiến lược quản lý bộ nhớ với việc dọn rác tự động

Trang 30

Sau đây là một số hiểu biết cơ bản về networking ,Threads,Synchronization, Exceptions và Java-Security do ngôn ngữ Javacung cấp

VI Networking:

Việc sử dụng những khả năng networking do Java support khá

dễ dàng so với C và C++ Applet được nhúng trong các file HTML

Để chạy những Applet qua mạng, việc trước tiên cần là là load cáctrang HTML này về máy cục bộ Các applet được nhúng trong cáctrang HTML thông qua phần khai báo APPLET Ngoài những lớpđược hiện thực bới applet, những lớp thư viện khác do Browser cungcấp

Việc load các file ảnh và file audio được thực hiện thông qualớp URL (package java.net) Lớp này biểu hiện một UniformResource Locator, là địa chỉ của tài nguyên nào đó trên mạng Lấy ví

dụ, để load một file ảnh từ mạng, chương trình Java đầu tiên cần tạomột URL chứa địa chỉ chỉ tới file ảnh đó, sau đó dùng một số hàmcần thiết để connect và truy xuất file ảnh đó

Nhìn chung, điểm nổi bật của Networking do Java mang lại làtính tiện lợi và dễ sử dụng Điều này có thể hiểu rõ hơn trong phầngiới thiệu về URLs, Socket ở những phần sau của tài liệu này

14 Giao tiếp giữa phần hiện thực client và Browser ở máy

local:

c URLs

Nếu bạn từng giao tiếp với World Wide Web, hẳn bạn không

lạ gì với khái niệm URL và chắc bạn cũng đã dùng các URL để truyxuất các trangHTMLtrênWeb URL là từ viết tắt của UniformResource Locator , là một tham chiếu (một địa chỉ ) tới một tàinguyên trên Internet

Nếu bạn chưa quen, thì tốt hơn hãy xem (dù không chính xáchoàn toàn) URL là tên của một file trên mạng vì hầu hết các URL

Trang 31

tham chiếu tới 1 file trên máy nào đó trên mạng Tuy nhiên, bạn nênnhớ rằng URL có thể tham chiếu tới bất kỳ tài nguyên mạng nào,chẳng hạn như database queries và command output.

Sau đây là một ví dụ về URL :

http://java.sun.com/

Tất cả các URL đều có 2 phần tử chính :

1.Kiểu Protocol

2.Tên tài nguyên

Cách dễ nhất để tạo một URL là dùng một chuỗi làm đối sốcho URL cconstructor:

URL u = new URL("http://java.sun.com");

Đây là một URL tuyệt đối vì nó đặc tả toàn bộ tên tài nguyên.Một constructor hữu dụng khác là một URL tương đối :URL data = new URL(u,"conference/conference.html");

URL này đặc tả file conference.html, nằm trong thư mụcconference của URL u

Trong chương trình, URL được sử dụng để load file chứa cácnhóm hiện đang tồn tại, file chứa danh sách các user trong mộtnhóm, log file (file chứa thời điểm các user login, logout; các nhómđược tạo ra, delete), file help Để phát triển đề tài này thành các đềtài khác yêu cầu thêm một số chức năng như truyền nhận file, truyxuất cơ sở dữ liệu và cập nhật ngay ở client khi dữ liệu ở server cóthay đổi, cần phải có những kiến thức thêm nữa về cách sử dụngURL trong Java Tài liệu này có một phần phụ lục ở phía sau về cáchdùng URL trong Java Nếu quan tâm, bạn có thể tham khảo

Trang 32

kết với browser, applet gọi hàm getAppletContext Hàm này trả vềmột đối tượng kiểu AppletContext

Một số hàm liên quan đến việc Applet yêu cầu hiển thị mộtURL bên trong browser:

 public AppletContext getAppletContext()

Tạo ra một handle (context của applet) trên môi trườngbrowser của applet Trong hầu hết các browser, ta có thể dùng thôngtin này để điều khiển browser mà applet đang chạy trên đó

 public abstract void showDocument(URL url, String target) Yêu cầu browser chứa applet show trang web xác định bởithông số url Thông số target chỉ ra nơi hiển thị trang web đó (Bạn

có thể xem thêm các giá trị có thể có của target trong thư viện APIcủa Java)

15 Sockets

Ta sử dụng các URLs và URLConnections để truyền thôngqua mạng ở cấp cao và dành cho một mục đích đặc biệt :truy xuất tàinguyên trên Internet Đôi khi chương trình của ta đòi hỏi việc truyềnthông qua mạng ở mức thấp hơn, ví dụ như khi ta viết một ứng dụngClient/Server (cụ thể là phần mềm này đã thực hiện điều đó)

Trong những ứng dụng client/server, server cung cấp một dịch

vụ nào đó, chẳng hạn như xử lý các database queries, gửi giá cảchứng khoán hiện tại, Client dùng dịch vụ do server cung cấp đểhiển thị kết quả cho User, tạo ra những chỉ dẫn cần thiết cho ngườiđầu tư, Việc truyền dữ liệu giữa client và server phải đáng tincậy, không bị mất và không được tới sai thứ tự do server gửi

TCP cung cấp kênh truyền đáng tin, point-to-point, mà nhữngứng dụng client/server trên Internet sử dụng Những lớp Socket vàServerSocket trong java.net package hỗ trợ cho việc thực hiện cáckênh truyền TCP độc lập hệ thống

Một Socket là một end-point của một liên kết giữa hai chươngtrình chạy trên mạng Các lớp socket được sử dụng để thể hiện

Trang 33

connection giữa một chương trình client và một chương trình Server.Package java.net cung cấp hai lớp : Socket và ServerSocket tươngứng với client và server.

Chương trình Server thường listen ở một port riêng biệt, đợicác connection request từ các chương trình client Khi có mộtconnection request, client và server thiết lập một connection mà qua

đó chúng sẽ trao đổi dữ liệu với nhau Suốt quá trình connecton,client được gán cho một port number cục bộ, và bind một socket cho

nó Client truyền (nhận) dữ liệu cho server bằng các ghi (đọc) socket.Tương tự, server nhận một port number local mới (nó cần một portnumber mới để nó có thể tiếp tục listen các connetion request khác ởport ban đầu) Server cũng bind một socket cho port cục bộ của nó vàliên lạc với client tương ứng thông qua socket này

e Sử dụng Socket ở Client

Dưới đây là một chương trình ngắn minh họa việc sử dụngSocket ở Client Trong ví dụ, client thiết lập một connection vớiEcho server (port = 7), ớ máy ResearchCC dùng lớp Socket trong thưviện API của Java Client nhập một hàng từ standard input stream,gửi cho Echo server Echo server nhận được, gửi trả hàng này về lạiclient Client đọc hàng này và xuất lại ra màn hình

Việc sử dụng Socket trong chương trình Client của phần mềmnày có đôi chút phức tạp hơn nhưng những ý tưởng chính là hoàntoàn giống nhau

import java.io.*;

import java.net.*;

public class EchoTest {

public static void main(String[] args) {

Socket echoSocket = null;

DataOutputStream os = null;

DataInputStream is = null;

Trang 34

DataInputStream stdIn = new DataInputStream(System.in); try {

echoSocket = new Socket("ResearchCC", 7);

os = new DataOutputStream(echoSocket.getOutputStream());

is = new DataInputStream(echoSocket.getInputStream()); } catch (UnknownHostException e) {

System.err.println("Don't know about host: ResearchCC"); } catch (IOException e) {

System.err.println("Couldn't get I/O for the connection to: ResearchCC");

Trang 35

Giải thích chương trình trên :

Ba hàng sau trong khối try của phương thức main() buộc phải

có Chúng thiết lập socket connetion giữa client-server và mở input,outputstream trên socket tạo ra:

echoSocket = new Socket("ResearchCC", 7);

os = new DataOutputStream(echoSocket.getOutputStream());

is = new DataInputStream(echoSocket.getInputStream());

Hàng đầu tạo ra một đối tượng Socket , đặt tên là echoSocket.Socket constructor được sử dụng ở đây yêu cầu tên máy và portnumber mà ta muốn connect tới Chương trình ví dụ dùng host nameResearchCC Đối số thứ hai là port number Port 7 là port mà Echoserver listen

Hàng thứ hai và thứ ba mở một output stream và một inputstream trên socket vừa thiết lập EchoTest đơn thuần chỉ cần write tớioutput stream và read từ input stream để truyền dữ liệu với serverthông qua socket Nếu bạn chưa quen với các stream trong Java, bạn

có thể xem thêm phần các Stream cũng trong đề tài này

Phần kế đọc từ standard input stream của EchoTest một hàngmỗi lần EchoTest write ngay input text (theo sau bởi một newlinecharacter) tới output stream :

Trang 36

ra standard output Vòng lặp while tiếp tục EchoTest đọc input từuser, gửi nó cho Echo server, nhận trả lời từ server, và hiển thị nó cho tới khi user đánh vào một end-of-input character.

Khi user đánh vào một end-of-input character, vòng lặp whilekết thúc, chương trình tiếp tục thực thi ba hàng kế:

2 Mở input stream và outputstream ứng vớ socket đó

3 Read và write tới stream tùy thuộc vào nghi thức của server

Trang 37

System.exit(1);

}

Bước kế tiếp, Server accept một connection request từ một client :

Socket clientSocket = null;

1 Mở một input và output stream ứng với socket

2 Read và write tới socket

Trong đề tài, có nhiều client đồng thời đưa ra các connectionrequest với server tại port mà server listen (port 4444) Có hai cách

để giải quyết vấn đề này :

1 Các connection request được xếp hàng, và Server phảiaccept các connection tuần tự

2 Phục vụ các connection request đồng thời bằng việc dùngcác thread Mỗi thread xử lý một connection

Đề tài đã chọn cách thứ hai để hiện thực vì nó hợp lý hơn: mọi usercần phải được xử lý bình đẳng như nhau

Giải thuật cho phần này như sau :

Trang 38

public InetAddress getInetAddress()

Trả về remote IP address mà socket này connect với Từ trị trả vềnày, có thể gọi hàm getHostName từ lớp InetAddress để lấyhostName tương ứng Hàm này được gọi trong chương trình khiserver cần lấy hostName của client connect với nó

public InputStream getInputStream() throws IOException

Trả về một input stream thực hiện việc đọc dữ liệu từ socket này

public OutputStream getInputStream() throws IOException

Trả về một output stream thực hiện việc ghi dữ liệu tới socket này.Lớp ServerSocket

public ServerSocket(int port) throws IOException

Trang 39

Tạo ra một server socket trên port được đặc tả bởi thông số port Nếuport = 0 thì tạo ra một server socket trên bất kỳ port nào trống.Chiều dài hàng đợi lớn nhất cho các yếu cầu connection là 50 Nếumột yêu cầu connection đến trong khi hàng đợi đầy, thì yêu cầu đó sẽ

bị từ chối

public Socket accept() throws IOException

Listen một yêu cầu connection đối với socket này và chấp nhận nó.Phương thức này bị block cho tới khi connection được thực hiện

Public void close() throws IOException

Close socket lại (áp dụng cho cả Socket và ServerSocket)

 Các Stream:

Class BufferedInputStream

Là một input stream Public BufferedInputStream(InputStream in)Hàm constructor Tạo ra một input stream có đệm để đọc data từ input stream được khai báo Kích thước beffer ngầm định là 512-byte Ta có thể khi báo kích thước buffer bằng constructor khác

Class DataInputStream

Ứng dụng sử dụng một data input stream để đọc các kiểu dữ kiệunguyên thủy của Java từ một input stream lớp dưới , với đặc tính độclập máy Ứng dụng dùng data out put stream để ghi data mà sau này

sẽ được đọc bởi một data input stream

public DataInputStream(InputStream in)

Hàm constructor Tạo ra một data input stream để đọc data từ input stream được khai báo Trong chương trình, sử dụng thông

InputStream là một BufferedInputStream được sinh ra từ input stream nhận được từ socket tương ứng

public final String readLine() throws IOException

Đọc hàng text kế từ data input stream gọi nó Phương thức này đọcthành công các bytes từ input stream lớp dưới cho đến khi hết mộthàng Ký hiệu chấm dứt dòng được xác định bằng các ký tự sau : ký

tự CR ('\r') , ký tự newline ('\n'), một ký tự CR theo sau bởi một ký tự

Trang 40

newline , hay kết thúc của stream input Phương thức này bị blockkhi xảy ra một trong ba tình huống sau: một ký tự newline được đọc,một ký tự CR và byte đi liền sau nó được đọc (để xem có phải là ký

tự newline hay không) , dò thấy dấu hiệu chấm dứt một stream, haymot IOException được sinh ra

Các kiến thức về output stream, buffered output stream cũng tương

tự như input stream

Class PrintStream

Một print stream hiện thực một output stream filter, cung cấp cácphương thức tiện lợi cho việc print các kiểu dữ liệu khác nhau

public PrintStream(OutputStream out)

Xây dựng một print stream mà sẽ viết output của nó tới một outputstream lớp dưới được đặc tả

public void println(String s)

Print một chuỗi tới output stream lớp dưới của Print Stream gọi hàmnày

g Java Security

Các application không thực hiện tính bảo mật như applet Với một Java-application, nó có thể đọc và ghi file, giao tiếpvới thiết bị, connect với các socket, Nhưng với Java-applet thìkhông như vậy Có nhiều việc mà Java-applet không được phép làm,

Java-và nhiều tài nguyên mà Java-applet chỉ nên hạn chế truy xuất

Các applet có thể quan hệ tới mô hình Client/Server cổ điển theocách : Web server là server của applet Nó gửi applet tới máy client.Máy client là máy trên đó client chạy thực sự Điều đó có nghĩa làkhi ta browse một trang HTML có nhúng applet, máy của ta là client.Điều này làm rõ việc xác định những việc mà applet không đượcphép làm

Nếu một applet được load qua mạng, nó không được phép :

1 Đọc , ghi , xóa, đổi tên file, tạo thư mục, liệt kê nội dungthư mục , kiểm tra sự tồn tại của file, trên client file system

Ngày đăng: 04/03/2014, 22:55

HÌNH ẢNH LIÊN QUAN

BẢNG USER Cể ĐĂNG Kí: - phân tích và lựa chọn mô hình sử dụng
BẢNG USER Cể ĐĂNG Kí: (Trang 80)
BẢNG THÔNG TIN THỦ THƯ: - phân tích và lựa chọn mô hình sử dụng
BẢNG THÔNG TIN THỦ THƯ: (Trang 81)
BẢNG THÔNG TIN DỘC GIẢ: - phân tích và lựa chọn mô hình sử dụng
BẢNG THÔNG TIN DỘC GIẢ: (Trang 81)
BẢNG THÔNG TIN DỘC GIẢ VI PHẠM: - phân tích và lựa chọn mô hình sử dụng
BẢNG THÔNG TIN DỘC GIẢ VI PHẠM: (Trang 83)
BẢNG KẾT QUẢ MƯỢN SÁCH: - phân tích và lựa chọn mô hình sử dụng
BẢNG KẾT QUẢ MƯỢN SÁCH: (Trang 84)
BẢNG KẾT QUẢ TRẢ SÁCH: - phân tích và lựa chọn mô hình sử dụng
BẢNG KẾT QUẢ TRẢ SÁCH: (Trang 85)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w