Kiến trúc của chương trình Client-Server theo cơ chế RMI

Một phần của tài liệu BÀI TIỂU LUẬN Môn học: CƠ SỞ DỮ LIỆU NÂNG : Tìm hiểu về hệ phân tán. (Trang 36 - 47)

Kiến trúc một chương trình Client-Server theo cơ chế RMI được mô tả như hình ưới đây:

Hình 2.2 - Kiến trúc chương trình kiểu RMI

Trong đó:

- Server là chương trình cung cấp các đối tượng có thể được gọi từ xa.

- Client là chương trình có tham chiếu đến các phương th c của các đối tượng ở xa trên Server.

- Stub ch a các tham chiếu đến các phương th c ở a trên Server.

- Skeleton đón nhận các tham chiếu từ Stub để kích hoạt phương th c tương ng trên Server.

- Remote Reference Layer là hệ thống truyền thông của RMI.

Con đường kích hoạt một phương th c ở a được mô tả như hình ưới đây:

Hình 2.3 Cơ chế hoạt động của RMI

2.2.3 Các cơ chế liên quan trong một ứng dụng đối tượng phân tán

Trong một ng ng phân tán cần có các cơ chế sau:

- Cơ chế định vị đối tượng ở xa (Locate remote objects): Cơ chế này ác định cách th c mà chương trình Client có thể lấy được tham chiếu (Stub) đến các đối tượng ở a. Thông thường người ta s d ng một Dịch v danh bạ (Naming Service) lưu gi các tham khảo đến các đối tượng cho phép gọi từ a mà Client sau đó có thể tìm kiếm.

- Cơ chế giao tiếp với các đối tượng ở xa (Communicate with remote objects):

Chi tiết của cơ chế giao tiếp với các đối tượng ở a được cài đặt bởi hệ thống RMI.

- Tải các lớp dạng bytecodes cho các lớp mà nó được chuyển tải qua lại giữaMáy ảo (Load class bytecodes for objects that are passed around): Vì RMI cho phép các chương trình gọi phương th c từ a trao đổi các đối

tượng với các phương th c ở a ưới dạng các tham số hay giá trị trả về của phương th c, nên RMI cần có cơ chế cần thiết để tải m Bytecodes của các đối tượng từ máy ảo này sang máy ảo khác.

Hình ưới đây mô tả một ng ng phân tán ưới RMI s ng ịch v anh bạ để lấy các tham khảo của các đối tượng ở a.

Hình 2.4 Vai trò của dịch vụ tên

Trong đó:

- Server đăng k tên cho đối tượng có thể được gọi từ xa của mình với Dịch v danh bạ (Registry Server).

- Client tìm đối tượng ở a thông qua tên đ được đăng k trên Registry Server (looks up) và tiếp đó gọi các phương th c ở xa.

- Hình minh họa cũng cho thấy cách th c mà hệ thống RMI s d ng một WebServer sẵn có để truyền tải m byteco es của các lớp qua lại gi a Client và Server.

2.2.4 Cơ chế vận hành của của một ứng dụng Client-Server theo kiểu RMI

Tiến trình vận hành của một ng ng Client-Server theo kiểu RMI iễn ra như sau:

 Bước 1: Server tạo ra các đối tượng cho phép gọi từ a cùng với các Stub và Skeleton của chúng.

 Bước 2: Server s d ng lớp Naming để đăng k tên cho một đối tượng từ xa (1).

 Bước 3: Naming đăng k Stub của đối tượng từ xa với Registry Server (2).  Bước 4: Registry Server sẵn sàng cung cấp tham thảo đến đối tượng từ xa

khi có yêu cầu (3).

 Client yêu cầu Naming định vị đối tượng a qua tên đ được đăng k (phương th c lookup) với dịch v tên (4).

 Naming tải Stub của đối tượng xa từ dịch v tên mà đối tượng a đ đăng k về Client (5). (adsbygoogle = window.adsbygoogle || []).push({});

 Cài đặt đối tượng Stub và trả về tham khảo đối tượng xa cho Client (6).  Client thực thi một lời gọi phương th c a thông qua đối tượng Stub (7).

2.3 So sánh RPC và RMI

Sự giống nhau phương thức RPC và RMI:

- ng d ng để triệu gọi phương th c/ hàm từ xa. ng d ng trên máy A, gọi phương th c và hàm đặt trên máy B. Phương th c chạy trên máy tính ở xa, nên s d ng tài nguyên của máy ở a. Máy gọi hàm phải đợi một thời gian để cho máy ở xa thực hiện hàm và trả về kết quả

Sự khác nhau phương thức RPC và RMI:

- RPC: Gọi hàm và thủ t c ở xa bản chất từ client đến server

 Hướng thủ t c

 Triển khai được cho hai hệ thống khác nhau

 Viết bằng nhiều ngôn ng , hai phía client và server có cùng 1 ngôn ng .

- RMI:

 Nền tảng phân tán trong java

 Hướng đối tượng: Cho phép nắm gi tham chiếu trong đối tượng

 RMI được tích hợp sẵn trong java

 Cho phép tham chiếu đến đối tượng, triệu gọi phương th c từ xa của đối tượng

 Có ịch v định vị đối tượng từ xa

2.4 Kết luận chương 2

Như vậy, ngoài vấn đề về ngôn ng và hệ thống, có một số sự khác biệt căn bản gi a RPC và RMI. Gọi phương th c từ a làm việc với các đối tượng, cho phép các phương th c chấp nhận và trả về các đối tượng Java cũng như các kiểu d liệu nguyên tố (premitive type). Ngược lại gọi thủ t c từ a không h trợ khái

niệm đối tượng. Các thông điệp g i cho một dịch v RPC (Remote Procedure Calling) được biểu diễn bởi ngôn ng XDR (External Data Representation): dạng th c biểu diễn d liệu ngoài. Chỉ có các kiểu d liệu có thể được định nghĩa bởi XDR mới có thể truyền đi.

Chương 3 ỨNG DỤNG HỆ PHÂN TÁN

Chương 3 nêu ra một số bài toán mà hệ phân tán được áp ng và đi vào phân tích c thể một bài toán với cấu trúc của hệ thống và cách th c hoạt động của hệ phân tán.

3.1 Một số bài toán ứng dụng hệ phân tán

Một số bài toán mà hệ phân tán được áp ng:

 Dịch v g i rút tiền tại các ngân hàng: g i tiền nhiều nơi và rút nhiều nơi. Hệ phân tán đ được ng d ng trong dịch v ngân hàng. Việc khách hàng có thể thực hiện các giao ịch tại nhiều nơi trên Việt Nam hoặc thậm trí trên thế giới. Khách hàng g i tiền tại một chi nhánh A của một ngân hàng

thì có thể rút tại bất k chi nhánh B,C… của ngân hàng đó ch không nhất thiết phải tới đúng chi nhánh A để rút số tiền cần thiết khi mà khách hàng đi công tác hoặc du lịch.

 Hệ thống ATM: một ng d ng khác của hệ phân tán cho ngân hàng đó là khách hàng có thể tới các máy ATM được phân phối ở nhiều nơi để rút tiền mặt.

 Quản l công ân ra vào c a khẩu: ví như một người khách nước ngoài tới Việt Nam thì nhân viên hải quan sẽ biết người đó đ tới Việt Nam bao nhiêu lần và m i lần đó tới Việt Nam để làm gì. Có thể các lần trước thì người đó tới Việt Nam qua một của khẩu khác nhưng hệ thống vẫn biết là họ đ tới Việt Nam.

3.2 Hệ thống gửi – rút tiền tại các ngân hàng

Bài toán đ được nêu ở phần một. Dịch v g i rút tiền tại các ngân hàng như g i tiền nhiều nơi và rút nhiều nơi. Hệ phân tán đ được ng ng cho ịch v này. Việc khách hàng có thể thực hiện các giao ịch tại nhiều nơi trên Việt Nam hoặc thậm trí trên thế giới. Khách hàng g i tiền tại một chi nhánh A của một ngân hàng thì có thể rút tại bất k chi nhánh B,C… của ngân hàng đó ch không nhất thiết phải tới đúng chi nhánh A để rút số tiền cần thiết khi mà khách hàng đi công tác hoặc u lịch.

3.2.1 Kiến trúc hệ thống

Giả s hệ thống ngân hàng A có 6 chi nhánh được phân phối đều trên 3 miền đất nước. ng với m i chi nhánh ta có 1 máy con. M i miền đồng thời có một máy chủ để lưu tr liệu hệ thống của m i miền. Các máy con ở m i miền có kết nối với máy chủ ở miền đó. Hai máy con ở miền bắc chỉ có thể kết nối với máy chủ miền bắc. Các máy chủ có kết nối với nhau. (adsbygoogle = window.adsbygoogle || []).push({});

Kết nối gi a máy chủ và máy con, máy chủ với nhau thì ta có hai phương pháp bố trí kiến trúc:

Cách 1(hình 3.1 a): các kết nối: máy con – máy chủ, máy chủ - máy chủ đều thông qua mạng nội bộ của ngân hàng A.

Cách 2(hình 3.1 b): các kết nối đều qua Internet.

Hình 3.1 (a): kiến trúc hệ thống ngân hàng kết nối qua mạng nội bộ

3.2.2 Cơ chế hoạt động của hệ thống

Khi có khách hàng tới g i tiền, hệ thống sẽ hoạt động như sau: 1. Nhận yêu cầu g i tiền vào tài khoản X nào đó.

2. Tìm kiếm d liệu tài khoản có được lưu tại máy chủ kết nối với chi nhánh đó không.

3. Nếu có lưu thì cập nhật thông tin về số ư tài khoản của khách hàng và thông báo nếu đ cập nhật thành công.

4. Nếu d liệu trên máy chủ đó không có thì yêu cầu đó sẽ được g i tới hai máy chủ còn lại. Tìm được máy chủ chưa thông tin tài khoản đó thì việc cập nhật sẽ được thực hiện. Thông báo trả lại cho máy chủ ban đầu và máy chủ này sẽ chuyển tiếp thông báo cho máy con tại chi nhánh mà đ g i yêu cầu chuyển tiền lúc đầu.

Tương tự như vậy cho giao ịch khách hàng lúc rút tiền. Việc g i và rút tiền chỉ khác nhau là một giao ịch là thêm tiền vào tài khoản khách hàng còn rút tiền là trừ bớt.

Một ví c thể, một người đến g i tiền tại chi nhánh ở miền bắc và thông tin tài khoản của họ được lưu tại máy chủ miền bắc thì hệ thống sẽ hoạt động như hình 3.2.

Hình 3.2: khách hàng gửi tiền tại miền bắc và tài khoản của khách hàng đó cũng được lưu tại máy chủ miền bắc

Với trường hợp khách hàng g i tiền tại miền bắc nhưng thông tin tài khoản lại lưu tại máy chủ miền nam thì hệ thống sẽ hoạt động như hình 3.3

Hình 3.3: khách hàng gửi tiền tại miền bắc nhưng thông tin tài khoản lại lưu tại máy chủ miền nam

Tóm lại, hệ phân tán có nhiều ng ng trên thực tế. Nó giải quyết một số vấn đề về tính kinh tế, tốc độ hệ thống. Chương này đ nêu c thể kiến trúc của một hệ phân tán trong ngân hàng và cơ chế hoạt động của hệ thống đó.

KẾT LUẬN

Vai trò của hệ phân tán đối với sự phát triển của máy tính là không thể bàn c i, đặc biệt khi quy mô các hệ thống máy tính ngày càng lớn như hiện nay. Các đặc tính của hệ phân tán giúp nó có điều kiện thuận lợi cho việc phát triển.

Tuy nhiên bên cạnh các đặc tính thuận lợi của hệ phân tán, tồn tại rất nhiều vấn đề trong việc ây ựng hệ thống để đảm bảo cá tính chất tốt đó của hệ. Do đó việc nghiên c u hệ phân tán ngày càng đóng vai trò quan trọng trong việc ây ựng các mạng máy tính.

Trong số các đặc tính của hệ phân tán, tính trong suốt là đặc tính quan trọng, tạo điều kiện để khai thác hiệu quả hệ phân tán đồng thời đảm bảo tính tiện d ng cho người ùng. Việc nghiên c u tính trong suốt tạo điều kiện để phát triển và nâng cao hiệu năng của hệ thống, đồng thời vẫn đảm bảo hệ phân tán là hệ thống ph c v người ùng.

TÀI LIỆU THAM KHẢO

[1]. Colin J. Fidge (February 1988). "Timestamps in Message-Passing Systems That Preserve the Partial Ordering". In K. Raymond (Ed.). Proc. of the 11th Australian Computer Science Conference (ACSC'88). pp. 56–66. Retrieved 2009- 02-13.

[2].Mattern, F. (October 1988), "Virtual Time and Global States of Distributed Systems", in Cosnard, M., Proc. Workshop on Parallel and Distributed Algorithms, Chateau de Bonas, France: Elsevier, pp. 215–226.

[3].lmeida, Paulo; Baquero, Carlos; Fonte, Victor (2008), "Interval Tree Clocks: A Logical Clock for Dynamic Systems", in Baker, Theodore P.; Bui, Alain; Tixeuil, Sébastien, Principles of Distribute Systems, Lecture Notes in Computer Science, 5401, Springer-Verlag, Lecture Notes in Computer Science, pp. 259–274

[4]. Torres-Rojas, Francisco; Ahamad, Mustaque (1999), "Plausible clocks: constant size logical clocks for distributed systems", Distributed Computing (Springer Verlag) 12 (4): 179–195.

[5]. S. Mullender ed., "Distributed Systems", 2nd ed., Addison-Wesley, 1993 [6]. Jie Wu, "Distributed Systems Design", Addison-Wesley, 2008

[7]. G. Coulouris, J. Dollimore, T. Kinberg, "Distributed systems : Conceptand Design“, Australia. IASTED, ACTA Press.

Một phần của tài liệu BÀI TIỂU LUẬN Môn học: CƠ SỞ DỮ LIỆU NÂNG : Tìm hiểu về hệ phân tán. (Trang 36 - 47)