Open Grid Service Architecture, Grid Services und Globus 3

Die Seite wird erstellt Stephan Hein
 
WEITER LESEN
Open Grid Service Architecture, Grid
            Services und Globus 3
                       Richard Spindler, 0116225
                           18. November 2004

Kurzfassung
Die Open Grid Service Architecture ist eine Sammlung von Spezifikationen
und Interfaces, die einen Grundbaustein des sogenannten Grids markiert. Glo-
bus 3 ist eine Implementierung dieser Spezifikation und stellt die verschieden-
sten Dienste zur Verfügung, um eine Umgebung zu schaffen die in das Grid
integriert werden kann, bzw. Grid-Services zur Verfügung stellt. Dazu sind na-
türlich eine Vielzahl an Einzelproblemen zu lösen, sei es nun die Frage der Si-
cherheit, zuverlässige File-Transfers oder auch einfach nur das Auffinden eines
bestimmten Grid-Services.
    Da ab Globus 3 die Schnittstellen vorrangig auf Web Services basieren wer-
de ich auch kurz auf die hier zum Einsatz kommenden Technologien und Me-
chanismen eingehen.
    Im Laufe dieser Arbeit werde ich auf folgende Aspekte und die dazugehö-
rigen Protokoll bzw. Schnittstellen eingehen.
    Job Managment im Grid, wie bzw. über welche Services werden Jobs ab-
gesetzt und verwaltet. Dazu eine kleine Übersicht und Erklärung von GRAM
dem Grid Resource Allocation and Management Protocol. Dann die Frage nach
dem Auffinden und Instanzieren von Services im Grid sowie das abfragen der
Leistungsdaten bzw. Beschreibungen von Services. Das wird im Kapitel MDS
zu erfahren sein, dem Monitoring and Discovery Service in der OGSA. Sicher-
heit im Grid ist die Aufgabe der GSI darunter fallen auch Features wie Single-
Sign on sowie verschlüsselte Kommunikation innerhalb des Verbunds. Zuletzt
kommt dann noch der Datentransfer zur Sprache, dafür steht GridFTP zur Ver-
fügung sowie einige weiterführende Protokolle, auf die ich ebenfalls eingehen
werde.
    Im Bereich der Webservices werde ich auch einige Protokolle vorstellen, die
der OGSA zugrundeliegen, zu denen SOAP, das Simple Object Access Proto-
koll gehört, sowie WSDL und WS-Inspection. SOAP dient hierbei in der unter-
sten Schicht als Remote Procedure Call Mechanismus. Entsprechende Schnitt-
stellen werden darauf aufbauend mittels WSDL, der Web Services Description
Language beschrieben. WS-Inspection wird verwendet um auf einfache Weise

                                      1
die verfügbaren Services eines Anbieters auflistet. Das sind die grundsätzli-
chen Mechanismen, die der Web-Services Welt entstammen, und auf die die
Grid Architektur aufbaut, diese werden gleich am Anfang kurz erläutert.

1 Einleitung
Warum eine Open Grid Services Architecture? Ich könnte mir nun zwar eini-
ge relativerende Sprüche überlegen, aber ich glaube es ist einem jeden der die
grundsätzliche Idee hinter dem Grid verstanden hat klar, dass hier ein einheit-
liches Framework zur Kommunitkation von Nöten ist. Und ein solches ist die
OGSA, bzw. dessen Implementierug, das Globus Toolkit.
    Programmiert ist das Globus Toolkit mit C und Java, und kann als Open-
Source Software unter der Globus Toolkit Public License von der Globus Web-
site1 heruntergeladen werden. Um das Globus Toolkit aufzusetzten bzw. zu
installieren wird man vermutlich einen Server mit Linux, Solaris oder einem
anderen UNIX, bzw. UNIX-ähnlichen Betriebsystem zur Basis nehmen.
    Globus benötigt dann noch einen einfachen Webserver, eine Java Servlet
Engine sowie die XML Messaging Engine “Apache Axis”.
    Während die Version 2.0 des Globus Toolkits noch verschiedene Protokol-
le implementierte geht mit Globus 3 der Trend zu einer einheitlichen Web-
Services Schnittstelle, die mit Hilfe der verschiedenen Web-Service Protokolle
zur Verfügung steht.

2 Webservices
Die Idee der Web-Services ist eng mit XML verknüpft, und umspannt die ver-
schiedensten Spezifikationen um Software möglichst universell über das Inter-
net zu verknüpfen. Die im Kontext des Grids dabei Wesentlichsten sind SOAP,
WSDL und WS-Inspection.

2.1 SOAP
Das Simple Object Access Protocoll ist eine einfache XML basierte Version ei-
nes Remote Procedure Call Verfahrens. Sprich eine Möglichkeit Funktionen ei-
nes Programms über das Internet bzw. ein Netzwerk aufzurufen. Es besteht
die Möglichkeit verschiedene Parameter mit zu übergeben, sowie einige Wahl-
freiheit was das zur Übertragung zu nutzende Protokoll betrifft. Je nachdem
welche Anforderungen an die Anwendung gegeben sind bietet sich natürlich
HTTP an, es ist aber durchaus auch möglich FTP oder sogar Email zu verwen-
den.
  1 http://www.globus.org/

                                      2
2.2 WSDL
Die Web Services Description Language ist ein Beschreibungssprache für die
Schnittstelle eines Web Services, am ehesten noch zu vergleichen mit zum Bei-
spiel einem Funktionsprototypen in C.

2.3 WS-Inspection
WS-Inspection kann man wohl als eine Zwischenstufe zwischen UDDI2 und
WSDL bezeichnen, es dient der Beschreibung des Service Angebotes einer Site,
und kann auch Verweise auf andere WS-Inspection Dokumente enthalten. Das
dient dem Ziel sich ändernde Beschreibungen nach Möglichkeit nur einmal
vorzuhalten, und vor allem eine einfache Möglichkeit zu haben den Überblick
über verfügbare Ressourcen vor Ort zu haben.

3 Globus Toolkit
Globus 3 ist ein java-basiertes Opensource Toolkit, das eine Sammlung von
verschiedenen Softwarekomponenten für den Betrieb des Grids zur Verfügung
stellt. Es Implementiert die OGSA (Open Grid Services Architecture) Spezifi-
kation. Diese beschreibt im wesentlichen, wie Grid Services Schnittstellen zu
gestalten sind um mit anderen Clients interagieren zu können.
    Verschiedene unterschiedlich Dienste sind dazu nötig, Scheduling, Sicher-
heit, Filetransfers, etc...
    Globus 3 enthält all diese Dienste allerdings nicht nur in einer Web Ser-
vices Implementation, sondern auch in einer Globus 2 kompatiblen Version,
um weiterhin mit entsprechend basierten Entitäten zu kommunizieren. Diese
etwas ältere Version des Globus Toolkits implementierte seine Dienste nämlich
noch nicht auf Basis von Web Services.

3.1 GRAM
Um GRAM, das Grid Resource Allocation and Management, ist eine Schnitt-
stelle um Zugriff auf das Job Managment innerhalb des Grid zu haben. Man
benutzt es um einen Job abzusetzen, der dann an die lokalen Load Sharing Sy-
steme weitergegeben wird. Das schließt natürlich auch detailierte Angaben zur
Laufzeitumgebung des Jobs ein, wie etwa den Namen der ausführbaren Datei,
eventuelle Argumente, Umgebungs-Variablen und Ordner. Auch Informatio-
nen über den Resourcenbedarf eines Jobs werden über das GRAM vermittelt,
dazu gehören der Typ des Programms, ob ein Prozess oder mehrere verwendet
werden, ob es ein MPI Programm ist, wieviel RAM es brauchen wird, welche
Bibliotheken es verwendet etc.
  2 http://www.uddi.org/

                                     3
3.2 MDS
MDS oder neuerdings auch WS Information Services genannt, steht entweder
für “Monitoring and Discovery Service” oder für “Meta Directory Service” bei-
de Erklärungen fanden sich in der Globus Dokumentation. Die Funktion ist auf
jeden Fall die folgende, es gibt verschiedene Konzepte innerhalb dieses Index
Services, die darauf abziehlen Instanzen von Grid Services zu erstellen, sowie
URLs zu verwalten, um die erzeugten Instanzen anzusprechen.

3.2.1 Factory
Erzeugt eine neue Instanz eines Services auf Anfrage und gibt ein Grid Service
Handle zurück. Allerdings kann dieses noch nicht verwendet werden, sondern
muss mittels des HandleMap Interfaces in eine Grid Service Reference umge-
wandelt werden.

3.2.2 Grid Service Handle
Ein GSH ist eine URL die eine Instanz eines Grid Services über seinen gesamten
Bestehenszeitraum hinweg benennt.

3.2.3 Grid Service Reference
Eine Reference beschreibt wie ein Client mit dem Grid Service kommunizieren
kann, und enthält im Gegensatz zum Handle noch einige Detailinformationen
zur Verbindung.

3.2.4 Registry
Die Registry dient hauptsächlich dem Auffinden eines Grid Services, das funk-
tioniert indem die Grid Service Handles dort registriert werden

3.2.5 Notification
Der Notification Mechanismus ist ebenfalls Teil des MDS, er erlaubt es einem
Client sich über ändernde Eigenschaften eines Grid Services informieren zu
lassen. Es funktioniert indem sich der Client registriert, und dann benachrich-
tigt wird, sobald das gewünschte Ereignis eintritt.

3.3 GSI
Die Grid Security Infrastructure ist ein Public-Key basiertes System, um alle
wesentlichen Sicherheitsaspekte im Grid zu verwalten. Die wie schon erwähnt
zum Einsatz kommende Public Key Kryptographie basiert dabei auf der Idee
eines öffentlichen, sowie eines geheimen Schlüssels, um verschlüsselte Nach-
richten auszutauschen bzw. User mit Hilfe sogenannter Zertifikate zu identifi-
zieren.

                                      4
Factory

                                          CreateService

                                                           HandleMap

        Registry               register
                                               GS Handle                GS Reference

                    Abbildung 1: WS Information Services

    Ebenfalls zum Einsatz kommen Signatur Verfahren, dabei werden zwar kei-
ne Nachrichten verschlüsselt verschickt, stattdessen wird das Schlüsselpaar ge-
nutzt im anhand eines spezifischen Hashwertes zu überprüfen ob eine Nach-
richt tatsächlich vom angegebenen Absender stammt und nicht von einem
Dritten verändert wurde.
    Das dritte Standbein stellen dann die Zertifikate dar, ein Zertifikat ist ein
Dokument, das ebenfalls mit verschiedenen kryptographischen Spitzfindigkei-
ten ausgestattet ist, und einem User zum Beispiel vorrübergehend Zugang zu
einem bestimmten Service verschafft.

3.3.1 Single Sign-On
Ein wichtiges Feature des GSI ist auch der Single Sign-On Mechanismus, der
es erlaubt sich nur einmal mit seinen Zugangsdaten im Grid zu identifizieren,
und dann über ein Proxy-Zertifakt auch auf andere Grid-Services zuzugreifen,
ohne sich erneut authentifizieren zu müssen.

3.4 CAS
Der Community Authorization Service ist eine weitere Sicherheitskomponen-
te, die aufbauend auf dem GSI die Zugriffskontrolle auf einen Verbund inner-
halb einer sogenannten Community regelt. Wenn dann beispielsweise ein Be-
nutzer auf einen Service in der entsprechenden Community zugreifen möchte,
stellt er eine Anfrage an den CAS, der dann ja nachdem welche Rechte der
User hat ein entsprechendes Zertifikat für den gewünschten Service ausstellt.

                                          5
3.5 GridFTP
GridFTP ist ein File Transfer Dienst, der auf dem allgemein bekannten FTP
aufbaut, es aber um einige Grid spezifische Features erweitert. Es dient dazu
im Grid Dateien zu übertragen

3.5.1 RFT
Reliable File Transfer ist ein auf GridFTP aufbauhender Web Service, der es
im Gegensatz zu GridFTP auch ermöglicht Dateien im Hintergrund zu über-
tragen, ohne auf eine Interaktive Session angewiesen zu sein. Dies ist natür-
lich for allem bei großen Datenmengen sinnvoll, sodass der Nutzer sich in der
Zwischenzeit abmelden kann, um sich zu einem späteren Zeitpunkt über den
Fortschritt der Dateiübertragung zu informieren.

3.5.2 RLS
Der Replica Location Service ist gedacht um den Zugriff auf entfernte Daten
zu beschleunigen, durch eine Art transparentes Caching System, das die Daten
local repliziert, und einen schreibgeschützten Zugriff darauf gewährt.

3.5.3 XIO
Die extensible Input/Output library ist ein zusätzlicher Mechanismus für die
Datenübertragung bzw. Ein/Ausgabe, die als API für Grid Applikationen ent-
wickelt wurde. Sie dient in erster Linie dazu eine portable Schnittstelle zu eta-
blieren, um die verschiedenen Grid Protokolle zu kapseln. Dazu bietet sie das
Prinzip der sogenannten “Drivers”, austauschbare Module die ein bestimmtes
möglicherweise auch experimenteller Datenübertragungsprotokoll implemen-
tieren. Dies ermöglicht ein einfaches Benchmarken und Testen neuer Protokol-
le.

4 Zusammenfassung
Im Zuge dieser Arbeit konnte ich natürlich nur die Oberfläche der OGSA strei-
fen, und einen allgemeinen Überblick geben. Für die Entwicklung von An-
wendungen auf Basis des Grids ist sicherlich eine wesentlich umfassendere
Beschäftigung mit den Interna und APIs von Globus 3 und der OGSA nötig.
Insbesondere die Definition der entsprechenden XML Dokumente ist nicht of-
fensichtlich. Aber mit wenn man mit den Grundkonzepten vertraut ist, und
einen Überblick über die vorhandenen Konzepte hat, kann man darauf auf-
bauen.
    Auffallend ist die stärker werdende Fokussierung auf Webservices im Be-
reich des Gridcomputing, die insbesondere im Vergleich zwischen Globus 2

                                       6
und Globus 3 ins Auge sticht. Dieser Trend wird sich sicherlich fortsetzen, so-
dass man in Zukunft sicherlich auf dem neusten Stand bleiben sollte, was diese
Technologieen betrifft.
   Sehr viel Informationen zu diesem ganzen Themenbereich habe ich auf der
developerWorks Website von IBM gefunden (siehe9), hier rate ich einem jeden
mit tiefergehenden Fragen dort nach Antworten zu suchen.

Literatur
[1] SOAP http://www.w3.org/TR/2003/REC-soap12-part0-20030624/
[2] WSDL http://www.w3.org/TR/wsdl
[3] The Physiology of the Grid
    http://www-unix.globus.org/toolkit/3.0/ogsa/docs/physiology.pdf
[4] The WS-Inspection and UDDI Relationship
    http://www-106.ibm.com/developerworks/webservices/library/ws-
    wsiluddi.html?dwzone=webservices
[5] http://www-106.ibm.com/developerworks/grid/library/gr-gt3/
[6] http://www-128.ibm.com/developerworks/library-combined/gr-
    visual/
[7] http://www-106.ibm.com/developerworks/grid/library/gr-indexgrid/
[8] http://www-unix.globus.org/toolkit/docs/3.2/gram/ws/developer/GT_3_2_GRAM.pdf
[9] http://www-130.ibm.com/developerworks/

                                      7
Sie können auch lesen