Anda di halaman 1dari 14

UNIVERSITAS NEGERI PADANG

JABBER PROTOCOL
FITRIA INTAN PURWANTI NIM 1102642 ANNISA RIANDA GUSRIAL NIM 1102635 HEPPY AESTI VANI NIM 1102667

JURUSAN PENDIDIKAN TEKNIK INFORMATIKA Fakultas Teknik Universitas Negeri Padang 2013

A. Pengertian Jabber 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

B. Sekilas Tentang Jabber Proyek Jabber dimulai pada awal 1998 sebagai gagasan dari Jeremie Miller. Proyek tersebut cepat berkembang pesat dan mulai mendapat perhatian publik ketika menjadi topik diskusi pada slashdot (www.slashdot.org) yaitu sebuah website diskusi popular antar developer pada bulan januari 1999. Protokol inti Jabber versi 1.0 dari referensi server jabber yang bersifat open source dirilis pada bulan mei 2000. Dari awal pengembangan, komunitas developer Jabber mencoba untuk membuat standart IM dan menyarankan interoperability antar sistem IM. Usaha kooperatif ini sangat kontras dengan perilaku dari provider IM lainnya yang menjaga agar sistem mereka tertutup dan terisolasi dari jaringan IM lain. Sebagai usaha menjadikan Jabber sebagai protokol standart, pada bulan juni 2000, komunitas Jabber mempublikasikan protokol tersebut sebagai Request for

Comments (RFC) kepada Internet Engeneering Task Force (IETF) sebagai bagian dari standart IMPP (Instant Messaging and Presence). tetapi IMPP ini tidak berjalan sukses. Pada bulan Mei 2001, Jabber Community dan Jabber Inc. membuat Jabber Software Foundation. Jabber Software Foundation adalah organisasi serupa dengan Apache Foundation yang keberadaannya adalah untuk menunjukkan dedikasinya terhadap dunia open source dan interoperability antar sistem IM. 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. XMPP working group menerbitkan XMPP Core

Internet-Draft sebagai dokumen yang menggambarkan fitur-fitur utama Extensible Messaging dan protokol Presence

C. Tinjauan Teknologi Protokol Jabber Dalam banyak hal, tujuan dari Jabber adalah untuk membangun sistem IM yang lebih baik yang mendukung informasi kehadiran secara real time(presence) dan pesan(messaging). Yang dimaksud sistem IM yang lebih baik adalah : 1. Open, protokol Jabber bersifat free, terbuka, publik dan mudah dimengerti. Ini mempermudah untuk siapapun yang membuat implementasi Jabber tanpa harus mengeluarkan biaya untuk lisensinya. 2. Standart, Internet Engeneering Task Force (IETF) telah menformulasikan protokol XML sebagai instant messaging and presence technology yang disetujui dengan nama Extensible Messaging dan Presence Protocol atau XMPP. 3. Proven, Jabber pertama kali dikembangkan oleh Jaremie Miller pada tahun 1998 dan sekarang sudah cukup stabil, ratusan developer berkerja menggunakan teknologi jabber. Ada sepuluh dari seribu Jabber server yang aktif di internet sekarang dan jutaan orang menggunakan Jabber untuk IM. 4. Decentralized, Arsitektur dari Jabber menyerupai email, sehingga setiap orang dapat membuat jabber server sendiri. 5. Secure, Jabber server dapat dibuat terisolasi dari jaringan lain. Selain itu sistem keamanan menggunakan SASL dan TLS sudah dibangun di dalam core XMPP specification 6. Extensible, menggunakan kelebihan dari XML namesapces, setiap orang dapat membangun fungsionalitas tambahan diatas protokol jabber. Untuk menjaga interoperability, extension umum diatur oleh XMPP Standart Foundation. 7. Diverse, banyak perusahaan dan project open source menggunakan protokol jabber untuk membangun real-time application. Developer tidak akan merasa terkunci menggunakan teknologi jabber.

D. Arsitektur Jabber Jabber menggunakan arsitektur client server. client Jabber dapat

berkomunikasi dengan server Jabber pada domain Jabber mereka. Domain Jabber

memiliki keuntungan yaitu kemampuannya dalam memisahkan zona komunikasi, yang ditangani oleh server Jabber yang berbeda, tidak seperti kebanyakan sistem IM lainnya yang menggunakan satu server terpusat untuk seluruh zona komunikasi. Pada Jabber pesan dikirim oleh client ke server pengirim kemudian diteruskan ke server penerima baru kemudian disampaikan ke client penerima Format data yang digunakan untuk komunikasi pada jabber adalah format data XML. XML adalah standart World Wide Web Consortium untuk format data yg standart, generic untuk sebuah dokumen. Semua komunikasi yang berlangsung pada Jabber melibatkan pertukaran paket jabber dimana setiap paket dapat berupa fragmentasi XML. Fragmentasi XML ini dapat dikatakan sebagai sub dokumen dalam komunikasi stream pada Jabber. 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 E. Komponen Utama Jabber Tiga komponen utama jabber adalah : 1. Message Jabber menggunakan protokol message untuk mengirim pesan dalam bentuk XML stream. Pesan dapat dikirm antara jabber client dengan jabber server atau antara dua jabber server yang berbeda. Protokol message sangat sederhana, paket pesan dikirim dari sender ke recepient. Secara default tidak ada acknowledge ketika recepient menerima pesan. Jika pesan dikirim dan recepient dalam keadaan offline maka server berkewajiban menyimpan pesan tersebut dan mengirimkannya ketika recepient sudah dalam keadaan online. Proses seperti ini mengacu pada proses store and foward. Pada dasarnya format untuk protokol message adalah sebagai berikut :
<message></message>

Tabel 2.1 Atribut pada elemen <message> Atribut to= from= Fungsi Mengidentifikasikan sender dan recepient. Format alamat jabber diatur dalam spesifikasi jabber. Atribut ini diperlukan untuk semua pesan. Digunakan identifier yang unik pada pesan. Client dapat menggunakan id untuk mengidentifikasikan pesan jika pesan mengalami error. Atribut ini bersifat opsional. Menunjukkan bahwa pesan berupa normal message. Secara default, client memberikan atribut tipe ini jika tidak ada atribut type yang diberikan. Mengindikasikan bahwa Contoh
<message to=smith@example.com> <body> Do you have a new report </body> </message>

Id=

<message to=smith@example.com id=1001> <body> Do you have a new report </body> </message> <message to=smith@example.com> <body> Do you have a new report </body> </message>

[default]

type=error

<message

type=chat

pesan adalah error message. Error ditunjukkan didalam sub elemen <error></error> di dalam elemen message Mengindikasikan bahwa pesan ditampilkan dalam sebuat line-by-line chat interface (1-to-1 chat)

type=groupchat Mengindikasikan bahwa pesan ditampilkan dalam room chat interface.

to=smith@example.com type=error> <error type=404> Not found </error> </message> <message to=smith@example.com type=chat> <body> Do you have a new report </body> </message> <message to=smith@example.com type=groupchat> <body> Do you have a new report </body> </message>

Protokol message mempunyai beberapa set sub-elemen didalamnya. Subelemen yang pertama menunjukkan content dari pesan dan yang kedua adalah sub-elemen yang merupakan informasi metadata. Content
<body><body>

Sub-elemen ini membungkus isi pesan yang akan dikirimkan. Elemen <body/> hanya diperbolehkan ada satu kali pada setiap pesan dan berupa plain text.
<x xlmns=jabber:x:></x>

Sub-elemen ini digunakan untuk mengirim perintah antar client atau sebagai mekanisme tambahan. Setiap kali elemen ini digunakan, namespaces (xmlns) harus didefinisikan. Sebuah pesan dapat memiliki banyak elemen </x> ini. Sebagai contoh namespaces untuk out-of-bond extension dapat digunakan untuk mengirim file antar aplikasi.
<x xmlns=jabber:x:oob></x> <error type=nnn></error>

Sub-elemen ini disertakan ketika atribut type dari pesan di set error. Error yang sebenarnya didefinisikan oleh atribut 302 redirect type=nnn yang

menunjukkan jenis dari error.

400 Bad Request 401 Unauthorized 402 Payment Reuired 407 Registration Required 408 Request Timeout 409 Conflict 500 Internal Sevrer Error Isi dari sub-elemen error adalah penjelasan teks dari spesifik error. Sebagai contoh, bad request mempunyai format sebagai berikut :
<error type=400>Bad Request</error>

Metadata
<subject></subject>

Sub-elemen ini menjelaskan topik dari pesan.


<thread></thread>

client penerima pesan selalu mengembalikan id dari elemen ini ketika terdapat membalas pesan yang diterima. Hal ini membuat pengirim dan penerima untuk mengidentifikasikan dan membuat conversation thread. Thread biasanya bernilai id string yang unik dan random. Ketika client mengirim pesan ke server. Pengirim secara implisit menjadi jabber id dari client dan penerima adalah server jika tidak ada alamat jabber id penerima. Beberapa server Jabber tidak mengijinkan kita untuk mengirim pesan dengan alamat jabber pengirim yang tidak sesuai dengan session pengirim. Contoh pesan valid yang dikirim ke server adalah sebagai berikut :
<message to='smirk@jabber.org'> <body>howdy</body> </message>

Pada sisi server, pemrosesan akhir pengiriman pesan akan tampak sebagai berikut :
<message from='iain@shigeoka.com/work' to='smirk@jabber.org'> <body>Howdy</body> </message>

2. Presence Protokol ini bertanggung jawab terhadap dua hal dibawah ini, yaitu : a. Presence Update, menginformasikan pengguna lain status presence yang sedang kita digunakan. b. Presence Subscription Management, mengijinkan pengguna untuk mendaftarkan update presence dari pengguna lain dan mengatur siapa saja yang berhak mengetahui status presence-nya. Dalam kedua peran tersebut server jabber bertindak sebagai penengah antara presence information generator dan presence recepients. Server tidak memiliki kewenangan untuk secara pasif mengatur rute dari presence packet namun secara aktif server berpartisipasi di dalam protokol presence untuk memastikan operasi dilakukan dengan benar. Gambar 2.3 menunjukkan alur dari informasi pada Jabber server.

Gambar Error! No text of specified style in document..1 Server Jabber sebagai abitrator dalam pertukaran informasi presence

Presence update protocol menggunakan model pesan satu arah atau oneway message. Client mengirim update presence packet kepada server, kemudian server meneruskan salinan dari paket tersebut kepada semua pihak yang terdaftar pada presence subscription list dari client pengirim. Subscription list tersebut dinamakan roster di dalam jabber, namun lebih umum dikenal dengan sebutan buddy list. Client jabber dapat dapat mendaftar presence dari jabber client lainnya. Proses pendaftaran tersebut adalah sebuah kesepakatan untuk mengetahui status presence dari client jabber yang daftarkan. Sebagai contoh, kita dapat mendaftar presence temen kita sehingga ketika teman kita tersebut online, kita akan mendapatkan notifikasi, begitu pula sebaliknya.

Tabel 2. 1 Atribut pada elemen <presence> Atribut type= subscribe type= subscribed Fungsi mendaftar informasi presence pengguna lain Menerima request pendaftaran informasi presence dari pengguna lain Menghentikan update informasi presence dari pengguna lain Menghapus presence pengguna lain Contoh
<presence to=george@aim.jabber.com from=jane@jabber.com type=subscribe <presence to=jane@jabber.com from=george@aim.jabber.com type=subscribed <presence to=george@aim.jabber.com from=jane@jabber.com type=unsubscribe <presence to=jane@jabber.com from=george@aim.jabber.com type=unsubscribed

type= unsubscribe type= unsubscribed

Server menggunakan Probe presence packet untuk request spesifik entitas dari presence packet. Dalam hal ini entitas yang dimaksud adalah menentukan apakan entitas tersebut available atau unavailable. Entity Probe mengijinkan informasi presence untuk dikirimkan Elemen request probe presence dikirim dengan menggunakan format dibawah ini
<presence type=probe>

Elemen-elemen dibawah ini digunakan di dalam elemen <presence>.


<status></status>

Elemen ini digunakan untuk menampilkan deskripsi status dari user yang dapat langsung dilihat oleh user lain. Misal, pengguna ingin menampilkan status yang menunjukkan deskripsi dari apa yang sedang ia lakukan, im at lunch ataube back in 5 minutes
<priority><priority>

Elemen ini memberi prioritas dari presence pada satu entitas pengguna. Misal smith@example.com mungkin login dengan menggunakan multiple resources (home computer, work dan work computer). Elemen ini memberikan prioritas angka untuk setiap resources. Resources dengan angka yang tinggi adalah default dari resources. Semua pesan dan komunikasi akan diarahkan kepada resources yang mempunyai nilai prioritas paling tinggi.

Ketika prioritas resources paling tinggi tersebut menjadi unavailable, pesan dan komunikasi akan dikirim ke resources lainnya yang mempunyai nilai prioritas tertentingi kedua. Prioritas yang bernilai negatif menunjukkan bahwa resources tidak dapat digunakan untuk direct atau immediate contact.
<show></show>

Elemen ini menunjukkan bagaimana status online seorang user kepada user lain. Tabel 2.3 berikut ini menunjukkan opsi yang tersedia. Tabel 2. 2 Nilai pada elemen <show> Tag/Elemen <show>chat><show> <show>away><show> <show>xa><show> <show>dnd><show> Arti Client availabel untuk immediate contact Client dalam keadaan online, namun tidak ada di tempat (misal at launch atau meeting) Client dalam keadaan online namun tidak aktif dalam jangka waktu lama Client dalam keadaan tidak sedang ingin diganggu atau mode dont distrub

<x xmlns=jabber:x></x>

Elemen ini digunakan untuk mengirimkan perintah antar aplikasi atai sebagai fungsi tambahan. Setiap kali elemen ini digunakan, namespaces xmlns harus didefinisikan. Sebuah pesan tunggal dapat memiliki lebih dari elemen <x/>.

3. Info/Query Meskipun secara garis besar trafik jabber terdiri dari message dan presence, sebagian besar pekerjaan mengimplementasikan client dan server adalah mengatur administrasi dan manajemen protokol yang mendukung message dan presence. Jabber melakukan tugas tersebut menggunakan generic query protocol yang

disebut IQ. Gambar 2.4 menunjukkan gambaran cara kerja dari protokol IQ.

Gambar Error! No text of specified style in document. .2 Atribut pada elemen <iq>

Tabel 2. 3 Tabel atribut pada elemen IQ

Atribut to="*" from="*" id="*"

Fungsi Mengidentifikasi sender dan recepients Id unik untuk message

Contoh
<iq to="jsmith@example .com"/> <iq to="jsmith@example .com" id="1001"/> <iq type="get" to="jsmith@example .com"/> <iq type="set" to="jsmith@example .com"/> <iq type="result" from="jsmith@examp le.com"/> <iq type="error" to="jsmith@example .com"> <error type="404">Not found</error> </iq>

type="get"

type="set"

type="result"

Menerima informasi yang berhubungan dengan query namespace. Atribut ini secara default disertakan jika tipe atribut tidak di set Menunjukkan bahwa message yg dikirim adalah query yang di dalam nya terdapat data yang akan di set atau diganti nilainya Mengindikasikan message adalah response tanda bahwa query Get atau Set berhasil dilakukan. Menunjukkan kegagalan dalam query. Deskripsi dari kesalahan di jabarkan pada elemen error yang ada di dalam elemen iq

type="error"

Di dalam setiap IQ, sebuah namaspaces mendefinisikan tipe dari query yang akan dilakukan. Namespaces didefinisikan di dalam elemen query seperti yang ditunjukkan dibawah ini.
<query xmlns="*"/>

Sebagai contoh, client mengirim query Set dengan client authentification namespaces ke server untuk login.
<iq type="set" to="jsmith@example.com"> <query xmlns="jabber:iq:auth"> </query> </iq>

format protokol IQ yang digunakan pada jabber dapat dirumuskan seperti yang ditunjukkan dibawah ini.
<iq type='set|get|result|error' to='handler_jid' from='originator_jid' id='unique'> <query xmlns='iq extension namespace'> <query_field1/> <query_field2/> </query> </iq>

Protokol IQ ini sangat penting jika kita ingin membangun server berdasarkan kebijakan keamanan sistem yang harus dipenuhi oleh client. Jika sistem keamanan client telah terpenuhi maka harus mendukung pula terhadap sistem keamanan pada sisi server. F. Sistem Keeamanan Jabber Protokol

1. Stream Encryption
XMPP merupakan sebuah metode untuk mengamankan stream dari kerusakan atau pembicaraan yang didengar oleh pihak lain (eavesdropping). 1. SSL/TLS Sebelum menggunakan SSL/TLS, client dapat mulai dengan membahas STARTTLS memantau respon server apakah mendukung TLS atau tidak 2. OpenPGP XMPP working group outline menggunakan solusi OpenPGP yang digunakan saat ini dengan tidak ada modifikasi aktual di dalam draft

internet mereka dengan judul End- To-End Object Encryption. XMPP working group menggambarkan enkripsi objek sebagai mekanisme exchange yang dilakukan dengan mengunakan key server OpenPGP key

2.

Stream Authentication XMPP menggunakan dua macam metode untuk memperkuat autentikasi pada level XML stream 1. SASL Authentication SASL menyediakan metode umum untuk menambahkan autentikasi yang mendukung koneksi berbasis protokol. XMPP menggunakan sebuah profil namespace XML yang umum dan namespace identifier untuk

protokol ini 2. Dialback Authentication Di dalam XMPP termasuk sebuah metode level protokol untuk membuktikan bahwa koneksi antara 2 server dapat dipercaya (minimal seperti DNS yang dapat dipercaya). Metode ini disebut dialback dan hanya dapat digunakan dengan XML stream yang dideklarasikan berdasarkan namespace jabber:server.

3.

Stream Authentication XML digunakan sebagai teknologi dasar untuk mendesain dokumen yang terstruktur berdasarkan pertimbangan bahwa XML merupakan standar yang terbuka dan telah diterima secara luas untuk mendukung transaksi berbasis Internet

Daftar Pustaka Irawan, Dwi Ardi.2008.Tugas Akhir Rancang Bangun Perangkat Lunak Mobile Rss Push Menggunakan Protokol Jabber Pada Platform Javame.ITS:Surabaya

Anda mungkin juga menyukai