rollbase via de rest adapter koppelen met openedge

Post on 29-Jun-2015

90 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

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.nl

TRANSCRIPT

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").@openapi.openedge.export FILE(type="REST", executionMode="singleton", useReturnValue="false", …).@progress.service.resource 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").@progress.service.resourceMapping(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)

top related