Inside the JSDO: Mobile and Web Shelley Chase, Senior Architect, Progress [email protected] November 2014

Embed Size (px)

Citation preview

  • Slide 1
  • 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
  • Slide 20
  • 2014 Progress Software Corporation. All rights reserved. 20 JSDO Progress JavaScript Data Object CRUD + Invoke + Submit add( ) (CREATE) fill( )(READ) assign( )(UPDATE) remove( ) (DELETE) method( )(INVOKE) saveChanges( ) (SUBMIT) Properties autoSort autoApplyChanges caseSensitive name record useRelationships Methods addRecords( ) acceptChanges( ), rejectChanges( ) find( ) findById( ) foreach( ) getData( ) getId( ) getSchema( ) sort( ) subscribe( ) unsubscribe( )
  • Slide 21
  • 2014 Progress Software Corporation. All rights reserved. 21 JSDO Operation Mapping OE Web Server OpenEdge AppServer fill( ) Customers.cls Mobile App Invoke operation Submit operation Update operation Create operation Read operation remove( ) save Changes( ) getCreditHistory( ) assign( ) saveChanges( ) add( ) saveChanges( ) Delete operation Read/Delete/Create Customers( ) GetCreditHistory( ) UpdateCustomers( ) CreateCustomers( ) DeleteCustomers( ) ReadCustomers( ) Customer Catalog Customer JSDO JSDO Customer Order Invoke operation getOrderHistory( ) GetOrderHistory( )
  • Slide 22
  • 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
  • Slide 55