Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 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 [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 SqlServerCE library Application Device-specific and custom libraries Base class libraries Execution Engine App Domain Loader Instruction Engine/JIT Class Loader Garbage Collection Verifier Debugger Platform Adaption Layer (PAL) .NET Compact Framework Managed Code CLR Native Code MSCOREE.DLL Host OS Services Boot Loader Networking Filesystem Threads Timers Host OS Hardware Franz Gruber, Werner Kurschl 19 .NET Compact Framework Architecture System.Web System.Windows.Forms Services Description Discovery Protocols UI Design HtmlControls WebControls Caching Configuration Security SessionState Design System.Drawing Drawing2D Printing System.Data ADO.NET Odbc SqlClient SqlTypes ComponentModel Imaging Text System.Xml Design OleDB SqlServerCE XmlDocument XSLT/XPath Serialization Reader/writer System Collections Text Globalization Resources ServiceProcess EnterpriseServices IO Net Reflection Threading Diagnostics ... Gray means not present in CF ... Blue means present in CF Franz Gruber, Werner Kurschl Runtime Security CompilerServices InteropServices Remoting Serialization Cryptography Permissions Policy Principal ... Yellow means specific to CF 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 .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 Subset of .Net Subset of J2SE plus standard optional packages Partial compatibility with CDC with additional standard optional packages API compatibility Franz Gruber, Werner Kurschl 25 General Characteristics Comparison ctd. .Net Compact Framework J2ME Connected Device Configuration J2ME Connected Limited Device Configuration P/Invoke; consistent across supported devices JNI; device- and OSspecific N/A Development VS.Net 2003 tools Command line, vendor SDKs, CodeWarrior, and WebSphere Command line, vendor SDKs, all major Java IDEs Specification Single company process Community Community Native APIs Security model Simplified .Net model Full Java security manager Limited Java 2 model supplemented by OTA specification Client installation ActiveSync, Internet Explorer download Sync, download Formal OTA specification 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 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/ 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