SOA-Grundlagen - schmiedecke.info
Transcrição
SOA-Grundlagen - schmiedecke.info
Let me Introduce myself • Ilse Schmiedecke – Teaching Computer Science at the Beuth-Hochschule – Favourites: Programming, Software Engineering and Data Bases (c) schmiedecke 09 SOA 2 What this lecture is about: • Black boxes, • Bottled messages • Santa‘s Headquarters • And SOA Grafiken: faqs.org, (c) schmiedecke 09 allthingschristmas.com SOA 3 Find out that • SOA is all about black boxes exchanging bottled messages • And that Santa could do better using SOA (c) schmiedecke 09 SOA 4 Intro: Santa‘s HQs need SOA ebaytypo Fotos: amazon.de (c) schmiedecke 09 SOA 5 Run every wish list through By Hand?? ALL programs?.......... NO WAY! (c) schmiedecke 09 SOA 6 SOA ☺ Make programs work together and take the Staff Out Altogether ebaytypo (c) schmiedecke 09 SOA 7 Was bedeutet SOA? • Service Oriented Architecture • Viele konkurrierende Definitionen • Verschiedene Abstraktionsstufen. Wir wählen die oberste: SOA ist ein Architekturkonzept für geschäftsbezogene IT-Anwendungslandschaften auf oberster Abstraktionsebene (c) schmiedecke 09 SOA 8 Was ist Software-Architektur? Kampf gegen den sensiblen Riesen NEVER touch a running system! (c) schmiedecke 09 SOA 9 SOA-Definition Eine SOA ist eine Anwendungslandschaft aus standardisierten Services, die einzeln genutzt oder zur Realisierung von Geschäftsprozessen miteinander kombiniert werden können. (c) schmiedecke 09 SOA 10 Anwendungslandschaft Einkauf Personalverwaltung Lagerverwaltung Finanzabt. Buchhaltung Verkauf Unternehmen Logistik betreibt viele Systeme • groß • heterogen • redundant • nur im Einzelfall und geheimnisvoll miteinander kommunizierend (c) schmiedecke 09 SOA 11 Integration! Unternehmensweite Datenmodelle Komponenten-Architekturen funktioniert – aber Änderungen sind aufwändig (c) schmiedecke 09 SOA 12 Was bremst die Flexibilität? • Beispiel Buchhaltungssoftware (Sage-KHK) – – – – – – Funktionen zum Kontieren Funktionen zum Budgetieren Funktionen zum Buchen Funktionen zur Belegerstellung Funktionen zur Kontenüberwachung Funktionen zum Geldverkehr… – Komplexer Prozess Bilanz – Komplexer Prozess Mahnwesen… – Zusatzfunktion Schriftverkehr – Zusatzfunktion Kontaktverwaltung … • Bündel von Funktionen verschiedener Komplexität – teilweise Fachleistungen – teilweise komplette Geschäftsprozesse – teilweise fachfremde Hilfsfunktionen Grafik: www.derchirurg.net (c) schmiedecke 09 SOA Für jede Änderung von Geschäftsprozessen oder Regeln ist die Black Box zu öffnen! 13 Services bringen Flexibilität • Kleine Black Boxes – alle Funktionen und Datenzugriffe als einzelne, selbständige Dienste – Dienste können sich gegenseitig nutzen / aufeinander aufbauen • kommunizieren über einen Nachrichtendienst – statt direkt miteinander (Flaschenpost) • und lassen sich für größere Aufgaben beliebig kombinieren. – „Programmieren auf Service-Ebene“ (z.B. BPEL) (c) schmiedecke 09 SOA 14 Never Touch a Running System! FEEL FREE TO TOUCH THE RUNNING SYSTEM ☺ SYSTEM (c) schmiedecke 09 SOA 15 SOA-Prinzip 1: Services an Geschäftsaufgaben ausrichten • Geschäfts-Services bieten, was das Geschäft braucht: – an Geschäftsaufgaben orientiert – unabhängig voneinander nutzbar – flexibel zu Geschäftsprozessen kombinierbar. • (Technische Services sorgen dafür, dass es funktioniert) Geschäft IT (c) schmiedecke 09 SOA 16 SOA-Prinzip 2: Flexible Service-Landschaft • Services werden auf Servern bereitgestellt – Server können ausfallen. – Services können bei Bedarf ersetzt, verschoben oder verdoppelt werden. Verzeichnisdienst • Problem bei Punkt-zu-Punkt-Verbindungen 1. registrieren 2. finden 3. binden – Kein Anschluss unter dieser Nummer • „Finden und Binden“ Client Service 4. aufrufen – Verzeichnisdienst listet verfügbare Services auf. – Kann dabei andere Verzeichnisdienste nutzen. – Client findet seinen Service und bindet ihn für die Dauer der Ausführung an sich. (c) schmiedecke 09 SOA 17 SOA-Prinzip 3: Die IT liefert die Infrastruktur • Nachrichtendienst (Service-Bus) • „Flaschenpostversand“ • Versand und sichere Zustellung von Nachrichten in einem Standardformat • Serviceverzeichnis • Registrieren, Suchen, Binden • Service-Überwachung: • Kompatibilität neuer Services • Einhaltung des Level of Service (Verfügbarkeit und Performance) • Prozess-Management zur Orchestrierung (optional) • Auch: „Workflow-Engine“ • Abstrakte Implementierung der Geschäftsprozesse aus Services • Zumeist BPEL-Implementierung (c) schmiedecke 09 SOA 18 Die SOA-Referenzarchitektur (Das SOA-Architekturkonzept) ServiceVerzeichnis ServiceÜberwachung ProzessManagement Service-Bus Service (c) schmiedecke 09 Service Service SOA Service Service 19 Und wie implementiert man das? • SOA ist „Architekturkonzept auf oberster Abstraktionsebene“ • Konkretisierung: auf eine mögliche Umsetzung festlegen • Beliebteste Umsetzung: – Webservices – mit Enterprise Service Bus (ESB) – Standards: SOAP, WSDL, UDDI (c) schmiedecke 09 SOA 20 Vokabeln… Webservice: – – – – – interaktive Webseite, auf Webserver bereitgestellt ohne grafische Benutzeroberfläche wird von Programmen benutzt „Flaschenpostformat“ ist (z.B.) SOAP SOAP-Anfragen sind HTTP-Anfragen, genau wie Anfragen aus dem Browser <SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> −SOAP (Simple Object Access Protocol): <SOAP-ENV:Body> Nachrichtenformat (XML) <ns1:BabelFish xmlns:ns1="urn:xmethodsBabelFish" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/s − WSDL (Webservice Description Language) <translationmode xsi:type="xsd:string">de_en</translationm −Webservice-Beschreibungsformat (XML) <sourcedata xsi:type="xsd:string"> Architekturkonzept − UDDI (Universal Description, Discovery, and Integration): </sourcedata> −Verzeichnisdienst </ns1:BabelFish> </SOAP-ENV:Body> (c) schmiedecke 09 SOA 21 </SOAP-ENV:Envelope> Standards: Vokabeln… • ESB (Enterprise Service Bus) – Software zur Integration verteilter Services – im Kern ein Nachrichtensystem als Ersatz für starre Punkt-zuPunkt-Verbindungen – Zumeist mit weiterer Integrationssoftware verbunden • ESB für Webservices – – – – – bieten typischerweise eine komplette SOA-Infrastruktur einschließlich BPEL-Implementierung OpenESB (Sun) ServiceServiceProzessVerzeichnis Überwachung Management Axis JBoss ESB Service-Bus (c) schmiedecke 09 SOA 22 BPEL-Modul Also was ist zu tun? • ESB – auf dem Webserver installieren • Webservices ESB – schreiben, auf dem Webserver bereitstellen und im ESB-Verzeichnis registrieren – öffentliche Webservices über das Internet einbinden BPEL-Modul Webserver • Geschäftsprozesse – in BPEL definieren, als Services bereitstellen und veröffentlichen – ggf. eine grafische Oberfläche erstellen und ebenfalls als Service bereitstellen • Glücklich, wer eine IDE benutzt, die ihm alle technischen Details abnimmt (Netbeans, Eclipse, Websphere, …) Webservices (c) schmiedecke 09 SOA 23 Santa‘s Orchestration • Wrap all programs into web services. • Deploy each on its webserver‘s ESB. • Now write BPEL modules to combine the services: – searchAmazon: take a wish list entry, run it through amazon, feed the result through bestOffer and return the result – searchEbay: take a wish list entry, run it through ebay and then bestOffer, save the result. In a loop, run the entry through ebayTypo, then through ebay and bestOffer, save the result. Run all results through bestOffer and return the result. – searchAll: run the wish list entry through storeCheck; if found, return the result. Otherwise run it through ebayCheck and amazonCheck, and the results through bestOffer. Return result. (c) schmiedecke 09 SOA 24 Santa‘s SOA search Amazon amazon • • search All searchEbay ebay checkStore bestOffer process Tweet ebayTypo twitter And what, if Santa wants to receive wish lists via twitter? Integrate the twitter web service into his SOA and write another BPEL module! Twitter is a great idea: If Santa is not real, s.o. else might read your wish list instead ☺ (c) schmiedecke 09 SOA 25 If you don‘t believe in Santa Claus after all, I hope that you do believe in – Black Boxes – Bottled Messages – And SOA ☺ Thank You! (c) schmiedecke 09 SOA 26