1 / 51

M422 Java Technology for the Mobile Enterprise

M422 Java Technology for the Mobile Enterprise. Martyn Mallick Wireless Solutions Evangelist iAnywhere Solutions mmallick@ianywhere.com. Agenda. Introduction Mobile Application Overview Which Java When? Java on the Server  J2EE Java on the Client  J2SE, J2ME Summary.

neith
Download Presentation

M422 Java Technology for the Mobile Enterprise

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. M422Java Technology for the Mobile Enterprise • Martyn Mallick • Wireless Solutions Evangelist • iAnywhere Solutions • mmallick@ianywhere.com

  2. Agenda • Introduction • Mobile Application Overview • Which Java When? • Java on the Server  J2EE • Java on the Client  J2SE, J2ME • Summary

  3. iAnywhere Solutions • Complete m-Business Platform • One-stop source for developingand deploying m-Business solutions • Market Leader • 68% mobile database market share* • 700 application partners and 10,000 corporate customers • 6 million deployed technology licenses • Global Presence • Leverage Sybase resources and channels • Offices in 44 countries around the world *Source: Gartner Group’s Dataquest, August 2001

  4. Java Introduction Java Editions • J2EE (Java 2 Enterprise Edition) • Enterprise Servers • e.g. EJBs, JSPs, Servlets, etc • J2SE (Java 2 Standard Edition) • Workstation and Desktops computers • Foundation for the PersonalJava Application Environment • e.g. Applets, Applications, JavaBeans, etc • J2ME (Java 2 Micro Edition) • Reduced memory consumer electronics and Internet appliances • e.g. Applications, Applets, MIDlets, etc

  5. Introduction Why Java? • Java is a good language for software engineering, pure object model and lack of pointers eliminate errors and increase productivity • Provides flexibility over C/C++ to single purpose devices – enabling easy configuration of functionality and programmability • Java built-in standardized communication facilities, with TCP/IP serialization and reflectivity built into the the language is the first programming language to seamlessly support data communications • Java has a single source for the language and API editions assuring developers that Java stays focused and standardized • Large and growing community of developers

  6. Agenda • Introduction • Mobile Application Overview • Which Java When? • Java on the Server  J2EE • Java on the Client  J2SE, J2ME • Summary

  7. Mobile Application Overview • Current mobile applications face many challenges • Unpredictable Wireless network coverage • Time to Market due to complex nature of wireless solutions • Wireless networks are inefficient and expensive • Device Support and Battery Life • Enterprises require an ‘Always Available’ solution

  8. iAnywhere m-Business Platform

  9. Agenda • Introduction • Mobile Application Overview • Which Java When? • Java on the Server  J2EE • Java on the Client  J2SE, J2ME • Summary

  10. Which Java When? • All three Java specifications can play a part in creating mobile and wireless applications • Java 2 Enterprise Edition (J2EE) • Java 2 Standard Edition (J2SE) • Java 2 Micro Edition (J2ME)

  11. Which Java When?

  12. Wireless Internet Characteristics J2EE based applications • Browser based applications • No deployment required • Dynamic content • Multiple devices • Many different browsers • Many different markup languages • Messaging • Notifications and alerts • Integrated business logic • Logic remains on server platform

  13. Which Java When? J2EE Overview • Superset of J2SE geared for enterprise applications • Built for server applications that require performance, scalability and enterprise integration • Client support provided using Java Servlets and Java Server Pages • Component based development using Enterprise JavaBeans (EJB) • Messaging provided by Java Message Service (JMS)

  14. Which Java When? J2EE Architecture HTTP Server JSPEngine JDBC JavaMail Servlet Container JNDI Server EJB Server

  15. Addressing Wireless Complexity • Wireless Application Servers • Based on open standards (eg. J2EE) • Reduce development complexity • Target multiple devices and content types • HDML, WML, HTML, CHTML, VoiceXML • Identify type of device and micro-browser • Display content appropriate for each device • Leverage existing assets • Enterprise Database Systems • Business Applications • Messaging systems

  16. iAnywhere Wireless Server What it Offers • Reduced development complexity • Global data members • Extends capabilities of Java Servlets/JSPs • Device identification • Parallel content with single URL • Application management • Session management • User authentication • Flow management

  17. iAnywhere Wireless Server What it Offers • Servlet and JSP support • Servlet class library and JSP tag library geared at wireless application development • Enterprise data integration • JDBC/ODBC • Custom adapters • XML • Servlet, JSP and XML/XSL development

  18. Message Anywhere What it Offers • JMS access to Mobile Messaging systems • Application to Application Messaging • SMS • HDML Alerts • WAP Push • E-mail • Paging Networks • Higher-level messaging services • Priority • Personalization • Message expiry • Message status

  19. Smart Client Characteristics J2SE, J2ME based applications • Persistent data • Mobile data store • High-performance data access • Data Synchronization • Integration with the Enterprise • Messaging • Push important data to mobile devices • Rich user experience • Contains business logic • Sophisticated User Interface • Pocket PC, Palm OS, Symbian OS, RIM, Linux

  20. Which Java When? J2SE Overview • J2SE targets traditional Java applications • Stand alone applications • Applets running in a web browser • Core set of classes that existed before the separation into three editions • Component support provided by JavaBeans specification • Java Virtual Machines (JVMs) for a variety of clients

  21. Which Java When? J2SE Overview

  22. Which Java When? J2SE Overview • Java Runtime Environment (JRE) for J2SE has a footprint of 3-4 MB • For Mobile Clients, we need to have a smaller JRE • Some PDAs can have as little as 2 MB of total memory, a 3-4 MB JRE is too large • PersonalJava can help solve this problem

  23. Which Java When? PersonalJava • PersonalJava Application Environment (PJAE): • Introduced in 1997 to bring Java to resource-limited devices • Components: A J2SE Java Virtual Machine An optimized set of java class libraries suited for mobile devices (The PersonalJava API) • Reference Implementations: • Windows CE

  24. Which Java When? PersonalJava – PJAE Classes • A subset of the J2SE JDK APIs (some packages are optional) • New APIs for mouseless environments, remote controlled systems, and managing timer events • Preloaded “ROMable” classes minimize the memory footprint • PersonalJava 3.0.1+ includes support for JNI, JVMDI, and JVMPI PJAE New PJAE-Specific classes J2SE Optional J2SE Classes

  25. Which Java When? PersonalJava – Device Requirements • Memory: • ROM <2MB • RAM 1MB • Processor: • 32-bit >50 MHz • Connectivity: • Connectivity to some type of network • Display\Interface: • Robust graphical user interface (AWT) • Character data entry capability

  26. Which Java When? J2ME Introduction • J2ME apps are built upon three vital components: • Configurations for core functionality • Profiles for additional functionality • Optional packages extending profile functionality

  27. Which Java When? J2ME Overview • A configuration contains either a KVM or CVM with a minimal set of APIs to define a broad platform of devices • A profile sits on top of a configuration and adds additional APIs to make a complete platform for a narrower set of devices

  28. Which Java When? J2ME Overview • Similar application architecture to J2SE • Targeted at the consumer device market • Ranging from Smart Cards to Wireless Devices • leverage Java programming language • Code portability • Upward scalability with J2SE and J2EE

  29. RMI Optional Package Personal Profile Personal Basis Profile MIDP PDA Profile Foundation Profile CLDC CDC Which Java When? J2ME Overview • There are various J2ME technologies: • Connected Limited Device Configuration (CDLC) and Connected Device Configuration (CDC) • Lowest common denominator • Building Block on which profiles are created • Mobile Information Device Profile (MIDP), PDA Profile, Foundation Profile, Personal Profile and Personal Basis Profile

  30. RMI Optional Package Personal Profile Personal Basis Profile MIDP PDA Profile Foundation Profile CLDC CDC Which Java When? J2ME CDC • CDC is designed for higher-end electronic and embedded devices. • Used in devices requiring a full-featured Java VM, but with a smaller footprint. • Reference Implementations: • Linux, Solaris, Windows 2000

  31. Which Java When? CDC - The CVM Virtual Machine • Full-featured Java VM with a smaller footprint supporting: • Java 2 Platform version 1.3 VM functionality • libraries for security, weak references, JNI, and JVMDI • Class footprint is approx. 40% smaller than J2SE and 17% smaller than PersonalJava

  32. RMI Optional Package Personal Profile Personal Basis Profile MIDP PDA Profile Foundation Profile CLDC CDC Which Java When? J2ME: Personal Profile This profile is based on the PersonalJava application environment and will eventually replace PersonalJava. This profile extends the Foundation profile with classes necessary to run PersonalJava applications within a CDC configuration. These additions focus primarily on the addition of user interface classes.

  33. Which Java When? J2ME CDC Device Requirements * - Application Requirements Additional

  34. Which Java When? J2ME Benefits • Java Smart Client applications can now fit onto constrained devices • More advanced profiles such as Personal Profile provides the same capabilities as J2SE/PersonalJava based clients • Mobile Data Storage • Data Synchronization • Messaging • Rich User Interface

  35. Smart Client Key Benefits Mobile Data Store • Reliable data access • Make an informed business decision • Capture business information when it occurs • High-performance data access • Guaranteed transactional reliability for your mission critical data • Authentication and strong encryption to prevent unauthorized access to data

  36. Smart Client Key Benefits Synchronization • Integration with Enterprise • Bi-directional data communication • Security • Built-in authentication • 128-bit encryption of communication stream • Support for subsetting / partitioning of data • Scalable to thousands of remote users • Conflict detection and resolution • Error handling

  37. Real-world Problemsin Wireless AlwaysAvailable Architecture ProblemsSolved • Faster response/ lower cost • Work anywhere, anytime • Dependability • Low bandwidth • Coverage andpenetration • Battery life • Less datatransferred • Work offline/synch later • Connect when necessary Addressing Data Communications Concerns

  38. Adaptive Server Anywhere Broad Support for Java • Support for Java Virtual Machine in Database • Table definitions in Java • Java classes to contain logic • Stored procedures can be written in Java • Type 4 JDBC Driver • jConnect • J2SE applications can be created to use ASA

  39. UltraLite for Java 100% Pure Java Data Store • Customized for Handhelds • UltraLite deployment option for SQL Anywhere Studio • Ideal for light-weight deployments • Resides on the mobile device • Application-optimized footprint as small as 50K • Advantages of SQL • PersonalJava/J2ME applications can be created to use UltraLite for Java

  40. UltraLite for Java 100% Pure Java Data Store • 100% pure Java port of the UltraLite technology • Uses Java 2 (JDK 1.2 or higher) and Java 1.1.x (JDK 1.1.4 or higher) Components: - UltraLite JDBC Driver - UltraLite Runtime (ulrt.jar) - Generated UltraLite Database

  41. Native UltraLite for Java • Developed for Insignia Jeode Java VM running on PocketPC • Internally uses Java Native Interface (JNI) • How is it different from Java UltraLite? • Java UltraLite: pure Java solution targeted for multiple platforms running a Java VM • Native UL for Java: you still would like to use Java but your application requires the performance of a native library (currently test on Jeode platform on PocketPC)

  42. Native UltraLite for Java • Supports Windows NT and CE ARM hand-held devices including Compaq iPAQ and NEC MobilePro P300 • Jeode runtime required (comes with some devices) • Steps to create app similar to other components • Create database schema file • Write java code • Deploy application – include jul8.dll and jul8.jar files

  43. MobiLink Data Synchronization • Synchronize to industry standard databases • Oracle8, Microsoft SQL Server, IBM DB2 UDB, Sybase ASE, Sybase ASA • Synchronization logic can be written in Java • Security • Built-in authentication, encryption of datastream • Support for subsetting of data • Support for horizontal and vertical partitioning of data • Scalable • Support for thousands of remote users • All synchronization is bi-directional

  44. Application Management Manage Anywhere Studio • Centralized management of hardware and applications for mobile and remote systems • Reduce Costs • Centralize software installation / configuration, distribution and inventory • Reduce support/help desk calls • Simplify and Speed Deployments • Centralize task scheduling and task management • Automate application installs and upgrades • Protect Investment • Deploy and schedule virus protection updates to all systems • Protect system configurations such as VPN settings, or dialup networking settings

  45. Which Java When? Going even smaller… • The Mobile Information Device Profile (MIDP) is designed to support devices with minimal display capabilities such as cell phones and smaller PDAs. • Targeted Device Requirements: • ROM 128KB (app. requirements additional) • RAM 40KB (app. requirements additional) • Connectivity: • Two-way wireless networking capability • Display\Interface: • 96x54 pixels • Character data entry capability

  46. Which Java When? MIDP - Architecture • MIDP applications are programmed as MIDlets. • MIDlets are screen-based applications providing a simple user interface. • The Record Management System (RMS) API provides a mechanism for storing and retrieving data in MIDP applications. • Basic form of data storage • Synchronization is still required

  47. Java Smart Client Overview Classes outside of J2SE include the javax.microedition package J2SE Personal Profile (CDC) MIDP (CLDC) PersonalJava The CDC classes are a superset of the CLDC configuration classes. CDLC applications will execute in a CDC application environment.

  48. Agenda • Introduction • Mobile Application Overview • Which Java When? • Java on the Server  J2EE • Java on the Client  J2SE, J2ME • Summary

  49. Summary Smart Client vs. Thin Client Smart Client • Some business logic may reside within the client • Updates require client redistribution • Occasionally-Connected • Synchronizations are required • e.g. Java Application • Thin Client • All business logic is invoked from a server • Updates do not require client redistribution • Always-Connected • Synchronizations are not required • e.g. Java Server Page

  50. Summary iAnywhere Solutions Platform • iAnywhere Solutions m-Business Platform has extensive Java support • J2EE Wireless Framework as part of iAnywhere Wireless Server • Advanced mobile messaging using Message Anywhere • Broad support for Java in Adaptive Server Anywhere • Pure Java UltraLite mobile datastore • Java interface into UltraLite Component Suite • MobiLink enterprise synchronization • You can roll out enterprise ‘Always Available’ Java applications today.

More Related