Wissen aus erster Hand. Leseprobe In dieser Leseprobe erfahren Sie, welche Vorbereitungen Sie für die Anwendungsentwicklung auf der SAP HANA Cloud Platform treffen müssen. Sie lernen die Zugangsmöglichkeiten kennen und richten sich ein kostenloses Entwicklerkonto ein. Außerdem werden die Installation und Konfiguration aller relevanten Tools dargestellt, damit Sie schnellstmöglich mit der Entwicklung produktionsreifer Anwendungen beginnen können. »Einrichtung und Inbetriebnahme« Inhalt Index Der Autor Leseprobe weiterempfehlen James Wood SAP HANA Cloud Platform – Das Handbuch für Entwickler 576 Seiten, gebunden, Juli 2015 69,90 Euro, ISBN 978-3-8362-3862-5 www.sap-press.de/3912 In diesem Kapitel erfahren Sie, welche Vorbereitungen Sie für die Anwendungsentwicklung auf der SAP HCP treffen müssen. Nach Durcharbeitung des Kapitels werden Sie alle Voraussetzungen für die Entwicklung produktionsreifer Anwendungen auf der Plattform erfüllt haben. 2 Einrichtung und Inbetriebnahme Jetzt, da Sie das Konzept hinter der SAP HANA Cloud Platform (SAP HCP) kennen, möchten Sie sie wahrscheinlich direkt ausprobieren. Damit fangen wir in Kapitel 3, »Java-Anwendungen entwickeln«, an. In diesem Kapitel befassen wir uns zunächst mit den administrativen Aufgaben. Als Allererstes müssen wir uns mit dem Entwickler-Account für die SAP HCP befassen, bevor wir mit der wirklichen Arbeit auf der Plattform beginnen können. Mit diesem Account melden Sie sich an der Plattform an, weisen Ressourcen zu, stellen Anwendungen bereit und vieles mehr. In Abschnitt 2.1, »Benutzerzugriff für die SAP HANA Cloud Platform einrichten«, beschreiben wir, wie Sie an den Account gelangen. In Abschnitt 2.2, »Inhalt des Angebots«, sehen wir uns an, was ein solches Benutzerkonto beinhaltet. In Abschnitt 2.3, »Entwicklungstools der SAP HANA Cloud Platform installieren«, erfahren Sie dann, wie Sie die Entwicklungstools der SAP HCP auf Ihrem lokalen Rechner einrichten können. Wenn diese Tools implementiert sind, können wir in Kapitel 3 mit der eigentlichen Anwendungsentwicklung anfangen. 2.1 Benutzerzugriff für die SAP HANA Cloud Platform einrichten Um auf die SAP HCP zugreifen zu können, müssen Sie einen Account bei SAP anlegen. In diesem Abschnitt erläutern wir die verschiedenen von SAP bereitgestellten Benutzerkontoarten und deren Unterschiede. Wir beschreiben auch, wie Sie ein kostenloses Entwicklerkonto einrichten können, mit dem Sie die SAP HCP testen können. 41 2 Einrichtung und Inbetriebnahme 2.1.1 Benutzerkonzept der SAP HANA Cloud Platform In vielerlei Hinsicht ähneln HCP-Accounts Benutzerkonten, die Sie bei Versorgungsunternehmen einrichten können, wie z. B. bei Ihrem Stromanbieter oder Internet Service Provider. Wenn Sie schon einmal so ein Konto eingerichtet haben, kennen Sie die Prozedur: 1. Zunächst wählen Sie eine der verschiedenen bereitgestellten Kontoarten bzw. ein Serviceangebot aus. 2. Als Nächstes gehen Sie eine Art Vertrag ein, in dem Sie als Kunde zustimmen, eine bestimmte Gebühr zu bezahlen, und der Anbieter zustimmt, die angeforderten Services gemäß den im Vertrag definierten Service Level Agreements (SLAs) bereitzustellen. Im Kontext der SAP HCP werden Benutzerkonten dazu verwendet, den Umfang der Ressourcen bzw. Services zu definieren, die der Kunde von SAP erhalten möchte. Sobald der Kunde ein Konto eingerichtet hat, kann er damit auf die Plattform zugreifen, Anwendungen entwickeln und vieles mehr. Zum Veröffentlichungszeitpunkt dieses Buches gibt es drei verschiedene SAP-Kontoarten: Entwickler, Kunde und Partner. Diese Kontoarten unterscheiden sich bezüglich des Preismodells, der Menge der zugewiesenen cloud-basierten Ressourcen und der Nutzungsbedingungen. In den folgenden Abschnitten erläutern wir diese verfügbaren Kontoarten im Einzelnen. Entwicklerzugänge Bei der ersten Kontoart handelt es sich um den kostenlosen Entwicklerzugriff. Diese Kontoart ist für Entwickler vorgesehen, die die SAP HCP und ihre Funktionen kennenlernen möchten. Im Gegensatz zu anderen SAP Trial Accounts, mit denen Sie vielleicht bereits gearbeitet haben, verfällt das HCPEntwicklerkonto nie; Sie können es also über einen beliebig langen Zeitraum als Testkonto nutzen. Entwicklerkonten ermöglichen den Zugriff auf den Großteil der auf der SAP HCP zur Verfügung gestellten Funktionen und Services. Da es sich jedoch um ein kostenloses Konto handelt, beschränkt SAP die Menge an Ressourcen, die Sie mit diesem Konto nutzen können. Während wir dieses Buch schreiben, gibt es für Entwickler-Accounts folgende Einschränkungen: 왘 Es kann nur eine begrenzte Anzahl an Anwendungen gleichzeitig ausgeführt werden. 42 Benutzerzugriff für die SAP HANA Cloud Platform einrichten 왘 Nur 1 GB Datenbankspeicher und 1 GB Dokumentenspeicher stehen zur Verfügung. 왘 Die Nutzung des Kontos ist auf einen Anwender beschränkt. Kundenkonten Wie der Name bereits vermuten lässt, handelt es sich bei Kundenkonten um Konten, die Kunden von SAP kaufen können, um produktive Anwendungen in der Cloud zu hosten. Im Gegensatz zu den eingeschränkten EntwicklerAccounts bieten Kundenkonten vollständigen Zugriff auf produktive HCPServices und Support von SAP rund um die Uhr. Um Support für viele verschiedene Kundentypen anbieten zu können, stellt SAP zahlreiche Konfigurationsoptionen bereit, aus denen Kunden die für sie optimale Variante wählen können. Preise und eine Übersicht über die verschiedenen Konfigurationsoptionen erhalten Sie, wenn Sie sich auf dem SAP HANA Marketplace unter http://marketplace.saphana.com/New/SAP-HANAApp-Services/p/1808 anmelden. In den meisten Fällen können Sie die gewünschte Konfiguration direkt über den SAP HANA Marketplace auswählen und den Zugriff erwerben. Nach dem ersten Kauf können Kunden bei Bedarf weitere Ressourcen von SAP zusätzlich erwerben. Regionale Rechenzentren Um schnelle Antwortzeiten für produktive Anwendungen sicherzustellen, werden Kundenkonten in regionalen Rechenzentren gehostet, die sich in der Nähe der Anwenderbasis befinden. Während wir dies schreiben, deckt SAP mit drei Rechenzentren die Bereiche Amerika, Europa und Asien/Pazifik ab. Partnerzugriffe Diese Art des Benutzerkontos wird für SAP-Partner bereitgestellt, die cloudbasierte Anwendungen erstellen und an Kunden verkaufen möchten. Was die Art des Zugriff anbelangt, ähneln Partnerkonten den Kundenkonten, da sie Zugriff auf alle produktiven Services der SAP HCP bieten. Da dieser Kontotyp jedoch normalerweise für die Entwicklung und Erstellung von Prototypen verwendet wird, ist die Menge an zugewiesenen Ressourcen meistens kleiner als bei einem normalen Kundenkonto. Natürlich können Partner weitere Ressourcen bei Bedarf von SAP hinzukaufen. 43 2.1 2 Einrichtung und Inbetriebnahme Weitere Informationen über diese Zugriffsart und das SAP-PartnerEdge-Programm erhalten Sie nach Ihrer Anmeldung unter https://www.sapappsdevelopmentpartnercenter.com. 2.1.2 Für einen kostenlosen Entwicklerzugriff registrieren Falls Sie mit diesem Buch das erste Mal die Welt der SAP HCP betreten, ist es sinnvoll, sich zunächst für ein kostenloses Entwicklerkonto zu registrieren. So melden Sie sich für ein Entwicklerkonto an: Benutzerzugriff für die SAP HANA Cloud Platform einrichten 2. Sie sehen nun die Seite Log On (siehe Abbildung 2.2). Hier haben Sie zwei Möglichkeiten: 왘 Falls Sie bereits eine SAP-ID oder ein Benutzerkonto für das SAP Community Network (SCN) besitzen, können Sie Ihre Daten unter Log On eingeben und auf die Schaltfläche Log On klicken, um dieses Konto mit Ihrem SAP-HCP-Entwicklerkonto zu verknüpfen. Nun müssen Sie nur noch der Lizenzvereinbarung zustimmen, und schon können Sie starten. 1. Melden Sie sich auf der Startseite für Trial Accounts der SAP HCP unter https://account.hanatrial.ondemand.com an (siehe Abbildung 2.1). Klicken Sie dazu auf die Schaltfläche Log On. Abbildung 2.2 Kundendaten eingeben und Konten verknüpfen 왘 Wenn Sie noch keine SAP-ID bzw. kein SCN-Konto haben, müssen Sie eins erstellen, indem Sie auf die Schaltfläche Register Now auf der linken Seite in Abbildung 2.2 klicken. Es erscheint das in Abbildung 2.3 dargestellte Fenster Registration. Hier müssen Sie einige Kontaktdaten eingeben und den allgemeinen Geschäftsbedingungen zustimmen, um sich registrieren zu können. Nachdem Sie das Formular gesendet haben, erhalten Sie eine Bestätigungs-E-Mail, über die Sie die Registrierung bestätigen und das Konto aktivieren können. Abbildung 2.1 Startseite zur Registrierung für einen kostenlosen Entwicklerzugriff auf die SAP HCP 44 45 2.1 2 Einrichtung und Inbetriebnahme Inhalt des Angebots Abbildung 2.4 Die erste Anmeldung am SAP HCP Cockpit 2.2 Abbildung 2.3 Registrierung für ein neues Benutzerkonto Unabhängig davon, wie Sie das Konto erstellen, endet der Prozess damit, dass Sie am SAP HCP Cockpit angemeldet sind (siehe Abbildung 2.4). Wie Sie sich vielleicht vorstellen können, werden Sie in diesem Cockpit viel Zeit für die Entwicklung und Bereitstellung von Anwendungen, die Bereitstellung von Ressourcen etc. verbringen. Sie sollten daher die Cockpit-Seite als Lesezeichen speichern: https://account.hanatrial.ondemand.com/cockpit. Wenn Sie das erste Mal auf die SAP HCP zugreifen, sollten Sie sich das Cockpit in Ruhe ansehen und die verschiedenen Registerkarten kennenlernen. So können Sie sich einen Überblick über die mit Ihrem HCP-Benutzerkonto verfügbaren Funktionen verschaffen. 46 Inhalt des Angebots Nun verfügen Sie über ein nagelneues Benutzerkonto für die SAP HCP. Nehmen Sie sich einen Moment Zeit, um das Angebot der SAP HCP näher zu betrachten. Dieser Abschnitt hilft Ihnen nicht nur, die Funktionen der SAP HCP aus technischer Sicht besser zu verstehen, sondern auch, die Tools zu ermitteln, die Sie installieren und konfigurieren müssen, um mit der Entwicklung von HCP-Anwendungen beginnen zu können. 2.2.1 Laufzeit-Container Wie bereits in Kapitel 1, »Einführung in die SAP HANA Cloud Platform«, erwähnt, wurde die SAP HCP von Grund auf neu konzipiert, um verschiedene Programmiermodelle zu unterstützen. Dieser BYOL-Ansatz (Bring Your Own Language, Verwendung der eigenen Sprache) senkt die Einstiegsbarriere zur SAP HCP, da Entwicklungsteams bei einer Migration auf die Plattform bereits vorhandene Fähigkeiten nutzen können. 47 2.2 2 Einrichtung und Inbetriebnahme Inhalt des Angebots Um Unterstützung für viele Programmiersprachen zu bieten, arbeitet die SAP HCP mit einer Vielzahl modularer und leichtgewichtiger Laufzeitcontainer. Diese Container sorgen für eine sichere und skalierbare Laufzeitumgebung zur Ausführung der Anwendungen, die auf einem bestimmten Programmiermodell (z. B. Java) basieren. Im Folgenden werden wir näher auf die mit der SAP HCP bereitgestellten Laufzeitcontainer eingehen. Außerdem erfahren Sie, welche weiteren Containerarten, SAP in nächster Zeit umsetzen möchte. Java-Laufzeitumgebung Schon als die SAP HCP noch unter dem Namen NEO bekannt war, bot sie bereits eine hervorragende Unterstützung Java-basierter Anwendungsentwicklung. Aus technischer Sicht werden die Java-Anwendungen, die wir entwickeln, in einem besonderen Laufzeitcontainer namens Java-Laufzeitumgebung bereitgestellt. Abbildung 2.5 stellt die grundlegende Architektur dieses Containers dar. Wie Sie sehen können, bildet die Compute Unit die Grundlage für diese Laufzeitumgebung. Als Anwender der SAP HCP können Sie sich Compute Unit als virtualisierte Host-Maschinen mit eigenen CPU(s), Hauptspeicher, Festplattenspeicher und einem installierten Betriebssystem vorstellen. Java-Webanwendung Anwendungslaufzeit-Container Java Virtual Machine (JVM) Compute Unit Abbildung 2.5 Architektur der Java-Laufzeitumgebung 48 Aus der Perspektive der Java-Entwicklung bildet die Java Virtual Machine (JVM) die Grundlage einer Compute Unit. Hier nutzt SAP eine eigene JVM namens SAP JVM, die von Oracles HotSpot JVM abgeleitet wurde. Verglichen mit der von Oracle bereitgestellten Standard-JVM, bietet die SAP JVM viele nützliche Funktionen in den Bereichen Debugging, Speicher-Profiling und Instrumentierung. Auf die SAP JVM setzt der Laufzeit-Container auf, den Sie in der Mitte des Architekturdiagramms in Abbildung 2.5 sehen. Wenn Sie sich mit der Enterprise-Java-Entwicklung auskennen, können Sie sich den Laufzeit-Container als Webcontainer vorstellen – etwa wie Apache Tomcat oder einen anderen beliebigen der marktführenden Java-EE-Anwendungscontainer. Der Laufzeit-Container stellt Java-basierten Webanwendungen alle Bibliotheken und Services zur Verfügung, die sie für ihre Aufgaben benötigen. Zum Veröffentlichungszeitpunkt dieses Buches ist die Konfiguration des Laufzeit-Containers bei SAP über drei verschiedene Profile möglich: 왘 Java EE 6 Web Dieses Profil beinhaltet alle APIs, die mit Java EE 6 Web angeboten werden. Zusätzlich zu den Servlets und JavaServer Pages (JSPs) stehen Ihnen u. a. Enterprise JavaBeans (EJBs), die Java Transaction API (JTA) und die Java Persistence API (JPA) zur Verfügung. Diese APIs vereinfachen den Entwicklungsprozess für Unternehmensanwendungen, indem sie die Umsetzung untergeordneter technischer Aspekte – etwa Transaktionsverwaltung, objektbezogene Persistenz etc. – übernehmen. Weitere Informationen zum Profil Java EE 6 Web erhalten Sie im folgenden Infokasten. 왘 Java Web Laut der Onlinehilfe beinhaltet das Java-Web-Profil einen Teil der Java-EEStandard-APIs, die ein eigenständiger Java-Web-Container normalerweise umfasst. Ein Beispiel für einen typischen Webcontainer ist der beliebte Apache-Tomcat-Container. Diese Container unterstützen die Entwicklung von Java-Webanwendungen über Servlets, JSPs etc. Sie bieten jedoch keine Unterstützung für die gesamte Java-EE-Schnittstelle. Sie können also keine anderen Java-EE-basierten Technologien (wie EJBs) im Java-Web-Container nutzen. Natürlich haben Sie aber Zugriff auf die vollständige Java-SEBibliothek und die kundenspezifischen SAP-HCP-Service-Schnittstellen. 왘 Java Web Tomcat 7 Dieses Profil (das sich zum Zeitpunkt der Entstehung dieses Buches noch in der Beta-Veröffentlichungsphase befand) bietet ähnliche Funktionen wie das Java-Web-Profil. Der Hauptunterschied liegt darin, dass der Web- 49 2.2 2 Einrichtung und Inbetriebnahme container für dieses Profil den Webserver Apache Tomcat 7 ohne Modifikationen nutzt. Das bedeutet, dass bestimmte cloud-basierte Services zur Laufzeit nicht verfügbar sind. Was ist Java EE 6 Web? Das Profil Java EE 6 Web wurde in Zusammenhang mit Java EE 6 veröffentlicht. Grundsätzlich können Sie sich das Profil als eine vereinfachte Version des Java-EEStacks vorstellen. Hier wurde ein Teil der üblichen APIs für die Entwicklung Javabasierter Webanwendungen in einem separaten Profil gebündelt, mit dessen Hilfe Anbieter von Anwendungsservern einfachere Anwendungscontainer erstellen können. Solche Profile sind natürlich für Anbieter cloud-basierter Software wie SAP sinnvoll. Als Entwickler meint man vielleicht, dass »einfacher« mit »weniger interessant« gleichzusetzen ist. In diesem Fall sind wir allerdings der Meinung, dass die APIs, auf die man verzichtet hat, wenig mit cloud-basierter Anwendungsentwicklung zu tun haben. Es ist z. B. unwahrscheinlich, dass Sie bei der Entwicklung von Webanwendungen in der Cloud RMI/CORBA-basierte Remote-Zugriffe benötigen. Was andere Schnittstellen anbelangt, werden Sie feststellen, dass es cloud-basierte Services gibt, die ähnliche (und womöglich bessere) Funktionen als die fehlenden Java-EE-Schnittstellen aufweisen. Wir werden genügend Beispiele dazu im Laufe dieses Buches beschreiben. Ein weiterer Unterschied liegt in der Unterstützung von EJBs in Java EE 6 Web. Auch wenn das Profil die EJB-Entwicklung nicht unterstützt, nutzt es eine besondere Version namens EJB Lite. Bei EJB Lite handelt es sich um eine Teilmenge von EJB 3.1. Diese Version unterstützt Session Beans (stateful und stateless), Singleton Beans und die entsprechenden containerbasierten Verwaltungsfunktionen. Es fehlen hier Message-Driven Beans, JAX-WS-Endpunkte, Remote-Zugriffe und die Rückwärtskompatibilität zu EJB 2. Da diese Funktionen für die Entwicklung von Webanwendungen nicht wirklich notwendig sind, wirkt sich das Fehlen dieser Funktionen nicht auf unsere Art der Anwendungskonzeption aus, aber es ist wichtig, die Unterschiede zu verstehen. In Kapitel 3, »Java-Anwendungen entwickeln«, gehen wir näher auf die Javabasierte Anwendungsentwicklung ein. Weitere Informationen Im Internet erhalten Sie Zugriff auf die Java-Web-Hilfsdokumentation unter http:// help.hana.ondemand.com. Gehen Sie im Bereich SAP HANA Cloud Platform zu Java Development 폷 Runtime for Java, um mehr über die neuesten Innovationen zu diesem Thema zu erfahren. 50 Inhalt des Angebots HANA-Laufzeitumgebung Eines der besonderen Merkmale der SAP HCP ist ihre Unterstützung des InMemory Computings mit SAP HANA. Diese ist auf zwei Ebenen integriert: 왘 Einfacher Datenbankzugriff In diesem Szenario werden Anwendungen mit einer allgemeinen Programmiersprache (wie Java) entwickelt, und SAP HANA wird als zugrunde liegende Datenbank verwendet. Dabei wird SAP HANA wie jedes andere relationale Datenbankmanagementsystem (RDBMS), das einen StandardSQL-Zugriff gewährleistet, verwendet. 왘 Vollständige native HANA-Entwicklung In diesem Szenario werden eigenständige Anwendungen, basierend auf nativen HANA-Entwicklungsobjekten, entwickelt (z. B. SQLScript-basierte Datenbankprozeduren, serverseitiges JavaScript und benutzerdefinierte View-Typen). Dieser Ansatz ist ideal zur Entwicklung analytischer Anwendungen, die eine große Menge an Daten verarbeiten. Im letzten Einsatzszenario werden die nativen HANA-Entwicklungsobjekte in der HANA-Laufzeitumgebung zur Verfügung gestellt. Dabei handelt es sich im Wesentlichen um eine cloud-basierte Instanz der SAP HANA Extended Application Services (SAP HANA XS). Was ist SAP HANA XS? Falls Sie sich nicht mit SAP HANA XS auskennen, erhalten Sie hier eine kurze Übersicht. SAP HANA XS ist ein mit allen Funktionen ausgestatteter Anwendungsserver, der auf die HANA-Datenbank aufsetzt. Mit diesem Anwendungsserver kann man Webanwendungen entwickeln, die auf Technologien wie SAPUI5 und serverseitigem JavaScript sowie nativen HANA-Entwicklungsobjekten (z. B. SQLScriptProzeduren und Analysesichten) basieren. Da SAP HANA XS auf die HANA-Datenbank aufsetzt (und nahtlos mit ihr integriert ist), profitieren native Anwendungen, die auf diesem Anwendungsserver entwickelt wurden, von den Vorteilen eines lokalen Datenzugriffs. Indem man den Aufwand für die Übertragung von Daten von der Datenbankschicht auf die Anwendungsschicht umgeht, können native Anwendungen erstaunlich schnell große Mengen an Daten verarbeiten. Daher eignet sich SAP HANA XS hervorragend für die Entwicklung von Analyseanwendungen und Ähnlichem. Innerhalb der SAP HCP spielt der Anwendungsserver SAP HANA XS eine ähnliche Rolle wie die Java-Laufzeitumgebung: Es wird ein Anwendungsserver bereitgestellt, mit dem Sie Webanwendungen erstellen können. Hier können Sie native HANA-Anwendungen fast genauso aufbauen wie bei der On-Premise-Entwicklung solcher Anwendungen. 51 2.2 2 Einrichtung und Inbetriebnahme Inhalt des Angebots Dies alles berücksichtigend, können wir uns nun der grundlegenden Architektur einer nativen HANA-Anwendung, die auf der SAP HCP angeboten wird, zuwenden. Wie Sie in Abbildung 2.6 sehen, basiert die Clientschicht dieser Anwendung auf der SAPUI5-Technologie. Die SAPUI5-Inhalte werden den Clients von der SAP HANA XS Engine zur Verfügung gestellt, die über einen integrierten Webserver verfügt. Aufgrund des Standardverhaltens von HTML5 kann dieser Inhalt auf PCs, Tablets oder Smartphones verarbeitet werden, ohne dass Clientsoftware installiert werden muss (z. B. der SAPGUI-Client). Client Webbrowser-Client SAPUI5: HTML5 + JavaScript + CSS OData R SAP HCP hängt letztlich von den Anforderungen ab. Wenn Sie z. B. nur einfache CRUD-Operationen (Create, Remove, Update und Display) ausführen, sollte Standard-SQL bzw. SQLScript normalerweise ausreichen. Wenn Sie zur Erfüllung Ihrer Anforderungen jedoch viel Prozedurlogik benötigen, müssen Sie eine allgemeinere Sprache verwenden – etwa serverseitiges JavaScript. In diesem Fall ist es sinnvoll, die Funktionen der SAP HANA XS Engine im Zusammenspiel mit SQL/SQLScript zu nutzen. Die Kommunikationskanäle zwischen der Clientschicht und dem Backend, der SAP HANA XS Engine, sind meistens über das OData-Protokoll definiert. Dieses REST-basierte Protokoll wird für die Erstellung leichtgewichtiger Webservices verwendet, die von JavaScript- und SAPUI5-Widgets einfach verarbeitet werden können. In Kapitel 5, »Entwicklung nativer Anwendungen für SAP HANA«, lernen Sie die genauen Zusammenhänge kennen. HTML5-Anwendungscontainer Für UI-orientierte Anwendungsszenarien unterstützt die SAP HCP auch die Entwicklung von HTML5-Anwendungen. Das Deployment dieser leichtgewichtigen Anwendungen erfolgt in einem Git Repository, von dem aus die statischen Ressourcen (z. B. HTML, JavaScript und CSS) über einen in die SAP HCP integrierten gemeinsamen Dispatcher-Service verteilt werden. In Kapitel 7, »HTML5-Anwendungen entwickeln«, gehen wir näher darauf ein. SAP-HANA-Laufzeit SAP HANA XS (verfahrensorientierte Anwendungslogik) serverseitiges JavaScript etc. R SAP-HANA-Datenbank (datenorientierte Anwendungslogik) SQL, SQLScript, Views Abbildung 2.6 Grundlegende Architektur einer nativen HANA-Anwendung Serverseitig können Sie sehen, wie die Anwendungslogik zwischen der SAP HANA XS Engine und der zugrunde liegenden HANA-Datenbank verteilt wird. Welche Ebene(n) Sie für die Implementierung Ihrer Logik wählen, 52 Weitere Laufzeitcontainer in Sicht Während der Entstehung dieses Buches hat SAP bekannt gegeben, dass der Umfang der Sprachenunterstützung in der SAP HCP über eine strategische Partnerschaft mit Cloud Foundry und Docker erheblich verbessert werden soll. Sobald diese Angebote integriert sind, wird die SAP HCP dank verschiedener neuer, allgemeinerer Laufzeitcontainer endlich volle Unterstützung für das BYOL-Konzept bieten. Momentan muss die Unterstützung der meisten beliebten Cloud-Entwicklungssprachen über die Java-Laufzeitumgebung mithilfe von Drittanbieterimplementierungen wie JRuby, Jython etc. bereitgestellt werden. 2.2.2 Services der SAP HANA Cloud Platform Als echte PaaS-Lösung bietet die SAP HCP viel mehr als nur verschiedene eigenständige Laufzeitcontainer. Sie umfasst eine Reihe von Cloud Services, die es ermöglichen, den Zugriff und die Verwendung cloud-basierter 53 2.2 2 Einrichtung und Inbetriebnahme Ressourcen zu abstrahieren. Tabelle 2.1 enthält eine Liste der bekannteren Services, die derzeit auf der SAP HCP zur Verfügung stehen. Beachten Sie, dass das Serviceangebot kontinuierlich erweitert wird; es ist also sinnvoll, regelmäßig die Dokumentation zur SAP HANA Cloud nach neuen Services zu durchsuchen. Service Beschreibung Persistence-Service Dieser Service bildet eine Abstraktionsebene über den in der Cloud bereitgestellten relationalen Datenbankinstanzen. Diese Abstraktionsebene stellt Entwicklern eine gemeinsame Oberfläche für den Zugriff auf die Datenbankinstanzen zur Verfügung und verbirgt die Komplexität der skalierbaren Datenbanken in der Cloud. Connectivity-Service Dieser Service stellt Entwicklern die Mittel zur transparenten Kommunikation über Remote-Services bereit, die entweder vor Ort oder an einem beliebigen Ort über das Internet gehostet werden können. Document-Service Dieser Service ermöglicht den Zugriff auf ein Content Repository zur Speicherung unstrukturierter Inhalte. Er kann bei Bedarf auch zur Implementierung eines virtualisierten Dateisystems verwendet werden. Identity-Service Der Begriff Identity-Service bezieht sich auf eine Reihe sicherheitsbezogener Services oder Funktionen, die in die SAP HCP integriert wurden. Dazu gehören u. a. die Unterstützung von SSO-Szenarien (Single Sign-on), föderierten Identitäten mit SAML (Security Assertion Markup Language) und einer Autorisierung, die auf dem OAuth-Protokoll basiert. Feedback-Service Dieser Service stellt ein Framework für die Implementierung von Anwenderfeedback-Szenarien in Cloud-Anwendungen zur Verfügung. Tabelle 2.1 Services der SAP HCP Inhalt des Angebots SAP HANA Cloud Portal Das SAP HANA Cloud Portal ist eine cloud-basierte Portallösung, mit der sich einfach leichtgewichtige Portalseiten erstellen lassen, um über eine einheitliche Benutzeroberfläche auf Cloud-Lösungen, Erweiterungen von Cloud-Lösungen und On-Premise-Inhalte zugreifen zu können. Durch die Verwendung offener Standards wie HTML5 und OpenSocial erleichtert das SAP HANA Cloud Portal die Integration von Inhalten aus verschiedenen Quellen, ohne dass das Rad neu erfunden werden muss. Wie das genau funktioniert und wie das SAP HANA Cloud Portal einzusetzen ist, erfahren Sie in Kapitel 9, »Mit dem SAP HANA Cloud Portal arbeiten«. SAP HANA Cloud Integration In vielerlei Hinsicht können Sie sich SAP HANA Cloud Integration (SAP HCI) als eine cloud-basierte Version des On-Premise-SOA-Middleware-Tools von SAP, SAP Process Integration (PI), vorstellen. SAP HCI ist also ein cloudbasierter Middlewareservice, mit dem Sie Integrationsszenarien in der Cloud entwickeln können. Diese Szenarien benötigen Sie vielleicht für einmalige Uploads von On-Premise-Daten oder für laufende Suchen in Echtzeit auf On-Premise-Systemen. Wir werden uns später in Kapitel 10, »Einführung in SAP HANA Cloud Integration«, noch eingehend mit SAP HCI auseinandersetzen. SAP HCP Mobile Services Mit diesem Service können Entwickler mobile Anwendungen einführen. Einige der bekannteren Funktionen der SAP HCP Mobile Services sind folgende: 왘 Unterstützung des Benutzer-Onboardings 왘 Sicherheits- und Berechtigungsservices 왘 Unterstützung der Implementierung nativer Push-Meldungen 2.2.3 Weiterführende Services Zusätzlich zu den in Abschnitt 2.2.2, »Services der SAP HANA Cloud Platform«, beschriebenen Basisservices wird das PaaS-Angebot der SAP HCP durch verschiedene weiterführende Anwendungsservices abgerundet, die besondere Funktionen bereitstellen, die in bestimmten cloud-basierten Anwendungsszenarien benötigt werden. Im Folgenden stellen wir Ihnen einige der bekannteren Services aus diesem Angebot vor. 54 왘 Unterstützung der Implementierung eines Offline-Supports für mobile Anwendungen 왘 Verwaltung und Überwachung mobiler Anwendungen Die SAP HCP Mobile Services werden in Kapitel 12 näher beschrieben. 55 2.2 2 Einrichtung und Inbetriebnahme 2.3 Entwicklungstools der SAP HANA Cloud Platform installieren Im vorangegangenen Abschnitt haben Sie erfahren, wie SAP die Rolle der SAP HCP als offener und damit attraktiver Plattform für Entwickler hervorhebt. Auch wenn diese Offenheit sicherlich gut ist, macht sie die Einrichtung unserer Entwicklungsumgebung ein wenig komplexer, da es so viele verschiedene Entwicklungsobjekte gibt, die berücksichtigt werden müssen. In diesem Abschnitt befassen wir uns mit der typischen Einrichtung der Tools, damit Sie die Werkzeuge zur Hand haben, die Sie bei der Bearbeitung der Beispiele in diesem Buch benötigen. »Typisch« ist hier hervorgehoben, da sich die Konfiguration der Werkzeuge von Entwickler zu Entwickler leicht unterscheiden wird. Da die SAP HCP auf Basis der erweiterbaren integrierten Eclipse-Entwicklungsumgebung (Integrated Development Environment, IDE) standardisiert ist, machen sich diese Unterschiede jedoch nur hier und da bei der Installation einiger Plug-ins bemerkbar. 2.3.1 Eclipse IDE einrichten SAP entschied sich dafür, das Tool-Set der SAP HCP auf Basis der OpenSource-IDE von Eclipse zu standardisieren. Dieser Ansatz ermöglicht es SAP, die Entwicklungsfunktionen der Basis-Eclipse-IDE zu nutzen und diese nur nach Bedarf durch HCP-spezifische Funktionen zu erweitern. Da Eclipse außerdem unbestreitbar die beliebteste IDE weltweit ist, benötigt der durchschnittliche Entwickler nur wenig oder gar keine Einführung. Entwicklungstools der SAP HANA Cloud Platform installieren Bei der Installation des Java SDKs sollten Sie die Version herunterladen, die am besten zu dem gewünschten Laufzeit-Container-Profil passt, mit dem Sie in der Java-Laufzeitumgebung arbeiten möchten (siehe Abschnitt 2.2.1, »Laufzeit-Container«). Während wir dieses Buch schreiben, basieren die verfügbaren Containerprofile z. B. auf den Java-EE-Versionen 6 und 7. Wenn Sie also mit dem Profil Java Web Tomcat 7 arbeiten, sollten Sie die Java-SEVersion 7 herunterladen und konfigurieren. Eclipse herunterladen und installieren Um die Flexibilität zu optimieren, hat SAP die Entwicklungstools für die SAP HCP entwickelt, die mit den neuesten Versionen der Eclipse IDE kompatibel sind. Wenn Sie also bereits eine aktuelle Version von Eclipse haben, sollte es möglich sein, die Entwicklungstools für die SAP HCP auf dieser Instanz zu installieren. Aufgrund der großen Anzahl von Plug-ins, die mit den Entwicklungstools verknüpft sind, empfehlen wir Ihnen jedoch, eine separate EclipseInstanz für die HCP-Entwicklung herunterzuladen und zu konfigurieren. Gehen Sie auf die Seite www.eclipse.org/downloads, um Eclipse herunterzuladen. Laden Sie sich von der Startseite Downloads die neueste Version von Eclipse IDE for Java Developers für Ihr Zielbetriebssystem herunter (siehe Abbildung 2.7). In diesem Abschnitt beschreiben wir die Einrichtung einer neuen EclipseInstanz und die Installation der relevanten Plug-ins aus der Bibliothek der SAP-HCP-Werkzeuge. Java SDK installieren Bevor Sie Eclipse installieren können, müssen Sie zunächst sicherstellen, dass Sie die passende Java-Version auf Ihrem lokalen Rechner installiert haben. Auch wenn die neueren Versionen von Eclipse nur eine Installation der leichtgewichtigen Laufzeitumgebung für Java (Java Runtime Environment, JRE) erfordern, empfehlen wir Ihnen, das vollständige Java SE Software Development Kit (SDK) zu installieren. Dies ist online unter www.oracle.com/technetwork/java/javase/downloads/index.html erhältlich. So stellen Sie sicher, dass Sie alle für die verschiedenen Entwicklungsschritte benötigten Compiler-Tools zur Verfügung haben. 56 Abbildung 2.7 Eclipse IDE für Java-Entwickler herunterladen 57 2.3 2 Einrichtung und Inbetriebnahme Entwicklungstools der SAP HANA Cloud Platform installieren Bei dem Installationspaket, das Sie herunterladen, wird es sich um ein gezipptes Archiv handeln, das Sie in ein Verzeichnis Ihrer Wahl entpacken können. Wenn Sie das Paket entpackt haben, können Sie Eclipse zum ersten Mal starten, indem Sie den Ordner Eclipse öffnen und die ausführbare Eclipse-Datei (z. B. eclipse.exe) ausführen. Wenn Eclipse zum ersten Mal lädt, wird wahrscheinlich das Dialogfeld Workspace Launcher geöffnet (siehe Abbildung 2.8). In diesem Dialogfeld müssen Sie ein Verzeichnis auf Ihrem lokalen Rechner auswählen, in das Eclipse Projektelemente u. Ä. speichern kann. Es ist sinnvoll, das Ankreuzfeld Use this as the default and do not ask again zu aktivieren, damit Eclipse das ausgewählte Verzeichnis als Standardspeicherort verwendet. So werden Sie nicht bei jedem Start von Eclipse aufgefordert, einen Speicherort auszuwählen, und Sie wissen, an welcher Stelle Sie nach Entwicklungselementen suchen müssen, die Sie innerhalb der IDE erstellt haben. Abbildung 2.9 Erstes Starten von Eclipse Bevor wir fortfahren, sollten wir eine kleine Housekeeping-Aufgabe erwähnen, die Sie berücksichtigen sollten, wenn Sie mit einem Proxy oder einer Firewall arbeiten. Da Eclipse seine Aktualisierungen über HTTP-Verbindungen erhält, müssen Sie Ihre Proxy-Einstellungen so konfigurieren, dass Eclipse mit der SAP HCP verwendet werden kann. Führen Sie die folgenden Schritte durch, um eine Proxy-Server-Verbindung zu konfigurieren: 1. Wählen Sie in Eclipse die Option Window 폷 Preferences in der obersten Menüleiste aus, und gehen Sie zu General 폷 Network Connections. Abbildung 2.8 Workspace-Standardspeicherort in Eclipse auswählen Wenn alles gut geht, wird Eclipse schließlich in einem Fenster wie dem in Abbildung 2.9 geladen. Wenn Sie ein Eclipse-Einsteiger sind, empfehlen wir Ihnen, ein oder zwei Tutorials durchzuarbeiten, um das IDE-Layout, Eclipsespezifische Begriffe, Funktionen etc. näher kennenzulernen (z. B. das Buch Einstieg in Eclipse von Thomas Künneth, Rheinwerk Verlag 2014, oder ABAPEntwicklung in Eclipse von Daniel Schön, SAP PRESS 2015). Meistens ist Eclipse relativ intuitiv, aber wie die meisten IDEs hat es ein paar Eigenheiten. 58 2. Wählen Sie aus dem in Abbildung 2.10 dargestellten Fenster Network Connections das passende Schema (z. B. HTTP bzw. HTTPS) in der Tabelle Proxy, und klicken Sie auf die Schaltfläche Edit. 3. Geben Sie dann im Unterdialog Edit Proxy Entry den Proxy-Host-Namen und -Port sowie die Authentifikationsdaten an. Klicken Sie zum Bestätigen Ihrer Eingaben auf die Schaltfläche OK. 4. Abschließend können Sie mithilfe der Tabelle Proxy bypass eine Liste mit Hosts konfigurieren, auf die Sie ohne Nutzung des Proxy-Servers zugreifen möchten. 59 2.3 2 Einrichtung und Inbetriebnahme Entwicklungstools der SAP HANA Cloud Platform installieren können Sie das gleiche Repository später für Updates verwenden und so die Software nach Bedarf aktualisieren. Abbildung 2.10 Proxy-Server-Zugriff in Eclipse Abbildung 2.11 Adresse der Installationsseite für die Entwicklungstools für die SAP HCP ermitteln SAP-Entwicklungstools installieren Sie sollten nun eine einfache Eclipse-Version auf Ihrem lokalen Rechner installiert haben. Auch wenn diese Eclipse-Instanz voll funktionsfähig ist, enthält sie keine SAP- oder HCP-spezifischen Funktionen. Um diese Funktionen hinzuzufügen, müssen Sie die benötigten Plug-ins von SAP herunterladen und installieren. Führen Sie dazu die folgenden Schritte aus: 1. Zunächst müssen Sie sich auf der Installationsseite für die SAP Development Tools for Eclipse anmelden. Rufen Sie dazu die Seite https:// tools.hana.ondemand.com/#cloud auf. Wie Sie in Abbildung 2.11 sehen können, umfasst dieses Portal Installationsseiten für verschiedene aktuelle Eclipse-Versionen (z. B. Eclipse Luna 4.4 und Eclipse Kepler 4.3). Kopieren Sie die URL für Ihre Eclipse-Version in die Zwischenablage. 2. Öffnen Sie als Nächstes die Eclipse IDE, und wählen Sie Help 폷 Install New Software aus der obersten Menüleiste. 3. Es erscheint das in Abbildung 2.12 dargestellte Fenster Install. Fügen Sie in dieses Fenster die in Schritt 1 kopierte URL der Installationsseite in das Eingabefeld Work with ein, und klicken Sie auf die Schaltfläche Add. Geben Sie dem Repository im Dialogfeld Add Repository einen Namen, und klicken Sie auf OK. Indem Sie dem Repository einen Namen geben, 60 Abbildung 2.12 Eine Softwareseite in Eclipse hinzufügen 61 2.3 2 Einrichtung und Inbetriebnahme 4. Klicken Sie nach der Definition des Repositorys auf die Schaltfläche Next, um mit dem nächsten Schritt des Installationsassistenten fortzufahren. An dieser Stelle wird Eclipse eine Verbindung zur Installations-URL herstellen und nach verfügbaren Plug-ins zur Installation suchen. 5. Im Schritt Available Software (siehe Abbildung 2.13) erhalten Sie eine Liste mit zur Installation verfügbaren Softwareelementen. Für unsere Zwecke liegt das Hauptaugenmerk auf den SAP HANA Cloud Platform Tools, den SAP HANA Tools und dem UI Development Toolkit for HTML5. Diese Auswahl stellt sicher, dass wir über die erforderlichen Komponenten verfügen, um HCP-basierte Java-Anwendungen, native HANA-Anwendungen und HTML5-Anwendungen basierend auf der SAPUI5-Technologie entwickeln zu können. Sie können selbstverständlich auch weitere Elemente nach Bedarf auswählen. Entwicklungstools der SAP HANA Cloud Platform installieren Wenn Sie viele Elemente ausgewählt haben bzw. die Netzwerkverbindung langsam ist, kann der Installationsprozess eine Weile dauern. Wenn alles gut geht, schließt Eclipse die Installation der Plug-ins ab und informiert Sie darüber, dass Sie einen Neustart durchführen müssen, damit die Änderungen übernommen werden können. Nach dem Neustart wird Ihnen eine neue Willkommensseite wie in Abbildung 2.14 angezeigt. Hier können Sie sehen, dass einige neue SAP- und HCP-bezogene Elemente zur Willkommensseite hinzugefügt wurden. Abbildung 2.14 Neue Willkommensseite nach der Installation der Entwicklungstools 2.3.2 Abbildung 2.13 Softwareelemente für die Installation auswählen 6. Nachdem Sie die relevante Software zur Installation ausgewählt haben, können Sie mit dem Installationsassistenten fortfahren, indem Sie alle Standardvorgaben übernehmen. Daraufhin wird Eclipse die relevanten Plug-ins herunterladen und installieren. 62 SAP HANA Cloud Platform SDK herunterladen Zusätzlich zu den in Eclipse integrierten HCP-bezogenen Plug-ins bietet SAP ein eigenständiges SDK an, das verschiedene nützliche Tools und Beispiele für den Einstieg in den Entwicklungsprozess umfasst. Dieses SDK beinhaltet u. a.: 왘 JAR-Dateien (Platform API Java Archive) 왘 eine Schnittstellendokumentation 63 2.3 2 Einrichtung und Inbetriebnahme 왘 eine lokale Laufzeitinstanz der SAP HCP, die für Offlinetests genutzt werden kann 왘 eine Konsole, mit der Instanzen der SAP HCP verwaltet werden können 왘 viele umfassende Beispielprojekte mit Anmerkungen in Quellcode und Dokumentation Sie können sich das SAP HCP SDK ebenfalls von der Seite https:// tools.hana.ondemand.com/#cloud herunterladen. Wie Sie in Abbildung 2.15 sehen können, stellt SAP separate SDKs zur Unterstützung der unterschiedlichen, in der Java-Laufzeitumgebung verfügbaren Laufzeit-Container-Profile bereit. Wir empfehlen Ihnen, die SDK-Version auszuwählen, die zu Ihrem ausgewählten Profil passt. Für unsere Zwecke laden wir das SDK für das Profil Java EE 6 Web herunter, da es das umfangreichste Set an Funktionen für unsere Demonstrationszwecke enthält. Entwicklungstools der SAP HANA Cloud Platform installieren 2.3.3 Lokale Laufzeitumgebung einrichten Wie bereits erwähnt, enthält das SAP HCP SDK eine lokale Laufzeitumgebung, mit der Sie HCP-Anwendungen auf Ihrem lokalen Rechner testen können. Auch wenn Sie diese lokale Laufzeitumgebung über die Kommandozeile verwalten können, ist es viel praktischer, sie als verfügbare Serverlaufzeit in Eclipse zu installieren. Führen Sie für diese Integration die folgenden Schritte aus: 1. Starten Sie Eclipse, wählen Sie die Menüoption Window 폷 Preferences aus, und erweitern Sie das Untermenü Server. 2. Wählen Sie im Untermenü Server den Knoten SAP HANA Cloud Platform aus. Es erscheint das Fenster SAP HANA Cloud Platform (siehe Abbildung 2.16). In diesem Fenster können Sie die relevanten Attribute wie folgt konfigurieren: 왘 Landscape host Hier müssen Sie den Host Ihrer HCP-Zielinstanz angeben. Falls Sie ein kostenloses Entwicklerkonto nutzen, lautet der Landschaftshost hanatrial.ondemand.com. Anderenfalls lautet er hana.ondemand.com. 왘 SDK location In dem Feld zum SDK-Speicherort geben Sie das Verzeichnis an, in das Sie das SAP HCP SDK entpackt haben. 왘 Account name Mit diesem Attribut wird Ihr Kontoname für die SAP HCP übernommen, damit die Entwicklungstools für die SAP HCP diesen Wert automatisch vorschlagen können, wenn Sie Schritte ausführen, die die Eingabe der Benutzerdaten erfordern. Abbildung 2.15 SAP HCP SDK herunterladen Nachdem Sie die passende SDK-Version heruntergeladen haben, können Sie das ZIP-Archiv in einem leicht zugänglichen Verzeichnis auf Ihrem lokalen Rechner entpacken. Nachdem die ZIP-Datei entpackt ist, empfehlen wir Ihnen, sich mit der SDK-Ordnerstruktur vertraut zu machen und sich alle von SAP angebotenen Funktionen anzusehen. Lange Dateinamen vermeiden Aus verschiedenen Gründen empfehlen wir Ihnen, den SDK-Ordner nicht zu verschachtelt in der Struktur Ihres lokalen Dateisystems abzulegen. Bei außergewöhnlich langen Dateinamen kann es sonst zu Problemen mit der lokalen Laufzeit kommen. 64 왘 User name Mit diesem Attribut wird Ihr Benutzername übernommen, damit die Entwicklungstools für die SAP HCP diesen Wert automatisch vorschlagen können, wenn Sie Schritte ausführen, bei denen Sie sich über die HCP-Instanz serverseitig authentifizieren müssen. 3. Nachdem Sie den Speicherort für das SAP HCP SDK konfiguriert haben, müssen Sie zum Knoten Server 폷 Runtime Environments wechseln. Hier können Sie die lokale HCP-Laufzeitumgebung konfigurieren, indem Sie auf die Schaltfläche Add klicken. Anschließend wird der Assistent New Server Runtime Environment geöffnet (siehe Abbildung 2.17). 65 2.3 2 Einrichtung und Inbetriebnahme Entwicklungstools der SAP HANA Cloud Platform installieren 4. Expandieren Sie auf der Startseite des Assistenten den Ordner SAP, und wählen Sie die Ihrem Java-Profil entsprechende lokale Laufzeitumgebung aus (siehe Abbildung 2.17). Klicken Sie auf die Schaltfläche Next, um fortzufahren. 5. Im nächsten Fenster (siehe Abbildung 2.18) können Sie den Speicherort der lokalen Laufzeitumgebung auf Ihrem lokalen Rechner wählen. Da Sie den SDK-Speicherort bereits konfiguriert haben, wird Ihnen dieses Verzeichnis automatisch vorgeschlagen. Sie können diese Voreinstellung einfach bestätigen, indem Sie auf die Schaltfläche Finish klicken. Abbildung 2.16 SDK-Speicherort zu den allgemeinen SAP-HCP-Einstellungen hinzufügen Abbildung 2.18 Speicherort der lokalen HCP-Laufzeitumgebung bestätigen 2.3.4 SAP Java Virtual Machine installieren Das letzte von uns empfohlene Element, das Sie beim Einrichten Ihrer Entwicklungsumgebung installieren sollten, ist die SAP JVM. Wie Sie in Kapitel 3, »Java-Anwendungen entwickeln«, und 4, »Verwaltung und Deployment von Java-Anwendungen«, lernen werden, ermöglicht Ihnen dieser optionale Schritt, in einige der mächtigen Profiling-Funktionen der SAP JVM für das Tuning von Java-Anwendungen einzusteigen. Die SAP JVM können Sie von der gleichen Seite herunterladen, über die Sie das SAP HCP SDK heruntergeladen haben: https://tools.hana.ondemand.com/ #cloud. Im Bereich SAP JVM der Seite können Sie einfach das entsprechende Abbildung 2.17 Lokale HCP-Laufzeitumgebung einrichten 66 67 2.3 2 Einrichtung und Inbetriebnahme Paket für Ihre Betriebssystemkonfiguration auswählen. Sie finden die Installationsanweisungen für Ihr Betriebssystem in der Dokumentation zur SAP HANA Cloud unter https://help.hana.ondemand.com/help/frameset.htm. Navigieren Sie hier zu Java Development 폷 Getting Started 폷 Installing Java Tools for Eclipse and SDK 폷 Installing SAP JVM. Nach der Installation der SAP JVM können Sie sie mit den installierten JREs in Eclipse verknüpfen, indem Sie folgende Schritte ausführen: Entwicklungstools der SAP HANA Cloud Platform installieren 4. Gehen Sie im nächsten Fenster zum Verzeichnis, in dem Sie die SAP JVM installiert haben (siehe Abbildung 2.20). Wenn Sie das Verzeichnis ausgewählt haben, werden der JRE-Name und die Systembibliotheken automatisch konfiguriert. 5. Klicken Sie auf die Schaltfläche Finish, um die Konfiguration zu bestätigen. 1. Öffnen Sie Eclipse, und wählen Sie im Menü Window 폷 Preferences. 2. Expandieren Sie die Ordner Java 폷 Installed JREs, und klicken Sie auf die Schaltfläche Add. 3. Es öffnet sich der in Abbildung 2.19 dargestellte Installationsassistent Add JRE. Übernehmen Sie die Standardoption Standard VM, und klicken Sie auf die Schaltfläche Next, um fortzufahren. Abbildung 2.20 Verzeichnis der SAP JVM auswählen 6. Nachdem die SAP JVM als JRE konfiguriert wurde, wählen Sie diese als Standard-JRE aus, indem Sie das Häkchen im Ankreuzfeld neben der Spalte Name setzen (siehe Abbildung 2.21). Mit diesen Einstellungen werden alle neuen Java-basierten Projekte automatisch so konfiguriert, dass sie die SAP JVM als Ziel-JRE nutzen. Abbildung 2.19 SAP JVM als installierte JRE in Eclipse hinzufügen 68 69 2.3 2 Einrichtung und Inbetriebnahme Abbildung 2.21 SAP JVM als Standard-JRE auswählen 2.4 Zusammenfassung In diesem Kapitel haben Sie die Voraussetzungen für die Entwicklung cloud-basierter Anwendungen auf der SAP HCP kennengelernt. Nachdem die hier beschriebenen administrativen Aufgaben erledigt sind, können wir mit den praktischen Entwicklungsaufgaben fortfahren. Damit fangen wir in Kapitel 3, »Java-Anwendungen entwickeln«, an, in dem Sie lernen werden, wie Sie Java-basierte Webanwendungen entwickeln. 70 Inhalt Vorwort .................................................................................................. 15 Einleitung ................................................................................................ 17 TEIL I Grundlagen 1 Einführung in die SAP HANA Cloud Platform ..................... 27 1.1 1.2 1.3 1.4 2 Einführung in die SAP HANA Cloud Platform ......................... Die Cloud-Computing-Revolution .......................................... 1.2.1 Was ist Cloud Computing? ....................................... 1.2.2 Die Cloud-Computing-Servicemodelle verstehen ...... 1.2.3 Historischer Hintergrund .......................................... Eine strategisches Bindeglied für SAP ..................................... 1.3.1 Herausforderungen der hybriden Landschaft ............ 1.3.2 Die Rolle der SAP HANA Cloud Platform ................. Zusammenfassung ................................................................. 27 29 29 30 35 37 37 38 39 Einrichtung und Inbetriebnahme ........................................ 41 2.1 2.2 2.3 2.4 Benutzerzugriff für die SAP HANA Cloud Platform einrichten .............................................................................. 2.1.1 Benutzerkonzept der SAP HANA Cloud Platform ...... 2.1.2 Für einen kostenlosen Entwicklerzugriff registrieren .............................................................. Inhalt des Angebots ............................................................... 2.2.1 Laufzeit-Container ................................................... 2.2.2 Services der SAP HANA Cloud Platform ................... 2.2.3 Weiterführende Services .......................................... Entwicklungstools der SAP HANA Cloud Platform installieren ............................................................................. 2.3.1 Eclipse IDE einrichten .............................................. 2.3.2 SAP HANA Cloud Platform SDK herunterladen ........ 2.3.3 Lokale Laufzeitumgebung einrichten ........................ 2.3.4 SAP Java Virtual Machine installieren ....................... Zusammenfassung ................................................................. 41 42 44 47 47 53 54 56 56 63 65 67 70 7 Inhalt Inhalt TEIL II Entwicklungskonzepte 3 Java-Anwendungen entwickeln .......................................... 73 3.1 3.2 3.3 3.4 3.5 3.6 4 Überblick ............................................................................... 74 Java-Webanwendungen erstellen ........................................... 75 3.2.1 Dynamic Web Project in Eclipse anlegen .................. 75 3.2.2 Servlet-basierten Controller aufbauen ...................... 80 3.2.3 Präsentationsebene mithilfe von JSPs implementieren ....................................................... 83 3.2.4 Anwendung lokal testen .......................................... 86 Mit EJBs arbeiten ................................................................... 89 3.3.1 Refactoring für EJBs ................................................. 89 3.3.2 Geschäftslogik in einer EJB implementieren .............. 92 3.3.3 EJBs in Servlets und JSPs einfügen ............................ 94 Debugging und Tuning der Java-Anwendungen ..................... 98 3.4.1 Debugging einer Java-Webanwendung .................... 98 3.4.2 Laufzeitanalyse (Profiling) von JavaWebanwendungen ................................................... 102 Nächste Schritte .................................................................... 106 Zusammenfassung ................................................................. 107 4.6 5 4.3 4.4 4.5 Entwicklungszyklus im Überblick ........................................... Deployment von Java-Anwendungen ..................................... 4.2.1 Deployment mithilfe der Eclipse IDE ........................ 4.2.2 Deployment mithilfe des Console Clients ................. 4.2.3 Deployment-Monitoring .......................................... 4.2.4 Logging- und Tracing-Konzepte ............................... Quellcode-Management ........................................................ 4.3.1 Einführung in Git und GitHub .................................. 4.3.2 Erste Schritte mit EGit .............................................. 4.3.3 Ein Git Repositorymit GitHub definieren .................. 4.3.4 Git Repository in Eclipse klonen ............................... 4.3.5 Projekte zur Quellcode-Verwaltung hinzufügen ........ 4.3.6 Änderungen einchecken ........................................... 4.3.7 Ausblick ................................................................... Build-Automatisierung mit Apache Maven und Ant ............... 4.4.1 Erste Schritte mit Apache Maven ............................. 4.4.2 Mit Apache Ant arbeiten .......................................... Continuous Integration mit Jenkins ........................................ 4.5.1 Einführung in Jenkins ............................................... 109 112 112 123 129 133 139 139 140 143 145 148 150 153 154 154 164 166 167 5.3 5.4 5.5 5.6 5.7 5.8 6 Jenkins auf der SAP HANA Cloud Platform installieren ............................................................... 167 4.5.3 Schritt für Schritt zur Continuous Integration ........... 168 Zusammenfassung ................................................................. 170 Entwicklung nativer Anwendungen für SAP HANA ............ 171 5.1 5.2 Verwaltung und Deployment von Java-Anwendungen ...... 109 4.1 4.2 8 4.5.2 Überblick ............................................................................... Erste Schritte ......................................................................... 5.2.1 HANA-Instanz in der Testumgebung erstellen .......... 5.2.2 Mit Eclipse und den Entwicklungstools für SAP HANA arbeiten ................................................. 5.2.3 Mit der SAP HANA Web-Based Development Workbench arbeiten ................................................ XS-Projekt in Eclipse anlegen ................................................. Datenmodell für die Anwendung aufbauen ............................ 5.4.1 Persistenzmodell über Core Data Services definieren ................................................................ 5.4.2 Datenmodell als OData-Service veröffentlichen ........ 5.4.3 Datenmodell über serverseitiges JavaScript verwenden ............................................................... Anwendungsoberfläche entwickeln ....................................... Feintuning ............................................................................. 5.6.1 Deskriptor-Datei für die Anwendung erstellen ......... 5.6.2 Datei zum Zugriff auf die Anwendung definieren ...... 5.6.3 Rolle für den anzeigenden Zugriff definieren ............ Deployment und Testen ........................................................ 5.7.1 XS-Projekt aktivieren ............................................... 5.7.2 Anzeigerolle zu einem Benutzer-Account zuweisen .................................................................. 5.7.3 Testdaten importieren .............................................. 5.7.4 Anwendung starten .................................................. Zusammenfassung ................................................................. 172 174 175 176 183 185 189 190 193 196 197 199 199 201 203 206 206 208 209 212 216 Cloud-Services aufrufen ...................................................... 217 6.1 6.2 Überblick ............................................................................... Persistence-Service verwenden .............................................. 6.2.1 Konzeptüberblick ..................................................... 6.2.2 Datenbankschemata verwalten ................................ 6.2.3 Mit der Java Persistence API arbeiten ....................... 6.2.4 Mit Java Database Connectivity arbeiten .................. 6.2.5 Konzepte zur Datenbankadministration ................... 217 220 220 221 228 245 251 9 Inhalt Inhalt 6.3 6.4 6.5 7 7.3 7.4 8.4 269 278 281 285 286 287 291 291 8.5 Überblick ............................................................................... Erste Schritte ......................................................................... 7.2.1 HTML5-Anwendung anlegen ................................... 7.2.2 Auf das Git Repository zugreifen .............................. 7.2.3 Mit der SAP Web IDE arbeiten ................................. 7.2.4 HTML5-Anwendungsinhalte im SAP HCP Cockpit aktivieren ................................................................. 7.2.5 Fertiges Produkt testen ............................................ Weiterführende Konzepte ..................................................... 7.3.1 Mit dem Anwendungsdeskriptor arbeiten ................ 7.3.2 SAPUI5-Inhalte einbinden ........................................ 7.3.3 Zugriff auf externe Ressourcen ................................. 7.3.4 Anwendungssicherheit konfigurieren ....................... 7.3.5 Die fertige Anwendung ............................................ Zusammenfassung ................................................................. 8.6 294 295 295 297 298 311 312 313 313 315 316 319 322 326 8.7 8.3 Überblick ............................................................................... Einführung in Java-EE-Sicherheitskonzepte ............................ 8.2.1 Java-EE-Sicherheitsmodell ........................................ 8.2.2 Technische Grundlagen ............................................ Deklarative Sicherheitsimplementierung mit Java ................... 8.3.1 Authentifizierungsmethode konfigurieren ................ 8.3.2 Berechtigungsrollen und -einschränkungen definieren ................................................................ 8.3.3 Rollenzuweisung im SAP HCP Cockpit ...................... 327 329 329 331 333 333 336 338 Programmatische Sicherheit in Java implementieren .............. 8.4.1 Berechtigungen programmatisch prüfen ................... 8.4.2 Mit der Benutzerverwaltungsschnittstelle arbeiten ................................................................... 8.4.3 Mit der Authentifizierungsschnittstelle arbeiten ....... 8.4.4 Mit der Kennwortspeicherungsschnittstelle arbeiten ................................................................... 8.4.5 Schutz vor XSS-Angriffen .......................................... Authentifizierung und Berechtigungen mit SAML 2.0 ............ 8.5.1 SAML im Überblick .................................................. 8.5.2 Vertrauenswürdigen Identity Provider konfigurieren ........................................................... 8.5.3 Assertion-basierte Gruppenzuordnung implementieren ....................................................... Webressourcen über OAuth 2.0 schützen .............................. 8.6.1 Was ist OAuth? ........................................................ 8.6.2 OAuth-Berechtigungsfluss ........................................ 8.6.3 Webressourcen über OAuth sichern ......................... 8.6.4 OAuth-Clients entwickeln und konfigurieren ............ Zusammenfassung ................................................................. 341 341 343 345 347 349 353 354 356 361 366 367 369 372 375 382 TEIL III Weiterführende Konzepte 9 Mit dem SAP HANA Cloud Portal arbeiten ......................... 385 9.1 9.2 9.3 Cloud-Anwendungen sichern .............................................. 327 8.1 8.2 10 262 262 265 HTML5-Anwendungen entwickeln ..................................... 293 7.1 7.2 8 Connectivity-Service verwenden ............................................ 6.3.1 Konzeptorientierter Überblick .................................. 6.3.2 Mit Destinationen arbeiten ...................................... 6.3.3 Fallbeispiel: On-Premise-RFC-Funktionen aufrufen ................................................................... 6.3.4 Fallbeispiel: RESTful-Webservice verwenden ............ 6.3.5 Fallbeispiel: E-Mail-Nachricht senden ...................... Document-Service verwenden ............................................... 6.4.1 Konzeptüberblick ..................................................... 6.4.2 Mit der OpenCMIS-Schnittstelle arbeiten ................. 6.4.3 Externe Verwendung des Document-Services ........... Zusammenfassung ................................................................. 9.4 Einführung ............................................................................. 9.1.1 Was ist das SAP HANA Cloud Portal? ....................... 9.1.2 Architekturüberblick ................................................ 9.1.3 Wie wird das SAP HANA Cloud Portal verwendet? ... Content-Modell des SAP HANA Cloud Portals ....................... Inhalte für das SAP HANA Cloud Portal entwickeln ............... 9.3.1 OpenSocial-Widgets erstellen .................................. 9.3.2 Funktionen des SAP HANA Cloud Portals verwenden ............................................................... 9.3.3 Vorhandene Webanwendungen anpassen ................ 9.3.4 Widgets zum Content Catalog des Portals hinzufügen ............................................................... Fallbeispiel: eine benutzerdefinierte Portalseite erstellen ....... 9.4.1 Website im Site Directory erstellen .......................... 9.4.2 Seitenhierarchie der Website einrichten ................... 9.4.3 Inhalt zu den Seiten hinzufügen ............................... 9.4.4 Website veröffentlichen und testen .......................... 385 386 388 391 392 393 393 400 406 407 409 410 421 425 431 11 Inhalt Inhalt 9.5 9.6 Nächste Schritte .................................................................... 434 Zusammenfassung ................................................................. 434 11.3.1 10 Einführung in SAP HANA Cloud Integration ....................... 435 10.1 10.2 10.3 10.4 10.5 10.6 Überblick ............................................................................... Anwendungsfälle ................................................................... Erste Schritte in der Eclipse IDE ............................................. 10.3.1 Plug-ins für SAP HANA Cloud Integration installieren ............................................................... 10.3.2 Eclipse konfigurieren ................................................ Umsetzung eines einfachen SOAP-zu-SOAP-Szenarios ........... 10.4.1 Integrationsfluss anlegen .......................................... 10.4.2 Sender- und Empfängersysteme konfigurieren .......... 10.4.3 WSDL-Dateien aus SAP PI bzw. dem lokalen Dateisystem importieren .......................................... 10.4.4 Parameterdatei anlegen ........................................... 10.4.5 Mapping zwischen Sender- und Empfängersystemen ................................................. 10.4.6 Kommunikationskanäle für Sender und Empfänger konfigurieren ........................................................... 10.4.7 Deployment des Integrationsprojekts ....................... 10.4.8 Monitoring .............................................................. Einführung in die Weboberfläche für SAP HANA Cloud Integration ................................................ 10.5.1 Bereich »Discover« (Integration Content Catalog) ..... 10.5.2 Bereich »Design« ...................................................... 10.5.3 Bereich »Run« .......................................................... 10.5.4 Bereich »Monitor« ................................................... Zusammenfassung ................................................................. 435 438 440 440 442 444 444 447 11.4 447 448 449 450 451 451 452 453 456 460 460 462 11.5 11.2 11.3 12 Bedarf an Erweiterungen für Software-as-a-Service-Lösungen ............................................ Architektur einer Erweiterung ................................................ 11.2.1 Frontend-Schicht einer Erweiterung ......................... 11.2.2 Backend-Schicht einer Erweiterung .......................... 11.2.3 Verbindungsschicht einer Erweiterung ..................... Integrationspunkte für die Erweiterung von SAP-Cloud-Lösungen ............................................................. 12.1 12.2 12.3 464 466 470 476 479 481 482 483 483 484 484 485 485 485 486 487 487 489 493 494 497 502 502 506 507 512 12 SAP HANA Cloud Platform Mobile Services ....................... 515 11 Erweiterungsszenarien mit der SAP HANA Cloud Platform ............................................................................... 463 11.1 Benutzerdefinierte Business-Objekte und Ansichten ................................................................ 11.3.2 Workflows ............................................................... 11.3.3 Rollen und Berechtigungen ...................................... 11.3.4 API-Clients ............................................................... 11.3.5 Regeln ..................................................................... 11.3.6 Konfigurierbare UIs .................................................. 11.3.7 Kundeneigener Code ............................................... 11.3.8 Kacheln auf der Startseite konfigurieren ................... 11.3.9 Navigation konfigurieren .......................................... SuccessFactors mit HCP-Anwendungen erweitern .................. 11.4.1 Verwaltungsschichten von SuccessFactors ................ 11.4.2 Account-Onboarding ............................................... 11.4.3 Deployment Ihrer ersten SuccessFactorsErweiterung ............................................................. 11.4.4 SuccessFactors-Erweiterungen verwalten ................. 11.4.5 SuccessFactors-APIs ................................................. 11.4.6 Kundeneigene MDF-Objekte erstellen und über die SAP HCP verwenden ........................... 11.4.7 Kundeneigene Kacheln für die Startseite mit der SAP HCP erstellen .................................................... 11.4.8 Benutzerdefinierte Navigationseinträge verwalten .... 11.4.9 Fehler in SuccessFactors-Erweiterungen beheben ..... Zusammenfassung ................................................................. 12.4 Überblick ............................................................................... Anwendungsentwicklung mit Cordova und der SAP Web IDE ........................................................................ 12.2.1 Architektur einer Cordova-Anwendung .................... 12.2.2 SAPs Tool-Kette für die hybride CordovaEntwicklung ............................................................. Softwarevoraussetzungen ...................................................... 12.3.1 SAP Mobile Platform SDK ........................................ 12.3.2 Geräte-SDKs ............................................................ 12.3.3 Testinstanz der SAP HANA Cloud Platform Mobile Services ....................................................... 12.3.4 SAP Web IDE Hybrid App Toolkit ............................ Am häufigsten verwendete Komponenten ............................. 12.4.1 Anmeldung: Gerätregistrierung und Authentifizierung ..................................................... 517 520 520 521 522 523 524 524 525 525 525 13 Inhalt 12.5 12.6 12.7 12.4.2 Push-Benachrichtigung ............................................ 12.4.3 (Offline-)Betrieb ....................................................... Einfache hybride Anwendung mithilfe der SAP HCPms und der SAP Web IDE erstellen ............................................. 12.5.1 Deployment eines OData-Test-Webservices ............. 12.5.2 HCP-Destination für den ESPM-OData-Service erstellen ................................................................... 12.5.3 SAP Web IDE für die HCPms-Entwicklung konfigurieren ........................................................... 12.5.4 Neues Kapsel-Projekt erstellen ................................. 12.5.5 HCPms-Anwendung über die HCPms-Administrationskonsole erstellen ................. 12.5.6 Review des vom Assistenten erzeugten Codes .......... 12.5.7 Testen der Anwendung ............................................ Echte Mobile-Funktionen hinzufügen .................................... 12.6.1 Betrieb ohne Netzanbindung: das Offline-Plug-in ..... 12.6.2 Push-Benachrichtigungen ......................................... Zusammenfassung ................................................................. 526 527 529 530 533 534 535 540 543 547 553 553 556 562 Anhang ...................................................................................... 563 Die Autoren ........................................................................................... 563 Index ...................................................................................................... 565 14 Index A ABAP 190 Account 41 ACS 501 Adobe PhoneGap 520 Agentry Client 524 Amazon Web Services (AWS) 171 AMP 237 Änderungssynchronisation 123 Android 516 Android Device Monitor 549 Android SDK 524 Android SDK Manager 550, 561 Annotation 231 Ant 씮 Apache Ant Anwendung 517 Berechtigung 203 Protokoll 131 veröffentlichen 123 Anwendungsdeskriptor-Datei 314, 318 externe Ressource 316 SAPUI5 315 Anzeigerolle 208 Apache 2.0 493 Apache Ant 164 Aufgabe 165 Build auslösen 166 Build-Modell 164 Target 164 Apache Chemistry 291 Apache Chemistry, CMIS API 287 Apache Cordova 520 Apache Derby 260 Apache HttpComponents 269 Apache Maven 154 Eclipse 156 Kommandozeile 163 Maven-Projekt 494 POM-Datei 155, 158 Repository-Konzept 161 Apache Olingo 242, 244 Apache Shindig 389, 391 Apache Tomcat 112 API 467, 477, 484 Benutzerverwaltung 343 Connectivity and Destination 263, 269 Google Geocoding 278 API (Forts.) Java Persistence 228 JDBC 221 JNDI 249 JPA 221 Kennwortspeicherung 347 OData 477 OpenCMIS 287 SAP Jam OData 478 SFAPI 508 SLF4J 133 SuccessFactors SF 477 Wiring 477 App-Entwicklung 517 Application-managed Persistence 237 App-Services 34 Arbeitsteilung 112 Ariba 464, 470, 482 Ariba Query Language (AQL) 482 Artefakt-ID 161 AS Java 29 Assertion 355 Assertion Consumer Service 501 Authentifizierung 328, 332, 333, 486 Anforderung 354 formularbasierte 333 formularbasierter Prozessfluss 334 HTTPS-Clientauthentifizierung 333 Authentifizierungsschnittstelle Benutzer abmelden 347 formularbasierte Anmeldung 346 JAAS 346 Authoring Space 407, 413 Authorization Decision Statement 355 AVD Manager 550 B Benutzer 329 Benutzergruppe 330, 340 Benutzerkonto 41 Entwickler 42, 44 Kunde 43 Partner 43 Test 42 Benutzerprinzipal 329 565 Index Benutzerverwaltungsschnittstelle 343 Benutzerattribute 343 User-Provider-Instanz 344 Berechtigung 319, 328, 332 Anwendungsberechtigung 204 Berechtigungsprüfung in JSP 342 Berechtigungsprüfung in Servlet 342 Endpunkt 376 Rolle 204 SAP HANA 203 Berechtigungseinschränkung 320 Bibliothek 161 Binding 224 explizites 224 implizites 226 löschen 226 Branding, dynamisches 470 Breakpoint 98 Build-Automatisierung 154 Business Object Definition Language (BODL) 483 Business Workflow 467, 483 Busy Indicator API 402 BYOD 516 BYOL 47, 73 C Cascading Style Sheet 416 CDN 407 CDS 190 CI 166 Cloud Computing 29, 36 Servicemodell 30 Vorteile 36 Cloud Connector 264 Cloud Foundry 53 Cloud-Service 217 CMIS 286 Protokoll 478 Repository 289 Sitzung 288 CMISSQL 290 Cocoa 517 Code-Vervollständigung 306 Commit 151 Communicator 549 Companion App 525 Composite Applications 262 Concur 464 Connectivity and Destination 263 566 Index Connectivity-Service 54, 74, 218, 262, 279, 316, 480 Architektur und Rolle 263 Aufrufen von RFC-Funktionen 269 Destination 265 E-Mail senden 281 Integrationsszenario 264 RESTful-Service 278 Überblick 262 unterstützte Protokolle 262 Console Client 123, 124, 138, 166, 222, 223, 255 Anwendungsfall 123 lokales Deployment 126 Remote-Deployment 128 Start 124 Container-managed Persistence (CMP) 234 Content Catalog 407 Content Delivery Network 407 Content Management Interoperability Service 286 Content Repository 285 Context Object API 401 Continuous Integration 166 Cordova 520 Core Data Services 190 CORS 474, 485 Cross-Origin Request 407 Cross-Origin Resource Sharing 474, 485 Cross-Site Scripting 씮 CSS CRUD 242 CRUD-Vorgang 196 CSS 416, 349, 521 Custom Rich Text Editor API 402 D Data Definition Language 190, 192 Data Vault 526 Datenaggregation 473 Datenbankadministration 251 Datenbankprozedur 209 Datenbank-Pushdown 250 Datenbankschema 478 Binding 224 Datenbanktunnel 255 Definition 222 dynamische Erstellung 224 dynamischer Zugriff 251 Eigenschaften 222 Datenbankschema (Forts.) erstellen 222 Shared 227 verbinden mit SAP HANA 251 Datenbanktabelle 190 Datenbanktabelle, relationale 231 Datenimport-Assistent 209 Datenmodell 189 DDL 190 DDL-Datei 190 DDMS 550 deklarativer Ansatz 372 Dell Boomi 509 Dependency Injection 94, 234 Deployment Änderungen synchronisieren 123 auf Serverknoten 118 Console Client 123 Deskriptor 315, 333, 336, 372 Fehlerbehebung 129 Java-Anwendungen 112, 118 Logging und Tracing 133 lokales 126 Monitoring 129 Remote 128 Deskriptor-Datei 199, 318, 389 Destination 263, 265 anlegen 265 E-Mail-Destination 282 erstellen 533 HTTP-Destination 279, 317 RFC-Destination 273 Dispatcher 475 Dispatcher-Service 294 Docker 53 Document-Service 54, 168, 285, 478 als Dateisystem 286 Überblick 286 Dynamic Web Project 75, 78, 89, 157, 238 dynamisches Branding 470 E Eclipse 56, 176 Apache Maven 156 cloud-basierter Serverknoten 116 Data Tools Platform (Eclipse DTP) 255, 258 Data-Source-Explorer-Ansicht 256 Debugging 101 Eclipse (Forts.) Dynamic Web Project 76 HCI-Plug-in 440 HCP-Funktionen 60 herunterladen 57 IDE Einrichtung 56 Java 75 Installation 57 JPA 238 JRE 70 Logger konfigurieren 137 Proxy-Server-Zugriff 60 SAP JVM 70 SAP JVM Profiler 103 Serverknoten erstellen 113, 114 starten 59 WAR-Datei 127 Web Tools Platform (WTP) 112 Workspace 146 EclipseLink 233, 241 EGit 140, 148 EJB 49, 89, 235, 245, 287 Dependency Injection 94 EJB Lite 50 erstellen 90 Geschäftslogik 92 JNDI-Lookup 95 JSP 94 Servlet 94 Session Bean 93, 94 E-Mail-Destination 282 Enterprise JavaBeans 씮 EJB Enterprise Service Bus 437 Enterprise Services Repository 442 Entität 230 Beziehungsdiagramm 191 Datensatz 235, 236 kundeneigene 483 verwaltete Instanz 235 Entitätsklasse 231, 241 Annotation 231 XML-Deployment-Deskriptor 231 Entwicklerzugriff 42 Entwicklung, verteilte 140 Entwicklungslebenszyklus 110 Entwicklungsobjekt, kundeneigenes 483 Erweiterung 464 Architektur 466 Backend-Schicht 476 Frontend-Schicht 470 Verbindungsschicht 479 567 Index ESB 437 ESR 442 F Failover 480 Feedback-Service 54 G Gadget 씮 Widget GadgetPrefs API 401 Geräteemulator 550 Git 139, 301, 309, 311 Änderungen einchecken 150 Benutzerprofil 141 Commit 151 HTML5-Anwendung 297 Repository 143, 294, 301, 308, 494 Staging Area 150 Versionskontrolle 148 GitHub 139, 143, 167, 493 Account einrichten 144 Git Repository 143 Repository klonen 145 Google API Services 559 Google App Engine 171 Google Chrome 89 Google Cloud Messaging 556 Google-Geocoding-API 278, 280 Gruppen-ID 161 H HANA 씮 SAP HANA HCI 씮 SAP HANA Cloud Integration HCPms 씮 SAP HANA Cloud Platform Mobile Services HEC 33 Hook-Funktion 528 HTML 196, 521 HTML5 38, 53, 55, 74, 109, 140, 293, 470, 473, 474 HTML5-Anwendungscontainer 53 HTML5-Anwendungsentwicklung 293 Änderungen übertragen 308 Anwendung anlegen 296 Anwendungsdeskriptor-Datei 313 Berechtigung 319 568 Index HTML5-Anwendungsentwicklung (Forts.) Designzeit 294 externe Ressource 316 Git Repository 297, 301 HTTP-Destination 317 Inhalt 302 Inhalt aktivieren 311 Inhalt importieren 322 Modell 295 Rolle definieren 321 SAP Web IDE 298 SAPUI5-Inhalte 315 Sicherheit 319 testen 312 Versionsverwaltung 311 HTML5-Anwendungsmodell 293 HTTP(S) 262, 264 HTTP-Destination 279, 317 HTTP-Standardauthentifizierung 333, 335 Hudson 167 Hybrid App Toolkit 522 Hybrid App Toolkit, Communicator 549 Hybridcontainer 516, 539 I Identitätspropagierung 480, 481 Identity Provider 335, 469, 470, 525 Microsoft Active Directory Services 356 vertrauenswürdiger 356 Identity-Service 54 IDoc 275 iFrame 485 Incident Management 218 Infrastructure-as-a-Service (IaaS) 31, 33 Integration Content Catalog 453 Integrationsfluss 444 Integrationsplattform 437 Integrationsprojekt 445 IntelliSense 298 Internet der Dinge (Internet of Things, IoT) 27 iOS 517, 524 iPaaS 436 J JAAS 331 Java 6 476 Java 7 476 Java 8 476 Java Application Dashboard 132 Java Authentication and Authorization Service (JAAS) 331 Java Connector (JCo) 269, 275 Java Data Objects (JDO) 229 Java Database Connectivity 씮 JDBC Java EE 6 Web 49, 50, 64, 74 Java EE Security Stack 331 Java Persistence API 씮 JPA Java Runtime Environment 56, 68 Java SDK 56 Java Servlet 196 Java Transaction API 233 Java Virtual Machine (JVM) 49 Java Web 49 Java Web Archive 75 Java Web Tomcat 7 49 Java-Anwendung 73 Deployment 118 RESTful-Service 280 RFC 275 Zugriff auf Destination 268 Java-EE-Entwicklungstools 75 Java-Entwicklung 109 Deployment-Phase 111, 112 Entwicklungsphase 111 Integration 111 Test 111 Java-Interface com.sap.security.core.server.csi.IXSSEncoder 352 com.sap.security.um.user.User 344 com.sap.security.um.user.UserProvider 344 javax.security.auth.login.LoginContext 346 javax.servlet.HttpServletRequest 342 Java-Klasse 230 com.sap.cloud.security.oauth2.OAuthAuthorization 372 com.sap.cloud.security.oauth2.OAuthAuthorizationFilter 372 com.sap.cloud.security.password.PasswordStorage 348 Java-Laufzeitumgebung 48, 57, 74 Java-Laufzeitumgebung, Compute Unit 48 Java-Paket 79 Java-Quellcode-Editor 98 JavaScript 53, 196, 306, 473, 521 JavaScript, serverseitiges 196 JavaServer Page 씮 JSP Java-Servlet-API 76 Java-Webanwendung Debugging 98 Dynamic Web Project 75 JSP 83 Ressourcenmaterial 106 SAP JVM Profiler 102 Servlet 80 testen 86 JBoss 112 JCo 269, 275 JDBC 221, 233, 245, 247 Datenquelle 225, 248 java.sql-Bibliothek 245 javax.sql-Bibliothek 245 Vergleich zu JPA 250 Verwendungsbeispiel 245 Jenkins 167, 286 Build-Jobs 168 Installation 167 JNDI 228, 288 JNDI-Lookup 95, 228, 348 Join 473 JPA 218, 221, 228 API-Überblick 234 Eclipse 238 EclipseLink 241 Entitätsbeziehungen 232 Entitätsdatensatz 235 Entitätsklasse 231 Entity Manager 234 javax.persistence Library 229 Konvention statt Konfiguration 231 OData 242 ORM 228, 230 Persistence Unit 232 Query Language 236 Vergleich zu JDBC 250 JPQL 236 jQuery 403 jQuery Mobile 521 JRE 56, 68 JRuby 53 JSON 196, 471 JSP 49, 83, 96, 116, 196 569 Index JTA 233 JTA-Transaktion 235 Jython 53 K Kachel 485 Kapsel-SDK 523, 526, 528 Kardinalität 483 Kennwortspeicherungsschnittstelle 347, 348 Keystore-Service 479 Klassenbibliothek 517 Kommandoschnittstelle 154 Kontextobjekt 401 Konto 41 Kontrollverlust 465 Index Metadatei 190 Microsoft SharePoint 386 Microsoft SQL Server 245 mobile Anwendungsentwicklung Anwendungsdefinition 541 Authentifizierung 517, 525 Betriebssystem 515 Daten-Caching 517 echte Mobile-Funktionen 553 Internationalisierung 546 native Anwendungen 517 Offlinebetrieb 553 SDK 515 testen 549 Mobile-Services 55 Mock Server 471 Model View Controller 80 Mozilla Firefox 89 MVC 80 MySQL 262 L Laufzeitanalyse 102 Laufzeit-Container 47, 49, 57 Profile 49 Laufzeitcontainer 48 Laufzeitcontainer, Java 48 LESS 416 Linux 124, 139 List Builder 429 log4j 133 Log-Datei 135 Logger Handle 133 Logger konfigurieren 136 Logging 133 Logical Unit of Work 248 Login/Logout API 401 Log-Level 136 LUW 248 M Mac 124 Mapping, objektrelationale Abbildung 228 Mashup 262, 386 Mashup-Seite 386 Master Detail 535 Maven 씮 Apache Maven MDF, Objekt erstellen 502 570 N NEO 28, 48, 73, 171 neo-app.json 474 Northwind 317 Notification User 557 O OASIS 286 OAuth 280, 367 2.0 481, 484 Akteur 367 API-Client 498 Berechtigungsfluss 369 Berechtigungsseite 378 Berechtigungsserver 367 Client 367, 378 Cliententwicklungskonzept 375 Resource Owner 367 Ressourcenserver 367 Scope 374 Servlet-Filter 373 Sicherheitsgrundsätze 369 URL 377 Zugriffstokens verwalten 380 objektrelationale Abbildung 228 OData 53, 193, 195, 199, 205, 215, 242, 317, 467, 471, 473, 475, 483 4.0 244 OData-API 510 Audit Log 510 Data Dictionary 510 OData-Destination 500 OData-Service 243, 316 Anbindung an Anwendung 537 Apache Olingo 242 Deployment 530 Offline-SDK 517 Olingo 242, 244 Olingo OData JPA Processor 242 Open Popup API 401 OpenCMIS 287 Bibliothek 288 CMIS-Sitzung 288 Repository 289 OpenSocial 55, 388, 389 OpenSocial-Architektur 390 OpenSocial-Widget 392, 393 Cross-Origin-Request 407 HANA-XS-Anwendung 426 HTML5-Anwendung 426 Inhalt entwickeln 399 List Builder 429 Video Player 429 vordefinierte Typen 429 Webanwendung anpassen 406 Wetter-Widget 398 Operations Server 442 Oracle 245 ORM 228 OS X 124 P PaaS 436 Paket 179 Parameterdatei 448 Performance Hotspot Analysis 105 Persistence Unit 220, 232 Persistence-Service 54, 74, 220, 223, 242, 251, 478 Datenbankschema 221 SAP HANA XS 220 unterstützte Datenbanken 221 Plain Old Java Object 씮 POJO Platform-as-a-Service (PaaS) 28, 31, 33 POJO 74, 89, 230, 237 Polling 484 POM-Datei 155, 158 POP3/IMAP 262, 265 Portal 385, 386 Portalseite erstellen 409 Portalserver 386, 389 Preview Companion 549 Prinzipalname 329 Profiler 102 programmatischer Ansatz 372 Project Explorer 149 Protokollierungsstufe 135, 136 Prozedur 209 Public Cloud 33 Publish-Subscribe-Muster 401 Push-Benachrichtigung 518, 526, 556 Q Quellcode-Management 139 R R/3 27 RDBMS 51 Rechenzentrum 43 Refactoring 89 Refresh-Token 379 regulärer Ausdruck 366 Remote Function Call 씮 RFC Remote-Deployment 128 Repository Arbeitsbereich 181 klonen 145 Repository Workspace 181 Ressourcenreferenz 348 Ressourcenserver 367 REST 53, 167, 194, 218, 278, 280, 316, 319, 483 RFC 262, 264, 269, 275 River RDE 298 Rolle 204, 321, 329 Rollenzuweisung 338, 484 Routendefinition 316 571 Index S S/4HANA 33 SAML 280, 335, 353, 481, 484, 486 Assertion 355 Authentifizierungsanforderung 354 Bearer Assertion Flow 481 Identity Provider 354 JAAS-Anmeldemodul 355 Nachrichtenfluss 354 Service Provider 354 vertrauenswürdiger Identity Provider 356 SAP Business ByDesign 34, 483 SAP Cloud 463 SAP Cloud Application Studio 485 SAP Cloud Connector 38, 480 SAP Cloud for Customer 439 SAP Cloud Identity 469, 490 SAP Cloud, Erweiterung 씮 SAP-CloudErweiterung SAP Composition Environment (CE) 28, 262 SAP Enterprise Portal 386, 387 SAP ERP HCM 38 SAP Fieldglass 464 SAP Financial Services Network 440 SAP Fiori 485 SAP Fiori Launchpad 485 SAP Gateway 264 SAP GUI 52 SAP HANA 38, 51, 221, 252, 258 Entwicklungstools 176, 209, 254 Laufzeitumgebung 51 native Entwicklung 51, 52, 173 Sicherheit 203 Widget Navigation API 401, 421 Widget-Plug-in 395 SAP HANA App Services 34 SAP HANA Cloud Connector 264, 270, 271, 316 Installation 271 internes System 272 Services bereitstellen 272 SAP HANA Cloud Integration 55, 264, 316, 435 Anwendungsfälle 438 benutzerdefinierte Vorlagen 445 Designer 441 Eclipse-Konfiguration 442 Editionen 437 Integration Advisor 461 572 Index SAP HANA Cloud Integration (Forts.) Integrationsinhalte 455 Kommunikationskanäle konfigurieren 450 Lizenz 437 Mandanten-Account 442 Mapping 449 Message Mapping 449 Monitoring 451, 460 Mustervorlagen 445 On Premise 436 Operationen 441 Parameterdatei 448 Plug-ins 440 Projekt-Deployment 451 Repository Connection 442 SAP HCI Spaces 435, 452 Sender- und Empfängersysteme 447 Sicherheitsobjekte 441 SOAP-zu-SOAP 444 Web UI 452 WSDL-Dateien 447 SAP HANA Cloud Platform 28 Authoring Space benutzerdefinierte Website 409 Benutzerkonto 41 Berechtigungsmethode 334 Content Catalog 407 Debugger 98 Einführung 27 Entwicklerkonto 46 Entwicklungstools 56, 112, 176 Entwicklungstools, Installation 56 Erweiterung entwickeln 463 externer Benutzerspeicher 353 Funktion 27 Identity Provider 360 Integrationsfluss 444 Java-Entwicklung 73 OpenSocial 389 SAP HANA 172 SAP Web IDE 394 SAP-Landschaft 38 SDK 63 Service 217 Sicherheit 327 Website-Vorlagen 411 Widget 407 SAP HANA Cloud Platform Cockpit 46, 131, 132, 137, 175, 212, 222, 282, 295, 498 Anwendungsverknüpfung 225 SAP HANA Cloud Platform Cockpit (Forts.) assertion-basierte Benutzerattribute 364 assertion-basierte Gruppenzuordnungen 365 Berechtigung 321, 338 Datenbankschema 223 Destination 266 Erweiterungsaccount 491 HANA-Testinstanz 176 HTML5-Anwendung 294, 295, 311, 321 OAuth-Scope 374 OAuth-URL 377 OAuth-Zugriffstoken 380 Rolle 362 Rollenzuweisung 338 SQL-Trace 259 SAP HANA Cloud Platform Dispatcher 475 SAP HANA Cloud Platform Mobile Services 515 Admin Cockpit 518 Reporting 518 SAP HANA Cloud Platform Mobile Services 55 SAP HANA Cloud Platform Mobile Services Admin Cockpit 540, 559 SAP HANA Cloud Platform SDK 75, 76, 115 Java EE 6 Web 64 lokale Laufzeit 65 SAP HANA Cloud Portal 55, 385, 469, 470, 491 Architektur 390 Busy Indicator API 402 Content-Modell 392 Context Object API 401 Custom Rich Text Editor API 402 Entwicklung 393 Funktionen 387 GadgetPrefs API 401, 421 Login/Logout API 401 Open Popup API 401 OpenSocial-Funktionen 400 OpenSocial-Widgets 392 Seite 392 Site Context (Pub-Sub) API 401 Site Hierarchy API 401 Site Properties API 402 Vergleich zu SAP Enterprise Portal 387 SAP HANA Cloud Portal (Forts.) Verwendung 391 Vorlagentypen 396 Website-Definition 392 Widget Dynamic Height API 401 Widget erstellen 425 Widget Menu API 401 SAP HANA DB Services 33 SAP HANA Enterprise Cloud 33 SAP HANA Extended Application Services 씮 SAP HANA XS SAP HANA Infrastructure Services 33 SAP HANA Marketplace 43 SAP HANA Repository 179, 190, 206, 208 Arbeitsbereich 181 Paket 179 SAP HANA Studio 177 SAP HANA Web IDE 176, 183 SAP HANA Web-Based Development Workbench 176, 183 SAP HANA XS 51, 173, 175, 184, 185, 202, 217 Persistenz 220 Projekt 197 SAP HCI 씮 SAP HANA Cloud Integration SAP HCP 씮 SAP HANA Cloud Platform SAP ID Service 213, 334, 340, 356 SAP Jam 391, 483 SAP Java Connector 269, 275 SAP Java Virtual Machine 씮 SAP JVM SAP JVM 49, 67, 102 herunterladen 67 installieren 67 Profiler 102, 103 SAP MaxDB 221, 222, 258 SAP Mobile Platform 522 SAP Mobile Platform SDK 522, 523, 526, 527 SAP NetWeaver Cloud 씮 SAP HANA Cloud Platform SAP PartnerEdge 44 SAP Process Integration (PI) 55 SAP Process Orchestration 509 SAP S/4HANA 33 SAP Store 525 SAP Web IDE 293, 298, 309, 394, 470, 491, 522, 523, 525, 546 HTML5-Anwendung 298 Hybrid App Toolkit 523, 525, 535 OpenSocial-Widget 394 Projekt 301, 303 573 Index SAP Web IDE (Forts.) Unit-Test 307 Visual Layout Editor 546 Zugriff 299 SAP-Cloud-Erweiterung API-Clients 484 Backend-Element 476 Identity Provider 486 Kachel 485 kundeneigener Code 485 kundeneigener View 482 kundeneigenes Business-Objekt 482 Navigation 486 Regel 484 Rollen und Berechtigungen 483 UI-Element 472 User Interface 485 Workflow 483 SAP-HANA-Anwendung starten 212 testen 212 SAP-HANA-Entwicklung Anwendungsarchitektur 173 Anwendungszugriffsdatei 201 Anzeigerolle 208 Datenmodell 189, 196 Deskriptor-Datei 199 OData-Service 193 Projekt aktivieren 206 Projekt erstellen 185 Projekt verknüpfen 187 Remote-Instanz 177 Rolle 203 Test 209, 214 Testinstanz 175 UI 197 SAPUI5 52, 194, 197, 205, 304, 315, 470, 521 Internationalisierung 547 Mock Server 471 View 544 Schlüssel 479 SCM 139 SDK, offline 517 Security Assertion Markup Language 씮 SAML Seitenhierarchie 392, 421 Serverfarm 30 Serverknoten cloud-basierter 116 erstellen 113 574 Index Servertyp 114 Java EE 6 Web 114 Java Web Tomcat 7 115 Java-Webserver 114 SAP HANA Cloud Platform 115 Service 53 Service Level Agreement 42 Servicefassade 288 Servicemodell 31 Servlet 80, 116, 245, 279 Session Bean 89 Session Bean, Stateful 94 SFAPI 508 Audit Log 508 Aufrufstatistik 508, 510 Data Dictionary 508, 509 Sicherheit 319, 327 angemeldete Benutzer 343 Authentifizierungsmethode 333 Benutzer 329 Cloud vs. on Premise 327 Cloud-Sicherheitsmodell 328 deklarative 331, 333 Gruppen 330, 340 Java EE 329, 330 Java-EE-Authentifizierungsmethode 333 Java-EE-Berechtigungsrolle 336 Java-EE-SSL-/TLS-Support 331 programmatische 331 Rollen 329 Sicherheitskonzept 203, 328 Simple Logging Façade 133 Simulator 549 Single Sign-on 353, 469, 473, 481 Site Context API 401 Site Directory 410 Site Hierarchy API 401 Site Properties API 402 SLA 42 SLF4J 133, 134, 136, 159 SMTP 262, 265, 282 SOAP 510 SOAP-Adapter 444 Software-as-a-Service (SaaS) 31, 33, 464 Software-Entwicklungslebenszyklus 110 Softwarelogistik 109 Source Code Management 139 SP Mapping Key 506 Speicherort 58 Spezifikations-XML 393 Spring MVC 74 SQL 190, 259, 285 SQLScript 53, 196 SQL-Trace 259, 260 SSO 씮 Single Sign-on Staging Area 150 Startup 544 Stateful Session EJB 89 Stored Procedure 208 Struts 74 SuccessConnect 487 SuccessFactors 38, 435, 440, 463, 469, 482, 483, 487 Admin Tools 489, 494 Employee Central 464, 487 Identity Provider 470 Metadata Framework 482 Object Definition 502 OData-API 498 OneAdmin 488, 489, 508 Performance Management 483 Professional Services 488 Provisioning 488 Verwaltungsschicht 487 SuccessFactors, API 씮 SFAPI SuccessFactors, Erweiterung 씮 SuccessFactors-Erweiterung SuccessFactors-Erweiterung API 497 benutzerdefinierte Navigation 506 Corporate Benefits 493 Deployment 493 Employee-Rolle 493 Fehlerbehebung 507 HR-Manager-Rolle 493 Kacheln auf der Startseite 502, 504 Management-Plug-in 496 MDF 502 OAuth-2.0-API 499 Onboarding 489, 491 Verwaltung 494 S-User 490 Sybase Unwired Platform 527 T Tag 311 Target 164 Testen 111 Testkonto 42 Theme 414 Tracing 133 Trial Account 42 U Unit-Test 307 Unix 124 Uptime 36 User Experience 387 V Verbindungsobjekt 263 Verbindungsprofil 256 Verbundauthentifizierung 353 Versionskontrolle 148 Versionsverwaltung 311 verwaltete Entitätsinstanz 235 View Breakpoints 101 Code View 101 Data Source Explorer 255 Debug 101 definieren 544 GIT 309 Git Repositories 145 Git Staging 146, 151 Project Explorer 149, 349 Repositories 182, 185 SAP HANA Administration Console 251 Servers 113 Variables 101 VM Explorer 103 Vorlage Customizing 537 Master Detail 535 W W3C Social Web Working Group 390 Web IDE, SAP HANA 씮 SAP HANA WebBased Development Workbench Web Tools Platform 112 web.xml 77, 95, 225, 333, 336, 348, 372 Webcontainer 49 Webprojekt, dynamisches 157 Website Definition 392, 410 Einstellung 413 575 Index Website (Forts.) erstellen 410 Layout 414 Seitenalias 421 testen 431 Theme 414 veröffentlichen 431 Widget 389, 392 erstellen 393 Spezifikations-XML 393 veröffentlichen 407 Widget Dynamic Height API 401 Widget Menu API 401 Widget Navigation API 401 Windows 124 Workflow 483 WTP 112 WYSIWYG 388 576 X XApps 262 Xcode 517, 524 XML 196, 306, 416 XML-View 544 XS OData 194 XSLT 416 XSS 349 XSS Output Encoding 349 Z Zertifikat 479 Zugriff, bedingter 342 Wissen aus erster Hand. James Wood ist Gründer und Principal Consultant von Bowdark Consulting, Inc., einem Beratungsunternehmen, das sich auf Technologie und kundenspezifische Entwicklung rund um die SAP-Lösungen spezialisiert hat. Bevor er Bowdark Consulting im Jahr 2006 gründete, war er als SAP-NetWeaver-Consultant für SAP America, Inc. und die IBM Corporation beschäftigt und an zahlreichen großen SAP-Implementierungen beteiligt. Er ist SAP-Mentor und Autor zahlreicher erfolgreicher Bücher zu SAP-Themen. Weitere Informationen zu James Wood und diesem Buch finden Sie auf seiner Website: www.bowdark.com. James Wood SAP HANA Cloud Platform – Das Handbuch für Entwickler 576 Seiten, gebunden, Juli 2015 69,90 Euro, ISBN 978-3-8362-3862-5 www.sap-press.de/3912 Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstellung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nutzungs- und Verwertungsrechte liegen beim Autor und beim Verlag. Teilen Sie Ihre Leseerfahrung mit uns!