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
Trang 1Hệ 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 Bμi 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 bμi báo lμ các ứng dụng đã được một số tác giả nước ngoμi
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
Trang 2trong 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 nhưng
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 lưu 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
Trang 3tượ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à
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à chưa 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]
Trang 4III 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 chưa 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 trưng 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ế
Trang 53.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 nhưng, 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 trưng 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 trưng 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)
Trang 6Có 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 trưng 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
Trang 7hay 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
Trang 8jade.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ụ
Trang 9xử 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
Trang 10Quá 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