Building Mobile Applications

Download Report

Transcript Building Mobile Applications

Franz Gruber
[email protected],
Werner Kurschl
[email protected]
Building Mobile
Applications
Comparing The Java And .NET Approach
Franz Gruber, Werner Kurschl
1
Table of Contents
 Motivation
 Realization scenarios of mobile solutions
 Development cycle for mobile applications
 Why Java and .NET on devices?
 J2ME & .NET CF
 Architecture
 Development
 Comparison
 Conclusion
Franz Gruber, Werner Kurschl
2
Building Mobile Solutions
Organizational Issues
 Integration into business process
 Business model, information flow
 Integration into organizational structure
 Who is responsible for what?
 Integration into technical infrastructure
 Devices and communication infrastructure
 Integration into security concept
 Danger of new security leaks
Franz Gruber, Werner Kurschl
3
Table of Contents
 Motivation
 Realization scenarios of mobile solutions
 Development cycle for mobile applications
 Why Java and .NET on devices?
 J2ME & .NET CF
 Architecture
 Development
 Comparison
 Conclusion
Franz Gruber, Werner Kurschl
4
Building Mobile Solutions
Technical Implications
 Application scenario
 Choosing an appropriate scenario
 Mobile device
 Software infrastructure, hardware requirements
 Communication technology
 On-/Offline scenario
 Wireless Wide Area Networks/ Wireless Local Area
Networks
 Communication protocol
 Application architecture scenario
 Thin/fat client
Franz Gruber, Werner Kurschl
5
Building Mobile Applications
Technical Implications ctd.
 Data management
 Synchronisation
 On-/offline capabilities
 Security issues
 Dangers for mobile devices
 Threats of communication technology
 Danger of exposing enterprise data
Franz Gruber, Werner Kurschl
6
Table of Contents
 Motivation
 Realization scenarios of mobile solutions
 Development cycle for mobile applications
 Why Java and .NET on devices?
 J2ME & .NET CF
 Architecture
 Development
 Comparison
 Conclusion
Franz Gruber, Werner Kurschl
7
Development Infrastructure
Mobile device
Development computer
- Design
- Implementation
- Debugging
- Debugging
- Test
- Test
- Deployment
Franz Gruber, Werner Kurschl
8
Emulators
PalmOS
Franz Gruber, Werner Kurschl
PocketPC
Symbian OS
9
Emulators ctd.
JAVA
Franz Gruber, Werner Kurschl
10
Table of Contents
 Motivation
 Realization scenarios of mobile solutions
 Development cycle for mobile applications
 Why Java and .NET on devices?
 J2ME & .NET CF
 Architecture
 Development
 Comparison
 Conclusion
Franz Gruber, Werner Kurschl
11
Thin Client/Fat Client Scenario
Web Server
Services on Server
Our Focus
Remote Web Pages
Local Code
Mobile Web
Browser
.NET CF & J2ME
Device Operating System
Franz Gruber, Werner Kurschl
12
J2ME and .NET on Devices?
 Base on proven technologies
 Use existing know-how
 Use known tools and APIs
 Hide complexity
 Integration into legacy systems with
 Java Application Server (J2EE)
 .NET Server
 Build solutions on contemporary technologies
 Future extensibility
Franz Gruber, Werner Kurschl
13
Table of Contents
 Motivation
 Realization scenarios of mobile solutions
 Development cycle for mobile applications
 Why Java and .NET on devices?
 J2ME & .NET CF
 Architecture
 Development
 Comparison
 Conclusion
Franz Gruber, Werner Kurschl
14
Java and .NET
Philosophies
 .NET is ...
 Language independent (VB, C#)
 Platform dependent (Windows CE, PocketPC)
 Company driven
 Java is ...
 Language dependent
 Platform independent
 Community driven
Franz Gruber, Werner Kurschl
15
Overview of Comparison
 Architecture
 Design
 Infrastructure
 Development tools
 Availability, licensing
 Standardization
 User Interfaces
 Data capabilities
 Communication
 Conclusion
Franz Gruber, Werner Kurschl
16
Franz Gruber
[email protected],
Werner Kurschl
[email protected]
Building Mobile
Applications
.NET Compact Framework - Architecture
Franz Gruber, Werner Kurschl
17
NET Compact Framework
 .NET Compact Framework (CF)
 Available for Windows CE 3.0 /CE.NET devices
– Pocket PC is specifically designed for PDAs
– CE.NET is a generic platform for devices like
– Consumer electronics, kiosks, mobile and handheld devices
– Point-of-sale terminals, etc.
 Compatible subset (about 25%) of the full .NET Framework
 C# and VB.NET language support
 Memory footprint is around 1.5 MB vs 20 MB (full .NET
Framework)
Franz Gruber, Werner Kurschl
18
NET Compact Framework
Execution Environment
Application
SqlServerCE library
Application
Device-specific and custom libraries
Base class libraries
Execution Engine
App Domain Loader Instruction Engine/JIT
Class Loader
Garbage Collection
Verifier
Debugger
Platform Adaption Layer (PAL)
.NET Compact
Framework
Managed Code
CLR
Native Code
MSCOREE.DLL
Host OS Services
Boot Loader Networking
Filesystem
Threads
Timers
Host OS
Hardware
Franz Gruber, Werner Kurschl
19
.NET Compact Framework
Architecture
System.Web
System.Windows.Forms
Services
Description
Discovery
Protocols
UI
Design
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
Design
System.Drawing
Drawing2D
Printing
System.Data
ADO.NET
Odbc
SqlClient
SqlTypes
ComponentModel
Imaging
Text
System.Xml
Design
OleDB
SqlServerCE
XmlDocument
XSLT/XPath
Serialization
Reader/writer
System
Collections
Text
Globalization
Resources
ServiceProcess
EnterpriseServices
IO
Net
Reflection
Threading
Diagnostics
...
Gray means not present in CF
...
Blue means present in CF
Franz Gruber, Werner Kurschl
Runtime
Security
CompilerServices
InteropServices
Remoting
Serialization
Cryptography
Permissions
Policy
Principal
...
Yellow means specific to CF
20
Franz Gruber
[email protected],
Werner Kurschl
[email protected]
Building Mobile
Applications
Java 2 Micro Edition - Architecture
Franz Gruber, Werner Kurschl
21
Java 2 Micro Edtion
Architecture
Configurations
 Device classes
Profiles
 Market segment
Franz Gruber, Werner Kurschl
22
Java 2 Micro Edition
Building Blocks
Franz Gruber, Werner Kurschl
23
Therefore ...
 Java 2 Micro Edition is not ONE Java edition
 An J2ME compliant application consists of
 Configuration
 Profile (e.g. Personal, Mobile Information Device Profile (MIDP))
 Application code
 3 Contenders to compare
 Java 2 Micro Edition – Connected Device Configuration (CDC)
 Java 2 Micro Edition – Connected Limited Device Configuration
(CLDC)
 Microsoft .NET Compact Framework
Franz Gruber, Werner Kurschl
24
General Characteristics
Comparison
.Net
Compact
Framework
J2ME
Connected
Device
Configuration
J2ME Connected
Limited Device
Configuration
Device
requirements
Powerful,
expensive
Powerful,
expensive
Cheap, pervasive
Cost
High
High
Medium
Market focus
Enterprise
Enterprise
Consumer and
enterprise
Language
support
C#, VB.Net
Java
Java
Platforms
Pocket PC,
Windows
CE
Major mobile
platforms except
Palm OS
All mobile
platforms
Byte code
compatibility
Standard
.Net CLR
Standard Java 2
Not compatible
with J2SE or CDC
Subset of
.Net
Subset of J2SE
plus standard
optional
packages
Partial
compatibility with
CDC with
additional standard
optional packages
API
compatibility
Franz Gruber, Werner Kurschl
25
General Characteristics
Comparison ctd.
.Net Compact
Framework
J2ME Connected
Device
Configuration
J2ME Connected
Limited Device
Configuration
P/Invoke;
consistent across
supported devices
JNI; device- and OSspecific
N/A
Development
VS.Net 2003
tools
Command line,
vendor SDKs,
CodeWarrior, and
WebSphere
Command line,
vendor SDKs, all
major Java IDEs
Specification
Single company
process
Community
Community
Native APIs
Security
model
Simplified .Net
model
Full Java security
manager
Limited Java 2
model
supplemented by
OTA specification
Client
installation
ActiveSync,
Internet Explorer
download
Sync, download
Formal OTA
specification
Franz Gruber, Werner Kurschl
26
Franz Gruber
[email protected],
Werner Kurschl
[email protected]
Building Mobile
Applications
Feature Comparison
J2ME CDC - J2ME CLDC - .NET CF
Franz Gruber, Werner Kurschl
27
User Interfaces
J2ME
 J2ME CDC
 Personal Profile: Full AWT available and third
party widget toolkits based on AWT available
 Personal Basis Profile: Basic AWT components
available, lightweight implementation of widgets
in reference implementation integrated
 J2ME CLDC
 Limited set of UI widgets for MIDP
 Limited AWT subset for PDA Profile
Franz Gruber, Werner Kurschl
28
User Interfaces
.NET CF
 Two flavors
 Generic – provides cross-OS portability
– Drawing primitives
– Controls and Forms
 Windows Forms
– Supersets generic functionality
– Available for Windows CE devices
– Consistent with WinForms on .NET Framework
– Drag n’ drop UI designer in Visual Studio
Franz Gruber, Werner Kurschl
29
Data Capabilities
J2ME
 Database interface capabilities on client device
 J2ME CDC & CLDC
 Optional package for each configuration and
profile available
 CDC: Subset of full JDBC capabilities
downloadable as beta version
 CLDC: JDBC like APIs from third party vendors
(IBM, PointBase, etc.)
Franz Gruber, Werner Kurschl
30
Data Capabilities
.NET CF
 SQL Server CE Database Engine




SQL grammar compatible with SQL Server 2000
Transaction support
128-bit file-level encryption and password protection
Database engine occupies approximately 1.2 to 1.6
megabytes (MB) of disk space
 SQL Server CE supports databases up to 2 gigabytes
(GB), with support for BLOBs of up to 1 GB.
 On Pocket PC
 ADO.NET data classes can be used
 Data-bound controls may use ADO.NET
Franz Gruber, Werner Kurschl
31
XML Support
J2ME
 No built in support for XML in J2ME
 J2ME does not contain any XML specific classes
 Third party APIs available for J2ME CDC and
CLDC
 kXML – XML DOM and SAX
 XSLT Compiler from Sun for J2ME
 XML support will be standardized in J2ME
optional package for Web Services (see below)
Franz Gruber, Werner Kurschl
32
XML Support
.NET CF
 Built in support for XML
 XmlReader and XmlWriter classes
 XmlDocument class is an implementation of the
Document Object Model (DOM)
 Unsupported (heavy weight) features
 Validation using Document Type Definitions
(DTDs) or XML schemas
 Extensible Stylesheet Language Transformations
(XSLT) and XML Path language (XPath)
Franz Gruber, Werner Kurschl
33
Communication
 J2ME
 RMI: for CDC and CLDC via optional packages
 Sockets and HTTP(S) implementation available
 Not available: SOAP in standard J2ME
 .NET CF
 Sockets built in framework
 HTTP(S) request and response
 SOAP support built in
Franz Gruber, Werner Kurschl
34
Web Services
Overview
Franz Gruber, Werner Kurschl
35
Web Services
J2ME
 Third party implementations
 kSOAP, kXML, kUDDI
 Java Web Services Development Pack (SUN)
 Development of Server side
 J2ME Web Services
 Standardization in progress
 Subset of relevant technologies
 Draft API specification is available
Franz Gruber, Werner Kurschl
36
Web Services
.NET CF
 Full support of web services
 Clean, protocol level separation of publishing and usage
 Separation of data from presentation enables rich client
applications
 Client applications can aggregate web services from
multiple sources
 Client applications can control “chunkiness” of transfers
 .NET CF can execute VS.NET generated client proxy
code
 Sync and async interfaces are supported
Franz Gruber, Werner Kurschl
37
Conclusion
 Both technologies are mature and applicable
 Comprehensive set of features
– Many similarities between J2ME and .NET CF
 Ease of development
– Integrated Development Environments
– Stable implementation base
– Rich set of emulators available
 Seamless integration into general application
architecture
– Web Services
Franz Gruber, Werner Kurschl
38
Conclusion ctd.
 Features
 User Interfaces
– Known desktop widgets
– Limited display size!
 Data management
– Simple data management capabilities
 XML
– Needed for data exchange and Web Services
– Built in (.NET CF) or third party implementations (J2ME)
Franz Gruber, Werner Kurschl
39
Conclusion ctd.
 Communication
– Support for relevant protocols (HTTP(S), SOAP,
Sockets)
– Transparent use of wireless communication technolgies
like GPRS, and WLAN
 Web Services
– Standard is supported by .NET CF, and both Java
configurations
Franz Gruber, Werner Kurschl
40
Which Technology To
Choose?
 Technology is not the driving force for a mobile
solution
 Used devices and available infrastructures
determine the technology
No recommendation for one
specific technology!
Franz Gruber, Werner Kurschl
41
Franz Gruber
[email protected],
Werner Kurschl
[email protected]
Building Mobile
Applications
Questions And Discussion
Franz Gruber, Werner Kurschl
42
References
Main Resource Article
•
•
"Let the Mobile Games Begin," Michael Juntao Yuan (JavaWorld)
• Part 1: A comparison of the philosophies, approaches, and features of J2ME and
the upcoming .Net Compact Framework (February 2003)
• Part 2: J2ME and .Net Compact Framework in action (May 2003)
Andy Wigley, Microsoft .NET COMPACT Framework – Core Reference, Microsoft Press,
2002
Learn more about J2ME and .Net Compact Framework technologies:
•
•
"Java Books Hit the Wire," Michael Juntao Yuan (JavaWorld, July 2002)
http://www.javaworld.com/javaworld/jw-07-2002/jw-0719-wireless.html
Additional reviews of J2ME related books
http://www.enterprisej2me.com/J2MEvsdotNET/books.html#j2me
Learn more about .Net Compact Framework technologies:
•
•
•
•
Andy Wigley, Microsoft .NET COMPACT Framework – Core Reference, Microsoft Press
Important books to learn about .Net development
http://www.enterprisej2me.com/J2MEvsdotNET/books.html#dotnet
Windows Embedded Frequently Asked Questions, Microsoft
http://www.microsoft.com/windows/embedded/faq/default.asp
Microsoft .Net Compact Framework Quickstarts Tutorial, GOT DOT NET Community
http://samples.gotdotnet.com/quickstart/CompactFramework/doc/default.aspx
Franz Gruber, Werner Kurschl
43
References ctd.
•
•
•
Device Platforms, Microsoft Windows Embedded
http://www.microsoft.com/windows/embedded/devices/default.asp
.NET Compact Framework Overview, Microsoft Smart Devices Developer Community
http://smartdevices.microsoftdev.com/Products/.NET+Compact+Framework/default.a
spx
.NET Compact Framework Resources, GOT DOT NET Community
http://smartdevices.microsoftdev.com/Products/.NET+Compact+Framework/default.a
spx
Mobile development tools:
•
•
•
•
•
•
•
Microsoft Visual Studio .Net:
http://msdn.microsoft.com/vstudio/
Borland JBuilder MobileSet:
http://www.borland.com/jbuilder/mobileset/index.html
Sun ONE Studio:
http://wwws.sun.com/software/sundev/jde/index.html
CodeWarrior Wireless Studio:
http://www.metrowerks.com/MW/Develop/Wireless/Wireless_Studio/Default.htm
Sun J2ME Wireless Toolkit:
http://java.sun.com/products/j2mewtoolkit/
IBM WebSphere Studio Device Developer, with links to IBM Service Management
Framework (SMF):
http://www-3.ibm.com/software/pervasive/products/wsdd/
Simplicity IDE from Data Representations:
http://www.datarepresentations.com/
Franz Gruber, Werner Kurschl
44
References ctd,

Connected Limited Device Configuration (CLDC):
http://java.sun.com/products/cldc/

Connected Device Configuration (CDC):
http://java.sun.com/products/cdc/

The PersonalJava application environment:
http://java.sun.com/products/personaljava/

The CDC Foundation Profile:
http://java.sun.com/products/foundation/

The CDC Personal Profile:
http://www.jcp.org/en/jsr/detail?id=62

The Mobile Information Device Profile (MIDP):
http://java.sun.com/products/midp/

J2ME Web Services Specification standardizes XML processing APIs for small devices:
http://www.jcp.org/en/jsr/detail?id=172

Security and Trust Services API for J2ME specifies how to access SIM card security information:
http://www.jcp.org/en/jsr/detail?id=177

Mobile Media API specification:
http://www.jcp.org/en/jsr/detail?id=135

The PDA Profile for the J2ME Platform defines standard interfaces to PIMs for low-end PDA devices:
http://www.jcp.org/en/jsr/detail?id=75

Wireless Messaging API is a framework to enable SMS functionalities in your J2ME applications:
http://www.jcp.org/en/jsr/detail?id=120

The Personal Profile provides UI for CDC and Foundation Profile devices:
http://www.jcp.org/en/jsr/detail?id=62

The Location API for J2ME standardizes location information access on J2ME devices:
http://www.jcp.org/en/jsr/detail?id=179

The JDBC Optional Package for CDC/Foundation Profile defines a subset of JDBC 3.0 specification for mobile
databases:
http://www.jcp.org/en/jsr/detail?id=169

J2EE Client Provisioning specification:
http://java.sun.com/j2ee/provisioning/
Franz Gruber, Werner Kurschl
45
References ctd.
Mobile database tools:
•Microsoft SQL Server CE:
http://www.microsoft.com/sql/ce/
•Sybase SQL Anywhere Studio:
http://www.sybase.com/products/mobilewireless/anywhere
•PointBase (including Embedded and Micro editions):
http://www.pointbase.com/home.shtml
•IBM DB2 Everyplace:
http://www-3.ibm.com/software/data/db2/everyplace/
•Oracle9i Lite database and application server:
http://www.oracle.com/ip/deploy/ias/mobile/index.html?feat_synch.html
•Oracle's J2ME SDK that demonstrates the capability of its upcoming 9i wireless application server:
http://studio.oraclemobile.com/studio/sites/otn/j2me.html
SCCH resources:
•One Architecture For Any Mobile Device?
http://www.scch.at/mobile
•Web Services in der Praxis – Seminar
http://www.scch.at/webservices
•Developing Java applications for mobile devices – Tutorial OOPSLA 2002
http://www.scch.at/index.jsp?menu=publications&link=/research/publications/publication.jsp&id=1221
Franz Gruber, Werner Kurschl
46