Archiv

SAP River – Neue Entwicklungsmöglichkeiten für SAP HANA (Standalone)

HANA ist aktuell das bestimmende Thema in der SAP Enterprise Data Warehousing Welt. Die In-Memory Datenbank lässt sich zum einen als SAP BW Datenbank nutzen (SAP Business Warehouse powered by HANA), zum anderen ist sie als eigenständige Lösung (SAP HANA Standalone Version) einsetzbar.

Um in der SAP HANA Standalone Version Anwendungen zu entwickeln, bedarf es bislang eines sehr tiefgreifenden Datenmodellierung- und Datenbank-Know-hows. Um die Implementierung der Datenmodelle und –prozesse zu vereinfachen, plant SAP mit dem HANA SPS7 Release die neue Entwicklungsumgebung/-Sprache SAP River zur Verfügung zu stellen. Informieren Sie sich mit diesem Artikel über die Möglichkeiten, die Sie zukünftig bei einer SAP HANA (Standalone) Implementierung haben werden.

SAP River – Das Programmiermodel / Allgemein

Mobile Apps beeinflussen massiv den Umgang mit Daten. Hauptgrund ist die Art und Weise wie Mobile Applikationen entwickelt sind. Der komplette Code für Layouts und Interaktion befindet sich auf dem mobilen Endgerät und nur bei einer Datenanforderung des Endbenutzers wird eine Kommunikation real-time mit dem Applikations-Backend aufgebaut.

Dieses einfache Design hat ebenfalls großen Einfluss auf Browser-basierte Anwendungen. Alte Applikationsserver-basierte Webanwendungen, die nach jedem Abrufen und Aufbereiten der Daten das komplette Benutzer-Interface generieren, werden zukünftig durch HTML5 Clients ersetzt. Damit werden nur relevante Daten bei Anfrage vom Backend abgerufen, analog dem Design mobiler Endgeräte.

SAP HANA unterstützt explizit diese real-time Interaktion. Dank des in die Datenbank integrierten Extended Application Services (XS) können Entwickler ohne zusätzlichen Applikationsserver vollständige SAP HANA-Lösungen in JavaScript und SQL-Script implementieren. HANA ist damit ebenfalls eine ideale Plattform für Mobil- und Rich-Client-Lösungen.

SAP HANA Live 1SAP HANA Applikationen laufen auf effizient kommunizierenden Komponenten: Eine Rich-Client-Applikation wird auf dem Mobilen Endgerät oder dem Browser ausgeführt, die Backend Applikation hingegen wird komplett innerhalb der SAP HANA gehostet. Das Schnittstellen-Protokoll OData wird von der Client-App genutzt, um die notwendigen Applikations Services auszuführen.

Für die Entwicklung einer SAP HANA Anwendung bedarf es tiefgreifender Datenmodellierungs- und Datenbank-Kenntnisse. Zudem braucht man entsprechendes Know-how, um die Business Logik, meist mit ABAP, Java oder JavaScript, umzusetzen und die Koordination zwischen Datenbank- und separatem Applikations-Modell zu verbinden.

An diesem Punkt setzt SAP River an. Die Programmiersprache erlaubt die Implementierung aller semantischen Elemente in einem einzelnen integrierten Programm. Neben den semantischen Elementen zählt dabei auch die Implementierung des Datenmodells, die Transformation der Business Logik sowie das Anlegen des rollenbasierten Berechtigungskonzeptes. Mit dem SAP HANA Studio oder mit SAP BO Data Services bedarf es zum Vergleich mehrerer Transaktionen und Programme, um all diese Objekte anzulegen. Die integrierte Implementierung mit SAP River eliminiert die Trennung zwischen einem SQL Datenbank-Modell in dem Applikations-Programm.

SAP River – Die Programmiersprache

Im Zentrum von SAP River steht die gleichnamige Programmiersprache. Die neue Sprache ermöglicht die Umsetzung kompletter Anwendungen auf SAP HANA in einem einzelnen verständlichen Programm.

Die SAP River Sprache ist, im Falle man erste JavaScript-Kenntnisse besitzt, einfach zu erlernen und intuitiv. Sie ist objektorientiert und modular aufbaubar. Existierende SAP HANA Objekte, wie Tabellen, Views und Prozeduren, sind zu SAP River komplett kompatibel und unterstützen, eingebettet im Programm, auch andere SAP HANA Programmiersprachen wie SQL-Script oder XS JavaScript. SAP River lässt sich ebenfalls nutzen um SAP HANA Live, den Business Content von SAP HANA, zu erweitern.

Die wichtigsten Objekttypen in einer SAP River Applikation sind Entitäten und Aktionen. Eine Entität spezifiziert das Set an Datenelementen und den damit verbundenen Aktionen. Ein Element repräsentiert ein Attribut, eine Spalte, in einer relationalen Tabelle. SAP River Elemente können einfache oder strukturierte Datentypen sein und mit Abhängigkeiten (z.B. UNIQUE, KEY, NOT-NULL, DEFAULT VALUES) belegt werden. Aktionen bilden die Business Logik der Applikation ab.

Die Entitäten lassen sich indirekt referenzieren. Wie SQL Views sind SAP River Views definiert als funktionale Abstraktion von anderen Views und Entitäten. Das nachfolgende SAP River Programm-Fragment repräsentiert exemplarisch einen einfachen View auf eine Bücherliste-Tabelle:

// Datendeklaration für Büchertitel, Autoren & ISBN
Title: String;
Author: String;
key ISBN: String;
// Lesen aller Büchertitel, Autoren & ISBN ohne Berechtigungseinschränkung (= ALL)
view booklist accessible by sap.hana.ALL
as select title, author, ISBN from Book;

SAP River – Die Entwicklungsumgebung

Die SAP River Entwicklungsumgebung basiert auf SAP HANA – analog dem SAP HANA Studio –und ist auf die Umsetzung von Daten-intensiven Business Anwendungen fokussiert. Sie unterstützt, dank der integrierten Entwicklungsumgebung und der Möglichkeit zur Datengenerierung, Datensimulierung und der Deployment-Werkzeuge, die technische Umsetzung und den Life-Cycle-Prozess von Datenmodellen und Business Logik gleichermaßen.

Die SAP River Entwicklungsumgebung nutzt das SAP HANA Repository als zentralen Speicherplatz von Entwicklungsobjekten. Der Workflow bei der Aktivierung wandelt die Entwicklungsobjekte in ausführbare Laufzeitobjekte um. Objekte von anderen Domänen, z.B. HTML/UI5 oder XS-Dateien, sind im gleichen Projekt zudem einfach zu integrieren.

Der SAP River Editor unterstützt Entwickler durch seine Syntax-Prüfungen. Fehler lassen sich zum einen hervorheben, Programmcode kann durch dieAutovervollständigung komplettiert werden. Zur Erleichterung der Navigation beigroßen Projekten können Objekte hierarchisch auf- und zugeklappt werden. Mit dem integrierten Debugger lassen sich Breakpoints setzen und die Werte von Objekten und Variablen in einem separaten Fenster anzeigen und prüfen.

Mit dem SAP River Datengenerator und dem SAP River Applikation Explorer werden zwei praktische Werkzeuge mit der SAP River Entwicklungsplattform ausgeliefert.

Der Datengenerator bietet eine einfache Möglichkeit Daten semantisch korrekt initial zu laden. Dabei lassen sich die Daten zufällig oder nach festgelegten Werten oder nach vorgegebenen Intervallen ermitteln. Nicht zuletzt können Daten auch als Dateien / per Flatfile importiert werden.

Der SAP River Applikation Explorer ist eine kleine auto-generierte Benutzeroberfläche. Es stellt die sogenannte „CRUD“ (create, read, update, delete) Schnittstelle für SAP River Entitäten sowie Views dar und unterstützt spontane Aufrufe von Entitäts-basierten Aktionen. Diese Funktion ist besonders hilfreich bei schnellen Unit-Tests oder beim Debuggen, ohne dabei explizit Programmcode schreiben zu müssen.

SAP River – Ein Fazit

Der Name „River“ erinnert zugegebenermaßen eher an einen Popsong, wie „North and South of the River” von U2 oder „Cry me a river“ von Justin Timberlake. Ob zudem das neue SAP Produkt ähnliche Hitqualitäten aufweist, wird sich erst mit dem neuen SAP HANA Release zeigen. Dennoch, das Potential einer SAP HANA (Standalone) Implementierung mit SAP River ist schon jetzt ersichtlich. Dank der Entwicklung aller semantischen Elemente innerhalb eines integrierten Programmes ermöglicht SAP River eine schnellere und integriertere Umsetzung von SAP HANA Business Anwendungen. Zudem lassen sich viele Prozesse durch weniger Transaktionen bzw. durch den Einsatz nur noch einer Programmiersprache umsetzen. Nicht zuletzt erleichtern und beschleunigen die zusätzlichen Werkzeuge SAP River Datengenerator und SAP River Applikation Explorer der Entwicklungsumgebung vor allem das Testen maßgeblich.