SOA mit Oracle Fusion Middleware - Diplomarbeit

Die Seite wird erstellt Philipp Weise
 
WEITER LESEN
SOA mit Oracle Fusion Middleware - Diplomarbeit
Diplomarbeit

SOA mit Oracle Fusion Middleware

             zur Erlangung des akademischen Grades
                    Diplom-Informatiker (FH)

                         vorgelegt dem
 Fachbereich Mathematik, Naturwissenschaften und Informatik der
               Fachhochschule Gießen-Friedberg

                               von

                        Joachim Ansorg

                         im August 2007

            Referent: Prof. Dr. rer. nat. Michael Jäger
            Korreferent: Prof. Dr. rer. nat. Bodo Igler
SOA mit Oracle Fusion Middleware - Diplomarbeit
Eidesstattliche Erklärung
Hiermit versichere ich, die vorliegende Arbeit selbstständig und unter ausschließlicher Verwen-
dung der angegebenen Literatur und Hilfsmittel erstellt zu haben.

Die Arbeit wurde bisher in gleicher oder ähnlicher Form keiner anderen Prüfungsbehörde vorge-
legt und auch nicht veröffentlicht.

Ort und Datum

Unterschrift (Joachim Ansorg)
SOA mit Oracle Fusion Middleware - Diplomarbeit
Einleitende Hinweise
  Querverweise. Verweise auf andere Stellen im Dokument werden grafisch hervorgehoben:
►Kapitel 1. Dies wird bei Verweisen auf Textstellen, Fußnoten und Literaturangaben verwendet.

   Literaturangaben. Quellenangaben werden im Fließtext angegeben. Das Format bei einem
Verfasser besteht aus dem Nachnamen und einem Minuszeichen: ►[nachname-1]. Bei mehreren
Autoren wird nur der Nachname des Hauptverfassers zusammen mit einem Pluszeichen in die An-
gabe aufgenommen: ►[nachname+1]. Das numerische Suffix dient jeweils der Unterscheidung
von sonst gleichnamigen Einträgen.

Bei Literaturangaben für Bücher werden jeweils die relevanten Seiten angegeben. Viele der Bü-
cher wurden in ihrer Online-Fassung gelesen1. Bei einigen ist es nicht möglich, die Seitennummer
zum gelesenen Text zu ermitteln. Daher enthalten Literaturangaben zu diesen Online-Fassungen
den Namen des gelesenen Abschnitts.

Die Angaben zu den verwendeten Internetseiten enthalten keine Angabe über die genaue Stelle.
Wikipedia-Artikel wurden nicht zur Erarbeitung dieser Arbeit verwendet. Verweise auf diese Arti-
kel wurden jedoch eingefügt, um dem Leser einen schnellen Überblick zu bestimmten Themenge-
bieten zu ermöglichen.

   Internetseiten. Inhaltlich wichtige Internetseiten werden als normale Literaturangaben einge-
bunden. Andere Verweise auf Internetseiten werden bis auf die Füllfarbe wie interne Verweise ge-
kennzeichnet. Die URL steht jeweils in der Fußnote, der Hostname im Fließtext: ►www.fh-gies-
sen.de►2.

  Fachbegriffe. Englische Fachbegriffe werden, soweit möglich und sinnvoll, in der deutsch
Übersetzung verwendet. Beim ersten Auftreten eines bislang unerwähnten Begriffes wird auf das

Glossar im Anhang verwiesen: Fachbegriff•.

Manche Begriffe werden detailliert behandelt. Im Glossar ist dann ein Verweis auf den jeweiligen
Abschnitt der Arbeit zu finden. Es ist sinnvoll, das Glossar (►Anhang A) vor dem restlichen Teil
dieser Arbeit zu lesen.

 1
   ►safari.oreilly.com ist ein Onlineportal, auf dem die wichtigsten Verleger von IT-Literatur ihre Bücher ge-
 gen einen monatlichen Betrag zum Lesen anbieten.
 2
   http://www.fh-giessen.de/fachbereich/mni/
SOA mit Oracle Fusion Middleware - Diplomarbeit
SOA mit Oracle Fusion Middleware - Diplomarbeit
Zusammenfassung
Zur Zeit wird das Thema „serviceorientierte Architektur“ (SOA) in der Informatik intensiv disku-
tiert. Für die Sylphen GmbH & Co. KG, dem Auftraggeber dieser Arbeit, ist es wichtig, Erfah-
rungswissen in solch aktuellen Gebieten zu besitzen. Neben theoretischem Wissen geht es vor al-
lem um die Evaluierung der praktischen Tauglichkeit für das Unternehmen. Daher wurde be-
schlossen, diesem Thema im Rahmen einer Diplomarbeit auf den Grund zu gehen.

Da Sylphen ein Partner von Oracle ist, wurde als technische Plattform Oracle Fusion Middleware•
gewählt. Die Aufgabenstellung lässt sich durch drei konkrete Fragen zusammenfassen:
      Wie ist SOA, insbesondere aus Entwicklersicht, zu beurteilen?

      Wie gut kann mit Oracle Fusion Middleware eine serviceorientierte Architektur entwickelt
        werden?
      Wie ist SOA in Bezug auf einen möglichen Einsatz bei Sylphen zu beurteilen?

Die vorliegende Diplomarbeit möchte diese Fragen beantworten. Deshalb wird die Thematik der
serviceorientierten Architekturen aus drei unterschiedlichen Richtungen betrachtet.

Im ersten Teil (►Abschnitt 1, S. 1ff) werden die Grundlagen von SOA und Fusion Middleware er-
läutert. Hier werden die wichtigsten Begrifflichkeiten definiert und erläutert. Außerdem werden
einige verwandte Technologien erläutert, soweit sie im weiteren Verlauf der Arbeit angewandt
werden.

Der zweite Teil (►Abschnitt 2, S. 18ff) baut darauf auf. Hier werden die praktischen Seiten der
serviceorientierten Architekturen beleuchtet. Dies geschieht, indem die Entwicklung einer service-
orientierten Anwendung dokumentiert wird. Hauptanliegen ist, die gewonnene Erfahrung festzu-
halten.

Der dritte Teil dieser Arbeit (►Abschnitt 3, S. 45ff) diskutiert die Thematik der serviceorientierten
Architekturen auf einer abstrakten, theoretischen Ebene. Hier wird ein Ansatz geschaffen, um die
Usability von Fusion Middleware bewerten zu können. Weiterhin wird die Anwendbarkeit von
SOA in kleinen Unternehmen untersucht. Zuletzt werden einige gängige Behauptungen zu SOA
untersucht, um so ein realistisches Bild der Thematik zu erhalten.

Im Fazit (►Abschnitt 4, S. 67ff) dieser Arbeit werden die Ergebnisse dieser Teile herangezogen,
um SOA und Oracle Fusion Middleware in wenigen Sätzen zusammenfassend zu beurteilen.
Danksagung
Rückblickend kann ich sagen, dass mir die Diplomarbeit großen Spaß gemacht hat. Viele Tore zu
neuen Sachgebieten haben sich geöffnet und viel Freiraum gegeben, die Arbeit zu gestalten.

Rückblickend gilt jedoch auch, dass die Erstellung, besonders gegen Ende, viel Stress bedeutet.
Ohne der fleißigen Mithilfe einiger Personen sähe das vorliegende Ergebnis ganz anders aus►3.

Carsten, mein technischer Ansprechpartner bei Sylphen, war immer geduldig, kompetent und vol-
ler guter Ideen. Ihm war die Zeit nie zu schade, um in den Diskussionen über SOA mit an den Kan-
ten dieser Arbeit zu feilen.

Christoph hat sich Zeit genommen, das Dokument ausführlich unter die Lupe zu nehmen. Die da-
bei entstandenen Vorschläge zur Verbesserung haben viel zur Qualität beigetragen.

Auch mein Bruder Matthias hat viel beigesteuert: etliche gute Ansatzpunkte in den anfänglichen
Diskussionen über die Ziele der Arbeit, die OpenOffice-Dokumentenvorlage und vor allem viel
Zeit für die Korrekturen der einzelnen Teile.

Michael hat viel Zeit investiert, die Arbeit auf Herz und Nieren zu prüfen. Seine zahlreichen, detail-
lierten Anmerkungen haben viel zur Qualität und zum besseren Verständnis beigetragen.

Ralph möchte ich, stellvertretend für Sylphen, für die gute Zusammenarbeit mit der Firma danken.
Der unkomplizierte Umgang in der Firma ist immer wieder ein Plus.

Besonders dankbar bin ich auch all denen, die in den stellenweise ziemlich sauren Apfel gebissen
haben, die Rechtschreibung zu korrigieren: Carsten, Daniel, Lars, Matthias, Michael und Ralph.

 3
     Die Aufzählung erfolgt alphabetisch, meine Dankbarkeit gilt allen gleich.
Inhaltsverzeichnis

Inhaltsverzeichnis
►          Zusammenfassung...........................................................................v
►          Danksagung...................................................................................vii
►          Inhaltsverzeichnis...........................................................................ix
►1         Grundlagen......................................................................................1
 ►1.1      Serviceorientierte Architekturen.........................................................1
  ►1.1.1    Vorgeschichte und Randbedingungen...................................................1
  ►1.1.2    Definition.........................................................................................2
  ►1.1.3    Dienste............................................................................................4
  ►1.1.4    Muster.............................................................................................9
  ►1.1.5    Praxisberichte...................................................................................9
 ►1.2      Oracle Fusion Middleware................................................................10
  ►1.2.1    Oracle SOA-Suite.............................................................................10
  ►1.2.2    Entwicklungsumgebung....................................................................12
 ►1.3      Verwandte Technologien.................................................................12
  ►1.3.1    EJB.................................................................................................13
  ►1.3.2    Business Process Execution Language.................................................13
  ►1.3.3    Webservice-Erweiterungen................................................................15
►2         Konzeption und Implementierung einer SOA-Anwendung..........18
 ►2.1      Aufgabenstellung............................................................................18
 ►2.2      Analyse...........................................................................................20
  ►2.2.1     Anwendungsfälle.............................................................................20
  ►2.2.2     Geschäftsprozesse...........................................................................26
 ►2.3      Entwurf............................................................................................27
  ►2.3.1     Datenbank......................................................................................28
  ►2.3.2     Dienste..........................................................................................28
 ►2.4      Implementierung.............................................................................32
  ►2.4.1     Allgemeines....................................................................................32
  ►2.4.2     Entwicklung eines Basisdienstes.........................................................32
  ►2.4.3     Entwicklung eines Dienstes der Prozessschicht.....................................34
 ►2.5      Verbesserungsmöglichkeiten...........................................................38
 ►2.6      Bewertung.......................................................................................42
►3         Anwendung und Beurteilung.........................................................45
 ►3.1      Usability..........................................................................................45
  ►3.1.1    Definition.......................................................................................45
  ►3.1.2    Überblick der Bewertungsverfahren....................................................46
  ►3.1.3    Bewertungsvorschlag........................................................................48
 ►3.2      SOA in kleinen Unternehmen...........................................................55
  ►3.2.1    Umstellung kleiner Unternehmen.......................................................55

                                                    ix
Inhaltsverzeichnis

 ►3.2.2     SOA im Kundenauftrag.....................................................................59
►3.3      Theorie und Praxis..........................................................................61
 ►3.3.1    Versprechen an den Geschäftsbereich.................................................62
 ►3.3.2    Versprechen an den IT-Bereich..........................................................64
►4        Fazit...............................................................................................67
 ►4.1     SOA.................................................................................................67
 ►4.2     Oracle Fusion Middleware................................................................68
 ►4.3     Ausblicke........................................................................................69
►A        Glossar..............................................................................................I
►B        Detaillierte Datenbankstruktur......................................................IX
►         Glossarverzeichnis..........................................................................XI
►         Tabellenverzeichnis......................................................................XIII
►         Abbildungsverzeichnis.................................................................XIV
►         Literaturverzeichnis.......................................................................XV
►         Datenträger...................................................................................XIX

                                                   x
1 Grundlagen

1 Grundlagen
   Zusammenfassung. In diesem Teil der Arbeit werden die Grundlagen erläutert, die für das

weitere Verständnis zwingend notwendig sind. Themen wie XSL•, XML Schema•, WSDL• und

SOAP• werden daher als bekannt vorausgesetzt. Eine kurze Erläuterung dieser Begriffe mit zu-
sätzlichen Literaturverweisen ist im Glossar (►Abschnitt A, S. I) zu finden.

1.1 Serviceorientierte Architekturen

1.1.1 Vorgeschichte und Randbedingungen

   Zusammenfassung. Softwarearchitekturen haben sich im Laufe der Zeit immer wieder ge-
wandelt. Die folgenden Abschnitte geben einen kurzen, gerafften Überblick über die Entwicklung
bis hin zur serviceorientierten Architektur. Dabei werden die Entwicklungsschritte, die für diese
Arbeit nicht relevant sind, bewusst ausgelassen.

   Entwicklung der Softwarearchitektur. Zu Anfang wurde Software monolithisch program-
miert. Alles bestand aus einem großen Stück Quellcode. Die Probleme, die damit ebenfalls er-
schaffen wurden, versuchte man durch Modularisierung zu lösen.

Der Trend ging weiter zu Terminals, um so von mehreren Orten auf die Mainframe-Software zu-

greifen zu können ►[britton+1, Abschnitt 2.1]. Die nächsten Entwicklungsschritte führten zu netz-
werkfähiger Software, wie beispielsweise Datenbank-Anwendungen.

Durch die weitere Entwicklung wurden allgemeinere Modelle verteilter Systeme geschaffen, wie
etwa das Client-Server Modell. Programme sollen die Fähigkeiten einer Serversoftware verwen-
den können. Eine der dazu entwickelten Lösungen ist RPC, der Aufruf von entfernten Methoden.

Später wurde CORBA• definiert, eine Spezifikation objektorientierter Middleware. Sie soll die Er-
stellung verteilter Anwendungen vereinfachen.

Das Internet hat die Softwarewelt weiter verändert. Die Einsatzgebiete von Anwendungen wer-
den größer und die Anforderungen höher. XML-RPC wurde bespielsweise als pragmatischer An-
satz geschaffen, entfernte Methodenaufrufe mit Hilfe von XML und den bekannten Internetproto-
kollen zu ermöglichen. Die formalisierende Weiterentwicklung von XML-RPC führte zu SOAP.
SOAP spielt für Webservices eine große Rolle. Diese sind eine der technischen Möglichkeiten die
Dienste einer serviceorientierten Architektur zu erstellen.

Die Geschichte zeigt, dass in der Softwareentwicklung Fehler begangen wurden. Die erstellten
Anwendungen waren groß und unflexibel. Es war nicht oder nur mit sehr hohem Aufwand mög-
lich, Änderungen am System durchzuführen. Die immer neuen Entwicklungen möchten die Pro-

                                                  1
1 Grundlagen

bleme der Vergangenheit lösen und gleichzeitig innovativ sein. Allgemein gilt, dass die Erstellung
von Software immer mehr auf die Flexibilität des Gesamtsystems ausgerichtet ist.

Eine der zur Zeit diskutierten Innovationen der Softwarearchitektur ist SOA.

   Geschäftliche Aspekte. Die Entwicklung der oben genannten Softwaresysteme wurde meis-
tens von kommerziellen Interessen getrieben.

Unternehmen müssen sich in einer immer mehr globalisierten Welt behaupten. Die an sie gestell-
ten Anforderungen können sich schnell ändern. Geschäftsprozesse ändern sich nicht mehr in jährli-

chen Abständen, sondern monatlich oder gar wöchentlich ►[carter-1, S. 8].

Die Flexibilität eines Unternehmens wird daher immer wichtiger. Nur so ist es möglich, sich dem
Markt und den neuen Geschäftschancen anzupassen. Um diese neue Flexibilität durchsetzen zu
können, wird Informationstechnik benötigt. Ohne der Hilfe der Informatik sind in der heutigen
Zeit Verbesserungen eines Unternehmens nur schwer möglich.

IT- und Geschäftsbereich sind notwendig, um ein Unternehmen . Daher ist es notwendig, diese
beiden Bereiche aufeinander abzustimmen. Bei den zu entwickelnden Softwaresystemen wird auf
hohe Flexibilität geachtet um ein Unternehmen für die neuen Herausforderungen bereit zu ma-
chen.

Das Konzept der serviceorientierten Architektur verspricht, Unternehmen zu einer höheren Flexi-
bilität zu verhelfen.

1.1.2 Definition

    Zusammenfassung. Serviceorientierte Architekturen werden ganz unterschiedlich definiert.
Im folgenden Abschnitt werden zuerst die bestehenden Definitionen der Literatur zusammenge-
fasst und diskutiert. Anschließend wird der Versuch einer eigenen Definition unternommen.

1.1.2.1 Bestehende Definitionen
Die verfügbare Literatur enthält einige Definitionen von serviceorientierten Architekturen. Abhän-
gig von ihrer jeweiligen Perspektive unterscheiden sie sich in verschiedenen Punkten. Wie schon
Tilkov und Starke schreiben, gibt es keine einzelne, umfassende Definition des Begriffes
►[starke+1, S. 9]. Im Folgenden werden nun einige der Definitionen aufgeführt. So können die
verschiedenen Schattierungen des Begriffes erfasst werden.

               „Service oriented architecture (SOA) is a business-driven IT architectural ap-
               proach that supports integrating your business as linked, repeatable business
               tasks or services. SOA helps today's businesses innovate by ensuring that IT
               systems can adapt quickly, easily, and economically to support rapidly chang-

                                                   2
1 Grundlagen

               ing business needs. It helps customers increase the flexibility of their business
               processes, strengthen their underlying IT infrastructure, and reuse their exist-
               ing IT investments by creating connections among disparate applications and
               information sources.“ ►[carter-1, S. 44]

Bei dieser betriebswirtschaftlichen und organisationsorientierten Sicht werden einige Punkte be-
sonders betont. Hier wird vor allem die Ausrichtung der IT an den geschäftlichen Zielen des Un-
ternehmens deutlich. Die Motivation einer serviceorientierten Architektur ist zuallererst der wirt-
schaftliche Mehrwert, der so für ein Unternehmen entsteht. Das Ziel ist, die Flexibilität eines Un-
ternehmens mit einer geeigneten technischen Infrastruktur zu unterstützen.

               „A service-oriented architecture is a style of design that guides all aspects of
               creating and using business services throughout their lifecycle (from concep-
               tion to retirement). An SOA is also a way to define and provision an IT infra-
               structure to allow different applications to exchange data and participate in
               business processes, regardless of the operating systems or programming lan-
               guages underlying those applications.“ ►[newcomer+1, Abschnitt „Introduc-
               tion to SOA with Web Services“]

Hier wird deutlich, dass eine serviceorientierte Architektur unabhängig von der Implementierungs-
technologie eingesetzt werden kann. SOA-Dienste werden hauptsächlich eingesetzt, um Daten
auszutauschen und um in die Geschäftsprozesse eines Unternehmens integriert zu werden.

               „SOA is not a product. It isn't something that you build or buy. SOA is some-
               thing you do. It's an approach taken when building software systems. SOA is
               like health and fitness. There is no quick fix. You can't just buy a diet book and
               join a health club and expect to get fit. You have to follow the diet and exer-
               cise regularly. It requires a lifestyle change. The same is true of SOA.“
               ►[manes-1, S. 5]

Diese allgemeine Anmerkung betont, dass SOA nicht eine Ansammlung technischer Dienste ist. Es
handelt sich um ein unternehmensübergreifendes Konzept. SOA ist nicht bloß eine Softwarearchi-
tektur, sondern die Denkweise eines Unternehmens, ein Paradigma.

Die erfolgreiche Einführung dieses Ansatzes erfordert Zeit. Ebenfalls sehr wichtig ist die Unter-
stützung durch die Unternehmensführung, um wirklich diesen übergreifenden Ansatz durchsetzen
zu können.

1.1.2.2 Eigene Definition

    Definition. Dieser Abschnittes schlägt eine eigene Definition vor. Neben dem persönlichen
Verständnis serviceorientierter Architekturen dienen die oben erfassten Definitionen als Grundla-
ge.

                                                     3
1 Grundlagen

               „Eine serviceorientierte Architektur (SOA) bezeichnet ein IT-gestütztes, un-
               ternehmensweites Paradigma zur Steigerung der geschäftlichen Agilität. Das
               zentrale Strukturelement, der Dienst, hat eine geschäftliche Ausrichtung,
               wird technisch realisiert, ist idealerweise im Unternehmen einzigartig und
               wird – bevorzugt lose gekoppelt – in verschiedenen Geschäftsprozessen ver-
               wendet.“

   Erläuterung. SOA wird besonders als Denkweise eines Unternehmens betont. Diese betrifft
vor allem die geschäftliche Seite, braucht zur Realisierung jedoch die Unterstützung der techni-
schen Seite. Der Dienst ist Merkmal beider Seiten. Der Nutzen eines Dienstes entsteht erst durch
den Einsatz in den fachlichen geprägten Bereichen – den Geschäftsprozessen.

1.1.3 Dienste

   Zusammenfassung. Ein Dienst (engl. service) ist das wesentliche Element der serviceorientier-
ten Architektur. In diesem Abschnitt werden die Grundlagen des Dienstbegriffes erläutert. Weiter-
hin wird ein Modell vorgestellt, wie die Dienste einer serviceorientierten Architektur strukturiert
werden können.

1.1.3.1 Ursprung
Der Begriff „Dienst“ stammt aus der Geschäftswelt und bezeichnet ganz allgemein eine Dienstleis-
tung. Diese benötigt einen Anbieter (engl. provider) und einen Konsumenten (engl. consumer). Bei-
spielsweise ist ein Patient der Konsument der Dienstleistung, die von einem Arzt angeboten wird.

Die Informatik bedient sich dieser Begriffe und überträgt sie auf technische Systeme. Dienste be-
zeichnen auch hier Dienstleistungen zum Erledigen bestimmter Aufgaben.

1.1.3.2 Definition
Da Dienste die wichtigsten Bausteine einer serviceorientierten Architektur sind, werden nun die
charakteristischen Eigenschaften beschrieben. Im Folgenden werden die Stellen des Systems, die
einen Dienst verwenden, als Dienstkonsumenten bezeichnet. Der Dienst selbst ist der Dienstanbie-
ter. Ein Anbieter kann auch als Konsument anderer Dienste agieren, um seine Dienstleistung zu er-
bringen.

Die folgenden Absätze behandeln die Eigenschaften, die einen Dienst charakterisieren.

     Geschäftsfunktionalität. Ein Dienst wird vor allem durch den geschäftlichen Mehrwert
        definiert. Er enthält eine definierte Menge von Funktionen, die für die Aufgaben eines Un-
        ternehmens relevant sind.

        Es gibt auch Dienste, die rein technische Aufgaben erfüllen. Diese sind sinnvoll, jedoch
        nicht die Grundbausteine einer serviceorientierten Architektur. ►[starke+1, S. 19]

                                                  4
1 Grundlagen

        Die Geschäftslogik wird durch die Schnittstelle verfügbar gemacht. Sie ist Teil der Imple-
        mentierung ►[krafzig+1, S. 60].

      Schnittstelle. Der Zugriff auf einen Dienst geschieht nur über eine Schnittstelle. Dies er-
        möglicht die lose Kopplung von Diensten und die Möglichkeit, die Implementierung ohne
        Einfluss auf die Konsumenten auszutauschen. ►[krafzig+1, S. 60], ►[starke+1, S. 19]

      Daten. Zu einem Dienst können auch Daten gehören. Diese stammen aus externen
        Quellen, werden aber vom Dienst verwaltet (siehe ►Basisdienste, S. 6). Die Dienstdaten
        orientieren sich an der jeweiligen Geschäftsfunktionalität, die hier implementiert wird. Da-
        bei gilt, dass nur diese Daten zum Dienst gehören. Daten anderer Bereiche werden von
        anderen Diensten verwaltet. ►[krafzig+1, S. 60]

      Implementierung. Jeder Dienst muss über eine Implementierung seiner Schnittstelle
        verfügen. ►[krafzig+1, S. 60], ►[starke+1, S. 19]

        Die Implementierung umfasst mindestens die Geschäftsfunktionalität des Dienstes. Wei-
        terhin kann sich hier beispielsweise die Persistenzlogik zur Verwaltung der Dienstdaten
        befinden.

      Dienstvertrag. Zu jedem Dienst gehört eine Beschreibung. Diese enthält Informationen
        über den Zweck, die Funktionalität, die Rahmenbedingungen und die Verwendung des

        Dienstes. Eine formale Beschreibung, durch WSDL oder IDL•, ist nicht zwingend, erleich-
        tert Werkzeugen und Entwicklern jedoch die Arbeit. ►[krafzig+1, S. 59f], ►[starke+1,
        S. 21f]

Ein Dienst ist nicht an eine konkrete Implementierungstechnologie gebunden. Meist werden hier-
für jedoch Webservices verwendet. Diese basieren auf verschiedenen XML-Technologien. Dienst-
konsumenten verwenden SOAP um auf die angebotene Funktionalität zuzugreifen. Das Angebot
eines Webservices wird mit Hilfe von WSDL beschrieben.

1.1.3.3 Diensttypen

   Zusammenfassung. Dienste unterscheiden sich in verschiedenen Punkten. Es gilt, ein System
zu finden, mit denen die unterschiedlichen Arten klassifiziert werden können. Die Literatur bietet
verschiedene Modelle an, mit denen die Struktur einer serviceorientierten Architektur erfasst
werden kann.

►[krafzig+1, S. 67-85] beschreibt ein Modell, das Dienste in vier Kategorien einteilt. ►[erl-1, S.
327-353] beschreibt eine alternative Möglichkeit, wie ein serviceorientiertes System strukturiert

werden kann. ►[carter-1, S. 65-69] beschreibt ein ESB•-zentrisches Modell, das in seiner Gesamt-
heit eher an der fachlichen Seite orientiert ist.

                                                    5
1 Grundlagen

Das hier vorgestellte Modell entspricht der Einteilung nach Krafzig et al. Es wird auch im weiteren
Verlauf dieser Arbeit verwendet.

                    Abbildung 1: Dienststruktur einer serviceorientierten Architektur, nach ►[krafzig+1]

   Dienststruktur. Die technische Struktur einer serviceorientierten Architektur kann durch vier
Schichten dargestellt werden (siehe ►Abb. 1, S. 6). Zu beachten ist, dass der im Folgenden ver-
wendete Begriff „Schicht“ nicht dem gewöhnlichen Verständnis in der Softwaretechnik entspricht.
Beispielsweise dürfen auch Zugriffe über Schichten hinweg erfolgen. „Schicht“ ist hier vielmehr ein
Konzept, mit dem die Einteilung der Architektur beschrieben werden kann. Siehe dazu auch

►[krafzig+1, S. 82f].

►Abbildung 1 zeigt eine mögliche Konfiguration dafür, welche Dienste des Systems als Konsument
und welche als Dienstanbieter arbeiten.

   Basisdienste►4. Die Dienste dieser Schicht sind die Grundbausteine des Systems. Die Wieder-
verwendbarkeit ist daher hoch. Die Implementierung hat eine geringe oder mittlere Komplexität.
Basisdienste sind zustandslos und können zwei verschiedene Ausprägungen haben:

 4
     Engl. Basic services

                                                           6
1 Grundlagen

        Daten-zentrische Dienste. Ein solcher Dienst verwaltet persis-
           tente Daten – nicht alle Daten des Systems, sondern nur die, die
           zur Funktionalität des Dienstes gehören.

           Er muss alle Daten, auf die er zugreift, alleine besitzen. Andere
                                                                                   Abbildung 2: Symbol
           Dienste dürfen nicht auf diese Daten zugreifen. Auch sind für             Basisdienst
           einen Dienst Zugriffe auf die Daten anderer Dienste nicht erlaubt.

        Logik-zentrische Dienste. Ein solcher Dienst kapselt einzelne Algorithmen oder Regeln
           des Geschäftsbereiches. Die Logik orientiert sich an der Wiederverwendbarkeit, sie muss
           also in anderen Diensten sinnvoll eingesetzt werden können. Durch die Abstraktion be-
           stimmter Logikelemente an einer Stelle wird Redundanz vermieden und die Änderbarkeit
           des Systems erhöht.

           Bei Altanwendungen wird oft benötigte Logik in Bibliotheken ausgelagert, um sie an ver-
           schiedenen Stellen verwenden zu können. Dies ist jedoch nicht redundanzfrei. Wenn ver-
           schiedene Dienste gleiche Logik benötigen, soll diese durch Aufrufe anderer Dienste und
           nicht durch das Einbinden von Bibliotheken eingebunden werden.

Eine serviceorientierte Anwendung benötigt mehrere Basisdienste, um den gesamten Fachbereich
abzudecken. Dienste in der Basisschicht können auch als Proxies zu öffentlichen Diensten Dritter
dienen. Zu beachten ist, das Basisdienste nur Dienstanbieter sind, sie agieren also nicht als Dienst-
konsumenten.

    Vermittlerdienste►5. Die Schicht über der Basisschicht enthält Diens-
te, die der Vermittlung und Anpassung dienen. Diese sind zustandslos und
von mittlerer bis hoher Komplexität. Krafzig et al. teilt diese Dienste in
vier unterschiedliche Typen ein:
                                                                                   Abbildung 3: Symbol
        Technologie-Gateway. Diese Dienste dienen dazu, die Kluft zwi-             Vermittlerdienst

           schen verschiedenen Technologien zu überbrücken. Sie können
           gut zur Integration von Altanwendungen verwendet werden. Dazu bietet ein Gateway-
           Dienst die Funktionalität des zu integrierenden Systems in Form einer Dienst-Schnittstelle
           an. Der Gateway-Dienst ist eine Möglichkeit, das Altsystem unsichtbar in die SOA-Land-
           schaft einzubinden.

        Adapter. Allgemein ist „Adapter“ ein Strukturmuster von Gamma et al., das dazu dient,
           eine Schnittstelle in anderer Form anzubieten ►[gamma+1, S. 151-163]. Ein Adap-
           ter-Dienst wird dazu verwendet, die Schnittstelle eines anderen Dienstes anzupassen.

           Beispielsweise können Adapter angewandt werden, wenn Unternehmen zusammenge-
           schlossen werden. Die Dienste des einen werden durch Adapter angepasst. So können sie

 5
     Engl. intermediary services

                                                   7
1 Grundlagen

        in der SOA-Landschaft des anderen Unternehmens in der dort gebräuchlichen Form ver-
        wendet werden.

      Fassade. Dieser Begriff bezeichnet ein GoF-Strukturmuster, bei dem eine einzelne
        Schnittstelle den Zugriff auf verschiedene Schnittstellen eines Subsystems vereinfacht
        ►[gamma+1, S. 189-198]. Ganz ähnlich dient eine Fassade in einem SOA-System dazu,
        die Funktionalität mehrerer Dienste vereinfacht durch einen einzelnen Dienstes anzubie-
        ten.

      Dienste mit funktionalem Mehrwert. Es kann nötig sein, dass die Funktionalität beste-
        hender Dienste erweitert werden soll, ohne sie selbst zu ändern. Als Lösung kann ein neu-
        er Dienst erstellt werden, der zusätzlich zur Schnittstelle des bisherigen Dienstes neue
        Funktionalität integriert. Ein solcher Mehrwert-Dienst kann also als Proxy mit zusätzlicher
        Funktionalität gesehen werden.

    Prozessdienste►6. Die Geschäftsprozesse eines Unternehmens wer-
den durch Dienste dieser Kategorie umgesetzt. Diese sind zustandsbehaf-
tet und gleichzeitig Dienstanbieter und -konsument. Die einzelnen Aktio-
nen des Prozesses werden von Diensten darunterliegender Schichten be-
reitgestellt. Ein Prozessdienst ist somit für die Steuerung des Kontrollflus-   Abbildung 4: Symbol
                                                                                 Prozessdienst
ses zuständig.

Die Trennung zwischen Prozess- und Kernlogik eines Unternehmens ist eine wichtige Vorausset-

zung für BPM•. Dies wird durch die Dienste der Prozessschicht erreicht; hier ist keine Kernlogik
mehr direkt implementiert.

   Öffentliche Unternehmensdienste►7. Dienstleistungen eines Unternehmens können ande-
ren durch Dienste zugänglich gemacht werden. Beispielsweise bietet eBay verschiedene Dienste
an, mit denen Artikel verwaltet werden können ►ebay.com8. Die öffentlichen Unternehmens-
dienste müssen besondere Anforderungen erfüllen:

      Entkopplung der Kommunikation. Die Dienstkonsumenten sind im Voraus nicht be-
        kannt. Um diese nicht einzuschränken, muss auch eine entkoppelte, asynchrone Kommu-
        nikation möglich sein.

      Sicherheit. Die Sicherheit eines unternehmensintern eingesetzten Dienstes ist meist nicht
        so kritisch wie die eines öffentlichen. Je nach Art der übertragenen Daten sind verschiede-
        ne Sicherheitsmaßnahmen notwendig – beispielsweise Authentifizierung, Nachrichten-Si-
        gnierung oder Verschlüsselung.

 6
   Engl. Process-centric services
 7
   Engl. Public Enterprise services
 8
   http://developer.ebay.com/products/overview/

                                                  8
1 Grundlagen

      Abrechnung. Die Verwendung eines Dienstes ist für die Konsumenten gewöhnlich nicht
        kostenlos. Für einen Dienstanbieter muss es möglich sein, die gelieferte Leistung in Rech-
        nung zu stellen.

   Unternehmens-Anwendungen. Dies sind keine Dienste, sondern die
Anwendungen, die diese verwenden. Sie starten Geschäftsprozesse, ver-
arbeiten deren Ergebnisse und ermöglichen Benutzern die Interaktion mit
den Diensten. Unternehmens-Anwendungen machen die serviceorientier-
te Architektur für Endbenutzer zugänglich.                                          Abbildung 5: Symbol
                                                                                  Unternehmensanwen-
                                                                                          dung
1.1.4 Muster
Aktuell gibt es Bemühungen, Musterkataloge für SOA zu erstellen. Bislang sind diese Sammlungen
jedoch nur im Internet zu finden. Ganze Bücher zu diesem Thema gibt es noch nicht. Das einzige
auffindbare Werk zu SOA Mustern ist ►[rotem-1] und befindet sich noch in der Entstehung. Vor
Anfang 2008 ist nicht mit der Veröffentlichung zu rechnen.

Es gibt gute Muster zu verwandten Bereichen. So bieten beispielsweise ►[fowler-1] und insbeson-

dere ►[hohpe+1] Inspirationen für eine serviceorientierte Architektur. Die dort dokumentierten
Muster sind jedoch nur manchmal direkt auf serviceorientierte Architekturen zu übertragen. Das
Muster-Wissen in verwandten Bereiche kann jedoch für die zu entwickelnden Systeme nur eine
Hilfe sein.

Im Internet ist unter ►[jones-1] eine Sammlung von 13 Anti-Mustern►9 zu finden, die auf SOA zu-

geschnitten sind. Eine Sammlung von Mustern verschiedener Quellen ist in ►[soaprpc-1] verfüg-

bar – der Umfang lässt jedoch zu wünschen übrig. ►[bigatti-1] und ►[bigatti-2] definieren Muster

für die Entwicklung von Webservice•-Konsumenten.

Insgesamt sind die vorhandenen Ressourcen an SOA-Mustern sehr dürftig. Es ist jedoch zu erwar-
ten, dass durch die praktische Arbeit mit SOA-Systemen neue Erfahrungen gewonnen werden
können, die in Form von Mustern für alle publiziert werden.

1.1.5 Praxisberichte
In der Literatur sind einige Berichte über erfolgreiche SOA-Projekte zu finden. Hier sind die wich-
tigsten zusammen aufgeführt.

      IBM ►[carter-1, S. 223-243]

      People's Bank of China ►[carter-1, S. 275-277]
 9
  Ein Anti-Muster beschreibt das Gegenteil von Mustern, also Lösungen, die nicht angewandet werden soll-
 ten.

                                                   9
1 Grundlagen

     ING-DiBa ►[carter-1, S. 278-279]

     Deutsche Post AG ►[krafzig+1, S. 311-324]

     Credit Suisse ►[krafzig+1, S. 341-357]

     Volks- und Raiffeisenbanken ►[starke+1, S. 681-694]

1.2 Oracle Fusion Middleware
Ganz allgemein ist Oracle Fusion Middleware eine Zusammenstellung von vielen Oracle-Produk-
ten, die zur Entwicklung von verteilten Anwendungen verwendet werden können. SOA ist einer
der Bereiche, die Oracle mit der Middleware abdecken möchte. Im Folgenden wird dieser Bereich
von Fusion Middleware genauer untersucht.

1.2.1 Oracle SOA-Suite
Der technische Rahmen dieser Arbeit ist durch Oracles SOA-Suite gegeben. Dies ist die Kompo-
nente von Fusion Middleware, die zur Entwicklung von SOA-Anwendungen verwendet wird. Die
SOA-Suite selbst enthält verschiedene Teile. Diese werden zur Realisierung der technischen Seite
einer serviceorientierten Architektur verwendet.

Die wichtigsten Komponenten werden im Folgenden beschrieben. Somit wird das Fundament für
das Verständnis der folgenden Teile dieser Arbeit gelegt, in denen Fusion Middleware eingesetzt
wird.

1.2.1.1 BPEL-Process Manager
Fusion Middleware unterstützt BPEL• 1.1. Das bedeutet, dass alle Bereiche von Entwicklung bis
hin zum Betrieb durch Werkzeuge und Programme abgedeckt werden. Die Komponente, die dies
unterstützt ist Oracle BPEL-Process Manager. Im Folgenden werden die einzelnen Teile des Pro-
dukts beschrieben:

     BPEL Engine. Dies ist Oracles Laufzeitumgebung für BPEL-Prozesse. Die Funktionalität
       deckt den gesamten Sprachumfang von BPEL ab und umfasst einige zusätzliche Erweite-
       rungen. So werden beispielsweise Prozesse mit langer Laufzeit unterstützt, indem ihr Sta-
       tus in einer Datenbank festgehalten wird. ►[oracle-10, S. 2]

     BPEL Konsole. Dies ist eine Webanwendung mit der entwickelte Prozesse überwacht,
       getestet, auf Fehler untersucht und verwaltet werden können.

       Die Konsole zeigt alle verfügbaren BPEL-Prozesse in einer Übersicht an und erlaubt deren
       Administration.

                                               10
1 Grundlagen

       Zur Fehlersuche kann der Kontrollfluss einzelner Instanzen genauer untersucht werden.
       Dabei können zum Beispiel die übertragenen SOAP-Nachrichten nachvollzogen und über-
       prüft werden.

       Weiterhin bietet die Konsole auch die Möglichkeit, BPEL-Tests auszuführen, die vorher in
       JDeveloper definiert wurden.

     Integrationsdienste. Oracle liefert einige Dienste mit, die für die BPEL-Entwicklung zu-
       sätzliche Funktionalität bieten. So werden Abläufe unterstützt, die in Geschäftsprozessen
       oft eine Rolle spielen. Die Funktionalität verteilt sich auf die folgenden Bereiche:

           Benachrichtigungen. Dieser Dienst bietet den Versand von Benachrichtigungen
             an, um so verschiedenen Personen während der Prozessabarbeitung Informationen
             zukommen zu lassen. Der Versand kann beispielsweise per E-Mail oder SMS erfol-
             gen.

           Workflow. In diesem Bereich decken verschiedene Dienste die Abfrage und Ver-
             waltung von Aufgaben ab. So können beispielsweise Personen oder Gruppen Aufga-
             ben zugewiesen werden, die im Rahmen des gerade abgearbeiteten Geschäftspro-
             zesses zu erledigen sind. Ein anderer Dienst bietet Dienst-Konsumenten Zugriff auf
             die registrierten Benutzer. Hiermit kann beispielsweise Authentifizierung in
             BPEL-Prozessen integriert werden.

       Detaillierte Informationen zu den mitgelieferten Diensten sind in [oracle-2, S. 203-372]
       verfügbar.

     BPEL Designer. Der Designer ist eine Erweiterung für JDeveloper oder Eclipse mit der
       BPEL-Prozesse grafisch unterstützt entwickelt werden können. Dies ist das zentrale
       Werkzeug für Entwickler zum Umgang mit dem BPEL-Process Manager; sie ermöglicht den
       Zugriff auf alle anderen oben erwähnten Module des BPEL-Process Managers.

1.2.1.2 Oracle Webservice–Manager
Mit dieser Webanwendung von Oracle können Dienste verwaltet, abgesichert und überwacht

werden ►[oracle-11].

Für einen Benutzer der Anwendung sind Richtlinien (policies) die Hauptelemente dieses

Oracle Produktes. Mit ihnen können Diensteigenschaften wie Authentifizierung, Autorisie-

rung oder Verschlüsselung definiert werden. Verschiedene dieser Definitionen können un-

ter einem Namen zusammengefasst werden und anschließend ein oder mehreren Diens-

                                              11
1 Grundlagen

ten zugewiesen werden. Die so konfigurierten Dienste verhalten sich dann den Richtlinien

entsprechend.

Dienste, die in Oracles Webservice-Manager eingebunden sind, können so leicht kontrol-

liert werden. Beispielsweise lassen sich Authentifizierungsversuche, Latenzzeiten oder

auch die übertragenen Daten leicht überwachen.

Im praktischen Teil dieser Arbeit wird die Verwendung von Oracles Webservice-Manager an ei-
nem Beispiel demonstriert (siehe ►Abschnitt 2.5.1.1, Seite 38).

1.2.2 Entwicklungsumgebung
Oracle stellt neben den beschriebenen SOA-Produkten auch die Werkzeuge zur Verfügung, um
die eigentliche Entwicklung durchzuführen. Die für Fusion Middleware unterstützten Umgebungen
sind JDeveloper und Eclipse. JDeveloper hat jedoch zur Zeit einen Vorsprung, da hier sehr viele
Produkte von Oracle gut integriert sind, was die Entwicklung von Oracle-basierten Systemen ver-
einfacht.

JDeveloper deckt viele Bereiche der SOA-Entwicklung ab:

     Webservice-Entwicklung. Mit JDeveloper können SOAP- und REST•-Dienste entwickelt

       werden. Zum Beispiel wird die Entwicklung von JAX-WS• und EJB3 Diensten unterstützt.

     BPEL-Entwicklung. Die BPEL-Prozesse können in einer grafischen Umgebung entworfen
       werden. Es werden alle Elemente der BPEL 1.1 Spezifikation unterstützt. Außerdem kön-
       nen auch Oracles Erweiterungen, wie etwa die oben genannten Integrationsdienste, ver-
       wendet werden.

     Datenbankentwurf. Dies ist zwar nicht direkt für SOA relevant, für die Neuentwicklung
       von Diensten ist jedoch auch die Entwicklung der Datenbankstruktur notwendig. Neben
       der Entwicklung eines Schemas wird die Organisation in einem ERD, die Generierung von
       SQL sowie das automatisierte Einspielen in die Datenbank unterstützt.

       Außerdem unterstützt JDeveloper JPA und Oracle Toplink. Somit kann leicht auf die Daten
       der Dienste zugegriffen werden.

1.3 Verwandte Technologien
Bei der Entwicklung einer serviceorientierten Architektur kommt ein Entwickler mit verschiede-
nen Bereichen in Berührung, die nicht direkt zu WSDL oder SOAP gehören. In den nächsten Ab-
schnitten werden alle Gebiete kurz erläutert, die für diese Arbeit relevant sind.

                                              12
1 Grundlagen

1.3.1 EJB
EJB• ist eine in JSR-220 spezifizierte Architektur zur Entwicklung von Java-basierten Geschäftsan-

wendungen ►[jsr-220]. In dieser Spezifikation werden die Ziele der Enterprise JavaBeans Archi-
tektur aufgezählt:
       EJB soll die Standard-Architektur zur Entwicklung von Java-basierten Geschäftsanwendun-
         gen sein.
       Es soll die Standard-Architektur zur Erstellung von komponentenbasierten, verteilten Java-
         Anwendungen sein.
       Die Unterstützung von Webservices soll von Beginn an integriert sein.

       Die Abstraktion von Dingen wie Transaktionen, Connection-Pooling oder Multi-Threading
         soll Programmierern eine einfache, von technischen Details unbeschwerte Entwicklung er-
         möglichen.
       „Write Once, Run Anywhere™“ soll den Einsatz auf verschiedenen Plattformen ermögli-
         chen.

Die Kompatibilität mit anderen Lösungen und Standards spielt eine große Rolle. So werden in der
Spezifikation folgende Punkte genannt:
       Die Anbieter-übergreifende Entwicklung und Verwendung von Komponenten wird durch
         die Spezifikation unterstützt.
       Unterstützung der Anbieter-übergreifenden Verwendung von EJB-Entwicklungswerkzeu-
         gen wird geboten.
       Kompatibilität mit dem CORBA-Protokoll.

1.3.2 Business Process Execution Language

1.3.2.1 Definition
                 „BPEL4WS defines a model and a grammar for describing the behavior of a
                 business process based on interactions between the process and its partners.
                 The interaction with each partner occurs through Web Service interfaces,
                 and the structure of the relationship at the interface level is encapsulated in
                 what we call a partner link.“ ►[ibm-2, S. 10]

Mit BPEL►10 kann das Verhalten von Geschäftsprozessen plattformübergreifend festgehalten wer-
den. Die Kommunikation mit externen Stellen erfolgt ausschließlich über Webservices►11. BPEL

 10
   Hier wird Version 1.1 statt der aktuellen Version 2.0 beschrieben, da Fusion Middleware die neue Version
 noch nicht unterstützt.

                                                     13
1 Grundlagen

spielt dabei das zentrale Kontrollorgan und steuert so die Zusammenarbeit der beteiligten Diens-
te.

BPEL basiert hauptsächlich auf WSDL, XML Schema, XPath und WS-Addressing• ►[ibm-2, S. 11].
Ein BPEL-Prozess ist im Unterschied zu normalen Diensten zustandsbehaftet. Mit Hilfe der
Sprachmittel wird die Kommunikation zwischen verschiedenen Parteien gesteuert.

In Fusion Middleware wird BPEL dazu verwendet, Prozessdienste (siehe ►Abschnitt 1.1.3.3 S. 8)
zu implementieren. Oracle erweitert die Funktionalität im Vergleich mit der offiziellen Spezifikati-
on etwas. Diese Erweiterungen werden weiter unten beschrieben.

     Prozessarten. BPEL unterstützt zwei Arten, Geschäftsprozesse zu definieren: ausführbar

oder abstrakt ►[ibm-2, S. 8-10]. Ein in BPEL definierter Geschäftsprozess wird als BPEL-Prozess
bezeichnet. Ein BPEL-Prozess ist zustandsbehaftet; die Instanzen können von langer Laufzeit sein.

Abstrakte Prozesse dienen der Beschreibung von Geschäftsprozessen. Dabei liegt der Schwer-
punkt auf den ausgetauschten Nachrichten. Ziel ist, eine öffentlich zugängliche, formale und ab-
strakte Beschreibung von Geschäftsprozessen anzubieten, ohne dabei unternehmensinterne Logik
offenzulegen.

Ausführbare Prozesse dagegen enthalten eine vollständige Definition des Geschäftsprozesses und
können daher in einer Laufzeitumgebung ausgeführt werden. Eine Instanz bezeichnet einen gerade
ausgeführten Prozess. Ein ausführbarer Prozess erscheint nach außen als normaler Dienst und
kann daher leicht in andere Prozesse integriert werden.

BPEL stellt für die Schnittmenge beider Prozessarten einheitliche Sprachmittel zur Verfügung

►[ibm-2, S. 13f]. Zusätzlich enthält BPEL spezifische Spracherweiterungen um die Anfor-

derungen beider Prozessarten zu unterstützen ►[ibm-2, S. 10].

     Orchestrierung•. BPEL steuert, wie erwähnt, den Kontrollfluss und die Kommunikation der

beteiligten Dienste. Die zentrale Steuerung wird als Orchestrierung• bezeichnet. Choreographie•,
ein verwandtes Konzept, wird von BPEL nicht unterstützt. Hierfür wurde WS-CDL begonnen. Ein

Vergleich zwischen BPEL und WS-CDL• ist in ►[oracle-7, S. 17-18] zu finden.

1.3.2.2 Sprachelemente
BPEL verfügt über viele Elemente gewöhnlicher Programmiersprachen. Die folgenden Absätze ge-
ben einen Überblick über die wichtigsten Elemente von BPEL 1.1.

11
   Es wird an der Erweiterung BPEL4People gearbeitet, die im Prozess die Interaktion mit Menschen ermög-
licht. ►http://www.ibm.com/developerworks/webservices/library/specification/ws-bpel4people/

                                                  14
1 Grundlagen

   Grundelemente. Die wichtigsten Bausteine in BPEL sind Variablen, Zuweisungen sowie einfa-
che und strukturierte Aktivitäten.

Variablen halten den Status einer Prozess-Instanz. Sie liegen im globalen oder einem lokalen Gültig-
keitsbereich. Zuweisungen erlauben, die Werte von Variablen zu belegen.

Mit einfachen Aktivitäten können zum Beispiel Dienstoperationen aufgerufen werden. Das Warten
auf den Empfang von Konsumenten-Anfragen zählt auch zu den einfachen Aktivitäten. Zu den
strukturierten Aktivitäten gehören beispielsweise Bedingungen, Schleifen und die serielle und par-
allele Ablaufsteuerung von Aktivitäten.

Details zu den hier angesprochenen Elementen sind in ►[ibm-2, S. 38-84] zu finden.

  Korrelation. BPEL-Prozesse sind zustandsbehaftet. Daher richtet sich der Aufruf einer Dienst-
operation an eine konkrete Instanz. Die Daten, die bestimmen, an welche Instanz eine Anfrage ge-

leitet werden soll, werden als Correlation Sets bezeichnet. Details sind in ►[ibm-2, S. 45-53] ver-
fügbar.

   Fehlerbehandlung. In Diensten können Fehler auftreten, die an den Dienstkonsumenten wei-
tergeleitet werden. BPEL integriert Sprachelemente zur Fehlerbehandlung. Wenn ein Aufruf statt
dem erwarteten Ergebnis einen Fehler zurückgibt, kann der BPEL-Kontrollfluss automatisch zu
vorher festgelegten Aktionen der Fehlerbehandlung verzweigen.

    Compensation. Der BPEL-Standard integriert eine Vorgehensweise namens compensation.
Wenn ein Schritt im BPEL-Prozess fehlschlägt, können hiermit ausgleichende Aktionen eingeleitet
werden. Dies heißt, dass entweder alternative Wege eingeschlagen oder alle Änderungen in vorhe-
rigen Schritten rückgängig gemacht werden. Im Gegensatz zu einer Transaktionen muss dies je-
doch explizit erfolgen. Dazu können pro Gültigkeitsbereich ausgleichende Aktionen definiert wer-
den, die den oben angesprochenen Ausgleich durchführen.

1.3.3 Webservice-Erweiterungen
Die Grundelemente bei der Entwicklung von Webservices sind SOAP und WSDL. Die hier gebote-
ne Funktionalität ist zwar vielfältig, für anspruchsvolle Anwendungen jedoch meist nicht ausrei-
chend. Beispielsweise wurden Sicherheitsmerkmale ganz außer Acht gelassen.

Als Abhilfe wurden verschiedene Erweiterungen geschaffen, die in ihrer Gesamtheit gewöhnlich als
WS-* bezeichnet werden. Eine einzelne Erweiterung hat das Prefix WS-, beispielsweise WS-Secu-

rity•. Alle Erweiterungen basieren auf SOAP. Sie klinken sich jeweils in den Kopf einer SOAP-Nach-
richt ein.

Die wichtigsten und für die vorliegende Arbeit relevanten Erweiterungen werden im Folgenden
erläutert.

                                                15
1 Grundlagen

1.3.3.1 WS-Policy
WS-Policy ist ein von einem Konsortium erstellter Vorschlag, der beim W3C eingereicht wurde

►[w3c-9]. Es wird ein Modell definiert, um ein Regelwerk für SOAP-Dienste zu schaffen. Diese
Regeln sind Bedingungen, die in der Kommunikation zwischen Service-Nutzer und -Anbieter erfüllt
sein müssen.

Zum Beispiel kann festgelegt werden, dass eine bestimmte Verschlüsselung bei der Übertragung
verwendet werden muss. Die Spezifikation der Erweiterung enthält dazu ein einfaches Beispiel
►[w3c-9, Abschnitt 1.2]:
   
WS-Policy gibt nur die Syntax eines Regelwerkes vor. Die eigentlichen Regeln (hier beispielsweise
sp:Basic256Rsa15) stammen aus ergänzenden Spezifikationen.

1.3.3.3 WS-ReliableMessaging
Beim Nachrichtenaustausch mit einem Webservice können verschiedene Probleme auftreten.
Zum Beispiel können durch Fehler Nachrichten verloren, mehrfach zugestellt oder im Inhalt ver-
ändert werden. Eine zuverlässige Kommunikation ist jedoch für viele Unternehmensanwendungen
eine wichtige Voraussetzung.

Dies ist das Anwendungsfeld von WS-ReliableMessaging•. Diese Erweiterung wurde unter ande-
rem von IBM und Microsoft geschaffen und ist ein Protokoll, um die zuverlässige Kommunikation
zwischen Diensten sicherzustellen. Die Lösung ist unabhängig von Protokollen, es besteht jedoch
bereits eine Bindung an SOAP.

1.3.3.4 WS-Security
                „This specification proposes a standard set of SOAP [...] extensions that can
                be used when building secure Web services to implement message content
                integrity and confidentiality.“ ►[oasis-3, S. 7]

WS-Security, auch WSS genannt, ist für die Sicherheit von SOAP-Nachrichten zuständig. Wichtige
Punkte sind hier die Integrität und Vertraulichkeit der übertragenen Daten. Die Spezifikation, mitt-

lerweile in Version 1.1 verfügbar, wird von OASIS• herausgegeben.

                                                   16
1 Grundlagen

Signaturen gewährleisten die Integrität der Nachrichten. Im Kopf der Nachricht werden die Signa-
turen festgehalten, mit denen einzelne Bereiche der Nachricht beim Empfänger auf Unversehrt-
heit geprüft werden können.

Durch Verschlüsselung wird die sichere Übertragung von vertraulichen Daten ermöglicht. WS-Se-
curity unterstützt die symmetrische Verschlüsselung von Elementen, die in Header oder Body der
SOAP-Nachricht liegen können. Dazu wird ein Schlüssel verwendet, der Sender und Empfänger
bekannt ist. Möglich ist jedoch auch, den Schlüssel der Nachricht in verschlüsselter Form mitzuge-
ben.

Signaturen und Verschlüsselung können parallel verwendet werden. Dabei können sich die Signa-
turen sowohl auf unverschlüsselte als auch verschlüsselte Daten beziehen.

1.3.3.5 WS-I
Die vielen Erweiterungen, die bisher entstanden sind, erschweren die einfache Kommunikation

zwischen verschiedenen Diensten. WS-I• ist eine Organisation mit dem Ziel, genau dieses Problem
zu lösen. Sie bemüht sich um die Kompatibilität von Diensten über die Grenzen von Plattformen,
Anwendungen und Programmiersprachen hinweg.

WS-I Basic Profile definiert verschiedene Regeln, die eingehalten werden müssen, damit eine An-

wendung als kompatibel eingestuft werden kann ►[wsi-1]. Enthalten sind neben genauen Vorga-
ben über die Syntax von SOAP auch Klarstellungen zu Passagen der verschiedenen Spezifikationen.

WS-I Basic Security Profile ist ein ähnliches Dokument für den Bereich Sicherheit ►[wsi-2]. Behan-
delt werden beispielsweise Protokolle, XML Verschlüsselung, XML Signaturen, Kerberos und An-
hänge.

                                               17
2 Konzeption und Implementierung einer SOA-Anwendung

2 Konzeption und Implementierung einer SOA-
Anwendung
Um SOA und Oracle Fusion Middleware richtig beurteilen zu können, ist Praxiserfahrung notwen-
dig. Das bedeutet, dass ein Projekt realisiert werden muss, bei dem diese erworben werden kann.
In diesem Kapitel wird die Entwicklung einer solchen Anwendung beschrieben.

Ausgehend von der Aufgabenstellung werden Analyse, Entwurf und Implementierung des Systems
detailliert erläutert. Zum Schluss wird versucht, das Resultat der Bemühungen kritisch zu beurtei-
len.

2.1 Aufgabenstellung
   Zusammenfassung. Anhand einer fiktiven Problemstellung soll eine SOA-Anwendung erstellt
werden. Dabei wird versucht, sich an einer praxisnahen Aufgabenstellung zu orientieren. Diese
Software soll später zu Demonstrationszwecken in einer virtuellen Maschine zur Verfügung ge-
stellt werden.

  Ausgangssituation. Ein Unternehmer möchte in ganz Deutschland PC-Hardware verkaufen.
Dafür hat er fünf unabhängige lokale Geschäfte übernommen und fasst diese im neuen Unterneh-
men „MyPC GmbH“ zusammen.

Bundesweit existieren nun fünf Filialen seines Unternehmens, die ihre Ware direkt an Endkunden
verkaufen. Jede dieser Filialen verfügt über ein eigenes Warenlager. Ein zentrales Lager existiert je-
doch nicht. Die Standorte der Filialen sind:
      Hamburg

      Berlin

      Köln

      Kassel

      Stuttgart

Somit ist in jeweils einer Himmelsrichtung eine Niederlassung, zentral liegt Kassel.

Nun hat die Geschäftsleitung entschieden, dass in Deutschland auch ein Onlineshop angeboten
werden soll. Kunden sollen zwischen Direktabholung in einer Filiale und Paketversand wählen kön-
nen.

Bestellt ein Kunde über den Onlineshop zum Paketversand, so soll die Filiale, die die meisten Teile
der Bestellung vorrätig hält, die Bestellung ausführen. Noch fehlende Teile sollen, falls möglich, aus
den Beständen anderer Filialen beschafft werden. Falls dies nicht möglich ist, soll bei verschiede-
nen Großhändlern jeweils ein Angebot eingeholt werden. Das preiswerteste soll automatisch be-
stellt werden.

                                                 18
2 Konzeption und Implementierung einer SOA-Anwendung

In keiner der Filialen existiert ein Softwaresystem, das nach dem Zusammenschluss weiter ver-
wendet werden könnte.

   Aufgabenstellung. Es soll eine SOA-Anwendung erstellt werden. Diese soll die ehemals
selbstständigen Filialen integrieren und eine einfache Zusammenarbeit ermöglichen. Sowohl La-
den- als auch Onlinegeschäfte sollen mit diesem neuen System arbeiten. Besonders die folgenden
Bereiche sollen in einer ersten Version implementiert werden:

     Kundenverwaltung. Die Software soll alle Onlineshop-Kunden verwalten. Diese werden
        anhand einer eindeutigen Kundennummer identifiziert. Ladenkunden haben keine Kunden-
        nummer.

     Produktverwaltung. Die Angebotspalette, die im Onlineshop und in den Filialen angebo-
        ten wird, soll zentral verwaltet werden. Dabei sollen die Produkte in hierarchische struk-
        turierten Kategorien eingeordnet sein.

     Lagerverwaltung. Im Rahmen der Umstrukturierung soll in das System eine zentrale La-
        gerverwaltung integriert werden. Die Bestände alle Filialen sollen hier erfasst und verwal-
        tet werden. Die einzelnen Filialen können auf eine Webanwendung zugreifen, mit der sie
        ihre eigenen Lagerbestände verwalten können.

     Bestellungsabwicklung. Des gesamte Internet-Bestellvorganges eines Kunden soll von
        der Software abgewickelt werden. Dazu zählen:
            Warenkorbverwaltung

            Bezahlvorgang

            Wahl der Versandart

            Versand einer E-Mail-Bestätigung an den Kunden

            Die Benachrichtigung der Filiale, die die meisten der bestellten Teile vorrätig hat,
              über den neuen Auftrag.
            Die automatische Bestellung bei einem Großhändler, falls Ware nicht im Lager vor-
              handen ist.

Zudem soll es leicht sein, die Software an geänderte Geschäftsprozesse anzupassen. Wenn bei-
spielsweise eine sechste Filiale eröffnet wird, soll sie ohne Schwierigkeiten integriert werden kön-
nen. Auch Änderungen an Vorgängen wie der Bestellabwicklungen oder der Zahlungsabwicklung
sollen leicht möglich sein.

Das System soll durchgängig SOA-Prinzipien verwenden. Auch der Onlineshop soll auf Diensten
aufbauen. Ein Ziel ist, dass im ganzen Unternehmen nur ein Ort vorhanden ist, an der eine be-

                                                19
Sie können auch lesen