46
Franz Gruber, Werner Kurschl 1 Building Mobile  Applications Comparing The Java And .NET Approach Franz Gruber [email protected] , Werner Kurschl [email protected]

Tutorial m Business 2003

Embed Size (px)

Citation preview

Page 1: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 1/46

Page 2: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 2/46

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

Page 3: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 3/46

Franz Gruber, Werner Kurschl 3

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

Page 4: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 4/46

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

Page 5: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 5/46

Franz Gruber, Werner Kurschl 5

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

Page 6: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 6/46

Franz Gruber, Werner Kurschl 6

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

Page 7: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 7/46

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

Page 8: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 8/46

Franz Gruber, Werner Kurschl 8

Development Infrastructure

Mobile device Development computer 

- Design

- Implementation

- Debugging - Debugging

- Test - Test

- Deployment

Page 9: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 9/46

Franz Gruber, Werner Kurschl 9

Emulators

PalmOS PocketPC Symbian OS

Page 10: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 10/46

Franz Gruber, Werner Kurschl 10

Emulators ctd.

JAVA

Page 11: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 11/46

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

Page 12: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 12/46

Page 13: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 13/46

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

Page 14: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 14/46

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

Architectur e

Development

Comparison

Conclusion

Page 15: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 15/46

Franz Gruber, Werner Kurschl 15

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

Page 16: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 16/46

Franz Gruber, Werner Kurschl 16

Overview of Comparison

 Architecture

Design

Infrastructure

Development tools Availability, licensing

Standardization

User Interfaces

Data capabilities

Communication

Conclusion

Page 17: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 17/46

Franz Gruber, Werner Kurschl 17

Building Mobile Applications

.NET Compact Framework - Architecture

Franz Gruber 

[email protected],

Werner [email protected]

Page 18: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 18/46

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)

Page 19: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 19/46

Franz Gruber, Werner Kurschl 19

NET Compact Framework

Execution Environment

ost

ar ware

oot oa er 

Threa s

Timers

Networkin

Files stem

ost ervices

latform aption a er ( )

Execution En ine

pp omain oa er 

Class oa er 

erifier 

Instruction En ine/JIT

Garba e Collection

ebu er  

ase class libraries

l erverCE librar evice-specific an custom libraries

pplication pplication

Native Co e

ana e Co e

.NET Compact

Framework

C R

C REE.

Page 20: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 20/46

Page 21: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 21/46

Franz Gruber, Werner Kurschl 21

Building Mobile Applications

Java 2 Micro Edition - Architecture

Franz Gruber 

[email protected],

Werner [email protected]

Page 22: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 22/46

Franz Gruber, Werner Kurschl 22

Java 2 Micro Edtion

 Architecture

Configurations

Device classes

Profiles

Market segment

Page 23: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 23/46

Franz Gruber, Werner Kurschl 23

Java 2 Micro Edition

Building Blocks

Page 24: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 24/46

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

Page 25: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 25/46

Franz Gruber, Werner Kurschl 25

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

API

compatibility Subset of 

.Net Subset of J2SE

plus standard

optional

packages

Partial

compatibility with

CDC with

additional standard

optional packages  

Page 26: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 26/46

Franz Gruber, Werner Kurschl 26

General Characteristics

Comparison ctd.

  .Net Compact

Framework J2ME Connected

Device

Configuration J2ME Connected

Limited Device

Configuration Native APIs P/Invoke;

consistent acrosssupported devices

JNI; device- and OS-specific  N/A

Development

tools VS.Net 2003 Command line,vendor SDKs,CodeWarrior, andWebSphere

Command line,vendor SDKs, allmajor Java IDEs

Specification

process Single company Community Community

Security

model Simplified .Netmodel Full Java security

manager Limited Java 2modelsupplemented byOTA specification

Client

installation ActiveSync,Internet Explorer download Sync, download Formal OTA

specification

Page 27: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 27/46

Franz Gruber, Werner Kurschl 27

Building Mobile Applications

Feature ComparisonJ2ME CDC - J2ME CLDC - .NET CF

Franz Gruber 

[email protected],

Werner [email protected]

Page 28: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 28/46

Page 29: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 29/46

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

Page 30: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 30/46

Franz Gruber, Werner Kurschl 30

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.)

Page 31: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 31/46

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.6megabytes (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

Page 32: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 32/46

Franz Gruber, Werner Kurschl 32

No built in support for ML in J2ME

J2ME does not contain any ML specific classes

Third party APIs available for J2ME CDC and

CLDC

k ML ± ML DOM and SA

SLT Compiler from Sun for J2ME

XML support will be standardized in J2ME

optional package for Web Services (see below)

XML Support

J2ME

Page 33: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 33/46

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)

Page 34: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 34/46

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

Page 35: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 35/46

Franz Gruber, Werner Kurschl 35

Web Services

Overview

Page 36: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 36/46

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

Page 37: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 37/46

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 clientapplications

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

Page 38: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 38/46

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 applicationarchitecture

 ± Web Services

Page 39: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 39/46

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)

Page 40: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 40/46

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

Page 41: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 41/46

Franz Gruber, Werner Kurschl 41

Which Technology To

Choose?

Technology is not the driving force for a mobile

solution

Used devices and available infrastructuresdetermine the technology

No r ecommendation for  onespecific technolo y!

Page 42: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 42/46

Franz Gruber, Werner Kurschl 42

Building Mobile Applications

Questions And Discussion

Franz Gruber 

[email protected],

Werner Kurschl

[email protected]

Page 43: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 43/46

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

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 bookshttp://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

Page 44: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 44/46

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 ManagementFramework (SMF):http://www-3.ibm.com/software/pervasive/products/wsdd/

Simplicity IDE from Data Representations:http://www.datarepresentations.com/

Page 45: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 45/46

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 mobiledatabases:http://www.jcp.org/en/jsr/detail?id=169

J2EE Client Provisioning specification:http://java.sun.com/j2ee/provisioning/

Page 46: Tutorial m Business 2003

8/8/2019 Tutorial m Business 2003

http://slidepdf.com/reader/full/tutorial-m-business-2003 46/46

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.shtmlIBM 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.htmlOracle'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/mobileWeb Services in der Praxis ± Seminarhttp://www.scch.at/webservices

Developing Java applications for mobile devices ± Tutorial OOPSLA 2002http://www.scch.at/index.jsp?menu=publications&link=/research/publications/publication.jsp&id=1221