komunikační model

Komunikační model

Komunikační model je vysokoúrovňová abstrakce nad komunikací v distribuovaných systémech, kterou poskytuje middleware distribuovaným aplikacím.

Definuje pravidla interakce (např. RPC, message passing, pub/sub) a garance ohledně spolehlivosti, pořadí doručení a chování při selhání, čímž skrývá složitost fyzické sítě.

Komunikační model je specifikace (co chceme). Je implementován konkrétními protokoly (jak to uděláme), které používají algoritmy (logika implementace).

Příklad:

  • Model: Causal multicast
  • Protokol: Vector clock-based multicast protocol
  • Algoritmus: Vector clock algorithm + message buffering

Garance komunikačních modelů

Každý komunikační model poskytuje specifické garance, které odpovídají na fundamentální otázky:

1. Uspořádání

Otázka: V jakém pořadí zprávy uvidím?

Garance:

  • FIFO order
  • Causal order
  • Total order
  • No order (best effort)

2. Spolehlivost

Otázka: Dostanu zprávu vůbec – a kolikrát?

Garance:

  • At-most-once (může se ztratit)
  • At-least-once (může duplikovat)
  • Exactly-once (právě jednou)

3. Členství (pouze pro skupinovou komunikaci)

Otázka: Kdo všechno se komunikace účastní?

Garance:

Platí:

  • Point-to-point (1:1): pořadí + spolehlivost
  • Multicast (1:N, N:M): pořadí + spolehlivost + členství

    Vztah ke konzistenci

Model konzistence (např. linearizability, causal consistency) je cílový stav dat/paměti.

Komunikační model je prostředek, jak konzistence dosáhnout:

  • Sequential consistency → Total order multicast
  • Causal consistency → Causal order multicast
  • Eventual consistency → Best-effort delivery

Fyzikální vlastnosti komunikace limitují maximální dosažitelnou konzistenci.