Distribuované systémy: Operační systémy a podpora distribuovaného prostředí. Operace s objekty v distribuovaném prostředí, persistence, replikace a sdílení objektů. Základní principy RPC, RMI a CORBA.
Podpora distribuovaného prostředí může mít různou podobu - sít počítačů zdílející zařízení (síťová tiskárna), disky nebo jiná úložiště dat (cloud storage), prostředky nebo výpočetní výkon (gridy, cloud, software as service).
Extrémem je distribuovaný OS, t.j. operační systém, který běží na více počítačích za účelem zajištění lepší škálovatelnosti a dostupnosti. Takový OS se snaží odstínit aplikace od vlastností distribuovaného prostředí, jako například spoždění sítě. Distribuovaný OS je značně komplikovaný.
Distribuované prostředí může zajišťovat:
Distribuovaný objekt je objektem, který je využívaný na vícero výpočetních zařízeních v distribuovaném prostředí. Distribuované objekty je možné realizovat jako replikované objekty nebo živé distribuované objekty. Distribovaný objekt může obsahovat pouze data, nebo i přenositelné funkce (Java).
Replikované objekty jsou skupiny softwarových komponent (replik) které používají distribuovaný algoritmus na zajištění vysoké míry vzájemné konzistence svých vnitřních stavů. Tyto objekty pak odpovídají na požadavky koordinovaně.
Živé distribuované objekty (distribuované objekty, sdílené objekty) generalizují koncept replikovaných objektů na skupiny replik, které můžou interně využívat libovolný protokol, co může vyústit v slabou konzistenci vnitřních stavů.
Sdílený objekt může „přežít“ smrt uzlu, který ho vytvořil, pokud je povoleno uchovávat jeho existenci v jiných uzlech.
Klient může mít na distribuovaný objekt rozhraní (proxy), implicitní vazbu, nebo explicitní vazbu (navázat objekt, vykonat metodu).
Remote Procedure Call (RPC) umožňuje volání metod vykonávaných na jiných uzlech distribuovaného prostředí. Volání je synchronní, takže navenek metoda působí lokálně.
Existují tři základní standardy pro RPC:
V ONC RPC je RPC jedinečně definován:
Při volání se klient nejdřív napojí na skupinu procedur (server), pak vykoná volání a následně spojení zruší. Server je schopen registrovat skupinu u portmapperu, převzít argumenty zakódované v XDR, poslat výsledek zakódovaný v XDR a zrušit registraci.
Portmapper udržuje mapu programů a odpovídajícíh čísel portů, sám běží na portu 111. Klient od portmapperu obdržuje číslo portu na kterém běží požadovaný server.
XDR (eXchange Data Representation) je serializační formát používaný RPC na přenos dat medzi počítači různých architektur. Místy ale přenos nefunguje tak jak by měl, například kvůli zaokrouhlování desetinných čísel.
RPC samotné je náročné na použití, běžně se používá generátor kódu.
RMI je objektově orientované řešení distribuovaných objektů pro platformu Java. RMI využívá pouze vzdálené objekty, klonování probíhá jedině na serveru pomocí explicitní nové vazby. Synchronizace nad vzdálenými objekty není úplná, protože se jedná o proxy.
Při volání není možné jako parametr použít platformě závislé objekty, lokální objekty jsou předávány hodnotou, vzdálené referencí.
Vzdálený objekt je realizován pomocí Server class (implementace) a Client class (proxy). Proxy je serializovatelná.
RMI umožňuje callback ze serveru a aktivaci perzistentních objektů.
CORBA je typický reprezentant modelu klient-server. Mezi funkce patří:
Komponenty se dělí na systémové (Object Request Brokers - ORBs, Object Services) a aplikační (společné služby, aplikační objekty).
ORBs propojují jednotlivé komponenty, zajišťují vyhledávání a zprostředkují posílání zpráv. Object Services slouží na vytváření a odstranění objektů, relokaci a replikaci objektů a hlídání přístupu k objektům.
Rozhraní jednotlivých objektů je popsáno pomocí Interface Description Language (IDL), který zajišťuje přemostění mezi implementacemi a definuje rozhraní klient/server.
CORBA využívá 2 úložiště:
Mezi základní služby CORBA patří například podpora současných procesů, transakční služby, zamykání, hodiny (časovače), události, jmenná služba, databázové dotazy, bezpečnost, autentizace, autorizace, šifrování, logování a transakce.
FI:PA160 Počítačové sítě a jejich aplikace II (jaro 2010), prof. RNDr. Luděk Matyska, CSc.
-
DevelX - Martin Jurča
stav - 85 %