So macht man Hana mobil


Stellen wir uns folgendes Anwendungsbeispiel vor: Es soll eine Anwendung zur Unterstützung von Service-Mitarbeitern erstellt werden. Die Service-Mitarbeiter sind bei Kunden vor Ort unterwegs, um Reparaturen oder Wartungen durchzuführen, benötigen also eine Mobile-Anwendung für ihre Arbeit.
Diese stellt den Service-Mitarbeitern Daten zu Geräten des Kunden bereit und hält zu jedem Gerät eine Service-Historie vor. Die Geräte-Daten werden in einem SAP-System gehalten und gepflegt.
Die Service-Anwendung verwaltet die Service-Historien. Teile der Service-Daten müssen wieder in das SAP-System übertragen werden, um beispielsweise Abrechnungen zu erstellen.
Master für Stammdaten
Um die Anwendung umzusetzen, werden also eine mobile Anwendung als Frontend sowie ein Backend zur Datenhaltung und zum Zugriff auf SAP-Daten benötigt. Die Kommunikation zwischen Front- 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-Stacks realisiert werden. Technologisch gesehen verbergen sich hinter der Applikation im Backend eine Hana-Infrastruktur mit XS-Services und ein SAP-System.
Letzteres fungiert als Master für die Stammdaten. 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 sog. XS-Engine) auch serverseitig JavaScript ausführen kann.
Wenn nur einfache lesende oder schreibende Operationen notwendig sind, kann der Zugriff auf die Daten über sog. ODATA-Services erfolgen. Diese folgen dem REST-Prinzip und sind u .a. mit JavaScript einfach zu verwenden.
Der Entwickler erhält dabei 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).
Das ist ein 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 zu synchronisieren.
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.
SAPUI5 und OpenUI5
Für die Entwicklung mobiler Frontends, denn primärer 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 dem populären AngularJS, baut auf jQuery auf und ist dadurch relativ schnell erlernbar. SAPUI5 enthält bereits fertige Oberflächen-Komponenten und Funktionalitäten für den Zugriff auf Daten.
Diese bereitgestellten Komponenten sind auf die Anbindung von ODATA-Services ausgelegt. Das erleichtert in einer Anwendung wie der hier beschriebenen das Databinding und ermöglicht es, auch komplexe Suchen oder Filter einfach umzusetzen.
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.
Mithilfe des vorgefertigten Look and Feel lassen sich auch in kurzer Zeit grafisch ansprechende Anwendungen erstellen, Anpassungen dagegen gestalten sich oft 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 Offlinefä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 Offlinebetrieb 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 Backends kann die lokale Datenbasis dann wieder mit dem Backend synchronisiert werden.
Die Hardware-Anforderungen für ein Hana-System sind sehr hoch – die Minimalkonfiguration für ein System erfordert mindestens 128 GB 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. Das spart Zeit und Kosten für Installation der Hardware, Nutzungskosten fallen in Abhängigkeit von Systemgröße und Rechenlast an.
Dadurch bietet sich die Cloud-Nutzung gerade für Entwicklungszwecke an, allerdings gibt es im Betrieb einige Einschränkungen in Bezug auf Datenmodellierung und Zugriffsmöglichkeiten auf die Hana-Instanz.
Um diesen Einschränkungen zu entgehen, 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.
Fazit
Zusammenfassend lässt sich feststellen, dass sich Hana grundsätzlich als Plattform für komplexe mobil-zentrierte Anwendungen eignet. Mit SAPUI5 setzt die Walldorfer Softwareschmiede auf moderne Webtechnologien.
Sowohl bei Frontend- als auch 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, 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.