Back to IF3130 Sistem Paralel dan Terdistribusi
Topic
Questions/Cues
Kapan timing penting?
Apa itu data stream?
Apa beda Simple vs Complex Stream?
Model (Push/Pull)?
3 konsep waktu?
Aplikasi stream processing?
Apa itu stream processing?
Apa itu QoS?
Contoh QoS untuk stream?
Kakas (tools) stream?
Apa itu stream synchronization?
Reference Points
Slides 41-51 (11 - IF3130-11-Communication-2022.pdf)
Kuliah Komunikasi
1. Pentingnya Timing
Model RPC dan MOM umumnya tidak peduli soal timing. Pesan/data adalah unit yang independen dan lengkap. Kapan (waktu) data itu sampai tidak mempengaruhi kebenarannya.
Namun, untuk informasi yang time-dependent (seperti audio dan video), timing (kapan data sampai) adalah hal yang krusial.
2. Data Streaming
Ini adalah model komunikasi untuk data yang time-dependent.
Data Stream: Sebuah urutan (sekuens) dari unit-unit data.
Unbounded Data: Ciri khas stream adalah datanya dianggap tidak terbatas (mengalir terus-menerus), berbeda dengan data “batch” (misal: file) yang punya awal dan akhir yang jelas.
Contoh: Event log, data sensor IoT, stream audio, stream video.
3. Simple vs Complex Stream
Simple Stream: Terdiri dari satu sekuens data (misal: stream audio saja).
Complex Stream: Terdiri dari beberapa simple stream (substream) yang saling berelasi. Relasi antar substream ini bersifat time-dependent.
Contoh: Streaming film, terdiri dari substream video dan substream audio. Keduanya harus sinkron.
4. Model dan Konsep Waktu
Model: Umumnya menggunakan Push Model, di mana produksi data dikendalikan oleh sumber (source), dan sering diimplementasikan dengan pola Publish/Subscribe.
Konsep Waktu: Dalam stream processing, penting untuk membedakan waktu:
Event Time: Waktu kapan data diproduksi (misal: sensor mendeteksi).
Ingestion Time: Waktu kapan data diterima oleh sistem pemroses.
Processing Time: Waktu kapan data diproses oleh sistem.
5. Aplikasi Stream Processing
Stream processing digunakan di banyak bidang:
Keuangan: Analisis pasar saham, fraud prevention (deteksi penipuan) real-time.
Kesehatan: Monitoring ICU neonatal, monitor pasien jarak jauh.
Manufaktur: Kontrol proses pabrik.
Cyber Security: Deteksi intrusi real-time.
Transportasi: Manajemen lalu lintas cerdas.
6. Stream Processing System
Sistem ini didefinisikan sebagai information/data flow:
Source Operators: Sumber data (misal: sensor, log, paket RTP).
Processing Operators: Unit-unit yang memproses data (Transform, Filter, Correlate, Analyze).
Sink Operators: Tujuan akhir data (misal: dashboard, database).
7. Quality Of Service (QoS)
Karena timing penting, stream-oriented communication sangat peduli pada QoS (Quality of Service). Ini adalah requirement (persyaratan) terhadap layanan pengiriman data.
QoS untuk stream fokus pada timeliness (ketepatan waktu), volume (jumlah data), dan reliability (keandalan).
Contoh QoS:
Required bit rate: Berapa banyak data yang harus diangkut per detik.
Maximum end-to-end delay: Waktu maksimum dari pengirim ke penerima.
Maximum delay variance (Jitter): Ini sangat penting. Jitter adalah variasi (perbedaan) delay antar paket. Jitter tinggi (misal: paket 1 delay 10ms, paket 2 delay 500ms) akan merusak audio/video, membuatnya “patah-patah”.
Maximum round trip delay: Waktu bolak-balik (penting untuk aplikasi interaktif).
Kakas (Tools): Apache Kafka, Apache Storm, Apache Flink, Apache Spark, Apache Samza.
8. Stream Synchronization
Ini adalah tantangan untuk menjaga relasi time-dependent antar substream dalam complex stream.
Contoh (Slide 49):
Aplikasi receiver film harus tahu bahwa ia perlu memproses (misal) 2 unit audio untuk setiap 1 unit video agar tetap sinkron.
Sinkronisasi ini bisa dilakukan di level aplikasi (aplikasi sendiri yang mengatur buffer dan timing), atau di level middleware (Slide 50), di mana middleware menyediakan high-level interface untuk menangani sinkronisasi.
Komunikasi Stream-Oriented berfokus pada data yang time-dependent dan unbounded (seperti audio, video, sensor), di mana timing adalah krusial. Sistem stream processing (seperti Kafka, Flink) memproses data flow ini (dari source ke sink) dan sangat bergantung pada Quality of Service (QoS) (seperti bit rate, delay, dan jitter rendah) untuk menjamin timeliness. Tantangan utamanya adalah sinkronisasi antar substream (misal: audio & video) agar tetap sinkron.
Additional Information
Pendalaman: Jitter dan Buffer
Jitter: Variasi delay paket. Ini adalah musuh terbesar streaming real-time.
Jitter Buffer (De-jitter Buffer): Ini adalah solusi yang digunakan oleh receiver (misal: aplikasi Zoom, YouTube). Receiver tidak langsung memutar paket data begitu sampai. Ia sengaja menunda pemutaran sedikit dan menyimpan paket yang masuk ke dalam buffer (antrian kecil).
Cara Kerja: Dengan menunda (misal: 200ms), buffer memberi waktu bagi paket-paket yang “telat” (akibat jitter) untuk datang. Receiver kemudian memutar data dari buffer dengan kecepatan konstan, menghasilkan output yang mulus.
Trade-off: Buffer yang lebih besar = lebih tahan jitter, tapi delay (latency) awal lebih besar (misal: buffering YouTube, delay di Zoom). Buffer kecil = latency rendah, tapi rentan “patah-patah”.
Kakas: Kafka vs Flink
Sering disebut bersamaan:
Apache Kafka: Adalah distributed streaming platform (Slide 47). Utamanya berfungsi sebagai broker (seperti MOM) tapi dioptimalkan untuk throughput tinggi, persistent (menyimpan log data), dan replayable. Ia adalah “jantung” (broker/bus) dari arsitektur stream.
Apache Flink / Spark Streaming: Adalah stream processing engine (Slide 46). Mereka adalah “otak” yang melakukan processing operators (Transform, Filter, Analyze). Mereka mengambil data dari Kafka, memprosesnya, dan mungkin menyimpannya ke Kafka lagi atau ke sink.

