letmeintroducemyself - schmiedecke · 2009. 11. 30. · letmeintroducemyself • ilse schmiedecke...
TRANSCRIPT
Let me Introduce myselfLet me Introduce myself• Ilse Schmiedecke
– Teaching Computer Science at the Beuth-Hochschule
– Favourites: Programming, Software Engineering and Data Bases
(c) schmiedecke 09 2SOA
What this lecture is about:What this lecture is about:
• Black boxes,
• Bottled messages
• Santa‘s Headquarters
• And SOA
(c) schmiedecke 09 3SOAGrafiken: faqs.org,
allthingschristmas.com
Find out thatFind out that
• SOA is all about black boxes exchanging bottled messages
• And that Santa could do better using SOA
(c) schmiedecke 09 4SOA
Intro: Santa‘s HQs need SOAIntro: Santa‘s HQs need SOA
ebay-typo
(c) schmiedecke 09 5SOAFotos: amazon.de
Run every wish list throughALL programs?..........By Hand??
NO WAY!
(c) schmiedecke 09 6SOA
SOA ☺☺☺☺Make programs work together and take the
Staff Out Altogether
SOA ☺☺☺☺Make programs work together and take the
Staff Out Altogether
ebay-typo
(c) schmiedecke 09 7SOA
Was bedeutet SOA?Was bedeutet SOA?
• Service Oriented Architecture
• Viele konkurrierende Definitionen
• Verschiedene Abstraktionsstufen. Wir wählen die oberste:
(c) schmiedecke 09 8SOA
SOA ist ein Architekturkonzept für geschäftsbezogene IT-Anwendungslandschaften auf oberster Abstraktionsebene
Was ist Software-Architektur?Was ist Software-Architektur?Kampf gegen den sensiblen Riesen
NEVER touch
a running
system!
(c) schmiedecke 09 9SOA
SOA-DefinitionSOA-Definition
Eine SOA ist eine Anwendungslandschaft aus standardisierten Services,
die einzeln genutzt oder zur Realisierung von Geschäftsprozessen miteinander kombiniert werden können.
Eine SOA ist eine Anwendungslandschaft aus standardisierten Services,
die einzeln genutzt oder zur Realisierung von Geschäftsprozessen miteinander kombiniert werden können. miteinander kombiniert werden können. miteinander kombiniert werden können.
(c) schmiedecke 09 10SOA
AnwendungslandschaftAnwendungslandschaftPersonalverwaltung
Finanzabt.
Einkauf
Lagerverwaltung
VerkaufBuchhaltung
Unternehmen
betreibt viele Systeme
• groß
• heterogen
• redundant
• nur im Einzelfall und geheimnisvoll miteinander kommunizierend(c) schmiedecke 09 11SOA
Logistik
Integration!Integration!Unternehmensweite Datenmodelle
Komponenten-Architekturen
(c) schmiedecke 0912
SOA
funktioniert – aber Änderungen sind aufwändig
Was bremst die Flexibilität?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 Bilanz– Komplexer Prozess Mahnwesen…
– Zusatzfunktion Schriftverkehr – Zusatzfunktion Kontaktverwaltung …
• Bündel von Funktionen verschiedener Komplexität– teilweise Fachleistungen– teilweise komplette Geschäftsprozesse– teilweise fachfremde Hilfsfunktionen
Für jede Änderung von Geschäftsprozessen oder Regeln ist die
Black Box zu öffnen!
(c) schmiedecke 09 13SOAGrafik: www.derchirurg.net
Services bringen FlexibilitätServices 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.• und lassen sich für größere Aufgaben beliebig kombinieren.– „Programmieren auf Service-Ebene“ (z.B. BPEL)
(c) schmiedecke 09 14SOA
Never Touch a Running System!
SYSTEM
(c) schmiedecke 09 SOA 15
FEEL FREE TO TOUCH THE RUNNING SYSTEM
☺☺☺☺
SOA-Prinzip 1:Services an Geschäftsaufgaben ausrichten
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)
(c) schmiedecke 09 16SOA
Geschäft
IT
SOA-Prinzip 2:Flexible Service-Landschaft
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.
Verzeichnis-dienst
• Problem bei Punkt-zu-Punkt-Verbindungen
– Kein Anschluss unter dieser Nummer �
• „Finden und Binden“– 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 17SOA
Client Service
1. registrieren2. finden
3. binden
4. aufrufen
SOA-Prinzip 3:Die IT liefert die Infrastruktur
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 18SOA
Die SOA-Referenzarchitektur(Das SOA-Architekturkonzept)
Die SOA-Referenzarchitektur(Das SOA-Architekturkonzept)
Service-Bus
Service-Verzeichnis
Service-Überwachung
Prozess-Management
(c) schmiedecke 09 SOA 19
Service Service Service Service Service
Service-Bus
Und wie implementiert man das?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 20SOA
Vokabeln…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:SOAP-
Standards:−SOAP (Simple Object Access Protocol):
Nachrichtenformat (XML)
− WSDL (Webservice Description Language)
−Webservice-Beschreibungsformat (XML)
− UDDI (Universal Description, Discovery, and Integration):
−Verzeichnisdienst
(c) schmiedecke 09 SOA 21
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body><ns1:BabelFish xmlns:ns1="urn:xmethodsBabelFish"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <translationmode xsi:type="xsd:string">de_en</translationmode<sourcedata xsi:type="xsd:string">
Architekturkonzept</sourcedata>
</ns1:BabelFish> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Vokabeln…Vokabeln…
• ESB (Enterprise Service Bus)– Software zur Integration verteilter Services– im Kern ein Nachrichtensystem als Ersatz für starre Punkt-zu-
Punkt-Verbindungen– Zumeist mit weiterer Integrationssoftware verbunden
• ESB für Webservices – bieten typischerweise eine komplette SOA-Infrastruktur – einschließlich BPEL-Implementierung– OpenESB (Sun)– Axis– JBoss ESB
(c) schmiedecke 09 SOA 22
Service-Bus
Service-Verzeichnis
Service-Überwachung
Prozess-Management
Also was ist zu tun?Also was ist zu tun?
• ESB– auf dem Webserver installieren
• Webservices– schreiben, auf dem Webserver bereitstellen und im
ESB-Verzeichnis registrieren– öffentliche Webservices über das Internet einbinden
• Geschäftsprozesse Webserver
ESB
BPEL-Modul
BPEL-Modul
• 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, …)
(c) schmiedecke 09 SOA 23
Webserver
Webservices
Santa‘s OrchestrationSanta‘s Orchestration
• Wrap all programs into web services.
• Deploy each on its webserver‘s ESB.
• Now write BPEL modules to combine the services:– searchAmazon:– searchAmazon:
take a wish list entry, run it through amazon, feed the result through bestOfferand 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 resultsthrough bestOffer. Return result.
(c) schmiedecke 09 SOA 24
Santa‘s SOASanta‘s SOA
searchAll
searchEbaysearch
AmazonprocessTweet
• And what, if Santa wants to receive wish lists via twitter?• Integrate the twitter web service into his SOA and write another BPEL module!
(c) schmiedecke 09 25SOA
amazon ebay checkStore bestOffer ebayTypo
Twitter is a great idea:
If Santa is not real, s.o. else might
read your wish list instead ☺☺☺☺
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!Thank You!
(c) schmiedecke 09 SOA 26