Výměna zpráv

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 4. prosince 2016; kontroly vyžadují 3 úpravy .

Zasílání zpráv v informatice je jedním z přístupů pro implementaci interakce komponent a systémů používaných v paralelních výpočtech , objektově orientovaném programování , také jednou z forem meziprocesové komunikace v operačních systémech , v operačních systémech s mikrojádry , přístup se používá k výměně informace mezi jedním z jader a jedním nebo více prováděcími bloky.

Systémy distribuovaného přístupu k objektům a vzdáleného vyvolávání metod, jako jsou ONC RPC , CORBA , RMI , DCOM , SOAP , .Net_Remoting , QNX Neutrino RTOS , OpenBinder , D-Bus a podobně, jsou systémy pro zasílání zpráv. Široké používání přístupů zasílání zpráv je také neodmyslitelnou součástí vysoce výkonných počítačů , zejména je na něm založeno rozhraní pro předávání zpráv MPI . Ve třídě middlewaru vyniká speciální skupina - middleware orientovaný na zprávy založený na tomto přístupu.

Přehled

Systémy zasílání zpráv jsou uzavřené, protože jejich abstrakce skrývá všechny změny stavu, které lze použít při implementaci odesílání zpráv.

Programovací jazyky založené na tomto modelu obvykle definují předávání zpráv jako odesílání (obvykle asynchronní; jako kopie) datového prvku konečnému příjemci ( aktér , proces , vlákno , soket atd.). Koncept zpráv je verze datagramů na vysoké úrovni , kromě toho, že zprávy mohou být větší než paket a mohou být spolehlivé, odolné, bezpečné a v případě potřeby mohou být pokryty transakčním mechanismem .

Zprávy se často používají pro komunikaci mezi procesy ; další běžnou oblastí použití jsou streamy a kanály , ve kterých jsou informace odesílány jako sekvence jednoduchých datových prvků (verze virtuálního kanálu na vysoké úrovni ).

Vliv na jiné programovací modely

OOP

Z hlediska některých objektově orientovaných programovacích jazyků je zpráva jediným způsobem, jak přenést řízení na objekt. Pokud má objekt na tuto zprávu "odpovědět", pak musí mít metodu odpovídající dané zprávě.

V čistě objektově orientovaném programování je zasílání zpráv implementováno pouze pomocí dynamických volání.

Odeslání stejné zprávy objektu dvakrát obvykle způsobí, že objekt použije metodu dvakrát. Zprávy se nazývají stejně, pokud jsou jejich názvy a argumenty stejné.

Objekty mohou posílat zprávy jiným objektům pomocí svých metod.

Zasílání zpráv má za následek extrémně pozdní vazbu . 

Alan Kay tvrdí [1] , že výměna zpráv mezi objekty je koncept důležitější než objekty samotné, ačkoli to lidé často nechápou a věnují příliš mnoho pozornosti samotným objektům a nedostatečnou pozornost zprávám, které si vyměňují.

Další modely

Některé jazyky podporují předávání (delegování) volání metod z jednoho objektu na druhý, pokud nemá metodu pro zpracování zprávy, ale „zná“ jiný objekt, že ano.

Poznámky

  1. Alan Kay, prototypy vs třídy bylo: Re: Sun's HotSpot, 10. října 1998 . Získáno 31. října 2008. Archivováno z originálu 16. února 2021.

Odkazy