rollbase via de rest adapter koppelen met openedge
DESCRIPTION
Presentatie van Bronco Oostermeyer (Flusso) over de koppeling van Progress Rollbase met OpenEdge via de REST adapter. Deze presentatie werd gegeven tijdens één van de workshops van de PUG NL op 16 april 2014 Voor vragen en informatie kunt u contact opnemen via www.flusso.nlTRANSCRIPT
Rollbase OpenEdgeVia de REST adapter naar OpenEdge
PUG NL, 16-04-2014Bronco Oostermeyer
Introductie
{"speaker": [ { "id": 1, "voornaam": "Bronco", "achternaam": "Oostermeyer", "bedrijf": "Flusso" }]}
Agenda
- OpenEdge REST Adapter- Mobile Services- Koppeling vanuit Rollbase
OpenEdge REST adapter
• REST = Representational State Transfer• Architectuur, geen protocol• Zeker geen standaard
• In het kort• Datauitwisseling via HTTP• Data via JSON (JavaScript Object Notation)• Benaderbaar in iedere technologie• WebServices zonder de SOAP overhead
REST adapter - implementatie
Met PSDOE wordt een tomcat geïnstalleerd
REST Adapter – Servicetypes
• REST Services• GET: http://www.flusso.nl/pug/rest/pug/speaker/{:id}• Zeer flexibel• Relatief veel zelf doen
• Mobile Service• GET: http://www.flusso.nl/pug/rest/pug/speaker?filter=...• Standaard CRUD ondersteuning• Service contract via catalog• JSDO op clientside mogelijk• Nodig voor Rollbase
Mobile Services - vooraf
• PDSOE “verplicht”!• Neemt zeer veel werkuit handen• Zonder is eigenlijk niet te doen
Mobile services - flow
• Creëer dataset / temp-table include file• Creëer een Business Entity• Koppel de BE aan de Mobile Service• Publish• Testen
Mobile services - data
• Data first• Definitie (static!) temp-table of dataset in include
define temp-table ttspeaker no-undo before-table btspeaker field id as integer field voornaam as character field achternaam as character field bedrijf as character . define dataset dsspeaker for ttspeaker.
Mobile services – Business Entity
• Creeer Business Entity• Bevat methods die door de REST Adapter worden aangesproken
Mobile services – Business Entity (2)
Mobile services – Business Entity (3)
@program FILE(name="SpeakerBE.cls", module="AppServer")[email protected] FILE(type="REST", executionMode="singleton", useReturnValue="false", …)[email protected] FILE(name="SpeakerBE", URI="/speaker",
schemaName="dsspeaker", schemaFile="PUG/AppServer/pug/data/dsspeaker.i").
class pug.logic.SpeakerBE: …
@openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false")[email protected](type="REST", operation="read", URI="?filter=~{filter~}",
alias="", mediaType="application/json"). method public void ReadSpeakerBE(filter as character, output dataset dsspeaker):end method.
Class definitie:
Lees method:
En de methods: CreateSpeakerBE, UpdateSpeakerBE & DeleteSpeakerBE
Mobile services – Service
Mobile services – Resultaat
• Catalog file (PUG.json)• In WebContent map (PDSOE project)• Service definities: path, operations• Data definities
• WAR file (PUG.war)• Web Archive (ZIP voor Tomcat)• Wordt in PDSOE automatisch
gepublished• <oe-install>\servers\tomcat\pdsoe
Mobile Services - Testen
• Via HTTP testtool (Postman in Chrome, RESTClient in Firefox)• Mogelijkheid om te bekijken/beinvloeden wat er exact plaatsvindt• Aparte testcases (HTTP OE)
• GET Read• POST Create• PUT Update• DELETE Delete
• Fiddler• Inzicht!
Rollbase/OE – high over architectuur
PUG.json
JSDOhttp://www.flusso.nl/pug/rest/pug/speaker
AppServer
REST Adapter
PUG.war
Rollbase
JSDO
JavaScript Data Object (progress.js)• verzorgt communicatie naar de AppServer• CRUD• Invoke
• Werkt samen met progress.session.js• Local data store• Data handling methods (foreach!)• Bruikbaar voor Mobile Apps, Rollbase en … “standard” websites
Rollbase – OpenEdge adapter
Rollbase – OpenEdge adapter (2)
Rollbase – OpenEdge adapter (3)
Rollbase – OpenEdge adapter (4)
Maar…
• Relaties tussen (OE) objecten in Rollbase nog niet mogelijk (volgende RB release?)• REST/Mobile services bieden nog geen ondersteuning Before Image informatie (11.4?)• Mobile / REST: twee verschillende werkwijzes (potentieel dubbel werk)
“to do”
• PDSOE project inrichting• Authentication• Deployment
Vragen?
Volg ons op:
Links
• http://www.progress.com/news-and-events/events/exchange-2013-presentation-download-center• Track 1 & 2
• http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm (academisch)
• http://www.infosupport.com/RESTful_Webservices_Paul_Bakker (praktisch)