Tải bản đầy đủ (.pdf) (12 trang)

Báo cáo khoa học: "Hệ thống multi agent và ứng dụng trong tính toán phân tán" ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (361.8 KB, 12 trang )


Hệ thống multi agent và ứng dụng trong tính toán phân tán


Ngô Đăng quang
Bộ môn Kết cấu xây dựng
Trần Ngọc Linh
Bộ môn tự động hóa thiết kế cầu đờng
Trờng Đại Giao thông Vận tải

Tóm tắt: Software Agent đợc coi l một công nghệ có hiệu quả trong tính toán phân tán.
Từ những năm 1990 đến nay, công nghệ liên tục đợc phát triển v đã bắt đầu đợc ứng dụng
có hiệu quả trong nhiều lĩnh vực khác nhau. Bi báo tập trung giới thiệu các khái niệm chính về
software agent v hệ thống Multiagent cũng nh khả năng ứng dụng của chúng trong tính toán
phân tán. Các ví dụ đợc nêu trong bi báo l các ứng dụng đã đợc một số tác giả nớc ngoi
v chính các tác giả thực hiện.
Summary: Software Agent is one of the most efficient technologies in distributed
computing. Since the 1990s this technology is intensively developed and successfully applied
in many different fields. This paper presents some main concepts of software agent and multi-
agent system as well as their features for distributed computing. The examples given in the
paper are applications exercised by some foreign researchers and the authors themselves.

I. Tổng quan về tính toán phân tán
Tính toán phân tán là phơng pháp tính toán phân quyền và song song, sử dụng hai hay
nhiều máy tính đợc nối mạng với nhau để thực hiện một nhiệm vụ chung [10]. Nh vậy, khi sử
dụng phơng pháp tính toán phân tán, các ứng dụng và logic nghiệp vụ sẽ đợc phân bố trên
nhiều nền tảng khác nhau. Nói cách khác, việc xử lý đợc phân bố trên một hay nhiều máy mà
ở đó mỗi quá trình chỉ thực hiện một phần của ứng dụng theo một trình tự nhất định. Các quá
trình này có thể không đợc thực hiện đồng thời [9].
CT 2
Có một số lý do làm cho việc tính toán phân tán trong một số dạng ứng dụng là cần thiết.


Thứ nhất và điển hình nhất là, việc sử dụng các nguồn lực phân tán sẽ cho phép tăng tốc quá
trình tính toán, xử lý một vấn đề nhờ tính song song. Tất nhiên, sự tăng tốc này phụ thuộc vào
mức độ song song của vấn đề cần xử lý. Tính song song ở đây đợc hiểu là khả năng có thể
chia phạm vi vấn đề thành các phần nhỏ có thể xử lý song song và độc lập. Mô hình tính toán
phân tán sẽ làm đơn giản hoá việc giải quyết các vấn đề khi tri thức chuyên gia và nguồn lực để
giải quyết chúng có tính phân tán. Trong thực tế, có rất nhiều vấn đề lớn chỉ có thể giải quyết
đợc bằng việc sử dụng kết hợp nhiều nguồn lực khác nhau. Các nguồn lực này lại có thể phân
tán cả về mặt địa lý, thành phần, nội dung và phạm vi. Với các vấn đề dạng này, mô hình tính
toán tập trung là rất khó thực hiện. Nhiều trờng hợp, phơng pháp tập trung là không thể thực
hiện đợc do các hệ thống và dữ liệu thuộc về các tổ chức độc lập và chúng đợc yêu cầu phải
giữ riêng biệt. Một ví dụ điển hình ở đây là việc thiết kế hay chế tạo các thiết bị máy móc hoặc
công trình xây dựng. Các quá trình này đòi hỏi sự tham gia của rất nhiều chuyên gia hay cơ sở
sản xuất ở các lĩnh vực rất khác nhau và phần nhiều các công việc mà họ thực hiện là có tính
độc lập tơng đối và song song với nhau. Ngoài ra, việc sử dụng mô hình tính toán phân tán


trong một số ứng dụng sẽ làm giảm thiểu sự chuyển giao dữ liệu không cần thiết giữa các bộ
phận xử lý trong một quá trình. Các thông tin đợc sử dụng có thể phân tán về mặt địa lý, có thể
có nhiều thành phần, có thể có nội dung và phạm vi rất lớn. ở các ứng dụng này, các dữ liệu thô
sẽ đợc sàng lọc ở các bộ phận xử lý ngoại vi và chỉ các dữ liệu cần thiết mới đợc chuyển về
bộ phận xử lý trung tâm [1].
II. Giới thiệu một số công nghệ tính toán phân tán
2.1. COM DCOM
Mô hình đối tợng thành phần phân tán DCOM (Distributed Component Object Model) cho
phép gọi các đối tợng ở xa sử dụng RPC (Remote Procedure Call). Các đối tợng DCOM
thông báo các phơng thức của chúng đến với các ứng dụng thông qua nhiều giao diện. Các
giao diện này đợc xây dựng bằng ngôn ngữ định nghĩa giao diện (Interface Definition
Language - IDL). Trình biên dịch IDL sẽ tạo ra các thành phần (proxies/stubs) và bộ khung
(skeletons) rồi đăng ký chúng trong registry của hệ thống và đồng thời cũng tạo ra các th viện
kiểu. Các files này mô tả đối tợng ở xa và các đối tợng này có thể đợc gọi bằng các giao

diện đợc cung cấp bởi cơ chế COM. Phơng thức đợc sử dụng ở đây là lời gọi thủ tục từ xa
(Object Remote Procedure Call - ORPC). Chuẩn nhị phân của DCOM cho phép các đối tợng
có thể đợc viết bằng các ngôn ngữ khác nhau. Mặc dù DCOM đợc Microsoft phát triển nhng
nó vẫn đợc sử dụng trong nhiều hệ điều hành khác MS Windows nh UNIX, Apple Macintosh
và VSM [6].
2.2. CORBA
CT 2
Rất nhiều tổ chức đã sử dụng kiến trúc môi giới yêu cầu đối tợng phổ thông (Common
Object Request Broker Architecture - CORBA) của OMG, một tiêu chuẩn đợc sử dụng nh là
công cụ để tích hợp các ứng dụng đa dạng, phân tán với dữ liệu. Ngôn ngữ định nghĩa giao diện
của CORBA cho phép ngời phát triển xác định các giao diện hớng đối tợng, không phụ
thuộc ngôn ngữ lập trình cho các cấu kiện của ứng dụng và hệ thống. Các định nghĩa IDL đợc
lu trữ trong một th viện giao diện, một dạng nh sổ điện thoại cung cấp các giao diện và dịch
vụ. Để lập trình phân tán, th viện đối tợng đợc dùng làm trung tâm để kết nối các đối tợng
đợc bố trí ở các hệ thống khác nhau.
Môi giới yêu cầu đối tợng (Object Request Broker - ORB) của CORBA thực hiện một kênh
giao tiếp, qua đó, các ứng dụng có thể truy cập các giao diện của đối tợng để yêu cầu dữ liệu
và dịch vụ. Môi trờng đối tợng phổ biến (Common Object Environment - COE) của CORBA
cung cấp các dịch vụ ở cấp độ hệ thống nh quản lý vòng đời của các đối tợng đợc truy cập
thông qua CORBA, thông báo sự kiện giữa các đối tợng và kiểm soát giao tác và kiểm soát
trùng hợp [9].
2.3. RMI
RMI (Remote Method Invocation) cho phép xây dựng các ứng dụng tính toán phân tán
bằng Java. Theo công nghệ này, phơng thức của các đối tợng Java có thể đợc gọi từ một
ứng dụng nằm ở một máy ảo Java (Java virtual machines JVM) từ xa. Để gọi một đối


tợng từ xa, ứng dụng Java phải có tham chiếu đến đối tợng đó. RMI cung cấp một số phơng
pháp để một ứng dụng Java có thể nhận đợc tham chiếu của đối tợng ở xa cần thiết. Với RMI,
việc phân biệt trình chủ hay trình khách chỉ là tơng đối. Chơng trình có chứa các đối tợng có

thể đợc gọi từ xa đợc gọi là trình chủ. Chơng trình này, có thể đồng thời lại là trình khách khi
nó gọi đối tợng từ một chơng trình khác. RMI sử dụng phơng pháp tuần tự hoá (serialization)
để sắp xếp dữ liệu mà không phá vỡ cấu trúc kiểu của chúng. Giao thức đợc dùng để trao đổi
dữ liệu là JRMP (Java Remote Method Protocol). RMI không sử dụng các ngôn ngữ trừu tợng
nh IDL để mô tả đối tợng ở trình chủ.
Nhợc điểm chính của RMI là chỉ chạy trên môi trờng của Java vì thế yêu cầu ở đây là cả
máy chủ và máy khách đều phải đợc cài Java. Một nhợc điểm nữa của RMI là khi kết nối với
mạng diện rộng Internet các ứng dụng của RMI bị chặn lại bởi tờng lửa (Firewall) vì RMI không
sử dụng cổng 80 là cổng của dịch vụ HTTP (cổng mà hầu nh mọi tờng lửa đều cho qua). Vì
thế, để sử dụng RMI trên mạng diện rộng cần phải sử dụng một số cơ chế trung gian phức tạp
để sử dụng cổng 80 [6].
2.4. Webservice
Webservice là các ứng dụng phần mềm hoạt động dựa trên nền các giao thức chuẩn của
Internet và không phụ thuộc vào hệ thống cũng nh ngôn ngữ lập trình. Về bản chất,
webservice là các thủ tục hay hàm có thể thực hiện một số nhiệm vụ nhất định mà một ứng
dụng có thể gọi trên Internet. Webservice có thể chia sẻ dữ liệu giữa các hệ thống và ngôn ngữ
lập trình. Các ứng dụng sử dụng các dịch vụ của webservice không cần phải biết chi tiết thực
hiện của các dịch vụ này mà chỉ cần biết địa chỉ của dịch vụ, kiểu của các tham số đầu vào và
tham số đầu ra.
CT 2
Do webservice sử dụng các giao thức chuẩn XML với HTTP, SMTP hay FTP nên nó có thể
khắc phục đợc các khó khăn có liên quan đến tờng lửa của các công nghệ phân tán khác
nh DCOM hay RMI. Một hàm của webservice có thể đợc gọi một cách dễ dàng từ các ứng
dụng Web hay ứng dụng thông thờng nếu các ứng dụng này có thể kết nối bằng các giao thức
Internet tiêu chuẩn.
Nh các ứng dụng phân tán khác, webservice cũng có thành phần service broker để tìm
kiếm dịch vụ, service provider cung cấp dịch vụ và service requester là ứng dụng yêu cầu
dịch vụ. Ngôn ngữ đợc sử dụng để mô tả webservice là WSDL (Web Service Description
Language), một ngôn ngữ dựa trên XML. WSDL cung cấp các thông tin về dịch vụ, địa chỉ cũng
nh cách cung cấp dịch vụ của webservice. Các dịch vụ webservice đợc đăng ký và quản lý

nhờ các chuẩn đợc định nghĩa bởi UDDI (Universal Description, Discovery, and Integration).
Webservice sử dụng SOAP (Simple Object Access Protocol) làm giao thức chuẩn để chuyển
giao dữ liệu giữa các thành phần của ứng dụng. Đây là giao thức dựa trên XML và hoạt động
không phụ thuộc vào môi trờng.
Hiện nay, các tiêu chuẩn đợc sử dụng trong webservice vẫn đang ở trong giai đoạn phát
triển và cha thật đầy đủ. Khi so sánh với các công nghệ khác nh CORBA, DCOM, tính hiệu
quả của công nghệ này không thật cao do các thông điệp đợc mô tả ở dạng văn bản và cần
phải chuyển đổi ở hai đầu [6].


III. Hệ thống multi - Agent
Các công nghệ tính toán phân tán kể trên có dạng phân tán đối tợng kiểu khách - chủ
(client - server) với địa chỉ của các đối tợng cung cấp dịch vụ là cố định. Bên cạnh các lợi thế
về tốc độ tính toán, tính đa dạng trong hoạt động, v.v các công nghệ dạng này cũng có những
hạn chế quan trọng nh đòi hỏi tính đồng bộ cao, tốc độ đờng truyền cao và độ trễ thấp. Một
số công nghệ đòi hỏi dữ liệu phải đợc truyền qua một số cổng nhất định và do đó, không thích
hợp với mạng diện rộng hay Internet. Ngoài ra, các công nghệ nêu trên ít thích hợp với các hệ
thống tính toán trên các thiết bị di động do các thiết bị này có khả năng tính toán thấp và đờng
truyền dữ liệu hạn chế. Software Agent là một công nghệ tính toán phân tán mới, có thể khắc
phục đợc các nhợc điểm kể trên.
3.1. Khái niệm về Software Agent
Tính toán phân tán dựa trên công nghệ Software Agent, sau đây gọi là Agent, là một
phơng pháp mới, đợc đánh giá là có hiệu quả. Agent đợc phát triển dựa trên ý tởng về trí
tuệ nhân tạo phân tán (Distributed Artificial Intelligence - DAI) và nhất là mô hình của Hewitt từ
những năm 1970. Trong mô hình của mình, Hewitt đã đề xuất một khái niệm về một đối tợng
có tính tự chủ, tơng tác và hoạt động cạnh tranh (concurrently-executing) tức là một tác tử
(actor). Tuy nhiên, công nghệ này chỉ đợc phát triển mạnh mẽ sau khi Internet đợc sử dụng
rộng rãi [7], [8].
Cho đến nay vẫn cha có một định nghĩa thống nhất về Agent. Tuy nhiên, có thể mô tả
Agent nh là một đối tợng phần mềm hoạt động một cách tơng đối độc lập, tự chủ và có khả

năng cộng tác với nhau trong một môi trờng để hoàn thành một nhiệm vụ định trớc [8]. Đặc
điểm cơ bản của Agent là có khả năng đóng gói mã lệnh, dữ liệu và cả trạng thái thi hành, nhờ
vậy có thể chuyển công việc đang thực hiện tại một máy đến một máy khác. Nh vậy, so với các
công nghệ tính toán phân tán trớc đây, Agent tỏ ra là công nghệ tiên tiến nhất.
CT 2
Một số đặc trng quan trọng của Agent là
Tính tự chủ. Tính tự chủ thể hiện khả năng tự kiểm soát bản thân của Agent. Mỗi Agent
đợc trang bị một cơ sở kiến thức và một cơ cấu đa ra các quyết định từ cơ sở kiến thức của nó
và các dữ kiện mà nó thu đợc từ bên ngoài. Sau khi đợc giao nhiệm vụ, Agent tự hoạt động
mà không cần phải đợc điều khiển từ bên ngoài.
Tính di động. Khi di chuyển trong mạng, các Agent đóng gói mã lệnh, dữ liệu và trạng thái
thực hiện do đó, chúng có thể thực hiện một nhiệm vụ đợc giao trên nhiều trạm máy tính khác
nhau.
Tính thích ứng. Một Agent có khả năng nhận thức đợc về môi trờng của mình và có
những đáp thích hợp với sự thay đổi môi trờng để thoả mãn các mục tiêu đợc giao.
Tính chủ động. Các Agent có khả năng thể hiện các ứng xử hớng mục tiêu bằng việc
hoàn thành các kế hoạch để thoả mãn các mục tiêu thiết kế.
Tính xã hội. Các Agent có khả năng tơng tác với nhau và cả với con ngời để thoả mãn
các mục tiêu thiết kế.


3.2. Khái niệm về hệ thống multi - Agent
Các Agent hoạt động và tồn tại trong một số môi trờng, bao gồm cả môi trờng tính toán
và môi trờng vật lý. Mặc dù có những trờng hợp một Agent có thể hoạt động có hiệu quả một
mình nhng, trong hệ thống các mạng máy tính, các tính huống nh vậy rất hiếm gặp. Thờng
gặp là trờng hợp các Agent tơng tác với nhau. Hệ thống hay môi trờng mà, các Agent tơng
tác đợc với nhau gọi là hệ thống multi-Agent. Đây là một môi trờng mạng gắn kết một cách tự
do các Agent để giải quyết một vấn đề mà từng Agent riêng biệt không giải quyết đợc. Việc sử
dụng hệ thống multi-Agent cho phép một vấn đề có thể đợc giải quyết một cách phân tán trên
nhiều hệ thống phần mềm và phần cứng khác nhau. Hiện nay, hệ thống multi-Agent đợc coi là

cách tốt nhất để mô tả và thiết kế các hệ thống tính toán phân tán.
Trong một hệ thống multi - Agent, các software Agent phải có hai khả năng cơ bản là tìm
kiếm đối tác, tức là các Agent khác, và hợp tác với chúng để thực hiện công việc [8].
Việc hỗ trợ các Agent trong việc tìm kiếm đối tác đợc thực hiện bởi các Agent trung gian
(middle Agent). Các Agent thông thờng sử dụng Agent trung gian để khai báo khả năng của
mình hay tìm các Agent khác cung cấp dịch vụ mà chúng cần. Một lợi thế của Agent trung gian
là chúng cho phép các hệ thống multi-Agent có thể hoạt động một cách ổn định khi đối mặt với
những vấn đề nh sự xuất hiện, biến mất hay chuyển động của các Agent. Dạng Agent trung
gian phổ biến có dạng trang vàng (yellow page). Dạng Agent này hỗ trợ các Agent thông
thờng trong việc tìm kiếm dịch vụ của các Agent khác dựa trên những khả năng đã đợc đăng
nhập.
Tơng tác là một trong những đặc trng quan trọng nhất của một Agent. Các Agent thờng
xuyên tơng tác với nhau để chia sẻ thông tin và thực hiện nhiệm vụ chung. Để tơng tác, các
Agent phải sử dụng chung các ngôn ngữ và giao thức trao đổi, các cấu trúc chung về nội dung
thông tin và cùng chia sẻ ngữ nghĩa.
CT 2
Ngôn ngữ trao đổi giữa các Agent ACL (Agent Communication Language) chủ yếu là ngôn
ngữ khai báo đợc phát triển dựa trên lý thuyết hành vi ngôn ngữ (illocutionary acts) nh yêu
cầu, mệnh lệnh. Ngôn ngữ khai báo đợc sử dụng phổ biến nhất hiện nay là KQML [8]. Cấu trúc
ngữ nghĩa của thông điệp giữa các Agent đợc định nghĩa bởi bản thể (ontology). Ontology là
các cấu trúc để mô tả khái niệm và quan hệ giữa chúng trong phạm vi vấn đề. Ontology mà các
Agent sử dụng để mô tả phạm vi vấn đề phải có cấu trúc giống nhau. Một khi các Agent trao đổi
các ontology chung, chúng sẽ sử dụng các ontology này để hiểu nhau và thực hiện các hành vi
xác định.
3.3. Lĩnh vực áp dụng
Các hệ thống multi - Agent thích hợp cho các ứng dụng có những đặc trng sau:
Có tính phân tán cố hữu: dữ liệu và thông tin của chúng đợc xử lý ở các vị trí địa lý khác
nhau, ở các thời gian khác nhau, đợc tổ chức thành các nhóm mà việc truy cập chúng cần các
ngữ nghĩa và ngôn ngữ khác nhau (sự phân tán về ngữ nghĩa) hay đợc tổ chức thành các nhóm
mà việc truy cập chúng cần các khả năng về nhận biết, tri thức khác nhau (sự phân tán về chức

năng).


Có tính phức hợp cố hữu: chúng là những vấn đề quá lớn không thể xử lý đợc bằng một hệ
thống riêng, tập trung do các giới hạn về công nghệ phần cứng và phần mềm. Việc mở rộng các
hệ thống tập trung là rất khó khăn, tốn thời gian, tiền của. Hơn nữa việc mở rộng này rất không
bền vững và sẽ không còn tác dụng khi phạm vi vấn đề lại tiếp tục đợc mở rộng.
3.4. Các lợi thế của các hệ thống multi - Agent
Với t cách là một hệ thống tính toán phân tán, các hệ thống multi-Agent có các đặc trng
chính sau:
Có tốc độ v hiệu quả xử lý cao: Các Agent có thể hoạt động theo kiểu không đồng bộ và
song song có thể làm tăng tốc toàn bộ quá trình xử lý.
Chắc chắn v tin cậy: Sự h hỏng của một vài Agent sẽ không nhất thiết làm cho toàn bộ
hệ thống không còn hoạt động nữa vì các Agent còn lại có thể tiếp quản các phần việc của
chúng.
Có tính điều chỉnh đợc v tính mềm dẻo cao: Hệ thống có thể bổ sung thêm các Agent khi
phạm vi vấn đề đợc mở rộng và không ảnh hởng đến sự hoạt động của các Agent khác.
Có chi phí hợp lý: Hệ thống multi - Agent có chi phí hợp lý hơn so với các hệ thống tập
trung do hệ thống multi - Agent có thể đợc ghép từ các hệ thống con đơn giản có giá thành
thấp.
Có khả năng dùng lại: Một số Agents cụ thể có thể đợc phát triển từ đầu một cách riêng
biệt bởi một số chuyên gia trong khi phần còn lại của hệ thống vẫn đợc tiếp tục sử dụng.
CT 2
IV. Xây dựng hệ thống multi - Agent
Với các ứng dụng thông thờng, các hệ thống multi Agent thờng đợc phát triển dựa trên
các hệ thống khung (framework). Hiện nay, có nhiều hệ thống khung đã đợc giới thiệu. Điển
hình trong số này là JACK của Agent Oriented Software Pty. Ltd., JADE (Java Agent
DEvelopment Framework) Telecom Italia, Aglets đợc phát triển bởi IBM Nhật bản, MAST
(MultiAgent Systems Tool) của Trờng Đại học tổng hợp kỹ thuật Madrid. Phần sau đây giới
thiệu cách xây dựng hệ thống multi-Agent với JADE do đây là hệ thống tơng đối mạnh và đợc

sử dụng khá phổ biến.
4.1. Giới thiệu về JADE

JADE (Java Agent Development Framework) là một môi trờng hỗ trợ phát triển hệ thống
multi-Agent dựa trên nền tảng Java. JADE bao gồm các thành phần chính sau:
Môi trờng thực thi, là môi trờng mà trong đó các Agent sống và hoạt động. Môi trờng
này cần đợc kích hoạt ở từng máy tính trớc khi các Agent có thể bắt đầu hoạt động.
Một số th viện Java chứa các lớp mà ngời lập trình cần sử dụng để phát triển các Agent.
Một loạt các công cụ đồ hoạ để quản lý và kiểm soát hoạt động của các Agent.
Mỗi một môi trờng thực thi của JADE đợc gọi là một container. Mỗi container chứa một


hay một số các Agent. Một tập hợp các container đợc gọi là một platform. Mỗi platform phải có
một container chính (main container) và các container khác, khi khởi động, đều phải đăng ký với
container chính các thông tin về tên máy (host) và cổng (port) của chúng.
Mỗi container chính chứa hai Agent đặc biệt AMS (Agent Management System) và DF
(Directory Facilitator). AMS có nhiệm vụ quản lý các Agent có trong các container của cả
platform thông qua dịch vụ đặt tên để đảm bảo rằng, các Agent chỉ có một tên duy nhất trong
toàn bộ platform. Các Agent trong các platform cũng đợc quản lý (xoá, tạo mới) nhờ AMS. DF
có nhiệm vụ cung cấp các trang vàng để qua đó, một Agent có thể tìm thấy các Agent khác
cung cấp các dịch vụ mà Agent đó cần để thực hiện công việc của mình. Một khi các Agent đã
biết tên của nhau, chúng có thể liên lạc đợc với nhau không phụ thuộc vào vị trí vật lý của
chúng. Trên hình 1, Agent A2 có thể liên lạc đợc với Agent A3 ở cùng container, với Agent A1
hoặc A4 ở khác container hay với A5 ở khác platform.
Nh trên đã nêu, JADE là môi trờng thực thi và phát triển ứng dụng Agent trên nền Java
nên ngôn ngữ lập trình cho các hệ thống chính là Java và một Agent trong JADE thực chất là
một đối tợng Java.


CT 2

Hình 1. Cấu trúc của hệ thống multiAgent đợc xây dựng với JADE
4.2. Xây dựng hệ thống multi-Agent với JADE
Các nội dung chính trong quá trình xây dựng hệ thống bao gồm [2], [3]:
Xây dựng kiểu Agent: Mỗi kiểu Agent trong JADE đợc tạo ra từ việc mở rộng lớp


jade.core.Agent và cài đặt hàm setup.
Xác định nhiệm vụ cho Agent: Các nhiệm vụ mà một Agent cần hoàn thành là một đối
tợng thuộc một kiểu là lớp con của lớp jade.core.behaviours.Behaviour. Đối tợng nhiệm vụ,
sau khi đợc tạo ra, sẽ đợc gán cho từng Agent. Mỗi lớp nhiệm vụ (lớp con của lớp Behaviour)
sẽ mô tả các ứng xử của Agent cũng nh điều kiện kết thúc công việc.

Thực hiện quá trình trao đổi giữa các Agent: Thông tin giữa các Agent đợc thực hiện theo
kiểu gửi thông điệp không đồng bộ. Định dạng của thông điệp trong JADE là ACL, đã đợc
FIPA chuẩn hoá. Mỗi thông điệp là một đối tợng thuộc lớp jade.lang.acl.ACLMessage. Lớp
ACLMessage xác định các thông tin về ngời gửi, ngời nhận, ngôn ngữ, bản thể (ontology), nội
dung, v.v. của thông điệp. Thông điệp đợc gửi và nhận bằng các hàm đã đợc định nghĩa sẵn
trong lớp Agent.

Đăng nhập v tìm kiếm dịch vụ: Nh đã nêu ở trên, các Agent đăng ký dịch vụ của mình
cũng nh tìm kiếm dịch vụ của các Agent khác thông qua Agent DF. Thông điệp giữa Agent DF
và các Agent khác chính là ACL. Tuy nhiên, ngôn ngữ và bản thể của thông điệp với DF đã
đợc FIPA chuẩn hoá do đó, các Agent có thể làm việc đợc với các DF ở các platform khác
nhau.

Xử lý nội dung thông điệp: các thông điệp có thể đợc trao đổi và xử lý theo 3 cách. Cách
thứ nhất là sử dụng một đối tợng thuộc kiểu ContentManager để chuyển đổi một đối tợng
Java thành chuỗi ký tự hoặc chuỗi byte và đặt chuỗi này vào mục nội dung của thông điệp ACL.
Đối tợng này cũng có nhiệm vụ thực hiện quá trình ngợc lại, chuyển chuỗi thành đối tợng.
Cách tiếp theo là sử dụng phơng pháp tuần tự của chính Java để trao đổi dữ liệu. Phơng pháp

khác là sử dụng đối tợng thuộc kiểu bản thể để mô tả cấu trúc ngữ nghĩa của nội dung các
thông điệp.

CT 2
V. Ví dụ ứng dụng
Phần sau đây giới thiệu một số ứng dụng điển hình về tính toán phân tán trong ngành xây
dựng đã đợc thực hiện các hệ thống multi-Agent. Tất cả các hệ thống này đã đợc phát triển
bằng JADE.
5.1. Hệ thống multi - Agent hỗ trợ thiết kế hợp tác
Các dự án thiết kế trong xây dựng luôn có sự tham gia của nhiều đối tác hoặc văn phòng
thiết kế. Trong hầu hết các trờng hợp, các văn phòng thiết kế này nằm ở các vị trí địa lý khác
nhau và sử dụng nhiều hệ thống phần mềm khác nhau. Cho đến nay, thông tin trao đổi hầu hết
đều ở dạng các tập tin dữ liệu tĩnh và đòi hỏi phải đợc xử lý bằng tay thờng mất nhiều thời
gian và công sức. Việc sử dụng các hệ thống multi-Agent cho phép dữ liệu đợc xử lý một cách
tự động thông qua các Agent với các nhiệm vụ đã đợc định nghĩa sẵn.
Quá trình hợp tác thực hiện một dự án của các văn phòng thiết kế có thể đợc chia thành 3
bộ phận chính là cá nhân hoặc đơn vị thiết kế, dữ liệu thiết kế cần trao đổi, xử lý và hệ thống
phần mềm đợc sử dụng trong thiết kế hợp tác. Tơng ứng với 3 bộ phận trên, sẽ có 3 nhóm
Agent đợc phát triển: nhóm Agent làm việc trực tiếp với các tác nhân, nhóm Agent có nhiệm vụ


xử lý và trao đổi dữ liệu và nhóm Agent kết nối với các phần mềm (hình 2). Thông qua hệ thống
các Agent kể trên, các dữ liệu và phần mềm khác nhau có thể làm việc chung đợc với nhau [3].

Hình 2. Hệ thống multi-Agent trong hệ thống hỗ trợ thiết kế hợp tác
5.2. Hệ thống multi-Agent hỗ trợ phân tích mỏi trong kết cấu thép
Rất nhiều bài toán xây dựng đòi hỏi khối lợng và thời gian tính toán lớn có thể đợc chia
thành nhiều bài toán nhỏ, độc lập và đợc phân tích song song với nhau. Khác với mô hình tính
toán song song đợc thực hiện trên các máy tính song song đắt tiền, việc áp dụng các hệ thống
multi-Agent cho phép thực hiện các tính toán song song trên mạng máy tính đơn giản nh mạng

PC.
CT 2
Một ví dụ chứng minh tính hiệu quả của phơng pháp này đã đợc thể hiện ở tính toán mỏi
do gió của cáp treo cầu vòm (
Hình) đợc Jelic, Bilek, Gálffy, Hartmann thực hiện [4].

Hình 3. Mô hình kết cấu cần khảo sát


Quá trình tính toán mỏi do gió bao gồm các bớc chính sau:
Tạo tập hợp các tốc độ gió theo dạng xác suất,
Tính toán dao động của cáp treo,
Tính toán kết cấu dới tác dụng của tải trọng động,
Tính toán phá hoại mỏi.
ứng với mỗi cấp tốc độ gió cần xây dựng một mô hình và thực hiện tính toán. Với ví dụ đã
nêu, các tác giả cần thực hiện tính toán với 1226 mô hình. Việc tính toán song song đã đợc
thực hiện với một hệ thống multi Agent đợc phát triển với JADE. Hệ thống multi Agent đợc cấu
tạo từ một main-Agent và một loạt slave-Agent. Main-Agent cung cấp giao diện đồ hoạ và quản
lý các mô hình tính toán. Trong khi đó, các slave-Agent di chuyển trên mạng máy tính để thực hiện
quá trình tính toán. Kết quả tính toán song song trên các mạng PC đợc thể hiện trên hình 4.

CT 2
Hình 4. Thời gian tính toán mỏi kết cấu trên mạng PC
5.3. Hệ thống multi - Agent hỗ trợ phân tích cục bộ kết cấu cầu
Một hệ thống tơng tự trên đã đợc xây dựng ở Trờng Đại học Giao thông Vận tải (Hà
Nội) để tính toán phân tán các bộ phận chi tiết của kết cấu.
Trong yêu cầu tính toán cầu vợt Ngã T Sở (Hà Nội), có 6 khu vực cần đợc thực hiện
phân tích cục bộ là các khu vực neo cáp ở dầm chính, khu vực neo cáp ở đỉnh tháp cũng nh
khu vực chung giữa chân tháp và dầm chính (hình 6). Bê tông ở tất cả các khu vực đều đợc mô
hình hoá bằng các phần tử khối sáu mặt. Cáp dự ứng lực đợc mô hình hoá thành các phần tử

thanh và liên kết với các phần tử bê tông xung quanh bằng các liên kết cứng. Trung bình, mỗi
mô hình ứng với một khu vực tính toán có chứa hơn 80.000 phần tử và hơn 100.000 nút (hình 7).
Thời gian tính toán một mô hình trên một máy PC mất trung bình hơn 120 phút.



Hình 6. Mô hình cầu Ngã T Sở v các khu vực cần phân tích chi tiết

CT 2
Hình 7. Mô hình phân tích chi tiết ở một khu vực kết cấu
Nhiệm vụ của hệ thống multi-Agent hỗ phân tích chi tiết kết cấu có nhiệm vụ là cầu nối
chuyển giao dữ liệu giữa các chơng trình phân tích kết cấu, cụ thể trong ví dụ này là chơng
trình MIDAS/Civil. Môi trờng phát triển hệ thống là JADE. Các Agent cần đợc tạo ra bao gồm:
MainAgent có nhiệm vụ quản lý các mô hình tính đã đợc kỹ s kết cấu tạo ra nh phân
phối các mô hình cha đợc tính toán cho các ClientAgent tự do, tiếp nhận các mô hình đã đợc
phân tích xong cũng nh giao tiếp với kỹ s phân tích.
ClientAgent có nhiệm vụ tiếp nhận dữ liệu, nh mô hình tính, từ MainAgent và chuyển dữ
liệu này cho chơng trình tính thông qua các kết nối với WrapperAgent. Sau khi chuyển dữ liệu
cho WrapperAgent, ClientAgent sẽ chờ đợi cho đến khi mô hình đợc tính toán xong và thực
hiện việc phân tích dữ liệu kết quả. Dữ liệu đã đợc phân tích sẽ đợc chuyển về cho
MainAgent. Tại một thời điểm, chỉ có một ClientAgent đợc khởi tạo và hoạt động trên một máy
PC.
WrapperAgent là Agent có nhiệm vụ kết nối chơng trình phân tích kết cấu với môi trờng
tính toán phân tán. Thông qua WrapperAgent, dữ liệu đầu vào cũng nh kết quả phân tích sẽ
đợc trao đổi giữa chơng trình phân tích kết cấu ở từng máy PC với hệ thống muti-Agent.
Sau khi từng máy PC đợc khởi động, một chơng trình Java ở dạng Windows-Service sẽ
đợc tự động kích hoạt và chơng trình này sẽ khởi tạo một ClientAgent. Các ClientAgent sẽ


đăng nhập với MainAgent để đợc phân công công việc. Việc phân phối công việc của

MainAgent đợc thực hiện một cách đơn giản theo số lợng các mô hình đợc tạo ra, mỗi mô
hình sẽ đợc chia cho một ClientAgent.
Với một hệ thống gồm 3 máy tính cá nhân phục vụ tính toán và một Laptop làm máy chủ
thực hiện việc xây dựng mô hình và quản lý, hệ thống multi-Agent đã thực hiện thành công kết
quả nh dự kiến. Sau khoảng gần 5 giờ đồng hồ, toàn bộ 6 mô hình đã đợc phân tích xong.
Khối lợng công việc này, nếu đợc thực hiện tuần tự trên một PC thì thời gian dự kiến tối thiểu
là 12 giờ.
VI. Kết luận
Tính toán phân tán là phơng pháp tính toán phân quyền và song song, sử dụng hai hay
nhiều máy tính đợc nối mạng với nhau để thực hiện một nhiệm vụ chung. Nh vậy, khi sử dụng
phơng pháp tính toán phân tán, một ứng dụng lớn sẽ đợc chia thành nhiều bài toán nhỏ, đợc
thực hiện phân tán, độc lập và đồng thời trên các máy tính khác nhau. Khác với các máy song
song đắt tiền, việc xây dựng các mô hình tính toán phân tán dựa trên hệ thống các máy tính nối
mạng với nhau cho phép xây dựng đợc các sức mạnh tính toán lớn dựa trên nguồn lực của các
máy tính rẻ.
Có rất nhiều mô hình và công nghệ tính toán phân tán đã đợc phát triển trong thời gian
vừa qua. Điển hình trong số chúng là CORBA, DCOM, RMI, Webservice và Software Agent. So
với các công nghệ tính toán phân tán khác, Software Agent thể hiện tính mềm dẻo cao, dễ sử
dụng và có thể áp dụng đợc cho nhiều dạng bài toán khác nhau.
CT 2
Software Agent là các đơn vị phần mềm có thể hoạt động một cách tơng đối độc lập, tự
chủ và có khả năng cộng tác với nhau trên mạng máy tính để hoàn thành một nhiệm vụ định
trớc. Multi-Agent là môi trờng cho phép các Agent hợp tác đợc với nhau.
Các hệ thống multi-Agent có thể đợc sử dụng có hiệu quả vào những lĩnh vực rất khác
nhau trong ngành xây dựng nh thiết kế hợp tác với việc tham gia của tri thức chuyên gia ở rất
nhiều lĩnh vực khác nhau, tính toán song song các bài toán lớn nhng có thể chia thành các các
bài toán con độc lập, v.v
Tài liệu tham khảo
[1]. Gerhard Weiss. MultiAgent Systems - A Modern Approach to Distributed Modern Approach to Artificial
Intelligence, Massachusetts Institute of Technology, 1999.

[2]. JADE TUTORIAL JADE PROGRAMMING FOR BEGINNERS
[3]. JADE PROGRAMMERS GUIDE

[4]. Hartmann et all. Support of Collaborative Structural Design Processes through the Integration of Peer-
to-Peer and MultiAgent Architectures, Báo cáo hội thảo, 2005
[5]. Hartmann et all. Parallel Software Framework for Fatigue Analyses Based on Software Agents,
Institute for Computational Engineering, Ruhr-University Bochum, Germany, Báo cáo hội thảo, 2005
[6]. Hartwig Gunzer, Sales Engineer. Introduction to Web Services, Borland, 2002.
[7]. Hyacinth S. Nwana, Software Agents: An Overview, Intelligent Systems Research,Cambridge
University Press, 1996
[8].
Roberto A. Flores-Mendez. Towards a Standardization of Multi-Agent System Frameworks, 1999
[9]. Ali Bahrami. Phát triển hệ thống hớng đối tợng, McGRAW-HILL INTERNATIONAL EDITIONS, 1998
[10]. />Ă

×