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.
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ó
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ả
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
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
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
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
[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]. http://en.wikipedia.org/wiki/Distributed_computing
Ă