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 Jabber14Apache 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>

(sumber: Wikipedia, XMPP)

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

  1. zaza gurl
    Oktober 23, 2009 pukul 8:49 am

    ya pak guru dwi… update lagi untuk material openfire nya…good luck ya!

  2. Oktober 1, 2011 pukul 9:35 am

    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 😀

  3. Juli 9, 2012 pukul 3:28 pm

    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

  1. November 9, 2015 pukul 5:18 pm

Tinggalkan komentar