Sie sind auf Seite 1von 46

Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.

at

Building Mobile Applications


Comparing The Java And .NET Approach

Franz Gruber, Werner Kurschl

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

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 - Test - Deployment


Franz Gruber, Werner Kurschl

- Debugging - Test

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 franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at

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 CLR .NET Compact Framework Managed Code Native Code

App Domain Loader Instruction Engine/JIT Class Loader Garbage Collection Verifier Debugger

Platform Adaption Layer (PAL) Host OS Services


Boot Loader Networking Filesystem Threads Timers

MSCOREE.DLL

Host OS

Hardware

Franz Gruber, Werner Kurschl

19

.NET Compact Framework Architecture


System.Web Services Description Discovery Protocols Caching Configuration UI Design HtmlControls WebControls Security SessionState System.Windows.Forms Design ComponentModel

System.Drawing Drawing2D Printing Imaging Text

System.Data ADO.NET Odbc SqlClient SqlTypes Design OleDB SqlServerCE

System.Xml XmlDocument XSLT/XPath Serialization Reader/writer

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

... Gray means not present in CF ... Blue means present in CF Franz Gruber, Werner Kurschl

...

Yellow means specific to CF


20

Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at

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

Franz Gruber, Werner Kurschl

General Characteristics Comparison ctd.


.Net Compact Framework Native APIs P/Invoke; consistent across supported devices J2ME Connected Device Configuration JNI; device- and OSspecific Command line, vendor SDKs, CodeWarrior, and WebSphere Community Full Java security manager J2ME Connected Limited Device Configuration N/A Command line, vendor SDKs, all major Java IDEs Community Limited Java 2 model supplemented by OTA specification Formal OTA specification

Development VS.Net 2003 tools Specification Single company process Security model Client installation Simplified .Net model ActiveSync, Internet Explorer download

Sync, download

Franz Gruber, Werner Kurschl

26

Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at

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
(GB), with support for BLOBs of up to 1 GB.

SQL Server CE supports databases up to 2 gigabytes


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 franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at

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/ 44

Franz Gruber, Werner Kurschl

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

Das könnte Ihnen auch gefallen