Slide 1

Slide 1 text

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