rest in peace - mit ords, node.js, adf, java oder osb?
TRANSCRIPT
![Page 1: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/1.jpg)
DOAG 2015, Nürnberg
Ulrich Gerkmann-Bartels und
Andreas Koop
REST IN PEACE MIT ORACLE ORDS, NODE.JS, ADF, JAVA ODER OSB
![Page 2: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/2.jpg)
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
![Page 3: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/3.jpg)
ENTERPRISE PRAGMATIC IT
![Page 4: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/4.jpg)
DOAG 2015, Nürnberg
AGENDA
Einleitung
Architektur
Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB
Bewertungsmatrix
Fazit und Ausblick
4
![Page 5: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/5.jpg)
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
![Page 6: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/6.jpg)
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
![Page 7: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/7.jpg)
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
![Page 8: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/8.jpg)
HATEOSDEMO
![Page 9: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/9.jpg)
DOAG 2015, Nürnberg
AGENDA
Einleitung
Architektur
Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB
Bewertungsmatrix
Fazit und Ausblick
9
![Page 10: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/10.jpg)
JavaScript - ClientDEMO
![Page 11: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/11.jpg)
API Design - SwaggerDEMO
![Page 12: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/12.jpg)
DOAG 2015, Nürnberg
ARCHITEKTUR
12
Data Store Layer
Business Rules / Logic / Process
Layer
Service Layer
Client Layer
Data Access Layer
React HTMLJSCSS
Client
Node.js + Oracle Driver
ORDS + WLS / Tomcat / Jetty
WLS + JEE7+ ADF
WLS + JEE7
WLS + JEE7 + OSB + SOAP WebService
Oracle Database
Oracle Jet HTMLJSCSS
Client
![Page 13: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/13.jpg)
DOAG 2015, Nürnberg
AGENDA
Einleitung
Architektur
Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB
Bewertungsmatrix
Fazit und Ausblick
13
![Page 14: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/14.jpg)
REST mit ORDSDEMO
![Page 15: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/15.jpg)
DOAG 2015, Nürnberg
ORDS ARCHITEKTUR
15
Data Store LayerBusiness 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
![Page 16: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/16.jpg)
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
![Page 17: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/17.jpg)
REST mit NODE.JSDEMO
![Page 18: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/18.jpg)
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
![Page 19: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/19.jpg)
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
![Page 20: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/20.jpg)
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.
![Page 21: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/21.jpg)
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 einesRESTWebService- Projektes
‣ Mehrversionsfähig-keit out-of-the-box
21
![Page 22: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/22.jpg)
DOAG 2015, Nürnberg 22
REST mit ADFDEMO
![Page 23: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/23.jpg)
DOAG 2015, Nürnberg
ORACLE ADF (12.2.1+) ARCHITEKTUR
23
Data Store LayerBusiness 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 BCApplicationModu
leHTTP(S)/
RESTADF BC
VOEO
Oracle Database
![Page 24: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/24.jpg)
DOAG 2015, Nürnberg
BEWERTUNG ORACLE ADF‣ Stärken: Out-of-The Box, inkl. Metadaten, XML/JSON,
Paginierung bei Collections, RESTDataControl
‣ Schwächen: Anpassbarkeit, Freiheitsgrad
‣ Empfehlung
‣ Bei Vorhandensein von ADF Business Components
‣ Skills: Java, ADF, JSON/XML, SQL, ggf. PL/SQL
‣ Tools: JDeveloper
24
![Page 25: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/25.jpg)
DEMOREST mit Plain Java
![Page 26: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/26.jpg)
DOAG 2015, Nürnberg
PLAIN JAVA ARCHITEKTUR
26
Data Store LayerBusiness Rules
/ Logic / Process Layer
Service Layer
Oracle Database
Java - Land
Application Server
Client Layer
Data Access Layer
REST Resource
@EJB ServiceEJB JPA
Oracle Database
![Page 27: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/27.jpg)
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
![Page 28: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/28.jpg)
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
![Page 29: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/29.jpg)
DEMOREST mit OSB
![Page 30: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/30.jpg)
DOAG 2015, Nürnberg
ORACLE OSB ARCHITEKTUR
30
Data Store LayerBusiness 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
![Page 31: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/31.jpg)
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
![Page 32: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/32.jpg)
DOAG 2015, Nürnberg
AGENDA
Einleitung
Architektur
Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB
Bewertungsmatrix
Fazit und Ausblick
32
![Page 33: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/33.jpg)
![Page 34: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/34.jpg)
DOAG 2015, Nürnberg
BEWERTUNGSMATRIX
34
weniger mehrInfrastruktur und Produkt orientiert
ORDS NODE.JS Plain Java ADF OSBAnsatz 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
MaximeDas, 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 !
![Page 35: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/35.jpg)
DOAG 2015, Nürnberg
AGENDA
Einleitung
Architektur
Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB
Bewertungsmatrix
Fazit und Ausblick
35
![Page 36: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/36.jpg)
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
![Page 37: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/37.jpg)
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
![Page 38: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/38.jpg)
DOAG 2015, Nürnberg
BASIS LITERATUR
38
![Page 39: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/39.jpg)
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT
HABEN SIE NOCH FRAGEN?
![Page 40: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/40.jpg)
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
—
![Page 41: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/41.jpg)
DOAG 2015, Nürnberg 41
Treffen Sie uns am Stand der scope alliance auf Ebene 1
AndreasKoop
Ulrich Gerkmann-Bartels
![Page 42: REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?](https://reader036.vdocuments.pub/reader036/viewer/2022062306/58ee669a1a28abcb798b45db/html5/thumbnails/42.jpg)