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
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 2
Slide 2 text
Isi Presentasi
2
Pendahuluan
Rancangan
Solusi
Implementasi
Pengujian
Penutup
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 3
Slide 3 text
Pendahuluan
3
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 4
Slide 4 text
TeoriCAP
4
(Brewer, 2004)
ACID
BASE
ACID
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 5
Slide 5 text
CouchDB
Basis data NoSQL berbasiskan model
dokumen schema-free mengutamakan
Availability dan Partition-Tolerance
(Aderson, Lehnardt, & Slater, 2010)
5
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Eventually
Consistent
Slide 6
Slide 6 text
Firebase
Layanan basis data real-time cloud
6
Tanpa
Back
End
Real-
time
Tidak
Open
Source
Firebase is proprietary (Cherniavsky, 2013)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 7
Slide 7 text
Audio Editor
Digital Audio Workstation (DAW)
Garage Band (Apple Inc., 2014)
7
Kolaborasi
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 8
Slide 8 text
(Apple Inc., 2014)
8
Audio Editor
Digital Audio Workstation (DAW)
Kolaborasi
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 9
Slide 9 text
Web Audio Editor
9
Arrangement
Track 1
Track 2
global control
interface
Drum
Machine
Recording
Piece
track
control
panel
Preview
Synth
Web Audio Editor (Monschke, 2014)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 10
Slide 10 text
RumusanMasalah
10
Cluster Basis Data
Server
Session
Client 1
Client 2
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Pembangunan
Layanan
Basis Data
1
Penyimpanan
state offline
3
Algoritma &
Metode
Sinkronisasi
2
Slide 11
Slide 11 text
RumusanMasalah
11
Chat Client 1
Chat Client 2
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Cluster Basis Data
Server
Session
Pembangunan
Layanan
Basis Data
1
Slide 12
Slide 12 text
Tujuan
12
Membangun layanan
basis data NoSQL
real-time untuk
Web Audio Editor
Membandingkan
kinerja algoritma
dan penanganan
konflik
Menganalisis
penyimpanan state
saat offline
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 13
Slide 13 text
Batasan
13
Format & Codec
audio hanya yang
didukung oleh
browser
Format data yang
ditangani berbentuk
JSON
Hak akses dan
security tidak
ditangani
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 14
Slide 14 text
RancanganSolusi
14
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 15
Slide 15 text
15
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Struktur
Data
Slide 16
Slide 16 text
AlgoritmaSinkronisasi
16
Operational
Transformation
(OT)
Differential
Synchronization
(DS)
Continuous
Replication
(CR)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 17
Slide 17 text
Differential Synchronization
17
(Monschke, 2014)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 18
Slide 18 text
Continuous Replication
18
(Lawson, 2014)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 19
Slide 19 text
PenangananKonflik
19
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Pengguna A
offline
Pengguna A
mengedit
dokumen
Dokumen
versi lokal A
Dokumen
versi lokal A
digabung
Dokumen
versi lokal B
konflik
Dokumen
versi A
Dokumen
versi B
Dokumen
awal
Pengguna B
offline
Pengguna B
mengedit
dokumen
Dokumen
versi lokal B
online
Slide 20
Slide 20 text
ArsitekturLayanan
20
Websocket
(DS)
Long Polling
(CR)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 21
Slide 21 text
Implementasi
21
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 22
Slide 22 text
Tools & Library
6/10/2015 Sonny Lazuardi/Tugas Akhir II 22
Slide 23
Slide 23 text
LingkunganImplementasi
6/10/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
LayananBasis Data
24
6/10/2015 Sonny Lazuardi/Tugas Akhir II
1
Slide 25
Slide 25 text
NoBackend
25
NoBackend adalah sebuah pendekatan untuk
memisahkan aplikasi dengan backend dengan cara
mengabstraksikan tugas kepada frontend.
(Martynus, 2013)
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 26
Slide 26 text
26
6/10/2015 Sonny Lazuardi/Tugas Akhir II
CippyDB
CippyDB adalah layanan basis data
real-time untuk server CouchDB
http://cippydb.sonnylab.com/
Slide 27
Slide 27 text
API & Service
27
Pouch
DB
Get()
Put() Cippy
On()
Sync()
Replicate()
Add()
BindTo()
Remove()
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Change
Paused
Active
Error Clear()
Remove()
Save()
Slide 28
Slide 28 text
Algoritma& Metode
Sinkronisasi
28
6/10/2015 Sonny Lazuardi/Tugas Akhir II
2
Slide 29
Slide 29 text
PouchDB
Library Javascript untuk basis data
CouchDB yang tersinkronisasi
29
Offline
State
CouchDB
Long
Polling
PouchDB.com
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 30
Slide 30 text
OptimalisasiLong Polling
30
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Replication Stream
via Websocket
Slide 31
Slide 31 text
Offline State
31
6/10/2015 Sonny Lazuardi/Tugas Akhir II
3
Slide 32
Slide 32 text
Client Caching
32
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
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 33
Slide 33 text
Resource Caching
33
6/10/2015
Application
Cache
HTML5
File API
Sonny Lazuardi/Tugas Akhir II
Slide 34
Slide 34 text
Pengujian
34
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Fungsional
Non
Fungsional
Slide 35
Slide 35 text
Metode
PengujianFungsional
35
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Pengujian Konkuren
dengan Browser
Slide 36
Slide 36 text
PengujianFungsional
36
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Kasus Uji
14
14
Lulus
Pengeditan
Track & Piece
Chatting Playback Konflik
Slide 37
Slide 37 text
PengujianKonkuren
37
6/10/2015 Sonny Lazuardi/Tugas Akhir II
browser
2 5
browser
20
browser
Liveness vs Safety
Slide 38
Slide 38 text
PengujianNon Fungsional
38
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Kinerja
Sinkronisasi
Penggunaan
Resource
Slide 39
Slide 39 text
MetodePengujian
39
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Non Fungsional
Kinerja Sinkronisasi
9x
Rata-rata
Penggunaan Resource
Developer
Tools
Linux
Process
Manager
Slide 40
Slide 40 text
Kinerja(Arsitektur)
40
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Rata-rata waktu sinkronisasi (ms)
154.81
775.74
40.35
0
100
200
300
400
500
600
700
800
900
Websocket (DS) Long Polling (CR) Replication Stream (RS)
Slide 41
Slide 41 text
PenggunaanResource
41
6/10/2015 Sonny Lazuardi/Tugas Akhir II
pada server
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0 1 5 10 20
WAE
CippyDB
Penggunaan CPU
12
12.5
13
13.5
14
14.5
15
15.5
16
16.5
17
0 1 5 10 20
WAE
CippyDB
Penggunaan Memori
Jumlah Klien Konkuren
Jumlah Klien Konkuren
Persentase (%)
Persentase (%)
Slide 42
Slide 42 text
PenggunaanResource
42
6/10/2015 Sonny Lazuardi/Tugas Akhir II
pada klien
Web Audio Editor Cippy Editor
Total Ukuran File JS
969 KB Total Ukuran File JS
616 KB
Jumlah File JS
3 Jumlah File JS
7
Waktu Muat
1.84 s Waktu Muat
1.02 s
GPU Memory
3.3 MB GPU Memory
3.0 MB
Slide 43
Slide 43 text
Penutup
43
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Slide 44
Slide 44 text
Kesimpulan
44
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Layanan API
real-time
untuk frontend
Kinerja terbaik
Continuous Replication
dengan optimalisasi
Replication Stream
Penyimpanan state
offline pada klien
dengan IndexedDB
Slide 45
Slide 45 text
Saran
45
6/10/2015 Sonny Lazuardi/Tugas Akhir II
Penanganan
Offline State
dengan basis data
selain IndexedDB
Optimalisasi
Render
Fitur security untuk
authentication dan
authorization
Slide 46
Slide 46 text
TERIMA KASIH.
46
6/10/2015 Sonny Lazuardi/Tugas Akhir II