SAP HANA Cloud Platform – Das Handbuch für Entwickler

Werbung
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!
Herunterladen