REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?

42
DOAG 2015, Nürnberg Ulrich Gerkmann-Bartels und Andreas Koop REST IN PEACE MIT ORACLE ORDS, NODE.JS, ADF, JAVA ODER OSB

Transcript of REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?

Page 1: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

ENTERPRISE PRAGMATIC IT

Page 4: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

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?

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?

HATEOSDEMO

Page 9: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

JavaScript - ClientDEMO

Page 11: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

API Design - SwaggerDEMO

Page 12: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

REST mit ORDSDEMO

Page 15: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

REST mit NODE.JSDEMO

Page 18: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

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?

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?

DOAG 2015, Nürnberg 22

REST mit ADFDEMO

Page 23: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

DEMOREST mit Plain Java

Page 26: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

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?

DEMOREST mit OSB

Page 30: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

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?
Page 34: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?

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?

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?

DOAG 2015, Nürnberg

BASIS LITERATUR

38

Page 39: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

VIELEN DANK FÜR IHRE AUFMERKSAMKEIT

HABEN SIE NOCH FRAGEN?

Page 40: REST in Peace  - Mit ORDS, Node.JS, ADF, Java oder OSB?

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?

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?