Grundlagen des Grid Computing Service Oriented Architectures ICA Joh. Kepler Universität Linz
Überblick Service-Oriented Architectures (SOAs) Verteilt Basierend auf Standards Lose gekoppelt Protokoll-unabhängig Vergleiche Grid Computing ähnlich SOAs sind Business-Orientiert basieren auf Webservice-Technologie Grundlagen des Grid Computing 2
Definition OASIS A paradigm for organizing und utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measureable preconditions and expectations. Grundlagen des Grid Computing 3
SOA Eigenschaften Eine SOA spezifiziert nur die Schnittstellen und trifft keine Annahme über die Implementierung Schnittstellen werden durch eine Beschreibungssprache spezifiziert (zb. WSDL) Ein Service in einer SOA soll eine wiederverwendbare, in sich geschlossene Arbeitseinheit darstellen Grundlagen des Grid Computing 4
SOA Serviceeigenschaften Hauptcharakteristika von SOA Services Alle Funktionen einer SOA sind als Services definiert (Business Functions, Business Transactions bestehend aus Teil-Services, System Services) Services sind autonom und opak: Externe Komponenten haben keinen Einblick in die Arbeitsweise einer Komponente (Black Box), nur die Schnittstelle ist nach aussen sichtbar Services sind aufrufbar, unabhängig davon ob sie lokal oder remote sind, welche Protokolle verwendet werden bzw. welche Infrastrukturkomponenten. Grundlagen des Grid Computing 5
Standards SOAs basieren auf Webservice-Standards Web Services Description Language (WSDL) Simple Object Access Protocol (SOAP) Universal Description, Discovery and Integration Registry (UDDI) Verteilte Services werden über die Schnittstellen angesprochen und integriert Grundlagen des Grid Computing 6
SOA Attribute Provider Business Aligned Business Goals Services combined support Service Description Consumer decouple Choreography Dynamic Reconfiguration Open Standards Grundlagen des Grid Computing 7
Abstrakte Sicht einer SOA Grundlagen des Grid Computing 8
SOA Schichten (1) 1. Operational Systems Layer Existierende Applikationen (CRM, ERP, Business Intelligence), inkludiert auch Legacy Applications Nutzt vorhandene Systeme und integriert sie durch service-orientierte Techniken. 2. Enterprise Components Layer Realisiert Funktionalität und erhält die QoS der angebotenen Services (um SLAs einzuhalten) durch Verwendung einer geeigneten Architektur zb. Applikationsserver für Workload Management und Load Balancing Grundlagen des Grid Computing 9
SOA Schichten (2) 3. Services Layer Hier werden die zu Verfügung gestellten Services beschrieben. Sie können entdeckt, statisch verwendet oder in composite services integriert werden. Dies kann auch nur eine Untermenge der implementierten Services betreffen. 4. Business Process Composition or Choreography Layer Bietet Integration von Services, die in Schicht 3 exportiert wurden zur Unterstützung von spezifischen Geschäftsprozessen oder Use Cases. Grundlagen des Grid Computing 10
SOA Schichten (3) 5. Access or Presentation Layer Nicht direkt relevant, da SOAs sich auf die Funktionalität (s. B2B) beziehen Wichtig ist die Standardkonformität 6. Integration Unterstützt Service-Integration durch zb. Routing, Protokolabgleich (vgl. WSDL) 7. QoS Überwachung, Management und Erhaltung von Sicherheit, Leistung und Verfügbarkeit. Grundlagen des Grid Computing 11
SOA Implementierung SOAs werden üblicherweise durch Web-Services implementiert Daher: selbe Technologien Services werden über http(s) durch SOAP-Requests aufgerufen SOAP Listener empfängt request, extrahiert XML-Body, konvertiert ihn in ein lokal verwendbares native Format und leitet ihn an die entsprechend zuständige Komponente weiter Services laufen in Webservice-Containern Beinhalten Implementierung Service Lifecycle Management (starten, beenden,...) Ein Container kann mehrere Services hosten Antwort eines Service ebenfalls über SOAP / XML Grundlagen des Grid Computing 12
Service Aggregation & Brokering Service Aggregation: Zusammenfügen von Basis-Services zu Services mit höherer Komplexität zb. durch Kompositionssprachen wie BPEL Service Aggregator ist sowohl Service Anbieter als auch Service-Klient Service Broker Hält Index verfügbarer (qualitativ guter) Services Bietet Zusatzinformationen zur Dienstqualität bzw. SLAs der indizierten Services Ein UDDI Service kann als Broker dienen Grundlagen des Grid Computing 13
Enterprise Service Bus (ESB) Unterstützt die Interoperation verschiedener Komponenten Paarweise Integration von Komponenten ist nicht skalierbar Daher: Integrationsschicht zur Interaktion der Komponenten untereinander (ESB) Bietet standardbasierte Integration von verteilten SOA-Komponenten Zuständig für Kontrolle, Weiterleitung und Übersetzung aller Nachrichten zwischen Komponenten einer SOA Besonders wichtig bei Legacy-Komponenten (zb. nicht WSDL-compliant) ESB-Endpoints für Services sind nicht an deren physikalische Lokalität gebunden (logische Namen werden durch den ESB auf physikalische Adressen (hostname:port) abgebildet) Erlaubt Migration / Updates / Ersetzen von Services Grundlagen des Grid Computing 14
Enterprise Service Bus (ESB) Grundlagen des Grid Computing 15
Event-Driven SOA Geschäftsprozesse sind asynchron Bestellungen, Bezahlungen können jederzeit eintreffen SOA muss dies unterstützen Service Endpoints müssen schnell auf asynchrone Events reagieren Üblich: Event Source schickt Nachrichten über den ESB Subskribierte Consumer werden notifiziert implementiert durch SOAP, WSDL, BPEL, WS-ReliableMessaging, WS-Notification Grundlagen des Grid Computing 16
Event-Driven SOA Der ESB kann als Kontaktstelle zwischen Serviceprovider und consumer dienen Server und Client sind beim ESB subskribiert und kommunizieren über asynchrone Ereignisse Benötigt keinen WSDL Support Event-Metadaten für die Interaktion werden mit denselben publiziert Grundlagen des Grid Computing 17
Schlüsseleigenschaften von SOAs (1) Einbindung von Legacy Applikationen oft technisch veraltet, aber betriebsnotwendig Kommunikation der ESB muss die Kommunikation zwischen Komponenten und Services ermöglichen (Übersetzung,...) Dynamische Konnektivität Keine spezielle clientseitige Bibliothek zur Verbindung mit einem Service erforderlich Inhaltsbasiertes Routing Der ESB muss Nachrichten nach ihrem Inhalt den entsprechenden Subscribern zukommen lassen Endpoint Discovery mit QoS Unterstützung Der Klient soll den gewünschten Service-Endpoint finden können Grundlagen des Grid Computing 18
Schlüsseleigenschaften von SOAs (2) Integration heterogener Services zb durch Service Wrapper Formatkonvertierung durch den ESB unterstützt Komponenten-Interoperabilität Verlässliche Nachrichtzustellung Zwischenspeichern von temporär nicht zustellbaren Nachrichten Zustellung von Antworten Sicherheitsunterstützung Verschlüsselung, Authentifizierung, Autorisierung Berücksichtigung von Systemheterogenität Grundlagen des Grid Computing 19
Schlüsseleigenschaften von SOAs (3) Unterstützung für langlaufende Prozesse und Transaktionen Prozesse sollen während Ihrer Laufzeit Nachrichten austauschen können Transaktionsunterstützung (Rollback bei Fehlern) Management & Monitoring Zustandsüberwachung der Komponenten Skalierbarkeit zb. Formatkonvertierungen sind aufwendig Replikation von kritischen Komponenten Grundlagen des Grid Computing 20
Integrationslösungen Integration Broker Zentrales Element Wickelt Kommunikation mit anderen Komponenten ab Unterstützt asynchrone Kommunikation Verbindung erfolgt über Resource Adapters isolieren Applikations-APIs von der Nachrichtenübertragung Grundlagen des Grid Computing 21
Integration Broker Grundlagen des Grid Computing 22
Integrationslösungen Application Server Liefert Web-Anbindung für Applikationen Benötigt werden Wrapper / Adapter für lokale / legacy Komponenten zur Datenkonversion und Kommunikation mit dem Application Server Application Server unterstützen synchrone und asynchrone Kommunikation Grundlagen des Grid Computing 23
Application Server Grundlagen des Grid Computing 24
Integrationslösungen WSDL-basierte Integration Integration verschiedener Technologien (zb. J2EE und.net) Alle Komponenten sind über ein WSDL- Interface an den ESB angeschlossen Entweder Native Support oder Adapter für Komponenten mit Proprietären Interfaces Grundlagen des Grid Computing 25
WSDL-basierte Integration Grundlagen des Grid Computing 26