Introducing OpenEdge Mobile June 2014 Shelley Chase, Senior Architect, Progress Mobile Apps are Essential for Businesses Today Gartner: Mobile Trends and Issues From 2013 to 2016 2 Gartner Recommends a Hybrid Approach for Business-to-Employee Mobile Apps …mobility is also the best opportunity for genuine business innovation that most companies will see this decade. HTML5-based web apps and native apps, will be used in more than 50 percent of mobile apps by 2016 27 March 2013 "Predicts 2013: Portal and Web Technologies." © 2013 Progress Software Corporation. All rights reserved. Mobile Devices and Apps Mobile Devices • Tablets and smart phones • Devices that combine telephony and computing • Screen sizes vary from 3 inches to over 10 inches • Most high end devices have multiple cores and large amounts of RAM Mobile Apps (Software applications) • Utilities: e-mail, calendar • Time wasters: Facebook, Angry Birds • Business Apps for employees • Business Apps for B2C 3 © 2013 Progress Software Corporation. All rights reserved. Mobile App Development – Challenges OS fragmentation • Different development environments Windows 5% Others 2% • Different programming languages • Duplicate codebase iOS 41% Market demand • Rapid App Development (RAD) imperative • Critical offering in today's pressing competition • Frequent updates; short shelf life Integration with disparate backend systems • Access existing systems and data sources • Manage changes to backend systems 4 © 2013 Progress Software Corporation. All rights reserved. Android 52% iOS Android Windows Others OpenEdge Mobile 6 © 2013 Progress Software Corporation. All rights reserved. Mobile Applications in OpenEdge: Dual Approach OpenEdge REST Adapter • Loosely-coupled architecture • Any client • Define Service Interface using annotations • HTTP/JSON OpenEdge Mobile • Tightly-coupled architecture - prescriptive • Mobile App Builder using jQuery Mobile and Cordova • Business Entity support as well as service interface annotations • HTTP/JSON but prescriptive content 7 © 2013 Progress Software Corporation. All rights reserved. OpenEdge Mobile Value Proposition • Write Once, Run Anywhere Portability with the Benefits of Native Applications. The Easiest Way to Build an OpenEdge Application Supporting Mobile Devices, End-to-end Benefits • A comprehensive and integrated tool set with support for a wide variety of devices • Mobile UI development is cloud-based, so collaboration among the development team, business analysts and with end users is fully supported • Leverage existing business logic, the OpenEdge AppServer and OE database 8 © 2013 Progress Software Corporation. All rights reserved. Types of Mobile Apps 9 © 2013 Progress Software Corporation. All rights reserved. Requirements for Android Native App Development Need to learn Java Need Java development environment (free ones available) App review more relaxed than Apple Large variation of OS versions and customizations by device vendors • A lot of devices in use with old versions 10 © 2013 Progress Software Corporation. All rights reserved. Requirements for Native App Development Development must be done using Mac OSX Need to learn Objective-C Need a developer subscription iOS UI can change drastically across releases Controlled distribution: • Every app is reviewed by Apple — even updates 11 © 2013 Progress Software Corporation. All rights reserved. OpenEdge Mobile Apps = “The Best Of Both Worlds” Hybrid App (Native Wrapper + Web App) • Standards-based solution • Write the UI code once, deploy to multiple devices • Native container provides support for App Store and HTML5 limitations By 2015, 80% of all mobile web applications developed will be hybrid or mobile web. Gartner 2012: Magic Quadrant for Mobile Consumer Application Platforms 12 © 2013 Progress Software Corporation. All rights reserved. • Flexible deployment options of both Web App and Hybrid App • No need to learn device-specific languages or development environments OpenEdge Mobile in Action 13 © 2013 Progress Software Corporation. All rights reserved. Development: Integrated Development Environment Developer Studio for OE • Define and build Mobile services • JavaScript Data Object (JSDO) catalog • Deploy Mobile services and Mobile Web Apps • Run in emulator 14 © 2013 Progress Software Corporation. All rights reserved. Mobile App Builder • Drag-n-drop UI designer • Tight data binding to OE data using JSDO • Export mobile apps for deployment • Integrated emulator Progress Developer Studio for OpenEdge: Express Mobile App Select a database table Automatic check of system configuration Wait while App is built and deployed • Fully functional CRUD Mobile App with login screen 15 © 2013 Progress Software Corporation. All rights reserved. Developing a Custom Mobile App Step 1 Define OE services 1. 2. 3. 4. 16 Step 2 Build UI Step 3 Step 4 Bind data and UI Define OE services (Business Entities) in Progress Developer Studio for OpenEdge Build UI in cloud-based Mobile App Builder Import OE services to Mobile App Builder and map data to UI Finally build and deploy as native or mobile web app © 2013 Progress Software Corporation. All rights reserved. Build and deploy Step 1: Define Mobile Service CRUD operations Invoke operations Mobile Resources • Create Business Entity classes • or annotate existing code Deploy / publish 17 © 2013 Progress Software Corporation. All rights reserved. Step 2: Build the UI 23 © 2013 Progress Software Corporation. All rights reserved. Step 3: Bind Data and UI JavaScript Data Object (JSDO) • Simplifies interaction with REST Services • Client-side data set • Support for CRUD and invoke operations • Handles connection and communication • Session management built-in JSDO Customer Order 27 © 2013 Progress Software Corporation. All rights reserved. Use JSDO Service for Visual Data Mapping 28 © 2013 Progress Software Corporation. All rights reserved. Create JSDO Service from Catalog 29 © 2013 Progress Software Corporation. All rights reserved. Add JSDO Services to UI 30 © 2013 Progress Software Corporation. All rights reserved. Drag-n-drop Data mapping 31 © 2013 Progress Software Corporation. All rights reserved. Step 4: Build and Deploy Step 1: Generate Mobile Web App (HTML, CSS, JS) Step 2: Wrap code in Phonegap Step 3: Build native app using SDKs 32 © 2013 Progress Software Corporation. All rights reserved. Build and Deploy – Mobile Web App Generates files for App Test in cloud or copy files local to PDSOE • 33 Deploy Mobile Web App to OE Web Server © 2013 Progress Software Corporation. All rights reserved. Build and Deploy– Native App Generates files for App Creates PhoneGap project 34 Uses Mac farm for iOS Builds binary file; downloaded to local machine Test on local device or deploy to App Store © 2013 Progress Software Corporation. All rights reserved. Deployment 35 © 2013 Progress Software Corporation. All rights reserved. Inside the JSDO 36 © 2013 Progress Software Corporation. All rights reserved. JSDO – Progress Java Script Data Object CRUD + Invoke Methods • add() (CREATE) • addRecords() • fill() (READ) • find() • assign() (UPDATE) • findById() • remove() (DELETE) • Foreach() • method() (INVOKE) • getData() • getId() Properties • autoSort (11.3) • saveChanges() • caseSensitive (11.3) • sort() (11.3) • name • subscribe() • record • unsubscribe() • useRelationships 37 • getSchema() © 2013 Progress Software Corporation. All rights reserved. JSDO Catalog – Generated from Business Entity Definition 38 © 2013 Progress Software Corporation. All rights reserved. JSDO JSDO Operation Mapping Customer Order 39 Mobile App OE Web Server Customer JSDO Customer Catalog OpenEdge AppServer Customers.cls fill( ) Read operation ReadCustomers( ) remove( ) save Changes( ) Delete operation DeleteCustomers( ) add( ) saveChanges( ) Create operation CreateCustomers( ) assign( ) saveChanges( ) Update operation UpdateCustomers( ) getCreditHistory( ) Invoke operation getOrderHistory( ) Invoke operation © 2013 Progress Software Corporation. All rights reserved. GetCreditHistory( ) GetOrderHistory( ) Using the JSDO in JavaScript session = new progress.data.Session(); session.login(<url-to-service>, "", ""); session.addCatalog(<url-to-jsdo-catalog>); jsdo = new progress.data.JSDO({ name: 'dsCustomer' }); jsdo.subscribe('AfterFill', onAfterFillCustomers, this); jsdo.fill(); 40 © 2013 Progress Software Corporation. All rights reserved. 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 41 © 2013 Progress Software Corporation. All rights reserved. JSDO Services – Drag and drop programming Session identified using configuration settings Add Service as datasource for the page 42 © 2013 Progress Software Corporation. All rights reserved. OpenEdge Mobile at Runtime 43 © 2013 Progress Software Corporation. All rights reserved. Runtime Architecture: Native Mobile App OE Web Server http/s 45 © 2013 Progress Software Corporation. All rights reserved. Authentication / Authorization HTTP session manager OE AppServer REST web service & UI JSDO catalog HTML5 app REST web service 2 JSDO catalog AppServer Business Entity ABL Runtime Architecture: Mobile Web App Mobile App OE Web Server http/s 46 © 2013 Progress Software Corporation. All rights reserved. Authentication / Authorization HTTP session manager OE AppServer REST web service & UI JSDO catalog HTML5 app REST web service 2 JSDO catalog AppServer Business Entity ABL OE Mobile Preview mobile.progress.com – requires ProgressID oemobiledemo.progress.com – demo apps 47 © 2013 Progress Software Corporation. All rights reserved. Devices Supported and Pricing Considerations Supported Devices • iPhone – iOS 5 or later • iPad – iOS 5 or later • Android 4.0 or later (Ice Cream Sandwich, Jelly Bean) • Web browser (HTML5/CSS3/JavaScipt) – latest versions Pricing Highlights: • Development Licenses for Mobile App Builder: Annual Subscription per Developer 48 © 2013 Progress Software Corporation. All rights reserved. 11.4 and Beyond 49 © 2013 Progress Software Corporation. All rights reserved. Announcing Rollbase Mobile: OpenEdge Mobile Merges into Rollbase Rebranding of same technology • We now own the IP for the Mobile App Builder, BaaS, etc • Hosted in Pacific cloud – Progress have full control Licensing • OE Mobile paid subscriptions will be converted to Rollbase Developer licenses • OE mobile trial subscriptions renewed at 30 days in Rollbase on 11.4 ship date 50 © 2013 Progress Software Corporation. All rights reserved. New Mobile Features in 11.4 Before-image support in JSDO Transaction support in Business Entities • Submit operation Offline notification at the Service level Express JSDO Services project Push notification support in ABL and Mobile Apps 51 © 2013 Progress Software Corporation. All rights reserved. Summary OpenEdge Mobile / Rollbase Mobile • A Complete End-to-end Solution for Supporting Mobile Devices with OpenEdge Applications • Develop with the premier OpenEdge development environment, Progress Developer Studio for OpenEdge • Mobile App Builder in the cloud Ease-of-use features to simplify interaction with OpenEdge applications • Express setup provides One-click Mobile App • JavaScript Data Objects easily connect UI screens to the supporting data • REST Manager to make it easy to execute OpenEdge business logic and access data on the AppServer from other clients 52 © 2013 Progress Software Corporation. All rights reserved. Questions 53 © 2013 Progress Software Corporation. All rights reserved.