SAPs In-Memory-Datenbank
SAP HANA als Applikationsplattform
Wie bei der klassischen Entwicklung im SAP-Umfeld ist auch für native Szenarien eine detaillierte Spezifizierung der zu erstellenden Applikation erforderlich. Ein besonderer Fokus sollte dabei auf die Definition der HTTP-Services gelegt werden. Es empfiehlt sich, in abgeschlossenen, zustandslosen Einheiten wie "Kunde anlegen" oder "Bestellung auslösen" zu denken. Alle Daten, die der Service zur erfolgreichen Ausführung benötigt, müssen in der Schnittstelle als Parameter vorgesehen werden. Für eine reibungslose Entwicklung ist es wichtig, diese Definition einzuhalten, da keine integrierte Prüfung über alle Komponenten stattfinden kann, was die Ursachensuche im Fehlerfall aufwendig gestaltet.
Spezifikation der Komponenten
In SAP HANA sind viele unterschiedliche Komponenten vorhanden. Daher sollte man bereits in der Entwurfsphase spezifizieren, welche Komponenten relevant sind und in welchem Bereich der Anwendung sie zum Einsatz kommen. Zudem ist es sinnvoll, die Verantwortlichkeit der jeweiligen Komponente zu definieren. Beispielsweise sollte in der XS Engine keine Applikationslogik implementiert werden, sondern lediglich die notwendigen Datentransformationen zwischen den unterschiedlichen Schichten. Die eigentliche Logik befindet sich dann in der darunterliegenden Schicht und lässt sich dort optimal parallelisieren, was die Ausführungsgeschwindigkeit steigert.
Profil für Anwendungsentwickler
Anhand der einzusetzenden Techniken lassen sich Anforderungen an das technische Profil von Anwendungsentwicklern ableiten. Für die Präsentationsschicht werden Entwickler benötigt, die Web-Techniken rund um HTML und Javascript abdecken können. Ein Web-Designer ist wichtig, um eine visuell ansprechende Applikation zu gestalten. Die Javascript-Kenntnisse des Web-Entwicklers eignen sich zudem, um die Zwischenschicht in der XS Engine zu erstellen. Hier muss man sich nur in die HANA-spezifischen Bibliotheken einarbeiten.
Für die eigentliche Logik ist jedoch ein anderes Skillset gefragt. Hier sind tiefe Datenbankkenntnisse rund um SQL und die relationale Modellierung notwendig. Zusätzlich gilt es, die für HANA spezifischen Entwicklungsartefakte zu kennen und sie entsprechend ihrer Intention auch einzusetzen. Eine enge Zusammenarbeit zwischen Frontend- und Backend-Entwicklern hilft, effizient zu wartende Applikationen zu erstellen. Hier hat sich ein agiles Entwicklungsmodell wie Scrum bewährt.
Darüber hinaus sind zwei weitere Kompetenzbereiche entscheidend: Prozesswissen sowie spezifisches SAP-Know-how, wenn es sich um eine Anwendung handelt, die mit den Daten eines SAP-Moduls arbeitet. Die gleichmäßige Verteilung dieser vier Kompetenzbereiche - Prozesswissen, technisches SAP-Modulwissen, HANA-spezifische Entwicklungsartefakte und Entwicklungssprachen - entscheidet über eine erfolgreiche Implementierung von nativen HANA-Applikationen.