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:

  1. Event Time: Waktu kapan data diproduksi (misal: sensor mendeteksi).

  2. Ingestion Time: Waktu kapan data diterima oleh sistem pemroses.

  3. 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:

  1. Source Operators: Sumber data (misal: sensor, log, paket RTP).

  2. Processing Operators: Unit-unit yang memproses data (Transform, Filter, Correlate, Analyze).

  3. 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.

Summary

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.