Post on 19-Dec-2015
transcript
Franz Gruber, Werner Kurschl 1
Building Mobile Applications
Comparing The Java And .NET Approach
Franz Gruber
franz.gruber@scch.at,
Werner Kurschl
werner.kurschl@fh-hagenberg.at
Franz Gruber, Werner Kurschl 2
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 3
Building Mobile SolutionsOrganizational 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 4
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 5
Building Mobile SolutionsTechnical 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 6
Building Mobile ApplicationsTechnical 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 7
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 8
Development Infrastructure
Mobile device Development computer
- Design
- Implementation
- Debugging - Debugging
- Test - Test
- Deployment
Franz Gruber, Werner Kurschl 9
Emulators
PalmOS PocketPC Symbian OS
Franz Gruber, Werner Kurschl 10
Emulators ctd.
JAVA
Franz Gruber, Werner Kurschl 11
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 12
Thin Client/Fat Client Scenario
Local Code
Remote Web Pages
Web ServerWeb Server
Mobile Web Browser
Mobile Web Browser
.NET CF & J2ME.NET CF & J2ME
Services on ServerServices on Server
Device Operating SystemDevice Operating System
Our Focus
Franz Gruber, Werner Kurschl 13
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 14
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 15
Java and .NETPhilosophies
.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 16
Overview of Comparison
Architecture Design
Infrastructure
Development tools
Availability, licensing
Standardization
User Interfaces
Data capabilities
Communication
Conclusion
Franz Gruber, Werner Kurschl 17
Building Mobile Applications
.NET Compact Framework - Architecture
Franz Gruber
franz.gruber@scch.at,
Werner Kurschl
werner.kurschl@fh-hagenberg.at
Franz Gruber, Werner Kurschl 18
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 19
NET Compact FrameworkExecution Environment
Host OS
Hardware
Boot LoaderThreadsTimers
NetworkingFilesystem
Host OS Services
Platform Adaption Layer (PAL)
Execution Engine
App Domain LoaderClass LoaderVerifier
Instruction Engine/JITGarbage CollectionDebugger
Base class libraries
SqlServerCE library Device-specific and custom libraries
Application Application
Native Code
Managed Code
.NET CompactFramework
CLR
MSCOREE.DLL
Franz Gruber, Werner Kurschl 20
.NET Compact Framework Architecture
Collections
Text
DescriptionDiscoveryProtocols
Caching
Services
HtmlControlsWebControls
Design
UI
ConfigurationSecurity
SessionState
System.Web
ADO.NETOdbc
SqlClientSqlTypes
OleDBSqlServerCE
Design
System.Data
XmlDocumentXSLT/XPath Reader/writer
Serialization
System.Xml
Drawing2DPrinting Text
Imaging
System.Drawing
Design
System.Windows.Forms
Diagnostics
IO
Resources Threading
Net
EnterpriseServices
CryptographyPermissions
PolicyPrincipal
Security
Globalization
ServiceProcess
System
... Gray means not present in CF ... Yellow means specific to CF
Reflection
ComponentModel
CompilerServices
RemotingSerialization
Runtime
InteropServices
... Blue means present in CF
Franz Gruber, Werner Kurschl 21
Building Mobile Applications
Java 2 Micro Edition - Architecture
Franz Gruber
franz.gruber@scch.at,
Werner Kurschl
werner.kurschl@fh-hagenberg.at
Franz Gruber, Werner Kurschl 22
Java 2 Micro EdtionArchitecture
Configurations
Device classes
Profiles
Market segment
Franz Gruber, Werner Kurschl 23
Java 2 Micro EditionBuilding Blocks
Franz Gruber, Werner Kurschl 24
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 25
General CharacteristicsComparison
.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
API compatibility
Subset of .Net
Subset of J2SE plus standard optional packages
Partial compatibility with CDC with additional standard optional packages
Franz Gruber, Werner Kurschl 26
General CharacteristicsComparison ctd.
.Net Compact Framework
J2ME Connected Device Configuration
J2ME Connected Limited Device Configuration
Native APIs P/Invoke; consistent across supported devices
JNI; device- and OS-specific N/A
Development tools VS.Net 2003
Command line, vendor SDKs, CodeWarrior, and WebSphere
Command line, vendor SDKs, all major Java IDEs
Specification process Single company Community Community
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 27
Building Mobile Applications
Feature Comparison
J2ME CDC - J2ME CLDC - .NET CF
Franz Gruber
franz.gruber@scch.at,
Werner Kurschl
werner.kurschl@fh-hagenberg.at
Franz Gruber, Werner Kurschl 28
User InterfacesJ2ME
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 29
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 30
Data CapabilitiesJ2ME
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 31
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 32
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)
XML SupportJ2ME
Franz Gruber, Werner Kurschl 33
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 34
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 35
Web ServicesOverview
Franz Gruber, Werner Kurschl 36
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 37
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 38
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 39
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 40
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 41
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 42
Building Mobile Applications
Questions And Discussion
Franz Gruber
franz.gruber@scch.at,
Werner Kurschl
werner.kurschl@fh-hagenberg.at
Franz Gruber, Werner Kurschl 43
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 th
e 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 44
References ctd.
• Device Platforms, Microsoft Windows Embeddedhttp://www.microsoft.com/windows/embedded/devices/default.asp
• .NET Compact Framework Overview, Microsoft Smart Devices Developer Communityhttp://smartdevices.microsoftdev.com/Products/.NET+Compact+Framework/default.aspx
• .NET Compact Framework Resources, GOT DOT NET Communityhttp://smartdevices.microsoftdev.com/Products/.NET+Compact+Framework/default.aspx
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 45
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 46
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