REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
1. DOAG 2015, Nürnberg
Ulrich Gerkmann-Bartels
und
Andreas Koop
REST IN PEACE MIT ORACLE
ORDS, NODE.JS, ADF, JAVA ODER OSB
2. DOAG 2015, Nürnberg
ÜBER UNS
2
Ulrich Gerkmann-Bartels
Gründer, CEO und Enterprise Architekt
@GerkmannBartels
Andreas Koop
Gründer, CFO und Senior Architekt
@andreaskoop
5. DOAG 2015, Nürnberg
WIESO, WESHALB, WARUM - REST
‣ Ursprung: Dissertation von Roy Fielding (2000)
‣ REST steht für REpresentational State Transfer
‣ Ist ein Architekturstil für Hypermedia-Systeme
‣ Ressourcen werden in einem System über eine lose
gekoppelte Adressierung angesprochen.
‣ Keine Technologie, kein Protokoll, kein zweites SOAP
5
6. DOAG 2015, Nürnberg
REST-PRINZIPIEN UND RESSOURCEN
‣ Über eine eindeutige Adresse (URI) wird eine Ressource
angesprochen (http://localhost:8080/ords/hr/employees/104)
‣ Es kann verschiedene Repräsentationen einer Ressource
geben (XML, JSON, HTML, ?)
‣ Es stehen nur wenige Methoden zur Anwendung auf
Ressourcen zur Verfügung (GET,PUT,POST,DELETE)
‣ Ressourcen sind Datenzentriert (CRUD)
‣ Zustandslose Kommunikation (Stateless)
6
7. DOAG 2015, Nürnberg
HATEOS
HYPERMEDIA AS THE ENGINE OF APPLICATION STATE
‣ Jede Antwort beinhaltet Links zu weiteren Aktionen
‣ Diese Links repräsentieren den aktuellen Zustand der
Ressource / Applikation mit Ihrem Inhalt und Aktionen
‣ Ein Klient kennt im Prinzip nur eine URL zu einer
Ressource / Applikation. Weitere Inhalte und Aktionen
werden zur Laufzeit mit jedem entsprechenden Response
mitgeliefert.
‣ RESTful API „is driven by hypertext“
7
15. DOAG 2015, Nürnberg
ORDS ARCHITEKTUR
15
Data Store Layer
Business Rules
/ Logic /
Process Layer
Service
Layer
Abbildung und Routing von SQL und
Transformation des Ergebnisses
Client Layer
SQL/PL-SQL - Land
Data
Access
Layer
ORDS + WLS /
Tomcat / Jetty
Oracle
Database /
NoSQL
16. DOAG 2015, Nürnberg
BEWERTUNG ORDS
16
‣ Stärken: Sehr einfach für CRUD und Abfragen von Daten
‣ Schwächen: Modifikation des Request/Response - Zyklus
‣ Empfehlung
‣ RESTenable klassische Oracle Infrastruktur ohne weiteren
Technology-Stack, Mobile Cloud Service
‣ Skills: Oracle SQL & PL/SQL, JSON, XML
‣ Tools: SQL Developer
18. DOAG 2015, Nürnberg
NODE.JS & ORACLE DB DRIVER
ARCHITEKTUR
18
Data Store Layer
Business Rules
/ Logic /
Process Layer
?
Service Layer
JavaScript - Land
Client Layer
Data
Access
Layer
Node.js + Oracle
Driver
Oracle Database
19. DOAG 2015, Nürnberg
BEWERTUNG NODE.JS & ORACLE DB
DRIVERS
19
‣ Stärken: JavaScript Land - Client und Server - Sehr hoher
Freiheitsgrad
‣ Schwächen: Kein Out-Of-The-Box, Data Access Framework im
Aufbau, Auswahl von zusätzlichen Modulen notwendig (Express,
Swagger, u.a.)
‣ Empfehlung
‣ Strategische Entscheidung* -> JavaScript - Ökosystem
‣ Skills: JavaScript!, JSON/XML
‣ Tools: NODE.JS, ATOM, SWAGGER, MCS, <X>ify,…
* Je nach Umfeld und Aufgabenstellung unausweichlich
20. DOAG 2015, Nürnberg
EMPFEHLUNG
NODE.JS & ORACLE DB DRIVERS
20
Orawrap is a wrapper module for the Oracle Database driver
for Node.js (node-oracledb).
https://github.com/OraOpenSource/orawrap
‣ Pool Manager für die Verwaltung von Pool Storage,
Zugriffsmethoden und Queuing von Connetion-
Anfragen
‣ Connection Manager für die einfache Zugriff auf eine
Database Connection (Automatisches öffnen und
schliessen der Ressourcen)
‣ Unterstützung von Ausführung zentralisierten SQL
Scripten mit unterschiedlichen Timings.
21. DOAG 2015, Nürnberg
REST MIT ADF 12.2.1+
‣ ViewObjekt-Instanzen eines Application Modules
können als REST-Resourcen exponiert werden
‣ Deklarativ / Wizard
‣ Generierung eines
RESTWebService-
Projektes
‣ Mehrversionsfähig-
keit out-of-the-box
21
23. DOAG 2015, Nürnberg
ORACLE ADF (12.2.1+)
ARCHITEKTUR
23
Data Store Layer
Business Rules
/ Logic /
Process Layer
Service Layer
Oracle Database
Java-4GL-Framework-Land
WLS ud Oracle ADF
Client Layer
Data
Access
Layer
REST-
Service
(generiert)
ADF / MAF
REST DataControl
ADF BC
ApplicationModu
le
HTTP(S)/
REST
ADF BC
VO
EO
Oracle Database
26. DOAG 2015, Nürnberg
PLAIN JAVA
ARCHITEKTUR
26
Data Store Layer
Business Rules
/ Logic /
Process Layer
Service Layer
Oracle Database
Java - Land
Application Server
Client Layer
Data
Access
Layer
REST
Resource
@EJB Service
EJB JPA
Oracle Database
27. DOAG 2015, Nürnberg
BEWERTUNG PLAIN JAVA
‣ Stärken: Java-Standard, JAX-RS
‣ Schwächen: -
‣ Empfehlung
‣ Bei Vorhandensein von EJB, JPA, Java EE Knowhow
‣ Skills: Java, JAX-RS, JSON/XML, EJB, JPA, SQL
‣ Tools: Java IDE (Netbeans, Eclipse, JDev, IDEA etc)
27
28. DOAG 2015, Nürnberg
REST MIT OSB
‣ Integrierte Unterstützung im Proxy-Service!
(Expose as REST Wizard. Anpassung Resourcen /
Methoden / Parameter möglich)
‣ Nutzung vom Mediator für Transformation /
Mapping von SOAP -> REST Service
‣ EJBs könnenen ebenso als REST-Service exponiert
werden.
‣ Monitoring, Reporting, Security für die REST-
Services inklusive!
28
30. DOAG 2015, Nürnberg
ORACLE OSB
ARCHITEKTUR
30
Data Store Layer
Business Rules
/ Logic /
Process Layer
Service Layer
Oracle Database
Enterprise-SOA/EAI-WebService-Land
WLS und Oracle OSB
Client Layer
Data
Access
Layer
REST-Proxy
Service
Mediator
SOAP, EJB,
etc
31. DOAG 2015, Nürnberg
BEWERTUNG OSB
‣ Stärken: Wiederverwendung und Integration in eine SOA-Architektur, Integriertes
Monitoring
‣ Schwächen: Komplexe Infrastruktur: WLS, SOA, OSB
‣ Achtung: SOAP Services mit einer API- Fassade zu versehen könnte nicht überall bei
der Verwendung auf Gegenliebe stoßen
‣ Empfehlung
‣ SOA/ESB ist strategische Plattform für Enterprise Application Integration
‣ Bei Vorhandensein von SOA Suite, OSB, Knowhow
‣ Skills: OSB, JDeveloper, XSL, XPATH, SOAP, JSON/XML …
‣ Tools: JDeveloper
31
SOAP ist RPC Style, REST API ist Ressource -Style
34. DOAG 2015, Nürnberg
BEWERTUNGSMATRIX
34
weniger mehr
Infrastruktur und Produkt orientiert
ORDS NODE.JS Plain Java ADF OSB
Ansatz
SQL-PL/SQL -
Land
JavaScript-Land Java-Land
Java-4GL-
Framework-Land
SOA/EAI-Land
Beherrschbar-
keit
Gut Gut Gut Befriedigend Herausfordernd
Gewichtsklasse S M M L XXL
Werkzeug/Tool-
Kopplung
Hoch Niedrig Niedrig Hoch Hoch
Perspektive /
Evolution
Stark (Sehr) stark Mittel Partiell Partiell
Maxime
Das, was es
kann reicht uns,
später sehen wir
weiter !
Was immer wir
wollen, müssen/
können wir mit
JavaScript machen
Was immer wir
wollen, müssen/
können wir mit
Java machen
Wir wollen nicht
basteln, wir nutzen
Produktfunktionen,
um eine Lösungen
zu bauen.
Was immer da kommt, wir
können es in unsere
umfassende
Integrationsstrategie im
Unternehmen als
Baustein einfügen !
36. DOAG 2015, Nürnberg
FAZIT & AUSBLICK
‣ „Cloud und Mobile sprechen REST“
‣ REST-APIs verbessern die technische Architektur von
Softwaresystemen
‣ REST-APIs benötigen ggfs. andere Infrastrukturbausteine wie
Identity und Access Management oder ein API Management
Werkzeug.
‣ Kombinierte Architekturen sind ggfs. zielführender (NODE.JS und
ORDS, NODE.JS und Java, OSB und ADF)
‣ Allumfassendes strategisches Einheitskonzept war 1995
36
37. DOAG 2015, Nürnberg
WEITERE INFORMATIONEN
‣ Blog: JavaScript and Oracle
https://jsao.io/
‣ node.js und Oracle DB Driver
https://www.npmjs.com/package/oracledb
‣ node.js und Oracle DB Driver must read !
https://jsao.io/2015/09/connection-request-queuing-with-the-node-js-driver/
‣ REST API Design - Resource Modeling
https://www.thoughtworks.com/insights/blog/
rest-api-design-resource-modeling
37
40. Andreas Koop 40
NICHT VERPASSEN
Ulrich
Gerkmann Bartels
Agilität und Microservices als
Chance für Modernisierung?
—
Di, 17.11.2015
16:00 - 16:45
Stockholm
—
41. DOAG 2015, Nürnberg 41
Treffen Sie uns am Stand der scope alliance auf Ebene 1
Andreas
Koop
Ulrich
Gerkmann-Bartels