26

LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,
Page 2: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 3: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 4: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 5: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

Intro: Santa‘s HQs need SOAIntro: Santa‘s HQs need SOA

ebay-typo

(c) schmiedecke 09 5SOAFotos: amazon.de

Page 6: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

Run every wish list throughALL programs?..........By Hand??

NO WAY!

(c) schmiedecke 09 6SOA

Page 7: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 8: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 9: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

Was ist Software-Architektur?Was ist Software-Architektur?Kampf gegen den sensiblen Riesen

NEVER touch

a running

system!

(c) schmiedecke 09 9SOA

Page 10: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 11: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

AnwendungslandschaftAnwendungslandschaftPersonalverwaltung

Finanzabt.

Einkauf

Lagerverwaltung

VerkaufBuchhaltung

Unternehmen

betreibt viele Systeme

• groß

• heterogen

• redundant

• nur im Einzelfall und geheimnisvoll miteinander kommunizierend(c) schmiedecke 09 11SOA

Logistik

Page 12: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

Integration!Integration!Unternehmensweite Datenmodelle

Komponenten-Architekturen

(c) schmiedecke 0912

SOA

funktioniert – aber Änderungen sind aufwändig

Page 13: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 14: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 15: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

Never Touch a Running System!

SYSTEM

(c) schmiedecke 09 SOA 15

FEEL FREE TO TOUCH THE RUNNING SYSTEM

☺☺☺☺

Page 16: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 17: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 18: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 19: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 20: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 21: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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>

Page 22: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 23: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 24: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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

Page 25: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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 ☺☺☺☺

twitter

Page 26: LetmeIntroducemyself - schmiedecke · 2009. 11. 30. · LetmeIntroducemyself • Ilse Schmiedecke – Teaching Computer Science attheBeuth-Hochschule – Favourites: Programming,

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