Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Sidang] Layanan Basis Data Real Time NoSQL untuk Kolaborasi Web Audio Editor

[Sidang] Layanan Basis Data Real Time NoSQL untuk Kolaborasi Web Audio Editor

C918bcbfa8df32567636c2d125a34fa1?s=128

Sonny Lazuardi

June 10, 2015
Tweet

Transcript

  1. 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
  2. Isi Presentasi 2 Pendahuluan Rancangan Solusi Implementasi Pengujian Penutup 6/10/2015

    Sonny Lazuardi/Tugas Akhir II
  3. Pendahuluan 3 6/10/2015 Sonny Lazuardi/Tugas Akhir II

  4. TeoriCAP 4 (Brewer, 2004) ACID BASE ACID 6/10/2015 Sonny Lazuardi/Tugas

    Akhir II
  5. 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
  6. 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
  7. Audio Editor Digital Audio Workstation (DAW) Garage Band (Apple Inc.,

    2014) 7 Kolaborasi 6/10/2015 Sonny Lazuardi/Tugas Akhir II
  8. (Apple Inc., 2014) 8 Audio Editor Digital Audio Workstation (DAW)

    Kolaborasi 6/10/2015 Sonny Lazuardi/Tugas Akhir II
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. RancanganSolusi 14 6/10/2015 Sonny Lazuardi/Tugas Akhir II

  15. 15 6/10/2015 Sonny Lazuardi/Tugas Akhir II Struktur Data

  16. AlgoritmaSinkronisasi 16 Operational Transformation (OT) Differential Synchronization (DS) Continuous Replication

    (CR) 6/10/2015 Sonny Lazuardi/Tugas Akhir II
  17. Differential Synchronization 17 (Monschke, 2014) 6/10/2015 Sonny Lazuardi/Tugas Akhir II

  18. Continuous Replication 18 (Lawson, 2014) 6/10/2015 Sonny Lazuardi/Tugas Akhir II

  19. 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
  20. ArsitekturLayanan 20 Websocket (DS) Long Polling (CR) 6/10/2015 Sonny Lazuardi/Tugas

    Akhir II
  21. Implementasi 21 6/10/2015 Sonny Lazuardi/Tugas Akhir II

  22. Tools & Library 6/10/2015 Sonny Lazuardi/Tugas Akhir II 22

  23. 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
  24. LayananBasis Data 24 6/10/2015 Sonny Lazuardi/Tugas Akhir II 1

  25. 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
  26. 26 6/10/2015 Sonny Lazuardi/Tugas Akhir II CippyDB CippyDB adalah layanan

    basis data real-time untuk server CouchDB http://cippydb.sonnylab.com/
  27. 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()
  28. Algoritma& Metode Sinkronisasi 28 6/10/2015 Sonny Lazuardi/Tugas Akhir II 2

  29. 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
  30. OptimalisasiLong Polling 30 6/10/2015 Sonny Lazuardi/Tugas Akhir II Replication Stream

    via Websocket
  31. Offline State 31 6/10/2015 Sonny Lazuardi/Tugas Akhir II 3

  32. 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
  33. Resource Caching 33 6/10/2015 Application Cache HTML5 File API Sonny

    Lazuardi/Tugas Akhir II
  34. Pengujian 34 6/10/2015 Sonny Lazuardi/Tugas Akhir II Fungsional Non Fungsional

  35. Metode PengujianFungsional 35 6/10/2015 Sonny Lazuardi/Tugas Akhir II Pengujian Konkuren

    dengan Browser
  36. PengujianFungsional 36 6/10/2015 Sonny Lazuardi/Tugas Akhir II Kasus Uji 14

     14 Lulus Pengeditan Track & Piece Chatting Playback Konflik
  37. PengujianKonkuren 37 6/10/2015 Sonny Lazuardi/Tugas Akhir II browser 2 5

    browser 20 browser Liveness vs Safety
  38. PengujianNon Fungsional 38 6/10/2015 Sonny Lazuardi/Tugas Akhir II Kinerja Sinkronisasi

    Penggunaan Resource
  39. MetodePengujian 39 6/10/2015 Sonny Lazuardi/Tugas Akhir II Non Fungsional Kinerja

    Sinkronisasi 9x Rata-rata Penggunaan Resource Developer Tools Linux Process Manager
  40. 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)
  41. 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 (%)
  42. 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
  43. Penutup 43 6/10/2015 Sonny Lazuardi/Tugas Akhir II

  44. 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
  45. 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
  46. TERIMA KASIH. 46 6/10/2015 Sonny Lazuardi/Tugas Akhir II