REST IN PEACE MIT ORACLE ORDS, NODE.JS, ADF, JAVA ODER OSB Ulrich Gerkmann-Bartels und Andreas Koop
ÜBER UNS Ulrich Gerkmann-Bartels Geschäftsführung und Consulting Andreas Koop Geschäftsführung und Consultant Beratung, Training Oracle Technologie ADF Certified Implementation Specialist Professional Scrum Master isaqb CPSA-F zertifiziert Community DOAG, ADF EMG, ADF German Community, Google Plus Twitter @andreaskoop @gerkmannbartels @enpit Blog News - http://www.enpit.de/blog Technical (english) - http://multikoop.blogspot.com 2
ENTERPRISE PRAGMATIC IT
AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS, ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 4
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
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
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
AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS, ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 8
DEMO JavaScript - Client
DEMO API Design - Swagger
ARCHITEKTUR Service Layer Business Rules / Logic / Process Layer Data Access Layer Data Store Layer Client Layer React HTMLJSCSS Client Node.js + Oracle Driver ORDS + WLS / Tomcat / Jetty WLS + JEE7+ ADF WLS + JEE7 + OSB + SOAP WebService Oracle Database Oracle Jet HTMLJSCSS Client WLS + JEE7 11
AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS, ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 12
DEMO REST mit ORDS
ORDS ARCHITEKTUR Abbildung und Routing von SQL und Transformation des Ergebnisses SQL/PL-SQL - Land Service Layer Data Access Layer Business Rules / Logic / Process Layer Data Store Layer Client Layer React HTMLJSCSS Client Oracle Jet HTMLJSCSS Client ORDS + WLS / Tomcat / Jetty Oracle Database / NoSQL 14
BEWERTUNG ORDS Stärken: Sehr einfach für CRUD und Abfragen von Daten Schwächen: Modifikation des Request/Responce - Zyklus Empfehlung RESTenable klassische Oracle Infrastruktur ohne weiteren Technology-Stack, Mobile Cloud Service Skills: Oracle SQL & PL/SQL, JSON, XML Tools: SQL Developer 15
DEMO REST mit NODE.JS
NODE.JS & ORACLE DB DRIVER ARCHITEKTUR JavaScript - Land Service Layer Business Rules / Logic / Process Layer Data Access Layer Data Store Layer? Client Layer React HTMLJSCSS Client Oracle Jet HTMLJSCSS Client Node.js + Oracle Driver Oracle Database 17
BEWERTUNG NODE.JS & ORACLE DB DRIVERS 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 18
EMPFEHLUNG NODE.JS & ORACLE DB DRIVERS Orawrap is a wrapper module for the Oracle Database driver for Node.js (node-oracledb). 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. https://github.com/oraopensource/orawrap 19
DEMO REST mit ADF
ORACLE ADF (12.2.1+) ARCHITEKTUR Java-4GL-Framework-Land Service Layer Business Rules / Logic / Process Layer Data Access Layer Data Store Layer Client Layer WLS ud Oracle ADF Oracle Database ADF / MAF REST DataControl HTTP(S)/ REST REST- Service (generiert) ADF BC ApplicationModu le ADF BC VO EO 21
BEWERTUNG ORACLE ADF Stärken: Out-of-The Box, inkl. Metadaten, XML/JSON, Paginierung bei Collections, RESTDataControl Schwächen: Anpassbarkeit Empfehlung Bei Vorhandensein von ADF Business Components Skills: Java, ADF, JSON/XML, SQL, ggf. PL/SQL Tools: JDeveloper 22
DEMO REST mit Plain Java
PLAIN JAVA ARCHITEKTUR Java - Land Service Layer Business Rules / Logic / Process Layer Data Access Layer Data Store Layer Client Layer Application Server Oracle Database REST Resource @EJB Service EJB JPA 24
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) 25
DEMO REST mit OSB
ORACLE OSB ARCHITEKTUR Enterprise-SOA/EAI-WebService-Land Service Layer Business Rules / Logic / Process Layer Data Access Layer Data Store Layer Client Layer WLS ud Oracle OSB Oracle Database 27
BEWERTUNG OSB Stärken: Schwächen: Komplexe Infrastruktur Hinweis: 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, JSON/XML Tools: JDeveloper 28
AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS, ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 29
BEWERTUNGSMATRIX Ansatz ORDS NODE.JS Plain Java ADF OSB SQL-PL/SQL - Land JavaScript-Land Java-Land Java-4GL- Framework-Land SOA/EAI-Land Gut Gut Gut Befriedigend Herausfordernd Gewichtsklasse S M M L XXL Beherrschbarkeit 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 JavaScript machen Wir wollen nicht basteln, wir nutze Produktfunktionen, um meine Lösungen zu bauen. Was immer da kommt, wir können es in unsere umfassende Integrationsstrategie im Unternehmen als Baustein einfügen! weniger Infrastruktur und Produkt orientiert 31 mehr
AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS, ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 32
FAZIT & AUSBLICK Cloud und Mobile sprechen REST REST-APIs verbessern die technische Architektur von Softwaresystemen REST-APIs benötigt 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) Allumfassende Einheitskonzept/-technologie Strategie war 1995 33
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/ 34
WEITERE INFORMATIONEN REST API Design - Resource Modeling https://www.thoughtworks.com/insights/blog/rest-api-design-resource-modeling Blog (enpit experience) http://multikoop.blogspot.de/.todo 35
BASIS LITERATUR 36
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT HABEN SIE NOCH FRAGEN?
NICHT VERPASSEN Agilität und Microservices als Chance für Modernisierung? Di, 18.11.2015 16:00-16:45 Stockholm Ulrich Gerkmann Bartels Andreas Koop 38
SPRECHEN SIE UNS AN 39