Teori dan Aplikasi Software Agent
1.
PENDAHULUAN
Dewasa ini banyak sekali digunakan kosa kata agent,
baik dalam bidang informatika dan ilmu komputer, seperti software
engineering, artificial intelligence (AI), distributed system,
dsb, maupun dalam bidang lain yang terkait, misalnya bidang industri, manufacturing,
bisnis, electronic commerce, dsb. Populernya penggunakan teknologi agent
pada berbagai bidang ilmu bukan berarti membuat jelas definisi agent. Tetapi
justru membuat definisi agent semakin tidak jelas, karena setiap
peneliti berusaha untuk mendefinisikan agent sesuai dengan latar
belakang ilmu yang mereka miliki. Bagaimanapun juga sampai saat ini belum ada
kesepakatan dari para peneliti tentang definisi formal mengenai apa yang
disebut dengan agent.
Akibat yang timbul dari tidak adanya kesepakatan definisi agent adalah, munculnya
penggunaan agent dengan banner yang bermacam-macam, meskipun yang
dimaksud kadang-kadang adalah sama, ataupun tidak ada perbedaaan yang
signifikan didalamnya, misalnya adalah penggunaan kata-kata, intelligent
agent, agent technology, software agent, autonomous agent,
ataupun agent. Pada makalah ini kami menggunakan kata agent dan software
agent untuk mewakili beberapa kosa kata tersebut diatas.
Pada makalah ini akan dibahas tentang teknologi agent,
baik dalam tinjauan teori maupun praktis, dan juga akan dijelaskan tentang
aplikasi dari teknologi agent diberbagai bidang penelitian.
Pengorganisasian makalah ini adalah sebagai berikut.
Penjelasan kita mulai dengan sejarah, latar belakang dan definisi agent
(bagian 1 dan 2), dengan tujuan supaya kita bisa menyamakan persepsi awal
tentang agent yang kita bicarakan. Setelah juga dijelaskan secara
lengkap tentang karakteristik, bidang-bidang yang terkait dengan agent
(bagian 3 dan 4). Pada bagian 5 akan dibahas tentang beberapa bidang ilmu yang
terkait dan berpengaruh dalam software agent. Dan pada bagian 6 akan
dijelaskan mengenai keuntungan-keuntungan yang didapat dalam rangka penggunaan software
agent. Masuk ke bagian 7, akan dibahas tentang arsitektur umum pada software
agent.
Kemudian akan dibahas mengenai masalah metodologi dan tool
dalam pengembangan software agent pada bagian 8. Riset dan aplikasi yang
berkaitan dengan software agent akan dijelaskan secara mendetail pada
bagian 9, dan dilanjutkan pada bagian 10 dengan penjelasan mengenai usaha
standarisasi software agent dan organisasi-organisasi yang mendukung ke
arah itu. Makalah ini akan diakhiri dengan kesimpulan dan daftar pointer
maupun resource yang berhubungan dengan software agent.
2.
SEJARAH
DAN LATAR BELAKANG SOFTWARE AGENT
Menurut Nwana [Nwana, 1996], konsep agent sudah
dikenal lama dalam bidang AI, tepatnya dikenalkan oleh seorang peneliti bernama
Carl Hewitt [Hewitt, 1977] dengan concurrent actor model-nya pada tahun
1977. Dalam modelnya Hewitt mengemukakan teori tentang suatu obyek yang yang
dia sebut actor, yang mempunyai karakteristik menguasai dirinya sendiri,
interaktif, dan bisa merespon pesan yang datang dari lain obyek sejenis. Dari
berbagai penelitian berhubungan dengan hal diatas, kemudian lahirlah cabang
ilmu besar yang merupakan turunan dari AI yaitu Distributed Artificial
Intelligence (DAI), yang antara lain membawahi bidang penelitian, Distributed
Problem Solving (DPS), Parallel Artificial Intelligence (PAI), dan Multi
Agent System (MAS)
Masa ini terkenal dengan masa generasi pertama
penelitian software agent, yaitu periode 1970-1990. Pada umumnya
konsentrasi penelitian pada periode ini tertuju ke arah: pemodelan internal agent
secara simbolik, isu-isu makro mengenai interaksi, koordinasi, dan komunikasi
antar agent dalam kerangka MAS. Tujuan utamanya adalah untuk
menganalisa, mendesain, dan mengintegrasikan system dalam kerangka agent
yang bisa berkolaborasi satu dengan yang lain. Berbagai macam penelitian yang
dilakukan pada generasi pertama (1970-1990) itu terangkum secara lengkap dan
terorganisir dengan baik dalam buku-buku yang dieditori oleh Bond dan Gasser
[Bond et. al., 1988], Gasser dan Huns [Gasser et. al., 1989], dan Chaib-draa
[Chaib-draa et. al., 1992].
Kemudian masa generasi kedua dari penelitian agent
adalah periode tahun 1990 sampai saat ini. Konsentrasi penelitian pada periode
ini khususnya adalah pada: pengembangan dan penelitian teori agent (agent
theory), arsitektur agent (agent
architecture) dan bahasa pemrograman yang digunakan (agent language). Terangkum
dengan baik dalam buku-buku dan makalah-makalah oleh Wooldridge dan Jennings
[Woolridge et. al., 1994], [Woolridge et. al., 1995], dan [Woolridge et. al.,
1996].
3.
DEFINISI
DAN KARAKTERISTIK YANG DIMILIKI OLEH SOFTWARE AGENT
3.1.
Definisi
Software Agent
Pertama-tama mari kita mulai mendefinisikan agent dari
arti kamus. Di dalam kamus Webster’s New World Dictionary [Guralnik,
1983], agent didefinisikan sebagai:
A person or thing that acts or is capable of acting or
is empowered to act, for another.
Disini ada dua point yang bisa kita ambil:
·
Agent mempunyai
kemampuan untuk melakukan suatu tugas/pekerjaan.
·
Agent melakukan
suatu tugas/pekerjaan dalam kapasitas untuk sesuatu, atau untuk orang lain.
Ditarik dari point-point diatas Caglayan [Caglayan et
al., 1997] mendefinisikan software agent sebagai:
Suatu entitas software komputer yang memungkinkan user
(pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously).
Kemudian beberapa peneliti lain menambahkan satu point
lagi, yaitu bahwa agent harus bisa berjalan dalam kerangka lingkungan
jaringan (network environment) [Brenner et. al., 1998]. Definisi agent
dari para peneliti lain pada hakekatnya adalah senada, meskipun ada yang
menambahkan atribut dan karakteristik agent ke dalam definisinya. Secara
lengkap definisi agent dan komparasinya, dirangkumnkan oleh Franklin
dalam makalahnya [Franklin et. al., 1996].
3.2.
Karakteristik
dan Atribut Software Agent
Untuk memperdalam pemahaman
tentang software agent, fungsi, peran, dan perbedaan mendasar dikaitkan
software program yang ada, berikut ini akan dijelaskan tentang beberapa
atribute dan karakteristik yang dimiliki oleh software agent. Tentu
tidak semua karakteristik dan atribut terangkum dalam satu agent (lihat
bagian 4 tentang klasifikasi software agent). Pada hakekatnya daftar
karakteristik dan atribut dibawah adalah merupakan hasil survei dari
karakteristik yang dimiliki oleh agent-agent yang ada pada saat ini.
1.
Autonomy: Agent dapat melakukan tugas secara mandiri
dan tidak dipengaruhi secara langsung oleh user, agent lain ataupun oleh
lingkungan (environment). Untuk mencapai tujuan dalam melakukan tugasnya secara
mandiri, agent harus memiliki kemampuan kontrol terhadap setiap aksi
yang mereka perbuat, baik aksi keluar maupun kedalam [Woolridge et. al., 1995].
Dan satu hal penting lagi yang mendukung autonomy adalah masalah intelegensi (intelligence)
dari agent.
2.
Intelligence,
Reasoning, dan Learning:
Setiap agent harus mempunyai standar minimum untuk bisa disebut agent,
yaitu intelegensi (intelligence). Dalam konsep intelligence, ada
tiga komponen yang harus dimiliki: internal knowledge base, kemampuan reasoning
berdasar pada knowledge base yang dimiliki, dan kemampuan learning
untuk beradaptasi dalam perubahan lingkungan.
3.
Mobility
dan Stationary: Khusus untuk mobile
agent, dia harus memiliki kemampuan yang merupakan karakteristik tertinggi
yang dia miliki yaitu mobilitas. Berkebalikan dari hal tersebut adalah stationary
agent. Bagaimanapun juga keduanya tetap harus memiliki kemampuan untuk
mengirim pesan dan berkomunikasi dengan agent lain.
4.
Delegation: Sesuai dengan namanya dan seperti yang sudah kita
bahas pada bagian definisi, agent bergerak dalam kerangka menjalankan
tugas yang diperintahkan oleh user. Fenomena pendelegasian (delegation)
ini adalah karakteristik utama suatu program disebut agent.
5.
Reactivity: Karakteristik agent yang lain adalah
kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang
ada dalam suatu lingkungan (enviornment). Lingkungan itu bisa mencakup: agent
lain, user, adanya informasi dari luar, dsb [Brenner et. al., 1998].
6.
Proactivity
dan Goal-Oriented: Sifat proactivity
boleh dikata adalah kelanjutan dari sifat reactivity. Agent tidak
hanya dituntut bisa beradaptasi terhadap perubahan lingkungan, tetapi juga
harus mengambil inisiatif langkah penyelesaian apa yang harus diambil [Brenner
et. al., 1998]. Untuk itu agent harus didesain memiliki tujuan (goal)
yang jelas, dan selalu berorientasi kepada tujuan yang diembannya (goal-oriented).
7.
Communication
and Coordination Capability: Agent
harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain.
Masalah komunikasi dengan user adalah masuk ke masalah user interface dan
perangkatnya, sedangkan masalah komunikasi, koordinasi, dan kolaborasi dengan agent
lain adalah masalah sentral penelitian Multi Agent System (MAS).
Bagaimanapun juga untuk bisa berkoordinasi dengan agent lain dalam
menjalankan tugas, perlu bahasa standard untuk berkomunikasi. Tim Finin [Finin
et al., 1993] [Finin et al., 1994] [Finin et al., 1995] [Finin et al., 1997]
dan Yannis Labrou [Labrou et al., 1994] [Labrou et al., 1997] adalah peneliti software
agent yang banyak berkecimpung dalam riset mengenai bahasa dan protokol
komunikasi antar agent. Salah satu produk mereka adalah Knowledge
Query and Manipulation Language (KQML). Kemudian masih berhubungan dengan
ini komunikasi antar agent adalah Knowledge Interchange Format (KIF).
4.
KLASIFIKASI
SOFTWARE AGENT
4.1.
Klasifikasi
Software Agent Menurut Karakteristik Yang Dimiliki
Teknik klasifikasi agent
menurut karakteristik dipelopori oleh Nwana [Nwana, 1996]. Menurut Nwana, agent
bisa diklasifikasikan menjadi delapan berdasarkan pada karakteristiknya.
1. Collaborative Agent: Agent yang memiliki kemampuan melakukan
kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System
(MAS).
2. Interface Agent: Agent yang memiliki kemampuan untuk
berkolaborasi dengan user, melakukan fungsi monitoring dan learning
untuk memenuhi kebutuhan user.
3. Mobile Agent: Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke
tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut,
dalam lingkungan jaringan komputer.
4. Information dan Internet Agent: Agent yang memiliki kemampuan untuk
menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian
informasi untuk user, secara mandiri. Atau dengan kata lain, memanage informasi
yang ada di dalam jaringan Internet.
5. Reactive Agent: Agent yang memiliki kemampuan untuk bisa
cepat beradaptasi dengan lingkungan baru dimana dia berada.
6. Hybrid Agent: Kita sudah mempunyai lima klasifikasi agent. Kemudian agent
yang memiliki katakteristik yang merupakan gabungan dari karakteristik yang
sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid agent.
7. Heterogeneous Agent System: Dalam lingkungan Multi Agent System (MAS),
apabila terdapat dua atau lebih hybrid agent yang memiliki perbedaan
kemampuan dan karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous
agent system.
4.2.
Klasifikasi
Software Agent Menurut Lingkungan Dimana Dijalankan
Caglayan [Caglayan et al.,
1997] membuat suatu klasifikasi yang menarik mengenai agent, yang
berdasar kepada lingkungan (environment) dimana agent dijalankan.
Dari sudut pandang dimana dijalankan, software agent
bisa diklasifikasikan sebagai desktop agent, internet agent dan intranet
agent. Lebih jelasnya, daftar dibawah menguraikan klasifikasi tersebut
secara mendetail.
1.
Desktop
Agent: Agent yang
hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan
diatas suatu Operating System (OS). Termasuk dalam klasifikasi ini
adalah:
·
Operating
System Agent
·
Application Agent
·
Application
Suite Agent
2.
Internet
Agent: Agent yang
hidup dan bertugas dalam lingkungan jaringan Internet, melakukan tugas memanage
informasi yang ada di Internet. Termasuk dalam klasifikasi ini adalah:
·
Web Search
Agent
·
Web Server
Agent
·
Information
Filtering Agent
·
Information
Retrieval Agent
·
Notification
Agent
·
Service Agent
·
Mobile Agent
3.
Intranet
Agent: Agent yang
hidup dan bertugas dalam lingkungan jaringan Intranet, melakukan tugas memanage
informasi yang ada di Intranet. Termasuk dalam klasifikasi ini adalah:
·
Collaborative
Customization Agent
·
Process
Automation Agent
·
Database Agent
·
Resource
Brokering Agent
5.
BIDANG
ILMU DAN PENELITIAN YANG TERKAIT DENGAN SOFTWARE AGENT
Gambar 4 menjelaskan bagaimana keterkaitan agent
dengan bidang-bidang ilmu dan penelitian, yang digambarkan berdasarkan pada
hubungan dengan karakteristik yang dimiliki oleh agent.
Sudah menjadi hal yang diketahui umum bahwa masalah learning,
intelligence, dan juga proactivity serta reactivity adalah
bidang garapan AI klasik. Kemudian penelitian dalam bidang DAI pada umumnya
adalah berkisar ke masalah koordinasi, komunikasi dan kerjasama (cooperation)
antar agent dalam Multi Agent System (MAS). Dengan perkembangan
penelitian di bidang distributed network dan communication system,
membawa peran penting dalam mewujudkan agent yang mempunyai kemampuan
mobilitas dan komunikasi dengan agent lain.
Pesatnya perkembangan penelitian tentang software
agent tak lepas dari pengaruh bidang ilmu psikologi yang banyak mengupas agent
secara teori dan filosofi, kemudian juga software engineering yang
berperan dalam menyediakan metodologi analisa dan desain, serta implementasi
dari software agent. Dan yang
terakhir adalah bidang decision theory dengan kupasan tentang bagaimana agent
harus menentukan strategi dalam menjalankan tugas secara mandiri (autonomously).
Keterkaitan beberapa bidang ilmu dan penelitian dalam
software agent, dibahas dalam buku-buku dan makalah-makalah seperti: [Caglayan
et al., 1997], [Brenner et. al., 1998], dan [Bradshaw, 1997]
REFERENSI
[Anumba et al., 1997] C.J. Anumba and N.F.O. Evbuomwan, “Concurrent
Engineering in Design-Build Projects”, Construction Management and Economics,
Vol. 15, No. 3, May, pp 271-281, 1997.
[Booch et al., 1999] Grady Booch, James
Rumbaugh, and Ivar Jacobson, "The Unified Modeling Language User
Guide", Addison-Wesley, 1999.
[Bond et al., 1988] Alan H. Bond and Les Gasser (Eds.), “Readings in
Distributed Artificial Intelligence”, Morgan Kaufmann Publishers, 1988.
[Bradshaw, 1997] Jeffrey M. Bradshaw, “Software Agents”, MIT Press,
1997.
[Brenner et al., 1998] Walter Brenner, Rudiger Zarnekow, and Hartmut Wittig,
“Intelligent Software Agents: Foundation and Applications”, Springer-Verlag,
1998.
[Brooks, 1986] R.A.Brooks, “A Robust Layered Control System for a
Mobile Robot”, IEEE Journal of Robotics and Automation, Vol.2(1), pp. 14-23,
1986.
[Brooks, 1991] R.A. Brooks, “Intelligence Without Representation”, Artificial
Intelligence, Vol. 47, pp. 139-159, 1991
[Burmeister, 1996] Birgit Burmeister, “Models and Methodology for
Agent-Oriented Analysis and Design, Working Notes of the KI'96 Workshop on
Agent-Oriented Programming and Distributed Systems, 1996.
[Burmeister et al., 1997] B. Burmeister, A. Haddadi, and G. Matylis,
“Applications of Multi-Agent Systems in Traffic and Transportation”, IEEE Transactions
on Software Engineering, 144(1), pp.51-60, February 1997.
[Caglayan et al., 1997] A. Caglayan, Colin Harrison, Alper Caglayan, and
Colin G. Harrison, “Agent Sourcebook: A Complete Guide to Desktop, Internet,
and Intranet Agents”, John Wiley & Sons Inc., January 1997.
[Chaib-draa et al., 1992] B. Chaib-draa, B. Moulin, R. Mandiau, and P. Millot, “Trends in Distributed Artificial
Intelligence”, Artificial Intelligence Review, 6, 35-66, 1992.
[Chaves et al., 1996] A. Chavez and P. Maes, “Kasbah: An Agent Marketplace
for Buying and Selling Goods”, Proceedings of the First International
Conference on the Practical Application of Intelligent Agents and Multi-Agent
Technology (PAAM-96), pp. 75-90, London, UK, 1996.
[Chen et al., 1998] Liren Chen and Katia Sycara, “Webmate : A Personal Agent
for Browsing and Searching”, Proceedings of the Second International
Conference on Autonomous Agents (Agents 98), Minneapolis/St Paul, MN, May
1998.
[Chen et al., 1996] C. Chen and R. Rada, “Individualization Within a
Multi-Agent Computer-Assisted Learning to Read Environment”, Journal of
Artificial Intelligence in Education, 5(4), 557-590, 1996.
[Clearwater et al., 1996] S. H. Clearwater, R. Costanza, M. Dixon, and B.
Schroeder, “Saving Energy using Market-Based Control”, Market Based Control,
pp. 253-273, World Scientific: Singapore, 1996.
[Corera et al., 1996] J. M. Corera, I. Laresgoiti, and N. R. Jennings,
“Using Archon, Part 2: Electricity Transportation Management”, IEEE Expert,
11(6), pp.71-79, 1996.
[Cutosky et al., 1994] M.R. Cutosky, R.E. Fikes, R.S. Engelmore,
M.R.Genesereth, W.S. Mark, T.Gruber, J.M.Tenenbaum, and J.C. Weber, “PACT:An Experiment
in Integrating Concurrent Engineering Systems”, IEEE Transactions on
Computers, Vol. 26(1), pp. 28-37, 1993.
[Darrand et al., 1996] T.P. Darrand and W.P. Birmingham, “Anattribute-Space
Representation and Algorithm for Concurrent Engineering”, AIEDAM,
vol.10(1), pp. 21-35, 1996.
0 komentar:
Posting Komentar