Im Fokus: Composite Applications

Feature | 27. Februar 2008 von Dr. Andreas Schaffry 0

Mit diesen Voraussetzungen ist es möglich, Composite Applications zu entwerfen und aufzubauen, ohne dabei die notwendige Flexibilität für kundenspezifische Anpassungen zu verlieren (Teil 1). Mit der Composite Application for Return Merchandise Authorization (RMA) zur Abwicklung von Retourenprozessen wird Anfang März 2008 die erste Composite Applikation auf Basis von SAP NetWeaver CE an die Kunden ausgeliefert (Teil 2).

SAP unterstützt Kunden, die ihre Geschäftsprozesse mit innovativen und service-basierten Anwendungen laufend verbessern wollen, mit den so genannten Composite Applications. Diese werden auf der Basis eines modellorientierten Ansatzes entwickelt und bestehen aus einer Prozessschicht, einer User-Interface-Schicht und einer Schicht für die Geschäfts- und Anwendungslogik.

Die Business-Logik wird den darüber liegenden Prozess- und User-Interface-Schichten über Services zur Verfügung gestellt. Durch diese Schichtenarchitektur lassen sich Composite Applications rasch aufbauen und flexibel anpassen.

Zentrale Plattform für die Modellierung

Zentrale Plattform für den Bau von Composite Applications ist die integrierte Entwicklungs-, Modellierungs- und Laufzeitumgebung SAP NetWeaver Composition Environment (SAP NetWeaver CE). In dieser hat SAP wichtige Technologien und Werkzeuge gebündelt. Hierzu zählen etwa SAP Composite Application Framework (SAP CAF), Guided Procedures sowie SAP NetWeaver Visual Composer, Web Dynpro und die interaktiven Formulare basierend auf Adobe-Technologie zur Modellierung von Benutzeroberflächen.

SAP NetWeaver CE ist an offenen Industriestandards ausgerichtet. Erst die auf offenen Standards basierenden neuen Modellierungswerkzeuge von SAP ermöglichen kürzere Entwicklungszeiten und eine weitere Industrialisierung der Softwareentwicklung.

Kernbestandteile von SAP NetWeaver CE sind eine Laufzeitumgebung auf Grundlage des SAP NetWeaver Application Server und eine Entwicklungsumgebung, die über das SAP NetWeaver Developer Studio bereitgestellt wird. SAP NetWeaver Application Server unterstützt die Java Platform Enterprise Edition in der Version 5 (JEE 5).

Diese enthält unter anderem Enterprise JavaBeans (EJB) in der Version 3.0 als standardisierte Komponenten-Technologie und JavaServer Faces JSF 1.2 für die Entwicklung von Benutzeroberflächen. Darüber hinaus ermöglichen es Spezifikationen wie Java API für XML-basierte Web-Services 2.0 (JAX-WS), Web-Services in Java zu entwickeln. Das SAP NetWeaver Developer Studio wiederum basiert auf der Open-Source-Entwicklungsplattform Eclipse 3.3.

SAP NetWeaver CE ist sowohl eine Entwicklungs- als auch eine Laufzeitumgebung. Damit ist nicht nur die Erstellung, sondern auch der Einsatz von Composite Applications möglich.

Business-Objekte anlegen

Die Geschäfts- und Anwendungslogik wird in SAP CAF definiert. Hier werden die Services für eine Composite Application erzeugt und modelliert, die ihrerseits wiederum Daten aus Business-Objekten beziehen. Die Business-Objekte stammen entweder aus SAP ERP und den Anwendungen der SAP Business Suite oder werden speziell für den Bau einer Composite Application erstellt. Sie sind in diesem Fall feste Bestandteile einer Composite Application und werden daher auch als “lokale” Business-Objekte bezeichnet.

So stammt das Business-Objekt “Material” beispielsweise aus SAP ERP. Ein RMA-Objekt (Return Merchandise Authorization) für die Abwicklung von Retouren hingegen ist ein lokales Business-Objekt. Es wird mithilfe von SAP CAF angelegt. Hierbei definiert der Entwickler neben den Attributen des Objekts, wie etwa RMA-Nummer oder RMA-Status, auch die Operationen und Services, die das Business-Objekt innerhalb einer Composite Application ausführen soll. Es handelt sich im einfachsten Fall um so genannte Basis-Services wie Create, Read, Update und Delete (CRUD) sowie Such-Methoden, mit denen sich Datensätze anlegen, abfragen, aktualisieren, löschen und auffinden lassen.

Für den Bau einer Composite Application werden jedoch in der Regel komplexere Services benötigt. Diese gehen deutlich über die Funktionalität der Basis-Services hinaus und umfassen umfangreiche betriebswirtschaftliche Geschäftslogik. Diese so genannten Enterprise Services sind im Enterprise Services Repository (ESR) von SAP NetWeaver abgelegt. Ein Beispiel für einen solchen Enterprise Service ist die Auftragsstornierung (Cancel Order).

Neben dem obligatorischen Löschen von Einträgen in der Datenbank müssen gegebenenfalls auch Produktionsaufträge gelöscht oder Lieferanten über die Stornierung informiert werden. Auch der Lagerbestand muss korrigiert und angepasst werden. Dies sind nur einige der Aktivitäten, die ein Enterprise Service abwickelt und die sich deutlich von den Aufgaben eines einfachen Web-Services unterscheiden.

Selbstverständlich können auch Web-Services aus anderen Quellen wie einem externen UDDI-Verzeichnis oder externe, per WSDL-Datei definierte, Web-Services verwendet werden. Diese lassen sich mithilfe des SAP CAF finden, in das SAP CAF importieren und konsumieren. Voraussetzung dafür ist, dass SAP CAF mit dem ESR oder einer externen Service Registry verbunden ist. Externe Web-Services, die nicht in einer Registry gelistet sind, lassen sich einfach unter Angabe ihrer WSDL-Adresse einbinden.

Reibungsloses Zusammenspiel

Eine Composite Application “konsumiert” verschiedene Arten von Services, etwa Enterprise Services und externe Web-Services. Deren reibungsloses Zusammenspiel muss garantiert sein. Das gelingt dank einer zusätzlichen Abstraktionsschicht, die SAP CAF mit den Composite Application Services (CAS) bereitstellt.

Composite Application Services “ummanteln” alle in einer Composite Application verwendeten Services, stellen innerhalb der Anwendung einheitliche Schnittstellen zu anderen Services bereit und sind sowohl mit der Prozess- als auch mit der Präsentationsschicht verbunden.

Sobald ein Anwender auf der Benutzeroberfläche einer Composite Application Eingaben vornimmt und abschickt, wird ein Composite Application Service aufgerufen. Dieser führt wiederum die Services und die mit ihnen verknüpfte Geschäftslogik aus. Der Composite Application Service liefert – egal ob Enterprise Services oder externe Web-Services aufgerufen werden – stets die gleichen Rückgabewerte zurück. Das können einfache Strukturen, aber auch verschachtelte Tabellen sein. Er vereinheitlicht somit den Aufruf von Geschäftslogik innerhalb einer Composite Application.

Um ihrer Aufgabe gerecht zu werden, müssen auch die Composite Application Services als Web-Services bereitgestellt sein. Nur so sind sie innerhalb einer Composite Application auch in der Prozessschicht und in der Oberflächenschicht aufrufbar. Dafür sorgt innerhalb des SAP NetWeaver Developer Studios eine dedizierte Perspektive, der Composite Application Explorer. Dort lässt sich für jeden Composite Application Service dessen Web-Service-Generierung veranlassen: Dazu muss lediglich über das Kontextmenü des Service die Funktion “Expose service as Web-Service” ausgewählt werden.

Der Composite Application Explorer listet alle Entwicklungsobjekte auf, die in einer Composite Application in der Geschäftsobjekt- und Service-Schicht verwendet werden, wie etwa Composite Application Services, Business-Objekte, externe Services sowie deren Operationen oder Parameter. Er erlaubt dadurch die einfache Navigation zu einzelnen Elementen und Eigenschaften der Composite Application.

Geschäftslogik einheitlich organisieren

SAP CAF hält vordefinierte Composite Application Services bereit, um die Geschäftslogik einer Composite Application zu organisieren. Mit dem Application Service “DocContent” beispielsweise lassen sich Dokumente versionieren sowie deren Inhalte anzeigen. Der Composite Application Service “ClassificationApplication” wiederum erlaubt den Aufbau und die Pflege hierarchischer Ordnerstrukturen.

Darüber hinaus können Entwickler eigene Composite Application Services modellieren. Das ist beispielsweise dann erforderlich, wenn beim Aufbau einer Composite Application über die Composite Application Services, deren Basis die lokalen Business-Objekte sind, neue Geschäftslogik bereitgestellt wird.

Alle Operationen, die eine Composite Application mithilfe von Business-Objekten oder den als Web-Services bereitgestellten Composite Application Services ausführen soll, lassen sich vorab mit dem Service-Browser testen, einem webbasierten Werkzeug. Der Service-Browser wird per Mausklick direkt aus dem SAP NetWeaver Developer Studio heraus aufgerufen, das als Entwicklungsumgebung von SAP NetWeaver CE alle Geschäftsobjekte und Services, die mit SAP CAF modelliert wurden, anzeigt.

Durch diesen “Qualitäts-Check” wird sichergestellt, dass die Services später innerhalb einer Composite Application in der gewünschten Form ausgeführt werden.

Abläufe orchestrieren

Die logische Abfolge einzelner Prozessschritte sowie der Aufruf der entsprechenden Benutzeroberflächen und Services werden in der Prozessschicht mithilfe von Guided Procedures festgelegt. Sie sind innerhalb des SAP NetWeaver Application Servers als der Laufzeitumgebung von SAP NetWeaver CE angesiedelt.

Guided Procedures orchestrieren die Oberflächen und Services zu anwendungsspezifischen kollaborativen Abläufen und regeln, welcher Anwender wann welche Daten erhält. Gleichzeitig werden in Guided Procedures die einzelnen Prozessschritte einer Composite Application nacheinander in der festgelegten Reihenfolge “abgearbeitet”.

Guided Procedures setzen sich ebenfalls aus einer Entwicklungs- und einer Laufzeitumgebung zusammen. In der Entwicklungsumgebung werden die Prozessvorlagen für eine Composite Application angelegt. Gestartet werden diese dann innerhalb der Laufzeitumgebung. Die in Guided Procedures definierten Prozesse bestehen aus Phasen und Schritten. In einer Phase sind mehrere Schritte zusammengefasst. Ein Schritt wiederum wird durch eine Aktion definiert, die beschreibt, welche Benutzeroberfläche oder welcher Enterprise Service aufgerufen wird.

Modellieren statt codieren

Auf welcher Benutzeroberfläche die Daten aus den Business-Objekten dem jeweiligen Anwender bereitgestellt werden, ist in der Oberflächenschicht festgelegt. Zentrales Werkzeug hierfür ist der SAP NetWeaver Visual Composer. Mit ihm lassen sich Oberflächen aus vordefinierten Komponenten wie Feldern, Schaltflächen, Tabellen oder Grafiken modellieren. Zugleich wird definiert, welche Elemente dem Anwender zur Laufzeit angezeigt werden und wie sie untereinander agieren sollen.

So kann beispielsweise in einem Eingabefeld ein Suchbegriff eingegeben, nach einem Klick auf den Suchknopf ein Service aufgerufen und dessen Ergebnis in einer Tabelle angezeigt werden. Als visuelles Modellierungswerkzeug erfordert der SAP NetWeaver Visual Composer keine speziellen Programmierkenntnisse, denn der Code wird aus dem Modell heraus generiert.

Das Herzstück des SAP NetWeaver Visual Composer ist das Storyboard. Es enthält alle für die Oberflächenmodellierung relevanten Werkzeuge. Erst wenn eine Benutzeroberfläche vollständig ausmodelliert ist, wird sie gespeichert und anschließend der Code über einen Compiler generiert. Zur Ausführung gelangt der Code anschließend im Visual Composer Server, einem weiteren wichtigen Architekturbestandteil des SAP NetWeaver Visual Composer. Der Server stellt dabei neben der Funktionalität für das Storyboard auch Dienste für die Persistenz sowie Kommunikation mit anderen Komponenten auf dem Server zur Verfügung.

Neu im SAP NetWeaver Visual Composer ist auch die Möglichkeit der Modellierung von Portalanwendungen. Für jeden Prozessschritt kann eine Portalseite definiert werden, in die eine Benutzeroberfläche aus einer Composite Application eingebunden ist. Beide, Portalseite und Benutzeroberfläche, lassen sich mithilfe des SAP NetWeaver Visual Composer dann einer gemeinsamen Benutzerrolle zuordnen.

Mit Web Dynpro Java sowie den interaktiven Formularen, basierend auf Adobe Technologie, stehen in SAP NetWeaver CE noch zwei weitere User-Interface-Technologien bereit. Für die Modellierung von Benutzeroberflächen mit sehr komplexer User-Interface-Logik wird Web Dynpro Java verwendet. Formularbasierte Prozesse sowie deren Offline-Bearbeitung lassen sich mithilfe der interaktiven Formulare abbilden, bei denen PDF-Dateien an die Prozessteilnehmer versendet werden, die diese wiederum ausfüllen und zum Prozess zurückschicken können.

Teil 2

Leave a Reply