Open Grid Service Architecture, Grid Services und Globus 3
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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