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

935 Aufrufe

Veröffentlicht am

Presentation on different programming styles for creating RESTful Service. Talk was held at DOAG 2015

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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

  1. 1. DOAG 2015, Nürnberg Ulrich Gerkmann-Bartels und Andreas Koop REST IN PEACE MIT ORACLE ORDS, NODE.JS, ADF, JAVA ODER OSB
  2. 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
  3. 3. ENTERPRISE PRAGMATIC IT
  4. 4. DOAG 2015, Nürnberg AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 4
  5. 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. 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. 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
  8. 8. HATEOS DEMO
  9. 9. DOAG 2015, Nürnberg AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 9
  10. 10. JavaScript - Client DEMO
  11. 11. API Design - Swagger DEMO
  12. 12. 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
  13. 13. DOAG 2015, Nürnberg AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 13
  14. 14. REST mit ORDS DEMO
  15. 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. 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
  17. 17. REST mit NODE.JS DEMO
  18. 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. 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. 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. 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
  22. 22. DOAG 2015, Nürnberg 22 REST mit ADF DEMO
  23. 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
  24. 24. 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
  25. 25. DEMO REST mit Plain Java
  26. 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. 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. 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
  29. 29. DEMO REST mit OSB
  30. 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. 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
  32. 32. DOAG 2015, Nürnberg AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 32
  33. 33. 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 !
  34. 34. DOAG 2015, Nürnberg AGENDA Einleitung Architektur Showcase: ORDS, NODE.JS , ADF, Plain Java, OSB Bewertungsmatrix Fazit und Ausblick 35
  35. 35. 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
  36. 36. 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
  37. 37. DOAG 2015, Nürnberg BASIS LITERATUR 38
  38. 38. VIELEN DANK FÜR IHRE AUFMERKSAMKEIT HABEN SIE NOCH FRAGEN?
  39. 39. 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 —
  40. 40. DOAG 2015, Nürnberg 41 Treffen Sie uns am Stand der scope alliance auf Ebene 1 Andreas
 Koop Ulrich Gerkmann-Bartels

×