LAYANAN BASIS DATA
REAL-TIMENOSQL
UNTUK KOLABORASI
WEB AUDIO EDITOR
Disusun oleh: Sonny Lazuardi Hermawan (13511029)
Pembimbing: Achmad Imam Kistijantoro, ST, M.Sc, Ph.D
1
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 2
Slide 2 text
Isi Presentasi
2
Pendahuluan
Rancangan
Solusi
Implementasi
Pengujian
Penutup
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 3
Slide 3 text
Pendahuluan
3
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 4
Slide 4 text
TeoriCAP
4
(Brewer, 2004)
ACID
BASE
ACID
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 5
Slide 5 text
Firebase
Layanan basis data real-
time cloud (Firebase)
5
Tanpa
Back
End
Real-
time
Tidak
Open
Source
Firebase is proprietary (Cherniavsky, 2013)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 6
Slide 6 text
PouchDB
Library Javascript untuk basis
data yang tersinkronisasi
6
Offline
State
CouchDB
Long
Polling
PouchDB.com
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 7
Slide 7 text
NoBackend
7
NoBackend adalah sebuah pendekatan untuk
memisahkan aplikasi dengan back-end dengan cara
mengabstraksikan tugas kepada kode front-end.
(Martynus, 2013)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 8
Slide 8 text
Audio Editor
Digital Audio Workstation (DAW)
Garage Band (Apple Inc., 2014)
8
Kolaborasi
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 9
Slide 9 text
(Apple Inc., 2014)
9
Audio Editor
Digital Audio Workstation (DAW)
Kolaborasi
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 10
Slide 10 text
Web Audio Editor
10
Arrangement
Track 1
Track 2
global control
interface
Drum
Machine
Recording
Piece
track
control
panel
Preview
Synth
Web Audio Editor (Monschke, 2014)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 11
Slide 11 text
RumusanMasalah
11
Cluster Basis Data
Server
Session
Client 1
Client 2
Algoritma &
Arsitektur
Sinkronisasi
Penyimpanan
state offline
Pembangunan
Layanan
Basis Data
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 12
Slide 12 text
RumusanMasalah
12
Cluster Basis Data
Server
Session
Pembangunan
Layanan
Basis Data
Chat Client 1
Chat Client 2
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 13
Slide 13 text
Tujuan
13
Membangun layanan
basis data NoSQL
real-time untuk
Web Audio Editor
Membandingkan
kinerja algoritma
dan arsitektur
sinkronisasi efektif
Menganalisis
penyimpanan state
saat offline
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 14
Slide 14 text
Batasan
14
Menggunakan
aplikasi open source
Web Audio Editor
Format data yang
disimpan berbentuk
JSON
Hak akses dan
security tidak
ditangani
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 15
Slide 15 text
RancanganSolusi
15
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 16
Slide 16 text
AlgoritmaSinkronisasi
16
Operational
Transformation
(OT)
Differential
Synchronization
(DS)
Continuous
Replication
(CR)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Konflik
ambil versi terbaru
Slide 17
Slide 17 text
Differential Synchronization
17
(Monschke, 2014)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 18
Slide 18 text
Continuous Replication
18
(Lawson, 2014)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 19
Slide 19 text
ArsitekturLayanan
19
Websocket
(DS)
Long Polling
(CR)
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 20
Slide 20 text
OptimasiLong Polling
20
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Stream
Replication
via Websocket
Slide 21
Slide 21 text
Implementasi
21
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 22
Slide 22 text
Tools & Library
4/22/2015 Sonny Lazuardi/Tugas Akhir II 22
Slide 23
Slide 23 text
LingkunganImplementasi
4/22/2015 Sonny Lazuardi/Tugas Akhir II 23
Digital Ocean
• Lokasi Singapura
• Processor Intel Hex-Core CPUs
• Memory 512MB RAM
• SSD Disk 20GB
• Sistem Operasi Ubuntu 14.04
Slide 24
Slide 24 text
Offline State
24
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 25
Slide 25 text
Client Caching
25
Alur Kerja
Pengguna
mengedit
dokumen
online
Pengguna
mengedit
dokumen
offline
Pengguna
Online
Sinkronisasi
dokumen
State offline
disimpan di klien
secara lokal
ya
tidak
• Replikasi
• Trigger
Update
IndexedDB
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 26
Slide 26 text
Resource Caching
26
4/22/2015
Application
Cache
HTML5
File API
Sonny Lazuardi/Tugas Akhir II
Slide 27
Slide 27 text
API & Service
27
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 28
Slide 28 text
API & Service
28
DB
Get()
Put()
Service
On()
Sync()
Replicate()
Add()
Bind()
Remove()
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Change
Paused
Active
Error
Slide 29
Slide 29 text
Pengujian
29
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 30
Slide 30 text
PengujianFungsional
(demo)
30
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 31
Slide 31 text
PengujianNon Fungsional
31
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 32
Slide 32 text
Kinerja(Arsitektur)
32
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Rata-rata waktu sinkronisasi (ms)
Websocket (DS)
154.81ms
Long Polling (CR)
775.74
ms
Stream Replication
(SR)
40.35ms
Slide 33
Slide 33 text
RencanaPengujian
33
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Maksimum
Pengguna
Konkuren
Maksimum
Request
Memory &
CPU Usage
Slide 34
Slide 34 text
Penutup
34
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 35
Slide 35 text
Kesimpulan Sementara
Layanan ini dapat mendukung
• penyimpanan saat offline state
• sinkronisasi data pada klien
• API dan service pada front-end
Sinkronisasi paling efektif adalah continuous
replication dengan replication stream
35
4/22/2015 Sonny Lazuardi/Tugas Akhir II
Slide 36
Slide 36 text
TERIMA KASIH.
36
4/22/2015 Sonny Lazuardi/Tugas Akhir II