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