Architektur des Web Application Servers®

Autor:
Andreas Spall
Orientation in Objects GmbH
Andreas Spall
Andreas Spall
Datum:Dezember 2003

Die Komponentenplattform Web Application Server unterstützt die Einwicklung und den Betrieb von J2EE- und ABAP-basierten Web-Anwendungen und Web Services. Einen Parallelbetrieb von Java- und ABAP-Implementierungen unter Verwendung einer gemeinsamen Datenbank wird vom Server unterstützt. Dieser Artikel stellt die Architektur des Web Application Servers vor.

Der Web Application Server, vergleiche Abbildung 1, wird neben dem Internet Communication Manager in drei Layer aufgeteilt:

SAP NetWeaver
Abbildung 1.) SAP Web Application Server

Internet Communication Manager

Der Internet Communication Manager (ICM) ist mit dem Präsentations- und dem Integrationslayer verbunden und stellt für diese die zentrale Anlaufstelle zum Aufbau von Netzwerkverbindungen dar. Dazu leitet er Clientanfragen von Benutzerschnittstellen, wie beispielsweise HTTP-Anfragen, an die in der Präsentation enthaltene Web-Dynpro-Laufzeitumgebung und Web Service Anfragen an die im Integrationslayer enthaltene Integration Engine.
Das Resultat (Content) der Clientanfrage wird vom Internet Communication Manager nicht nur an den Client weitergeleitet sondern in Verbindung mit der vom Client angefragten URL in einem Cache Directory für künftige Anfragen gespeichert, vergleiche [1]. Dieses Cache Directory nimmt nicht nur statischen Content, wie beispielsweise Bilder, sondern auch dynamischen und aktiven Content auf. Dies führt zu einer Verbesserung der Performance und Skalierbarkeit von Web-Anwendungen, da diese nicht für jede Clientanfrage angesprochen werden, sondern das Resultat unmittelbar aus dem Cache Directory bezogen wird.
Um den Web Application Server vor unnötiger Last durch wiederkehrende ungültige oder fehlerhafte Anfragen zu schützen, werden diese Anfragen zusammen mit der Fehlermeldung des Präsentations- bzw. Integrationslayers in das Cache Directory aufgenommen.
Ein Veralten des Contents kann mittels aktivem Caching vermieden werden. Über aktives Caching ist es Anwendungen möglich, durch Eintreten von anwendungsabhängigen Ereignissen, den im Cache Directory zwischengespeicherten Content auf Gültigkeit prüfen und ersetzen zu lassen.

Präsentation

Für das Präsentationslayer können Komponenten mit den Technologien JavaServer Pages (JSP) und Business Server Pages (BSP) entwickelt werden. Mit Web Dynpro hat SAP an dieser Stelle eine neue Abstraktion zur grafischen Entwicklung einer Weboberfläche mit entsprechenden Werkzeugen geschaffen. Die Beschreibung wird XML-basiert abgelegt, folgt dem MVC Pattern und läßt sich mit entsprechenden Generatoren in JSP (vielleicht künftig auch BSP) Quellcode überführen.
Um den Quellcode der JSP bzw. BSP zu vereinfachen ist es bei der Entwicklung möglich, sogenannte Tag Libraries zu verwenden. Eine Tag Library ermöglicht es, mehreren Seiten ein einheitliches Aussehen und Verhalten zu vermitteln. Durch die Wiederverwendbarkeit von Tag Libraries kann eine Erhöhung der Produktivität ermöglicht werden.
Die JavaServer Pages werden bei einer Anfrage eines Clients von der JSP Engine in ein Servlet umgewandelt. Die Servlet Engine lädt dieses Servlet und bringt es zur Ausführung. Je nach Art des Clients werden vom Servlet HTML, XML oder WML erzeugt und dem Client als Antwort auf seine Anfrage übermittelt.
Wird von einem Client eine Ressource angefragt, die über eine BSP realisiert wurde, erzeugt die BSP Engine ein BSP Objekt und sendet eine vordefinierte Sequenz von Events an den Event-Handler des Objektes. Das BSP-Objekt erzeugt, je nach Art der Anfrage, ein HTML-, XML- oder WML-Dokument und übermittelt dieses als Antwort an den Client.
Bei beiden Technologien ist es möglich, HTML mit clientseitigem Script-Code (JavaScript) aufzubereiten. JavaScript ermöglicht es über die Seite zu navigieren, ohne dass diese vom Browser nachgeladen werden muss. Dadurch wird beispielsweise das vom Benutzer wahrgenomme Flackern einer Seite vermindert.

Geschäftslogik

Das Layer Geschäftslogik kann über die Programmiersprachen Java (J2EE) und ABAP Implementierungen der Geschäftslogik aufnehmen. Der ABAP und Java Quellcode wird in Zwischencode kompiliert und von einer virtuellen Maschine zur Ausführung gebracht.
Eine Realiserung mit der Sprache Java erfolgt als Enterprise JavaBean (EJB). Dabei wird die Geschäftslogik über Session bzw. Entity Beans abgebildet und in die J2EE-Umgebung des Web Application Servers deployed. Der Vorteil dieser Variante ist, dass die Geschäftslogik in jeden J2EE konformen Application Server deployed werden kann und dadurch dem Leitspruch folgt "Write once, Run Anywhere".
Die Geschäftslogik kann auch mittels ABAP als Business-Objekte realisiert werden. Dadurch ist es Untenehmen möglich, bestehendes ABAP Know-How auch weiterhin zur Implementierung von Geschäftslogik zu verwenden. Ferner können bestehende ABAP-Implementierungen in den WAS übernommen werden.
Anwendungen des Präsentationslayers können auf beide Realisierungsarten zugreifen.
Neben der eigentlichen Implementierung der Geschäftslogik ist dieses Layer für die Persistenz der in der Geschäftslogik verwendeten Daten zuständig.
Dazu bietet sich, je nach Art der Implementierung, eine Persistenz über ein relationales Model oder über ein objektrelationales Model an. Der SAP Web Application Server bietet für beide Modelle eine Vielzahl von Lösungsmöglichkeiten an.

Integration

Es ist die Aufgabe des Integrationslayers über dessen Integration Engine die implementierte Geschäftslogik als Web Service bereit zu stellen. Aus diesem Grund wird die Integration Engine innerhalb des Web Application Servers auch Web Service Infrastructure genannt.
Die Implementierung der Geschäftslogik wird mittels eines Web Service Interfaces abstrahiert, vergleiche Abbildung 1. Eine Beschreibung des Web Services in Form einer Web Service Description Language (WSDL) Datei wird in der Integration Engine abgelegt. Ein Web Service Consumer (Client) kann entsprechend der WSDL Datei SOAP Nachrichten an den Web Application Server senden und dadurch die Geschäftslogik zur Ausführung bringen.
Neben der Bereitstellung der Geschäftslogik als Web Service kann der Web Application Server über die Integration Engine als Web Service Consumer gegen einen anderen Web Service Anbieter agieren. Dazu wird in der Integration Engine ein Proxy aus der vom Web Service Anbieter erhaltenen WSDL Datei erzeugt. Auf der Basis dieses Proxys können im Geschäftslogiklayer die bestehenden Funktionen integriert werden. Dadurch ist es beispielsweise möglich, die Funktionen eines Email Web Services in der Auftragsbearbeitung zu verwenden.

Fazit

Mit J2EE setzt die SAP AG auf eine standardisiere und etablierte Plattform zur Abbildung von Geschäftslogik.
Durch die Dualität, ABAP und Java, des Web Appication Servers können Unternehmen bestehendes Wissen in ABAP bzw. Java als Basis einer Implementierung für den Web Application Server verwenden. Dies wäre mit einem Server, der Implementierungen in nur einer der Sprachen aufnehmen könnte, nicht möglich gewesen.

Referenzen

[1] Veröffentlichungsnummer: EP1367504 Titel: Method and computer system for indexing structured documents
(http://de.espacenet.com/espacenet/de/de/e_net.htm?search3)

[2] mySAP Technology Web Application Server: Technologie und Web-Dynpro
(http://www50.sap.com/germany/solutions/netweaver/factsheets.asp)

Zum Geschaeftsbreich Competence Center