Outline Wireless Development – Introduction Wireless Development – Introduction Wireless Issues & Considerations Wireless Issues & Considerations Wireless Tools & Technologies Wireless Tools & Technologies J2ME J2ME BREW BREW BREW based Java BREW based Java Summary Summary Conclusion Conclusion Q & A Q & A
Introduction Today wired & wireless world are converging. Internet & mobile wireless is also converging. The distinction between the wireless, wire line and the Internet service providers is beginning to blur. And the glue certainly is "mobile wireless". Mobile wireless has exploded in popularity because of the fact that it simplifies and revolutionizes communication, provides instant connectivity anytime & anywhere & the ability to provide high-speed data services to the mobile user. Number of mobile wireless development tools are growing continuously & many of the past development tools have been modified to target mobile devices.
Why we didn't all get mobile phones five years ago? Have you ever wondered why we didn't all get mobile phones five years ago when they were widely promised? Two key reasons: 1.Industry needs a "standard" protocol for downloading executable applications to mobile phones. For network operators, such a protocol must include a method for securing premium revenues and a method to certify the quality of applications in order to protect network operator from liability. 2.Application execution environment & programming language. Such an environment needs to be flexible enough to allow useful applications on a variety of mobile device designs, yet protect the device against malicious programs (viruses).
Wireless Development - Issues and Consideration Wireless architectures are often complex because of device limitations & network constraints. Applications & implementation environments are complex, & filled with low- level programming concepts. Hence developers has to deal with issues & considerations as discussed here: Bandwidth Coverage Standards Security
Wireless Development – Tools & Technologies Languages & Tools cHTML, WML, Borland C/C++, MS Visual Studio.NET, Embedded Visual Studio, CodeWarrior for Palm OS. Operating Systems Embedded LINUX, Windows CE, Palm OS, Windows CE 2002, Windows CE 2003. Standards & Protocols GSM, GPRS, WAP, BlueTooth, SAT (SIM Toolkit), SS7, SMPP, USSD. Hardware Mobile Devices, Smart Phones, Palm, Pocket PC.
J2ME & BREW for Wireless Development Sun Micro System's Java 2 Micro Edition CLDC (Connected Limited Device Configuration)/MIDP (Mobile Information Device Profile) environment (J2ME) & QUALCOMM's BREW client are two popular wireless platforms that offer a method for executing software applications on a mobile device. Sun stepped in aggressively with J2ME to provide a true application execution environment for mobile devices with constrained memory, processing power, & battery life. However, J2ME is primarily designed to solve the technological problems of an application execution environment & does not inherently provide a business model for operators to secure premium revenues.
Contd ….. Qualcomm has also entered the market with Binary Runtime Environment for Wireless (BREW). BREW encompasses both an application execution environment based on C++ & a business model for certifying, downloading, and charging for premium content. The model calls for Qualcomm to guarantee the quality of applications with unique encrypted certification codes. Thus, BREW and J2ME are more complementary than competitive, but that hasn't prevented conflicts between the wireless data platforms.
J2ME Architecture J2ME uses configurations & profiles to customize the JRE. As a complete JRE, J2ME is comprised of a configuration, which determines the JVM used, and a profile, which defines the application by adding domain-specific classes.
What are the J2ME Configurations? J2ME configuration defines basic run-time environment as a set of core classes and a specific JVM that run on specific types of devices. Sun provides two types of J2ME configurations: 1.CLDC for small devices and 2.CDC for larger devices.
Connected Limited Device Configuration (CLDC) Created by Java Community Process. Portable, minimum-footprint Java building block for small, resource-constrained devices, as defined on Sun’s Web Site. Outlines the most basic set of core libraries to be used within an industry-defined profile & Java virtual machine features required for each implementation of J2ME on highly constrained devices. CLDC targets devices with slow network connections, limited power (often battery operated), 128 KB or more of non-volatile memory, and 32 KB or more of volatile memory.
CLDC requirements Full Java language support (except for floating pointer support, finalization, and error handling). Full JVM support. CLDC’s Security. Limited internationalization support. Inherited classes: all classes not specific to CLDC must be subsets of J2SE 1.3 classes. Specific CLDC Classes are in javax.microedition package and sub packages.
CLDC API The CLDC API is really just a subset of the J2SE. java.lang - core run-time & core data type classes, helper classes. java.io – input classes & output classes. java.util – collection classes & other classes. javax.microedition.io The only class defined in this package is the Connector class, a factory class that contains methods to create Connection objects, or input and output streams. Connection objects are created when a class name is identified dynamically. A class name is identified based on the platform name, as well as the protocol of the requested connection.
Connected Device Configuration (CDC) CDC has been defined as a stripped-down version of J2SE with CLDC classes added to it. Built upon CLDC, & hence, applications developed for CLDC devices also run on CDC devices. CDC, also developed by the Java Community Process. Provides a standardized, portable, full-featured Java 2 virtual machine building block for consumer electronic & embedded devices, such as smart phones, two-way pagers, PDAs, home appliances, point-of-sale terminals, & car navigation systems.
What are J2ME Profiles? A J2ME profile defines the type of devices supported. Mobile Information Device Profile (MIDP) defines classes for cellular phones. Adds domain-specific classes to the J2ME configuration to define uses for similar devices. Profiles are built on top of configurations. Because profiles are specific to the size of the device (amount of memory) on which an application runs, certain profiles are associated with certain configurations. Two profiles have been defined for J2ME and are built upon CLDC: KJava and MIDP. Both KJava and MIDP are associated with CLDC and smaller devices.
Profile 1: KJava Sun's proprietary profile and contains the KJava API. Built on top of the CLDC configuration. KJava virtual machine, KVM, accepts same byte codes & class file format as the classic J2SE virtual machine. Contains a Sun-specific API that runs on the Palm OS. KJava API has a great deal in common with the J2SE Abstract Windowing Toolkit (AWT). Since it is not a standard J2ME package, its main package is com.sun.kjava.
Profile 2: Mobile Information Device Profile ( MIDP) Common, industry-standard profile for mobile devices that is not dependent on a specific vendor. Developed for mobile devices such as cellular phones & pagers. Built upon CLDC & provides a standard run-time environment that allows new applications (services) to be deployed dynamically on end-user devices. MIDP Packages- Three Core CLDC Packages:- java.lang, java.io, java.util. MIDP-specific Packages:- javax.microedition.io, javax.microedition.lcdui, javax.microedition.midlet, javax.microedition.rms
The alternative: Binary Runtime Environment for Wireless ( BREW) Application execution platform that runs at the firmware level (CDMA chipset) & specially targets wireless applications that can be downloaded & executed on mobile devices. BREW runtime environment is available free of cost to CDMA device manufacturers sporting Qualcomm processors. Similar to JVM, except that it is not designed to provide portability from one device to another. Since BREW runtime platform runs at chipset level, enables it to leverage the communication & multimedia capabilities of mobile devices more than J2ME.
BDS Components Unified Application Manager (UAM) - Provides virtual marketplace for application acquisition, wherein application developers offer their wireless applications to operators. Application Download Server (ADS) - Load-balanced farm that consists of a collection of small, stateless servers used to deliver applications to subscribers securely over the air. Transaction Manager (TXN) - combines phone events from the ADS with business data from the UAM to create mediated usage records. BREW Billing Services - BREW Billing Services produce invoices to operators for fees due to application developers.
Key Steps in BDS Process Flow Steps involved in the BREW lifecycle
How BDS Works Application distribution flow in terms of various BDS components
BREW Based Java Possible to run J2ME applications on BREW due to the implementation J2ME virtual machine over BREW. BREW conceptually acts as a layer below the JVM which enables developers to develop Java applications that can be downloaded and executed on BREW-enabled devices using BDS. No concrete evaluation about performance of J2ME running on top of BREW is available. Certainly needs extra processing requirements because of another layer (BREW) in the execution of J2ME applications.
Summary Wireless Development Necessity Issues & Considerations Wireless Development Tool & Technologies J2ME Architectural Overview BREW BDS Overview, components, how it works. BREW based Java
CONCLUSION BREW & J2ME are more complementary than competitive. Present developers with exciting opportunities for taking advantage of the convergence of wireless & the Internet. J2ME enables developers to write applications that can run unaltered on different devices. J2ME therefore targets general consumer & embedded devices. BREW, on the other hand, targets wireless devices exclusively (specifically CDMA phones). As a result, it's more versatile when it comes to wireless phones but lacks portability. J2ME if properly integrated with other existing Java technologies such as J2EE, JMS, RMI & Jini will enable Java developers to take full advantage of Java in the wireless world. J2ME supported cellular phone carriers:- AT&T, T-Mobile, and Sprint. BREW supported cellular phone carriers:- Verizon.