Upload
trinhkien
View
216
Download
0
Embed Size (px)
Citation preview
Entwickeln mit HANA 2 –
Der Tiger im Tank?
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?2 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
4. HANA 2: ExpressEdition
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
5. HANA 2:XS Advanced
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?3 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
5. HANA 2:XS Advanced
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
4. HANA 2: ExpressEdition
Über was reden wir? – Der HANA-Stack
Paul Bläsi - HANA 2 - Tiger im Tank?4 |
SAP HANA DB
Appserver – XS Application Services
HTML5-Browserclient SAP UI5
Meine Perspektive auf die HANA
l Paul Bläsi: Software Architect– Backend-Entwicklung– Single Page Webanwendungen– Interesse an Verbesserung der Entwicklerproduktivität
l eXXcellent solutions gmbh, Ulm– Realisierung von Kundenlösungen „nach Maß“– Ein technischer Schwerpunkt: moderne
Webentwicklung– Erfahrungen aus HANA-Projekten
Wie geht individuelle Webentwicklung auf dem HANA-Stack?
Paul Bläsi - HANA 2 - Tiger im Tank?5 |
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?6 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
4. HANA 2: ExpressEdition
5. HANA 2:XS Advanced
HANA 1-Stack: Datenbank/ Appserver/ Client-libs
l Client-Technologie– SAP UI5 als SPA-Framework– hoher Abstraktionsgrad, viel Widgets mit Semantik
l Appserver– Enge Verzahnung mit Datenbank– unterstützt deklarativ OData als REST-Schnittstelle– Ablaufumgebungen Java, Javascript (xsjs)
l Datenbank– In-Memory, SQL, ACID– Erweiterungen (analytisch, prodzedural)– Column- und Rowstore Engine
Paul Bläsi - HANA 2 - Tiger im Tank?7 |
Zum Vergleich: SQL/ REST/ SPA-Framework
l UI– HTML5 Browserclient– SPA, MVC-Framework
l Appserver– Java, Javascript, …– REST– Business-Services– Domain Model– ORM
l Datenbank: – SQL– NoSQL
Paul Bläsi - HANA 2 - Tiger im Tank?8 |
SQL/NoSQL
ORM
DomainModel
Services
Browser-client
SPA-Framework
REST
Relevante Unterschiede: HANA 1 vs. B&B-Stack (1/2)
l HANA-Appserver– Eng mit DB integriert– Unterstützt „möglichst viel in der DB ausführen“– Bevorzugt Services, die Daten 1:1 weiterreichen– Business Logik etwas „heimatlos“, kein Domain Model
Paul Bläsi - HANA 2 - Tiger im Tank?9 |
Relevante Unterschiede: HANA 1 vs. B&B-Stack (2/2)
l Sehr gute Unterstützung eines „Standardwegs“– UIs mit hohem Abstraktionsgrad/„normaler“ Semantik– Überwiegend lesende Zugriffe– Keine komplexen Modelltransformationen– Persistentes Modell mit Metadaten vorhanden
l Höhere Hürden, um abweichende Anforderungen umzusetzen– Standardlibs schwer/nicht einbindbar– UIs mit abweichender Semantik/Lifecycle aufwändig
Paul Bläsi - HANA 2 - Tiger im Tank?10 |
Zwischenfazit: HANA-Stack für die Webentwicklung?
Paul Bläsi - HANA 2 - Tiger im Tank?11 |
VieleGemeinsamkeiten HANA ist ein
Stack für dieWebentwicklung
Aber: Es gibt auch nennenswerte Unterschiede
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?12 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
4. HANA 2: ExpressEdition
5. HANA 2:XS Advanced
HANA 1 Tools & Workflow: IDE
l Zwei Alternativen– HANA Web Based Development Workbench– HANA Studio (Eclipse-basiert)
l Viele Funktionen, verteilen sich auf beide IDEs
Paul Bläsi - HANA 2 - Tiger im Tank?13 |
Design-artefakteDesign-
artefakteDesign-artefakte
HANA 1 Tools & Workflow: HANA Repository: Zwitter
Paul Bläsi - HANA 2 - Tiger im Tank?14 |
Design-artefakte
(Sourcecode)
HANA RepositoryVersionierung
Datenbankobjekte(Tabellen, Daten, Views,
Procedures, …)
Laufzeitobjekte Appserver
HANA 1 Tools & Workflow: Sourcecode Repository
l HANA-Repository: Zentrales Sourcecode Repository
l Nur grundlegendste Funktionen der Versionsverwaltung: kein branching, merging, tagging
l Zwitterrolle
– Versionsverwaltung des Sourcecodes
– Deployment der Artefakte in Datenbank/Appserver
l Beim „Einchecken“: Deployment der Designartefakte
Paul Bläsi - HANA 2 - Tiger im Tank?15 |
Relevante Unterschiede: Tooling and Workflow
l IDE: Bei HANA wenig, sonst volle Auswahll Teamarbeit bei HANA deutlich erschwert
– Versionsverwaltung: Rückschritt gegenüber geübter Praxis
– umso schmerzhafter je größer das Entwicklerteaml Am ehesten noch
– Einzelner Entwickler, der mehrere Systeme zur Verfügung hat (Entw, Prod, Test, …)
– Oder klar umrissene Trennung (z.B. front-/backend)
Paul Bläsi - HANA 2 - Tiger im Tank?16 |
Workarounds sind möglich!
l Getrennter Namensraum/Schema für jeden Entwicklerl Sourcecode in git außerhalb des HANA Repository
– Integration aller textbasierten Artefakte im SCM– volle Unterstützung für branch/merge etc.
l Custom-Skripte, die Ersetzungen vornehmenl Deployment per REST-Schnittstelle zum Repositoryl Aber: Verwendung undokumentierter Schnittstellen,
einige Reibungspunkte, Skalierbarkeit
Paul Bläsi - HANA 2 - Tiger im Tank?17 |
&
Und wofür das Ganze?
Paul Bläsi - HANA 2 - Tiger im Tank?18 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Komplexität
Reibungsverluste bei Teamarbeit
Und wofür das Ganze?
Paul Bläsi - HANA 2 - Tiger im Tank?19 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Komplexität
Reibungsverluste bei Teamarbeit
Und wofür das Ganze?
Paul Bläsi - HANA 2 - Tiger im Tank?20 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
Komplexität
Reibungsverluste bei Teamarbeit
Und wofür das Ganze?
Paul Bläsi - HANA 2 - Tiger im Tank?21 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
FehlendeStandardlibs
Ineffizienz beiImplementierungder Businesslogik
und des UI
Komplexität
Reibungsverluste bei Teamarbeit
Und wofür das Ganze?
Paul Bläsi - HANA 2 - Tiger im Tank?22 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
FehlendeStandardlibs
Ineffizienz beiImplementierungder Businesslogik
und des UI
Komplexität
Individuelle Entwicklung mit
HANA 1
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?23 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
4. HANA 2: ExpressEdition
5. HANA 2:XS Advanced
Was ist die HANA Express Edition?
l Vollständige HANA mit DB, Appserver, Entwicklungstoolsl Frei verfügbar unter Entwicklerlizenz, kostenlosl Wenige Einschränkungen
– max. 32 GB RAM = Datenbankgröße– einige Big Data-bezogene Funktionen fehlen– keine Integration in SAP Solution Manager
l Geliefert als– VM Image (VM Ware, Virtual Box)– Installer mit Binärpaketen für SLES 12
Paul Bläsi - HANA 2 - Tiger im Tank?24 |
HANA Express Edition als Virtuelle Maschine
Paul Bläsi - HANA 2 - Tiger im Tank?25 |
l Im Prinzip gut ausführbar auf Entwicklerrechner
l In-Memory-Db: min 12GB freies RAM erforderlich
l Entwicklung möglich ohne zentrale HANA oder offline
l Niedrige Einstiegshürde technisch/kaufmännisch
l Aber: Minimum an HANA-Administration erforderlich
– DNS-Einträge, Zertifikate, …
– Benutzer, Benutzerrollen, „Spaces“, …
Bewertung: HANA Express Edition zur Entwicklung
Paul Bläsi - HANA 2 - Tiger im Tank?26 |
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?27 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
4. HANA 2: ExpressEdition
5. HANA 2:XS Advanced
Was ist XS Advanced ?
l Vollständige Überarbeitung des Appserver-Layersl Beginn in HANA 1 (SPS 11)l Seit SPS 12/HANA 2(SPS 0): XS Classic „abgekündigt“
Paul Bläsi - HANA 2 - Tiger im Tank?28 |
SAP HANA Database
XS Advanced Runtime
XSClassic
RT
(forseveral
SPSlevels)
CustomRuntime
Node.jsRuntime
JAVARuntime
Application RouterHTML5App
HANADI
xsjscompatibility
centralsecurityservice
UserAccount/Authent.
Was ändert sich mit XS Advanced ?
l Workflow: – Ablösung des HANA Repository– Versionsverwaltung komplett im git– Deployment komplett von HDI übernommen
l Architektur:– „Multi-Target-Applications“ als Standardmodell– Cloud Foundry-basiert– „Microservices“– Standardmäßige Anbindung externer ID Provider– XS-Benutzer müssen keine HANA DB User mehr sein– Zugriff auf Datenbankcontainer via dediziertem technischen User
l Ablösung der IDEs durch „Web IDE for SAP HANA“– Löst „Web Based Development Workbench“ und „HANA Studio“ ab– Neuentwicklung, nicht verwandt mit bisheriger „Web IDE"
Paul Bläsi - HANA 2 - Tiger im Tank?29 |
Entwicklungsworkflow ohne HANA Repository
Paul Bläsi - HANA 2 - Tiger im Tank?30 |
In git remote branch
programmieren/ integrieren
In Web IDE Änderungen
abholen (pull)
Web IDE: deploy/test
Web IDE:Projekt initialisieren
In git remote branch zur Verfügung
stellen (push)
Auswirkung des neuen Workflow mit XS Advanced
l Saubere Trennung Versionsverwaltung/Deploymenttooll Verwendung jeder beliebigen IDE für textbasierte
Artefakte– Große Hilfe bei JS-Entwicklung– Allerdings keine Editoren für HANA-Spezifika (mta.yml, cds, …)
l Integration wie „gewohnt“ in git-branches– Paralleles, unabhängiges Deployment aus mehreren branches
l Zusammenarbeit im Team deutlich verbessert
l Web IDE kann aber nicht komplett ersetzt werden– Editoren für HANA-Spezifika– Initialisierung und Steuerung des Deployments
Paul Bläsi - HANA 2 - Tiger im Tank?31 |
„Microservices“ in HANA 2
Paul Bläsi - HANA 2 - Tiger im Tank?32 |
l XS Advanced Runtime basiert auf CloudFoundryl Javascript Runtime basiert nicht mehr auf xsjs-API, sondern auf Node.js mit Modulenl Eines dieser (mitgelieferten) Module ist ein xsjs-Kompatibilitätsmodull Installation weiterer Module auf Standardweg (npm und package.json)l Auch Datenbankcontainer werden über einen Microservice zur Verfügung gestelltl SAP UI5 lib kann versioniert als Microservices zur Verfügung gestellt werdenl Custom Apps verteilen sich auf mehrere Microservices, deklarative Abhängigkeiten
SAP HANA Database
XS Advanced Runtime
XSClassic
RT
(forseveral
SPSlevels)
CustomRuntime
Node.jsRuntime
JAVARuntime
Application RouterHTML5App
HANADI
xsjscompatibility
centralsecurityservice
UserAccount/Authent.
Auswirkungen des Microservice-Ansatzes
l Verwendung von Standardlibs (Node-Modulen in JS-Runtime) deutlich erleichtert
l Feinere Strukturierung von Induvidualentwicklungenerleichtert größere (komplexere) Projekte
l Skalierbarkeit verbessert– Connection Pooling durch technischen DB-User– UI5 als Microservice statt mit jeder App deployt
l Größere/komplexere Apps besser unterstützt
l Allerdings auch höhere Komplexität für kleine Projekte
Paul Bläsi - HANA 2 - Tiger im Tank?33 |
Bewertung: HANA 2: Express Edition und XS Advanced
Paul Bläsi - HANA 2 - Tiger im Tank?34 |
Workfloworientiert am
Standard („git“)
Reibungsverlusteverkleinert
Verbesserung der Zusammenarbeit im Team
Express EditionEntwickler-
produktivitäterhöht
Isolierte und offline Arbeit,Entwicklertests ohne HANA
MicroservicesHöhere Komplexität
besserunterstützt
Feinere Strukturierung großer Anwendungen
JS-Runtimebasiert auf
Node.js
Schub für Backend-seitige Javascript-
Entwicklung
Verwendung von Standardmodulen
l HANA 2: Änderungen gehen in die richtige Richtung!
l Unterstützung des git-basierten Workflows macht Teams produktiver.
l HANA Express ermöglicht unabhängiges Entwickeln.
l Unterstützung von aktuellem Node.js deutliche Verbesserung
l Datenbankcontainer mit technischen Usern und externe ID-Provider „state of the art“.
l Microservices helfen, große Anwendungen zu strukturieren.
Grund zum Jubel? – Pro und Contra!
Paul Bläsi - HANA 2 - Tiger im Tank?35 |
l Erhöhte Komplexität lohnt evtl. nicht für kleine Projekte.
l SAP Web IDE hat noch nicht Funktionalität und Reife der früheren IDEs (Web/Eclipse).
l Weite Teile der Plattform sind Neuentwicklungen, deren Produktionsreife erst erprobt werden muss.
l Express Edition funktioniert nicht ohne jeden Administrationsaufwand
l Für vorhandene Projekte Migrationsaufwand einplanen!
Reibungsverluste bei Teamarbeit
Was ändert HANA 2?
Paul Bläsi - HANA 2 - Tiger im Tank?36 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
FehlendeStandardlibs
Ineffizienz beiImplementierungder Businesslogik
und des UI
Komplexität
IndividuelleEntwicklung mit
HANA 1
Reibungsverluste bei Teamarbeit
Was ändert HANA 2?
Paul Bläsi - HANA 2 - Tiger im Tank?37 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
FehlendeStandardlibs
Ineffizienz beiImplementierungder Businesslogik
und des UI
Komplexität
Zu einfach:
KeineIndividual-
EntwicklungIndividuelle
Entwicklung mit HANA 1
Reibungsverluste bei Teamarbeit
Was ändert HANA 2?
Paul Bläsi - HANA 2 - Tiger im Tank?38 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
FehlendeStandardlibs
Ineffizienz beiImplementierungder Businesslogik
und des UI
Komplexität
IndividuelleEntwicklung mit
HANA 1
Reibungsverluste bei Teamarbeit
Was ändert HANA 2?
Paul Bläsi - HANA 2 - Tiger im Tank?39 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
Standardlibs
Implementierungder Businesslogik
und des UI
Komplexität
IndividuelleEntwicklung mit
HANA 1
Reibungsverluste bei Teamarbeit
Was ändert HANA 2?
Paul Bläsi - HANA 2 - Tiger im Tank?40 |
Teamgröße
komplexe AblauflogikNon-Standard-Anforderungen
komplizierte UIs
überwiegend Lesezugriff/VisualisierungStandard-Szenarien (master/detail)
vorgefertigte Widgets
Zu einfach:
KeineIndividual-
Entwicklung
Standardlibs
Implementierungder Businesslogik
und des UI
Komplexität
IndividuelleEntwicklung mit
HANA 2
Der Tiger im Tank? – Überblick
Paul Bläsi - HANA 2 - Tiger im Tank?41 |
1. Die HANA undmeine
Perspektivedarauf
3. Entwicklungs-workflow undWerkzeuge im
Vergleich
6. Fazit:Wann sollte man
es tun?
2. HANA 1 im Vergleich zu
„SQL/REST/SPA“
4. HANA 2: ExpressEdition
5. HANA 2:XS Advanced
Fazit: Individualentwicklung auf HANA wagen?
l Mit HANA 2 wird der Anwendungsbereich größer
l Es spielen noch andere Faktoren eine Rolle– UI-Konzept: Standard oder Speziell? – Anforderungen an analytische Funktionen der DB– In Memory/Big Data– Betriebsthemen– Einbindung in vorhandene SAP-Landschaften
l Immer auch alternative Stacks berücksichtigen– SQL/REST/SPA-Framework– Anbindung der HANA DB über plain old SQL/JDBC
Paul Bläsi - HANA 2 - Tiger im Tank?42 |
Fragen? Anmerkungen?
Ihre Erfahrungen?
Quellen und Verweisel SAP HANA 2 Docs: http://help.sap.com/hana_platforml HANA Express Edition @SAP:
http://www.sap.com/developer/topics/sap-hana-express.htmll SAP UI5: http://www.sap.com/developer/topics/ui5.htmll OData (Version 2): http://www.odata.org/documentation/odata-
version-2-0/l Cloud Foundry: https://www.cloudfoundry.org/
l HANA @eXXcellent solutions: https://www.exxcellent.de/software/software-entwicklung/sap-hana/
Paul Bläsi - HANA 2 - Tiger im Tank?44 |