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 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