Hana XS - E

Werbung
INFRASTRUKTUR
Plattformen
Extended Application Services
Hana XS –
ein App-Server auf Diät
Mit Hana XS lassen sich moderne und leistungsstarke Business-Anwendungen programmieren, die
direkt auf der Hana Appliance aufsetzen. Welche Vor- und Nachteile gibt es gegenüber klassischen
Konzepten, welche Möglichkeiten bietet Hana XS?
Von Marco Harpenschläger, Andreas Fuchs und Matthias Gehre, Contrimo
M
it Hana XS (SAP Hana Extended Application Services)
hat SAP einen in die HanaDatenbank (DB) integrierten
Anwendungs- und Webserver entwickelt
und positioniert diesen als einfache und
schlanke Alternative zu den großen Herstellern von J2EE-Applikationsservern.
Damit wird deutlich, dass sich die anfangs reine Datenbank kontinuierlich
zu einer umfassenden Anwendungsplattform entwickelt. So lassen sich mit
Hana XS sowohl kleinere Apps als auch
komplexe Business-Anwendungen entwickeln – direkt auf Hana. Zusätzlich
ergeben sich gerade in Kombination mit
SAPUI5 (dem neuen Frontend-Framework der SAP) unzählige Möglichkeiten,
visuell ansprechende, zeitgemäße und
device-unabhängige Anwendungen zu
entwickeln. Doch statt wie früher proprietäre Protokolle und Libraries zu nutzen, profitiert man nun von offenen und
aktuellen Web-Standards wie beispielsweise HTML5, CSS3, jQuery, Ajax und D3
(Framework zur Datenvisualisierung).
Für uns ein Grund, das Thema Hana
XS technisch sowie hinsichtlich zu erwartender Potenziale zu beleuchten, insbesondere vor dem Hintergrund neuer
Business Cases.
Hana XS vs. Klassische
Architektur
In traditionellen, dreistufigen Architekturen ist ein separater Anwendungsserver (z. B. SAP NetWeaver Abap/Java,
J2EE-Server) für die Verarbeitung der
gesamten Business-Logik zuständig.
Dazu werden über JDBC/ODBC/ADBC
(Abap Database Connector) Daten aus
der Datenbank übertragen und anschließend gepuffert und validiert. Mit
steigendem Datenvolumen kann dies
allerdings massive Auswirkungen auf
die Performance haben.
Zudem findet im klassischen Modell
der Großteil des UI Renderings auf dem
Applikationsserver statt, wobei für den
Datenaustausch zwischen Client und
App-Server herstellerspezifische Protokolle eingesetzt werden. Im Gegensatz dazu umfasst das neue Konzept
nur noch zwei Layer. Anwendungs-,
Business- und datenintensive Berech-
Klassische Architektur vs. Hana XS.
98
E-3 JUNI 2014
Plattformen
nungslogik können per Code Pushdown
vollständig in die DB verlagert werden.
Hierzu schaffen Hana Views, SQL
bzw. SQLScript die Voraussetzungen.
Hierdurch werden die beiden größten
Schwachstellen der Drei-SchichtenArchitektur – der Flaschenhals zwischen Datenbank- und Anwendungsserver sowie die Pufferung der Daten
– beseitigt.
Aber auch die Anbindung zum Client
hat sich geändert. Der Client (z. B. Web
Browser, mobile Device) übernimmt
nun die folgenden Aufgaben:
1. Das UI Rendering auf Basis von
SAPUI5 sowie weiteren JavaScript
Libraries
2. Die Verarbeitung von UI Events
3. Den Aufbau der Verbindungen
zum Hana Server via Http(S)
Der kombinierte App- und Web-Server führt lediglich Kontrollfluss- und
Validierungslogik aus und ist für das
Service Enablement zuständig. Hierfür
können u. a. Server-Side JavaScript oder
OData eingesetzt werden. Das Service
Enablement regelt und kontrolliert, wie
Business-Logik und Daten der Hana DB
der Benutzeroberfläche bereitgestellt
werden, sofern UI Events diese anfordern. Die UI Events rufen hierzu auf
der Basis des Rest-Paradigmas Services
von Hana XS auf.
Damit bietet XS aus unserer Sicht zwei
entscheidende Vorteile. Erstens: Daten
werden nicht mehr zwischen Anwendungsserver und Datenbank übertragen, die Zeit für die Datenübertragung
entfällt. Zudem erübrigen sich Wartung
INFRASTRUKTUR
und Kosten für einen externen Server.
Zweitens: UI Rendering sowie UI Events
müssen nicht an den Anwendungsserver gesendet werden, da diese Aufgaben jetzt der Client direkt übernimmt.
Die Darstellung erfolgt somit individuell für jeden Client.
Technologie
Verbindet sich ein Client mit dem HanaServer, werden folgende Schritte auf
Betriebssystemebene ausgeführt: Eine
eingehende Http-Verbindung wird von
drei Prozessen verarbeitet. Der Internet
Communication Manager entspricht
dem Web-Server, der XS-Engine-Prozess dem Application-Server und der
Index-Server-Prozess repräsentiert die
Hana DB selbst. Er stellt den wichtigsten Betriebssystemprozess der Hana
DB dar, denn ihm wird der Speicherbereich, in dem die Daten des In-memory
Stores gespeichert sind, zugeordnet.
Der XS-Engine-Prozess erweitert den
Index-Server-Prozess,
entsprechend
arbeiten beide Prozesse mit denselben
Hana-nativen Datentypen. Daraus resultiert eine effiziente Datenverarbeitung, da weder Daten durch ein Netzwerk gesendet werden (Verarbeitung
auf Betriebssystemebene) noch Datenkonvertierungen zwischen Datenbank
und Anwendungsserver stattfinden.
Server-Side JavaScript
Die Kommunikation zwischen Client
und Server basiert auf dem REST-Paradigma. In der XS Engine laufen die RESTServices, die mit dem OData Frame­
work oder mit Server-Side JavaScript
SAP Hana XS – Praxisszenario
BW Reports zeichnen sich in der Regel durch eine hohe Aggregation der Daten
aus. Anwendungsszenarien auf Basis von Hana XS hingegen eignen sich insbesondere dann, wenn operative Daten ausgewertet und ein hoher Detaillierungsgrad der Reports gewünscht ist. Exemplarisch haben wir einen Business Case mit
Hana XS und SAPUI5 umgesetzt. Die Idee des Business Cases ist es, kontinuierlich und in großem Umfang anfallende Daten (z. B. Energieverbrauch, Durchsatzkennzahlen von Maschinen, Störungs- und Statusmeldungen, Bestandszahlen …)
von geografisch verteilten Werken oder Anlagen mit einem modernen Frontend
zu visualisieren. Hierzu setzen wir Progressbars, Panels, Tabellen, Diagramme
u. v. m. ein. Der Business Case wird außerdem durch die Einbindung der Google
Maps Library weiter aufgewertet. Die einzelnen Standorte werden mit zusätzlichen Detailinformationen (Bilder, Adressen, Verbrauchszahlen) abgebildet. Gerade hier zeigen sich die Vorteile des offenen Konzepts von Hana XS. Externe
Libraries wie Google Maps lassen sich in SAPUI5 mit JavaScript entsprechend
einfach integrieren. Zudem lässt sich dieses Beispiel auf die unterschiedlichsten
Anwendungsbereiche übertragen wie z. B. Supply Chain Management, CRM, Sales, MM, EWM, PM.
Mehr Informationen zu dem Praxisszenario erhalten Sie im
Video, das Sie unter folgendem Link aufrufen können:
www.contrimo.com/services/ueberblick-taetigkeitsfelder/
sap-hana-2/sap-hana-xs-video
E-3 JUNI 2014
Marco Harpenschläger ist Bereichsleiter Business Intelligence bei Contrimo. Der studierte Wirtschaftsinformatiker arbeitet seit mehr als
zehn Jahren im SAP-Umfeld. Sein
Schwerpunkt ist die Konzeption und
Einführung moderner Business-Intelligence- und Business-WarehouseArchitekturen und -Anwendungen.
(XSJS) entwickelt werden können. Auch
wenn seit SP7 eine kundenspezifische
Validierungslogik implementiert werden kann, eignet sich OData eher für
einfache Services. Um eigenständige
REST-Services zu entwickeln, sollte auf
die primäre Anwendungsentwicklungssprache der XS Engine zurückgegriffen
werden – Server-Side JavaScript. Neben
der Validierungslogik sind die schnellere Ausführung im Vergleich zu OData
und die einheitliche Programmiersprache für Server und Client weitere Vorteile. Hierbei wird Client-Side JavaScript
eingesetzt, um die XS Services aufzurufen. Als Java VM nutzt die Hana XS Engine Mozilla SpiderMonkey. Zusätzlich
sind die Hana-Datentypen sowie Hana-native APIs integriert. Im Wesentlichen werden die APIs genutzt, um die
Programmabläufe und die Verbindung
zwischen Datenbank und XS zu steuern. Dies sind beispielsweise Updates,
Inserts oder Upserts. Weiterhin können
Entwickler mit den APIs u. a. auf Http
Request und Response-Objekte zugreifen und diese manipulieren. Außerdem besteht die Möglichkeit, wiederverwendbaren Programmcode in XSJS
Library Files (.xsjslib)
zu schreiben, um dann
diese Bibliotheksdateien in XSJS-Dateien per
„$import“-Syntax einzubinden.
Bitte beachten Sie auch den
Community-Info-Eintrag ab Seite 115
99
Herunterladen