460 likes | 774 Views
Fra nz Gruber franz.gruber@scch.at , Werner Kurschl werner.kurschl@fh-hagenberg.at. Building Mobile Applications. Comparing The Java And .NET Approach. Table of Contents. Motivation Realization scenarios of mobile solutions Development cycle for mobile applications
E N D
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
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
Table of Contents • Motivation • Realizationscenariosofmobilesolutions • Development cycle for mobile applications • Why Java and .NET on devices? • J2ME & .NET CF • Architecture • Development • Comparison • Conclusion Franz Gruber, Werner Kurschl
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
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
Table of Contents • Motivation • Realization scenarios of mobile solutions • Developmentcycleformobileapplications • Why Java and .NET on devices? • J2ME & .NET CF • Architecture • Development • Comparison • Conclusion Franz Gruber, Werner Kurschl
Development Infrastructure Mobile device Development computer - Design - Implementation - Debugging - Debugging - Test - Test - Deployment Franz Gruber, Werner Kurschl
Emulators PalmOS PocketPC Symbian OS Franz Gruber, Werner Kurschl
Emulators ctd. JAVA Franz Gruber, Werner Kurschl
Table of Contents • Motivation • Realization scenarios of mobile solutions • Development cycle for mobile applications • WhyJavaand.NETondevices? • J2ME & .NET CF • Architecture • Development • Comparison • Conclusion Franz Gruber, Werner Kurschl
Remote Web Pages Local Code Thin Client/Fat Client Scenario Web Server Services on Server Our Focus MobileWebBrowser .NET CF & J2ME Device Operating System Franz Gruber, Werner Kurschl
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
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
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
Overview of Comparison • Architecture • Design • Infrastructure • Development tools • Availability, licensing • Standardization • User Interfaces • Data capabilities • Communication • Conclusion Franz Gruber, Werner Kurschl
Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at Building Mobile Applications .NET Compact Framework - Architecture Franz Gruber, Werner Kurschl
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
NET Compact FrameworkExecution Environment Franz Gruber, Werner Kurschl
.NET Compact Framework Architecture Franz Gruber, Werner Kurschl
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
Java 2 Micro EdtionArchitecture • Configurations • Device classes • Profiles • Market segment Franz Gruber, Werner Kurschl
Java 2 Micro EditionBuilding Blocks Franz Gruber, Werner Kurschl
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
General CharacteristicsComparison Franz Gruber, Werner Kurschl
General CharacteristicsComparison ctd. Franz Gruber, Werner Kurschl
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
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
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
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
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
XML SupportJ2ME • 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
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
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
Web ServicesOverview Franz Gruber, Werner Kurschl
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
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
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
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
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
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
Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at Building Mobile Applications Questions And Discussion Franz Gruber, Werner Kurschl
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, Microsofthttp://www.microsoft.com/windows/embedded/faq/default.asp • Microsoft .Net Compact Framework Quickstarts Tutorial, GOT DOT NET Communityhttp://samples.gotdotnet.com/quickstart/CompactFramework/doc/default.aspx Franz Gruber, Werner Kurschl
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
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
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 2002http://www.scch.at/index.jsp?menu=publications&link=/research/publications/publication.jsp&id=1221 Franz Gruber, Werner Kurschl