Workshop on Mobile Services and Android Applications
MOBILE APPs DEVELOPMENT PLATFORMS
S. Amirtharaj
MOBILE APPs DEVELOPMENT PLATFORMS
- Java 2 Platform, Micro Edition (J2ME)- Wireless Markup Language (WML) - Compact HyperText Markup Language (cHTML)- eXtensible HyperText Markup Language (XHTML)
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of J2ME Technology
JavaTM 2 Platform, Micro Edition (J2ME)
What is J2ME?
The JavaTM 2 Platform, Micro Edition (J2ME) is the Java platform for consumer and embedded devices such as mobile phones, PDAs, TV set-top boxes, in-vehicle telematics systems, and a broad range of embedded devices.
Like its enterprise (J2EE) and desktop (J2SE) and smart card counterparts, the J2ME platform is a set of standard Java APIs defined through the Java Community ProcessSM by expert groups that include leading device manufactures, software vendors and service providers.
What J2ME provide you?1. It delivers the power and benefits of Java technology tailored for consumer
and embedded devices (a flexible user interface, robust security model, broad range of built-in network protocols)
2. It supports for networked and disconnected applications.3. It allows you to write applications once, and download them dynamically
and leverage each device’s native capabilities.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Architecture
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Optional Packages
Personal Profile
Personal Basis Profile
Foundation Profile
Connected Device Configuration (CDC)
JVM
Optional Packages
MDP
Connected LimitedDevice Configuration
(CLDC)
KVM
Mobile Phones &Entry-level PDAs
High-end PDAsTV set-top boxesEmbedded devices
J2ME Architecture
J2ME architecture defines configurations, profiles, and optional packages as elements for building complete Java runtime environments Meet the requirements for a broad range of devices and target markets.
Each combination is optimized for the memory, processing power, and I/O capabilities of a related category of devices.
The result is a common Java platform that fully leverages each type of device to deliver a rich user experience.
Three types of basic elements:
Profiles – provide a complete runtime environment targeted at a specific device categories.
Configurations – provide the base functionality for a particular range of similar devices.
Optional packages – provide a base for further extension based on related setting.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME CLDC & CDC
Connected Limited Device Configuration (CLDC):- CLDC is the smaller of the two configurations.- It is designed for devices with intermittent network connections, slow
processors and limited memory. Typical examples:- Mobile phones Two-way pagers PDAs,
- These devices typically have either 16-bit or 32-bit CPUs, and a minimum of 128 KB to 512 KB of memory for the Java platform implementation and associated applications.
Connected Device Configuration (CDC):- CDC is designed for devices that have more memory, faster processors,
and greater network bandwidth, such as - TV set-top boxes, residential gateways, two-way pagers, POS terminals- in-vehicle telematics systems, and high-end PDAs….CDC includes a full-featured java virtual machine (JVM), and a much larger subset if the J2SE platform than CLDC.
- Most CDC-targeted devices have 32-bit CPUs and a minimum of 2MB of memory.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME CDC
Connected Limited Device Configuration (CLDC) Key Features:- Easily implemented by consumer electronics and embedded device
manufactures.- Comes with a JavaTM virtual machine (JVM), class library, APIS, and
Foundation Profile.- Standardized by the Java Community ProcessTM program for devices with 2MB
or more memory.- Devices currently using the Personal JavaTM application environment can be
ported to CDC.- CDC VM is built with the same specification as the Java 2 platform, standard
edition (J2SETM) virtual machine.- Available today as a free download.
- The CDC is a class library with a minimal set of APIs from J2SETM, includingjava.lang – VM system classes java.util – underlying java utilitiesjava.io – java File I/O java,.net – UDP datagram and File I/Ojava.text – bare minimal support for error messagesjava.security – minimal fine-grain security and encryption for object serialization
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Profiles
J2ME Profiles:Provide a complete runtime environment targeted at specific device categories, configurations.
A) Mobile Information Device Profile (MIDP):-It is designed for mobile phones and entry-level PDAs.-It offers the core application functionality required by mobile applications,
including a) user interface, b) network connectivityc) local data storage, d) application management
B) Foundation Profile (FP):- CDC profiles are layered so that profiles can be added as needed to provide application functionality for different types of devices.- It is the lowest level of profile for CDC.- It provides a network-capable implementation of CDC that can be used for deeply embedded implementations without a user interface. - It can also be combined with Personal Basis Profile and Personal Profile for devices that require a graphic user interface (GUI).
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Profiles
C) Personal Profile (PP):- PP is the CDC profile aimed at devices that require full GUI or Internet applet support, such as high-lend PDAs, communicator-type devices, and game consoles- It includes the full Java Abstract Window Toolkit (AWT) libraries and offers Web fidelity, easily running Web-based applets designed for use in desktop environment.- It replaces Personal JavaTM technology and provides Personal Java applications through J2ME platform.
D) Personal Basis Profile (PBP):- PBP is a subset of PP.- It provides an application environment for network connected devices that support a basic level of graphic presentation or require the use of specialized graphical toolkits for specific applications. -Typical device examples are: TV set-top boxes, in-vehicle telematics systems,-And information kiosks.-Both PP and PBP are layered on top of CDC and FP.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME Optional Packages
Optional Packages:- PP is the CDC profile aimed at devices that require full GUI or Internet applet support, such as high-lend PDAs, communicator-type devices, and game consoles- It includes the full Java Abstract Window Toolkit (AWT) libraries and offers Web fidelity, easily running Web-based applets designed for use in desktop environment.- It replaces Personal JavaTM technology and provides Personal Java applications through J2ME platform.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
J2ME – MIDP Architecture
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Optional Packages
CLDC
KVM
Game User Interface Media
Application Management
End-to-End Security
Local DataStorage
PushRegistry
ConnectivityOTA
Provisioning
MIDP
Mobile Information Device Profile (MIDP)
The MIDP combined with CLDC, is the javaTM runtime environment for today’s mobile information devices such as phones and entry level PDAs.
- MIDP is defined by through the Java Community ProcessSM program - MIDP defines a platform for dynamically and securely delivering highly
graphical, networked applications to mobile information devices.- MIDP provides the core application functionality required by mobile
applications as a standardized java runtime environment and set of java APIs.- Using MIDP, developers can write applications once that are optimized for
today’s mobile information devices.
Deployment Status: - It has been widely adopted as the platform of choice for mobile applications.- It is deployed globally on millions of mobile phones and PDA, supported by
leading Java technology integrated development environment (IDE).
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
MIDP is designed for mobile users:- Allow them to write networked applications for mobile devices.- These mobile applications can be download dynamically and run on the
mobile devices.- They can be easily updated and removed by the end user.
Mobile user interface support based on a high-level user interface API. This helps developers to build easy to use, highly graphical and portable applications optimized for mobile information devices.
MIDP user interface functionality includes:- Pre-defined screens for displaying and selecting lists, editing text, popping up
alert dialogs, and adding scrolling tickers.- Each form (or screen) can include any no. of predefined items – images,
ready-only text fields, editable text fields, editable date and time fields, charts, and choice groups as well as any custom items added by developers
- All screens and items are device-aware with built-in support for the native display size, input and navigation capabilities. portable and flexible.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
Multimedia and Game FunctionalityMIDP is ideal for building portable games and multimedia applications.- A lower level user interface API provides developers great control of graphics
and inputs when they need it.- A game API adds game-specific functionality, such as sprites and tiled layers
that takes advantage of native device graphics capabilities.- Built-in audio provides support for tones, tone sequences and WAV files.- Mobile Media API (MMAPI) can be used as an optional package for MIDP to
add video and other rich multimedia content.
Over-the-Air Provisioning - The MIDP specification defines how MIDP applications are discovered,
installed, updated and removed on mobile information devices.- The MIDP also enables a service provider to identify which MIDP
applications will work on a given device. - Its OTA Provisioning model has been defines to delivery a reliable, secure
provisioning solution.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
Extensive Connectivity enable developers to fully leverage the native data network and messaging capabilities of mobile information devices.
- It supports leading connectivity standards:HTTP, HTTPS, datagram, sockets, server sockets, and serial port comm.It also supports the Short Message Service (SMS0 and Cell Broadcast Service
(CBS) capabilities of GSM and CDMA network through the Wireless Messaging API (WMA) optional package.
- It supports a server push model. A push registry keeps track of applications registered to receive inbound information from the network.When information arrives, the device decides if to start the application based
on user preference.
The push architecture enables developers to include alerts, messaging and broadcasts in MIDP applications, and leverage the event-driven capabilities of devices and carrier network.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Mobile Information Device Profile (MIDP)
End-to-End security based on a robust security model (with open standards) to protect the network, applications and mobile information devices.
- The use of HTTPS leverages existing standards such as SSL and WTLS to enable the transmission of encrypted data.
- By default MIDP applications are not trusted, and are assigned to untrusted domains that prevent access to any privileged functionality.
- To gain privileged access, a MIDP application must be assign to a specific domains that are defined on the mobile device, and are properly signed using the X.509 PKI security standard, installed and granted associated permissions. It must be successfully authenticated.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
An Overview of cHTML Markup Language
What is the Compact Markup Language (cHTML)?
• Similar to WML and XHTML, cHTML is another thin markup language.• It is a well-defined subset of the HTML(2.0, 3.2, and 4.0) specifications.• It can be viewed as a content description language to generate pages for
iMode devices.
Objective of cHTML:1. It was designed for small information appliances, such as smart phones,
communicators, and PDAs.2. Its development was initiated by the W3C as an alternative development of
the trend of HTML expanding towards to support for a richer multimedia document format.
History of cHTML:• It was submitted as a Note to the W3C in 1998, and is available discussion
purpose only.• The 3WC has not endorsed cHTML, nor made any contribution to the
language in anyway.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
The creators of cHTML have taken the following requirements into account:
• Hardware restrictions of the devices, including limited memory, low power central processing unit (CPU), and small displays.
• The navigation restrictions of the device: Moving between sets of information has to be possible with a minimum no. of operations.
• Wireless network agnostic: the markup language does not depend on the underlying wireless protocol being used.
The design of cHTML is based on four main principles:• It is completely based on current HTML W3C recommendations.• It is a light specification, allowing it to run on mobile devices.• It can be viewed on a mono-screen display.• It is easy for users to operate.
cHTML is one of the most popular subset of HTML. Its popularity is based largely on the fact that cHTML is the markup language used by the phenomenally successful i-Mode services from NTTDoCoMo in Japan.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
Major features of Compact Markup Language (cHTML):
To accomplish the goals of the cHTML, certain features of HTML have to be excluded. The typical examples are:• Support for frames and tables• JPEG image support, image maps• Multiple-character fonts and styles• Background color and images• Style sheets
Basic hardware requirements of cHTML-based mobile devices:• Small memory: i.e.128-512Kbytes RAM, and 512K-1Mbytes ROM • Low power CPU: i.e. 1-10 MIPS class CPU for embedded systems • Small display: i.e. 50x30 dots, 100x72 dots, and 150x100 dots • Restricted colors: i.e. mono-color (black and white) • Restricted character fonts: i.e. only single font • Restricted input method: several control buttons and number buttons
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of cHTML Markup Language
Major benefits of cHTML:• cHTML-based websites also can be accessed by Web users through regular
internet accesses.• It provides a simple way for mobile devices users to access the Internet.• I-mode-compatible HTML websites are easy to navigate, since all basic
operations can be performed using a combination of four buttons: Cursor forward, Cursor backward, Select, and Back (Return to previous page). Most phone browsers also provide a "Page Forward" button.
Issues of cHTML:
o Standard issue: It is not standard so it is a transition technology.o Original version of cHTML does not support scripting. Later Sun
Microsystems and DoCoMo are working together to add on.o Not XML-based sloppy programming in cHTML.
Now cHTML is being replaced by XHTML in the i-Mode service XHTML becomes the language of wireless Internet.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
An Overview of XHTML (http://www.w3.org/TR/xhtml1/)
What is XHTML?
• XHTML stands for the eXtensible HyperText Markup Language.• “XHTML” is not just refer to a language, but a name of a family of document types
which collectively form this markup language.• XHTML is an XML-compliant version of HTML 4.• XHTML is the direction in which wireless markup language are moving.• XHTML 1.0 became an official W3C recommendation in early 2000, making it a Web
standard. It is almost identical to HTML 4.01 with a few rules added for XML compliancy.
The Need for XHTML:• There are many ways to express and present information using markup
languages. In XML, it is relatively easy to introduce new elements or additional element attributes. XHTML is designed to provide a standard means for developers and users to accommodate these extensions.
• Alternative ways of accessing the Internet are constantly being introduced. The XHTML family is designed with general user agent interoperability in mind.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
Why XHTML?
- Current desktop web browsers allow for very poorly formatted HTML Web pages making it difficult to have cross-platform, or even cross-browser, compatibility.
- Although poor programmed HTML pages work ok on browsers on desktops, it causes a lot of problems in working with mobile browsers on mobile devices (such as PDAs, mobile phones) due to their limited computing power and resources.
This is where XML comes into play because: • XML requires all code to be programmed correctly, making the job of the
interpreter (or the browser) much easier.• XML is a language of describing data, and HTML is a language of
presenting data. When combing them together, the result is a markup language that can be used now and is adaptable to future change.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
Next Step of XHTML:
• In the not-too-distant future, XHTML is intended to be a replacement for HTML. Most of new desktop Web browsers will support
XHTML natively, resulting in a higher level of compatibility among browsers.
• W3C has defined “XHTML Basic” as a new standard for compact transmission of markup to wireless and mobile devices.
• With support from both the Open Mobile Alliance and W3C, XHTML Basic is assured to have widespread acceptance now and in the future.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
How XHTML differs from HTML?
Most important differences : • XML requires all code to be programmed correctly, making the job of the
interpreter (or the browser) much easier.• XHTML documents must be well-formed because XHTML is XML-
based documents must conform to XML syntax rules.• XHTML elements must be properly nested.• Tags and attributes must be lowercase. • ALL (XHTML element) must be closed.• All attribute values must be enclosed in quotation marks.• A DOCTYPE declaration is required.
The major advantage of XHTML over HTML are:• Easily to take advantage of new coding techniques • Solve the problems with the earlier versions have been fixed• Good extensibility: XML-based data description capability• Good portability: deal with different browsers on mobile devices
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
What is XHTML Basic?
• XHTML Basic is a W3C recommendation and a basic version of XHTML created specifically for mobile devices.
• XHTML Basic (document type) includes the minimal set of modules required to be an XHTML host language document type including the use of images, forms, basic tables, and object support. XHTML Basic defines a document type that is rich enough for advanced content authoring yet can be used across a variety of clients, including desktops, PDAs, TV, and mobile phones.
• XHTML Basic is a subset of XHTML that removes a number of features—scripts, events, frames, and many text and font presentation directives.
• XHTML appears to be positioned to supercede WML, and perhaps provide the common ground between i-mode and WML.
• XHTML Basic could be designed to be compatible with WML, although it's not clear if or when this will happen.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of XHTML
What is XHTML-MP?
XHTML Mobile Profile 1.0 is the official mark-up language of WAP 2.0 created by the Open Mobile Alliance (OWA) (formerly the WAPForum).
The goal is to converge the mark-up language for wireless devices with one used for World Wide Web.
XHTML-MP is a superset of XHTML Basic.
XHTML-MP takes advantages of XHTML modularization and is very extensible permitting the addition of new elements as required.
Documents based on the Basic Profile of XHTML will be completely operable in XHTML-MP browsers.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
History of Wireless Mark-up Languages
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Openwave
Ericsson
Nokia
Netscape/AOL
Microsoft
NTT(DoCoMo)
1997 20011999
HDML
ITTP
TTML
WML
HTML
XHTML, CSS
cHTML
An Overview of Wireless Markup Language(WML)
An Overview of WML
What is the Wireless Markup Language (WML)?
• The WML is a part of Wireless Application Environment (WAE) as defined in the Wireless Application Protocol (WAP).
• Unlike HDML, WML is based on XML, making the syntax requirements somewhat stricter
• Using WML, we can develop wireless internet applications run on a mobile browser on mobile devices
WML has been influenced by a number of languages, such as HTML, HDML (Handheld Device Markup Language), XML, and an emerging document structure language.
- From HTML, WML designers learned its syntax.- From HDML, WML designers learned its application model -> which is
focus on the support of interactive operations between a browser and a user.
- From XML, WML designers makes it XML-compliant to gain the power of describing data and information.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
Objectives:• WML is targeted directly at mobile information devices such as
cellular phones, PDAs, two-way pagers, and smart phones.
• WML is designed to address to the limitations and connectivity requirements of lightweight, wireless devices in memory, data inputs,
display screen, and computing power.
History of WML:• WML is a successor of HDML, developed by Openwave, Nokia, Motorola,
and others as represented by the WAP Forum (now the Open Mobile Alliance) since 1999.
• WML is defined as a part of the WAP standard, and gone through a number of releases, such as WML 1.1, 1.2, 1.2.1, 1.3, and so on.
Until now, WML gas generated tremendous support throughout the wireless industry. It has a wide scale of deployment throughout Europe, North America, South America, and parts of Asia.
Most of the handsets being shipped in these regions support WAP and include WML browsers.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
Major WML Features: • A WML document is called a deck (similar to a HTML page).• Each deck includes a number of cards which contains content for viewers
and instructions to the WML browser.• Each card may include
(A) user interface elements:text, pictures, list of choices, text field places for inputs.(B) Actions that define what happens next for event, links,..Event bindings – link events (such a key) to a task.(C) External elements, such as references to pictures and scripts.
• Each WML document must consists of the followings:• (A) Markup elements with attributes, tags,• (B) Comments• (C) WMLScripts• (D) Variables – allows you to alter your content dynamically.• (E) Images • (F) Simple Tables• (G) Links• (H) Events, Tasks, and Bindings
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
A WML event is some occurrence of interest that can be recognized by the browser.
Types of events: a) intrinsic events and b) user-initiated events• Intrinsic events are triggered by WML elements, for example, a card can
trigger an event when the browser “enters” it.• User-initiated events are triggered by direct action of the users, such as the
selection of an item from a menu.
A task is an activity that the browser can perform.When the browser detects the occurrence of an event that has an associated task,
it executes the corresponding tasks.
There are for types of WML tasks:• The go and prev tasks, direct the browser to navigate to another card.• The go task initiates “forward” navigation to a new URL.• The prev task instructs the browser to return to the previous location popped
from the history stack.• The refresh task causes the browser to redisplay the current card.• The noop task tells the browser to do nothing.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
Linking Events to Tasks:
WML allow you to define handlers for them using the onevent and doelements, respectively.
Intrinsic Event Types:• Onenterforward – occurs when a card is entered as a result of forward
navigation.• Onenterbackward – occurs when a card is entered as a result of backward
navigation.• Ontimer – Occurs when a timer expires.• Onpick – Occurs when a user selects or deselects an option in a list.
Since WML is XML-based, it has to adhere to the rules of XML.Major differences between HDML and WML:• All WML elements must be closed.• WML elements must be properly nested.• WML documents must be well-formed.• WML tag names must be lowercase
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
An Overview of WML
What is WMLScript:• WMScript provides a way to add more advanced capabilities to WML
applications. Just as JavaScript of VBScript may be used in conjunction with HTML.
• WMLScript is used with WML to provide client-side logic.
The following are some of the most common uses of WMLScript for WAP applications.
• Validation of user input• Access device facilities, such as adding numbers to an address book• Creation of dialogs and messages, avoiding round-trips to the sever
Within your WMLScript pages, you can • Create both For and While loops• Create functions, and libraries of functions• Display dialog boxes• Have advanced interaction with the microbrowser
Make sure both microbrowser and the WAP gateway have WMLScript support.
Topic: MOBILE APPs DEVELOPMENT PLATFORMS
Thank You
Topic: MOBILE APPs DEVELOPMENT PLATFORMS