SAP HANA 2.0: mit HANA XS mehr als „nur“ eine Datenbank nutzen

In unserer Blog-Serie „SAP Technology“ beleuchten wir in den nächsten Wochen Themen, über die sich die Plattform- und Entwicklungsverantwortlichen in den Unternehmen aktuell verstärkt Gedanken machen. Heute starten wir mit dem Thema „SAP HANA 2.0“.

Wenn die Rede von SAP HANA ist, denken die meisten an eine In-Memory-Datenbank mit schnellen Analysefunktionen, die inzwischen Grundlage für zahlreiche SAP-Produkte ist. Es gibt aber eine weitere Komponente, die mehr Beachtung verdient als sie oft bekommt, und die jedem Kunden mit HANA-Datenbank zur Verfügung steht: der HANA XS Applikationsserver, der Teil der SAP-HANA-Datenbanklizenz ist und dadurch mittlerweile vielen Unternehmen zur Verfügung steht.

SAP hat in den letzten beiden Support-Package-Stacks (SPS11 und SPS12) von SAP HANA 1.0 zahlreiche Neuerungen eingebaut, die auch die wesentliche Grundlage für HANA 2.0 und kommende Neuerungen innerhalb der HANA Cloud Platform bilden. Dabei wurden vor allem Architektur und Funktionalität des HANA-Applikationsservers HANA XS erheblich erweitert, der dabei in XS Advanced umbenannt wurde.

Vollwertiger Applikationsserver für serverseitiges Javascript, Java und mehr

Mit XS Advanced wurde ein komplett neues Anwendungsmodell für Javascript-Anwendungen eingeführt. Dieses Anwendungsmodell basiert auf Node.JS und erlaubt die Modularisierung der Anwendung. Datenbankobjekte wie Tabellen, View, Stored Procedures auf der einen Seite und in JavaScript implementierte Anwendungslogik andererseits können als unterschiedliche Module innerhalb eines einzigen Projekts umgesetzt werden. Beim Einspielen der Anwendung auf einem HANA-System werden nicht nur die erforderlichen Datenbankobjekte angelegt, sondern es wird gleichzeitig auch die Anwendungslogik auf dem XS-Advanced-Applikationsserver bereitgestellt, ohne dass hierfür getrennte Schritte erforderlich wären.

Neben der Unterstützung von Node.JS-basierten Anwendungen kann XS Advanced auch Java-EE-Anwendungen ausführen, da er mit Apache TomEE auch einen vollwertigen Java-EE-Container enthält. Dadurch können auch existierende Java-Anwendungen auf dem XS-Advanced-Applikationsserver ausgeführt werden.

Im Rahmen von HANA 2.0 sollen künftig neben Node.JS und Java EE auch weitere Laufzeitumgebungen unterstützt werden. SAP propagiert dies unter dem Slogan „Bring your own language“. Dies wird dadurch erreicht, dass HANA XS Advanced auf CloudFoundry aufbaut. Bei CloudFoundry handelt es sich um eine Open-Source-Plattform für den Betrieb von PaaS-Umgebungen. CloudFoundry kommt zunehmend als Grundlage der HANA Cloud Platform zum Einsatz und Teile von CloudFoundry wurden auch genutzt, um die verschiedenen Laufzeitumgebungen des XS-Advanced-Anwendungsservers zu ermöglichen – auch wenn XS Advanced keine vollständige CloudFoundry-Umgebung bereitstellt oder voraussetzt.Die Architektur von Abb. 1: SAP HANA mit HANA Datenbank, XS Classic und XS Advanced (Quelle: openSAP, 2016)

Abb. 1: Die Architektur von SAP HANA mit HANA Datenbank, XS Classic und XS Advanced (Quelle: openSAP, 2016)

 

Isolation von Anwendungen

Einzelne XS Advanced-Anwendungen laufen jeweils in einem eigenen Container (von SAP und innerhalb von CloudFoundry teilweise auch etwas irreführend als „Microservice“ bezeichnet). Zu einem Container gehört einerseits, dass Datenbankobjekte in einem eigenen Schema abgelegt werden, welches ohne weitere Vorkehrungen nicht für andere Anwendungen innerhalb der Datenbank sichtbar ist. Einzelne Anwendungen und ihre Datenbankobjekte sind darüber hinaus auch auf Berechtigungsebene voneinander isoliert und können nur auf einander zugreifen, falls dies explizit zugelassen wird.

Jede Anwendung läuft mit einer eigenen Kopie der benötigten Laufzeit-Umgebung in einem eigenen Prozess (zur besseren Skalierung können auch mehrere Prozesse auf einem einzigen Applikationsserver gestartet werden). Durch die Prozessisolation können Probleme innerhalb eines Anwendungsprozesses die Stabilität anderer Anwendungen nicht gefährden; mindestens genauso wichtig ist aber, dass unterschiedliche Anwendungen auf demselben Applikationsserver mit unterschiedlichen Versionen der Laufzeitumgebung (z. B. verschiedenen Versionen von Node.JS) laufen können.

Getrennte Installationsmöglichkeit von Datenbankserver und Applikationsserver

Trotz der engen Integration zwischen der HANA-Datenbank und dem HANA-XS-Applikationsserver ist es mittlerweile möglich, diese auf unterschiedlichen Servern zu installieren. Dadurch kann beispielsweise kostengünstigere Hardware verwendet werden, um eine größere Anzahl von XS-Advanced-Applikationservern mit Load Balancing zu betreiben, während die Datenbank auf hoch verfügbarer Hardware läuft. Gleichzeitig zeigt diese Architekturentscheidung auch, dass der XS-Advanced-Applikationsserver inzwischen erwachsen geworden ist und dass durch die Nutzung als vollwertiger Applikationsserver für verschiedene Laufzeitumgebungen eine eigene Skalierbarkeit – unabhängig von der HANA-Datenbank – sinnvoll geworden ist.

Damit ist man natürlich auch wieder zurück bei der klassischen Drei-Schichten-Architektur aus Client, Applikationsserver und Datenbankserver. Dies hat eine gewisse Ironie, weil SAP zwischendurch versucht hatte, die „Abschaffung“ eines zusätzlichen Applikationsservers als große Vereinfachung zu propagieren. Aber das war natürlich von Anfang an nur scheinbar der Fall, weil der Applikationsserver einfach auf den gleichen Servern installiert wurde wie die Datenbank; hierzu ist man inzwischen glücklicherweise nicht mehr gezwungen. Es gibt eben doch gute Gründe, warum sich die Drei-Schichten-Architektur in dieser Form entwickelt hat.

Bei der Installation einer neuen HANA-Datenbank ist zu beachten, dass XS Advanced nur als Option angeboten wird, aber standardmäßig nur die abwärtskompatiblen „XS Classic“-Dienste installiert werden. Falls also XS Advanced verwendet werden soll, was für neue Projekte sehr ratsam ist, muss dieser explizit mitinstalliert werden.

HANA Cloud Platform und Upgrade auf HANA 2.0

Innerhalb der HANA Cloud Platform steht XS Advanced noch nicht zur Verfügung, weil SAP noch dabei ist, die Plattform auf CloudFoundry umzustellen. Es besteht aber kein Zweifel daran, dass SAP so schnell wie möglich versuchen wird, dies umzusetzen. Eine Beschäftigung mit XS Advanced ist deshalb auch dann angebracht, falls in absehbarer Zeit neue Anwendungen für die HANA Cloud Platform entwickelt werden sollen.

Auch in Vorbereitung auf die jüngst angekündigte Version 2.0 der HANA-Datenbank ergibt die Beschäftigung mit XS Advanced Sinn. HANA 2.0 führt die Verwendung des XS-Advanced-Applikationsservers weiter. Am Entwicklungsmodell für Anwendungen ändert sich dabei nichts. Support Package Stack 11 und 12 von HANA 1.0 sollen sich direkt und ohne größeren Aufwand auf HANA 2.0 aktualisieren lassen, ohne dass Änderungen am XS-Advanced-Anwendungsmodell erforderlich wären. Wer sich also auf HANA 2.0 vorbereiten möchte, sollte sich ebenfalls mit dem XS-Advanced-Applikationsserver beschäftigen.

Ältere serverseitige Javascript-Anwendungen, die nach dem älteren Entwicklungsmodell („XS Classic“) entwickelt wurden, sollten nach und nach in das neue Entwicklungsmodell überführt werden. SAP will ältere Anwendungen für HANA XS zwar noch „für einige Support Packages“ unterstützen, macht aber auch deutlich, dass solche Anwendungen als Altanwendungen betrachtet werden und umgestellt werden sollen. Neue HANA-XS-Anwendungen sollten deshalb ausschließlich für XS Advanced entwickelt werden – für ältere HANA-XS-Classic-Anwendungen sollte eine Umstellung geplant werden, da hierbei auch Entwicklungskapazität benötigt wird.

Fazit

Die letzten beiden Support Packages von HANA 1.0 bringen zahlreiche Veränderungen für die Entwicklung von HANA-basierten Anwendungen. SAP hat mit XS Advanced erhebliche Verbesserungen sowohl bei der Anwendungsarchitektur als auch für die Softwareentwicklung vorgenommen.

Diese Veränderungen sind aus technischer Sicht sehr viel weitreichender als die Änderungen, die HANA 2.0 zusätzlich bieten wird. Bisher bietet HANA 2.0 vor allem zusätzliche Erweiterungen beim Load Balancing, bei der Datenmodellierung sowie bei einigen analytischen Funktionen.

Wer sich also fragt, was die Ankündigung von HANA 2.0 bedeutet, sollte sich vor allem mit XS Advanced beschäftigen. Die Tatsache, dass XS Advanced bereits in den aktuellen Support Packages von HANA 1.0 zur Verfügung steht, ist insofern günstig, weil dies eine Umstellung von existierenden Anwendungen und eine zukunftssichere Entwicklung von neuen Anwendungen ermöglicht, ohne dass dafür sofort HANA 2.0 eingeführt werden muss.

Vorschau: Im nächsten Blogartikel unserer Serie „SAP Technology“ geht es um die Zukunft von SAP NetWeaver ABAP. Welche Bedeutung kommt der traditionellen Plattform in den nächsten Jahren zu?

Christian Steinert

Christian Steinert

Christian Steinert ist Senior Developer und Anwendungsarchitekt.
Er hat über 15 Jahre Erfahrung mit der Konzeption und Entwicklung von SAP- und Enterprise-Software. Aktuell beschäftigt er sich vor allem mit neuen SAP-Produkten innerhalb der SAP HANA Cloud Platform und der Entwicklung von SAP Fiori- und Mobilanwendungen.
Christian Steinert

3 thoughts on “SAP HANA 2.0: mit HANA XS mehr als „nur“ eine Datenbank nutzen

  1. Ein sehr schöner Beitrag, vielen Dank! Ist es auch möglich das Ganze als Mobile SAP zu nutzen? Ich denke das wäre für viele noch praktischer.

    1. Hallo

      Ja, man kann auch Mobile Szenarien auf Grundlage von Hana XS umsetzen. Auf Grundlage von Hana XS lassen sich OData-Dienste erstellen, die als Backend für Mobilanwendungen dienen können.

      Freundliche Grüße
      Christian Steinert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.