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:
Protokol Komunikasi: Menyediakan abstraksi yang lebih tinggi dari TCP/UDP (contoh: RPC, MOM).
(Un)marshaling Data: Proses packing dan unpacking data agar bisa dikirim lewat jaringan.
Naming Protocols: Memudahkan penemuan dan sharing resources.
Security Protocols: Untuk komunikasi yang aman (enkripsi, otentikasi).
Scaling Mechanisms: Seperti replikasi dan caching.
4. Tipe Komunikasi: Transient vs Persistent
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.
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
Asynchronous Communication:
Pengirim (sender) melanjutkan proses segera setelah mengirim pesan, tanpa menunggu balasan (ACK).
Ini bersifat non-blocking.
Synchronous Communication:
Pengirim (sender) akan terblokir (blocking) dan menunggu sampai ada informasi ketersampaian pesan.
Ada 3 level “blocking” yang berbeda dalam komunikasi sinkronus:
Synchronize at request submission: Client blocking hanya sampai pesan request berhasil dikirim (diserahkan ke OS/jaringan).
Synchronize at request delivery: Client blocking sampai server benar-benar menerima pesan.
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).
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).
Additional Information
Pendalaman: (Un)Marshaling
Marshaling: Proses mengambil struktur data di memori (seperti object, struct, atau record) dan mengubahnya menjadi format serial (seperti byte stream, JSON, atau XML) agar bisa dikirim melalui jaringan atau disimpan ke disk.
Unmarshaling: Proses kebalikannya, yaitu membaca data dari format serial dan membangun kembali struktur data di memori.
Ini adalah fungsi krusial middleware karena sender dan receiver bisa jadi ditulis dalam bahasa pemrograman yang berbeda atau berjalan di arsitektur mesin yang berbeda (misal: big-endian vs little-endian).
Pendalaman: TCP vs UDP
TCP (Transmission Control Protocol): Adalah protokol transient yang connection-oriented dan reliable. Ia menjamin pesan sampai, berurutan, dan tanpa eror. Cocok untuk data yang butuh keutuhan (web, email).
UDP (User Datagram Protocol): Adalah protokol transient yang connectionless dan unreliable. Pesan (datagram) dikirim begitu saja tanpa jaminan. Cocok untuk data yang butuh kecepatan di atas keutuhan (game, VoIP, streaming).
Eksplorasi Mandiri
Pikirkan aplikasi sehari-hari:
Email: Persistent (Anda bisa kirim email ke teman yang offline) & Asynchronous (Anda tidak blocking setelah klik ‘kirim’).
Panggilan WhatsApp: Transient (jika teman Anda offline, panggilan gagal) & Synchronous (Anda menunggu sampai terhubung).
Browsing Web (HTTP): Transient & Synchronous (Browser Anda blocking/menunggu reply dari server).
