Tugas 4 : High Level Design

Nama  : Robby Ulung Pambudi
NRP    : 5025211042
Kelas  : PPL - A



High Level Design 

     Tugas yang diberikan pada mata kuliah Perancangan Perangkat Lunak (A), yaitu terkait High Level Design. Berikut merupakan dokumentasinya :




Gambaran Umum

Tujuan utama Spotify adalah menyajikan musik dengan cepat dan efisien, seimbang antara kecepatan dan efisiensi biaya. Untuk mencapai hal ini, mereka menggunakan sistem hybrid yang menggabungkan model peer-to-peer (P2P) dan client-server, bersama dengan mekanisme caching yang canggih dan machine learning untuk rekomendasi.

High-Level Design Spotify

Persyaratan (Requirements)

  1. Kecepatan dan Efisiensi:

    • Pemutaran musik yang cepat dengan latensi rendah.
    • Penggunaan sumber daya yang efisien untuk mengurangi biaya operasional.
  2. Skalabilitas:

    • Sistem harus mampu menangani jutaan pengguna secara bersamaan.
    • Mudah diperluas sesuai pertumbuhan pengguna.
  3. Reliabilitas:

    • Layanan yang handal dengan waktu henti minimal.
    • Fallback ke server jika jaringan P2P gagal.
  4. Pengalaman Pengguna:

    • Pemutaran musik yang lancar tanpa jeda.
    • Rekomendasi musik yang akurat dan dipersonalisasi.
  5. Keamanan:

    • Perlindungan data pengguna dan hak cipta musik.

Estimasi Kapasitas

  1. Pengguna:

    • Awalnya dirancang untuk mendukung hingga 1 juta pengguna aktif harian.
    • Dapat diskalakan hingga 10 juta pengguna aktif harian.
  2. Data:

    • Penyimpanan untuk lebih dari 30 juta lagu.
    • Setiap lagu rata-rata berukuran 5 MB.
  3. Server:

    • Awalnya memerlukan sekitar 100 server untuk mendukung basis pengguna awal.
    • Dapat diskalakan dengan menambahkan lebih banyak server sesuai kebutuhan.
  4. Jaringan P2P:

    • Mendukung transfer data antar pengguna dengan latensi rata-rata 265 milidetik.

High Level Design

  1. Sistem Hybrid:

    • Menggabungkan model Peer-to-Peer (P2P) dan Client-Server untuk memaksimalkan efisiensi dan kecepatan.
  2. Caching dan Pre-fetching:

    • Caching lokal untuk lagu yang sering diputar.
    • Pre-fetching lagu berikutnya untuk mengurangi jeda antara lagu.
  3. Rekomendasi Berbasis Machine Learning:

    • Algoritma rekomendasi yang mempelajari preferensi pengguna untuk menyediakan saran musik yang akurat.

System Architecture

  1. Komponen Utama:

    • Client Devices: Aplikasi Spotify di berbagai platform (desktop, mobile, web).
    • Peer-to-Peer Network: Sistem yang menghubungkan perangkat pengguna untuk berbagi file musik.
    • Central Servers: Server yang menyediakan cadangan ketika P2P tidak mencukupi.
  2. Arsitektur Jaringan:

    • Load Balancer: Mendistibusikan lalu lintas jaringan secara efisien.
    • Caching Servers: Menyimpan lagu yang sering diputar untuk akses cepat.
    • Database Servers: Menyimpan metadata lagu dan informasi pengguna.
  3. Workflow:

    • Request Handling: Permintaan lagu dikirim melalui aplikasi pengguna.
    • P2P Lookup: Sistem mencari lagu di jaringan P2P.
    • Fallback Mechanism: Jika lagu tidak ditemukan di P2P, permintaan dialihkan ke server pusat.
    • Pre-fetching: Lagu berikutnya mulai diunduh 30 detik sebelum lagu saat ini berakhir.

Data Model Design

  1. Tabel Pengguna (Users):

    • user_id: Primary Key
    • username
    • email
    • password_hash
    • preferences: Data preferensi musik pengguna
  2. Tabel Lagu (Songs):

    • song_id: Primary Key
    • title
    • artist_id
    • album_id
    • genre
    • duration
    • file_location: Lokasi file musik di server atau P2P
  3. Tabel Artis (Artists):

    • artist_id: Primary Key
    • name
    • bio
    • genre
  4. Tabel Album (Albums):

    • album_id: Primary Key
    • title
    • release_date
    • artist_id
  5. Tabel Pemutaran (Playback):

    • playback_id: Primary Key
    • user_id
    • song_id
    • timestamp
    • source: Menunjukkan apakah lagu diputar dari cache, P2P, atau server

Dengan desain ini, Spotify mampu memberikan layanan streaming musik yang cepat, andal, dan efisien, sambil menjaga biaya operasional tetap rendah dan pengalaman pengguna yang memuaskan.


Komentar

Postingan populer dari blog ini

EAS PPL

ETS PPL - Robby Ulung Pambudi

Tugas 7 : Komponen Desain Sistem