Mobile agent

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 28 - 47)

Mobile agent là một trong nh ng hướng nghiên c u thu hút nhiều sự quan tâm nhất trong nh ng năm 90 đến nay với nh ng đặc điểm rất thích hợp cho việc phát triển các ng d ng phân tán.

Mobile agent có tính tự trị và khả năng i động từ máy chủ này sang máy chủ khác để hoàn tất tác v . Ý tưởng chủ đạo của mobile agent là i chuyển x l đến gần nguồn d liệu, nhờ đó có thể giảm tải mạng, khắc ph c tình trạng trễ, h trợ x l không đồng bộ và tạo ra sự tưng thích mạnh trên các môi trường không đồng nhất. Trong các ng d ng phân tán phát triển theo mô hình client-server truyền thống, để tích hợp thông tin từ nhiều nguồn d liệu khác nhau, các ng d ng phải tạo kết nối tới nguồn d liệu đó và tải d liệu về x l . Như vậy phải vận chuyển lượng thông tin nhất định trên đường truyền về nơi l ó đó đường truyền cũng phải tải một lượng thông tin đáng kể và ễ bị mất mát nếu đường truyền không tốt. Thực tế phía nguồn d liệu có thể không muốn cung cấp d liệu mà chỉ muốn cung cấp kết quả x l liệu đó cho phía yêu cầu. Nếu việc tính toán kết quả được cung cấp bởi nguồn ch a d liệu thì ịch v sẽ thiếu đi tính linh động do phía yêu cầu mong muốn nh ng kết quả khác hơn.

Cấu tạo của 1 mobile agent: gồm có 3 phần chính: M , trạng thái và liệu.

Hình 1.14 Cấu tạo của một Mobile Agent.

M sẽ được thực hiện khi agent di chuyển đến một máy khác. Trạng thái liệu về môi trường chạy của agent gồm con đếm chương trình và ngăn ếp thực

Code

hiện. Phần này chỉ có ở agent có khả năng i động mạnh (strong mobility). D liệu gồm các biến được s d ng bởi agent như tri th c, định danh tệp tin…

1.6 Các ví dụ về hệ thống phân tán. 1.6.1 Mạng cục bộ.

Hình 1.15 Mô hình mạng cục bộ.

1.6.2 Hệ thống quản trị CSDL (Database Management System ).

Hình 1.16 Mô hình CSDL.

Hình 1.17 Mô hình mạng điện thoại.

1.6.4 Internet.

Hình 1.18 Mô hình mạng Internet.

Hình 1.19 Mô hình các ứng dụng web.

1.6.6 Điện thoại di động và máy tính Ubiquitous.

Hình 1.20 Mô hình mạng điện thoại di động.

Hình 1.21 Mô hình các hệ thống tìm kiếm.

Chương 2 TRUYỀN THÔNG TRONG HỆ PHÂN TÁN

Chương này nhằm giới thiệu cách th c ây ựng các ng ng phân tán bằng các cơ chế gọi thủ t c từ a (RPC - Remote Proce ure Call và RMI - Remote Method Invocation)

2.1 Lời gọi thủ tục từ xa (RPC- Remote Procedure Call) 2.1.1 Giới thiệu

Lời gọi thủ t c a là một cơ chế cho phép một chương trình có thể gọi thực thi một thủ t c (hay hàm) trên một máy tính khác. Trong chương trình lúc này, tồn tại hai loại thủ t c: thủ t c c c bộ và thủ t c ở a.

- Thủ t c c c bộ là thủ t c được định nghĩa, cài đặt và thực thi tại máy của chương trình.

- Thủ t c ở a là thủ t c được định nghĩa, cài đặt và thực thi trên một máy tính khác.

Cú pháp gi a lời gọi thủ t c c c bộ và ở a thì giống nhau. Tuy nhiên, khi một thủ t c ở a được gọi đến, một thành phần của chương trình gọi là Stub sẽ chuyển hướng để kích hoạt một thủ t c tương ng nằm trên một máy tính khác với máy của chương trình gọi. Đối với người lập trình, việc gọi thủ t c a và thủ t c c c bộ thì giống nhau về mặt cú pháp. Đây chính là cơ chế cho phép đơn giản hóa việc ây ựng các ng ng Client-Server. Trong hệ thống RPC, Server chính là máy tính cung cấp các thủ t c ở a cho phép các chương trình trên các máy tính khác gọi thực hiện. Client chính là các chương trình có thể gọi các thủ t c ở a trong quá trình tính toán của mình. Một Client có thể gọi thủ t c ở a của nhiều hơn một máy tính. Như vậy sự thực thi của chương trình Client lúc này không còn gói gọn trên một máy tính của Client mà nó trải rộng trên nhiều máy tính khác nhau. Đây chính là mô hình của ng ng phân tán (Distributed Application).

2.1.2 Kiến trúc của chương trình Client-Server cài đặt theo cơ chế lời gọi thủ tục xa. tục xa.

Một ng ng Client-Server theo cơ chế RPC được ây ựng gồm có sáu phần như sơ đồ ưới đây:

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

Phần Client là một quá trình người ùng, nơi khởi tạo một lời gọi thủ t c từ a. M i lời gọi thủ t c ở a trên phần Client sẽ kích hoạt một thủ t c c c bộ tương ng nằm trong phần Stub của Client.

Phần ClientStub cung cấp một bộ các hàm c c bộ mà phần Client có thể gọi. M i một hàm của ClientStub đại iện cho một hàm ở a được cài đặt và thực thi trên Server.

M i khi một hàm nào đó của ClientStub được gọi bởi Client, ClientStub sẽ đóng gói một thông điệp để mô tả về thủ t c ở a tương ng mà Client muốn thực thi cùng với các tham số nếu có. Sau đó nó sẽ nhờ hệ thống RPCRuntime c c bộ g i thông điệp này đến phần Server Stub của Server.

Phần RPCRuntime quản l việc truyền thông điệp thông qua mạng gi a máy Client và máy Server. Nó đảm nhận việc truyền lại, báo nhận, chọn đường gói tin và m hóa thông tin. RPCRuntime trên máy Client nhận thông điệp yêu cầu từ ClientStub, g i nó cho RPCRuntime trên máy Server bằng lệnh sen (). Sau đó gọi lệnh wait() để chờ kết quả trả về từ Server.

Khi nhận được thông tiệp từ RPCRuntime của Client g i sang, RPCRuntime bên phía server chuyển thông điệp lên phần ServerStub.

ServerStub mở thông điệp ra em, ác định hàm ở a mà Client muốn thực hiện cùng với các tham số của nó. ServerStub gọi một thủ t c tương ng nằm trên phần Server.

Khi nhận được yêu cầu của ServerStub, Server cho thực thi thủ t c được yêu cầu và g i kết quả thực thi được cho ServerStub.

ServerStub đóng gói kết quả thực trong một gói tin trả lời, chuyển cho phần RPCRuntime c c bộ để nó g i sang RPCRuntime của Client .

RPCRuntime bên phía Client chuyển gói tin trả lời nhận được cho phần ClientStub. ClientStub mở thông điệp ch a kết quả thực thi về cho Client tại vị trí phát ra lời gọi thủ t c a.

Trong các thành phần trên, RPCRuntime được cung cấp bởi hệ thống. ClientStub và ServerStub có thể tạo ra thủ công (phải lập trình) hay có thể tạo ra bằng các công c cung cấp bởi hệ thống.

Cơ chế RPC được h trợ bởi hầu hết các hệ điều hành mạng cũng như các ngôn ng lập trình.

2.2 Kích hoạt phương thức xa (RMI- Remote Method Invocation ) 2.2.1 Giới thiệu

RMI là một sự cài đặt cơ chế RPC trong ngôn ng lập trình hướng đối tượng Java. Hệ thống RMI cho phép một đối tượng chạy trên một máy ảo Java này có thể kích hoạt một phương th c của một đối tượng đang chạy trên một máy ảo Java khác. Đối tượng có phương th c được gọi từ a gọi là các đối tượng ở a (Remote Object).

Một ng ng RMI thường bao gồm 2 phần phân biệt: Môt chương trình Server và một chương trình Client.

- Chương trình Server tạo một số các Remote Object, tạo các tham chiếu (reference) đến chúng và chờ nh ng chương trình Client kích hoạt các

- Chương trình Client lấy một tham chiếu đến một hoặc nhiều Remote Object trên server và kích hoạt các phương th c từ a thông qua các tham chiếu.

Một chương trình Client có thể kích hoạt các phương th c ở a trên một hay nhiều Server. T c là sự thực thi của chương trình được trải rộng trên nhiều máy tính. Đây chính là đặc điểm của các ng ng phân tán. Nói cách khác, RMI là cơ chế để ây ựng các ng ng phân tán ưới ngôn ng Java.

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

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).

 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.

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

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 28 - 47)

Tải bản đầy đủ (PDF)

(47 trang)