V roce 1998 Carl Kesselman a Ian Foster v knize "The Grid: Blueprint for a New Computing Infrastructure" zavedli pojem Grid. Slovo grid neznamená slovníkové "mřížka", vzniklo vyjmutím ze sousloví "electrical power grid", což se v češtině nazývá "elektrická rozvodná soustava".
Výpočetní grid popisují analogií s elektrickou rozvodnou sítí - kolem roku 1910 měla každá elektrifikovaná budova vlastní generátor elektřiny, nebylo možné použít víc než byla kapacita generátoru, celková kapacita všech generátorů nebyla efektivně využita, zavedení elektřiny bylo drahé. Ke skutečnému rozvoji používání elektřiny došlo až zavedením propojených velkých elektráren a rozvodné sítě ke spotřebitelům, která umožnila levný, všudypřítomný a standardizovaný zdroj el. energie.
Obdobně dnes každá organizace spravuje vlastní výpočetní kapacity (počítače, diskovou kapacitu, software, data, specializovaný hardware), které neumí efektivně sdílet s jinými.
Výpočetní grid je hardwareová a softwareová infrastruktura, která poskytuje spolehlivý, standardizovaný, všudypřítomný a levný přístup ke špičkovým výpočetním službám.
V roce 2001 v knize "The Anatomy of the Grid: Enabling Scalable Virtual Organizations" položili důraz na sdílení zdrojů zavedením pojmu virtuálních organizací, které definují jako
Virtuální organizace jsou dynamicky vytvářené skupiny uživatelů a organizací sdílející přístup k počítačům, softwaru, datům a ostatním zdrojům s přesným řízením přístupu a jasnou definicí co je sdíleno, kým je sdíleno a za jakých podmínek je sdíleno.
A v roce 2002 v reakci na zneužívání pojmu gridu marketingovými odděleními firem zpřesnili definici gridu v článku What is the Grid? A Three Point Checklist:
Tj. SUN Grid Engine a PBS (systémy pro správu klastrů) nesplňují první bod, celý WWW nesplňuje třetí bod. Naopak za první generaci gridů lze považovat Gnutellu (sdílení souborů), SETI@home (sdílení výpočetní kapacity), DataGridy (sdílení volné diskové kapacity).
Už koncem 80. let 20. století se začalo se spojováním výkonu velkých počítačů, náš projekt MetaCentrum (v rámci CESNETu) byl založen již v roce 1996, dva roky před knihou Fostera a Kesselmana.
Superpočítačové Centrum Brno se účastnilo několika gridových projektů: EU DataGrid (2001-2003, zpracování řádově petabajtů dat z urychlovače v CERN), EGEE I,II,III (2004-2010, Enabling Grids for E-sciencE, nástupce DataGridu), a EU GridLab (2002-2004, návrh API pro výpočetní gridové aplikace), CoreGRID (2004-2008, Network of Excellence zaměřěná na gridy a P2P), MediGrid (2005-2009, medicínský grid s využitím ontologií/technologií sémantického webu). Na SuperComputing 2002 bylo součástí Global Grid Testbed Collaboration, které vyhrálo tři ceny - za "most geographically distributed" a "most heterogeneous" grid - 70 strojů na 5 kontinentech ve 14ti zemích, od Sony Playstation 2 přes Linuxové klastry po SMP - a "bandwidth challenge" - za tok 16.8 Gbit/s po dobu 30 minut při výpočtu srážky dvou černých děr. (překonáno 2003 - 23.21 Gbps, 2004 - 101.13 Gbps), 2005 - 131.57 Gbps, od roku 2006 se bandwidth challenges zaměřují na jiné rekordy, např. co nejvyšší využití 10Gbps linky nebo rychlost přenosu dat mezi disky)
V současné době se účastní projektu budování EGI (European Grid Infrastructure) v projektech EGI InSPIRE (Integrated Sustainable Pan-European Infrastructure for Researchers in Europe, 2010-2013) a EMI (European Middleware Initiative). Superpočítačové Centrum Brno je jakožto součást MetaCentra, které se stalo NGI (National Grid Infrastructure), součástí EGI.
Heterogenitu lze řešit dvěma způsoby:
Autentizace a zabezpečení přenosů je pomocí GSI (Grid Security Infrastructure), založené na PKI (Public Key Infrastructure). V podstatě je to SSL (Secure Sockets Layer) rozšířené o tzv. proxy credentials ("zástupné doklady") a jejich delegování.
Proxy credential sestává z nově vygenerovaného tajného klíče a dočasného (hodiny, dny) X509v3 certifikátu podepsaného původním certifikátem. Proxy credential může být buď plný, nebo omezený, je z něj možné vytvářet další proxy.
Certifikační autorita: /C=CZ/O=CESNET/CN=CESNET CA
uživatel: /O=CESNET/O=Masaryk University/CN=Martin Kuba
jeho úloha: /O=CESNET/O=Masaryk University/CN=Martin Kuba/CN=proxy
z ní spuštěná úloha: /O=CESNET/O=Masaryk University/CN=Martin Kuba/CN=proxy/CN=proxy
atd.: /O=CESNET/O=Masaryk University/CN=Martin Kuba/CN=proxy/CN=proxy/CN=proxy
stroj: /O=CESNET/O=Masaryk University/CN=host/skirit.ics.muni.cz
Mapování z DN (Distinguished Name) z certifikátu na uživatele daného
operačního systému se provádí staticky přes /etc/grid-security/grid-mapfile
,
nebo dynamicky na jeden z množiny účtů.
"/O=CESNET/O=Masaryk University/CN=Martin Kuba" makub "/C=US/O=National Computational Science Alliance/CN=Miroslav Ruda" ruda "/O=CESNET/O=Masaryk University/CN=Ludek Matyska" glab011 "/O=dutchgrid/O=users/O=vu/OU=cs/CN=Kees Verstoep" glab012 "/C=PL/O=GRID/O=PSNC/CN=Tomasz Piontek" glab013
GSI autentizace umožňuje tzv. single sign-on (tj. ráno jednou zadám heslo a pak už nemusím), byla dodána do mnoha programů - gsissh, gsiftp, gsicvs, ...
Osobní certifikát má platnost obvykle rok. První proxy certifikát obvykle 12 hodin. Odvozené proxy 2 hodiny. Lze si uložit proxy s platností 1 týden do služby MyProxy, odkud si jej mohou déle běžící úlohy obnovovat.
Součást evropského gridového middleware gLite. Služba vydává atributové certifikáty, které jsou pak vloženy do uživatelova proxy certifikátu. Atributové certifikáty obsahují informace o uživateli - do které VO patří, do kterých skupin patří v rámci VO, jaké role má v každé skupině. Skupiny tvoří stromovou strukturu, členství v podskupině implikuje členství v nadřízených skupinách. Naopak role jsou děděny do podskupin.
Následující příklad ukazuje obsah proxy certifikátu obsahujícího atributový certifikát, který potvrzuje členství uživatele ve VO jménem "voce" (Virtual Organization for Central Europe) bez žádných speciálních rolí:
$ voms-proxy-info -all
subject : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba/CN=proxy
issuer : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba
identity : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba
type : proxy
strength : 1024 bits
path : /tmp/x509up_u203
timeleft : 11:59:52
=== VO voce extension information ===
VO : voce
subject : /DC=cz/DC=cesnet-ca/O=Masaryk University/CN=Martin Kuba
issuer : /DC=cz/DC=cesnet-ca/O=CESNET/CN=voms1.egee.cesnet.cz
attribute : /voce/Role=NULL
timeleft : 11:59:52
uri : voms1.egee.cesnet.cz:7001
Jiný příklad - atribut /cms/production/Role=writer
sděluje, že uživatel je členem VO "cms", v ní je členem
skupiny "production" a ve skupině "production" má roli "writer".
Služba VOMS neinterpretuje význam atributů v atributových certifikátech, jen zajišťuje jejich distribuci. Atributy jsou zpracovány buď přímo konečnou aplikací, např. aplikace pro spouštění úloh může mít nastaveno, že spustí úlohy jen pro členy určité VO. Nebo lze použít autorizační službu, např. Argus. Argus vnitřně používá jazyk XACML pro popis přístupových politik, ale má i zjednodušený jazyk SPL (Simplified Policy Language) pro psaní pravidel. Pravidlo může být např.:
resource "http://cnaf.infn.it/cream-ce-01" { action "submit-job" { rule deny { pfqan = "/cms/Role=pilot" } rule permit { vo = "cms" subject-issuer = "CN=INFN CA,O=INFN,C=IT" } } }
které dovoluje akci submit-job na zdroji identifikovaném pomocí URI http://cnaf.infn.it/cream-ce-01 uživatelům z VO cms prokazujících se certifikátem podepsaným INFN CA, ale kromě těch s rolí pilot.
Adresáře objektů (stroje, CPU, paměť, disky, běžící úlohy, uživatelé, fronty úloh, ...) přístupné protokolem LDAP (Lightweight Directory Access Protocol).
V LDAP stromu lze vyhledávat, např. najít všechny stroje s OS Linux a 4 procesory.
grid-info-search -x -h mds.gridlab.org -s one -b 'Mds-Vo-Name=gridlab,o=Grid' \ '(objectClass=MdsComputer)(Mds-Cpu-Total-count=4)(Mds-Os-name=Linux)' dn: Mds-Host-hn=skirit.ics.muni.cz,Mds-Vo-name=gridlab,o=Grid dn: Mds-Host-hn=eltoro.pcz.pl,Mds-Vo-name=gridlab,o=Grid dn: Mds-Host-hn=fs0.das2.cs.vu.nl,Mds-Vo-name=gridlab,o=Grid
Oproti normálnímu FTP poskytuje "third party transfer", "striped transfer", GSI autentizaci. Striped transfer umožňuje obejít omezení rychlosti daná TCP/IP a propustností disků.
Spouštění a ukončování úloh, speciální GRAM protokol.
Jazyk RSL (Resource Specification Language) syntakticky podobný LDAP filtrům:
&(rsl_substitution = (GLOBUSRUN_GASS_URL https://nekde.cz:12345)) (executable = $(GLOBUSRUN_GASS_URL) # /bin/echo) (arguments = "-n" "ahoj") (count=1) (memory>=64) (stdout = $(GLOBUSRUN_GASS_URL) # /dev/stdout) (stderr = $(GLOBUSRUN_GASS_URL) # /dev/stderr)
Na strojích běží démon zvaný Gatekeeper, každý obsluhuje jednu nebo více služeb zvaných jobmanager odpovídajících dávkovým systémům, např. jobmanager-fork (spouští přímo), jobmanager-pbs (spouští přes PBS). Těm se předávají RSL popisy úloh ke spuštění.
Přenos stdin, stdout, stderr popř. dalších souborů pomocí na/z vzdáleného počítače s běžící úlohou
V článku "The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration" I. Foster, C. Kesselman a S. Tuecke vyřešili problém množství protokolů zavedením otevřené architektury gridových služeb (OGSA) založené na webových službách. Webové služby
Autoři OGSA se rozhodli doplnit webové služby o tyto vlastnosti. První pokus byl Globus 3, který do webservices přidával silné objektově-oriantované rysy, ale setkal se s odmítnutím od komunity webových služeb. Globus 4 je založen na WSRF (Web Service Resource Framework), kde resource může mít definované atributy, které webová služba mít nemůže, tj.
WS-Notification
zasílání událostí, jedna služba se zaregistruje u druhé k
odebírání určitých událostí (změna vnitřního stavu tj. service data)Všechny služby v gridu by měly být gridovými službami, tím umožní onen standardizovaný přístup požadovaný ve vlastnostech gridu.
Webové služby představují rozhraní, nemohou proto mít přímo
instance. Proto specifikace WSRF zavádí pojem web service resource, který
vyjadřuje instanciovatelnou entitu přístupnou přes webovou službu. WSRF
definuje datové struktury přenášené v hlavičkách SOAP zpráv (<SOAP-ENV:Header>
)
identifikující používanou instanci. Standard WSRF je vyvíjen zároveň s
jeho implementací v Globus Toolkitu 4, a k němu patří WS-ResourceProperties, WS-ResourceLifetime,
WS-ServiceGroup, WS-BaseFaults.
WS-Security a WS-SecureConversation se týkají autentizace, autorizace, věření, definování přístupových politik. WS-Addressing definuje adresaci webových služeb bez ohledu na komunikační mechanismus. Zasílání událostí se věnují WS-Notification, WS-Topics, WS-BrokeredNotification.
GridFTP v Globusu 2 se příliš neliší od standardního FTP - má dva komunikační kanály, jeden pro přenos řídících povelů a druhý pro přenos dat. V OGSA verzi zůstane datový komunikační kanál kvůli efektivitě přenosu, ale řídící kanál je nahrazen gridovou službou.
Informační služba je implementována jako Registry gridová služba, která si drží seznam zaregistrovaných gridových služeb a agreguje jejich service data.
POST /wsrf/services/examples/core/factory/MathService HTTP/1.1 Content-Type: text/xml; charset=utf-8 User-Agent: Axis/1.2RC2 Host: 127.0.0.1:8080 SOAPAction: "http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/addRequest" <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"> <soapenv:Header> <wsa:MessageID soapenv:mustUnderstand="0">uuid:1d476dc0-efc0-11d9-a10c-a41f33a5ecb5</wsa:MessageID> <wsa:To soapenv:mustUnderstand="0">http://147.251.3.64:8080/wsrf/services/examples/core/factory/MathService</wsa:To> <wsa:Action soapenv:mustUnderstand="0">http://www.globus.org/namespaces/examples/core/MathService_instance/MathPortType/addRequest</wsa:Action> <wsa:From soapenv:mustUnderstand="0"> <wsa:Address>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:Address> </wsa:From> <ns1:MathResourceKey soapenv:mustUnderstand="0" xmlns:ns1="http://www.globus.org/namespaces/examples/core/MathService_instance" >14350892</ns1:MathResourceKey> </soapenv:Header> <soapenv:Body> <add xmlns="http://www.globus.org/namespaces/examples/core/MathService_instance">10</add> </soapenv:Body> </soapenv:Envelope>
Existuje vize sémantického webu, kdy všechna data na webu jsou sémanticky označkována a tudíž přístupna strojovému zpracování (nikoliv jen zobrazení jako dosud).
Sémantický web je rozšíření současného webu, ve kterém je informacím přiřazen dobře definovaný význam, což umožní lidem a počítačům lépe spolupracovat. [Tim Berners-Lee, James Hendler, Ora Lassila, The Semantic Web, Scientific American, May 2001]
Vize sémantického gridu chce využít technologie sémantického webu pro popis nejen statických dat, ale i pro popis webových/gridových služeb a jimi zpracovávaných dat. Překrývá se to s aktivitami kolem sémantických webových služeb.
Sémantický web i grid jsou založeny na ontologiích. Ontologie je pojem z oboru umělé inteligence, a je definována jako "výslovný formální zápis konceptualizace", kde konceptualizace je systém pojmů modelující určitou část světa. Prakticky je webová ontologie taxonomie s logickými axiomy a jejich logickými důsledky. Taxonomie je hierarchie tříd se vztahy nadtřída-podtřída. Pro zápis ontologií definovalo W3C jazyk OWL - Web Ontology Language, založený na XML. Ontologie se skládá ze tříd, individuí, properties. Každý objekt v ontologii je jednoznačně určen svým URI. Ontologie je možno skládat.
Příklad - ontologie jídelního lístku v pizzeriích, definice tříd pro těsto, náplně, třída MargheritaPizza má omezující podmínky, může mít jako náplň jen mozzarelu a rajčata, a od obého musí mít alespoň jeden kousek.
Nad takto definovanými ontologiemi lze používat odvozovací stroje (reasonery), které dokážou odvodit vztahy v ontologii obsažené, ale výslovně neuvedené. Např. reasoner pozná, že všechna individua ve třídě MargheritaPizza musí nutně patřit i do tříd CheesyPizza a VegetarianPizza.
V roce 2009 byla definována nová verze jazyka OWL 2, která rozšiřuje sílu jazyka zejména řetězením properties, například je možné definovat pojem strýčka, což v OWL 1 nelze. Některé koncepty, např. děti sezdaných rodičů však ani v OWL 2 vyjádřit nelze. Některé z nich lze vyjádřit pomocí pravidel SWRL (Semantic Web Rule Language), některé reasonery (Pellet) se SWRL umí pracovat.
WSDL popisy webových služeb popisují jen syntaxi zpráv. Pokud jedna služba
má operaci getHardDriveQuote
a druhá getQuoteForHardDrive
,
nelze z WSDL bez lidské účasti poznat, zda obě dělají totéž. Pokud obě operace
označíme konceptem třeba ComputerParts:#getHardDriveQuote
příslušné
ontologie, už to lze poznat.
Při zapojení reasoneru můžeme dokonce poznat, že i operace označená ComputerParts:#getSCSIDriveQuote
je vhodná pro naše účely, protože v ontologii je příslušný koncept potomkem ComputerParts:#getHardDriveQuote
.
Sémanticky označkovat můžeme krome operací samozřejmě i data, se kterými pracují. Dále můžeme sémanticky popsat i QoS (Quality of Service) a exekuční postupy.
Z semanticky popsaných služeb můžeme strojově skládat celé procesy. Zakomponování služeb do procesu má následující fáze: