5
1. TEKNOLOGI DASAR WHATSAPP WhatsApp merupakan aplikasi pesan instan yang bersifat cross-platform berbasis mobile yang memungkinkan pengguna mengirim pesan tanpa harus membayar biaya pengiriman per pesan. WhatsApp menggantikan peran sms sebagai alat utama untuk mengirim pesan melalui smartphone. Dalam perkembangannya, WhatsApp bisa digunakan oleh pengguna untuk membuat grup obrolan, saling mengirim pesan berupa gambar, video atau audio. WhatsApp juga bisa digunakan di personal komputer dengan menggunakan browser. Server WhatsApp hampir seluruhnya terimplementasi dengan bahasa pemrograman Erlang. Sistem server yang menjadi backend routing pesan dilakukan dengan bahasa pemrograman Erlang. Teknologi dasar WhatsApp menggunakan Ejabberd. Ejabberd merupakan server untuk aplikasi XMPP (Extensible Messaging and Presence Protocol) yang ditulis dengan bahasa pemrograman Erlang. Ejabberd dipilih karena teknologinya open-source, direkomendasikan oleh banyak developer, mudah dalam penggunaan awal, dan masa depan yang menjanjikan apabila melihat dari sisi penggunaan jangka panjang untuk sistem komunikasi. Sistem operasi yang digunakan pada server adalah FreeBSD yang merupakan sistem operasi yang open-source. 1.1 Erlang Erlang merupakan bahasa pemrograman yang bersifat general-purpose, garbage collecting, serta sistem runtime. Sebagian besar bahasa Erlang berparadigma pemrograman fungsional. Awalnya dibuat oleh perusahaan Ericsson dengan ciri mendukung sistem distribusi, memiliki toleransi kesalahan, real time, selalu tersedia, serta aplikasi yang terus berjalan. Erlang mendukung hot swapping yaitu, code dapat diubah ubah tanpa harus menghentikan sistem. Saat developing sistem, server WhatsApp terus berjalan beriringan dengan perubahan code. Erlang menyediakan fitter level-bahada untuk membuat dan mengatur proses dengan tujuan konkruen programming. Kelebihan-kelebihan ini cocok digunakan untuk sistem WhatsApp. 1.2 XMPP XMPP (Extensible Messaging and Presence Protocol) adalah protokol komunikasi untuk middleware yang berorientasi pesan berbasis XML (Extensible Markup Language). XMPP memungkinkan pertukaran data terstruktur pada ekstensi data antara dua atau lebih entitas jaringan. Dulunya bernama Jabber, protokol ini dikembangkan oleh

wa-alvian

Embed Size (px)

DESCRIPTION

mmm

Citation preview

Page 1: wa-alvian

1. TEKNOLOGI DASAR WHATSAPPWhatsApp merupakan aplikasi pesan instan yang bersifat cross-platform berbasis mobile yang memungkinkan pengguna mengirim pesan tanpa harus membayar biaya pengiriman per pesan. WhatsApp menggantikan peran sms sebagai alat utama untuk mengirim pesan melalui smartphone. Dalam perkembangannya, WhatsApp bisa digunakan oleh pengguna untuk membuat grup obrolan, saling mengirim pesan berupa gambar, video atau audio. WhatsApp juga bisa digunakan di personal komputer dengan menggunakan browser.

Server WhatsApp hampir seluruhnya terimplementasi dengan bahasa pemrograman Erlang. Sistem server yang menjadi backend routing pesan dilakukan dengan bahasa pemrograman Erlang. Teknologi dasar WhatsApp menggunakan Ejabberd. Ejabberd merupakan server untuk aplikasi XMPP (Extensible Messaging and Presence Protocol) yang ditulis dengan bahasa pemrograman Erlang. Ejabberd dipilih karena teknologinya open-source, direkomendasikan oleh banyak developer, mudah dalam penggunaan awal, dan masa depan yang menjanjikan apabila melihat dari sisi penggunaan jangka panjang untuk sistem komunikasi. Sistem operasi yang digunakan pada server adalah FreeBSD yang merupakan sistem operasi yang open-source.

1.1 Erlang

Erlang merupakan bahasa pemrograman yang bersifat general-purpose, garbage collecting, serta sistem runtime. Sebagian besar bahasa Erlang berparadigma pemrograman fungsional. Awalnya dibuat oleh perusahaan Ericsson dengan ciri mendukung sistem distribusi, memiliki toleransi kesalahan, real time, selalu tersedia, serta aplikasi yang terus berjalan. Erlang mendukung hot swapping yaitu, code dapat diubah ubah tanpa harus menghentikan sistem. Saat developing sistem, server WhatsApp terus berjalan beriringan dengan perubahan code. Erlang menyediakan fitter level-bahada untuk membuat dan mengatur proses dengan tujuan konkruen programming. Kelebihan-kelebihan ini cocok digunakan untuk sistem WhatsApp.

1.2 XMPPXMPP (Extensible Messaging and Presence Protocol) adalah protokol komunikasi untuk middleware yang berorientasi pesan berbasis XML (Extensible Markup Language). XMPP memungkinkan pertukaran data terstruktur pada ekstensi data antara dua atau lebih entitas jaringan. Dulunya bernama Jabber, protokol ini dikembangkan oleh komunitas open source Jabber pada tahun 1999 untuk pesan instan yang bersifat real-time. Dirancang untuk bisa disebarluaskan, protokol ini juga digunakan untuk sistem publish dan subscribe, peersinyalan untuk VoIP, video, transfer file, gaming, aplikasi Internet of Things, dan servis internet.Tidak seperti kebanyakan protokol pesan instan lain, XMPP tersedia dalam standar terbuka dan menggunakan pendekatan sistem yang terbuka baik dari sisi pengembangan dan aplikasi, yang artinya memungkinkan semua orang menerapkan servis XMPP dan mengoperasikan dengan implementasi teknologi lain. Karena bersifat protokol terbuka, implementasi dan pengembangan dapat menggunakan lisensi software apa saja. Meskipun banyak server, client, dan library yang didistribusikan secara gratis dan open source, banyak pula aplikasi komersial yang mengimplementasikan dengan XMPP.1.3 FreeBSD

FrreBSD merupakan sistem operasi untuk berbagai platform yang berfokus pada fitur, kecepatan dan stabilitas. Sistem operasi ini berasal dari BSD (Bekerly Software Distribution), versi UNIX yang dikembangkan di Universitas California, Berkeley. FreeBSD menawarkan networking yang advance, performa, keamanan, dan kompatibilitas fitur yang masih belum dimiliki sistem operasi lain hingga saat ini, bahkan untuk beberapa software komersial terbaik. FreeBSD ideal digunakan untuk server internet atau intramnet. FreeBSD menyediakan servis jaringan yang kuat di dalam beban load yang

Page 2: wa-alvian

berat serta penggunaan memori yang efisien untuk mengatur waktu respon yang baik untuk ribuan stimulan proses user. Segala kelebihan sistem operasi FreeBSD cocok untuk kebutuhan sistem distribusi WhatsApp.

3. ARSITEKTUR WHATSAPP

3.1 Host Infrastructure Middleware = BEAMBEAM merupakan virtual machine untuk bahasa pemrograman Erlang. Sifat yang dimiliki oleh BEAM adalah ringan dengan konkurensi yang besar, komunikasi asynchronous, isolasi pres, eror handling, evolusi sistem yang terus berkembang, real-time yang lembut. BEAM juga mendukung beberapa hal meliputi penjadwalan, proses, manajemen memori, pengoperan pesan. multi-core.3.2 Distribution Middleware = XMPPDistribution middleware WhatsApp adalah message-oriented middleware XMPP (Extensible Messaging and Presence Protocol). XMPP merupakan protocol komunikasi untuk middleware berorientasi pesan yang berbasis XML (Extensible Markup Language). 3.3 Common middleware services = Mnesia (Database)

3.4 Domain-specific middleware services = OTP (Open Telecom Platform)

3.5 Software Distribution System Architecture

3.6 System Distribution System Architectue550 server, 150 untuk chat server (1 juta user per server), 250 untuk mms server, 2x296-v2 Ivy Bridge 10-core (total 40 thread), 64 sampai 512 GB RAM, SSD (kecuali video), Dual-link GigE x2 (public dan private)

Page 3: wa-alvian

SOURCE http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf http://www.erlang-factory.com/upload/presentations/752/reed-efsf2013-whatsapp.pdf http://www.erlang-factory.com/upload/presentations/708/HitchhikersTouroftheBEAM.pdf 

Page 4: wa-alvian

http://www.erlang-factory.com/static/upload/media/1394350183453526efsf2014whatsappscaling.pdf http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html Todd Hoff http://blog-bhaskaruni.blogspot.co.id/2014/02/whatsapp-architecture.html Bhaskaruni Ravi Friday, February 28, 2014