PENGEMBANGAN AGENT SERVER SEBAGAI ANTARMUKA ANTARA AGENT DENGAN SERVER DATABASE PADA SISTEM MANAJEMEN KELAS BERBASIS MULTI-AGENT DENGAN MENGGUNAKAN JADE Arman, F. Astha Ekadiyanto, Martius Departemen Teknik Elektro, Fakultas Teknik Universitas Indonesia Kampus Baru UI Depok, Jawa Barat 1624, Indonesia
[email protected],
[email protected],
[email protected]
Abstrak. Pemrograman berorientasi agent (AOP) dalam pengembangan perangkat lunak termasuk sebuah paradigma yang masih relatif baru. AOP memodelkan aplikasi sebagai sekumpulan komponen yang disebut agent. Sebuah agent perangkat lunak memiliki sifat yang serupa dengan agen manusia. Agent juga memiliki kemampuan untuk mengerjakan tugas rumit yang diberikan kepadanya secara otomatis, dan mampu berkomunikasi dan bekerja sama dengan agent lain untuk menyelesaikan tugasnya. Salah satu middleware yang digunakan untuk pengembangan aplikasi multi-agent adalah JADE yang berjalan pada bahasa pemrograman Java. Untuk melakukan eksplorasi terhadap pemrograman berorientasi agent, maka dalam penulisan skripsi ini akan dibahas tahapan-tahapan yang dilakukan pada pengembangan Sistem Manajemen Kelas berbasis multi-agent. Bagian Sistem Manajemen Kelas yang dibahas pada skripsi ini adalah penggunaan Agent Server sebagai antarmuka yang menghubungkan Agent Kelas dengan server database. Optimasi terhadap Agent Server juga telah dilakukan terutama dengan penggunaan class BehaviourPool dan connection pooling yang berdasarkan hasil pengujian mampu mengurangi waktu pemrosesan sebesar 16% pada beban di atas 10 permintaan/detik. Abstract. Agent Oriented Programming (AOP) in software development is a relatively new paradigm. AOP models an application as a collection of components called agents. A software agent has similar behaviour as human agent. An agent also has the ability to carry a complex task assigned to them automatically, and communicate and cooperate with other agents to complete their tasks. One of several middlewares that is used to develop a multi-agent application is JADE which is run on Java programming language. To explore agent oriented programming, this thesis will analyse several phases in developing agentbased Class Management System. Part of Class Management System that will be analysed in this thesis is the use of Server Agent as an interface that connects Class Agent with database server. Optimization on Agent Server was done by using BehaviourPool class and connection pooling which based on testing result can reduce processing time by 16% at request rate above 10 requests/second.
1.
PENDAHULUAN Pendekatan berbasis agent dalam pengembangan perangkat lunak masih tergolong relatif baru. Pendekatan ini dapat mempermudah perancangan sebuah sistem perangkat lunak yang rumit dengan memecah permasalahan menjadi beberapa bagian dan menugaskan penyelesaian bagian-bagian permasalahan tersebut kepada beberapa agent yang memiliki keahlian yang berbeda-beda dan dapat berkumunikasi serta saling bekerja sama Salah satu middleware yang digunakan untuk mengembangkan perangkat lunak berbasis agent adalah JADE (Java Agent DEvelopment Framework). JADE sepenuhnya dibuat dalam bahasa pemrograman Java.
Skripsi ini mencoba melakukan eksplorasi terhadap pendekatan berbasis agent dengan mengembangkan sebuah aplikasi berbasis agent untuk mengatur kegiatan perkuliahan secara otomatis dengan menggunakan JADE yang diberi nama Sistem Manajemen Kelas. Selain itu pengujian juga dilakukan terhadap aplikasi Sistem Manajemen Kelas untuk mengetahui sejauh mana kemampuan dari aplikasi berbasis agent yang dibuat dengan menggunakan JADE. Skripsi ini tidak membahas tahap perancangan, implementasi, dan pengujian dari agent pada ruang kelas dan departemen, karena bagian tersebut dikerjakan oleh pemrogram lain yang ikut mengembangkan aplikasi Sistem Manajemen Kelas.
Perencanaan
2. PERENCANAAN, ANALISA, DAN PERANCANGAN APLIKASI SISTEM MANAJEMEN KELAS Sistem manajemen kelas memiliki 3 jenis ruangan yang menjadi tempat implemetasinya, yaitu ruang kelas, gedung departemen, dan ruang server. Dosen dan mahasiswa di ruang kelas dapat mengisi absen, petugas dan dosen di gedung departemen dapat melihat informasi kelas yang sedang berlangsung dan mengubah jadwal kuliah. Komputer di ruang server berfungsi untuk menyediakan data yang diperlukan oleh komputer kelas. Selain itu komputer kelas dan departemen dapat saling bertukar pesan. Ilustrasi skenario Sistem Manajemen Kelas ditunjukkan pada Gambar 1.
TIDAK
Gunakan teknik lainnya
Apakah solusi berbasis Agent merupakan yang terbaik?
Perancangan
YA
Analisa
Spesifikasi Interaksi
Use Case Message Template Penentuan jenis agent awal
Deskripsi untuk pendaftaran dan pencarian Yellow Pages
Penentuan tanggung jawab agent
Interaksi Agent dengan database
Penentuan hubungan antar agent
Interaksi agent dengan pengguna
Perbaikan agent
Behaviour internal agent
Informasi penempatan agent
Implementasi Dosen
Dosen
Mahasiswa Classroom
Dosen
Mahasiswa Classroom
Gambar 2. Gambaran umum dari metodologi untuk menganalisa dan merancang sistem multiagent
Mahasiswa Classroom
Dosen Petugas Departemen Departemen Administrator
Ruang Server
Dosen
Petugas Departemen Departemen
FTUI
Gambar 1. Skenario Sistem Manajemen Kelas 2.1.
Metode yang Digunakan Tahap perancangan aplikasi Sistem Manajemen Kelas dilakukan dengan mengacu pada sebuah whitepaper oleh Magid Nikraz et.al. [9], yang membahas sebuah metodologi yang digunakan dalam menganalisa dan merancang sebuah sistem multi-agent. Berdasarkan whitepaper tersebut, terdapat 6 langkah yang harus dilakukan pada tahap analisa, dan 10 langkah pada tahap perancangan. Tahap perencanaan, implementasi, dan pengujian tidak dijelaskan pada whitepaper ini. Gambaran umum dari semua tahap tersebut ditunjukkan pada Gambar 2. Dari semua tahapan yang diperlihatakan pada Gambar 2, tidak seluruhnya dijelaskan pada skripsi ini karena adanya pembagian tugas, sehingga sebagian tahap perancangan akan dikerjakan oleh pemrogram lain dalam satu tim. Tetapi seluruh tahapan pada proses analisa akan dijelaskan untuk memberi gambaran umum yang utuh mengenai Sistem Manajemen Kelas.
2.2. Perencanaan Tujuan dari pengembangan aplikasi Sistem Manajemen Kelas adalah untuk mengeksplorasi kemampuan dan fitur-fitur yang dimiliki sistem multi-agent. Oleh sebab itu, pertanyaan yang terdapat pada tahap perencanaan, yaitu: “Apakah solusi berbasis agent merupakan solusi yang terbaik?” tidak digunakan sebagai dasar pemilihan agent sebagai dasar pengembangan aplikasi Sistem Manajemen Kelas.
2.3. Analisa Dari tahap analisa dan diperoleh dua jenis diagram, yaitu diagram agent (Gambar 3), dan diagram informasi penempatan agent (Gambar 4). Agent Departemen
Agent Kelas
Dosen/Departemen
Dosen dan Mahasiswa
Agent Yellow Pages Database Jadwal Kuliah
Agent Server
AMS
Gambar 3. Diagram Agent Diagram agent menunjukkan jenis-jenis agent yang terdapat pada sistem dan arah komunikasi yang terjadi di antar semua agent tersebut.
Gambar 4. Diagram inforomasi penempatan agent Diagram penempatan agent menunjukkan lokasi penempatan masing-masing agent yang terdapat pada sistem. 2.4. Perancangan Pada tahap perancangan ditentukan prinsip kerja dari Agent Server, Dalam melayani permintaan Agent Kelas, Agent Server bertindak sebagai transducer. Agent kelas hanya perlu mengirimkan pesan dengan format tertentu sesuai dengan jenis permintaan dan membiarkan Agent Server mengurus semua transaksi dengan server database. Untuk melakukan tugas tersebut diperlukan behaviour yang berfungsi untuk mendengarkan dan memproses permintaan Agent Kelas. Prinsip kerja dari behaviour tersebut ditunjukkan pada Gambar 5.
Gambar 6. Struktur database untuk Sistem Manajemen Kelas Untuk pengkodean behaviour yang berfungsi untuk melayani permintaan Agent Kelas, digunakan 2 jenis behaviour, yaitu CyclicBehaviour untuk mendengarkan pesan permintaan yang masuk, dan OneShotBehaviour untuk memproses permintaan yang diterima. Selain itu terdapat juga sebuah FSMBehaviour untuk menjamin hubungan dengan server database. Diagram keadaan dari FSMBehaviour tersebut ditunjukkan pada Gambar 7. FSMBehaviour memiliki sebuah kelemahan, yaitu tidak menghentikan behaviour yang dijalankan dari child behaviour jika FSMBehaviour mengalami restart. Untuk mengatasi masalah tersebut digunakan class BehaviourPool yang berfungsi untuk menyimpan referensi dari semua objek behaviour yang dijalankan, dan menghentikannya jika FSMBehaviour mengalami reset.
Gambar 5. Diagram peralihan keadaan Agent Server untuk tanggung jawab melayani permintaan Agent Kelas
3.
IMPLEMENTASI Pada tahap implementasi dilakukan pengkodean dari rancangan yang telah dibuat. Untuk struktur database yang digunakan dapat dilihat pada Gambar 6.
Gambar 7. Diagram keadaan untuk FSMBehaviour pada Agent Server Untuk mengoptimalkan waktu pemrosesan permintaan Agent Kelas, digunakan teknik connection pooling dengan menggunakan dua buah class, yaitu class ConnectionPool untuk menampung objek Connection, dan class ConnectionPoolManager yang berisi beberapa static method untuk mengakses
class ConnectionPool. Prinsip kerja kedua class tersebut ditunjukkan pada Gambar 8.
Efisiensi Penggunaan Connection Pooling pada Agent Server 25
Efisiensi (%)
20 15 10 5 0 0
5
10
15
20
25
Beban (permintaan/detik)
Gambar 10. Grafik efisiensi penggunaan connection pooling pada Agent Server
4.
PENGUJIAN Pengujian terhadap pengaruh connection pooling terhadap peningkatan kinerja Agent Server dilakukan dengan mengukur waktu pemrosesan yang dibutuhkan Agent Server pada saat menggunakan connection pooling dan juga saat tidak menggunakan connection pooling. Grafik hasil pengukuran ditunjukkan pada Gambar 9. Dari data pengujian dihitung persentase penurunan waktu pemrosesan. Grafik presentase penurunan waktu pemrosesan (efisiensi) terhadap beban permintaan ditunjukkan pada Gambar 10. Dari gambar tersebut dapat dilihat bahwa nilai optimal sebesar 21.67% dicapai pada beban 8 permintaan/detik, dan nilai saturasi efisiensi berada pada nilai 16%. Perbandingan Lama Pemrosesan Permintaan Jadwal Harian pada Agent Server 2428.96
Lama Pemrosesan (ms)
2500 2000 1500
1450.331933.49 1422.51
2395.75 2015.985
1000 500 Dengan Connection Pooling
0 1 Permintaan /detik
Tanpa Connection Pooling 10 Permintaan /detik
20 Permintaan /detik
Gambar 9. Grafik hasil pengujian kinerja Agent Server
Pengujian kedua dilakukan terhadap penggunaan memori Agent Server. Pengujian dilakukan dengan mengamati penggunaan memori setelah beberapa proses restart pada kondisi menggunakan dan tidak menggunakan class BehaviourPool. Grafik hasil pengujian ditunjukkan pada Gambar 11. Pemakaian Memori pada ServerAgent Besar Pemakaian (Kilobyte)
Gambar 8. Diagram sequence untuk proses pengambilan objek Connection dari pool pada Agent Server
102000.00 98000.00 94000.00 90000.00 86000.00 82000.00 78000.00 1
2
3
4
5
6
7
8
9
10
11
Setelah Restart ke-X Tanpa BehaviourPool class
Dengan BehaviourPool class
Gambar 11. Diagram rata-rata pemakaian memori sebelum dan sesudah penggunaan class BehaviourPool Dari Gambar 11 dapat dilihat bahwa penggunaan memori Agent Server tanpa menggunakan class BehaviourPool akan terus meningkat setiap kali dilakukan restart. Sebaliknya penggunaan memori Agent Server setelah menggunakan class BehaviourPool akan cenderung konstan. Pengujian yang terakhir dilakukan terhadap aliran data yang dihasilkan Agent Server saat mengirim jadwal kuliah harian. Pengukuran dilakukan dengan menggunakan Wireshark. Grafik I/O yang dihasilkan Wireshark ditunjukkan pada Gambar 12. Dari Gambar 12 dapat dilihat bahwa besar paket yang dihasilkan Agent Server saat mengirim jadwal kuliah harian rata-rata sebesar 2000 bytes. Oleh sebab itu, penggunaan Agent Server pada lingkungan LAN (Local Area Network) yang berkecepatan 100 Mbps tidak akan mengganggu kinerja jaringan.
[3 ] (2008). About the Java Technology. Diakses 5 Juni 2008. http://java.sun.com/docs/books/tutorial/getStart ed/intro/definition.html [4 ] Hyacinth S. Nwana, (2008). Software Agents: An Overview. Diakses pada 6 Juni 2008. http://agents.umbc.edu/introduction/ao/ Gambar 12. Hasil pengukuran aliran data yang dihasilkan Agent Server saat mengirim jadwal kuliah harian dengan mnggunakan I/O Graph
5.
KESIMPULAN Setelah melakukan pengembangan dan pengujian terhadap aplikasi Sistem Manajemen Kelas didapat beberapa kesimpulan sebagai berikut: 1. Efisiensi penggunaan connection pooling dalam memproses permintaan jadwal kuliah harian memiliki nilai efisiensi saturasi sebesar 16% dengan titik optimal pada beban sebesar 8 permintaan/detik dengan efisiensi tertinggi sebesar 21.67%. 2. Penggunaan class BehaviourPool untuk menghentikan behaviour saat Agent Server di-restart dapat menekan bertambahnya penggunaan memori dengan menghentikan semua behaviour yang terdaftar saat Agent Server di-restart. 3. Komunikasi antar agent pada Sistem Manajemen Kelas hanya memerlukan sumber daya jaringan yang minimal, sehingga pengaplikasiannya tidak banyak membebani jaringan. 4. Pendekatan agent dapat mempermudah pengembangan sebuah perangkat lunak karena dapat memecah permasalahan menjadi bagian-bagian yang dikerjakan oleh agent yang berbeda. 5. Penggunaan JADE sangat mempermudah proses pengembangan aplikasi berbasis agent dengan tersedianya berbagai alat bantu tambahan beserta API yang disediakan oleh bahasa pemrograman Java.
DAFTAR ACUAN [1 ] Clark S. Lindsey, (2004). History of Java. Diakses 5 Juni 2008. http://www.particle.kth.se/~lindsey/JavaCourse/ Book/Part1/Java/Chapter01/history.html [2 ] James Gosling, Henry McGilton (1996). The Java Language Environment. Diakses 5 Juni 2008. http://java.sun.com/docs/white/langenv/Intro.do c2.html#349
[5 ] Bellifemine, Fabio et.al., Developing Multi Agent System with JADE (John Wiley &Sons, Ltd, 2007) hal 3-4 [6 ] Fabio Bellifemine, Giovanni Caire, dan Tiziana Trucco, JADE Administrator’s Guide, diakses 5 Juni 2008. http://jade.tilab.com/doc/administratorsguide.pd f [7 ] (2008). MySQL 5.1 Reference Manual. Diakses pada 9 Juni 2008. http://dev.mysql.com/doc/refman/5.1/en/introdu ction.html [8 ] Delisle, Marc (2006). Creating Your MySQL Database: Practical Design Tips and Techniques (Packt Publishing, 2006) hal 10 [9 ] Nikraz, Magid et.al., A Methodology for the Analysis and Design of Multi-Agent System Using JADE (Telecom Italia Lab, 2006) hal 1314