Die richtige Kombination macht’s

Feature | 4. Oktober 2006 von admin 0

SAP NetWeaver Development Infrastructure

SAP NetWeaver Development Infrastructure

SAP und ihre Partner haben den ersten Schritt in Richtung Industrialisierung – von der Entwicklung zur Konfiguration – getan: Sie erleichtern die Entwicklung, indem sie Technologien wie J2EE oder J2ME mit Werkzeugen wie SAP NetWeaver Developer Studio oder SAP NetWeaver Web Application Server kombinieren. Produkte wie Aris for SAP NetWeaver oder SAP NetWeaver Development Infrastructure (NWDI) helfen dabei, Methoden wie Rational Unified Process (RUP) umzusetzen und zu implementieren. Allerdings reicht die reine Kopplung zwischen Technologie und Produkt nicht aus, da eine Geschäftsapplikation in der Regel mehrere Technologien verwendet. Die SAP-Produktpalette bietet daher verschiedene integrierte Werkzeuge. Sie decken neben den Technologien auch den kompletten Software-Lebenszyklus ab, so dass die Entwicklung sowohl von der technischen als auch von der organisatorischen Seite unterstützt wird.

Neue Anforderungen an die Entwickler

Die Industrialisierung ist sowohl Herausforderung als auch Chance für die Entwicklung. Einerseits werden Zeit und Mittel knapper und die Technologien komplexer und flexibler, damit sich mit ihnen im Idealfall jedes Problem lösen lässt. Andererseits ist das Angebot an Werkzeugen größer und die Arbeit mit diesen stärker visualisiert. Die Wahl der richtigen Werkzeuge und ihre intuitive Führung verkürzen die Einarbeitungszeit stark. Aufgaben rund um die Implementierung lassen sich durchgehend automatisieren, und die Entwickler können sich stärker darauf konzentrieren, die Anforderungen der Geschäftsseite umzusetzen. Gleichzeitig müssen sie sich stärker spezialisieren: Die wachsende Technologieflut hindert sie daran, in allen Bereichen die nötige Wissenstiefe für eine qualitativ hochwertige Entwicklung sämtlicher Komponenten zu erreichen. Durch Outsourcing und globale Arbeitsteilung sowie die damit verbundene flachere Fertigungstiefe wird versucht, die Qualität zu erhöhen und Entwicklungsprozesse besser planbar zu machen. Inzwischen geht es daher nicht länger nur darum, neue Softwarekomponenten zu entwickeln. Ziel ist es auch, bereits Bestehendes besser zu nutzen, beispielsweise durch Konfiguration. Der Programmieraufwand sinkt dadurch zusehends. Atomare Funktionalitäten, auch Services genannt, etwa ein Datenbankzugriff mit Verbindungsauf- und -abbau, werden einmalig gekapselt und müssen daher nicht länger immer wieder neu manuell programmiert werden. Sie lassen sich stattdessen durch Konfiguration und Komposition wiederverwenden.

Viele Geschäftsprozesse in einem Unternehmen ähneln sich stark. Sie lassen sich in Einzelschritte zerlegen. Indem diese Schritte immer wieder neu miteinander kombiniert werden, lassen sich sowohl komplexe Aufgaben – ein unternehmensübergreifender dynamischer Genehmigungsprozess etwa – implementieren als auch die Entwicklungskosten durch die zunehmende Wiederverwendung stark reduzieren. Das gelingt, weil die Komposition nicht manuell mittels reiner Programmierung, sondern durch Werkzeuge wie Cross-Component-BPM (ccBPM) oder SAP NetWeaver Exchange Infrastructure (SAP NetWeaver XI) auf der Konfigurationsebene erfolgt. Die einzelnen Prozessschritte werden in einem generischen Web-Service gekapselt und in einem Repository abgelegt. Von dort aus lassen sie sich jederzeit neu zu verschiedenen Spezialprozessen kombinieren und bilden die Basis für die Komposition dynamischer Prozesse, etwa von Genehmigungs- oder Bestellprozessen.

Interaktiv oder nicht interaktiv

Diese Prozesse sind entweder interaktiv oder nicht interaktiv. Ein nicht interaktiver Prozess, ein so genannter Application-2-Application-Prozess – etwa ein Bestellprozess oder Transaktionen in verteilten Buchungssystemen – läuft völlig automatisch und nach vordefinierten Regeln ab. Rutscht beispielsweise der Lagerbestand bei einem Händler unter die kritische Marke, wählt der Prozess den passenden Produzenten aus einer Liste aus und platziert eine Bestellung in dessen System. Nicht interaktive Prozessschritte lassen sich bereits mit heute verfügbaren Standards zu einem vollständigen Prozess kombinieren. So verschicken Unternehmen in manchen Ländern gleichzeitig Waren und Rechnung, die Verbuchung wird später überprüft. In anderen wird zunächst nur die Rechnung verschickt, und erst nach der Bezahlung folgt die Ware. Die einzelnen Schritte sind dabei gleich, nur die Abfolge ist eine andere. Mit SAP NetWeaver XI und ccBPM lässt sich in diesem Fall die Reihenfolge dynamisch definieren – abhängig etwa von länderspezifischen Bedingungen.
Bei interaktiven Prozessen hingegen müssen die Anwender agieren, zum Beispiel indem sie Daten eingeben. Es ist deutlich komplexer, diese Prozesse in Anwendungen umzusetzen und sehr aufwändig, die passende intuitive Benutzerschnittstelle zu erstellen. Der interaktive Prozess kann im SAP Enterprise Portal durch eine Portal-Screen-Sequenz, eine Abfolge mehrerer Eingabemasken, repräsentiert werden. In diesen standardisierten Masken werden Benutzereingaben entgegengenommen, die bestimmte wiederkehrende Transaktionen mit sich jeweils ändernden Daten durchführen. So nimmt beispielsweise die Reisekostenabrechnung Buchungen entsprechend den Benutzereingaben vor.

Interaktion als Problem

Interaktion von Menschen

Interaktion von Menschen

Die Unterscheidung zwischen interaktiv und nicht interaktiv ist für die Automatisierung der Abfolge von Prozessschritten entscheidend: Nicht interaktive Prozesse lassen sich mit Unterstützung von heutigen Standards und mit an diesen Standards angelehnten Technologien und Werkzeugen zu einer einzigen Sequenz zusammenfassen. Sollen interaktive Anwendungen Services nutzen, erfordert das normalerweise Programmierung. Daher bedeuten interaktive Anwendungen im Sinne der Industrialisierung zunächst eine Herausforderung.
Ihre Entwicklung ist im Vergleich zu den nicht interaktiven Prozessen nicht weitgehend automatisiert und vor allem standardisiert und erfordert umfassende Kenntnisse: Der Entwickler muss nicht nur wissen, was sein Prozess auf Geschäftsebene bewirken soll, sondern auch, wie sich dieser technologisch umsetzen lässt. Das Hauptproblem der interaktiven Anwendungen ist die Tatsache, dass es derzeit keinen Standard für ihre Umsetzung und vor allem für die Ablaufsteuerung innerhalb der interaktiven Anwendung gibt. Es existiert lediglich ein Whitepaper namens „BPEL4PEOPLE“. Trotz des fehlenden Standards an dieser Stelle wartet SAP mit einem Werkzeug namens Composite Applikation Framework (CAF) auf, insbesondere mit dem Bestandteil „Guided Procedures“. Dieses Werkzeug stellt dem Entwickler die Mittel zur Verfügung, die er benötigt, um eine Ablaufsteuerung auch im Rahmen eines interaktiven Prozesses umzusetzen, und schließt somit vorerst die Standardlücke. Auch an dieser Stelle ist die hohe Integration in die Entwicklungslandschaft gegeben. In Kombination mit den bereits bestehenden Werkzeugen wie dem SAP Netweaver Developer Studio kann daher von einer Industrialisierung der Softwareentwicklung gesprochen werden.

Hochintegriert und recyclebar

Eine Entwicklungsumgebung, die die Industrialisierung der Anwendungsentwicklung fördert, ist also idealerweise hochintegriert, verbirgt technologische Details vor dem Entwickler und unterstützt die Wiederverwendung von Entwicklungsobjekten. Die Komplexität einer Technologie kann hinter einem Framework, das zur Vereinfachung dieser beiträgt, transparenter und damit verständlicher gemacht werden. Das Composite Application Framework (CAF) von SAP stellt genau solch ein Framework dar und erfüllt in Kombination mit dem SAP NetWeaver Developer Studio die Anforderungen der Industrialisierung. Es ist modellgetrieben, das heißt, es stellt Werkzeuge bereit, die Anwendungen abstrakt über Metadaten definieren. Aus den Metadaten wird dann die ablauffähige Anwendung generiert. Dieser Ansatz erlaubt ein schnelles Entwickeln, da das erstellte Modell formal sehr gut prüfbar ist und die Generierung der Anwendung einfache Programmierfehler vermeidet.

SAP NetWeaver Visual Composer

SAP NetWeaver Visual Composer

Aufwand und Komplexität für den Entwickler sowie die Einarbeitungszeit für den Anwender lassen sich durch wiederverwendbare Bausteine, so genannte Patterns, reduzieren: Der Entwickler muss diese Funktionen nicht aufwändig und fehlerträchtig selbst implementieren; der Anwender kann alle auf diesem Pattern basierenden Listen bedienen, nachdem er den Umgang mit einer erlernt hat. Diese Eingabemasken werden automatisch auf Basis des Interfaces einer Funktionalität nach Best Practices generiert. Es gibt sie sowohl für die Benutzeroberfläche als auch für die Ablauflogik. Ein Beispiel aus dem Bereich User Interface ist das List Pattern, ein grafisches Bildschirmelement. Diesem wird eine Liste von Einträgen übergeben, die es automatisch mit verschiedenen Komfortfunktionen wie „Veränderung der Spaltenbreite“ oder „Filtern in Listenform“ anzeigt.
Das Composite Application Framework ist in zwei Schichten unterteilt: die Prozessschicht (CAF Guided Procedures) und die Service- und User-Interface-(UI)-Schicht (CAF Core). Beide Schichten lassen sich zwar unabhängig voneinander verwenden, entfalten ihren vollen Nutzen aber erst im Zusammenspiel. CAF Guided Procedures erlauben es, interaktive Geschäftsprozesse visuell zu modellieren und auszuführen. Verwendet ein interaktiver Geschäftsprozess nur vorhandene Services, lässt er sich in eine Composite Application umsetzen, ohne dass eine einzige Zeile Programmcode erstellt werden muss. Mit CAF Core lassen sich Services erstellen, die ihre Daten aus Alt- oder Fremdsystemen beziehen. In dieser Service- und UI-Schicht definiert ein Entwickler modellgetrieben Geschäftsobjekte und UI-Elemente. Alle diese Objekte sind dann in CAF Guided Procedures verwendbar.

Jewgeni Kravets

Jewgeni Kravets

Karsten Klenz

Karsten Klenz

Jan-Henrik  Peters

Jan-Henrik Peters

Tags:

Leave a Reply