The new face of SAP - Web Dynpro®

Autor:
Sabine Winkler
Orientation in Objects GmbH
Sabine Winkler
Sabine Winkler
Datum:Juli 2004

Für die produktive Entwicklung von anspruchsvollen Browser-basierten Oberflächen erweisen sich gute Entwicklungswerkzeuge für die Java Web Technologien Servlets und JavaServer Pages nicht als ausreichend. Ein Bedarf an Frameworks, um zahlreiche, in der J2EE nicht standardisierte Aspekte einheitlich zu regeln, ist deutlich zu erkennen und spiegelt sich z.B. in den Open Source Entwicklungen Apache Struts oder Velocity wieder. Nicht zuletzt verfolgt Sun selbst mit der aktuell verabschiedenten Spezifikation der JavaServer Faces dieses Ziel.

Durch den Einsatz von Java als zweite strategische Sprache neben ABAP und dem parallel verfolgten Ziel, zunehmend Anteile der bisherigen Oberflächen Browser basiert anbieten zu wollen [1], hat die SAP AG ebenso diesen Bedarf erkannt und als Antwort auf dieses Defizit eine zentrale Oberflächentechnologie, unterlegt mit einer vielversprechenden Entwicklungsumgebung innerhalb der neuen NetWeaver Plattform entwickelt - Web Dynpro.

Dieser Artikel möchte einen ersten Einblick in die Web Dynpro Technologie und deren Konzepte geben.

Web Dynpro

Web- "The Web, the leading information retrieval service of the Internet (q.v.; the worldwide computer network). The Web gives users access to a vast array of documents that are connected to each other by means of hypertext or hypermedia links." [2]

Dynpro- "DYNamisches PROgramm. Ein Dynpro besteht aus einem Bildschirmbild und der darunter liegenden Ablauflogik." [3]

Aus einer rein funktionalen, minimalistischen Sichtweise ergibt die Kombination der beiden vorangestellten Definitionen eine erste Beschreibung der neuen SAP Oberflächentechnologie. Die Umsetzung der Web Dynpro Technologie erweist sich durchaus komplexer, begründet durch die Ziele, die damit verfolgt werden. Innerhalb der Enterprise Service Architekture (ESA), dem Service-orientierten Ansatz der NetWeaver Infrastrukturplattform soll Web Dynpro als einheitliche Technologie für alle Benutzeroberflächensämtlicher SAP Anwendungen dienen, [4]. Allein dieses Ziel spiegelt die hohen Anforderungen wider, die durch diese Web Technologie erfüllt werden müssen.

Die folgenden überlegungen, die innerhalb der Web Dynpro Technologie Berücksichtigung finden müssen, werden entlang des Artikels in ihrer Umsetzung betrachtet. (Grundlage dieser Betrachtung ist die Sneak Preview Version des SAP Web Application Servers.)

I. "Web Dynpro for JaBAP"

Die Web Dynpro Technologie basiert auf einem eigenen Programmiermodell, abstrahiert durch ein generisches, plattformunabhängiges Metamodell. Durch dieses Metamodell wird der gesamte Aufbau des zugrundeliegenden Web Dynpro Frameworks beschrieben. Das Metamodell basiert auf dem MVC-Architekturmuster und verwendet als Beschreibungssprache XML. Aus den Web Dynpro Metadaten, die auf der Grundlage des Modells erstellt werden, wird der Quellcode für eine Anwendung generiert, wie in Abbildung 1 dargestellt. Durch diese Trennung zwischen abstrakter Beschreibung und konkreter Implementierung wird ein überführen in verschiedene Sprachumgebungen ermöglicht. Für die Java und die ABAP Personality existieren entsprechende Generatoren, für die .NET Technologie von Microsoft ist ein Generator in Planung.

Um die Vielzahl bestehender Dynpro Lösungen in der "neuen SAP Welt" nicht durch hohen Entwicklungsaufwand überführen zu müssen, wird durch ein entsprechendes Werkzeug eine (teil-) automatisierte Konvertierung von bestehenden Dynpro Anwendungen ermöglicht.

Generationsprozess

Abbildung 1) Die technische Umsetzung des Web Dynpro Metamodells

Innerhalb des Web AS bestehen für die jeweilige Plattform Laufzeitumgebungen, die es ermöglichen, Web Dynpro Anwendungen sowohl innerhalb der J2EE als auch der ABAP Personality ausführen zu können. Durch die Integration der Laufzeitumgebung im Web AS steht der Web Dynpro Webschicht der Zugriff auf die verschiedenen Businesslogik- und Integrationsschichten (Backend) durch die Verwendung etablierter Protokolle wie RFC, RMI oder SOAP zur Verfügung.

II. "Multi-Channeling"

Der Vielfalt verschiedenartiger Client Browser begegnet die Web Dynpro Technologie mit einem eigenständigen Rendering Mechanismus. Eine Web Dynpro Anwendung definiert ihren Zustand durch die zu präsentierenden Daten und die Layoutinformationen getrennt voneinander. Mittels beider erzeugt ein Rendering Prozess die Ausgabe. Dieser Prozess wird in Abhängigkeit zum Browsertyp und seinen Fähigkeiten durchgeführt. Wird beispielsweise ein Mobiltelefon identifiziert, erfolgt serverseitig das Rendering in WML. Für Browser leistungsfähiger Endgeräte (z.B. Desktop Computer) stellt Web Dynpro ein sogenanntes Client-Side Framework (CSF) zur Verfügung. Das CSF basiert auf einer definierten Menge von JavaScript Funktionen, die anhand der übermittelten Daten unter Verwendung von Cascading Style Sheets die HTML Ausgabe direkt beim Client erzeugen. Unterstützt ein Browser kein JavaScript, kann ein serverseitiges Rendering ebenfalls HTML erzeugen und dieses an den Client senden.

III. " SAP Web GUI ? "

Durch das Client Side Framework wird u.a. die Anforderung nach anspruchsvollen Benutzeroberflächen umgesetzt. Im Metamodell sind zahlreiche Oberflächenelemente vordefiniert. So stehen einer Web Dynpro Anwendung z.B. Tabellen, Baumstrukturen, Diagramme und Business Graphen als komplexe Oberflächenelemente zur Verfügung. Die Anwendung spezifiziert deren Layout sowie die während der Laufzeit zu präsentierenden Daten. Diese werden durch das CSF gepuffert. Dadurch reduziert sich der Datenaustausch zwischen einem Web Dynpro Client und der Web Dynpro Laufzeitumgebung auf den Transfer von Layoutinformationen und Ausgabewerte aus der Richtung des Servers und der vom Benutzer ausgewählten Aktion und den damit verbundenen Eingabewerten, wie Abbildung 2 zeigt [5].

GUI im Web - das Client-side Framework von Web Dynpro

Abbildung 2) GUI im Web - das Client-side Framework von Web Dynpro

Durch das verwendete JavaScript werden anhand der Typisierungsinformationen der Werte clientseitig die Benutzereingaben validiert und die Datenformatierung vorgenommen. Ebenso werden dadurch Ereignisse, die nur die Darstellung im Browser ändern, direkt beim Client bearbeitet. Es lässt sich zusammenfassen, dass die Fülle an vordefinierten Web Dynpro Oberflächenelementen durch das CSF nahezu die Komfortabilität erreicht, die bisherige, nicht Browser basierte Anwendungen der SAP bieten.

IV. "The tool will rule"

Mit den technologischen Konzepten, welche die Web Dynpro Technologie beinhaltet, geht die Bereitstellung eines Entwicklungswerkzeuges einher. Das SAP NetWeaver Developer Studio enthält für den gesamten Entwurfs- und Entwicklungszyklus von Web Dynpro Anwendungen graphisch unterstützte Entwicklungswerkzeuge. Sowohl die Bestandteile einer Anwendung als auch die Oberflächen der einzelnen Views können graphisch modelliert und deklariert werden. Beispielsweise ermöglicht der Application Modeler die graphische Erstellung der gesamten Struktur einer Anwendung sowie deren Ablauf. Mit dem View Designer ist die graphische Gestaltung der Oberfläche einfach per Drag & Drop möglich.

Toolsuite

Abbildung 3) "It's tool time !" - Die Web Dynpro Werkzeuge im NetWeaver Developer Studio

Jeder einzelne Entwicklungsschritt resultiert automatisch in XML Metadaten. Damit einher geht die direkte Generierung des Quellcodes. Einzig die Ereignis- und Fehlerbehandlung sowie anwendungsspezifische Logik verlangt eigenhändiges Programmieren, welches anschließend durch den Generator mit den Ergebnissen aus den Metadaten zusammengeführt werden.

Let's face the facts !

Den vorangestellten überlegungen begegnet die Web Dynpro Technologie mit ausgereiften Ideen und überzeugt mit einer ganzheitlichen, durchdachten Lösung. Ein Erfolg im Umfeld von SAP Applikationsentwicklung kann kaum in Frage gestellt werden. Interessant erscheint die Frage, inwieweit die Web Dynpro Technologie eine Alternative zu bestehenden Web Technologien im Java Umfeld darstellt - die Technologie als Produkt.

Im Vergleich zu etablierten Java Web Frameworks handelt es sich bei dem Web Dynpro um ein geschlossenes Framework. Anwendungsspezifische Erweiterungen sind nicht möglich und schränken die Flexibilität im Einsatz ein. Ebenso sind Ausrichtungen der Technologie im Hinblick auf die Integration von EJB bzw. CORBA als Businesslogik eher rudimentär unterstützt. Hierbei wird ausserhalb der SAP Welt und somit ausserhalb von R/3 und "BAPI-Land" die Web Service Technologie fokussiert. Allgemein werden keine Möglichkeiten zur Erweiterung bestehender J2EE Anwendungen mit beispielsweise einem JSP basierten Frontend mittels Web Dynpro aufgezeigt. Derzeit kann Web Dynpro nur in Verbindung mit dem SAP Web AS und der darin integrierten Laufzeitumgebung genutzt werden und ist somit auf anderen J2EE konformen Applikationsservern nicht einsetzbar.

Ob alle technologischen Ideen innerhalb von Web Dynrpo zum derzeitigen Entwicklungsstand beibehalten werden, bleibt abzuwarten. Betrachtet man die Umsetzung des Client-Side Frameworks, ist zwar das Ziel von komfortablen, benutzerfreundlicheren Oberflächen im Browser erreicht. Anwendungen mit komplexen Oberflächen weisen jedoch erhebliche Auswirkungen auf die Performance beim Aufbau der Seite beim Client auf. Beeindruckend ist jedoch die Entwicklungszeit von Web Dynpro Applikationen (vorausgesetzt, man hat bereits Erfahrungen mit der Technologie gemacht). Durch den generativen Ansatz und die graphische Unterstützung ist eine deutliche Reduzierung der Entwicklungszeiten zu verzeichnen. Werden für die angeführten Punkte Lösungen angestrebt, kann man einem Erfolg des Produktes "Web Dynpro" als (auch) Java-basierte Webtechnologie positiv entgegen sehen.

Referenzen

[1] Held, Rudolf; SAP AG (Hrsg.): SAP Web AS 6.30 - New Java Features, Informationsunterlagen zum Infotag SAP Web Application Server, Ratingen, 2003

[2] Encyclopaedia Britannica, Inc. (Hrsg.): Encyclopædia Britannica (http://www.britannica.com/eb/article?eu=2517&tocid=0&query=web&ct)

[3] SAP Info Glossary (http://www.sapinfo.net/public/de/glossary.php4/listdict/420_Cat/T/A/15276)

[4] Tillert, Peter; SAP AG (Hrsg.) The Basic Facts About Web Dynpro - What Does It Do and How Does It Work ? (https://www.sdn.sap.com)

[5] McNulty, Peter; SAP AG (Hrsg.): Web Dynpro Overview (https://www.sdn.sap.com)

Zum Geschaeftsbreich Competence Center