Protokol XMMP (Jabber)
Dalam perancangan sistem Instant Messaging ini, penulis menggunakan sistem berbasis Jabber yang merupakan sistem open source dan sudah banyak digunakan oleh berbagai komunitas. Jabber adalah protokol eXtended Markup Language (XML) yang terbuka yang berfungsi sebagai pertukaran pesan dan kehadiran antara dua host dalam internet. Implementasi pertama dari Jabber adalah Instant Messenger yang mempunyai fungsi yang sama seperti IM yang sudah ada seperti ICQ, AOL, MSN dan Yahoo messenger[1]. Jabber menawarkan beberapa keuntungan dibandingkan IM yang lainnya, antara lain:
Open. Protokol Jabber adalah free, terbuka, publik dan mudah dimengerti serta banyak implementasi open-source yang sudah dan sedang dikembangkan meliputi Jabber server, Jabber client dan tools lainnya.
Extensible. Basis XML memudahkan Jabber untuk dikembangan ke aplikasi lainnya untuk fungsi yang lain. Pengembangan yang umum diatur oleh Jabber Software Foundation.
Decentralized. Setiap orang bisa membuat Jabber server sendiri.
Secure. Jabber server bisa dibuat terisolasi dari jaringan lain, juga komunikasi SSL dapat diimplementasikan selain komunikasi end-to-end yang bisa menggunakan PGP/GPG.
Sebagai usaha menjadikan Jabber sebagai protokol standar Instant Messaging, pada Juni 2000 komunitas Jabber telah mempublikasikan protokol tersebut sebagai Request for Comment (RFC) pada Internet Engineering Task Force (IETF) sebagai bagian dari standar Instant Messaging and Presence Protocol (IMPP), tetapi IMPP ini tidak berjalan sukses. Pada bulan Mei 2001, Jabber Community dan Jabber Inc. membuat Jabber Software Foundation untuk menyediakan asisten organisasi secara langsung (direct organizational assistance) dan asisten teknis secara tidak langsung terhadap komunitas Jabber.
Pada tahun 2002, Internet Engineering Steering Group (IESG) menyetujui formasi Extensible Messaging and Presence Protocol Working Group (XMPP) dengan Internet Engineering Task Force (IETF). Ruang lingkup working group adalah untuk mengeksplorasi dan dimana protokol tersebut digunakan, memodifikasi protokol yang sudah ada agar dapat memenuhi RFC 2799 seperti persyaratan yang ditentukan dalam spesifikasi Common Presence and Instant Messaging (CPIM). Fokus utama working group adalah membuat XML stream termasuk stream pada level security dan autentikasi, elemen data dan namespace yang dibutuhkan untuk mencapai dasar IM dan Presence[2]. XMPP working group menerbitkan XMPP Core Internet-Draft sebagai dokumen yang menggambarkan fitur-fitur utama Extensible Messaging dan protokol Presence.
Arsitektur Jabber
gambar diambil dari http://oficinalibre.net
Jabber menggunakan arsitektur client-server, bukan arsitektur langsung peer-to-peer seperti yang digunakan oleh sistem messaging lainnya. Akibatnya, seluruh data Jabber dikirim dari satu client ke client lainnya harus melewati minimal satu server Jabber. Client Jabber terhubung pada sebuah server Jabber pada TCP melalui port 5222. Koneksi ini selalu on untuk session client yang berjalan pada server, artinya client tidak dapat mengumpulkan pesan sebagai sebuah email client. Sebuah pesan diharapkan tersedia pada client dan dengan segera diharapkan client messenger sepanjang client masih terhubung. Server akan dapat menjajaki (tracking) apakah client masih online atau tidak, dan ketika client dalam kondisi off-line akan menyimpan beberapa pesan yang telah dikirim kepada client untuk menyediakan kapan dia akan terhubung lagi.
Kekhasan yang dimiliki oleh protokol Jabber antara lain modular server dan simple client yang penjelasannya sebagai berikut :
1. Modular server
Server Jabber memiliki tiga peranan utama yaitu :
Menangani koneksi client dan berkomunikasi secara langsung dengan client Jabber
Berkomunikasi dengan server Jabber yang lain
Mengkoordinasikan beragam komponen server yang diasosiasikan dengan server
Server Jabber di desain modular, dengan paket kode internal yang khusus sehingga dapat menangani fungsionalitasnya seperti registrasi, auntentikasi, present, contact list, penyimpanan pesan yang berstatus off-line dan sebagainya. Selain itu server Jabber dapat dikembangkan dengan komponen eksternal yang memungkinkan administrator server untuk mensuplemen server pusat dengan layanan tambahan semacam gerbang untuk sistem messaging lainnya.
2. Simple client
Satu kriteria desain sistem Jabber bahwa ia harus memiliki kemampuan untuk mendukung client yang sederhana misalnya koneksi telnet pada port yang benar. Dalam hal ini tentu saja arsitektur Jabber memberikan sedikit batasan pada client. Task-task pada client Jabber harus dapat mengenal dan melengkapi :
Komunikasi dengan server Jabber melalui soket TCP
Melakukan parsing dan interpretasi XML dengan format yang baik melalui XML stream
Memahami tipe data utama Jabber (message, presence dan iq)
Keuntungan di dalam Jabber adalah dapat memindahkan kompleksitas dari client ke server. Secara praktis, banyak fungsi yang low-level pada client seperti proses parsing XML dan memahami tipe data core Jabber yang ditangani oleh library-library client Jabber, memungkinkan client developer untuk fokus pada user interface [2]