6 Fungsi : Directory Facilitator (DF) adalah agen yang mengimplementasikan layanan yellow pages, yang digunakan agen lainnya untuk mendaftarkan layanannya atau mencari layanan lainnya. berbasis lokasi dan printer service tersedia bebas. Pengguna dapat terhubung ke LAN dan ia akan dilayani dengan teknologi mobile agent. Lalu, client dapat mencetak dokumen miliknya melalui mobile agent. - Analisis Jaringan Sesuai dengan skenario sistem maka jenis jaringan komputer yang akan digunakan ialah LAN dengan port yang digunakan akan ditentukan pada saat implementasi sistem. Perancangan Sistem - Topologi Jaringan Sistem terdiri atas empat aktor utama yaitu: Mobile Agent Server (MAS), LocationBased Service Server (LBSS), printer service, dan client. Gambar 5 menunjukkan rancangan topologi jaringan dari sistem yang akan dibangun. MAS dan LBSS dipisahkan agar kerja sistem dapat dibagi sehingga mengurangi kemungkinan terjadinya bottleneck. 3 Nama agen : RMA Fungsi : Remote Monitoring Agent (RMA) mengizinkan administrator platform untuk memanipulasi dan memonitor platform dengan tampilan antarmuka grafis. Sistem memiliki LBSS yang membantu mengelola daftar layanan, sumber daya layanan, dan menyediakan layanan kepada client yang terhubung. Berikut ini adalah agen yang berada di LBSS beserta fungsinya: 1 Nama agen : DistributorAgent Fungsi : Distributor Agent berfungsi meneruskan pesan ke layanan yang dituju. Selain itu, agen ini pula yang membagi pekerjaan jika terdapat lebih dari satu container menyediakan service dengan jenis yang sama. Pembagian kerja tersebut menggunakan algoritma round-robin. 2 Nama agen : WatcherAgent Fungsi : Watcher Agent berfungsi mencari layanan yang terdaftar di platform dan memelihara daftar layanan terbaru untuk digunakan Distributor Agent. Di samping itu agen ini juga dapat memberikan konfirmasi ke client apakah di platform terdapat layanan. Gambar 5 Rancangan topologi jaringan komputer dari sistem. - Rancangan Agent Perancangan agen akan dikelompokkan berdasarkan container tempat agen akan berada. Agen yang berada di MAS merupakan agen bawaan dari JADE framework yang dimulai ketika container pertama (main container) di platform dijalankan. Berikut ini ialah agen yang berada di MAS beserta fungsinya: 1 Nama agen : AMS Fungsi : Agent Management System (AMS) adalah agen yang mensupervisi seluruh platform. Setiap agen di seluruh sistem harus mendaftarkan diri dengan AMS pada saat pertama kali dijalankan. 2 Nama agen : DF 3 Nama agen : ProviderAgent Fungsi : Provider Agent berfungsi memberikan layanan kepada client. Ketika ada client baru terhubung ke platform, maka agen ini akan membuat mobile agent yang akan mengunjungi dan melayani client. Pada skenario penelitian ini, sistem mendukung printer service sehingga diperlukan sebuah agen pada container di mesin yang terhubung dengan printer. Berikut ini ialah agen beserta fungsinya yang terdaftar di setiap mesin yang menyediakan printer service: Nama agen : PrinterAgent Fungsi : Mencetak dokumen yang dikirimkan kepadanya dan mengirimkan konfirmasi ke client apakah dokumen berhasil terkirim. - Rancangan Arsitektur Sistem Perancangan pengembangan sistem dilakukan dengan menggunakan pemodelan 7 UML. Berikut penjelasan diagram UML yang digunakan sesuai dalam tahapan pengembangan UML yang digunakan: berdasarkan aktor utama dalam sistem, yaitu: - MAS: merupakan bagian sistem pertama yang dijalankan. Server ini adalah tempat main-container berada. Container ini bertugas mengelola container lain dan agen yang berada di platform. - LBSS: merupakan bagian dari sistem yang bertanggung jawab mengelola daftar layanan, melayani client, dan mengarahkan dokumen ke sumber daya yang sesuai. - Printer Service: merupakan anggota dari sistem yang bertugas menerima kerja dari LBSS yaitu mencetak dokumen. Pada perangkat yang bertindak sebagai printer service diperlukan driver printer yang terhubung dengannya. Ketika dokumen berhasil atau gagal dicetak Printer akan mengirimkan konfirmasi. - Client: merupakan anggota dari sistem yang harus dilayani. Saat pertama kali menjalankan aplikasi layanan, client akan melakukan inisialisasi awal ke MAS. MAS pada gilirannya akan memperingatkan LBSS bahwa ada client baru yang butuh layanan. Agen di LBS server akan mengunjungi client untuk menawarkan layanan yang tersedia di jaringan. 1 Use case diagram Use case diagram memodelkan interaksi client dengan sistem pada tingkat paling tinggi. Gambar uses case diagram dapat dilihat pada Lampiran 1. Client dapat meminta layanan dan mengirimkan dokumen yang ingin ia cetak. 2 Deployment diagram Deployment diagram menggambarkan implementasi sistem dan objek yang berjalan di sistem selama sistem berjalan. Deployment diagram dari sistem layanan berbasis lokasi menggunakan mobile agent dapat dilihat pada Lampiran 2. Sistem yang akan dikembangkan dapat dibagi berdasarkan lokasi tempat sistem akan diimplementasi yaitu di MAS, LBSS, printer service, dan client. Semua sistem memiliki pustaka JADE yang menjadi framework sistem yang dikembangkan. Pembuatan mobile agent dan memberikan behaviour ke agen tersebut dapat dilakukan dengan framework ini. 3 Activity diagram Activity diagram sebagai representasi grafis dari workflow komponen-komponen sistem dapat dilihat pada Lampiran 3. Activity diagram tersebut dibagi empat partisi 4 Sequence diagram Sequence diagram yang memperlihatkan aliran proses sistem dapat dilihat pada Gambar 6. Diagram memperlihatkan interaksi Gambar 6 Sequence diagram dari sistem. 8 objek yang berada dalam sistem, yaitu: MAS, LBSS, Printer Service, dan Client. Setiap objek tersebut memiliki satu atau beberapa agen yang dapat saling berkomunikasi menggunakan protokol IMTP yang diimplementasi JADE. Sequence diagram pada Gambar 6 hanya memperlihatkan aliran proses pada level sistem, tetapi yang berinteraksi sebenarnya adalah agen-agen yang berada di container di dalam platform. Untuk itu dibuat sequence diagram pada level agen yang berinteraksi sehingga aliran proses dapat dilihat lebih detail. Diagram dapat dilihat pada Lampiran 4. 5 Class diagram Class diagram yang memperlihatkan keterhubungan setiap kelas pada sistem dapat dilihat pada Lampiran 5. Ketujuh kelas agen yang dibuat merupakan pewarisan dari kelas Agent dari JADE. Setiap kelas agen memiliki kelas implementasi dari behaviour dan action dari behaviour tersebut diimplementasikan sesuai dengan kebutuhan dari agen. Implementasi Sistem - Penentuan Port Port pada jaringan yang akan digunakan pada sistem adalah port 1099 : menggunakan koneksi Transmission Control Protocol (TCP). Port tersebut merupakan port default untuk Java RMI yang merupakan protokol yang digunakan oleh JADE platform untuk komunikasi inter-platform. - Perangkat Lingkungan implementasi yang digunakan adalah: 1 Komputer yang akan digunakan sebanyak satu buah dengan spesifikasi: - Sistem operasi : Windows 7 Professional SP1. - Perangkat keras : Pentium Dual CPU (1,87 GHz), memori 5 GB, dan hard drive 320 GB. 2 Komputer akan menjalankan lima virtual machine menggunakan VirtualBox 4.1.8 masing-masing virtual machine memiliki spesifikasi: - Sistem operasi : Windows XP SP3. - Perangkat keras : Memori 512 MB dan hard drive 10 GB. - Perangkat lunak : Java Development Kit (JDK) 1.6.0_27 dan JADE 4.1. 3 Virtual Machine terhubung satu sama lain dengan bridged networking Beberapa Virtual Machine yang terhubung dengan bridged networking bertindak sama dengan komputer sesungguhnya yang terkoneksi langsung satu sama lain menggunakan kabel jaringan sehingga terbentuk LAN. 4 Karena dibutuhkan printer yang mendukung Java untuk mencetak dokumen, maka pada penelitian ini proses pencetakan dokumen akan disimulasikan dengan proses menuliskan ByteStream yang diterima printer agent kedalam sebuah file dengan nama dan tipe yang sama sesuai dokumen yang dikirimkan client. Gambar 7 Arsitektur sistem yang telah dibangun. 9 - Pengembangan Sistem Bahasa pemrograman yang digunakan dalam pengembangan sistem layanan berbasis lokasi menggunakan mobile agent pada penelitian ini adalah Java. Arsitektur sistem yang telah berhasil dibangun dapat dilihat pada Gambar 7. Pada sistem terdapat dua server, yaitu: MAS dan LBSS. MAS merupakan mesin yang menjalankan main container, yaitu container pertama yang dijalankan dan digunakan sebagai bootstrap point untuk JADE platform. Semua container yang dijalankan setelah main container akan melakukan registrasi ke main container di MAS pada saat pertama kali dimulai. Pada LBSS akan dijalankan sebuah container yang bertugas mengelola layanan yang berada di sistem, mulai dari registrasi layanan baru, mengelola daftar layanan, mengantarkan layanan ke client, dan memastikan layanan yang diminta oleh client terpenuhi. jaringan virtual dengan bridge networking menggunakan VirtualBox. Sebanyak dua buah virtual machine masing-masing bertindak sebagai MAS dan LBSS, dua buah virtual machine menjadi print service, dan satu virtual machine bertindak sebagai client. Semua mesin terhubung dengan bridged networking VirtualBox, sehingga seakan-akan terhubung dengan switch sesungguhnya. Oleh karena itu, setiap mesin memiliki alamat internet protocol (IP) yang unik. Alamat IP yang diberikan pada setiap virtual machine dapat dilihat pada Tabel 1. Adapun paket-paket penting yang berperan dalam pembangunan sistem, yaitu: org.mobile Paket org.mobile merupakan paket kumpulan dari semua kelas yang dibangun untuk pengembangan sistem layanan berbasis lokasi dengan teknologi mobile agent. Berikut paket-paket tersebut : - org.mobile.lbs Kelas yang terdapat pada paket ini adalah kelas-kelas yang akan dijalankan pada LBSS. Paket ini berisi kelas ProviderAgent, kelas DistributorAgent, dan kelas WatcherAgent yang berperan penting dalam kerja LBSS. Di samping itu terdapat pula kelas lain yang membantu kerja agent. - org.mobile.printer Paket ini berisi kelas PrinterAgent. Paket ini dibutuhkan bagi container yang akan menyediakan service printer ke sistem. Pada scenario penelitian ini terdapat print service yang tersedia di jaringan. Pada sistem yang dibangun dua mesin menyediakan service printer. Jika terdapat layanan dengan tipe yang sama tersedia lebih dari satu di sistem, LBSS akan membagi kerja menggunakan algoritma round-robin. Client yang meminta service tidak memerlukan agen pada awal container dijalankan, karena ada agen yang dibuat oleh LBSS. Agen yang tersebut menggunakan teknologi mobile agent akan mengunjungi client dan melayaninya. Implementasi berhasil dilakukan pada Tabel 1 Alamat IP setiap mesin No. 1 2 Alamat IP 169.254. 122.69 169.254. 121.55 3 169.254. 168.152 4 169.254. 156.191 5 169.254. 218.105 Jenis Mesin Hostname MAS MACHINE1 LBSS MACHINE2 Printer Service 1 Printer Service 2 Client 1 MACHINE3 MACHINE6 MACHINE4 jade.core Paket ini mengimplementasikan kernel JADE, run-time environment yang mendukung seluruh platform. Paket ini sangat berperan dalam implementasi mobile agent karena paket ini berisikan kelas Agent yang akan diturunkan ke kelas yang akan diimplementasikan sebagai sebuah agen. Pada paket ini juga terdapat paket lain, yaitu jade.code.behaviours, yang berisikan kelas penerapan behaviour yang diberikan ke agen agar dapat menyelesaikan tugasnya. jade.domain Paket ini berisi implementasi dari agen AMS dan DF yang dijalankan pada main container. Oleh karena itu paket ini berperan penting dalam kerja MAS. 10 Pengujian Sistem - Koneksi Gambar 8 menunjukkan tahapan yang akan dilakukan pada proses pengujian koneksi antar container. bertanggung jawab dalam mengelola agen, white page service, dan yellow page service pada platform. Pengujian fungsional dari MAS ditunjukkan pada Tabel 3. Tabel 3 Pengujian fungsi MAS No. 1 2 3 4 Fungsi Setiap agen dapat mendaftarkan diri pada AMS. AMS mengirimkan event information ke Provider Agent ketika ada client baru terhubung. DF mengimplementasikan yellow page service. DF memberikan daftar layanan pada Watcher Agent. Status Berhasil Berhasil Berhasil Berhasil Pengujian Fungsional LBSS Aplikasi yang dikembangkan telah dapat menerapkan teknologi mobile agent. Pada LBSS terdapat Provider Agent yang membangkitkan agen dan mengirimnya ke client yang meminta layanan. Agen yang telah tiba akan melayani client tersebut, mulai dari meminta daftar layanan sampai layanan yang dipilih client berhasil dipenuhi. Fungsi dari Provider Agent yang telah berhasil diujikan ditunjukkan oleh Tabel 4. Gambar 8 Proses pengujian koneksi pada sistem. Tabel 2 menunjukkan hasil pengujian koneksi pada sistem. Status koneksi antar container juga dapat dilihat dari tampilan RMA pada Lampiran 6. Tahapan pengujian terhadap koneksi antar container menunjukkan semua container dapat terhubung dengan baik. Tabel 2 Pengujian koneksi sistem No. 1 2 3 - Skenario Menjalankan LBSS. Menjalankan Print Service. Menjalankan client. Status Terhubung Terhubung Terhubung Fungsional Pengujian Fungsional MAS Pada MAS terdapat agen DF, AMS, dan RMA yang merupakan agen spesial dari JADE. Agen tersebut berjalan otomatis ketika main container pertama dijalankan. MAS Tabel 4 Pengujian fungsi Provider Agent No. 1 2 Fungsi Menerima event information dari AMS ketika ada client baru yang terdaftar. Membuat dan mengirimkan mobile agent untuk melayani client baru. Status Berhasil Berhasil Distributor Agent pada LBSS berfungsi meneruskan pesan ke layanan yang dituju dan membagi kerja jika terdapat lebih dari satu container menyediakan service dengan jenis yang sama. Pembagian kerja Distributor Agent menggunakan algoritma round-robin. Hasil dari pengujian Distributor Agent dapat dilihat pada Tabel 5. Pada LBSS terdapat Watcher Agent yang berfungsi untuk mencari layanan yang terdaftar di platform dan memelihara daftar layanan terbaru untuk digunakan Distributor