Zadání

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.

Vypracování

Operační systémy a podpora distribuovaného prostředí

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:

  • sdílenou paměť
  • distribuovaný systém souborů
  • podporu transakcí
  • zajištění globální perzistence
  • koordinaci replikovaných dat
  • řešení problému zhody
  • podpora pro zotavení z chyby

Objekty v distribuované prostředí

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

RPC

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:

  • ONC (Open Network Computing) - od Sunu, prakticky na všech OS
  • DCE (Distributed Computing Environment) - široce dostupné, přidán objektový přístup, komplexní služby
  • Microsoft COM/DCOM - prioprietární model, v současné době rozšíření DCE

V ONC RPC je RPC jedinečně definován:

  • číslem programu - skupina procedur (0x20000000 až 0x3FFFFFFF, t.j. 20 milionů čísel)
  • číslem verze
  • číslem procedury

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

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

CORBA je typický reprezentant modelu klient-server. Mezi funkce patří:

  • nalezení objektu
  • směrování požadavku
  • vyvolání metody
  • navrácení výsledku

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ě:

  • interface repository - uchovává rozhraní objektů (alternativa k IDL)
  • implementation repository - poskytuje informace o umístění objektu a prostředí (OS, …), implementaci (verze, …). Používá se při aktivaci objektu. Implementace se musí v repository registrovat.

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.

Předměty

FI:PA160 Počítačové sítě a jejich aplikace II (jaro 2010), prof. RNDr. Luděk Matyska, CSc.

Použitá literatura

-

Vypracoval

DevelX - Martin Jurča

stav - 85 %

mgr-szz/in-psk/7-psk.txt · Poslední úprava: 2020/04/12 16:56 (upraveno mimo DokuWiki)
Nahoru
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0