0% found this document useful (0 votes)
19 views

Tutorial M Business 2003

The document compares the Java and .NET approaches to building mobile applications. It discusses organizational and technical implications of mobile solutions, and covers development cycles, emulators, and architecture for J2ME and .NET Compact Framework. The .NET Compact Framework is designed for Windows CE and compatible devices, and provides a subset of the .NET Framework through C# and VB.NET language support.

Uploaded by

annefatima
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Tutorial M Business 2003

The document compares the Java and .NET approaches to building mobile applications. It discusses organizational and technical implications of mobile solutions, and covers development cycles, emulators, and architecture for J2ME and .NET Compact Framework. The .NET Compact Framework is designed for Windows CE and compatible devices, and provides a subset of the .NET Framework through C# and VB.NET language support.

Uploaded by

annefatima
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 46

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 PocketPC Symbian OS


Franz Gruber, Werner Kurschl 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
WebServer
Server Services
Serviceson
onServer
Server Our Focus

Remote Web Pages

Local Code

Mobile
MobileWeb
Web .NET
.NETCF
CF&&J2ME
J2ME
Browser
Browser

Device
Device Operating
Operating System
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 Application

SqlServerCE library Device-specific and custom libraries .NET Compact


Framework

Base class libraries Managed Code


Execution Engine CLR Native Code
App Domain Loader Instruction Engine/JIT
Class Loader Garbage Collection
Verifier Debugger
MSCOREE.DLL
Platform Adaption Layer (PAL)

Host OS Services
Boot Loader Networking Host OS
Threads Filesystem
Timers

Hardware

Franz Gruber, Werner Kurschl 19


.NET Compact Framework
Architecture
System.Web System.Windows.Forms
Services UI Design ComponentModel
Description Design
Discovery HtmlControls
Protocols WebControls
System.Drawing
Caching Security Drawing2D Imaging
Configuration SessionState Printing Text

System.Data System.Xml
ADO.NET Design XmlDocument Serialization
Odbc OleDB XSLT/XPath Reader/writer
SqlClient SqlServerCE
SqlTypes

System
Collections IO Runtime Security
Text Net CompilerServices Cryptography
Globalization Reflection InteropServices Permissions
Resources Threading Remoting Policy
ServiceProcess Diagnostics Serialization Principal
EnterpriseServices

... Gray means not present in CF ... Yellow means specific to CF


... Blue means present in CF
Franz Gruber, Werner Kurschl 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
J2ME
.Net J2ME Connected
Connected
Compact Limited Device
Device
Framework Configuration
Configuration
Device Powerful, Powerful,
Cheap, pervasive
requirements expensive expensive
Cost High High Medium
Consumer and
Market focus Enterprise Enterprise
enterprise
Language
C#, VB.Net Java Java
support
Pocket PC, Major mobile
All mobile
Platforms Windows platforms except
platforms
CE Palm OS
Byte code Standard Not compatible
Standard Java 2
compatibility .Net CLR with J2SE or CDC
Partial
Subset of J2SE
compatibility with
API Subset of plus standard
CDC with
compatibility .Net optional
additional standard
packages
optional packages

Franz Gruber, Werner Kurschl 25


General Characteristics
Comparison ctd.
J2ME Connected J2ME Connected
.Net Compact
Device Limited Device
Framework
Configuration Configuration
P/Invoke;
JNI; device- and OS-
Native APIs consistent across N/A
specific
supported devices
Command line,
Command line,
Development vendor SDKs,
VS.Net 2003 vendor SDKs, all
tools CodeWarrior, and
major Java IDEs
WebSphere
Specification
Single company Community Community
process
Limited Java 2
Security Simplified .Net Full Java security model
model model manager supplemented by
OTA specification
ActiveSync,
Client Formal OTA
Internet Explorer Sync, download
installation specification
download

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 t
he 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.aspx
• .NET Compact Framework Resources, GOT DOT NET Community
http://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 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

You might also like