Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mia Urman, AuraPlayer @miaurman Take Your Oracle Forms on the Road Using ADF Mobile Mia Urman, AuraPlayer @miaurman

Similar presentations

Presentation on theme: "Mia Urman, AuraPlayer @miaurman Take Your Oracle Forms on the Road Using ADF Mobile Mia Urman, AuraPlayer @miaurman"— Presentation transcript:

1 Mia Urman, AuraPlayer @miaurman
Take Your Oracle Forms on the Road Using ADF Mobile Mia  

2 Who Am I Mia Urman CEO, AuraPlayer
Oracle ACE and Oracle Forms Evangelist 15 years supporting, training and consulting Oracle Tools 7 years at Oracle as a senior support analyst and local product manager of Forms and ADF. Founder of AuraPlayer - Oracle Forms modernization solutions to unlock Forms systems and fast-track to a Mobile / SOA architecture / Cloud ODTUG board member , international speaker at Kscope, OOW, UKOUG

3 Session Agenda Why Go Mobile? Oracle ADF Mobile Overview
Components of ADF Mobile The Data Layer The UI Presentation Layer - AMX Components Integrating Device Features Running Oracle Forms on the Mobile Getting Started

4 Evolving With Oracle Forms
Block Mode Character Mode Client Server Web SOA ??

5 Evolving With Oracle Forms
Mobile Block Mode Character Mode Client Server Web SOA ??

There are now 1.1B Global 3G Mobile Subscribers, ramping quickly at 37% per year. This compares with the approximately 6.1 billion global mobile phone subscribers, so you can see there is tremendous upside growth potential with smartphones as well. 3G includes CDMA 1x EV-DO and Rev. A/B, WCDMA, HSPA; One user may have multiple mobile subscriptions and may be counted as multiple subscriber (per Source: Informa WCIS+.) 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

7 What Device is Accessing Your Application?

8 Understanding Mobile Requirements
Application Functionality - No mouse, Touch gestures Device Type – Phone / Tablet Screen size Network type – Security , Speed Device features integration Types of Users – Occasional, Internal/external Type of Applications – Browser Based / Hybrid

9 3 Mobile Application Types
Mobile Web App (Viewed in Safari) Native App (iOS) Mobile Web Apps Online application accessed through mobile device browser Browser governs access to local storage and device services (camera, GPS, etc.) Highly reusable code Highly portable Native Mobile Apps Application installed & runs on device Optimized for specific mobile platform and form factor Direct access to local storage and device services Code reuse can be complex Portability requires work Hybrid Mobile Apps Application installed & runs on device with HTML5 UI Optimized for specific mobile platform & form factor Direct access to local storage and device services Code reuse simplified Portability simplified

10 Oracle ADF – Multi Channel Framework
Database Oracle ADF Cloud Web Legacy Systems We needed a common framework. An adaptive framework for the future that could meet our needs across diverse channels today. Web Services Office Oracle Applications Mobile

11 Use Existing Skills Set Use Existing Skills Set
Oracle ADF Mobile Oracle ADF Mobile Unique Hybrid Mobile Framework Java HTML5 At the end of the day, we use HTML5 and Java, to develop applications once, that can target Apple iOS and Android from once code bases. ADF and Java on the device – html5 Built On Standards Built On Standards Use Existing Skills Set Use Existing Skills Set

12 ADF Mobile Overview Thin Native container on each platform
HTML5/JavaScript Frontend Java Backend Encrypted SQLite Well, after looking at the different features of the framework, let’s look at the ADF Mobile client side architecture. ADF Mobile-based applications would have a thin native layer targeted for each platform. This basically allows the application to install as a native application, as well as host device-native modules such as PhoneGap and Java Virtual Machine. For device services integration, PhoneGap is added to the framework to provide a common interface to a variety of device services. User interface is based on HTML5 and JavaScript. These are running inside a webview in the native container. ADF Mobile also embed a lightweight and headless JVM. This JVM is embedded into each instance of the application, and provides Java support. Lastly, application contents are packaged as features. A feature is a group of functionality within an ADF Mobile application. An example of the artifacts within a feature maybe a taskflow and a few AMX based screens, or may simply point to a local HTML or Remote HTML page. It contains icons, images, and names that are used when application renders the features. Whether a particular content within a feature shows up is governed by constraint. For example, you may have one feature that has two content types or taskflows – one content for the smartphone, and one for the tablet. You can set up constraint so the appropriate content is delivered for the intended target. The features are packaged into feature archive, or FAR files. An application may be composed of one or more of these application archives. This is a great feature to support modularity. For example, you may implement a feature and feature archive for account management for a sales app, and then an employee gallery for a HR app. If you need to create a mobile app that contains both account management and employee gallery, you can simply import the two feature archives from these apps, and create a new application that delivers both functionality.

13 ADF Mobile Architecture
Device Native Container Configuration Server Web View Config App Credential Management, SSO & Access Control HTML5 & JavaScript Presentation ADF Mobile AMX View Local HTML Server HTML Server-Generated HTML ADF Controller Push Handler APN/GCM Push Services Java VM Business Logic Cordova JDBC SOAP & REST Services Device Native Container: An application container or template compiled as device native application binary. This provides the runtime environment for an ADF Mobile application to run as an on-device, native application in the mobile device’s operation system (for example Apple iOS). Beyond hosting all of the client-side components for an ADF Mobile application, it also provides a couple of user interface navigation features: the Spring Board and the Tab Bar that allows user to navigate to a particular feature. Web View: Web View is a part of the Device Native container that leverages device’s web engine to display and process web-based content. In an ADF Mobile application, Web View is the primary mechanism to render and deliver the application user interface. Server HTML: Server HTML represents web-based user interface that are generated on the server and delivered as a web page to the ADF Mobile application. Generation of the HTML code occurs entirely on a remote server, as well as business and page flow logic. Server HTML can access device native services such as camera through the JavaScript API supported by Phone Gap, as long as it is running inside an ADF Mobile application. Common options for server HTML-based pages are ADF Mobile browser and ADF Faces Rich Client-based pages. Local HTML: Local HTML are web pages developed using JDeveloper or third-party tools/frameworks that are directly embedded within an ADF Mobile application. These pages are delivered as a part of the ADF Mobile application. Local HTML files can access device native features through the JavaScript APIs supported by the Phone Gap. ADF Mobile AMX Views: AMX views are based on the new AMX component that delivers JavaServer Faces-like development experience to developing HTML5-based user interface. Developers define AMX views using UI and code editors in the JDeveloper, and these views are embedded into the ADF Mobile applications and deployed to the device. During runtime, JavaScript Engine in the Web View renders AMX view definitions into HTML5 controls. AMX components are built to deliver mobile optimized user experiences out of box, and supports device native user experience through extensive animation and touch gesture support. ADF Controller: A mobile version of the ADF Controller that supports a subset of ADF Task Flow components available to a server-based ADF application. It supports both bounded and unbounded ADF Task Flows, and a subset of events/scopes that are supported by the server-based ADF. Java: Provides a Java Runtime environment for the ADF Mobile application. This Java Virtual Machine is implemented in device-native code, and is embedded/compiled into each instance of the ADF Mobile application as part of the native application binary. This JVM is based on the JavaME Connected Device Configuration (CDC) specification. Managed Beans: Managed Beans are Java classes that an ADF Mobile developer can write to extend the capabilities of the framework. This allows any ADF/Java developers to leverage existing development skills to program, for example, additional business logic necessary to process data returned from the server. Managed Beans are executed by the embedded Java support, and therefore must conform to the JavaME CDC specifications. ADF Model: ADF Model in an ADF Mobile application supports a subset of Business Logic components available to server-based ADF application. It contains the binding layer that provides an interface between the business logic components and user interface, as well as the execution logic to invoke REST or SOAP-based web services. Application Configuration: Refers to services that allows key application configurations to be downloaded and refreshed. For example, URL end points for a Web Services or Remote URL connection. Application configuration services downloads configuration information from WebDav-based server-side service. Push Handler: Supports both iOS and Android native push notification with a single code base. It provides two functions: it registers the application and the device with the push notification when application starts up, and invokes the appropriate business logic when the push notification is received by the ADF Mobile application. Credential Management, SSO, and Access Control: Refers to client-side services that provides security-related services for an ADF Mobile application. For example, a local credential store that securely caches user credentials to support offline authentication. Another example would be access control services that would show/hide application features based on user access. Phone Gap: Phone Gap is an open-sourced code library that provides a common JavaScript API/interface to access different device services such as the camera. Phone Gap provides majority of the device-services integration for an ADF Mobile application. Phone Gap JavaScript APIs are further abstracted as Device Data Controls in the JDeveloper Design Time for AMX-based views, allowing developers to integrate device services by simply dragging and dropping Data Controls to their AMX Views. Device Native Views: These are views written in device native language (for example Objective C for iOS), compiled as native libraries, and then incorporated into an ADF Mobile application. Device native views are to be used as rare exceptions when AMX or other web-based UI are not sufficient to fully support certain application functionality that only native code can deliver. For example, a view that requires intensive graphical processing support. Local Data: Refers to data stores that reside on the device – in ADF Mobile, these are implemented as encrypted SQLite databases. Full CRUD operations are supported to this local data store through the Java layer, using JDBC-based APIs. On the server side, the Configuration Server refers to a WebDav-based server that hosts configuration files used by the Applicaction Configuration services. The Configuration Server is delivered as a reference implementation/sample – developers and IT administrators can leverage any common WebDav services hosted on common J2EE server for this purpose. ADF Model SQLite Device Services Encrypted SQLite DB Mobile Device Server

14 Integrated Development Environment
Focused on Productivity Oracle JDeveloper Extension Declarative and visual development Integration with Apple Xcode and Android SDK Component based UI construction Task Flows Data Controls Packaging Deployment Debugging

15 Business Services Code logic with Java Lightweight JVM
Local Business Logic Java Classes SQLite DB - Portable, lightweight relational database Easy access to Remote - Web service SOAP REST XML, REST JSON

16 ADF Mobile XML Components (AMX)
XML format of JSF-like file built visually in JDeveloper 50+ Components Declarative data binding Rendered into HTML5 on device at RT ADF Mobile has a very flexible hybrid architecture, and you have a variety of options to deliver the user interface. The primary mechanism to deliver your user interface is through the new ADF Mobile AMX components. These components are similar to JavaServer Faces components, and the AMX file is similar to the jspx file for ADF Faces based applications. This means you can set its attribute to change its behavior, and use EL Expressions to, for example, bind the component to backend data. The AMX components are optimized to deliver device native user experiences, and are rendered locally on device. The AMX files are generated into HTML5 controls during runtime. The screen you see on the right is built using the AMX components. If you are creating a new mobile application from scratch and data can be accessed through web services, you would want to use the AMX components. You can also dramatically enhance your server-based web applications by adding them into ADF Mobile as Remote URL. For example, you may have an ADF Faces based application on the server. The user interface can be delivered into the webview of the ADF Mobile application, giving it a more native application user experience. Furthermore, when running inside the ADF Mobile container, these server-based web application can access device services through the JavaScript APIs provided by PhoneGap. This means you can enable, for example, camera integration even for your ADF Faces or ADF Mobile browser based applications. Lastly, you can use your favorite HTML5 framework to create local HTML page, and include these into the ADF Mobile application. You can of course leverage the PhoneGap device integrations through the JavaScript interface. The best part of all these content support is, well, you can mix a combination of these contents within the same application, or even within the same feature. This brings complete flexibility to developing your user interface.

17 ADF View AMX Page Backing Beans
Holds the UI of a single page in XML format Component set provided to construct the UI Expression Language (EL) used to bind data to the components EL is dynamic - If the value pointed to be an EL changes, the UI updates (unlike JSF lifecycle) Backing Beans Java classes defined with an identifier and a scope (Application / pageFlow / View) Definition in a taskflow Used to hold page or-specific data and logic Can access bindings on the page Can call into into the model and update other items bound on the page AMX Page: This is the declarative UI construct for ADF Mobile applications. It holds the UI for a single page or view. It is XML based and uses the AMX component set to layout it’s UI. It uses EL to bind the data on the page to either the ADF Model or to a backing bean. A java class that is defined to be a data holder for the object. It represents a single “row” of data and defines the attributes with appropriate getters/setters for the data. It does not, itself, do the retrieval of data from another store. ServiceObject: A java class that is used to define the CRUD operations on an object. It returns other data objects from a store based on functions provided by the developer. There is no specific interface for this object and it’s definition is left for the developer but we define its definition here. It is typical for a Service Object to use JDBC to access a local store or use web services to get it’s data and then fill arrays of Data Objects to be returned. A Service Object is also the class that a developer would create a data control wrapper on to expose it’s methods in the Data Control palette.

18 Page Definition Defines which data controls are used on page
Created when data control dropped on page One per AMX page When data controls are used Defines which data controls are used on page Lists data and operations/methods Bindings: Each AMX page has a backing page that holds its bindings called a Page Definition File. There is a file called the datacontrols.cpx file that tells the framework the names of each backing page def for each AMX page. Executables: Each binding on a page definition has to point to an executable. Typically these are iterators that point to the root of a data control or to collections of data

19 Rich Component Set Basic Components ListView Forms Charts Gauge T-Maps
Carousel GeoMap

20 DVT Charts, Gauges, Maps ADF Mobile employs a set of Data Visualization Tools that you can use to create various charts and gauges to represent data in your ADF Mobile AMX feature. You can declare the following elements under the <dvtm> namespace in an ADF Mobile AMX file: areaChart barChart bubbleChart comboChart lineChart pieChart scatterChart sparkChart Advanced ADF for Collect America Developers

21 Device Rich Features Use the Panel Splitter (panelSplitter) component to display multiple content areas that may be controlled by a left-side navigation pane. Panel Splitter components are commonly used on tablet devices that have larger display size. A Panel Splitter can contain a Facet and Panel Item components. The Panel Item (panelItem) component represents the content area of a Panel Splitter. Each Panel Splitter component must have a least one Panel Item. Each Panel Item component can contain any component that a Panel Group Layout can contain. Advanced ADF for Collect America Developers

22 Do you still carry around one of these?

23 Device Interaction / Gestures
Leverages Apache Cordova Drag and drop to use SMS Contacts GPS Camera Configure components to react to the following gestures: Swipe to the right, left, up, down Tap-and-hold

24 Data Caching Mobile devices can lose/turn off connectivity
Offline access to data is a common requirement But it will increase the complexity of your application If you cache data locally you must consider When to cache the data How much data to cache When to synchronize updates Recording the order of updates How to deal with synchronization conflicts Security of the data if the device is lost Security 1) Always connected: This means reads and writes use live web services and no data is cached on the device. Obviously this does not provide any offline usage and there is a lot of latency in the application. This method is easily accomplished with ADF Mobile today. 2) Reads are cached, writes are online: When a web service is invoked, a developer caches the data into a local store on the device. When offline, the device can go off of the local store. Writes require a direct web service call and thus can only be done when the device has connectivity. This avoids any requirement for synchronizing data. This method is easily accomplished with ADF Mobile today. Many of the apps being built are implementing this method. 3) Reads are cached, offline writes are saved locally and sync'd later: Just like #2, the reads are cached and when offline the data can be accessed. This adds the notion of being able to do updates on those records while offline and those writes are cached locally as transactions and "replayed" later. The update is stored on the device and then at a later time when there is connectivity, the change is propagated up to the server and "replayed". Conflict resolution has to be taken into account. Currently there is no built-in and provided mechanism to replay these transactions on the server by the ADF Mobile group at this time. 4) True synchronization: Synchronize data to the device and back to the server. Instead of caching data that the user specifically accesses like in (2) and (3), the application synchronizes all data the user needs down to the device. This might be done in a background process and let the user act on the existing data on the device. Updates to data are done similar to how they are mentioned in #3 and synchronized up to the server to be executed. The difference between a caching methodology and a synch strategy is that this is a pull of all data that is associated with the user as opposed to just caching the data the user has already viewed. Synching all "My Contacts" is different than just caching the contacts I have already viewed. ADF Mobile does not have any built-in and provided mechanisms for data synchronizations at this time. Simple Offline

25 Getting Started Oracle Forms Using ADF Mobile

26 Development Today Web Desktop Mobile Office Database Web Services
Legacy Systems Applications Unlimited

27 Forms Services Architecture
Middle tier: WebLogic Managed Server Client tier Database tier Forms Listener Servlet Forms Servlet Dynamically downloaded Forms Runtime Net Services User interface layer DB Application logic layer Forms Services Architecture Forms Services consists of four major components: The Forms Servlet The Java client (or Forms Client) The Forms Listener Servlet The Forms Runtime Engine The graphic in the slide shows that the Forms Servlet, Forms Listener Servlet, and Forms Runtime reside on the middle-tier WebLogic Server. The user interface layer of the Forms Runtime, which is a Java applet, is dynamically downloaded from the application server at run time and is automatically cached on the client computer. The same Java applet code can be used for any form, regardless of size and complexity. This is what is referred to as the Forms Client or the Java client. Although Forms Services uses a Java applet for displaying the form on the client browser, the developer does not need to know Java to develop and deploy a Forms application. The next few slides provide additional details about each Forms Services component. After that, you learn how each component functions when the user requests an application, working within the deployment framework of Oracle WebLogic Server. Data manager/ PL/SQL engine JRE Forms Client File containing application code Oracle Fusion Middleware 11g: Administer Forms Services

28 Exposing Oracle Forms to ADF
Web Desktop Mobile Office Web Services

29 DO NOT run Forms on the mobile Run your BUSINESS on the mobile
See Demo

30 Exposing Forms to Mobile: The Process
Understand Business Process Record & Deploy Scenario Generate WS with wizard Create ADF Mobile App Run Your Mobile App! Demo

31 Understanding the Business Process
Choose the Oracle Forms business process to record Select input / Output data to capture from Forms Identify expected results – popups, messages, errors

32 Record & Deploy Oracle Forms as WS
Record the Forms business process using the AuraPlayer Toolbar Automatically Generate Webservices using the AuraPlayer Service Manager Webservice generation Demo Recording Demo

33 Define TaskFlow with Validations
Define the navigation flow between the pages Add validations (managed bean) that should occur upon success or failure of events

34 Create ADF Mobile UI - Jdeveloper
Create ADF DataControls for AuraPlayer Webservice URL -URL is simply copied from the AuraPlayer service manager Create AMX pages and design new mobile UI DEMO

35 Demo Time Demos

36 AuraPlayer – Solution Architecture
Native ADF Mobile app DMZ External Network Service Manager Oracle 11g DB FW The AuraPlayer server is an EAR file that can be deployed to a Weblogic server The AuraPlayer service manager can be installed on the existing Forms server machine or on a second server that can access the Oracle Forms server via network. Any PC that can run Oracle Forms can be used to record an Oracle Forms Scenario. It does NOT need to have Forms developer installed Mobile Devices Oracle Forms 11g Server Secure Weblogic Server Runs Webservice Desktop

37 AuraPlayer - Same Forms Business Logic Multiple UIs
ADF Mobile

38 What You Need Development Deployment / testing / run-time
Oracle JDeveloper Oracle ADF Mobile Extension (help->check for updates) AuraPlayer Recording Toolbar Deployment / testing / run-time iOS on Mac machine iOS SDK+Xcode 4.4.x - require iOS Developer Program Membership Free version (Xcode 4.5) is known to work but not certified Android Android SDK (API Level 9 Min, 16 recommended) + Android device AuraPlayer Server to run the Oracle Forms system as a webservice

39 More Information Mia Urman - ADF Mobile on OTN
Datasheets,Tutorial,Demos ADF Mobile Blog – Oracle Forms Community Blog –,, AuraPlayer – or

40 My ADF Mobile Blog Tips and Tricks Common Bugs How to documents
Tips and Tricks Common Bugs How to documents Presentations

41 Join the ADF Mobile Community Twitter Facebook Oracle’s WebLogic blog Come join this large, vibrant community. We have a pretty significant engagement through various social media channels like twitter and facebook. ….

Download ppt "Mia Urman, AuraPlayer @miaurman Take Your Oracle Forms on the Road Using ADF Mobile Mia Urman, AuraPlayer @miaurman"

Similar presentations

Ads by Google