Metodologi Dan Tool Untuk Pengembangan Software Agent
Pada bagian ini akan dibahas tentang metode dan tool untuk pengembangan software agent. Bagaimanapun juga dalam mengembangkan sistem yang kompleks, diperlukan metode yang jelas dan disepakati oleh umum, dan juga karena harus dipertimbangkan keterbatasan manusia baik fisik maupun mental, diperlukan tool sebagai alat bantu untuk mempermudah pengembangan suatu sistem.
Metodologi Analisa dan Desain Berorientasi ke Agent
Metodologi analisa dan desin berorientasi ke agent (Agent-Oriented Analysis dan Design (AOAD)), adalah salah satu tema penelitian yang menonjol di masa generasi kedua (1990-sekarang) penelitian software agent (lengkapnya lihat bagian 2 tentang sejarah dan latar belakang). Bagaimanapun juga seperti halnya paradigma software engineering lain, software agent pun memerlukan metodologi terutama untuk analisa dan desain sistem, yang berguna untuk membantu developer dalam mengembangkan dan memanage software agent plus life cyclenya.
Pada hakekatnya, riset tentang metodologi AOAD bisa kita bagi menjadi dua kelompok besar [Iglesias et al., 1999] . Yang pertama adalah metodologi yang berdasar kepada Object-Oriented Analysis and Design (OOAD), selanjutnya lihat bagian 7.1.1. Dan yang kedua adalah metodologi yang berdasar kepada Knowledge Engineering (KE), selanjutnya lihat bagian 7.1.2.
Metodologi Yang Berdasar Kepada OOAD
Ada beberapa alasan mengapa digunakan OOAD sebagai dasar pengembangan metodologi AOAD.
Alasan yang pertama adalah karena pada dasarnya ada kemiripan antara paradigma object orientasi (object-oriented (OO) paradigm) dengan paradigma agent orientasi (agent-oriented paradigm) [Burmeister, 1996] [Kinny et al., 1996]. Dalam OO agent bisa didesain sebagai obyek aktif, dan obyek yang mempunyai mental state. Meskipun tentu saja, perlu dipikirkan lagi mengenai masalah belief, desire, intentions, dan commitments, yang menjadi karakteristik dari agent.
Alasan yang kedua adalah metodologi OOAD yang ada, misalnya Object Modelling Technique (OMT) [Rumbaugh et al., 1991], Object-Oriented Software Engineering (OOSE) [Jacobson et al., 1992], ataupun Unified Modelling Language (UML) [Booch et al., 1999], sudah banyak digunakan, dan dikenal luas dalam industri software. Sehingga metodologi AOAD yang berdasar pada OOAD, akan lebih cepat dipahami dan diterima secara mudah oleh berbagai lapisan industri software.
Kemudian alasan yang ketiga adalah, bahwa proses identifikasi obyek dalam object model creation process bisa diterapkan dalam proses untuk identifikasi agent.
Dari sekian banyak metodologi AOAD yang berdasar kepada OOAD ini, penulis mencoba mengambil metodologi yang dikemukakan oleh Burmeister [Burmeister, 1996]. Burmeister pertama bergerak dari salah satu metodologi OOAD yaitu OMT yag dikembangkan oleh Rumbaugh [Rumbaugh et al., 1991]. Metodologi OMT menguraikan bahwa OOAD mempunyai 3 elemen dasar yaitu: Object Model, Dynamic Model, dan Static Model. Apa yang terdapat dalam masing-masing model tersebut tergambar pada Gambar.
Gambar Tiga Model dalam OMT
Berdasar pada tiga model yang sudah lazim dipakai dalam metodologi OMT tersebut diatas, Burmeister mencoba menganalogikan kedalam metodologi AOAD yang dia buat. Tiga model AOAD yang dia kemukakan adalah (Gambar):
1. Agent Model: Yang berisi internal structur misalnya belief, plan, goals, dan juga behavior dari agent, dsb.
2. Organization Model: Yang berisi segala sesuatu yang berhubungan dengan relasi antara suatu agent dengan agent lain, bisa berupa inheritance, role, ataupun aggregation.
3. Cooperation Model: Yang berisi segala sesuatu yang berhubungan dengan interaksi antar agent, termasuk didalamnya protocol yang dipakai, proses interaksi dan kerjasama (interaction dan cooperation process), ataupun masalah pesan dalam interaksi (message).
Gambar Tiga Model dalam AOAD
Beberapa metodogi lain yang masih dalam area ini adalah yang dikemukakan oleh Kinny [Kinny et al., 1996] dengan metodologi untuk BDI (Belief-Desire-Intention) agent, kemudian Moulin [Moulin et al., 1996] dan Kendall [Kendall et al., 1996] juga mengemukakan metodologi AOAD yang berdasar kepada OOAD.
Metodologi Yang Berdasar Kepada KE
Software agent sebagai suatu sistem yang memiliki intelegensi (lihat bagian 3 tentang karakteristik software agent), dimana salah satu faktor intelegensi adalah adanya knowledge base. Sehingga dalam sudut pandang KE, agent dipandang sebagai sebuah Knowledge-Based System (KBS), yang tentu saja metodologi analisa dan desainnya pun akan tepat kalau merefer berdasar kepada analisa dan desain yang sudah dikembangkan oleh KE.
Beberapa peneliti mengembangkan metodologi AOAD yang merupakan ekstensi dari metodologi yang ada di KE. Seperti kita tahu Schreiber [Schreiber et al., 1994] mengembangkan metodologi analisis dan desain untuk KBS, yang kemudian terkenal dengan nama CommonKADS. Berdasar dari metodologi CommonKADS yang dikembangkan oleh Schreiber tersebut, munculah metodologi yang merupakan ekstensi dari CommonKADS khusus untuk menangani masalah software agent ataupun MAS.
Glaser [Glaser, 1996] mengembangkan ekstensi CommonKADS untuk MAS dalam thesis PhD-nya, kemudian terkenal dengan nama metodologi CoMoMAS. Dalam CoMoMAS Glaser mendefinisikan agent dalam model seperti tersebut dibawah:
1. Agent Model
2. Expertise Model
3. Task Model
4. Cooperation Model
5. System Model
6. Design Model
Iglesias [Iglesias et al., 1998] melakukan pendekatan yang hampir sama dengan apa yang dilakukan oleh Glaser, yaitu mengembangkan ekstensi dari CommonKADS untuk MAS, yang dia berinama MAS-CommonKADS. Permodelan untuk software agent yang dia kembangkan memasukan hal dibawah:
1. Agent Model
2. Task Model
3. Expertise Model
4. Coordination Model
5. Organisation Model
6. Communication Model
7. Design Model
Metodologi MAS-CommonKADS dari Iglesias ini sudah diaplikasikan dengan berhasil untuk mengembangkan proyek PROTEGER (MAS for Network and System Management) dan juga untuk pengembangan hybrid system dengan MAS (proyek ESPRIT-9119 MIX).
Bahasa Pemrograman
Pada bagian ini akan dibahas tentang bahasa pemrograman yang banyak dipakai untuk tahap implementasi dari software agent. Bagaimanapun juga setiap bahasa pemrograman memiliki karakteristik sendiri sesuai dengan paradigma pemrograman yang dia anut. Sehingga pemakaian bahasa permrograman yang kita pakai akan menentukan keberhasilan dalam implementasi agent sesuai yang kita harapkan.
Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya kita pakai [Knabe, 1995] [Brenner et al., 1998]. Petunjuk-petunjuk tersebut adalah:
1. Object-Orientedness: Karena agent adalah berhubungan dengan obyek, bahkan beberapa peneliti menganggap agent adalah obyek yang aktif, maka bagaimanapun juga agent harus diimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-oriented programming language).
2. Platform Independence: Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup dan berjalan diatas berbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakai untuk implementasi adalah yang terlepas dari platform, atau dengan kata lain program tersebut harus bisa dijalankan di platform apapun (platform independence).
3. Communication Capability: Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan (network environment), tentu saja diperlukan kemampuan untuk melakukan komunikasi secara fisik. Sangat lebih baik seandaianya bahasa pemrograman mensupport pemrograman untuk network dan komunikasinya.
4. Security: Faktor keamanan (security) juga hal yang harus diperhatikan dalam memilih bahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobil agent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yang bisa membuat agent bergerak dengan aman.
5. Code Manipulation: Beberapa aplikasi software agent memerlukan manipulasi kode program secara runtime. Bahasa pemrograman untuk software agent sebaiknya juga harus bisa memberikan support terhadap masalah ini.
Ditarik dari beberapa petunjuk diatas, para peneliti merekomendasikan bahasa pemrograman berikut untuk mengimplementasikan software agent [Brenner et al., 1998]:
1. Java
2. Telescript
3. Tcl/Tk, Safe-Tcl, Agent-Tcl
RISET DAN APLIKASI SOFTWARE AGENT
Ada dua tujuan dari survey tentang riset dan aplikasi software agent. Yang pertama adalah, untuk mengeidentifikasi sampai sejauh mana teknologi agent sudah diaplikasikan dengan memberikan pointer berupa contoh-contoh aplikasi sistem yang sudah ada. Yang kedua adalah, untuk memberikan gambaran ke depan, masalah-masalah apa yang sudah dan belum terpecahkan dan membuka peluang untuk mencoba mengaplikasikan teknologi agent ke masalah baru yang timbul. Jennings [Jennings et al., 1998] merangkumkan riset dan aplikasi software agent yang ada kedalam beberapa bidang. Disini kami akan mengupas beberapa riset dan aplikasi software agent dalam bidang industri, internet/bisnis, entertainment, medis, dan bidang pendidikan.
Riset dan Aplikasi Software Agent di Dunia Industri
Dewasa ini teknologi agent sudah diaplikasikan secara luas di dunia Industri. Bagaimanapun juga harus diakui bahwa secara sejarah penelitian, selain dunia Internet dan bisnis, teknologi agent banyak didesain untuk dimanfaatkan di bidang industri.
1. Manufacturing: Parunak [Parunak, 1987] mempelopori proyek penelitian yang dia sebut YAMS (Yet Another Manufacturing System), dimana dia berusaha mengaplikasikan protokol contract net untuk proses kontrol di manufacturing. Untuk mengatasi masalah kompleks dalam proses manufacturing, YAMS mengadopsi pendekatan MAS, dimana setiap pabrik dan komponen dari pabrik adalah direpresentasikan sebagai agent. Aplikasi lain yang menggunakan teknologi agent dalam area ini adalah: konfigurasi dan desain untuk product manufacturing [Darrand et al., 1996], pendesainan secara kolaborativ [Cutosky et al., 1994] [Brooks, 1986], pengontrolan dan penjadwalan operasi manufacturing [Fordyce et al., 1994] [Oliveira et al., 1997] [Parunak et al., , 1997] [Sprumont et al., 1997], dsb.
2. Process Control: Process control secara sistem merupakan sistem yang harus bisa bekerja secara mandiri dan bersifat reactive. Hal ini sesuai dengan karakteristik dari agent, sehingga bukan sesuatu yang mengejutkan kalau banyak muncul pengembangan aplikasi process control yang berbasis ke teknologi agent. Beberapa contoh penelitian dan aplikasi yang berada dalam area ini adalah: proyek ARCHON yang diaplikasikan untuk manajemen transportasi listrik [Corera et al., 1996] dan kontrol untuk percepatan partikel [Perriolat et al., 1996], kemudian juga: pengontrolan iklim [Clearwater et al., 1996], pengontrolan spacecraft [Ingrand et al., 1992] [Schwuttke et al., 1993], dsb.
3. Telecommunications: Sistem telekomunikasi pada umumnya bergerak dalam skala besar, dan komponen-komponen telekomunikasi yang terhubung, terdistribusi dalam jaringan. Untuk itu diperlukan sistem monitoring dan manajemen dalam kerangka real-time. Dengan semakin tingginya tingkat kompetisi untuk menyediakan sistem komunikasi yang terbaik, diperlukan pendekatan komputerisasi dan software paradigma yang sesuai. Disinilah teknologi agent diperlukan. Beberapa riset dan aplikasi dalam area ini adalah: pengontrolan jaringan [Schoonderwoerd et al., 1997] [Weihmayer et al., 1998], transmisi dan switching [Nishibe et al., 1993], service management [Burmeister et al., 1997], dan manajemen jaringan [Esfandani et al., 1996] [Garijo et al., 1992] [Rao et al., 1990], dsb.
4. Air Traffic Control: Ljunberg [Ljunberg et al., 1992] mengemukakan sistem pengontrolan lalu lintas udara berbasis agent yang terkenal dengan nama OASIS. OASIS sudah diujicoba di bandar udara Sydney di Australia. OASIS diimplemantasikan menggunakan sistem yang disebut DMARS [Georgeff, 1994].
5. Transportation System: Beberapa contoh aplikasi teknologi agent yang ada dalam area ini adalah: aplikasi pencarian sistem transportasi dan pemesanan tiket dengan menggunakan MAS [Burmeister et al., 1997], kemudian aplikasi lain adalah seperti yang dikemukakan oleh Fischer [Fischer et al., 1996].
Riset dan Aplikasi Software Agent di Dunia Internet dan Bisnis
Seperti sudah disebutkan diatas, boleh dikatakan teknologi agent paling banyak diaplikasikan dalam dunia Internet dan bisnis ini. Bagaimanapun juga ini tak lepas dari maju dan berkembang pesatnya teknologi jaringan komputer yang membuat perlunya paradigma baru untuk menangani masalah kolaborasi, koordinasi dalam jarak yang jauh, dan salah satu yang penting lagi adalah menangani kendala membengkaknya informasi.
1. Information Management: Ada dua tema besar dalam manajemen informasi dan peran teknologi agent untuk mengatasi masalah information overload karena perkembangan teknologi jaringan dan Internet.
· Information Filtering: Proyek MAXIMS [Maes, 1994] [Decker et al., 1997], kemudian WARREN [Takahashi et al., 1997] adalah contoh aplikasi di bidang information filtering.
· Information Gathering: Banyak sekali aplikasi yang masuk area information gathering baik gratis maupun komersil. Contohnya adalah proyek WEBMATE [Chen et al., 1998], pencarian homepage dengan softbot [Etzioni, 1996], proyek LETIZIA [Lieberman, 1995], dsb.
2. Electronic Commerce: Tema riset kearah desain dan implementasi untuk mengotomatisasi jual-beli, termasuk didalamnya adalah implementasi strategi dan interaksi dalam jual-beli, tawar-menawar, teknik pembayaran, dsb. [Chaves et al., 1996] merealisasikan sistem pasar elektronik dalam sistem yang disebut dengan KASBAH. Dalam sistem ini disimulasikan buyer agent dan seller agent yang melakukan transaksi jual-beli, tawar-menawar, dan masing-masing agent mempunyai strategi jual beli untuk mendapatkan yang termurah atau teruntung. Aplikasi agent lainnya adalah BargainFinder [Krulwich, 1996], JANGO [Doorenbos et al., 1997], MAGMA [Tsvetovatyy et al., 1997], dsb.
3. Distributed Project Management: Untuk meningkatkan produktivitas dalam kerja yang memerlukan kolaborasi antar anggota tim dalam kerangka teamwork, mau tidak mau harus dipikirkan kembali model software yang mempunyai karakteristik bisa melakukan kolaborasi dan koordinasi secara mandiri, untuk membantu tiap anggota dalam melakukan tugas yang menjadi tanggung jawabnya. Salah satu approach adalah dengan mengimplemantasikan teknologi agent dalam software sistem yang dipakai untuk berkolaborasi. Anumba [Anumba et al., 1997] memberikan kontribusi dalam pengembangan decision support system untuk designer dalam mendesain bangunan dalam kerangka teamwork. Riset dan aplikasi lain adalah RAPPID [Parsons et al., 1999], PROCESSLINK [Petrie et al., 1999], dan juga OOEXPERT [Romi et al, June 1999] [Romi et al., March 1999] [Romi et al., July 2000] [Romi, 2001] yang memberikan solusi dan metodologi dalam pemecahan masalah object model creation process dalam OOAD, dan implementasi dengan menggunakan pendekatan Multi Agent System (MAS).
Riset dan Aplikasi Software Agent di Dunia Entertainment
Komunitas informatika dan ilmu komputer sering tidak menjamah dengan serius industri-industri yang bersifat lebih ke arah rekreasi dan kesenangan (Leisure Industri) [Jennings et al., 1998]. Misalnya adalah masalah industri game, teater dan sinema, dsb. Dengan adanya software agent, memungkinkan komunitas informatika dan komputer untuk ikut andil merealisasikan pemikirannya.
1. Games: Software agent berperan penting dalam pengembangan game modern, misalnya dengan membawa paradigma agent kedalam karakter manusia atau sesuatu dalam game tersebut sehingga lebih hidup. Beberapa riset yang sudah sampai pada tahap implementasi adalah misalnya aplikasi game yang dikembangkan oleh Grand dan Cliff [Grand et al., 1998], kemudian juga [Wavish et al., 1996], dsb.
2. Interactive Theatre and Cinema: Beberapa riset dan aplikasi yang berhubungan dengan hal ini adalah [Trappl et al., 1997], [Lester et al., 1997], dan [Foner, 1997].
Riset dan Aplikasi Software Agent di Dunia Medis
Dunia medis adalah bidang yang akhir-akhir ini sangat gencar dilakukan komputerisasi terhadapnya. Tidak ketinggalan, teknologi agent pun dicoba untuk diimplementasikan dalam rangka mencoba mengatasi masalah-masalah yang berhubungan dengan monitoring pasien [Larsson et al., 1998], manajemen kesehatan dari pasien [Huang et al., 1995], dsb.
Riset dan Aplikasi Software Agent di Dunia Pendidikan
Dengan perkembangan teknologi jaringan komputer, dunia pendidikan pun salah satu yang merasakan manfaatnya. Sistem pengajaran pun mengalami perkembangan kearah lebih modern dengan memanfaatkan teknologi jaringan. Berhubungan dengan teknologi agent, dewasa ini banyak sekali riset dan aplikasi untuk dunia pendidikan yang menggunakan teknologi agent, misalnya [Chen et al., 1996], [Espinosa et al., 1996], [Florea, 1999], dsb.