1
PENGEMBANGAN PUSH NOTIFICATION MENGGUNAKAN WEBSOCKET
Andrias Yudianto P1,Eko Sakti P., S.Kom, M.Kom2, Kasyful Amron, ST, M.Sc3 1,2,3Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: 1andriasyp@gmail.com, 2ekosakti@ub.ac.id, 3kasyful@ub.ac.id
Abstrak
Untuk memenuhi kebutuhan masyarakat akan ketersediaan informasi, maka dikembangkan teknologi dengan nama push notification. Teknologi push notification adalah teknologi yang memungkinkan sebuah perangkat (client) mendapatkan informasi berupa notifikasi yang dikirimkan oleh penyedia informasi (server) secara otomatis. Pada umumnya mekanisme pengiriman notifikasi dari server ke client menggunakan push service yang berdiri sendiri (broker) dan menggunakan protokol Hypertext Transfer Protocol (HTTP). Namun masih sering terjadi keterlambatan pengiriman notifikasi dengan menggunakan mekanisme pengiriman tersebut. Broker yang membatasi antar server dan client dalam mekanisme pengiriman notifikasi dinilai tidak efisien. Diperlukan pengembangan lebih lanjut untuk mengatasi dua masalah tersebut. Penelitian ini akan mengembangkan mekanisme pengiriman notifikasi dengan push notification yang akan diimplementasikan dengan menggunakan protokol websocket dan implementasi broker kedalam server. Hasil pengembangan pada penelitian memiliki jumlah maksimal client yang dapat terhubung dengan server sebanyak 1015 client serta rata-rata delay yang didapat dari pengujian pengiriman notifikasi secara massal, pengiriman notifikasi dengan ukuran yang berbeda, dan pengiriman notifikasi menggunakan bandwidth yang berbeda.
Kata kunci: teknologi push, push notification, websocket, server-client model, smartphone
Abstract
To fulfill people needs of the availability of information, push notification technology has been developed. Push notification technology is a technology that allows a device (client) to get the information in the form of notification that delivered by providers of information (server) automatically. Generally the delivery notification mechanism from servers to client is using push service that stands alone (broker) and uses Hypertext Transfer Protocols (HTTP). But still often occurs notification delays in the delivery by using this delivery mechanism. The existence of a broker who stands between servers and client in the delivery of notification mechanism is considered not efficient. Needed further development to overcome the two problems. This research will develop the delivery of notification mechanism with a push system that will be implemented by using websocket protocol and server that implemented with broker. The result of developing in this research can accommodate 1015 client as well as the average delay that obtain from testing mass push notification, testing push notification in different sizes, and testing push notification using different bandwidth.
Keywords: push technology, push notification, websocket, server-client model, smartphone
1. PENDAHULUAN
Kebutuhan masyarakat akan ketersediaan berbagai macam informasi yang dibutuhkan oleh mereka mendorong perkembangan teknologi informasi menjadi semakin pesat. Hal ini didukung dengan bermunculannya beberapa perangkat modern
pendukung seperti smartphone dan komputer. Dengan menggunakan kedua perangkat tersebut, berbagai macam informasi diperoleh dengan cara mencari dan membuka situs atau aplikasi yang memiliki informasi yang dibutuhkan. Akan tetapi, ada beberapa informasi yang harus didapatkan secara cepat dan berkala seperti berita peringatan bencana alam, berita politik, dan lain lain. Sehingga pengguna perangkat harus membuka situs atau aplikasi secara berkala dan hal ini dinilai kurang efisien. Pengguna smartphone dapat menggunakan fitur notifikasi untuk dapat menerima informasi secara cepat dan berkala tanpa harus membuka situs
atau aplikasi terlebh dahulu. Fitur notifikasi ini dikirimkan dari server dengan memakai teknologi
push notification.
Push notification merupakan teknologi pengiriman informasi berupa notifikasi dari penyedia informasi (server) ke sebuah perangkat (client) secara otomatis (Hansen, et al., 2012). Notifikasi yang didapat oleh client adalah berupa notifikasi judul berita dan tautan berita. Sistem kerja dari teknologi ini mengirimkan notifikasi dengan cara langsung mengirimkan notifikasi dari server ke
tersebut. Contoh dari teknologi push ini adalah notifikasi SMS, notifikasi Email, dan lain lain.
Dalam mekanisme pengiriman push notification
terdapat perantara push service yang biasa disebut sebagai broker. Broker berperan sebagai push service yang menjadi perantara antara server dan
client untuk mengatur jalan pengiriman notifikasi dari server ke client yang berbeda-beda (Brüstel & Preuss, 2012). Salah satu contoh dari broker adalah
Google Cloud Messaging (GCM) yang dipakai untuk mengatur pengiriman notifikasi ke perangkat Android (Google Inc., 2011). GCM dapat mengirimkan notifikasi dari server ke client dengan cara client harus mendaftar terlebih dahulu ke server
untuk mendapatkan tanda pengenal yang berguna saat pengiriman notifikasi. Pada umumnya teknologi GCM menggunakan protokol HTTP (Developers, Google, 2016). Namun terdapat kekurangan pada mekanisme tersebut dalam mengirimkan sebuah notifikasi. Sering terjadi keterlambatan dalam proses pengiriman notifikasi. Hal ini disebabkan karena protokol HTTP yang dipakai dalam mekanisme GCM memiliki ukuran header yang besar (Skvorc, et al., 2014). Protokol websocket merupakan salah satu solusi untuk mengatasi masalah tersebut.
Websocket merupakan salah satu protokol pengiriman yang bersifat komunikasi dua arah (Skvorc, et al., 2014). Protokol websocket mulai diterapkan pada HTML 5. Dalam protokol ini, hubungan antara server dan client akan terus terjaga dan terbuka meskipun client dalam keadaan diam atau tidak melakukan aktivitas apapun (idle). Selain itu, protokol websocket memiliki ukuran header
yang kecil daripada protokol HTTP (Skvorc, et al., 2014). Sehingga pengiriman notifikasi dari server ke
client akan lebih cepat.
Berdasarkan masalah diatas, penulis akan melakukan penelitian untuk mengembangkan mekanisme pengiriman push notification
menggunakan protokol websocket dengan server
yang telah diimplementasikan broker, sehingga diharapkan pengiriman notifikasi lebih cepat. Notifikasi yang dikirimkan berupa judul berita dan tautan berita dan akan dilakukan dalam ruang lingkup jaringan lokal. Pengujian akan dilakukan terhadap 3 perangkat dengan sistem operasi Android, 2 perangkat dengan sistem operasi Windows, dan 1 perangkat dengan sistem operasi Linux Ubuntu..
2. TEKNOLOGI PUSH NOTIFICATION
Teknologi push notification adalah teknologi pengiriman informasi berupa notifikasi dari sebuah penyedia informasi (server) kepada penerima informasi (client) tanpa harus ada permintaan informasi dari client. Teknologi ini memungkinkan
client dapat menerima informasi secara berkala dengan cepat. Pada umumnya teknologi ini banyak digunakan untuk pengiriman informasi kepada pengguna smartphone (Amazon, 2010).
Tiap sistem operasi smartphone memiliki teknologi push notification atau broker yang berbeda-beda. Pengiriman notifikasi pada sistem operasi Android diatur oleh Google Cloud Messaging (GCM), perangkat Iphone diatur oleh
Apple Push Notification Service (APNS), dan perangkat Windows Phone diatur oleh Windows Phone Notification System (MPNS) (Brüstel, 2012). Terdapat beberapa kesamaan pada teknologi-teknologi push tersebut, yaitu ketiga teknologi tersebut menggunakan protokol Hypertext Transfer
Protocol (HTTP). HTTP adalah protokol standard yang berfungsi mengatur pengiriman informasi dalam suatu jaringan. Di lain sisi pengguna
smartphone harus mendaftarkan ID smartphone
terlebih dahulu ke masing-masing teknologi push
sebelum mendapatkan informasi secara berkala. Hal ini dibutuhkan agar pengiriman notifikasi dari server
ke client tidak salah tujuan. Mekanisme pengiriman notifikasi secara umum pada ketiga teknologi push
tersebut dapat dilihat pada gambar 1.
Gambar 1. Diagram umum Push Notification
3. PROTOKOL WEBSOCKET
Protokol websocket merupakan protokol yang mulai dikembangkan pada HTML5 (R. Berjon, 2014). Protokol ini adalah hasil peningkatan dari
Hypertext Transfer Protocol (HTTP) dan berdiri pada protokol Transfer Control Protocol (TCP). TCP adalah protokol inti yang mengatur jalan pengiriman informasi dalam internet.
Protokol websocket mampu memberikan layanan komunikasi 2 arah secara bersamaan (bidirectional full duplex). Selain itu websocket
Gambar 2. Proses Handshake protokol websocket
Untuk membuka koneksi websocket, client
harus membuka meminta koneksi jaringan protokol TCP ke server terlebih dahulu. Hypertext Transfer Protocol (HTTP) merupakan protokol standar saat koneksi TCP terbuka. Setelah itu, client meminta
server untuk mengubah protokol HTTP ke protokol
websocket. Setelah server merespon permintaan
client, maka koneksi websocket terbuka. Koneksi
websocket ini akan terus terbuka hingga ada perintah untuk memutuskan koneksi. Pengiriman informasi dari server ke client dalam protokol ini tidak memerlukan lagi pengenalan client, sehingga jumlah ukuran paket yang dikirimkan lebih sedikit (D.Skvorc, 2014). Hal ini sangat efisien untuk mengirimkan informasi secara cepat.
4. PERANCANGAN SERVER DAN CLIENT
Mengacu pada tabel 1 perangkat yang berperan sebagai server adalah perangkat laptop dengan sistem operasi Linux Ubuntu. Sedangkan perangkat yang berperan sebagai client adalah perangkat
smartphone dengan sistem operasi Android dan laptop dengan sistem operasi Windows dan Linux Ubuntu. Implementasi mekanisme pengiriman notifikasi (push service) menggunakan websocket
pada sisi server menggunakan bahasa pemrograman Python. Selain itu implementasi push service pada
server didukung dengan menggunakan framework
Flask dan library Socket.IO. Sedangkan pada sisi
client, terdapat 2 perangkat yang memiliki kebutuhan yang berbeda. Implementasi client push notification menggunakan websocket pada perangkat Android menggunakan framework Cordova dengan bahasa pemrograman Javascript. Sedangkan implementasi client pada perangkat laptop menggunakan bahasa pemrograman Javascript dan tidak menggunakan framework apapun
Gambar 3 menunjukkan bagaimana hubungan antara server, client, dan database. Pada umumnya pengiriman notifikasi dari server ke client
menggunakan perantara yang memiliki push service
atau broker. Akan tetapi rancangan mekanisme push notification pada penelitian ini tidak memakai
perantara broker, karena di dalam server sudah terdapat push service yang berperan sebagai broker
untuk mengatur jalan pengiriman notifikasi. Dalam rancangan ini, terdapat 2 mekanisme utama dalam pengiriman notifikasi, yaitu pengiriman notifikasi ke seluruh client dan pengiriman notifikasi ke seluruh
client yang masuk dalam suatu grup.
Tabel 1. Kebutuhan Sistem Penelitian
Server Client
Laptop Smart
phone Laptop
Bahasa
Pemrograman Python Javascript Javascript Framework Flask Cordova - Library Socket.IO - -
Sistem Operasi
Linux
Ubuntu Android
Windows dan Ubuntu
Gambar 3. Diagram Umum Rancangan Sistem
.
Gambar 4 menjelaskan bagaimana urutan proses pengiriman notifikasi dari server ke seluruh client. Dalam proses pengiriman notifikasi secara
broadcast, admin mengisi kolom judul dan link untuk dijadikan sebagai nilai variable judul dan variable link. Variabel room pada proses broadcast
akan bernilai “all”. Setelah admin memasukkan data-data notifikasi yang dibutuhkan, server akan memproses data-data tersebut. Proses pertama yang dilakukan adalah memasukkan nilai variabel judul, link, dan room kedalam database. Setelah proses tersebut berhasil, proses selanjutnya adalah mengirimkan notifikasi tersebut ke seluruh client
yang terhubung
Gambar 4. Flowchart Pengiriman Notifikasi Ke Seluruh Client
Gambar 5. Flowchart Pengiriman Notifikasi Ke Grup Client
5. PENGUJIAN DAN PEMBAHASAN
Pengujian dalam penelitian ini mencakup pengujian jumlah maksimal client yang dapat terhubung dengan server dan pengujian waktu pengiriman (delay) notifikasi dari server ke client. Pengujian delay pengiriman notifikasi dibagi dalam 3 kondisi pengiriman antara lain melakukan perulangan pengiriman notifikasi, melakukan pengiriman notifikasi dengan packet size yang berbeda-beda, dan melakukan pengiriman notifikasi dengan bandwidth yang berbeda-beda. Untuk dapat melakukan pengujian, dibutuhkan sebuah server dan
beberapa client agar mendapatkan hasil yang bervariasi dan lebih valid. Tabel 2 dan tabel 3 merupakan spesifikasi server dan client yang digunakan dalam pengujian pada penelitian ini.
Tabel 2. Tabel Spesifikasi Server
Jenis
Perangkat Laptop ASUS N43SM
CPU Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (4 CPUs), ~2.5GHz
Harddisk 750 GB
RAM 4096MB RAM
Sistem
Operasi Linux Ubuntu 14.04
Tabel 3. Tabel Spesifikasi Client
Perangkat Jenis
Perangkat Sistem Operasi
Perangkat 1 Smartphone Lenovo A6000
Android Lollipop Ver. 5.0
Perangkat 2
Smartphone Samsung Galaxy S4
Android Kitkat Ver. 4.4.2
Perangkat 3
Smartphone ASUS Zenphone Go
Android Lollipop Ver. 5.0
Perangkat 4 Laptop HP
Compaq CQ420 Ubuntu 14.04
Perangkat 5 Laptop ASUS A43E
Windows 8 Professional 32 Bit
Perangkat 6 Laptop Toshiba Satellite L630
Windows 8.1 Professional 32 Bit
5.1 Pengujian Jumlah Maksimal Client
Tabel 4 menunjukkan hasil pengujian maksimal
client berupa rata-rata jumlah client yang melakukan koneksi dengan server, jumlah maksimal client yang dapat terhubung oleh server, dan rata-rata waktu proses koneksi client ke server. Pada skenario pertama, seluruh client yang melakukan request koneksi dengan server dapat terhubung. Sedangkan pada skenario kedua dan ketiga, jumlah maksimal
client yang dapat terhubung tidak memenuhi rata-rata request client. Pada kedua skenario tersebut,
server menunjukkan tanda error. Hal tersebut disebabkan karena konfigurasi user limit pada server
masih menggunakan jumlah default dari Linux Ubuntu, yaitu sebesar 1024 files. User limit adalah konfigurasi pada Linux Ubuntu untuk membatasi jumlah file yang dapat dibuka termasuk jumlah koneksi.Jika konfigurasi user limit diperbesar, maka jumlah koneksi client yang dapat terkoneksi dengan
Tabel 4. Hasil Pengujian Maksimal Client
5.2 Pengujian Perulangan Pengiriman Notifikasi
Berdasarkan hasil pengujian yang tertera pada tabel 5 dan gambar 6, dapat dibuktikan bahwa protokol websocket dapat memberikan layanan pengiriman yang cepat jika mengirimkan notifikasi dalam jumlah yang banyak. Seluruh perangkat mengalami penurunan yang konsisten pada tiap skenario. Namun faktor kualitas jaringan internet dan perangkat wireless dalam tiap perangkat berpengaruh dalam pengiriman sebuah notifikasi.
Tabel 5. Hasil Pengujian Perulangan Pengiriman Notifikasi
Perangkat
Delay Pengiriman ke
-100 Client
Gambar 6. Grafik perbandingan delay pengujian perulangan pengiriman notifikasi
5.3 Pengujian Pengiriman Dengan Packet Size Yang Berbeda
Packet size berpengaruh terhadap delay
pengiriman notifikasi dari server ke seluruh perangkat. Tabel 7 dan gambar 6 membuktikan bahwa semakin besar ukuran notifikasi yang dikirimkan semakin besar delay pengiriman notifikasi. Perangkat laptop mengalami kenaikan
delay yang konsisten pada tiap skenario. Selain itu terdapat perbedaan delay yang signifikan antara perangkat smartphone dan perangkat laptop. Perbedaan delay tersebut disebabkan karena perbedaan trafik jaringan pada kedua perangkat tersebut. Trafik jaringan pada perangkat smartphone
lebih padat daripada trafik jaringan pada perangkat laptop. Trafik jaringan pada perangkat smartphone
lebih padat karena perangkat smartphone memiliki lebih banyak proses atau aplikasi yang berjalan secara background dan memakai jaringan internet.
Tabel 6. Hasil pengujian pengiriman notifikasi dengan packet size yang berbeda
Perangkat
Gambar 7. Grafik perbandingan delay pengujian pengiriman notifikasi dengan packet size yang
berbeda
5.4 Pengujian Pengiriman Notifikasi pada Bandwidth Yang Berbeda
Pengujian pengiriman notifikasi dengan
bandwidth 1024 Kbps memiliki rata-rata delay yang lebih kecil daripada rata-rata delay pengujian pengiriman notifikasi dengan bandwidth 512 Kbps. Tabel 7 dan gambar 8 menunjukkan rata-rata delay
pengiriman sebuah notifikasi pada seluruh skenario. Mengacu pada gambar tersebut perangkat 1 memiliki stabilitas pengiriman notifikasi paling stabil. Sedangkan perangkat 2 memiliki stabilitas pengiriman yang buruk karena delay pada perangkat tersebut meningkat tajam pada pengujian pengiriman notifikasi dengan bandwidth 512 Kbps. Sehingga dapat disimpulkan semakin kecil bandwidth jaringan semakin besar delay pengiriman sebuah notifikasi dari server ke client.
Tabel 7. Hasil pengujian pengiriman notifikasi dengan bandwidth yang berbeda
Perangkat Delay Dengan Bandwidth -
1024 Kbps(ms) 512 Kbps(ms) Perangkat
1 103.413 105.752 Perangkat
2 94.525 130.660 Perangkat
3 98.692 116.350 Perangkat
4 6.290 16.407 Perangkat
5 6.627 10.583 Perangkat
6 5.276 9.080
Gambar 8. Grafik perbandingan delay pada pengujian pengiriman notifikasi dengan
bandwidth yang berbeda
6. KESIMPULAN
Implementasi protokol websocket pada push notification dalam penelitian ini menggunakan sebuah server yang sekaligus berperan sebagai
broker. Server dan client dihubungkan secara
wireless dengan menggunakan static ip-address dan menggunakan koneksi internet. Client
diimplementasikan pada 3 sistem operasi, yaitu sistem operasi Android, Linux Ubuntu, dan Windows. Sistem operasi Android diimplementasikan pada perangkat smartphone
dengan membuat sebuah web based application. Sedangkan sistem operasi Linux Ubuntu dan Windows diimplementasikan pada perangkat laptop dengan membuat sebuah halaman website.
Pada sisi server didapat kesimpulan bahwa maskimal client yang dapat terhubung dengan server
sebanyak 1015 client karena konfigurasi user limit
masih memakai jumlah default Linux Ubuntu, yaitu sebanyak 1024 files. Pengiriman notifikasi dalam jumlah banyak menyebabkan delay pengiriman notifikasi semakin cepat. Hal ini dibuktikan dengan rata rata-rata delay dalam pengiriman 100 notifikasi adalah 2.391 ms. Sedangkan rata-rata delay dalam pengiriman 200 notifikasi adalah 1.850 ms. Dan rata-rata delay dalam pengiriman 300 notifikasi adalah 1.520 ms. Faktor packet size dari sebuah notifikasi berpengaruh terhadap delay pengiriman sebuah notifikasi. Pada packet size pertama didapat rata-rata delay sebesar 41.994 ms. Pada packet size
kedua didapat rata-rata delay sebesar 47.693 ms. Dan pada packet size ketiga didapat delay sebesar 60.517 ms. Bandwidth sangat berpengaruh pada pengiriman sebuah notifikasi. Pernyataan ini dikuatkan dengan data delay pada bandwidth 1024 Kbps sebesar 52.4705 ms dan delay pada bandwidth
512 sebesar 64.80525 ms.
Terdapat perbedaan delay yang signifikan antara perangkat smartphone dan perangkat laptop. Hal ini disebabkan karena trafik jaringan pada perangkat smartphone lebih padat daripada trafik jaringan pada perangkat laptop.
7. DAFTAR PUSTAKA
Amazon, 2010. Amazon Simple Notification Service. [Online] Available at: http://docs.aws.amazon.com/sns/latest/dg/w elcome.html
Apple Inc., 2011. Local and Push Notification Programming Guide. [Online] Available at: http://developer.apple.com/library/ios/#doc umentation/Net
workingInternet/Conceptual/RemoteNotific ationsPG
Ardiansyah, A., Arifandi, W. & Wicaksono, N., 2010. Keamanan Web Service.
0,000 20,000 40,000 60,000 80,000 100,000 120,000 140,000
Banaei, O. & Khorsandi, S., 2012. A New Quantitative Model for Web Service Security. IEEE.
Brüstel, J. & Preuss, T., 2012. A Universal Push Service for Mobile Devices. 2012 Sixth International Conference on Complex, Intelligent, and Software Intensive Systems.
Budi, R., 2015. Mudah Belajar Python Untuk Aplikasi dan Web. Bandung: Informatika.
Developers, Google, 2016. About GCM Connection Server. [Online] Available at: https://developers.google.com/cloud-messaging/server#role
Ding, J., Song, W. & Zhang, D., 2014. An Approach for Modelling and Analyzing Mobile Push Notification Services. 2014 IEEE International Conference on Services Computing. Alaska.
Djuandi, F., 2010. Web Service Security.
Google Inc., 2011. Android Cloud to Device Messaging Framework. [Online] Available at:
http://code.google.com/intl/de-DE/android/c2dm/index.html
Grinberg, M., 2014. Easy WebSockets with Flask and Gevent. [Online] Available at: http://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent
Hansen, J., Grønli , T.-M. & Ghinea, G., 2012. Cloud to Device Push Messaging on Android: a Case Study. 2012 26th International Conference on Advanced Information Networking and Applications Workshops.
Hickson, I. & et., a., 2014. HTML5: A Vocabulary and Associated APIs for HTML and XHTML. [Online] Available at: http://www.w3.org/TR/html5
Microsoft, n.d. Push Notification for Windows Phone. [Online] Available at: http://msdn.microsoft.com/en-us/library/ff402537(v=VS.92).aspx
Rahardjo, B., 2002. Keamanan Sistem Informasi Berbasis Internet.