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

Tìm Hiểu Về Kiến Trúc JADE Framework

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 (502.01 KB, 21 trang )


JADE
Java Agent DEvelopment Framework






ĐI HC CÔNG NGH THÔNG TIN ƛ ĐHQGTPHCM
LP CNTN02 ƛ KHOA KHOA HC MÁY TÍNH



Ging viên hng dn: ThS. Nguyn Trn Minh Khuê
Sinh viên thc hin:
1. Nguyn Hu Nht - 07520437
2. Nguyn Th Thu Trang - 07520594


2

Mөc Lөc
1.Giӟi thiӋu 3
1.1. Middleware 3
1.2. Kӻ thuұt trong Java 4
2.Đһc điӇm kӻ thuұt FIPA 5
3.Tìm hiӇu sơ lưӧc vӅ JADE 9
KiӃn trúc cӫa agent platform 10
4.JADE runtime system. 12
4.1.Sӵ phân bә Agent platform 12


4.2. HӋ thӕng con hӛ trӧ phân phӕi thông điӋp 13
4.3. Quҧn lý và lưu trӳ đӏa chӍ 14
4.4. Tính di đӝng 14
4.5 Ngưӡi dùng đӏnh nghĩa các ontology và nӝi dung ngôn ngӳ 15
4.6. Công cө cho quҧn lý và phân đӏnh nӅn tҧng 16
6. Tәng quan phương pháp phân tích và thiӃt kӃ mô hình đa tác tӱ sӱ dөng JADE 16
7. Tәng kӃt 19
Tài liӋu tham khҧo 20



3
1. Giӟi thiӋu
Sӵ phát triӇn cӫa nguӗn tài nguyên thông tin mҥng yêu cҫu hӋ thӕng thông tin phҧi đưӧc sҳp
xӃp lҥi trên hӋ thӕng mҥng và tương tác đưӧc vӟi các hӋ thӕng khác. Các hӋ thӕng như vұy
không dӉ dàng đưӧc nhұn ra vӟi nhӳng kӻ thuұt phҫn mӅm truyӅn thӕng vì sӵ hҥn chӃ cӫa nhӳng
kӻ thuұt này trong viӋc sao chép rҧi rác và có khҧ năng tương tác. Kӻ thuұt dӵa trên cơ sӣ tác tӱ
dưӡng như là mӝt câu trҧ lӡi tӕt đӇ dӉ dàng nhұn ra nhӳng hӋ thӕng như thӃ này vì chúng đưӧc
sáng tҥo ra đӇ thӵc hiӋn sao chép vӟi nhӳng dӳ liӋu phân tán và có khҧ năng tương tác.
Kӻ thuұt dӵa trên tác tӱ hiӋn vүn chưa hoàn thiӋn và thӵc sӵ chӍ mӟi có mӝt vài hӋ thӕng đáp
ӭng đưӧc nhu cҫu trên. Kӻ thuұt dӵa trên tác tӱ chưa đưӧc sӱ dөng triӋt đӇ hӃt khҧ năng cӫa
chúng, và sӁ không trӣ nên phә biӃn cho tӟi khi có mӝt chuҭn cung cҩp cho tác tӱ có khҧ năng
tương tác và đưӧc sӱ dөng bӣi nhӳng nhà phát triӇn tác tӱ trong môi trưӡng tương ӭng. Mӝt vài
nhà nghiên cӭu đang làm viӋc đӇ đưa ra phương pháp chuҭn hóa cho kӻ thuұt tác tӱ và thӵc hiӋn
trong môi trưӡng phát triӇn đӇ xây dӵng hӋ thӕng tác tӱ. Nhӳng môi trưӡng phát triӇn như thӃ
này cung cҩp mӝt vài mô hình tác tӱ và các công cө đưӧc đӏnh nghĩa trưӟc đӇ tiӋn cho sӵ phát
triӇn cӫa hӋ thӕng. Hơn nӳa, mӝt vài trong sӕ chúng cӕ gҳng cho phép tương tác vӟi nhӳng hӋ
thӕng tác tӱ khác thông qua viӋc sӱ dөng mӝt ngôn ngӳ truyӅn đҥt tác tӱ phә biӃn là KQML[3].
Tuy nhiên viӋc sӱ dөng phә biӃn mӝt ngôn ngӳ truyӅn đҥt chung không đӫ đӇ cung cҩp dӉ dàng
khҧ năng tương tác giӳa nhӳng hӋ thӕng tác tӱ khác nhau. ViӋc chuҭn hóa cӫa FIPA là dӵa trên

phương diӋn cho phép tương tác dӉ dàng giӳa các hӋ thӕng tác tӱ, vì FIPA, vưӧt ra ngoài ngôn
ngӳ truyӅn đҥt tác tӱ, cũng là quy đӏnh cө thӇ các tác tӱ chính cҫn thiӃt cho viӋc quҧn lý mӝt hӋ
thӕng tác tӱ, các ontology cҫn thiӃt cho sӵ tương tác giӳa các hӋ thӕng, và nó cũng xác đӏnh mӭc
đӝ vұn chuyӇn cӫa giao thӭc.
1.1.Middleware
Thuұt ngӳ Middleware có nghĩa là đӇ mô tҧ tҩt cҧ nhӳng thư viӋn cҩp cao cho phép phát
triӇn ӭng dөng bӣi viӋc cung cҩp nhӳng dӏch vө chung hӳu ích không chӍ cho mӝt ӭng dөng đơn
lҿ mà là cho mӝt loҥt các ӭng dөng dӉ dàng và hiӋu quҧ hơn, ví dө thông tin liên lҥc, truy cұp dӳ
liӋu, mã hóa, kiӇm soát nguӗn tài nguyên. Nhӳng dӏch vө này cùng đưӧc cung cҩp bӣi hӋ thӕng
tích hӧp, nhưng ý tưӣng đҵng sau middleware là cung cҩp tӕt hơn, hӋ điӅu hành đӝc lұp trên sӣ
tích hӧp các API có nguӗn gӕc thành các khӕi đơn giҧn đӇ sӱ dөng lҥi. Mһt khác, viӋc thӵc hiӋn
các dӏch vө này thưӡng đòi hӓi lưӧng thӡi gian đáng kӇ, nӃu không giӕng nhau, trong phương
diӋn hưӟng tӟi sӵ phát triӇn cӫa ӭng dөng logic. Khҧ năng có thӇ dùng lҥi trên nhiӅu lĩnh vӵc
ӭng dөng cho thҩy ³Horizontal´ tiӃp cұn trái ngưӧc vӟi cách tiӃp cұn cӫa ³Vertical´, nơi mӝt
giҧi pháp Ahhoc cho mӝt ӭng dөng cө thӇ cҫn đưӧc cung cҩp. Phương pháp tiӃp cұn dӵa trên
Middleware cho phép đӇ giҧm footprint và thӡi gian phát triӇn cӫa các ӭng dөng.

4


1.2.Kӻ thuұt trong Java
ĐӇ hiӇu hơn vӅ mӝt sӕ tính năng cӫa Jade và mӕi quan hӋ cӫa nó vӟi thӃ giӟi Java thì cҫn
có cái nhìn tәng quát vӅ kӻ thuұt Java.
Công nghӋ Java đưӧc cҩu trúc thành 4 phiên bҧn (đưӧc đһt tên bӣi Sun) dӵa theo mөc
tiêu và các thiӃt bӏ hӛ trӧ chӭc năng:
- Các ӭng dөng dӵa trên máy chӫ (J2EE).
- KiӇu ӭng dөng máy tính đӇ bàn (J2SE).
- Các ӭng dөng xách tay và các thiӃt bӏ điӋn thoҥi di đӝng (J2ME).
- Dӏch vө SIM / thҿ thông minh (Java Card).
Jade đã đưӧc trang bӏ đҫy đӫ trong các ngôn ngӳ Java, và nó có thӇ đưӧc thӵc hiӋn liên

tөc trên tҩt cҧ các loҥi máy ҧo Java ngoҥi trӯ Java Card.

5



2. Đһc điӇm kӻ thuұt FIPA

6

Foundation for Intelligent Physical Agents (FIPA) [5] là mӝt hiӋp hӝi phi lӧi nhuұn quӕc
tӃ cӫa các công ty và các tә chӭc chia sҿ các kӃt quҧ đҥt đưӧc đӇ sҧn xuҩt các kӻ thuұt chung cӫa
công nghӋ đa tác tӱ. FIPA đưӧc dӵ kiӃn không chӍ là kӻ thuұt cho mӝt ӭng dөng mà còn là kӻ
thuұt chung cho các lĩnh vӵc ӭng dөng khác, không chӍ là mӝt công nghӋ đӝc lұp mà còn là mӝt
tұp hӧp các công nghӋ cơ bҧn có thӇ đưӧc tích hӧp bӣi các nhà phát triӇn sӱ dөng trong mӝt hӋ
thӕng phӭc tҥp vӟi mӝt mӭc đӝ thích hӧp cao.

7


FIPA dӵa trên hai giҧ đӏnh chính.
- Thӡi gian đӇ đҥt đưӧc sӵ đӗng thuұn và đӇ hoàn tҩt chuҭn không nên dài, và chӫ yӃu
là, nó không nên hoҥt đӝng như mӝt brake trong tiӃn trình hơn là tҥo mӝt khҧ năng có
thӇ.
- Hành vi bên ngoài cӫa các thành phҫn hӋ thӕng nên đưӧc quy đӏnh cө thӇ, đӇ lҥi chi
tiӃt thӵc hiӋn và kiӃn trúc nӝi bӝ đӇ phát triӇn tác tӱ.
Trong thӵc tӃ, kiӃn trúc nӝi tҥi cӫa Jade là sӣ hӳu đӝc quyӅn ngay cҧ khi nó phù hӧp vӟi
các giao diӋn đưӧc chӍ đӏnh bӣi FIPA.
Các tài liӋu đҫu ra đҫu tiên cӫa FIPA, đưӧc gӑi là kӻ thuұt FIPA97, xác đӏnh các quy tҳc
quy phҥm cho phép mӝt xã hӝi các tác tӱ có khҧ năng tương tác có thӇ hoҥt đӝng và đưӧc quҧn

lý. Trưӟc hӃt tҩt cҧ chúng mô tҧ các mô hình tham chiӃu cӫa mӝt nӅn tҧng tác tӱ (Agent
Platform). VӅ cơ bҧn, nó xác đӏnh vai trò cӫa mӝt sӕ tác tӱ chính cҫn thiӃt cho viӋc quҧn lý
Platform này, và quy đӏnh cө thӇ tác tӱ quҧn lý nӝi dung ngôn ngӳ và ontology. Ba vai trò quan
trӑng bҳt buӝc đã đưӧc xác đӏnh vào mӝt Agent Platform. HӋ thӕng quҧn lý tác tӱ - Agent
Management System (AMS), là tác nhân tác đӝng điӅu khiӇn giám sát qua tiӃp cұn và sӱ dөng
Platform này, nó có trách nhiӋm xác thӵc các tác tӱ thưӡng trú và kiӇm soát đăng ký. Agent
Communication Channel (ACC) là tác tӱ cung cҩp đưӡng dүn cho các liên hӋ cơ bҧn giӳa các tác
tӱ bên trong và bên ngoài Platform; nó là phương pháp truyӅn thông mһc đӏnh mà cung cҩp mӝt

8
dӏch vө có thӭ tӵ và đáng tin cұy; nó cũng phҧi hӛ trӧ cho khҧ năng tương tác IIOP giӳa các
Agent Platform khác nhau. Facilitator Directory (DF) là tác tӱ cung cҩp mӝt dӏch vө Yellow
Page cho các Agent Platform. Chú ý rҵng không có sӵ giӟi hҥn trong các công nghӋ hiӋn nay sӱ
dөng cho viӋc thӵc hiӋn Platform : e-mail dӵa trên platform, CORBA, ӭng dөng Java multi-
thread, tҩt cҧ có thӇ đưӧc FIPA triӇn khai.
Tҩt nhiên, tiêu chuҭn quy đӏnh cө thӇ cũng là Agent Communication Language (ACL).
Tác tӱ giao tiӃp dӵa trên truyӅn qua tin nhҳn (message transport), nơi các tác tӱ giao tiӃp bҵng
cách lұp và gӱi tin nhҳn cá nhân vӟi nhau. Các ACL FIPA quy đӏnh cө thӇ mӝt ngôn ngӳ tin
nhҳn chuҭn bҵng cách đһt ra tiêu chuҭn mã hóa, ngӳ nghĩa và pragmatics cӫa tin nhҳn. Tiêu
chuҭn này không đһt ra mӝt cơ chӃ cө thӇ cho viӋc vұn chuyӇn nӝi bӝ cӫa tin nhҳn. Thay vào đó,
kӇ tӯ khi các tác tӱ khác nhau có thӇ chҥy trên nhӳng platforms khác nhau và sӱ dөng công nghӋ
mҥng khác nhau, FIPA quy đӏnh rҵng các thông điӋp vұn chuyӇn giӳa các platform nên đưӧc mã
hóa trong mӝt hình thӭc văn bҧn. Giҧ đӏnh rҵng tác tӱ có mӝt sӕ phương tiӋn truyӅn văn bҧn
dҥng này. Cú pháp cӫa ACL là rҩt gҫn vӟi ngôn ngӳ sӱ dөng rӝng rãi KQML truyӅn thông. Tuy
nhiên, mһc dù cú pháp tương tӵ, nhưng vүn có nhӳng khác biӋt cơ bҧn giӳa KQML và ACL,
hiӇn nhiên nhҩt là sӵ tӗn tҥi cӫa mӝt ngӳ nghĩa chính thӭc cho ACL mà nên loҥi bӓ bҩt cӭ sӵ
không rõ ràng và nhҫm lүn tӯ viӋc sӱ dөng ngôn ngӳ.
Tiêu chuҭn hӛ trӧ các hình thӭc phә biӃn cӫa các cuӝc hӝi thoҥi giӳa các agent thông qua
các đһc điӇm kӻ thuұt cӫa các giao thӭc tương tác, đó là mô hình cӫa thư trao đәi cӫa hai hoһc
nhiӅu tác tӱ. Giao thӭc này bao gӗm tӯ giao thӭc truy vҩn đơn giҧn, đӃn các hӧp đӗng đàm phán

giao thӭc mҥng nәi tiӃng.
Các phҫn khác cӫa tiêu chuҭn FIPA xác đӏnh các khía cҥnh khác, đһc biӋt là viӋc tích hӧp
phҫn mӅm tác tӱ (agent-software), tác tӱ bҧo mұt di đӝng, dӏch vө ontology, và truyӅn thông tác
tӱ con ngưӡi(Human-Agent Communication). Tuy nhiên, chúng chưa đưӧc xem xét thӵc hiӋn
trong Jade [5].

9


3. Tìm hiӇu sơ lưӧc vӅ JADE
JADE (Java Agent DEvelopment Framework) là mӝt phҫn mӅm framework đưӧc xây dӵng
hoàn toàn bҵng ngôn ngӳ Java. Nó đơn giҧn hoá viӋc triӇn khai các hӋ thӕng đa tác tӱ (multi-
agent systems) thông qua mӝt middleware mà nó đòi hӓi phҧi tuân theo các chi tiӃt kӻ thuұt
FIPA và thông qua mӝt bӝ công cө hӛ trӧ trong gӥ lӛi và trong triӇn khai các giai đoҥn. NӅn tҧng
tác tӱ (agent platform) có thӇ đưӧc phân phӕi trên nhiӅu máy (không nhҩt thiӃt cҫn phҧi cùng
mӝt hӋ điӅu hành) và cҩu hình có thӇ đưӧc điӅu khiӇn thông qua mӝt giao diӋn tӯ xa (a remote
GUI). Cҩu hình có thӇ đưӧc thay đәi ngay cҧ ӣ thӡi gian chҥy (run-time) bҵng cách tҥo ra các
agent mӟi và di chuyӇn các agent tӯ mӝt máy đӃn mӝt máy khác khi cҫn thiӃt. Yêu cҫu cӫa hӋ
thӕng chӍ cҫn có The Java Run Time version 5.0 trӣ lên. Các kiӃn trúc truyӅn thông cung cҩp
truyӅn tin (messaging) linh hoҥt và hiӋu quҧ, JADE tҥo ra và quҧn lý mӝt hҵng đӧi các tin nhҳn
ACL đӃn tӯng agent. Các agent có thӇ truy cұp vào hàng đӧi thông qua sӵ kӃt hӧp cӫa nhiӅu
phương thӭc: blocking, polling, time-out và mô hình kӃt hӧp cơ bҧn (pattern match based). Mô
hình đҫy đӫ cӫa FIPA communication đã đưӧc hӛ trӧ và các thành phҫn cӫa nó đã đưӧc tích hӧp
phân biӋt rõ ràng và đҫy đӫ: các giao thӭc tương tác (interaction protocols), đóng gói (envelope),
ACL, các ngôn ngӳ thích hӧp (content languages), quá trình mã hóa (encoding schemes), các
ontology và giao thӭc vұn chuyӇn (transport protocols). Cơ chӃ vұn chuyӇn thích nghi vӟi tӯng
tính huӕng riêng biӋt trong quá trình lӵa chӑn giao thӭc tӕt nhҩt. Hҫu hӃt các giao thӭc tương tác
đưӧc đӏnh nghĩa bӣi FIPA đã có sҹn và đưӧc trang bӏ sau khi xác đӏnh yêu cҫu cӫa ӭng dөng đӕi
vӟi mӛi giao thӭc. SL và ontology quҧn lý tác tӱ (agent management ontology) đã đưӧc bә sung,
cũng như hӛ trӧ các ngôn ngӳ thích hӧp do ngưӡi dùng đӏnh nghĩa và các ontology có thӇ đưӧc

trang bӏ, đăng ký và sӱ dөng mӝt cách tӵ đӝng bӣi framework.

10

Mөc tiêu cӫa Jade là đӇ đơn giҧn hóa sӵ phát triӇn trong khi vүn đҧm bҧo tuân thӫ tiêu
chuҭn thông qua mӝt hӋ thӕng dӏch vө và tác tӱ. ĐӇ đҥt đưӧc mөc tiêu trên, Jade cung cҩp danh
sách cӫa các tính năng cho viӋc lұp trình tác tӱ sau đây:
- FIPA-compliant Agent Platform, trong đó bao gӗm các AMS (HӋ thӕng quҧn lý
tác tӱ - Agent Management System), các DF (Directory Facilitator), và ACC (kênh truyӅn
thông tác tӱ - Agent Communication Channel ). Tҩt cҧ ba tác tӱ trên sӁ đưӧc tӵ đӝng kích
hoҥt khi agent platform đưӧc kích hoҥt.
- Agent Platform phân ph͙i : agent platform có thӇ đưӧc chia mӝt sӕ trên máy (vӟi
điӅu kiӋn là không có tưӡng lӱa giӳa chúng). ChӍ có mӝt ӭng dөng Java, và do đó chӍ có
mӝt máy ҧo Java (Java Virtual Machine) đưӧc thӵc hiӋn trên mӛi máy chӫ. Tác tӱ đưӧc
thӵc hiӋn như mӝt Java thread và Java event đưӧc sӱ dөng cho viӋc truyӅn thông nhҽ
nhàng và hiӋu quҧ giӳa các tác tӱ trên cùng mӝt máy chӫ. Nhӳng nhiӋm vө song song vүn
còn có thӇ đưӧc thӵc hiӋn bӣi mӝt tác tӱ, và lӏch trình Jade các nhiӋm vө này trong mӝt
cách hiӋu quҧ hơn (và thұm chí đơn giҧn hơn cho các lұp trình viên có tay nghӅ) so vӟi
Java Virtual Machine làm đӕi vӟi các thread .
- Mӝt sӕ FIPA-compliant DF (Directory Facilitator) có thӇ đưӧc bҳt đҫu vào thӡi
điӇm chҥy đӇ thӵc hiӋn đa miӅn ӭng dөng.
- Lұp trình giao diӋn đӇ đơn giҧn hóa đăng ký dӏch vө tác tӱ vӟi mӝt, hoһc nhiӅu
domans (ví dө như DF)
- Cơ chӃ vұn chuyӇn và giao tiӃp đӇ gӱi/nhұn tin nhҳn giӳa các tác tӱ vӟi nhau
- Tuân thӫ giao thӭc IIOP-FIPA97 đӇ kӃt nӕi các Agent Platforms khác nhau
- Phương thӭc trao đәi đơn giҧn cӫa ACL message bên trong các Agent Platform
giӕng nhau, như thông điӋp đưӧc chuyӇn mã hóa là đӕi tưӧng Java, hơn là chuӛi, đӇ tránh
thӫ tөc marshalling và unmarshalling. Khi ngưӡi gӱi hoһc nhұn không thuӝc cùng mӝt
platform , thông điӋp sӁ đưӧc tӵ đӝng chuyӇn sang các đӏnh dҥng chuӛi FIPA
- Thư viӋn các giao thӭc tương tác FIPA sҹn sàng đӇ đưӧc sӱ dөng

- Đăng ký tӵ đӝng cӫa tác tӱ vӟi AMS
- Tên dӏch vө tương thích FIPA: lúc khӣi đӝng các tác tӱ tӗn tҥi luôn GUID
Globally Unique Identifier) cӫa chúng tӯ platform.
- Đӗ hӑa giao diӋn ngưӡi dùng đӇ quҧn lý mӝt sӕ tác tӱ và agent platforms tӯ cùng
mӝt tác tӱ. Tӯng hoҥt đӝng cӫa platform có thӇ đưӧc theo dõi và khóa
- Giao diӋn đӗ hӑa cho ngưӡi dùng đӇ quҧn lý nhiӅu tác tӱ và các platforms tác tӱ
tӯ cùng mӝt tác tӱ.
KiӃn trúc cӫa Agent Platform

11
JADE Agent Platform dưҥ theo kӻ thuұt FIPA97 và bao gӗm tҩt cҧ các mandatory agents
quҧn lý platform, đó là ACC, các AMS, và DF. Mӑi liên lҥc cӫa các tác tӱ đưӧc thӵc hiӋn thông
qua tin nhҳn (message), nơi FIPA ACL là ngôn ngӳ đӇ trình bày tin nhҳn.


12

Các kiӃn trúc phҫn mӅm dӵa trên sӵ cùng tӗn tҥi cӫa mӝt sӕ máy ҧo Java (Java Virtual
Machines) và giao tiӃp dӵa trên Java RMI (Remote Method Invocation) giӳa các máy ҧo khác
nhau và sӵ kiӋn báo hiӋu bên trong mӝt máy ҧo duy nhҩt. Mӛi máy ҧo là mӝt container cơ bҧn
cӫa tác tӱ, cung cҩp mӝt môi trưӡng thӡi gian chҥy hoàn chӍnh cho tác tӱ thi hành và cho phép
thӵc hiӋn mӝt sӕ tác tӱ đӇ thӵc hiӋn đӗng thӡi trên cùng mӝt host. VӅ nguyên tҳc, kiӃn trúc cũng
cho phép nhiӅu máy ҧo đưӧc thӵc hiӋn trên cùng mӝt máy chӫ.
Mӛi tác tӱ container là mӝt môi trưӡng thӵc thi đa luӗng gӗm mӝt thread cho tҩt cҧ các
tác tӱ cӝng vӟi hӋ thӕng thread sinh ra bӣi hӋ thӕng RMI runtime cho viӋc gӱi tin nhҳn. Mӝt
container đһc biӋt đóng vai trò front-end, quҧn lý hoҥt đӝng tác tӱ và trình bày cho toàn bӝ
platform tӟi thӃ giӟi bên ngoài. Mӝt Agent Platform (AP) hoàn thành là sau đó bao gӗm mӝt vài
tác tӱ containers. Sӵ phân phӕi container trên mӝt mҥng máy tính đưӧc cho phép, vӟi điӅu kiӋn

13

RMI truyӅn thông giӳa các máy cӫa hӑ đưӧc bҧo tӗn. Mӝt container hҥng nhҽ đһc biӋt đang
đưӧc triӇn khai cho viӋc thi hành các tác tӱ trong mӝt trình duyӋt Web.
Mӛi Agent Container là mӝt đӕi tưӧng RMI server quҧn lý cөc bӝ mӝt tұp hӧp các tác tӱ.
Nó điӅu khiӇn vòng đӡi cӫa tác tӱ bҵng cách tҥo ra, tҥm dӯng, khôi phөc và hӫy chúng. Bên
cҥnh đó, nhӳng giao dӏch vӟi tҩt cҧ các khía cҥnh giao tiӃp bҵng các thông điӋp ACL, đӏnh tuyӃn
theo lĩnh vӵc đích và đưa chúng vào hàng đӧi tin nhҳn thông điӋp tác tӱ riêng; đӕi vӟi thông điӋp
gӱi đi, thay vào đó, các tác tӱ container duy trì đӫ thông tin đӇ tìm kiӃm vӏ trí tác tӱ nhұn và
chӑn mӝt phương pháp phù hӧp đӇ chuyӇn tiӃp thông điӋp ACL.
Các agent platform cung cҩp mӝt giao diӋn đӗ hӑa ngưӡi dùng (Graphical User Interface
- GUI) cho viӋc quҧn lý tӯ xa, kiӇm tra và kiӇm soát tình trҥng cӫa các tác tӱ (ví dө như dӯng và
khӣi đӝng lҥi các tác tӱ). GUI cũng cho phép đӇ tҥo ra và bҳt đҫu viӋc thӵc thi các tác tӱ trên
mӝt máy chӫ tӯ xa, vӟi điӅu kiӋn là có mӝt tác tӱ container đang chҥy. GUI đưӧc thӵc hiӋn như
mӝt tác tӱ, gӑi là RMA (Remote Monitoring Agent). Tҩt cҧ các thông tin liên lҥc giӳa các tác tӱ
và GUI, tҩt cҧ các thông tin liên lҥc giӳa GUI và AMS đưӧc thӵc hiӋn thông qua ACL thông qua
mӝt phҫn mӣ rӝng Adhoc cӫa ontology Fipa-agent-management. Phҫn mӣ rӝng này sӁ đưӧc đưa
ra FIPA xem xét đӇ chuҭn hóa. NӃu nó đưӧc chҩp nhұn, các tác tӱ RMA có thӇ cùng sӱ dөng đӇ
kiӇm soát nhӳng Agent Platforms khác, bao gӗm các platform không phҧi Jade.

4. JADE run-time system
4.1. Sӵ phân bә Agent platform:
Jade tuân theo các chi tiӃt kӻ thuұt cӫa FIPA97 và bao gӗm tҩt cҧ các hӋ thӕng tác tӱ
quҧn lý nӅn tҧng, đó là ACC, AMS, và DF mһc đӏnh. Tҩt cҧ các giao tiӃp giӳa tác tӱ đưӧc thӵc
hiӋn thông qua các tin nhҳn/thông điӋp, FIPA ACL là ngôn ngӳ đưӧc sӱ dөng đӇ trình bày cho
các thông điӋp.
Khi xuҩt hiӋn như mӝt thӵc thӇ duy nhҩt vӟi thӃ giӟi bên ngoài, mӝt nӅn tҧng tác tӱ
JADE (JADE agent platform) là mӝt hӋ thӕng phân phӕi cӫa chính nó, có thӇ đưӧc phân chia
thành nhiӅu chӫ thӇ (host) vӟi mӝt trong sӕ chúng hoҥt đӝng cho nӅn tҧng quá trình liên lҥc IIOP.
Mӝt hӋ thӕng JADE đưӧc tҥo nên tӯ mӝt hoһc nhiӅu agent container, mӛi agent container hoҥt
đӝng trong mӝt máy ҧo Java và giao tiӃp bҵng cách sӱ dөng Java RMI. IIOP đưӧc sӱ dөng đӇ
chuyӇn tiӃp đi các thông điӋp đӃn các nӅn tҧng tác tӱ bên ngoài. Front End container cũng là

mӝt máy chӫ IIOP. Hình sau cho thҩy kiӃn trúc cӫa mӝt JADE Agent Platform.

14

Hình : Kin trúc phn mm ca JADE Agent Platform

4.2. HӋ thӕng con hӛ trӧ phân phӕi thông điӋp:
Mô hình giao tiӃp tác tӱ FIPA là dҥng peer-peer-to thông qua các ngӳ cҧnh đa thông điӋp
đưӧc cung cҩp bӣi các giao thӭc tương tác và đӏnh danh hӝi thoҥi (conversation identifiers). Mһt
khác, JADE sӱ dөng phương pháp vұn chuyӇn như RMI, CORBA và viӋc gӱi đi sӵ kiӋn vӟi đһc
trưng liên kӃt vӟi các hӋ thӕng phҧn ӭng. Có mӝt vài lӛ hӓng bҳt cҫu cho bҧn đӗ đánh đӏa chӍ mô
hình FIPA tin truyӅn mӝt cách rõ ràng trong yêu cҫu / đáp ӭng mô hình thông tin liên lҥc cӫa các
đӕi tưӧng đưӧc phân phӕi. Cho thҩy lý do tҥi sao các tác tӱ thông thưӡng cӫa JADE không đưӧc
phân phӕi còn các agent container thì đưӧc.
Mӝt phҫn mӅm phù hӧp vӟi mô hình tác tӱ cӫa FIPA, có mӝt Gobally-unique identifier
(GUID), cái mà có thӇ đưӧc sӱ dөng bӣi tҩt cҧ các tác tӱ khác đӇ đánh đӏa chӍ vӟi thông điӋp
ACL; mӝt tác tӱ sӁ đһt GUID cӫa nó vào mӝt sender slot cӫa thông điӋp ACL. JADE phҧi chӍ ra
vӏ trí receiver bҵng cách xem xét receiver slot. Mӝt FIPA97 GUID giӕng vӟi mӝt đӏa chӍ email
có dҥng: <tên tác tӱ> @ <đӏa chӍ nӅn tҧng>, giúp khá dӉ dàng đӇ khôi phөc lҥi tên tác tӱ và đӏa
chӍ các nӅn tҧng tӯ nó. Khi mӝt thông điӋp ACL đưӧc gӱi đӃn mӝt phҫn mӅm tác tӱ, ba tùy chӑn
đưӧc đưa ra:

15
- Receiver trên cùng container cӫa cùng nӅn tҧng: các Java event đưӧc sӱ dөng,
ACLMessage đưӧc nhân bҧn.
- Receiver trên mӝt container khác nhau cӫa cùng mӝt nӅn tҧng: Java RMI đưӧc sӱ dөng,
thông điӋp đưӧc phát ӣ nơi sender, mӝt phương thӭc tӯ xa đưӧc gӑi và thông điӋp không
phát nơi receiver.
- Receiver trên mӝt nӅn tҧng khác nhau: IIOP đưӧc sӱ dөng, ACLMessage đưӧc chuyӇn
đәi sang mӝt String và sҳp xӃp theo thӭ tӵ ӣ nơi sender, mӝt CORBA tӯ xa đưӧc thӵc

hiӋn và không sҳp xӃp theo thӭ tӵ theo sau quá trình phân tích cú pháp ACL xҧy ra ӣ
receiver.
4.3. Quҧn lý và lưu trӳ đӏa chӍ:
JADE sӁ chӑn cơ chӃ thuұn tiӋn nhҩt cӫa 3 cơ chӃ phân phӕi ӣ trên theo vӏ trí tác tӱ. VӅ
cơ bҧn, mӛi container có mӝt bҧng các tác tӱ cөc bӝ cӫa mình, gӑi là các Local-Agent
Descriptor Table (LADT), bên cҥnh đó container cũng duy trì Gobal-Agent Descriptor Table
(GADT), lұp bҧn đӗ (mapping) mӛi tác tӱ, tham chiӃu đӕi tưӧng RMI container cӫa nó. JADE
sӱ dөng mӝt kӻ thuұt lưu đӏa chӍ đӇ tránh các truy vҩn liên tөc cho thông tin đӏa chӍ. Bên cҥnh đó
là tính hiӋu quҧ, đӇ hӛ trӧ tác tӱ di đӝng (agent mobility) nơi mà đӏa chӍ tác tӱ có thӇ thay đәi
theo thӡi gian.
4.4. Tính di đӝng:
Phiên bҧn mӟi cӫa JADE có thêm sӵ hӛ trӧ cho tính di đӝng tác tӱ. Khai thác Java
Serialization API và dynamic class loading, có thӇ di chuyӇn hoһc sao chép mӝt JADE agent
trong cùng mӝt nӅn tҧng tác tӱ cӫa JADE. Chi tiӃt kӻ thuұt FIPA đӇ đưӧc hӛ trӧ di đӝng vүn còn
chưa đҫy đӫ, chӍ dӏch vө di đӝng sӁ không giúp tiêu chuҭn hóa trong khҧ năng tương tác. Mӝt sӕ
đӅ nghӏ tәng quát hơn sӁ đưӧc trình FIPA, trҧi qua công khai thҧo luұn và đánh giá. Sau đó, mӝt
công cө hӛ trӧ có hiӋu quҧ và tương thích có thӇ đưӧc xây dӵng.
JADE run-time có thӇ đưӧc thӵc thi trên mӝt lӟp rӝng các thiӃt bӏ khác nhau, tӯ máy chӫ
tӟi điӋn thoҥi di đӝng.

16

ĐӇ đúng đӏa chӍ bӝ nhӟ và hҥn chӃ sӭc mҥnh xӱ lý cӫa thiӃt bӏ di đӝng và các đһc tính
cӫa mҥng không dây (GPRS nói riêng) vӅ băng thông, đӝ trӉ, kӃt nӕi liên tөc và biӃn đәi đӏa chӍ
IP, và đӗng thӡi đӇ có hiӋu quҧ khi thӵc hiӋn trên máy mҥng cӕ đӏnh, Jade có thӇ đưӧc cҩu hình
đӇ thích ӭng vӟi các đһc tính cӫa môi trưӡng triӇn khai. KiӃn trúc Jade hoàn toàn kiӇu module và,
bҵng cách kích hoҥt các module nhҩt đӏnh thay cho nhӳng thӭ khác, có thӇ đӇ đáp ӭng các yêu
cҫu khác nhau vӅ kӃt nӕi, bӝ nhӟ và sӭc mҥnh xӱ lý.
Mӝt module gӑi là LEAP cho phép tӕi ưu hóa tҩt cҧ các cơ chӃ giao tiӃp khi xӱ lý các
thiӃt bӏ vӟi nguӗn lӵc hҥn chӃ và kӃt nӕi thông qua mҥng không dây. Bҵng viӋc kích hoҥt

module này, mӝt container Jade là ³split´ thӵc sӵ đang chҥy trên các thiӃt bӏ đҫu cuӕi di đӝng, và
lҥi chҥy trong mҥng cӕ đӏnh.

4.5. Ngưӡi dùng đӏnh nghĩa các ontology và nӝi dung ngông ngӳ:
Theo tiêu chuҭn FIPA, đӇ đҥt mӭc tương hӧp các tác tӱ yêu cҫu các tác tӱ khác nhau phҧi
chia sҿ nhiӅu hơn mӝt giao thӭc đơn giҧn. Trong khi FIPA ӫy quyӅn cho FIPA ACL, nó cho
phép ӭng dөng phө thuӝc vào nӝi dung ngôn ngӳ và ontology. Các chi tiӃt kӻ thuұt FIPA chӭa
mӝt thư viӋn nӝi dung ngôn ngӳ, trong khi đó sӵ đa dҥng cӫa các ontology đưӧc đӏnh nghĩa và
đưӧc sӱ dөng trong các phҫn khác nhau cӫa tiêu chuҭn FIPA.
Phiên bҧn cuӕi cùng cӫa JADE cho phép lұp trình ӭng dөng tҥo ra nӝi dung ngôn ngӳ và
ontology cӫa riêng mình. Mӛi JADE agent có bao gӗm khҧ năng lӵc hiӇu biӃt đӃn ngôn ngӳ và

17
ontology đưӧc liӋt kê; ngưӡi dùng đӏnh nghĩa code phҧi có khҧ năng dӏch qua lҥi giӳa các đӏnh
dҥng String (theo cú pháp nӝi dung ngôn ngӳ) và mӝt đҥi diӋn cơ sӣ.
NӃu mӝt ontology đưӧc ngưӡi dùng đӏnh nghĩa, các ӭng dөng có thӇ đăng ký mӝt lӟp Java
phù hӧp đóng vai trò bҧn thӇ và JADE có thӇ chuyӇn đәi đӃn và đi tӯ khung và ngưӡi dùng đӏnh
nghĩa đӕi tưӧng Java. Làm theo cách này, các lұp trình ӭng dөng có thӇ đӏnh nghĩa khái niӋm tên
miӅn cө thӇ cӫa hӑ như là lӟp Java quen thuӝc, trong khi vүn có khҧ năng
quá trình đó ӣ cҩp tác tӱ.
4.6. Công cө cho quҧn lý và phân đӏnh nӅn tҧng:
Ngoài mӝt thư viӋn runtime, JADE còn cung cҩp mӝt sӕ công cө đӇ quҧn lý các nӅn tҧng
tác tӱ, theo dõi và gӣ lӛi cho xã hӝi tác tӱ; tҩt cҧ nhӳng công cө này đưӧc thӵc hiӋn như FIPA
agent, chӍ cҫn dӵa vào JADE AMS. ViӋc quҧn lý giao diӋn điӅu khiӇn chung cho mӝt nӅn tҧng
JADE đưӧc gӑi là tác tӱ RMA (Remote Monitoring Agent). RMA đҥt đưӧc các thông tin vӅ nӅn
tҧng và thӵc hiӋn các lӋnh cӫa giao diӋn đӗ hӑa (GUI) đӇ sӱa đәi trҥng thái cӫa nӅn tҧng (tҥo ra
các tác tӱ, đóng container, «v.v«) thông qua AMS. Các tác tӱ Directory Facilitator cũng có
mӝt giao diӋn, mà nó có thӇ đưӧc quҧn lý, cҩu hình các tác tӱ.
Ngưӡi dùng JADE có thӇ gӣ lӛi tác tӱ cӫa hӑ vӟi các Dummy Agent và the Sniffer Agent.
Dummy Agent là mӝt công cө đơn giҧn đӇ kiӇm tra thông điӋp trao đәi giӳa các tác tӱ, tҥo điӅu

kiӋn xác nhұn mô hình trao đәi thông điӋp và tương tác thӱ nghiӋm cӫa các tác tӱ.
Sniffer Agent cho phép theo dõi các trao đәi thông điӋp trong mӝt nӅn tҧng tác tӱ JADE:
mӛi thông điӋp trӵc tiӃp tӟi hoһc đӃn tӯ mӝt tác tӱ đã chӑn hay nhóm đưӧc theo dõi và hiӇn thӏ
trong cӱa sә sniffer, sӱ dөng mӝt ký hiӋu tương tӵ như UML Sequence Diagrams.

5. Tәng quan phương pháp phân tích và thiӃt kӃ mô hình đa
tác tӱ sӱ dөng JADE
Mӝt phương pháp hӛ trӧ như mӝt hưӟng dүn các nhà thiӃt kӃ khi phát triӇn mӝt hӋ thӕng
đa tác tӱ. Nói chung, mӝt phương pháp phát triӇn phҫn mӅm gӗm có:
- Mӝt quy trình, nghĩa là mӝt chuӛi các giai đoҥn và các bưӟc hưӟng dүn các nhà phát
triӇn xây dӵng hӋ thӕng.
- Mӝt tұp hӧp các quy tҳc heuristic có hӛ trӧ nhà phát triӇn trong viӋc đưa ra sӵ lӵa
chӑn có liên quan.
- Mӝt sӕ sơ đӗ, lưӧc đӗ hoһc các văn bҧn mô phӓng trong đӗ hӑa hoһc hình thӭc văn
bҧn cӫa mӝt hoһc nhiӅu mô hình hӋ thӕng.
- Mӝt ký hiӋu phù hӧp sӁ đưӧc sӱ dөng trong các tác vө.
- Mӝt tұp hӧp các mô hình có thӇ đưӧc áp dөng đӇ giҧi quyӃt các tình huӕng thưӡng
gһp.

18
- Mӝt hoһc nhiӅu công cө: tӵ đӝng hoá, càng nhiӅu càng tӕt, các giai đoҥn và các bưӟc
quy đӏnh cө thӇ trong quá trình này; thӕng nhҩt giӳa các mô hình sҧn xuҩt; nêu bұt
các vҩn đӅ phát sinh tӯ sӵ lӵa chӑn thiӃt kӃ không đúng, khi có thӇ; tҥo code và tài
liӋu,
Trӑng tâm hiӋn nay cӫa phương pháp đưӧc đӅ xuҩt là vӅ quy trình và các tác vө đưӧc
thӵc hiӋn. Mӝt bҧn thҧo các ký hiӋu cũng đưӧc giӟi thiӋu sӱ dөng trong xây dӵng các tác vө, mӝt
sӕ quy tҳc heuristic và mүu thiӃt kӃ đưӧc trình bày. Quá trình đưӧc mô tҧ bao gӗm giai đoҥn
phân tích và giai đoҥn thiӃt kӃ (đưӧc mô tҧ như hình bên dưӟi).
Giai đoҥn phân tích tәng quan mӝt cách tӵ nhiên và đӝc lұp vӟi nӅn tҧng. Ngưӧc lҥi, các
giai đoҥn thiӃt kӃ cө thӇ giҧ đӏnh là nӅn tҧng JADE thӵc hiӋn và tұp trung trӵc tiӃp trên các lӟp

và khái niӋm đưӧc cung cҩp bӣi JADE. Có thӇ thҩy rҵng không có ranh giӟi nghiêm ngһt giӳa
giai đoҥn phân tích và thiӃt kӃ. Hơn nӳa, phương pháp này là cӫa mӝt tính chҩt lһp đi lһp lҥi, do
đó cho phép các nhà thiӃt kӃ di chuyӇn qua lҥi giӳa các giai đoҥn phân tích và các giai đoҥn thiӃt
kӃ ӭng vӟi tӯng bưӟc trong đó.

19

Hình : tәng quan vӅ phương pháp phân tích và thiӃt kӃ hӋ thӕng multi-agent

20
6. Tәng kӃt
JADE - mӝt phҫn mӅm framework tҥo thuұn lӧi cho sӵ phát triӇn cӫa các ӭng dөng tác tӱ
và mô tҧ kiӃn trúc phҫn mӅm cӫa nó và nó cung cҩp các hàm chӭc năng cũng như liên kӃt vӟi
mӝt sӕ công nghӋ, đһc biӋt là dӏch vө web và các công cө suy luұn và mô hình kiӃn trúc. Có thӇ
có lý do cho sӵ phát triӇn cӫa JADE, đһc biӋt là tính hӳu dөng cũng cho các dӵ án khác trong
tương lai. Jade là mӝt phҫn mӅm công cө rҩt phát triӇn, rҩt nhiӅu ngưӡi đang làm viӋc trên nó,
duy trì liên tөc hoҥt đӝng cӫa nó, cҧi tiӃn và mӣ rӝng, trong công nghiӋp và thương mҥi các ӭng
dөng đưӧc xây dӵng và tӗn tҥi dưӟi nhiӅu khác nhau dӵa trên sӵ hӛ trӧ cӫa JADE framework.
Xu hưӟng trong tương lai là tұp trung vào mӝt nӅn tҧng cҩu hình và các mo-dun điӅu khiӇn như
trong kiӃn trúc cӫa hӋ thông đa tác tӱ cho viӋc phát triӇn ӭng dөng, ũng như sӵ phát triӇn cӫa
mӝt quy trình làm viӋc dӵa trên cơ chӃ phân phӕi các engine. Engine mӟi này sӁ cho phép
agent thӵc thi các ӭng dөng logic mô tҧ thông qua viӋc phân luӗng công viӋc , và tác đӝng lҥi
các agent khác cӫa quy trình công viӋc theo tiêu chuҭn đưӧc đánh giá ӣ thӡi gian chҥy. Các tiêu
chuҭn đó có thӇ dӵa trên ví dө vӅ khӕi lưӧng công viӋc cӫa agent hiӋn tҥi hoһc đһc điӇm cө thӇ
cӫa agent. Đây là đӝng cơ cho viӋc xӱ lý cùng vӟi mӝt dӏch vө tích hӧp tҥo nên môi trưӡng hӛ
trӧ các quá trình công viӋc trên mӝt giao diӋn đӗ hӑa thân thiӋn vӟi ngưӡi dùng, đây sӁ là nòng
cӕt tҥo ra giá trӏ cӫa phiên bҧn mӟi cӫa JADE. Ta có thӇ tranh luұn: nӃu JADE là mӝt platform
có hӛ trӧ mҥnh, tҥi sao không phҧi là nó làm agent theo đӏnh hưӟng lұp trình cho mӝt tiêu chuҭn
kӻ thuұt trong ngành công nghiӋp phҫn mӅm? Jade là mӝt middleware cho phép thӵc hiӋn nhanh
chóng và đáng tin cұy cӫa hӋ thӕng đa tác tӱ và có thӇ đưӧc tích hӧp vӟi công cө trí tuӋ nhân tҥo

(AI), tuy nhiên, lӧi ích cӫa AI và các agent hӧp nhҩt hơn trong cӝng đӗng khoa hӑc hơn là trong
ngành công nghiӋp phҫn mӅm. Jade có thӇ đưӧc coi là agent platform phә biӃn nhҩt sҹn có hiӋn
nay.

















21
Tài liӋu tham khҧo
1. JADE - A FIPA ± compliant agent framework , Fabio Bellifemine
,
Agostino Poggi
, Giovanni Rimassa .
2. JADE White Paper - F. Bellifemine, G. Caire, A. Poggi, G. Rimassa
.
3. JADE: A software framework for developing multi-agent applications - Fabio
Bellifemine, Giovanni Caire, Agostino Poggi, Giovanni Rimassa -

www.sciencedirect.com .
4.

5. Developing Multi-agent Systems with JADE - Fabio Bellifemine, Agostino Poggi,
Giovanni Rimassa. -
, , .

×