Developing Occasionally Connected Applications Using ...
Transcript of 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
©© 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
©© 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
©© 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
©© 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
©© 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.
++
==
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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();();
©© 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();();
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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)
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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
©© 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.