rollbase via de rest adapter koppelen met openedge

26
Rollbase OpenEdge Via de REST adapter naar OpenEdge PUG NL, 16-04- 2014 Bronco Oostermeyer

Upload: joris-kroes

Post on 29-Jun-2015

90 views

Category:

Software


2 download

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

Page 1: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase OpenEdgeVia de REST adapter naar OpenEdge

PUG NL, 16-04-2014Bronco Oostermeyer

Page 2: Rollbase via de REST adapter koppelen met OpenEdge

Introductie

{"speaker": [ { "id": 1, "voornaam": "Bronco", "achternaam": "Oostermeyer", "bedrijf": "Flusso" }]}

Page 3: Rollbase via de REST adapter koppelen met OpenEdge

Agenda

- OpenEdge REST Adapter- Mobile Services- Koppeling vanuit Rollbase

Page 4: Rollbase via de REST adapter koppelen met OpenEdge

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

Page 5: Rollbase via de REST adapter koppelen met OpenEdge

REST adapter - implementatie

Met PSDOE wordt een tomcat geïnstalleerd

Page 6: Rollbase via de REST adapter koppelen met OpenEdge

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

Page 7: Rollbase via de REST adapter koppelen met OpenEdge

Mobile Services - vooraf

• PDSOE “verplicht”!• Neemt zeer veel werkuit handen• Zonder is eigenlijk niet te doen

Page 8: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services - flow

• Creëer dataset / temp-table include file• Creëer een Business Entity• Koppel de BE aan de Mobile Service• Publish• Testen

Page 9: Rollbase via de REST adapter koppelen met OpenEdge

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.

Page 10: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Business Entity

• Creeer Business Entity• Bevat methods die door de REST Adapter worden aangesproken

Page 11: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Business Entity (2)

Page 12: Rollbase via de REST adapter koppelen met OpenEdge

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

Page 13: Rollbase via de REST adapter koppelen met OpenEdge

Mobile services – Service

Page 14: Rollbase via de REST adapter koppelen met OpenEdge

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

Page 15: Rollbase via de REST adapter koppelen met OpenEdge

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!

Page 16: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase/OE – high over architectuur

PUG.json

JSDOhttp://www.flusso.nl/pug/rest/pug/speaker

AppServer

REST Adapter

PUG.war

Rollbase

Page 17: Rollbase via de REST adapter koppelen met OpenEdge

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

Page 18: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter

Page 19: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter (2)

Page 20: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter (3)

Page 21: Rollbase via de REST adapter koppelen met OpenEdge

Rollbase – OpenEdge adapter (4)

Page 22: Rollbase via de REST adapter koppelen met OpenEdge

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)

Page 23: Rollbase via de REST adapter koppelen met OpenEdge

“to do”

• PDSOE project inrichting• Authentication• Deployment

Page 24: Rollbase via de REST adapter koppelen met OpenEdge

Vragen?

Page 25: Rollbase via de REST adapter koppelen met OpenEdge

Volg ons op:

Page 26: Rollbase via de REST adapter koppelen met OpenEdge

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)