Inside the JSDO: Mobile and Web Shelley Chase, Senior
Architect, Progress [email protected] November 2014
Slide 2
2014 Progress Software Corporation. All rights reserved. 2 1 2
34 5 JSDO JSDO Services Templates Deployment Other Web UI
Frameworks Inside The JSDO: Mobile and Web
Slide 3
2014 Progress Software Corporation. All rights reserved. 3 1
JSDO Inside The JSDO: Mobile and Web
Slide 4
2014 Progress Software Corporation. All rights reserved. 4 JSDO
Progress JavaScript Data Object Client-side object Manages session
connections Dataset (ProDataSet-like) purposed for disconnected
clients Communicates using REST in XMLHttpRequest Session
management Anonymous, Basic and Form Offline/ Online events in the
Session object An instance of Cloud Data Object Open source Generic
specification and catalog definition Any client, any
datasource
Slide 5
2014 Progress Software Corporation. All rights reserved. 5 JSDO
with OpenEdge and Rollbase (and node.js, ) Access to the OpenEdge
AppServer Business Entity - Dataset or Temp-table CRUD operations
(Create, Read, Update, Delete) Invoke Submit JSON Before-Image
support Access to Rollbase Server Objects and Views Table only CRUD
operations (Create, Read, Update, Delete) Invoke (gets View
data)
Slide 6
2014 Progress Software Corporation. All rights reserved. 6
Runtime Architecture for OpenEdge Mobile Client-side App resides on
device OE DB *. html *. js Internet HTTP (REST / JSON) Business
Entity JSDO-BE Mapping JSDO ABL Header Data Detail Data Other Data
Header Data Detail Data Other Data Mobile DeviceWeb Server OpenEdge
AppServer PO ProDataSet Server-side n-tier architecture with
Business Logic and data
Slide 7
2014 Progress Software Corporation. All rights reserved. 7
OpenEdge Mobile Services: Business Entity Progress Developer Studio
Express Project Wizard Business Entity Wizard Types Read-only CRUD
CRUD + Submit JSON Before-Image support Automatically adds mobile
annotations Progress.BusinessLogic.Business Entity Dataset or
Temp-table schema You can also annotate existing code (persistent
procedure or class)
Slide 8
2014 Progress Software Corporation. All rights reserved. 8
Express Project Wizard: Database Table
Slide 9
2014 Progress Software Corporation. All rights reserved. 9
Business Entity Wizard: Database Table or ProDataSet/
Temp-table
Slide 10
2014 Progress Software Corporation. All rights reserved. 10
Business Entity Generated Class
Slide 11
2014 Progress Software Corporation. All rights reserved. 11
Business Entity Invoke Methods
Slide 12
2014 Progress Software Corporation. All rights reserved. 12
Runtime Deployment OpenEdge AppServer
Slide 13
2014 Progress Software Corporation. All rights reserved. 13
Runtime Deployment OpenEdge Web Server (Tomcat)
Slide 14
2014 Progress Software Corporation. All rights reserved. 14
Create, Read, Update, Delete + INVOKE + SUBMIT CRUD + I + S POST
GET PUT DELETE PUT Works on a schema: Array [ ] Temp-Table {
ttCustomer: [ ] } DataSet { dsCustomer: { ttCustomer: [ ] } DataSet
(Complex) { dsCustomer: { ttCustomer: [ ], ttOrder: [ ] } /method
path:
Slide 15
2014 Progress Software Corporation. All rights reserved. 15
JSDO Catalog
Slide 16
2014 Progress Software Corporation. All rights reserved. 16
JSDO Catalog
Slide 17
2014 Progress Software Corporation. All rights reserved. 17
JSDO Catalog
Slide 18
2014 Progress Software Corporation. All rights reserved. 18
JSDO Catalog
Slide 19
2014 Progress Software Corporation. All rights reserved. 19
JSDO Catalog
2014 Progress Software Corporation. All rights reserved. 22
JSDO Using the JSDO session = new progress.data.Session();
session.login(, "", ""); session.addCatalog( ); jsdo = new
progress.data.JSDO({ name: 'dsCustomer' });
jsdo.subscribe('AfterFill', onAfterFillCustomers, this);
jsdo.fill(); progress.jsdo.3.0.js Progress.data.Session
Progress.data.JSDO Included in Mobile App projects
Slide 23
2014 Progress Software Corporation. All rights reserved. 23
JSDO
Slide 24
2014 Progress Software Corporation. All rights reserved. 24 1
JSDO Benefits Leverage Existing Business Logic Inside The JSDO:
Mobile and Web
Slide 25
2014 Progress Software Corporation. All rights reserved. 25 1 2
JSDO JSDO Services Inside The JSDO: Mobile and Web
Slide 26
2014 Progress Software Corporation. All rights reserved. 26
JSDO Services Generated from JSDO Catalog Access to the JSDO from
the Mobile App Builder JSDO - create object CRUD operations Create
Read Update Delete Row like buffer in ABL Invoke operations Custom
business logic
Slide 27
2014 Progress Software Corporation. All rights reserved. 27 Use
JSDO Service for Visual Data Mapping
Slide 28
2014 Progress Software Corporation. All rights reserved. 28
Create JSDO Service from Catalog
Slide 29
2014 Progress Software Corporation. All rights reserved. 29 Add
JSDO Services to UI
Slide 30
2014 Progress Software Corporation. All rights reserved. 30
Drag-n-drop Data mapping
Slide 31
2014 Progress Software Corporation. All rights reserved. 31
JSDO Services
Slide 32
2014 Progress Software Corporation. All rights reserved. 32 1 2
JSDO JSDO Services Benefits Leverage Existing Business Logic Visual
Mapping Inside The JSDO: Mobile and Web
Slide 33
2014 Progress Software Corporation. All rights reserved. 33 1 2
3 JSDO JSDO Services Templates Inside The JSDO: Mobile and Web
Slide 34
2014 Progress Software Corporation. All rights reserved. 34
Templates Project Templates Phone App / Tablet App Session-enabled
Phone App / Tablet App Express Project UIHelper (dynamic data
binding) JSDO Services (generated data mapping) Screen Templates
Reusable UI, corporate look and feel, logos Custom Components
Reusable UI and behavior
Slide 35
2014 Progress Software Corporation. All rights reserved. 35
UIHelper UI based on HTML (listviews built using + ) JQuery Mobile
JQuery Mobile using the Mobile App Builder JavaScript + HTML
Slide 36
2014 Progress Software Corporation. All rights reserved. 36
UIHelper Using the UIHelper session = new progress.data.Session();
session.login(, "", ""); session.addCatalog( ); jsdo = new
progress.data.JSDO({ name: 'dsCustomer' });
jsdo.subscribe('AfterFill', onAfterFillCustomers, this); uihelper =
new progress.ui.UIHelper({ jsdo: jsdo }); uihelper.setDetailPage({
name: "custdetail }); uihelper.setListView({ name: 'listview',
format: '{CustNum} {Name} {State} {Country}', autoLink: true } );
jsdo.fill();
Slide 37
2014 Progress Software Corporation. All rights reserved. 37
Templates
Slide 38
2014 Progress Software Corporation. All rights reserved. 38 1 2
3 JSDO JSDO Services Templates Benefits Leverage Existing Business
Logic Visual Mapping Increase Productivity, Quicker Time to Market
Inside The JSDO: Mobile and Web
Slide 39
2014 Progress Software Corporation. All rights reserved. 39 1 2
34 JSDO JSDO Services Templates Other Web UI Frameworks Inside The
JSDO: Mobile and Web
Slide 40
2014 Progress Software Corporation. All rights reserved. 40
Other Web UI Frameworks Web Angular.js Sencha Touch Telerik Kendo
UI Knockout.js Qooxdoo Dojo Toolkit
Slide 41
2014 Progress Software Corporation. All rights reserved. 41
Other Web Frameworks Server side uses Node.js XMLHttpRequest =
require("./XMLHttpRequest.js").XMLHttpRequest;
require("./progress.jsdo.3.0.js"); session = new
progress.data.Session(); session.login(, "", "");
session.addCatalog( ); jsdo = new progress.data.JSDO({ name:
'dsCustomer' }); jsdo.subscribe('AfterFill', onAfterFillCustomers,
this); jsdo.fill(); function onAfterFillCustomers(jsdo, success,
request) { jsdo.eCustomer.foreach(function(customer) {
console.log(jsdo.eCustomer.Name); }); }
Slide 42
2014 Progress Software Corporation. All rights reserved. 42
Other Web Frameworks
Slide 43
2014 Progress Software Corporation. All rights reserved. 43 1 2
34 JSDO JSDO Services Templates Other Web UI Frameworks Benefits
Leverage Existing Business Logic Visual Mapping Increase
Productivity, Quicker Time to Market Flexible Inside The JSDO:
Mobile and Web
Slide 44
2014 Progress Software Corporation. All rights reserved. 44 1 2
34 5 JSDO JSDO Services Templates Deployment Other Web UI
Frameworks Inside The JSDO: Mobile and Web
Slide 45
2014 Progress Software Corporation. All rights reserved. 45
Deployment
Slide 46
2014 Progress Software Corporation. All rights reserved. 46
Deployment
Slide 47
2014 Progress Software Corporation. All rights reserved. 47
Deployment
Slide 48
2014 Progress Software Corporation. All rights reserved. 48
Deployment
Slide 49
2014 Progress Software Corporation. All rights reserved. 49
Deployment
Slide 50
2014 Progress Software Corporation. All rights reserved. 50
Deployment
Slide 51
2014 Progress Software Corporation. All rights reserved. 51 1 2
34 5 JSDO JSDO Services Templates Deployment Other Web UI
Frameworks Benefits Leverage Existing Business Logic Visual Mapping
Increase Productivity, Quicker Time to Market Flexible Write Once,
Deploy Everywhere Inside The JSDO: Mobile and Web
Slide 52
2014 Progress Software Corporation. All rights reserved. 52
Leverage Existing Business Logic Visual Mapping Increase
Productivity, Quicker Time to Market Flexible Write Once, Deploy
Everywhere Benefits 1 2 34 5 JSDO JSDO Services Templates
Deployment Other Web UI Frameworks Inside The JSDO: Mobile and
Web
Slide 53
Extra Resources Search Rollbase documentation:
http://documentation.progress.com/output/Rollbase/index.html Search
the Community: OpenEdge 11.4 Production Documentation Mobile App
Builder documentation: http://docs.mobile.rollbase.com/ JSDO
Examples: http://oemobiledemo.progress.com/jsdo/example001.html
http://oemobiledemo.progress.com/jsdo/example007.html
Slide 54
Write Once, Run Anywhere Portability with the Benefits of
Native Applications and Web The Easiest Way to Build OpenEdge and
Rollbase Applications Supporting Mobile Devices, End-to- end