Disusun Oleh:
Agus Khumaidi
2215205204
2016
1. Topik Pembahasan:
Tugas:
Buatlah makalah pendek tentang sejenis layanan GRID yang bersifat komersial dengan
struktur layanan yang cukup rumit seperti contoh Microsoft Azure untuk Machine
Learning platform
Topik yang akan dibahas pada makalah ini adalah:
Layanan Basis Data Real-Time NoSQL (Firebase dan CouchDB) untuk Kolaborasi
Web Audio Editor.
2. Tinjauan Pustaka
A. Komputasi Grid
Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak
komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan
komputasi dalam skala besar[1]. Komputasi grid memungkinkan organisasi virtual
(virtual organization) untuk menggunakan secara bersama sumber daya yang tersebar
secara geografis dengan berasumsi ketidakhadiran dari lokasi terpusat, kontrol terpusat,
pengetahuan menyeluruh terhadap sumber daya dan hubungan kepercayaan. Organisasi
virtual dapat meliputi suatu departemen dari suatu perusahaan yang berada pada satu
lokasi yang sama sampai dengan kumpulan besar orang-orang dari berbagai organisasi
yang tersebar diberbagai belahan bumi. Komputasi grid memiliki tiga karakteristik
penting yaitu [2]:
1. Pemakaian bersama sumber daya yang terkoordinasi (setara) yang tidak berada di
bawah suatu kendali terpusat.
Pokok pertama berasal dari sifat alami grid dimana pemakai dan sumber daya
berada pada daerah administrasi yang berbeda. Pokok kedua adalah penting untuk
membangun secara dinamis susunan/struktur pemakaian bersama sumber daya dengan
orang/kelompok apa saja yang saling berkepentingan dan memungkinkan penyediaan
pelayanan dan fungsi serba-guna. Pokok ketiga berhubungan dengan penyediaan
jumlah kemampuan komputasi sehingga besarnya utilitas dari sistem perpaduan adalah
cukup berarti dibandingkan dengan utilitas dari komponen penyusunnya. Pemakaian
bersama sumber daya yang tersebar diberbagai tempat terpisah yang diatur di bawah
administrasi yang berbeda adalah bukan masalah yang mudah. Permasalahanpermasalahan yang harus dijawab dalam melaksanakan pemakaian bersama tersebut
misalnya, bagaimana cara memilih sumber daya komputasi yang diinginkan? untuk
berapa lama sumber daya tersebut dapat digunakan? siapa yang dapat menggunakan
sumber daya tersebut? bagaimana cara komunikasi antar sumber daya? dan lain
sebagainya. Komputasi grid memungkinkan kita untuk mengakses berbagai jenis
sumber daya dari berbagai jenis organisasi dengan cara menyediakan protokol,
teknologi dan metodologi yang dapat menjawab semua pertanyaanpertanyaan diatas.
B. FireBase
Firebase adalah penyedia layanan cloud dengan backend sebagai servis yang
berbasis di San Fransisco, California. Perusahaan ini membuat sejumlah produk untuk
pengembangan aplikasi mobile ataupun web. Firebase di dirikan oleh Andrew Lee dan
James Tamplin pada tahun 2011 dan diluncurkan dengan cloud database secara realtime
di tahun 2012. Produk utama dari Firebase yakni suatu database yang menyediakan API
untuk memungkinkan pengembang menyimpan dan mensinkronisasi data lewat
multiple client. Perusahaan ini diakusisi oleh Google pada Oktober 2014.
Firebase adalah layanan yang memungkinkan pengembang membuat API untuk
disinkronisasikan untuk client yang berbeda beda dan disimpan pada cloudnya
Firebase.
Firebase
memiliki
banyak
library
yang
memungkinkan
untuk
mengintegrasikan layanan ini dengan Android, iOS, Javascript, Java, Objective-C dan
Node.JS. Database Firebase juga bersifat bisa diakses lewat REST API dan data binding
untuk beberapa framework Javascript seperti halnya AngularJS, ReactJS, Ember.JS,
dan Backbone.JS. REST API tersebut menggunakan protokol Server-Sent Event
dengan membuat koneksi HTTP untuk menerima push notification dari server.
Pengembang juga bisa menggunakan database ini untuk mengamankan data mereka
menggunakan server Firebase dengan rules yang ada. Saat ini Firebase menyediakan
beberapa jasa. Berikut jasa jasa yang disediakan oleh Firebase[3] :
1. Firebase Analytics
Aplikasi solusi pengukur yang menyediakan insight pengunaan applikasi dan user
engangement.
3. Firebase Auth
Jasa yang dapat mengautentikasi pengguna. Fitur ini didukung dengan login beberapa
sosial media terkenal seperti Facebook, Github, Twitter, dan Google. Sebagai tambahan
juga terdapat sistem manajemen user dimana pengguna dapat mengaktifkan
autentifikasi dengan email dan password yang tersimpan di Firebase.
4. Realtime Database
Firebase menyediakan database realtime dan backendnya sebagai fitur. Fiturnya
meliputi API yang memperbolehkan data aplikasi dapat di sinkronisasikan antar klien
dan tersimpan dalam Firebase cloud. Firebase menyediakan library yang
memperbolehkan integrasi dengan aplikasi Android, iOS, JavaScript, Java, ObjectiveC and Node.js. Database juga dapat diakses melalui REST API dan binding untuk
beberapa framework JavaScript seperti AngularJS, React, Ember.js and Backbone.js.
REST API menggunakan Server-Sent Events protocol, yang dimana merupakan API
untuk membuat koneksi HTTP untuk menerima push notificationdari server.
5. Firebase Storage
Firebase Storage menyediakan keamanan upload file dan download, terlepas dari
kuliatas jaringannya. Developer dapat menggunakan ini untuk menyimpan gambar,
suara, video, atau konten pengguna lainnya. Firebase Storage di bantu oleh Google
Cloud Storage, suatu jasa penyimpanan yang kuat, simpel , dan efektif biaya.
3. Pembahasan.
Kebutuhan informasi yang cepat, skala besar dan selalu tersedia membuat kemunculan
jenis basis data yang lebih mengutamakan skalabilitas dan ketersediaan seperti NoSQL.
Saat ini, salah satu basis data NoSQL yang sering digunakan adalah document-oriented
NoSQL. Salah satu aplikasi yang perlu memanfaatkan data secara real-time adalah Web
Audio Editor (WAE). Diperlukan API untuk dapat mengakses basis data secara realtime untuk mendukung kolaborasi online. Beberapa masalah pada aplikasi WAE antara
lain perbandingan algoritma sinkronisasi terhadap kinerja aplikasi, penanganan konflik
antar pengguna, dan penyimpanan state data saat pengguna offline. Firebase adalah
salah satu layanan NoSQL cloud database yang dapat menyediakan data yang
tersinkronisasi dengan semua klien secara real-time. Gambar 1 menunjukkan
bagaimana firebase bekerja.
CippyDB merupakan layanan basis data real-time berbentuk API yang dapat
digunakan pengembang aplikasi untuk mengakses data pada CouchDB. Makalah ini
juga mencakup perbandingan kinerja, dan pengujian API untuk aplikasi WAE.
Basis data NoSQL sangat cocok untuk lingkungan yang terdistribusi. Database
Management System (DBMS) yang berbasis NoSQL pun mulai bermunculan. NoSQL
juga dikembangkan untuk menjadi solusi terhadap basis data yang menjamin
konsistensi, availability, atau partition tolerance. NoSQL sendiri terdiri dari beberapa
jenis seperti keyvalue, document-oriented, dan column-oriented. Setiap jenis memiliki
kelebihan dan kekurangannya masing-masing. Jenis NoSQL yang sering digunakan
adalah document-oriented. Terdapat beberapa DBMS yang populer di lingkungan open
source seperti CouchDB dan MongoDB. DBMS CouchDB sudah menyediakan
Application Programming Interface (API) yang menyediakan akses ke basis data untuk
menulis, membaca, dan menghapus data.
Kelebihan dari basis data CouchDB dapat melakukan pencarian data dengan
metode Map Reduce sehingga waktu pencarian lebih singkat dan efektif. Layanan API
mulai berkembang dari operasi sederhana tersebut menjadi layanan real-time yang
dapat menangani sinkronisasi data antar klien. Firebase adalah salah satu layanan
NoSQL cloud database yang dapat menyediakan data yang tersinkronisasi dengan
semua klien secara real-time. Namun, sayangnya Firebase tidak open source sehingga
pengembang aplikasi harus bergantung pada server Firebase. Dengan adanya layanan
seperti ini, banyak aplikasi kolaboratif berbasis web yang muncul salah satunya adalah
Web Audio Editor (WAE). Salah satu aplikasi sound editor web online adalah
soundation.com, Gambar 2 menunjukkan tampilan editor dari halaman web.
WAE adalah salah satu audio editor berbasis web yang dapat membuat musik atau lagu dari
browser dengan berkolaborasi bersama anggota lain atau teman [4]. WAE bersifat open
source. WAE saat ini menggunakan basis data Firebase, CouchDB, ExpressJS di atas NodeJS
pada sisi server, dan AngularJS pada sisi klien. Terdapat tiga komponen utama WAE yaitu
Arrangement, Masalah yang masih terdapat pada aplikasi WAE antara lain kinerja
sinkronisasi data, penanganan konflik dan penyimpanan data pada saat pengguna offline.
Algoritma Sinkronisasi
Dalam proses kolaborasi dokumen diperlukan algoritma sinkronisasi agar semua klien
mendapatkan state yang sama pada setiap operasi. Dalam menyelesaikan masalah
sinkronisasi ada beberapa algoritma yang dapat digunakan antara lain operational
transformation, differential synchronization, dan continuous replication.
terhadap data di mana mereka berada [7]. Basis data ini dapat berada pada
server yang sama maupun server yang berbeda. Jika pengguna melakukan
perubahan terhadap suatu salinan dari basis data, replikasi akan mengirim
perubahan ini juga ke salinan yang lain.
Berdasarkan skema arsitektur tersebut dan layanan API real-time lain seperti Firebase,
dibuatlah rancangan API yang dapat mendukung akses data secara real-time. Rancangan API
secara garis besar dapat dilihat pada gambar dibawah ini.
sehingga tidak dapat dikombinasikan. CR dapat dioptimasi agar kinerjanya lebih baik. Berdasarkan
rancangan API dan arsitektur yang sudah ada, dibuatlah arsitktur solusi yang akan menunjukkan
hubungan antara API dan arsitektur WAE yang sudah ada. API ini diberi nama CippyDB dan sudah
dibungkus agar dapat digunakan untuk aplikasi real-time lainnya. Arsitektur umum sistem solusi dapat
dilihat pada gambar berikut ini.
Berdasarkan gambar di atas, API CippyDB menggabungkan AngularJS dan PouchDB pada suatu node
klien. Sehingga API ini tidak lagi membutuhkan server untuk sinkronisasi jika dibandingkan dengan
arsitektur sebelumnya. Klien dapat langsung mengakses API ke basis data remote CouchDB secara
langsung.
Untuk menangani masalah konflik, dilakukan percabangan dokumen sehingga pengguna dapat
memilih versi dokumen yang akan dilanjutkan jika terjadi konflik. Alur penanganan konflik secara
umum dapat dilihat pada gambar berikut.
4. Kesimpulan
Daftar Pustaka.
[1] Komputasi Grid, Wikipedia Bahasa Indonesia, ensiklopedia bebas. From
http://id.wikipedia.org/wiki/Komputasi_grid
[2] FOSTER, I., What is the Grid? A Three Point Checklist, GRIDtoday, Vol. 1, No. 6., 22
July 2002.
[3] http://cyberits.co.id/index.php/fe/article/getArticleDetail/127
[4] Monschke, J. (2014). Building a Collaborative Music Production Environment Using
Emerging Web Standards. Berlin: International Media and Computing
[5] Ellis, C. A., & Gibbs, S. J. (1989). Concurrency Control in Groupware System. ACM.
[6] Fraser, N. (2009). Differential Synchronization. New York: ACM.