developing occasionally connected applications using

32
Developing Occasionally Developing Occasionally Connected Applications Using Connected Applications Using Oracle 9iLite Oracle 9iLite Adding Mobility to Enterprise Application Adding Mobility to Enterprise Application Shawn Casey, Intel Corporation Shawn Casey, Intel Corporation Sharad Singhani, Oracle Corporation Sharad Singhani, Oracle Corporation Session id: 40375

Upload: others

Post on 16-Apr-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Developing Occasionally Connected Applications Using

Developing Occasionally Developing Occasionally Connected Applications Using Connected Applications Using

Oracle 9iLiteOracle 9iLite

Adding Mobility to Enterprise ApplicationAdding Mobility to Enterprise Application

Shawn Casey, Intel CorporationShawn Casey, Intel CorporationSharad Singhani, Oracle CorporationSharad Singhani, Oracle Corporation

Session id: 40375

Page 2: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

AgendaAgenda

Trends Towards Mobile ComputingTrends Towards Mobile ComputingOccasionally Connected Computing Occasionally Connected Computing Converting DB Apps to OCC AppsConverting DB Apps to OCC AppsConclusionConclusion

Page 3: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

2006 Laptop 2006 Laptop WiFiWiFi EnvironmentEnvironment

Public WLAN by Geo

05000

10000150002000025000300003500040000

2001 2002 2003 2004 2005 2006Year

Gat

eway

s

NA Europe Asia RoW

2003

MobilityMobilityVectorsVectors

PerformancePerformanceBattery LifeBattery LifeForm FactorForm Factor

Wireless Wireless

Pentium 4Pentium 4ProcessorProcessor--MMPentium IIIPentium III

ProcessorProcessor--MMPentiumPentium®® IIIIProcessorProcessor

Banias

IntelIntel®® CentrinoCentrino™™MobileMobileTechnologyTechnology

Projected 50M Projected 50M IntelIntel®® CentrinoCentrino™™Mobile Mobile Technology based Technology based PCs, 2003PCs, 2003--0606

Source: Gartner mobile PC Source: Gartner mobile PC TEM (MarTEM (Mar’’03)03)

20022000-11998-1999

Mobile Intel®Mobile Intel

WLANWLAN

Intel engaged with 50 worldwide Intel engaged with 50 worldwide Public WLAN service providers; Public WLAN service providers; Plan to enable 15,000 Hotspots by Plan to enable 15,000 Hotspots by year end year end ‘‘03 03

Gartner 20012004

50 Million 50 Million LaptopsLaptops

100,000 WiFi Hotspots

200 million200 millionSubscribersSubscribers

Page 4: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Offline Data Offline Data ManagementManagement

Seamless Seamless ConnectivityConnectivity

Power and Power and Performance Performance ManagementManagement

Multiple Multiple Platform Platform SupportSupport

Ben

efits

Feat

ures Access Your Access Your

Data AnytimeData Anytime

Dynamically Dynamically manage manage

intermittent intermittent connectionsconnections

Run All Day Run All Day UnwiredUnwired

Common Common technologies/ technologies/ mechanismsmechanisms

Increased User Increased User ProductivityProductivity

Transparent Transparent User User

ExperienceExperience

Increased Increased efficiency and efficiency and

utilizationutilization

Consistent Consistent User User

Experience Experience

Vect

or

OCC enables applications to overcome mobility challengesOCC enables applications to overcome mobility challengesOCC enables applications to overcome mobility challenges

Occasionally Connected Occasionally Connected ComputingComputing

Page 5: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Drive for Mobile ComputingDrive for Mobile Computing

Mobile Users Want:Mobile Users Want:–– Seamless connectivitySeamless connectivity

–– Graceful handling of connection changesGraceful handling of connection changes–– Networked applications with “offline” mode Networked applications with “offline” mode

–– Longer Battery LifeLonger Battery Life–– High Performance High Performance

“Consumers want more from their mobile devices and applications, especially in the future. Enhancements need to provide greater utility in

order to lure consumers to the buying table.”Mobilizing the Consumer, Randy Giusto, IDC. – 8/02

Page 6: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Mobility Inflection PointMobility Inflection Point

Opportunity to Opportunity to ““MobilizeMobilize”” ApplicationsApplications•• Develop an Occasionally Connected Computing SW Arch.Develop an Occasionally Connected Computing SW Arch.

•• Develop to Standards for the Robustness IT Requires Develop to Standards for the Robustness IT Requires

Volume Mobile PlatformsVolume Mobile PlatformsLaptops, Handhelds, PhonesLaptops, Handhelds, Phones

Wireless Roaming Stressing Traditional ApplicationsWireless Roaming Stressing Traditional ApplicationsResets, Reboots, Service Disruptions, Refreshes, etc.Resets, Reboots, Service Disruptions, Refreshes, etc.

++

==

Page 7: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Mobility SpectrumMobility SpectrumO

NLI

NE

OFF

LIN

E

OccasionallyConnectedComputing

OccasionallyDisconnected

Page 8: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Occasionally Connected Occasionally Connected Computing ArchitectureComputing Architecture

Mobile Server

HTTP Listener

OnOnOffOff

OffOff

OracleDatabase 10g

ClientClient ASAS DBDB

Mobile Client

Page 9: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Secret of Building OCC Secret of Building OCC Application Application

Design the Application by Factoring in Design the Application by Factoring in Mobile Device and Network Mobile Device and Network Characteristics!Characteristics!Device CPU, Disk, Display, PeripheralsDevice CPU, Disk, Display, PeripheralsMobile Database SizeMobile Database SizeData Synchronization LoadData Synchronization LoadNetwork Bandwidth and LatencyNetwork Bandwidth and Latency

Page 10: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Five Steps of Building an OCC Five Steps of Building an OCC Application Application

1.1. Create Application CodeCreate Application Code2.2. Package ApplicationPackage Application3.3. Publish & Provision ApplicationPublish & Provision Application4.4. Deploy Application and Mobile DatabaseDeploy Application and Mobile Database5.5. Run OCC ApplicationRun OCC Application

Page 11: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 1: Create Application Step 1: Create Application cont’dcont’d

Application (API) Application (API) Mobile Infrastructure (API)Mobile Infrastructure (API)Database (API)Database (API)Synchronization (API)Synchronization (API)

Application

Database Synchronization

Network

Mobile Infrastructure

Page 12: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 1: Application API Step 1: Application API cont’dcont’d

Programming Languages optionsProgramming Languages options––C++, Java, .Net*, C++, Java, .Net*, Java Java ServletServlet/JSP/HTML/JSP/HTML

Database API optionsDatabase API options––ODBC, ODBC, JDBCJDBC, ADO(CE), ADO.Net, ADO(CE), ADO.Net

Synchronization API optionsSynchronization API options––Mobile Sync C++Mobile Sync C++––Mobile Sync JavaMobile Sync Java––Mobile Sync COMMobile Sync COM––Mobile Sync .NetMobile Sync .Net

Page 13: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 1: Application API Step 1: Application API cont’dcont’d

We will convert an existing online Web We will convert an existing online Web Application into a Occasionally Connected Application into a Occasionally Connected Application Application Step 1: Install Oracle Step 1: Install Oracle JDeveloperJDeveloperStep 2: Load an existing Web Application using Step 2: Load an existing Web Application using Java Java ServletServlet 2.2, JSP 1.1, Oracle BC4J2.2, JSP 1.1, Oracle BC4JStep 3:Modify the Java Application CodeStep 3:Modify the Java Application Code1.1. User ProfileUser Profile2.2. JDBC ConnectionJDBC Connection

Page 14: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 1: Application API Step 1: Application API cont’dcont’d

User ProfileUser Profile–– This object can be obtained from the This object can be obtained from the oracle.lite.web.servlet.OraHttpServletRequestoracle.lite.web.servlet.OraHttpServletRequest..

–– ServletsServlets can typecast the request parameter to the can typecast the request parameter to the OraHttpServletRequestOraHttpServletRequest object and call the object and call the getUserProfilegetUserProfilemethod to obtain the user profile objectmethod to obtain the user profile object

public void public void doGet(HttpServletRequestdoGet(HttpServletRequest request, request, HttpServletResponseHttpServletResponse response) throws response) throws ServletExceptionServletException, , IOExceptionIOException{ // Retrieve the User Profile, { // Retrieve the User Profile, java.security.Principal user = java.security.Principal user = request.getUserPrincipalrequest.getUserPrincipal();();

Page 15: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 1: Application API Step 1: Application API cont’dcont’d

JDBC ConnectionJDBC Connection–– JDBC connection can be retrieved from User ProfileJDBC connection can be retrieved from User Profile

public void public void doGet(HttpServletRequestdoGet(HttpServletRequest request, request, HttpServletResponseHttpServletResponse response) throws response) throws ServletExceptionServletException, , IOExceptionIOException{ // Retrieve the JDBC Connection, { // Retrieve the JDBC Connection,

java.security.Principal user = java.security.Principal user = request.getUserPrincipalrequest.getUserPrincipal();();Connection Connection connconn = ((= ((OraUserProfileOraUserProfile) ) user).getConnectionuser).getConnection();();

Page 16: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Adding Mobility the Easy WayAdding Mobility the Easy Way

Application Designer is fully aware of Mobility…Application Designer is fully aware of Mobility……but Application Developer only applies minor …but Application Developer only applies minor modifications to Application Code and Database modifications to Application Code and Database SchemaSchemaMobilityMobility aspects are added after programming is aspects are added after programming is complete using complete using declarativedeclarative techniques techniques Step Step 2: Packaging2: Packaging

Page 17: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Package Step 2: Package Application Application cont’dcont’d

APPLICATIONAPPLICATION specific Information:specific Information:1.1. NameName2.2. Application FilesApplication Files3.3. Database NameDatabase Name4.4. Snapshot DefinitionSnapshot Definition5.5. Sequence DefinitionSequence Definition6.6. Create JAR/WARCreate JAR/WAR

Page 18: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Application Name Step 2: Application Name cont’dcont’d

Page 19: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Application Files Step 2: Application Files cont’dcont’d

Page 20: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Application Step 2: Application Database Database cont’dcont’d

Page 21: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Snapshot Definition Step 2: Snapshot Definition cont’dcont’d

Page 22: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Sequence Definition Step 2: Sequence Definition cont’dcont’d

Page 23: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 2: Generate JAR Step 2: Generate JAR cont’dcont’d

Page 24: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 3: Publish & Provision Step 3: Publish & Provision cont’dcont’d

Step 3.1 PublishStep 3.1 Publish––Publish JAR/WAR file on the ServerPublish JAR/WAR file on the Server

Step 3.2 Provision Step 3.2 Provision ––Create UserCreate User––Define ACLDefine ACL

–– Bind user to application & dataBind user to application & data––Define User ProfileDefine User Profile

–– Specify user specific data subset (next slide)Specify user specific data subset (next slide)

Page 25: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 3: Define User Profile Step 3: Define User Profile • Temporary Snapshot Definition (from Packaging Wizard)select * from scott.emp where code = :code

DBA defines a value for each user using a GUI Tool

Final Snapshot Definitionselect * from scott.emp where code = 1111

Page 26: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 4: Deploy Application Step 4: Deploy Application and Mobile Database and Mobile Database

Step 4.1 Install Mobile Client on the Step 4.1 Install Mobile Client on the DeviceDevice–– Installs and register Mobile Client libraries on Installs and register Mobile Client libraries on

the Intelthe Intel®® Centrino™ Mobile Technology Centrino™ Mobile Technology LaptopLaptop

Step 4.2 Synchronize Application and Step 4.2 Synchronize Application and DataData––Deploys and install Web Application and Deploys and install Web Application and

mobile Database on Intel Centrino Mobile mobile Database on Intel Centrino Mobile Technology LaptopTechnology Laptop

Page 27: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Step 5: Run OCC Application Step 5: Run OCC Application

Step 5.1 Run OCC Application from WorkspaceStep 5.1 Run OCC Application from Workspace–– The Web application updates the mobile database The Web application updates the mobile database

using JDBCusing JDBC

Step 5.2 SynchronizeStep 5.2 Synchronize–– Today: Manually by the mobile user Today: Manually by the mobile user –– Future: Automatically when roaming into Future: Automatically when roaming into HotSpotHotSpot

Page 28: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Overcoming Application Overcoming Application LimitationsLimitations

Offline Data ManagementOffline Data Management–– Data caching and SynchronizationData caching and Synchronization–– Security ProtectionSecurity Protection–– ManageabilityManageability

Seamless Application ConnectivitySeamless Application Connectivity–– Detect changes in network state & take actionDetect changes in network state & take action

Multiple Platform SupportMultiple Platform Support–– Identification of Platform Attributes Identification of Platform Attributes

Power Reduction and Performance ManagementPower Reduction and Performance Management

Page 29: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

OCC Technical Development OCC Technical Development KitKit

Release midRelease mid--Q4Q4Reference Architecture GuidesReference Architecture Guides–– Database, Portal, Distributed Document architecturesDatabase, Portal, Distributed Document architectures

ToolsTools–– Communication management/simulationCommunication management/simulation–– Power management/simulationPower management/simulation

APIsAPIs–– ITI ITI –– Intel Transport InterfaceIntel Transport Interface

–– Information and notification about network statusInformation and notification about network status–– QoSQoS**, Bandwidth**, Reliable messaging****, Bandwidth**, Reliable messaging**

–– Power APIs**Power APIs** ** Will be included in OCC TDK 2.0** Will be included in OCC TDK 2.0

Page 30: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

ConclusionConclusion

Mobility is happening nowMobility is happening now–– Large Mobile Computing Base TodayLarge Mobile Computing Base Today

–– Ever Increasing ConnectivityEver Increasing Connectivity

Oracle provides solution to convert existing DB Oracle provides solution to convert existing DB applications to an OCC apps using 9iLiteapplications to an OCC apps using 9iLiteJoin Intel and Oracle in pioneering user friendly Join Intel and Oracle in pioneering user friendly mobile applicationsmobile applications

Join us at the Intel Sponsored Wireless Pavilion Join us at the Intel Sponsored Wireless Pavilion for a demonstration of our ISVfor a demonstration of our ISV’’s mobile solutionss mobile solutions

Page 31: Developing Occasionally Connected Applications Using

©© 2003 Intel Corporation. All rights reserved.2003 Intel Corporation. All rights reserved.©© 2003 Oracle Corporation. All rights reserved.2003 Oracle Corporation. All rights reserved.

*Third party brands and names are the properties of their respective owners

Reminder Reminder ––please complete the please complete the OracleWorld online OracleWorld online

session surveysession survey

Thank you.Thank you.

Page 32: Developing Occasionally Connected Applications Using