1 / 46

Building Mobile Applications

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

eyad
Download Presentation

Building Mobile Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 • Realizationscenariosofmobilesolutions • 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 • Developmentcycleformobileapplications • 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 • WhyJavaand.NETondevices? • J2ME & .NET CF • Architecture • Development • Comparison • Conclusion Franz Gruber, Werner Kurschl

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

  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. Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at Building Mobile Applications .NET Compact Framework - Architecture 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 Franz Gruber, Werner Kurschl

  20. .NET Compact Framework Architecture Franz Gruber, Werner Kurschl

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

  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 Franz Gruber, Werner Kurschl

  26. General CharacteristicsComparison ctd. Franz Gruber, Werner Kurschl

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

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

  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. Franz Gruber franz.gruber@scch.at, Werner Kurschl werner.kurschl@fh-hagenberg.at Building Mobile Applications Questions And Discussion 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 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

  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 2002http://www.scch.at/index.jsp?menu=publications&link=/research/publications/publication.jsp&id=1221 Franz Gruber, Werner Kurschl

More Related