Web-Anwendungen komfortabel programmieren

Feature | 19. Oktober 2004 von admin 0

Web-Anwendungen gewinnen auch im SAP-Umfeld immer mehr an Bedeutung. Die Applikationen, die auf einem Client im Browser laufen, bieten zahlreiche Vorteile. Sie müssen nicht mühsam am Arbeitsplatz installiert werden, die Einstellungen der User lassen sich zentral auf dem Server halten, und die Daten stehen immer und überall aktuell zur Verfügung. Darüber hinaus laufen Web-Anwendungen weitgehend unabhängig vom Betriebssystem und erfordern keine Arbeitsplatz-Rechner der neuesten Generation. Auf diese Weise lassen sich problemlos Thin Clients realisieren. Diese Vorzüge können Web-Anwendungen aber nur dann ausspielen, wenn sie mindestens genauso viel Funktionalität und Handlingkomfort bieten wie normale Applikationen oder das SAP GUI (Graphical User Interface).

SAP liefert ein Portfolio an Werkzeugen, um vollwertige Web-Applikationen zu entwickeln und in die Anwendungslandschaft einzubinden. Dazu stand bereits mit dem SAP-R/3-Release 4.6 der SAP Internet Transaction Server (SAP ITS) zur Verfügung. Allerdings war die Entwicklung der Anwendungen damit langwierig und stellte hohe Anforderungen an die Hardware. Diesen Aufwand reduziert das Programmiermodell der Business Server Pages (BSP), die SAP mit dem SAP Web Application Server (SAP Web AS) 6.10 einführte. BSP erlauben es, dynamische Web-Inhalte mit dem SAP Web AS zu erstellen. Diese Technologie wurde mit SAP Web AS 6.20 um die Abstraktionstechnik der BSP-Extensions und das Model-View-Controler Design Pattern (MVC), ein Konzept zur Trennung von Design, Ablaufsteuerung und Businesslogik, erweitert. Version 6.40 liefert mit Web Dynpro eine weitere Schlüsseltechnologie.

Stärken und Schwächen des BSP-Programmiermodells

Eine BSP-Applikation besteht aus verschiedenen Webseiten, die mit HTML (Hypertext Markup Language), ABAP und JavaScript erstellt sind. Dabei bestimmt HTML das Aussehen der Anwendung, das ABAP-Scripting die dynamischen Inhalte — etwa die Darstellung von internen Tabellen — und JavaScript reichert das HTML mit interaktiven Fähigkeiten an. So genannte Seitenfragmente bieten die Möglichkeit, wiederverwendbare Codestrecken zu kapseln und durch diese Vorlagen bei der Entwicklung neuer BSP-Seiten Zeit zu sparen. Die HTML-Seiten lassen sich in einer festgelegten oder freien Reihenfolge vom Anwender ausführen.
Damit erfüllen BSP-Applikationen mit Hilfe reiner Webseiten die Anforderungen, die Benutzer von Anwendungen in normalen Betriebssystemumgebungen gewohnt sind. Dennoch arbeiten diese Web-Anwendungen unabhängig von einem Betriebssystem und benötigen außer dem Client-Browser keine weiteren Programme oder Bibliotheken.
Ruft ein Anwender eine BSP-Seite vom Client-Browser auf, erzeugt die ABAP-Laufzeitumgebung des SAP Web AS dynamisch eine aktuelle Version dieser Seite. Hierbei werden die ABAP-Scripting-Teile interpretiert und mit dem statischen HTML-Code verwoben. Den daraus resultierenden endgültigen HTML-Code kann der Client-Browser “verstehen” und darstellen.

Allerdings hat der BSP-Ansatz auch seine Schwächen: So ist die Vermischung von HTML-Code und ABAP-Scripting fehleranfällig und schwierig zu warten, da er nur unzureichend durch die Entwicklungsumgebung unterstützt werden kann. Je komplexer das Coding, desto komplexer gestaltet sich auch die Fehlersuche, und die Anwendung lässt sich nur mit einigem Aufwand erweitern. Von Seiten des Servers kann nicht festgestellt werden, ob das HTML-Coding syntaktisch korrekt ist, und auch eine gut lesbare Formatierung des Codings wie bei “Pretty Printer” ist nicht möglich. Darüber hinaus ist die Darstellung von ABAP-Typen schwierig und muss, etwa um Währungen korrekt zu formatieren, für jedes Feld neu erfolgen.
Layout und einheitliche Gestaltung einer BSP-Anwendung erfordern von den Entwicklern Disziplin und Sorgfalt. Zwar gibt es bestimmte Möglichkeiten der Vereinheitlichung, etwa mittels Cascading Style Sheets (CSS), einer Auszeichnungssprache unter anderem für HTML. Allerdings bleibt es Aufgabe des Entwicklers, dies auf den jeweiligen Seiten umzusetzen. Änderungen des GUI müssen unter Umständen auf allen BSP-Seiten nachgezogen werden.
Darüber hinaus sind die Unterschiede zwischen den verschiedenen gängigen Browsertypen zu beachten. Ohne ein spezifisches Coding wird ein und dieselbe Web-Anwendung auf jedem Browser anders dargestellt und verhält sich auch anders. Gerade in heterogenen Client-Umgebungen verursacht das einen hohen Administrationsaufwand. Bei allen Vorteilen des BSP-Programmiermodells muss der Entwickler also weiterhin einige Zeit dazu verwenden, wiederkehrende Programmieraufgaben zu erledigen und Fehler zu vermeiden oder zu suchen.

Mehr Flexibilität mit BSP-Extensions

Die BSP-Extensions, die SAP mit dem SAP Web AS 6.20 einführte, beseitigen diese Schwächen. BSP-Extensions sind eine Abstraktionstechnik, mit der sich sowohl die Syntax als auch die Semantik einer bestimmten HTML-Codingstrecke mit weniger Zeilen und geringerem Aufwand ausdrücken lässt. Es handelt sich dabei um eine Ergänzung des BSP-Programmiermodells, die so strukturiert ist, dass sie nicht nur für HTML, sondern auch für XML (Extensible Markup Language) oder WML (Wireless Markup Language) verwendet werden kann.
BSP-Extensions sind Container für BSP-Elemente. Jedes dieser Elemente stellt zur Laufzeit ein Objekt oder eine bestimmte Funktionalität zur Verfügung. Ein BSP-Element besitzt Attribute und ist einer ABAP-Klasse zugeordnet, die die Elementfunktionalität (etwa “width” für die Eingabefeldbreite) realisiert. Die Attribute sind gleichzeitig Eingabeparameter für die Klasse, die im Normalfall auch den Datenstrom für das Rendering auf der Webseite generiert. Dies gewährleistet einen hohen Grad an Flexibilität. So kann die Darstellung beispielsweise problemlos für XML oder WML erfolgen und auch browserspezifisches Coding umsetzen. Der Aufruf erfolgt im Layout der BSP-Seite in XML-Notation.

Vordefinierte und unternehmensspezifische Erweiterungen

BSP-Element

BSP-Element

SAP stellt eine Reihe vordefinierter BSP-Extensions zur Verfügung, die im Auslieferungsumfang des SAP Web AS enthalten sind. Die BSP-Extension HTMLB (HTML for Business) zum Beispiel besitzt für jedes HTML-Objekt eine geeignete Entsprechung. Zudem lauten viele der Attribute der BSP-Elemente wie ihre Gegenstücke der HTML-Elemente. Es gibt aber auch eine Reihe mächtiger BSP-Elemente, die in HTML kein direktes Gegenstück kennen. Solche Elemente unterstützen komplexe Anforderungen an Darstellung und Navigationsverhalten. Dazu zählen unter anderem das tableView-Element für die Darstellung von internen Tabellen und das tree-Element für die Anzeige und Navigation in Baumstrukturen.
Weitere vordefinierte BSP-Extensions, wie XHTMLB (eXtended HTMLB), PHTMLB (Pattern for HTMLB), BENCHMARK, XSLT und BSP bieten zusätzliche Möglichkeiten, beispielsweise für Benchmarking oder UI-Patterns. Sie lassen sich an spezifische Anforderungen anpassen. Darüber hinaus besteht die Möglichkeit, eigene BSP-Extensions zu schreiben. Auf diese Weise können Kunden ein standardisiertes Portfolio an Objekten und Funktionalitäten für ein spezielles Projekt zusammenstellen.

Codestrecken-Vergleich

Codestrecken-Vergleich

Der Ansatz der BSP-Extensions macht das Layout-Coding sehr viel übersichtlicher und kürzer, wie auf dem nebenstehenden Bild deutlich wird. Es zeigt zwei Listings, die beide eine HTML-Tabelle mit den Daten aus einer internen Tabelle beim Aufruf im Web-Browser erzeugen. Ein weiterer Vorteil der BSP-Extensions ist, dass sich Formatierungshilfsmittel verwenden lassen und das Layout-Coding geprüft werden kann. Spätestens wenn die BSP-Seite aktiviert wird, überprüft die Entwicklungsumgebung ihre Korrektheit. Bei Änderungen ist im Allgemeinen nur an einer einzigen Stelle ein Eingriff erforderlich, danach werden sie unmittelbar von allen betroffenen BSP-Applikationen oder -Seiten übernommen. BSP-Extensions sind einfach zu handhaben, da sie vollständig in die SAP-Entwicklungsumgebungen für ABAP und Java integriert sind. Anwender können BSP-Elemente beispielsweise per Drag-&-Drop direkt in das BSP-Seitenlayout ziehen. Die Attribute werden automatisch mit der Standardeinstellung vorbelegt. Die Pretty-Printer-Funktion rundet die Funktionalität ab, um im Layout-Teil stets übersichtliches Coding zur Verfügung zu haben.

Das Thema wird vertieft im SAP-Heft Nr. 1,
BSP-Extensions: Komfortables Webreporting mit HTMLB
erschienen bei SAP Press.

Einen umfassenden Überblick vermittelt das Buch “SAP Web Application Server”, ebenfalls erschienen im SAP-Press-Verlag.

Frederic Heinemann

Frederic Heinemann

Leave a Reply