Title: M422 Java Technology for the Mobile Enterprise
1M422Java Technology for the Mobile Enterprise
- Martyn Mallick
- Wireless Solutions Evangelist
- iAnywhere Solutions
- mmallick_at_ianywhere.com
2Agenda
- Introduction
- Mobile Application Overview
- Which Java When?
- Java on the Server ? J2EE
- Java on the Client ? J2SE, J2ME
- Summary
3iAnywhere 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 Groups Dataquest, August 2001
4Java 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
5Introduction 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
6Agenda
- Introduction
- Mobile Application Overview
- Which Java When?
- Java on the Server ? J2EE
- Java on the Client ? J2SE, J2ME
- Summary
7Mobile 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
8iAnywhere m-Business Platform
9Agenda
- Introduction
- Mobile Application Overview
- Which Java When?
- Java on the Server ? J2EE
- Java on the Client ? J2SE, J2ME
- Summary
10Which 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)
11Which Java When?
12Wireless 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
13Which 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)
14Which Java When? J2EE Architecture
JSPEngine
JDBC
JavaMail
HTTP Server
Servlet Container
JNDI Server
EJB Server
15Addressing 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
16iAnywhere 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
17iAnywhere 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
18Message 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
19Smart 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
20Which 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
21Which Java When? J2SE Overview
22Which 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
23Which 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
24Which 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
25Which Java When? PersonalJava Device
Requirements
- Memory
- ROM lt2MB
- RAM 1MB
- Processor
- 32-bit gt50 MHz
- Connectivity
- Connectivity to some type of network
- Display\Interface
- Robust graphical user interface (AWT)
- Character data entry capability
26Which 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
27Which 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
28Which 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
29Which 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
30Which 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
31Which 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
32Which 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.
33Which Java When? J2ME CDC Device Requirements
- Application Requirements Additional
34Which 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
35Smart 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
36Smart 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
37Addressing Data Communications Concerns
38Adaptive 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
39UltraLite 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
40UltraLite 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
41Native 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)
42Native 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
43MobiLink 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
44Application 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
45Which 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
46Which 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
47Java Smart Client Overview
Classes outside of J2SE include the
javax.microedition package
J2SE
MIDP (CLDC)
Personal Profile (CDC)
PersonalJava
The CDC classes are a superset of the CLDC
configuration classes. CDLC applications will
execute in a CDC application environment.
48Agenda
- Introduction
- Mobile Application Overview
- Which Java When?
- Java on the Server ? J2EE
- Java on the Client ? J2SE, J2ME
- Summary
49Summary 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
50Summary 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.
51M422Java Technology for the Mobile Enterprise
- Martyn Mallick
- Wireless Solutions Evangelist
- iAnywhere Solutions
- mmallick_at_ianywhere.com