Grundlagen des Grid Computing Webservices und Grid Computing Globus Toolkit 4 - Grundlagen ICA Joh. Kepler Universität Linz Eine Typische Grid-Applikation (Beispiel) • VO Management Service • Resource Discovery and Management Services • Job Management Service • Security, Data Management • Viele Interaktionen ⇒ Komplexität! Grundlagen des Grid Computing 2 Lösung: Standardisierung OGSA • Open Grid Forum (OGF) • Hat OGSA standardisiert – Open Grid Services Architecture • Gemeinsame und offene Architektur • Standardisierung aller Grid-Dienste • Ein Standard definiert nur die Schnittstelle, nicht die Implementierung Grundlagen des Grid Computing 3 Infrastruktur? • OGSA definiert Services und Schnittstellen • Man braucht eine Standardmethodik um auf die Services zuzugreifen – Wie rufe ich die definierten Dienste auf? • Verwendete Methode: Webservices • Problem: Grid Dienste (OGSA) erfordern „stateful Web-Services“ Grundlagen des Grid Computing 4 Stateful Web Services • Normale Webservices: – Anfrage / Antwort – Keine Speicherung eines Zustands zwischen Anfragen – non stateful • Webservices können auch stateful sein • Aber es gibt keine Standardmethode dafür Grundlagen des Grid Computing 5 WSRF • Web Service Resource Framework • Von OASIS entwickelt • Gemeinsame Entwicklung von Webservices- und Grid-Community – Passt in die Webservice-Architektur • WSRF spezifiziert die „stateful services“ für OGSA – OGSA ist die Architektur – WSRF ist die Infrastruktur, auf der OGSA basiert Grundlagen des Grid Computing 6 Globus Toolkit 4 • Webservice-basierte Version des Globus Toolkits • Bietet Dienste zur Implementierung von Grid Applikationen – – – – Resource Monitoring & Discovery Job Submission Infrastructure Security Infrastructure Data Management Grundlagen des Grid Computing 7 Globus Toolkit 4 (GT4) • GT4 ist größtenteils OGSA-compliant • Problem: GT4 und OGSA wurden parallel entwickelt / standardisiert • GT4 ist der de-facto Standard für webservicebasierte Grid Services • GT4 implementiert WSRF vollständig • GT4 enthält auch non-WSRF Komponenten • GT4 ist nicht die einzige Implementierung von WSRF Grundlagen des Grid Computing 8 Übersicht Andere Packete (WSRF.NET, ...) implementiert implementieren Globus implementiert Toolkit 4 WSRF Dienste für Grid Applikationen erfüllen Anforderungen von OGSA benötigt Webservices Stateful Webservices spezifiziert erweitern Grundlagen des Grid Computing 9 Übersicht • • • • • Applikationen basieren auf höheren Diensten (definiert von OGSA) OGSA ist standardisiert (OGF) GT4 beinhaltet viele OGSAServices WSRF von OASIS standardisiert und GT4 implementiert Webservices von W3C standardisiert und zB. von Apache Axis implementiert Grundlagen des Grid Computing Applications OGSA WSRF Web Services 10 Webservice Grundlagen • • • • • Eine weitere Technologie für verteiltes Rechnen Client / Server Anwendungen Platform- und sprachunabhängig Kommunikation über http Nachrichten werden in XML codiert – Overhead • • Teilweise eingeschränkte Funktionalität (zB vgl. mit Corba) Dienst für (Client-)Programme Grundlagen des Grid Computing 11 Webservice Beispiel 1. Discovery Service wird nach Service-Ort gefragt 2. Antwortet 3. Webservice wird nach seiner Schnittstelle gefragt 4. Schickt WSDL 5. SOAP Request 6. SOAP Response Grundlagen des Grid Computing Server A Discovery Service Server B Web Service 12 Webservice Beispiel • Finden des Webservice über Verzeichnisdienst • Abfragen des Service-Interface – Antwort: WSDL beschreibt das Interface • Aufruf des Webservice über einen SOAP Request – SOAP (Simple Object Access Protocol) – Antwort: SOAP Response Grundlagen des Grid Computing 13 Webservice Architektur-Schichten • Prozesse – Auffinden, Aggregation, ... • Beschreibung – WSDL • Aufruf – SOAP • Transport – HTTP Grundlagen des Grid Computing 14 WSDL & SOAP • WSDL: Webservice beschreibt sich selbst – Methoden – Parameter • SOAP – Spezifiziert das Format von Request und Response Grundlagen des Grid Computing 15 Addressierung & Stubs • Adressierung über HTTP URIs http://webservices.example.com/services/ExampleService • Client und Server Stubs generieren SOAP Nachrichten automatisch • Stubs werden aus der WSDL Beschreibung generiert – Bleiben erhalten, solange sich die Schnittstelle nicht ändert – Übernehmen (de)serialisierung der Kommunikation Grundlagen des Grid Computing 16 Serverseite HTTP Server • Webservice – Klassen, Methoden Application Server • SOAP Engine SOAP Engine – Übersetzt SOAP Nachrichten Web Service Web Service Grundlagen des Grid Computing 17 WSRF: Statefulness • Normale Webservices sind stateless – request/response – Können keine Informationen zwischen Aufrufen speichern – Webservices sollen im Allgemeinen Stateful sein • WSRF-Webservices sind stateful – zB. Calculator-Service soll aktuellen Wert zwischen Aufrufen speichern – Für Grid Services im Allgemeinen notwendig Grundlagen des Grid Computing 18 Der Ressource-Ansatz • Ressource als separate Entität – Hält aktuellen Status – Webservice selbst ist stateless – Ressource wird über einen Schlüssel identifiziert – Ein Webservice kann mehrere Ressourcen halten • Dateien • Datenbankinhalte Grundlagen des Grid Computing 19 WSRF-Spezifikation • Dient dem Management von Ressourcen – – – – WS-ResourceProperties WS-ResourceLifetime WS-ServiceGroup WS-BaseFaults • Verwandte Spezifikationen – WS-Notification – WS-Adressing Grundlagen des Grid Computing 20 WS-ResourceProperties • Eine Ressource besteht aus 0 oder mehr ResourceProperties • WS-ResourceProperties definiert die Art des Zugriffs • Die ResourceProperties werden in der WSDL Schnitttstellen Definition angegeben Grundlagen des Grid Computing 21 WS-ResourceLifetime • Lebenszyklen von Ressourcen sind unabhängig vom Server, der sie beeinhaltet • WS-ResourceLifetime beeinhaltet Methoden, um die Lebenszeit von Ressourcen zu steuern Grundlagen des Grid Computing 22 WS-ServiceGroup & WS-BaseFaults • Zum Gruppieren von Services und WSResources – Einfacher Zugriff durch einen „Single Point of Entry“ – Suchen von Services in einer Gruppe • WS-BaseFaults – Für Fehlmeldungen und -behandlungen Grundlagen des Grid Computing 23 WS-Notification • Kein Teil von WSRF, aber verwandt – Ein Webservice kann als NotificationProducer konfiguriert werden – Clients als NotificationConsumers • Clients werden bei Änderungen des Webservices (oder seines Status) benachrichtigt Grundlagen des Grid Computing 24 WS-Adressing • Dient zum Adressieren von Webservices und Ressourcen • Kann ein Paar aus Webservice + Ressource adressieren (eine WS-Resource) Grundlagen des Grid Computing 25 GT4 Komponenten • Common Runtime – Bibliotheken und Werkzeuge für Webservices und nonWebservices • Security – Grid Security Infrastructure • Data Management – Verwaltung großer Datenmengen • Information Services – Informationen über Ressourcen • Execution Management – Job Initierung, Management, Monitoring, ... Grundlagen des Grid Computing 26 Vordefinierte GT4 Services • Webservice-Schnittstellen: – – – – – – – GRAM: Job Management Reliable File Transfer (RFT) Delegation Monitoring and Discovery System (MDS) Community Authorisation (CAS) Data Access and Integration (OGSA-DAI) Grid TeleControl Protocol (GTCP) Grundlagen des Grid Computing 27 Vordefinierte GT4 Services • Non-Webservice – – – – – GridFTP Data Transport Replica Location Service (RLS) MyProxy Credential Repository eXtensible IO Library (XIO) SimpleCA Grundlagen des Grid Computing 28 GT4 Container • Funktionalität eines GT4 Containers – – – – Kommunikation: SOAP over HTTP Sicherheit: WS-Security auf Nachrichtenebene Logging: Log4j (Jakarta Commons Logging API) Definiert WSRF WS-Resources mit Informationen über den Container und die darin laufenden Services • Ein GT4 Java Container kann weiters – GRAM, MDS, RFT hosten Grundlagen des Grid Computing 29 GT4 Container - Client • Kann über Container-Registry Schnittstellen – feststellen welche Services laufen • Kann über über Administrationsschnittstellen – Adminstrationsaufgaben durchführen • Alle Container-Schnittstellen – sind mit WS-Interoperability (WS-I) kompatibel – können das WS-I Basic Security Profile verwenden Grundlagen des Grid Computing 30 GT4 Architektur Grundlagen des Grid Computing 31 GT4-Container Grundlagen des Grid Computing 32 Programmiersprachen • GT4 Container unterstützen zur Implementierung von Webservices – Java –C – Python Grundlagen des Grid Computing 33 Java Container • • • • Apache Axis als SOAP Engine „Simple Java Container“ von Globus oder Tomcat Servlet Container Ein GT4 Java Container kann weiters hosten: – GRAM, RFT, MDS-Index, MDS-Trigger, MDS-Archive ... Grundlagen des Grid Computing 34 Verschiedene Container Grundlagen des Grid Computing 35 Webservice Implementierung 1. Definieren der Schnittstelle • abstraktes Interface in WSDL 2. Service-Implementierung • Implementierung des Service und der RessourcenEIgenschaften 3. Definition der Deployment-Parameter • Verfassen eines Webservice Deployment Descriptor (WSDD) 4. Kompilieren und GAR-File erzeugen 5. Service Deployment Grundlagen des Grid Computing 36 Webservice Implementierung Grundlagen des Grid Computing 37