Anda di halaman 1dari 12

MAKALAH

SISTEM KOMPUTASI GRID

Disusun Oleh:
Agus Khumaidi
2215205204

JARINGAN CERDAS MULTIMEDIA


FAKULTAS TEKNIK ELEKTRO
INSTITUT TEKNOLOGI SEPULUH NOPEMBER

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.

2. Menggunakan protokol-protokol dan interface yang standar, terbuka dan serbaguna.


3. Dapat memberikan kualitas layanan (QoS) yang tinggi.

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.

2. Firebase Cloud Messaging


Sebelumnya dikenal sebagai GCM (Google Cloud Messaging), FCM (Firebase Cloud
Messaging) adalah solusi untuk membuat developer mengirimkan dan menerima pesan
dan notifikasi tanpa cost secara cross platform dan dapat diandalkan.

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.

Sistem kerja Web Audio Editor

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.

Gambar 1. Sistem database untuk Web Audio Editor.

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.

Gambar 2. Sound editor pada soundation.com

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.

a. Algoritma Operational Transformation (OT).


Algoritma ini adalah algoritma yang paling populer untuk membuat sebuah
sistem kolaborasi pada dokumen. Pengguna dapat mengakses dan mengubah
sebuah dokumen secara kolaboratif dengan pengguna lainnya pada waktu
bersamaan [5]. Dengan algoritma OT, klien dan server dapat mencapai
dokumen yang sama pada akhirnya dengan menyelesaikan operasi yang
konflik sehingga konvergensinya terjamin. Meskipun demikian, algoritma
lebih efektif untuk menangani dokumen berbentuk teks karena sifat
transformasinya.

b. Algoritma Differential Synchronization (DS)


Differential Syncrhonization (DS) adalah algoritma yang stabil dan cocok
untuk aplikasi interaktif. Pada algortima ini, server dan klien mulai dengan
versi yang sama dari dokumen. Keduanya lalu membuat salinan dari dokumen
yang akan bertindak sebagai shadow document di klien maupun server [6].

c. Algoritma Continuous Replication


Continuous replication adalah salah satu fitur yang disediakan oleh CouchDB.
Replikasi artinya melakukan sinkronisasi dua salinan dari basis data yang
sama sehingga pengguna dapat mempunyai akses dengan latensi rendah

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.

Mekanisme Komunikasi Real-Time.


Beberapa jenis metode komunikasi yang populer untuk mendukung
komunikasi secara real-time adalah sebagai berikut.
a. Mekanisme Websocket
Komunikasi ini bersifat full-duplex atau dua arah, jadi dua pihak dapat
mengirim pesan secara bersamaan.
b. Mekanisme Long Polling
Long polling adalah metode komunikasi yang mempunyai skenario klien
melakukan permintaan informasi dari server dan membuaka koneksi selama
selang waktu tertentu. Mekanisme ini tergolong sebagai mekanisme yang
tradisional sehingga memakan banyak resource dan waktu sehingga tidak
efektif.

Desain Sistem dan infrastruktur


Aplikasi WAE menggunakan basis data CouchDB yang terhubung dengan server
yang menggunakan framework ExpressJS dan berjalan di atas platform NodeJS.
Pada saat klien membuka web, aplikasi akan mencoba melakukan koneksi web
socket ke server NodeJS untuk mendapatkan data terbaru dari basis data.
Representasi data yang digunakan dalam aplikasi hanya berupa key dari file
tersebut dan offset posisi dari piece tersebut dalam format JSON. Sinkronisasi
data dilakukan baik dalam sisi klien maupun server. Skema arsitektur WAE
Skema arsitektur aplikasi Web Audio Editordapat dilihat pada gambar 3 berikut.

Gambar 3. Skema arsitektur aplikasi Web Audio Editor

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.

Gambar 4. Rancangan API real-time


Untuk menangani offline state, digunakan library PouchDB. PouchDB adalah library basis data dalam
browser yang open-source untuk melakukan sinkronisasi dari klien dengan basis data CouchDB
sehingga pengguna dapat menggunakan aplikasi meskipun dalam keadaan offline [7]. PouchDB
menggunakan IndexedDB untuk menyimpan data pada klien secara lokal sehingga setiap perubahan
pada data akan tetap tersimpan secara lokal pada klien.
Dari ketiga algoritma sinkronisasi, hanya dipilih DS dan CR untuk percobaan ini karena OT lebih cocok
untuk dokumen yang berbasiskan teks. Algoritma DS dan CR pada dasarnya berbeda karena CR
membuat salinan secara menyeleluruh sedangkan DS hanya membuat salinan ke shadow saja

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.

Gambar 5. Rancangan arsitektur umum solusi.

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.

Gambar 5. Alur penanganan konflik Web Audio Editor

4. Kesimpulan

Layanan basis data real-time NoSQL dapat diimplementasikan dalam bentuk


API untuk frontend sehingga dapat mengakses data yang tersinkronisasi antar
semua klien. Dengan layanan ini, pengembang aplikasi dapat menggunakan
backend yang generik sehingga dapat fokus mengembangkan fitur dan layanan
ke end-user.

Layanan basis data dengan metode continuous replication yang dioptimalisasi


dengan replication stream ini dapat meningkatkan kinerja sinkronisasi data antar
klien sampai tiga kali lipat lebih cepat dibandingkan websocket dengan
differential synchronization. Layanan ini memiliki kebutuhan resource yang
lebih kecil untuk klien dan server. Layanan ini juga menangani konflik dengan
melakukan percabangan dokumen. Aplikasi dengan layanan basis data ini dapat
menyimpan state pengguna pada klien secara lokal sehingga ketika pengguna
offline. Data pengeditan yang dilakukan saat offline tidak akan hilang dan akan
disinkronisasikan saat kembali online.

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.

[7] PouchDB. (2014, April). Replication. Diambil kembali dari PouchDB:


http://pouchdb.com/guides/replication.html

Anda mungkin juga menyukai