Back to IF3130 Sistem Paralel dan Terdistribusi

Topic

Questions/Cues

  • Apa inti dari sistem terdistribusi?

  • Apa itu layer low-level?

  • Apa itu middleware layer?

  • 6 fungsi middleware?

  • Beda Transient vs Persistent?

  • Beda Asynchronous vs Synchronous?

  • 3 tempat sinkronisasi?

  • Kekurangan komunikasi sinkronus C/S?

Reference Points

  • Slides 1-8 (11 - IF3130-11-Communication-2022.pdf)

  • Kuliah Komunikasi

1. Inti Komunikasi

Interprocess communication (IPC) adalah jantung dari semua sistem terdistribusi. Komunikasi ini selalu didasarkan pada message passing (pengiriman pesan) level rendah yang disediakan oleh jaringan di bawahnya.

2. Low-Level Layer

Antarmuka (interface) terbawah yang digunakan oleh sebagian besar sistem terdistribusi adalah network layer. Namun, Transport Layer (seperti TCP dan UDP) adalah yang sesungguhnya menyediakan fasilitas komunikasi praktis.

3. Middleware Layer

Middleware adalah sebuah layer (lapisan) perangkat lunak yang dibuat di atas low-level layer untuk menyediakan layanan dan protokol umum yang dapat digunakan kembali oleh berbagai aplikasi.

Tujuannya adalah agar developer tidak perlu pusing memikirkan masalah umum dan bisa fokus pada logika aplikasi spesifik.

Layanan yang disediakan middleware:

  1. Protokol Komunikasi: Menyediakan abstraksi yang lebih tinggi dari TCP/UDP (contoh: RPC, MOM).

  2. (Un)marshaling Data: Proses packing dan unpacking data agar bisa dikirim lewat jaringan.

  3. Naming Protocols: Memudahkan penemuan dan sharing resources.

  4. Security Protocols: Untuk komunikasi yang aman (enkripsi, otentikasi).

  5. Scaling Mechanisms: Seperti replikasi dan caching.

4. Tipe Komunikasi: Transient vs Persistent

  1. Transient Communication:

    • Pesan akan dibuang (discard) jika tidak berhasil terkirim (misal: receiver sedang offline).

    • Aplikasi sender (pengirim) dan receiver (penerima) harus aktif pada saat proses pengiriman pesan.

    • Contoh: Panggilan telepon, streaming langsung, komunikasi Socket TCP standar.

  2. Persistent Communication:

    • Pesan akan disimpan oleh communication middleware (misal: dalam queue).

    • Pesan akan disimpan sampai bisa dikirimkan ke receiver (saat receiver kembali online).

    • Aplikasi sender dan receiver tidak harus aktif pada saat bersamaan.

    • Contoh: Email, WhatsApp/Telegram, SMS.

5. Tipe Komunikasi: Asynchronous vs Synchronous

  1. Asynchronous Communication:

  • Pengirim (sender) melanjutkan proses segera setelah mengirim pesan, tanpa menunggu balasan (ACK).

  • Ini bersifat non-blocking.

  1. Synchronous Communication:

  • Pengirim (sender) akan terblokir (blocking) dan menunggu sampai ada informasi ketersampaian pesan.

Ada 3 level “blocking” yang berbeda dalam komunikasi sinkronus:

  1. Synchronize at request submission: Client blocking hanya sampai pesan request berhasil dikirim (diserahkan ke OS/jaringan).

  2. Synchronize at request delivery: Client blocking sampai server benar-benar menerima pesan.

  3. Synchronize after processing: Client blocking paling lama, yaitu sampai server selesai memproses request dan mengirim Reply. Ini adalah model Client-Server standar.

6. Kekurangan Komunikasi Sinkronus (Client/Server)

Model transient synchronous (model C/S standar) memiliki kelemahan:

  • Client tidak bisa melakukan pekerjaan lain saat blocking menunggu reply.

  • Kegagalan (misal: server crash) harus ditangani saat itu juga, karena client sedang menunggu.

  • Model ini tidak cocok untuk semua aplikasi (misal: email, berita, yang lebih cocok persistent).

Summary

Komunikasi antar proses adalah inti dari sistem terdistribusi, yang difasilitasi oleh transport layer (TCP/UDP) dan diabstraksi oleh middleware untuk menyediakan layanan umum seperti (un)marshaling dan keamanan. Komunikasi dapat dikategorikan berdasarkan dua sumbu: (1) Transient (harus aktif bersamaan) vs Persistent (pesan disimpan, misal: queue), dan (2) Asynchronous (non-blocking) vs Synchronous (blocking).