Software und Strategien für den erfolgreichen Mittelstand

SAP HANA als mobile Anwendungsplattform

Stammdaten für mobile Clients

Quelle: Exxcellent

Viele Geschäftsanwendungen müssen auf Stammdaten zugreifen, die in SAP-Systemen verwaltet werden. Gleichzeitig müssen diese Daten einer Vielzahl an unterschiedlichen, auch mobilen Clients zur Verfügung gestellt werden. Folgender Artikel soll zeigen, wie ein solches System mit SAP HANA umgesetzt werden kann und welche Vor- und Nachteile sich daraus ergeben.

Das Szenario

Um das Szenario zu illustrieren, kann man sich folgendes Anwendungsbeispiel vorstellen: Es soll eine Anwendung zur Unterstützung von Servicemitarbeitern erstellt werden. Diese sind bei den Kunden vor Ort unterwegs, um Reparaturen oder Wartungen durchzuführen. Sie benötigen also eine Mobile-Anwendung für ihre Arbeit, die den Servicemitarbeitern Daten zu Geräten des Kunden bereitstellt und zu jedem Gerät eine Servicehistorie vorhält. Die Gerätedaten werden in einem SAP-System gehalten und gepflegt. Die Serviceanwendung verwaltet die Servicehistorien. Teile der Servicedaten müssen wieder ins SAP-System übertragen werden, um beispielsweise Abrechnungen erstellen zu können.

Um die Anwendung umsetzen zu können, werden sowohl eine mobile Anwendung als Frontend sowie ein Backend zur Datenhaltung und zum Zugriff auf SAP-Daten benötigt. Die Kommunikation zwischen Frontend und Backend erfolgt über eine REST-Schnittstelle. Für die Umsetzung gibt es diverse technologische Ansätze – im Folgenden sollen sämtliche Bestandteile anhand des von SAP angebotenen Technologie-Stack realisiert werden.

Technologisch gesehen verbergen sich hinter der Applikation im Backend eine HANA-Infrastruktur mit XS-Services und ein SAP-System, wobei Letzteres als Master für die Stammdaten fungiert. Das HANA-System, der Master für die Bewegungsdaten, beinhaltet neben einer reinen Datenbank auch einen Webserver, der Webcontent bereitstellt und durch eine integrierte Laufzeitumgebung (die sogenannte XS-Engine) auch serverseitig JavaScript ausführen kann. Wenn nur einfache Lese- oder Schreiboperationen notwendig sind, kann der Zugriff auf die Daten über sogenannte ODATA-Services erfolgen.

Diese folgen dem REST-Prinzip und sind unter anderem mit JavaScript einfach zu verwenden. Der Entwickler erhält den kompletten Satz an CRUD-Operationen für eine Tabelle. Komplexe Geschäftslogik kann mit der bereits erwähnten XS-Engine oder direkt in der HANA-Datenbank umgesetzt werden. Die Zugriffe auf die Services und Daten sind durch das integrierte SAP-Rechtesystem geschützt.

Die Synchronisierung der Daten zwischen HANA und SAP erfolgt über den sogenannten Landscape Transformation Server (LTR), einen Dienst, der zwei Datenquellen – in diesem Fall Datenbanktabellen – anhand von gegebenen Strategien synchron hält. So verfügt der LTR beispielsweise über die nötigen Funktionen, um Änderungen an den Stammdaten sofort in die zugehörigen HANA-Datenbanktabellen synchronisieren zu können. Für die umgekehrte Synchronisierung müssen jedoch zunächst entsprechende Services auf dem SAP-System implementiert werden, die von HANA dann angesteuert werden können, sobald Daten über das Frontend geändert wurden.

Frontend-Entwicklung

Für die Entwicklung mobiler Frontends – denn der primäre Einsatz der Anwendung ist der vor Ort – bietet sich JavaScript Framework SAPUI5 bzw. die entsprechende Open-Source-Variante OpenUI5 an. Dieses JavaScript MVC Framework, vergleichbar etwa mit dem populären AngularJS, baut auf jQuery auf und ist dadurch relativ schnell erlernbar. SAPUI5 enthält bereits fertige Oberflächenkomponenten und -funktionalitäten für den Zugriff auf Daten. Diese bereitgestellten Komponenten sind auf die Anbindung von ODATA-Services ausgelegt, was in einer Anwendung wie der hier beschriebenen das Databinding erleichtert und es ermöglicht, dass auch komplexe Suchen oder Filter einfach umzusetzen sind.

Im Gegensatz zu AngularJS bringt SAPUI5 bereits fertige Lösungen für das Layouting und Styling der Anwendung mit. Das Layouting ist responsiv, was die breite Unterstützung von unterschiedlichen mobilen Endgeräten vereinfacht. Mit Hilfe des vorgefertigten Look and Feel lassen sich auch in kurzer Zeit grafisch ansprechende Anwendungen erstellen, Anpassungen dagegen gestalten sich oft als sehr aufwändig. SAP stellt dafür nun einen Theme-Designer zur Verfügung, der Anpassungen am Look and Feel vereinfachen soll. Apache Cordova wird zusätzlich verwendet, um die SAPUI5-Anwendung in einen nativen Anwendungsrahmen zu verpacken.

Ein weiterer wichtiger Aspekt bei mobilen Applikationen ist die Offline-Fähigkeit. Die Applikation sollte in der Lage sein, die in der HANA-Datenbank abgelegten Daten zumindest teilweise vorzuhalten, um etwaige Verbindungsstörungen zu kompensieren oder gar einen kompletten Offline-Betrieb zu ermöglichen. SAPUI5 bietet dazu leider keine fertige Lösung. Die technische Umsetzung bedient sich zum einen sogenannter „storages“, einem SAPUI5-Konstrukt, um beliebige Daten strukturiert lokal abzulegen, und zum anderen der Möglichkeit, Callbacks an den Datenabfragen zu registrieren. Alle Zugriffe auf Daten können dadurch – falls nötig – auf die lokale Datenbasis umgeleitet werden. Bei Verfügbarkeit des Backend kann die lokale Datenbasis dann wieder mit dem Backend synchronisiert werden.

Hardware für HANA

Die Hardware-Anforderungen für ein SAP-HANA-System sind sehr hoch – die Minimalkonfiguration für ein System erfordert mindestens 128 GByte an Hauptspeicher und eine nicht näher genannte Menge an Plattenspeicher. Unsere Installation wird momentan mit 500 GB Plattenplatz betrieben. Alternativ gibt es die Möglichkeit, HANA-Instanzen in der Cloud zu nutzen, sei es über SAP oder über Amazon Web Services (AWS).

Das spart Zeit und Kosten für die Installation der Hardware, und Nutzungskosten fallen nur in Abhängigkeit von der Systemgröße und der Rechenlast an, wodurch sich die Cloud-Nutzung gerade für Entwicklungszwecke anbietet. Allerdings gibt es im Cloud-Betrieb einige Einschränkungen in Bezug auf die Datenmodellierung und die Zugriffsmöglichkeiten auf die HANA-Instanz. Um diesen Einschränkungen entgehen zu können, empfiehlt sich der Betrieb einer eigenen HANA-Installation. Insbesondere bei der Anbindung eines weiteren SAP-Systems zum Zwecke der Synchronisierung der Daten bietet eine eigene Plattform deutlich mehr Flexibilität.

Zusammenfassend lässt sich feststellen, dass sich HANA grundsätzlich als Plattform für komplexe mobil zentrierte Anwendungen eignet. Mit SAPUI5 setzt die Walldorfer Software-Schmiede auf moderne Webtechnologien. Sowohl bei der Frontend- als auch bei der Backend-Entwicklung bewegt man sich in der JavaScript-Welt: Da SAP bekannte Bestandteile wie jQuery verwendet, können Entwickler auf ihr vorhandenes JavaScript-Wissen zurückgreifen.

Die Erstellung von Services anhand von vorhandenen Datenbanktabellen gestaltet sich einfach, bietet aber dennoch ausreichende Flexibilität, um auch komplexere Fälle abzubilden. Das Framework ist auf das Zusammenspiel mit HANA abgestimmt und führt also in dieser Kombination recht schnell zu brauchbaren Ergebnissen, während es ohne HANA kaum Vorteile gegenüber anderen Alternativen bietet. Aufgrund der mit den Lizenzen und dem Betrieb der Hardware verbundenen Kosten eignet sich der Einsatz primär für Betreiber, die SAP-Systeme bereits im Einsatz haben.

Dr. Patrick Schmidt und Dr. Ralph Guderlei

Hier geht es zu Exxcellent