Mobile Computing System (WhatsApp).pdf PDF

Title Mobile Computing System (WhatsApp).pdf
Author Citra Dewi Larasati
Pages 30
File Size 578.7 KB
File Type PDF
Total Downloads 62
Total Views 301

Summary

Mobile Computing System (WhatsApp) Diajukan Sebagai Tugas Mata Kuliah Sistem Terdistribusi Dosen: Dr. Mohammad Iqbal DISUSUN OLEH: Alvian Dwi Kurnianto (10112267) Anindita Ayu Pratiwi (10112929) Citra Dewi Larasati (11112627) Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Un...


Description

Mobile Computing System (WhatsApp)

Diajukan Sebagai Tugas Mata Kuliah Sistem Terdistribusi Dosen: Dr. Mohammad Iqbal

DISUSUN OLEH: Alvian Dwi Kurnianto (10112267) Anindita Ayu Pratiwi (10112929) Citra Dewi Larasati (11112627)

Jurusan Sistem Informasi Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Gunadarma 2015

1. PENDAHULUAN 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. WhatsApp bisa digunakan oleh pengguna untuk membuat grup obrolan serta saling mengirim pesan berupa gambar, video atau audio. Seiring perkembangannya, WhatsApp juga bisa digunakan di personal komputer dengan menggunakan browser.

WhatsApp mendapatkan uang tidak dengan beriklan. Mereka menggunakan business model subscription atau biaya berlangganan per tahun. Biaya langganannya pun sangat murah, hanya $0.99 per tahun atau bila dirupiahkan tidak sampai 15 ribu rupiah per tahunnya. Bahkan, tahun pertama user dapat menggunakan aplikasi WhatsApp secara gratis.

1.1 Sejarah WhatsApp WhatsApp didirikan oleh dua mantan karyawan Yahoo yang bernama Brian Acton dan Jan Koum. Tahun 2007, setelah mereka keluar dari Yahoo. Keduanya melamar pekerjaan di Facebook, namun mereka ditolak. Setelah itu, mereka melakukan travelling sebagai bentuk istirahat setelah keluar dari Yahoo dan ditolak Facebook. Tahun 2009, Jan Koum membeli Iphone dan menyadari ada potensi besar untuk menjadi developer aplikasi yang dijual di App Store yang saat itu baru muncul.

Singkat cerita, Koum berhasil membuat versi awal Whatsapp. Namun, pada saat itu aplikasi WhatsApp sering mengalami crash dan stuck pada saat tertentu. Koum sempat frustasi dan ingin menyerah pada saat itu, tapi Brian Acton meyakinkan Koum untuk tetap maju terus dan tidak menyerah. Buah kesabaran Koum memberikan hasil, saat WhatsApp mencapai versi 2.0, aplikasi ini sudah memiliki 250 ribu user yang aktif.

Jan Koum dan Brian Acton terus mengembangkan aplikasi WhatsApp dan mencari bantuan investor yang merupakan teman mereka pula saat di Yahoo. Hingga akhirnya pada Februari 2013 WhatsApp memiliki 400 juta user yang aktif. Jumlah ini terus bertambah hingga tahun berikutnya mencapai 500 juta user. Melihat perkembangan jumlah user WhatsApp, Facebook

mengakusisi WhatsApp dengan biaya sebesar 19 Miliyar Dollar Amerika. Sampai saat ini, Whatsapp menjadi Aplikasi Instant Messaging paling populer di dunia dengan jumlah user terakhir pada September 2015 sebesar 900 juta user yang aktif.

1.2 Teknologi Dasar WhatsApp Server WhatsApp hampir seluruhnya terimplementasi dengan bahasa pemrograman Erlang. Sistem server yang menjadi backend routing pesan dilakukan dengan bahasa pemrograman Erlang. Teknologi dasar WhatsApp awalnya 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.2.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-bahasa untuk membuat dan mengatur proses dengan tujuan konkuren programming. Kelebihan-kelebihan ini cocok digunakan untuk sistem WhatsApp.

1.2.2 FreeBSD FreeBSD 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 tingkat tinggi, 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 intranet. FreeBSD menyediakan servis jaringan yang kuat

di dalam beban load yang 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. 1.2.3 Standar Konfigurasi Hardware dan Software: - Dual Westmere Hex-core (24 Logical CPU) - 100GB RAM, SSD - Dual NIC (user-facing, back-end/distribusi) - FreeBSD 8.3 - OTP R14B03

2. FITUR-FITUR WHATSAPP Berikut ini adalah fitur-fitur yang ada di WhatsApp Web dan Mobile WhatsApp. 2.1 Fitur-Fitur yang ada di WhatsApp Web 1. View Contact: Fitur ini berfungsi untuk melihat contact di phonebook.

2. Contact Info: Fitur ini berguna untuk memberitahu kontak detail.

3. Profile & Status : Fitur ini berguna untuk mengganti profile picture dan status di WhatsApp.

Apabila

menggunakan

maka PP yang muncul adalah PP Facebook.

sinkronisasi Facebookdengan

Phonebook,

4. Smile icon : Untuk menambahkan serunya perbincangan, Anda pun dapat menambahkan emotions dengan banyak pilihan, seperti : smile emotions, icon-icon seperti cuaca, binatang, tanaman, alat-alat musik, buku, kartu, dll.

5. Search : digunakan untuk mencari contact dan chat melalui fitur ini.

6. Get Notified of New Messages: Fitur ini berguna untuk memberi tahu pengguna bahwa ada pesan baru yang masuk.

7. Phone Not Connected: Fitur ini berguna untuk memberi tahu pengguna bahwa HP tidak terhubung dengan koneksi internet.

8. New Group: Digunakan ketika pengguna ingin membuat grup baru.

9. Ticks: Fitur ini digunakan untuk mengetahui pesan ini sudah terkirim dan sudah terbaca. Satu tanda centang (berwarna abu-abu) berarti pesan berhasil dikirim, dua tanda centang (berwarna abu-abu) berarti pesan telah diterima tapi belum dibaca, dan dua tanda centang berwarna biru berarti pesan telah di baca. Apabila tidak koneksi internet, akan muncul tanda jam yang mengartikan pengiriman pesan tertunda.

10. Share Media: Digunakan untuk mengirimkan dan mengambil foto.

11. Voice Notes: Digunakan untuk mengirimkan suara.

12. Archieve Chat, Delete Chat:Fitur ini digunakan untuk menyembunyikan chat screen dan dapat diakse nanti bila diperlukan. Delete Chat berfungsi untuk menghapus chat.

13. Chat: Digunakan untuk chat

14. Last Seen: Untuk mengetahi kapan pengguna tersebut terakhir membuka Whatsapp. 15. Typing: Untuk mengetahui kapan pengguna tersebut sedang mengetik

16. Online: Untuk memberitahui kepada pengguna bahwa ada yang pengguna lain yang sedang online

2.2 Fitur-Fitur WhatsApp Mobile yang Tidak Ada di web 1. Calls: Fitur ini untuk melihat panggilan masuk, panggilan keluar dan panggilan tak terjawab.

2. WhatsApp Call: Pengguna bisa melakukan panggilan melalui WhatsApp dengan koneksi internet

3. Shared Media: Digunakan untuk megirim file-file seperti: 1. Foto (langsung dari kamera, file manager dan media galery) 2. Video (langsung dari video kamera, file manager dan media galery) 3. Audio (langsung merekam suara, dari file manager, dari music galery) 4. Location (Pengguna dapat mengirim lokasi pengguna dengan mengambil posisi Anda dari Google Maps) 5. Contact (mengirim detail kontak dari phonebook)

4. Block, Report Spam, Add to Contact: Fitur yang muncul ketika ada nomer baru yang masuk ke dalam WhatsApp. Disini user dapat memblock, mereport ke spam atau menambahkan ke dalam kontak nomer tersebut.

5. Add Shortcut: Fitur untuk menambahkan shortcut conversation ke dalam homescreen.

6. Email Chat:Digunakan untuk mengirim semua perbincangan melalui email.

7. Wallpaper: Untuk mengganti wallpaper

8. Contacts Help:Fitur ini berguna untuk membantu user mengatasi permasalahan di kontak.

9. Setting: Pengaturan 1. Help

2. Profile

3. Account

4. Chat & Calls

5. Notifications

6. Contact (mengirim detail kontak dari phonebook)

10. Broadcast: Untuk mengirimkan broadcast message ke semua kontak yang dimiliki pengguna

3. ARSITEKTUR WHATSAPP 3.1 Host Infrastructure Middleware = BEAM BEAM 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, soft real-time. BEAM juga mendukung beberapa hal meliputi penjadwalan, proses, manajemen memori, pengoperan pesan. 3.2 Distribution Middleware = 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 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 open-source 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.

3.3 Common middleware services = Mnesia (Database) Mnesia merupakan database manajemen sistem yang bersifat soft real-time terdistribusi yang ditulis dlam bahasa pemrograman erlang. Mnesia dikembangkan oleh Ericsson untuk sistem soft real-time terdistribusi dan pemakaian tingkat tinggi untuk pekerjaan komputasi yang berhubungan dengan telekomunikasi. Mnesia mendukung bahasa pemrograman erlang apabila menggunakan DBMS. 3.4 Domain-specific middleware services = OTP (Open Telecom Platform)

OTP merupakan bagian penting dari distribusi open source bahasa pemrograman erlang. OTP merupakan kumpulan middleware, library, tool dan aplikasi server yang ditulis dalam bahasa pemrograman erlang. OTP pada erlang terdiri dari :  

Interpreter Erlang



Protokol untuk komunikasi antar server (node)



Tool analisis static bernama Dialyzer



Compiler Erlang



Corba Object Request Broker



Database server terdistribusi (Mnesia) dan masih banyak libray lainnya.

3.5 Software Distribution System Architecture Software distribusi yang digunakan WhatsApp adalah bundle software stack LYME (Linux, Yaws, Mnesia, Erlang). Linux digunakan sebagai kernel, Yaws digunakan sebagai web-server, Mnesia digunakan sebagai database, Erlang digunakan sebagai bahasa pemrograman dasar.

3.6 System Distribution System Architectue Dasar sistem distribusi WhatsApp secara singkat dapat dijelaskan seperti gambar di bawah ini:

Pesan jenis Multimedia Message Service (MMS) seperti audio, video dan gambar menggunakan arsitektur sistem distribusi yang berbeda dengan sistem distribusi dasar. Secara singkat, arsitektur untuk pesan MMS dapat dijelaskan secara singkat seperti gambar di bawah ini:

Jumlah distribusi hardware yang dimiliki WhatsApp hingga saat ini adalah sebagai berikut: 550 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).

4. PENERAPAN WHATSAPP WhatsApp atau sebagian besar aplikasi messaging yang lain jarang bekerja secara peer to peer, sehingga tidak akan membuka koneksi (dari perangkat) ke setiap perangkat teman si pengguna. Akan tetapi, perangkat yang dimiliki pengguna terhubung ke server mereka. Penggunaan protokol TCP kustom atau mungkin HTTP dapat mengkomunikasikan pesan pengguna ke server. Kemudian server akan mengirimkan pesan pengguna ke perangkat milik teman sipengguna. Jika teman penggunasedang membuka aplikasi WhatsApp atau setidaknya ada proses dari aplikasi yang sedang berjalan,kemungkinan ada sambungan langsung ke server. WhatsApp akan menggunakan koneksi tersebut untuk mengirimkan pesan kepada teman-teman si pengguna. Akan tetapi,jika aplikasi mereka sedang "offline" maka penggunaakan mengirimkan push notification sebagai gantinya. Push notification ini disimpan sementara di server sampai mereka online kembali.

Dalam pembuatannya, WhatsApp menggunakan bahasa pemrograman Erlang. Bahasaini dibangun untuk menulis aplikasi scalable yang dirancang untuk menahan kesalahan. Erlang menggunakan abstraksi yang disebut model Aktor untuk concurrency. Aktor berkomunikasi dengan saling mengirimkan pesan satu sama lain.Aktor bisa saja berada pada mesin yang sama atau pada mesin yang berbeda. Sebuah implementasi sederhana dari WhatsApp bisa seperti: -

Setiap user / perangkat direpresentasikan sebagai seorang aktor. Aktor ini bertanggung jawab untuk menangani inbox pengguna, bagaimana hal itu bisa terserialisasi ke disk, pesan yang dikirimkan oleh pengguna, dan pesan yang diterima oleh pengguna. Contoh: Diasumsikan ada dua pengguna WhatsApp yang bernama Alice dan Bob, anggap bahwa Alice dan Bob berteman di WhatsApp. Jadi, ada aktor yakni aktor Alice dan aktor Bob. 

Alice memutuskan untuk mengirim pesan kepada Bob. Telepon yang dimiliki Alice menetapkan koneksi ke server WhatsApp dan memastikan bahwa koneksi ini pasti berasal dari telepon Alice. Alice sekarang mengirimkan pesan melalui TCP sebagai berikut: "Untuk Bob: Sebuah raksasa menyerang Jembatan Golden Gate". Kemudian, salah satu dari server front-end WhatsApp mendeserialisasi pesan tersebut kepada aktor yang bernama Alice.



Aktor Alice ini kemudian memutuskan untuk menserialisasikan pesan tersebut dan menyimpannya dalam sebuah file yang bernama “Alice’s Sent Message”, yang tersimpan dalam file sistem yang direplikasi untuk mencegah hilangnya data



akibat proses yang tak terduga. Aktor Alice kemudian memutuskan untuk meneruskan pesan tersebut kepada Aktor Bob dengan menampilkan pesan "Msg1 dari Alice: Sebuahraksasa menyerang Jembatan Golden Gate". Aktor Alice akan terus mencoba dengan back-off eksponensial sampai aktor Bobmengakui bahwa ia telah menerima



pesan. Aktor Bob akhirnya menerima pesan dan memutuskan untuk menyimpan pesan tersebut di sebuah file yang bernama "Bob Inbox". Setelah pesan disimpan,aktor Bob akan menyatakan bahwa ia telah menerima pesan dari aktor Alice dengan mengirimkan pesan kepada aktor Alice, “I received Msg1”. Sekarang, aktor Alice dapat berhenti melakukan upaya pengiriman Msg1, karena aktor Bob telah menyatakan bahwa ia sudah menerima pesan yang dikirimkan aktor Alice.Selanjutnya, aktor Bob akan memeriksa apakah telepon Bob memiliki sambungan aktif ke server. Yang dilakukan aktor Bob adalah streaming pesan ke perangkat melalui TCP.

Bob kemudian melihat pesan dari Alice dan memberikan balasan dengan isi "Untuk Alice: Mari kita membuat robot raksasa untuk melawan mereka". Proses yang terjadi sama seperti seperti proses pertama (ketika Alice ingin mengirimkan pesan kepada Bob). Aktor Bob kemudian mengulangi Langkah 2 dan 3 untuk memastikan apakah Alice menerima balasan yang dikirimkan oleh Bob. 4.1 CARA VERIFIKASI NOMOR TELEPON PADA WHATSAPP 1. Periksa apakah pengguna telah memasukkan nomor telepon yang benar. a. Pengguna memasukkan kode Negara pada kotak di sebelah kiri. Untuk Indonesia, maka kode negaranya adalah +62.

b. Pengguna memasukkan nomor telepon pada kotak di sebelah kanan. Pengguna tidak perlu menambahkan awalan nol (0) apa pun sebelum nomor mereka.

2. Memastikan bahwa pengguna telah tersambung ke Internet atau Wi-Fi, data seluler, 4G, atau layanan EDGE. Jika pengguna sedang roaming, proses verifikasi tidak akan berjalan dengan benar.

3. Ada dua cara WhatsApp mengirimkan kode verifikasi ke pengguna. Cara yang pertama adalah dengan SMS dan yang kedua adalah dengan pilihan “Telepon Saya”. a. SMS WhatsApp akan mengirimkan satu kali SMS yang berisi pesan untuk verifikasi nomor telepon pengguna. Sebelum mengirimkan pesan konfirmasi, pihak WhatsApp akan memastikan sekali lagi apakah nomor telepon yang diinput sudah benar apa belum. Jika belum benar, maka perubahan nomor telepon dapat dilakukan. Tunggu beberapa saat, kemudian pesan verifikasi akan dikirim dan secara otomatis kode verifikasi akan terinput pada aplikasi, dan proses verifikasi selesai. b. Telepon Saya Pilih opsi Telepon Saya untuk meminta kode melalui panggilan, lalu tunggu beberapa saat hingga telepon pengguna berdering. Saat panggilan tersebut diangkat, maka aka nada suara otomatis yang memberikan kode aktivasi pada pengguna. Selanjutnya pengguna diharuskan untuk mengetik kode tersebut. WhatsApp akan terverifikasi.

4.2 PENERAPAN WHATSAPP PADA WEB 4.2.1 Autentikasi WhatsApp tidak meggunakan sistem autentikasi saat login. Hal ini mengurangi kerumitan saat login. WhatsApp mengikat akun penggunanya dengan nomor telepon yang mereka gunakan. Satu nomor telepon hanya bisa digunakan oleh satu pengguna. Nomor telepon itu sendiri berperan sebagai tandapengenal unik. Untuk password, tidak diperlukan karena pengguna secara fisik berafiliasi dengan nomor telepon. Jika SMSverifikasi telah diterima oleh pengguna, maka ia resmi menjadi pengguna WhatsApp. Untuk mengamankan komunikasi antar server Whatsapp dan telepon, WhatsApp menggunakan enkripsi end-to-end. Telepon mengenkripsi pesan terlebih dahulu baru mengirimkannya ke server WhatsApp. Kemudian, server akan mengenkripsi balasan dan mengirimkannya kembali ke teleponpengguna. Telepon pengguna selanjutnyamendekripsi pesan dan menampilkannya di layar. Bagaimana enkripsi ini terjadi? Dapat ditarik kesimpulan bahwa agar bisa melakukan komunikasi yang aman, telepon dan server harus dapat mendekripsi atau mengenkripsi pesan. Dengan demikian, mereka perlu bertukar token. Token pertama yang ditukar harus terjadi pada saat pengguna mengautentikasi klien WhatsApp di telepon saat pertama kali (ketika WhatsApp mengirim 4 digit angka untuk verifikasi). Ini menunjukkan bahwa telepon penggunasudah memiliki token untuk mengenkripsi / mendekripsi pesan dari server WhatsApp yang berkaitan dengan nomor telepon pengguna. Jadi bagaimana klien web WhatsApp tahu pengguna mana yang sedang berhubungan dengan mereka? Seperti yang telah dijelaskan sebelumnya, tidak ada proses autentikasi password di tempat pertama.Telepon yang digunakan pengguna harus mengautentikasi / menyajikan identitas penggunanya,karena telepondapat mengetahui nomor telepon mana yang sedang digunakan dan juga memiliki token yang membuktikan identitassi pengguna. Klien web ditampilkan dalam bentuk QR-code agar lebih mudah dan rapi.Untuk mengetahui cara kerjanya, asumsikan bahwa kita memiliki setidaknya 3 entitas yang berbeda dalam skema autentikasi. Entitas pertama adal...


Similar Free PDFs