Mengenal XMPP
Semakin menjamurnya teknologi mobile dan web 2.0 serta perilaku manusia untuk selalu berinteraksi dan menyapa secara real time dengan teman kerabatnya menjadikan komputasi di sekitar kita ada dimana-mana (ubiquitous). Dengan semakin terjangkaunya jaringan komputer maka hal itu tidak terelakkan lagi. Pada tulisan kali ini akan diangkat salah satu trend masa kini yaitu Instant Messaging, dengan mengambil salah satu protokol yaitu XMPP. Walaupun ada beberapa lainnya yaitu Yahoo, MSN, ICQ, dll. Kita ambil yang open standard saja.
Extensible Messaging and Presence Protocol (XMPP) adalah sebuah standard komunikasi real-time berbasis text, suara maupun video dengan teknologi open XML. Di awal sekali orang lebih mengenal Jabber, ya karena XMPP merupakan produk Jabber pada tahun 1999, kemudian diformulasikan oleh XMPP Standard Foundation menjadi standard pada tahun 2004 (XMPP 1.0). XMPP ini bisa digunakan dalam hal-hal berikut: instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, dan generalized routing of XML data.
Penulis mencicipi produk XMPP pada tahun 2005, waktu itu mencoba memanfaatkan librari smack, untuk memberi notifikasi pesan kepada penjual dalam aplikasi shopping berbasis mobile. Hanya saja pesannya bukan berupa SMS tetapi masih berupa pesan Instant Messaging.
Saat ini penulis kembali mencicipi XMPP pada aplikasi dan project yang berbeda, dan mungkin eksplorasinya juga lebih mendalam jika dibandingkan 4 tahun yang lalu. Saat ini penulis mengeksplorasi implementasi dari XMPP protokol di sisi server yang sangat kaya akan fitur, yaitu Openfire. Produk ini opensource dan gratis. Hanya saja masih sedikit dokumentasinya yang bisa ditemui. Walaupun begitu, masih ada kok komunitasnya yang sangat membantu jika menemui kesulitan dalam development, dan pastinya karena ini opensource jadi bisa eksplor kode didalamnya lebih bebas. Selain Openfire juga masih ada beberapa produk yang support XMPP yang tidak kalah berkualitas. Sebut saja Jabber14, Apache Camel, Tigase, Hyves APIChat, Sun IM dan JabberXCP (berbayar) . Lihat selengkapnya disini dan disini.
Kekuatan yang dimiliki XMPP antara lain:
– Open standard, sehingga tidak diperlukan royalti kalau ingin mengimplementasikan spesifikasi ini, dan juga tidak ada ketergantungan terhadap salah satu vendor.
– Decentralization, tidak diperlukan adanya master server pusat untuk menjalankannya. Setiap insititusi bisa menjalankan XMPP servernya dia sendiri.
– Security, sangat jelas bahwa dalam spesifikasi XMPP sudah disertakan spesifikasi untuk keamanannannya, dimana untuk proses Authentifikasi digunakan SASL (Simple Authentifikasi Secure Layer) dan enkripsinya digunakan TSL (Transport Layer Security). Tambahannya, server XMPP juga bisa memiliki digital certificate.
XMPP server dan client berkomunikasi melalui pengiriman Message Stanza, yaitu XML code yang fleksibel (sesuai spesifikasi) yang diencoded menggunakan Base64 sebelum dikirimkan. Message stanza ini sering disebut dengan packet, yang bisa berupa Message, Presence dan IQ.
Contoh sederhana dari Message Stanza:
Request Client ke Server:
<iq to='example.com' type='set' id='sess_1'> <session xmlns='urn:ietf:params:xml:ns:xmpp-session'/> </iq>
Response Server ke Client:
<iq from='example.com' type='result' id='sess_1'/>
Message:
<message to='bejo@example.net' from='susi@example.com/balcony' type='chat' xml:lang='en'> <body>Dimana kamu, Bejo?</body> </message>
Presense:
<presence xml:lang='en'> <show>dnd</show> <status>Menunggu waktu Sholat</status> </presence>
Untuk bisa menikmati layanan XMPP, anda bisa menggunakan XMPP client, misalnya Spark, Pidgin, dan membuat koneksi ke XMPP server melaluinya dengan terlebih dahulu membuat/login account anda. Adna nisa menggunakan beberapa layanan yang sudah ada. Lihat disini.
Mungkin segitu dulu deh tulisannya. Seiring dengan waktu nanti diupdate. Ditunggu komentarnya.
Semoga bermanfaat;
DM
ya pak guru dwi… update lagi untuk material openfire nya…good luck ya!
salam kenal,
saya ingin nanya Mas dwi. Saya ingin mencoba menerapkan xmpp server menggunakan OpenFire.
Yang saya masih bingung, apakah pada default-nya OpenFire bisa di extend agar fungsionalitasnya seperti BBM (Blackberry messenger), yaitu adanya notifikasi apakah pesan yang kita kirim masih PENDING, DELIVERED, atau READ?
Lalu pertanyaan berikutnya, OpenFire dengan spesifikasi server saat ini, apakah mampu menangangi concurrent user hingga 100k users?
Mungkin segitu dulu pertanyaan saya.
Saya sendiri lebih memilih openfire, karena menggunakan java (udah bergelut dengan Java kurang lebih 3 tahun 😀 ), serta admin console-nya yang bagus. Namun saya masih ragu apakah OpenFire ini adalah pilihan yang tepat atau bukan.
Mohon tanggapannya mas, terima kasih sebelumnya 😀
waah ada pengguna openfire juga.
tolong terus ditambah informasinya.saya juga pengguna openfire dan spark sebagai client.
spark tentunya sedikit sedikit sudah dimodif sesuai dengan kebutuhan
kira kira ada gaknya referensi spark / openfire development yang berbahasa indonesia?
trimakasih