Architektura

Vrstvy gridu

Architektura gridu je velmi komplexní věc a je proto často popisována pomocí vrstev (layers), kde každá z nich má svoji specifickou funkci. Vyšší vrstvy jsou obecně uživatelsky zaměřené naproti tomu nižší vrstvy jsou zaměřeny na počítače, sítě a specialně zařízení (tedy hardwarově zaměřené).

Jednotlivé vrstvy gridu

Nejnižší vrstva je síťová (network), která má za úkol spojovat jednotlivé gridové zdroje (recources). Vrstva o úroveň výše se nazývá vrstva zdrojů (resource layer), která obsahuje gridové zdroje, jako např. počítače, skladiště dat, katalogy dat a různé speciální zařízení (senzory, teleskopy), všechny zdroje jsou připojeny pomocí síťové vrstvy.

Vrstva middlewaru (middleware layer) poskytuje nástroje, které zprovozní veškeré elementy gridu (počítače, sítě atp.). Middleware je software, jehož úkolem je organizace a integrace zdrojů v gridu. Jeho hlavní role je tzv. zautomatizovat všechny komunikace mezi jednotlivými elementy potřebné k vytvoření jedné velké struktury ("fabric"). Tato vrstva také bývá nazývána jako centrální mozek gridu.

Nejvyšší vrstva celé gridové struktury je aplikační vrstva (application layer), která zahrnuje všechny vědecké, inženýrské, obchodní a jiné aplikace. Tato vrstva je pro uživatele nejvíce viditelná.

Aplikační vrstva poskytuje bezpočet služeb (serviceware), jež jsou globální funkce na správu gridu jako např. měření, jak moc nějaký uživatel zaměstnává Grid, účtování za toto použití a obecně také udržování informací o tom, kdo poskytuje zdroje a kdo je používá (tzv. accounting). Toto je velmi důležitá aktivita, pokud sdílíme zdroje napříč mnoha institucemi, jež čítají velké množství uživatelů. Serviceware je nejvyšší vrstva, protože tu uživatelé nejvíce používají, kde naproti tomu vrstva middlewaru by měla zůstat uživatelům utajena.

Služby a protokoly

Uvnitř middleware vrstvy jsou umístěny protokoly pro připojení a konektivitu zdrojů (resource and connectivity protocols) , vyšší vrstvy jsou nazývány jako sdílené služby (collective services).

Protokoly pro připojení a konektivitu zdrojů se starají o specifické síťové transakce pro připojení a komunikaci různých počítačů a gridových zdrojů. Sítí pro připojení do gridu je Internet a jsou tedy použity známé komunikační protokoly (např. HTTP), které dovolují komunikaci mezi zdroji, výměnu různých dat a také v neposlední řadě tzv. autentizaci, jež poskytuje bezpečný mechanismus pro ověření a identifikování uživatele a i zdrojů.

Sdílené služby (collective services) jsou založeny na informačních protokolech, jejíchž úkolem je získávat informace o struktuře a stavu nějakého zdroje v Gridu a také protokoly pro správu, které poskytují stejný přístup k identicky různým zdrojům.

Sdílené služby například zahrnují:

  • aktualizaci dostupných zdrojů
  • zprostředkování zdrojů (resource brokering)
  • monitorování a diagnostikování problémů
  • replikování dat pro větší dostupnost a spolehlivost dat
  • poskytování služby, jež má za úkol sledovat kdo co může provádět a v jaký čas

Aplikace v Gridu

Jak již bylo zmíněno, nejvyšší vrstvou je aplikační vrstva. Aplikace spoléhají na spodní vrstvy gridu. Pro představu uvažujme jednoduchou aplikaci, která analyzuje data z několika nezávislých souborů.
Postup pro takovou aplikaci je tento:

  • získat dostatečné bezpečnostní pověření (authentication credentials) k otevření souborů (resource and connectivity protocols)
  • dotázat se informačních služeb a replikačních katalogů, kde se nacházejí soubory a výpočetní kapacita pro provedení této úlohy (collective services)
  • předložit požadavek k jednotlivým počítačům, datovým skladům, tj. získat data, začít s výpočtem a vyprodukovat výsledky (resource and connectivity protocols)
  • v neposlední řadě monitorování statusu výpočtů a datových přesunů či detekování chyb (collective services)

Aplikace uvnitř Gridu

Aplikace, která byla vyvinuta pro standardní PC musí být při přechodu do Gridu adaptována vzhledem k výše zmíněmýn skutečnostem. Samozřejmě provést vše výše zmíněné stojí velké množství námahy a proto existuje framework, který byl vyvinut a standardizován pro tyto účely. Můžeme ho přirovnat k API, jak jsme zvyklí používat u jiných frameworků.

Globus toolkit

Tento nástroj je vyvíjen Globus aliancí (Globus aliance) vedené zakladateli Gridu, Ianem Fosterem a Carlem Kesselmanem. Globus Toolkit poskytuje množinu nástrojů potřebných pro vytvoření Gridu, tj. bezpečnostní politika, lokace zdrojů a jejich správa či komunikace mezi nimi.

Globus zahrnuje tyto následující moduly:

  • GRAM (Globus Resource Allocation Manager)

dokáže převést požadavky od uživatele v příkazy, kterým rozumí jednotlivé počítače

  • GSI (Grid Security Infrastructure)

dokáže ověřit uživatele a rozlišit jeho přístupová práva

  • MDS (Monitoring and Discovery Service)

shromažduje informace o zdrojích (např. výpočetní kapacita, kapacita přenosové sítě, typ datového skladu atd.)

  • GRIS (Grid Resource Information Service)

umožňuje provádět dotazy nad zdroji, jejich momentální konfigurací, možnostech či jejich stavu

  • GIIS (Grid Index Information Service)

koordinuje jednotlivé GRIS služby

  • Replica Catalog

umožnuje provádět dotazy na lokace souborů a nebo kolekcí souborů uložených v gridu

  • GridFTP (Grid File Transfer Protocol)

poskytuje mechanismus pro výkonný, bezpečný a spolehlivý přesun dat v Gridu

  • RMS (Replica Management system)

umožňuje vytvoření a správu replik dat pomocí katalogu replik a GridFTP

Většina dnešních produkčních gridů obsahuje Globus toolkit jako svůj stavební kámen.
Vzhledem k této skutečnosti jsem vytvořil ukázku použití Globus toolkitu v sekci Jak vyvíjet pro Grid ?