Sunday, August 20, 2006

Mobile Java

This is the third posting in the series exploring mobile technology platforms. For introduction to the series please refer to: "What technology platform to choose for development of mobile applications?"

Other postings in the series:
Mobile Messaging
Mobile Web

Mobile Java

Java 2 Platform Micro Edition (J2ME) is a subset of the Java Platform that is designed specifically for smaller devices. The Java platform encompasses Java programming language, Java Virtual Machine (JVM) which runs on top of an operating system and executes Java code, and a set of standard class libraries or application programming interfaces (APIs). J2ME, in comparison to Standard Edition (J2SE) and Enterprise Edition (J2EE), uses smaller JVM and supports smaller set of APIs.

J2ME is divided into configurations and profiles designed for different categories of devices. Configurations define exact set of supported APIs and detail JVM specification. Profiles extend configurations by adding more specific APIs to the configuration. Configuration applicable to mobile devices is called Connected Limited Device Configuration (CLDC). It was designed for smaller devices with intermittent network connectivity. Another example of configuration is Connected Device Configuration (CDC) which has been designed for Internet Appliances. Mobile Information Device Profile (MIDP) is a profile based on CLDC. Mobile Java applications are developed for the specific profile. MIDP programs, also known as MIDlets, would run on any device supporting MIDP.

There are two variants of MIDP – MIDP 1.0 which runs on top of CLDC 1.0 and newer MIDP 2.0 which runs on top of CLDC 1.1. Both MIDP 2.0 and MIDP 1.0 devices are currently on the market.

A variety of tools support J2ME application development. Sun offers the Sun Java Wireless Development Toolkit (http://java.sun.com/products/sjwtoolkit/) and NetBeans Mobility Pack (http://developers.sun.com/prodtech/javatools/mobility/ ). The toolkit provides a complete but rudimentary set of development tools. NetBeans is an Integrated Development Environment (IDE). Other IDEs that support mobile development include JBuilder/Mobile Studio form Borland, WebSphere Studio Device Developer from IBM, and EclipseME. Phone manufacturers provide Software Development Kits (SDKs) that are tailored to their particular devices.

Sunday, August 13, 2006

Mobile Web

This is the second posting in the series exploring mobile technology platforms. For introduction to the series please refer to: "What technology platform to choose for development of mobile applications?"

Other postings in the series:
Mobile Messaging

Mobile Web

Wireless Application Protocol (WAP) is an open standard defining how mobile devices can interact with the Internet. There are two variants of the protocol – WAP 1.x and newer WAP 2.0. WAP 2.0 embraces Internet standards such as TCP, HTTP and XHTML.

WAP enables “Internet like” browsing user experience. It supports textual and graphical content, color, links, forms, menus and buttons. Phones supporting WAP come with pre-installed WAP browser such as the Openwave Mobile Browser.
Applications are developed in a markup language similar to HTML. Three markup languages are available: Wireless Markup Language (WML), Compact HTML (cHTML) and Extensible Hypertext Markup Language (XHTML). WML is the only choice for devices running WAP 1.x browser. WAP 2.0 browsers support both XHTML and WML. XHTML is a refinement of the HTML standard, incorporating the stronger XML set of rules which results in a cleaner and better structured content. XHTML is recommended for use with WAP 2.0 clients. XHTML documents work in conjunction with Cascading Style Sheets (CSS) which provide separation of presentation from content and simplify support for a variety of mobile devices.

Unfortunately the universe of standards is not that simple. There are competing mobile extensions of XHTML such as WML 2.0 and XHTML Mobile Platform (XHTML MP), as well as competing mobile subsets of CSS such as Wireless CSS (WCSS) and CSS Mobile Profile. XHTML without extensions is also referred to as XHTML Basic. Extensions have been designed to address specific constraints of mobile devices such as small screen size and resolution. Different extensions however are supported by different manufacturers.

WAP applications are deployed on web servers similarly to regular web sites. To access an application user opens mobile browser and types in a URL. Carriers typically deploy mobile portals with a pre-selected set of WAP applications accessible through the carrier defined menu structure. Mobile users can bookmark mobile web sites as well as configure portal menus to simplify access to their favorite sites.

To develop mobile sites you need an authoring tool and a phone emulator. An authoring tool may be as simple as a text editor. Many HTML authoring tools support XHTML nowadays. A phone emulator, such as the Openwave Emulator, simplify testing of the sites across many devices.

Sunday, August 06, 2006

Mobile Messaging

This is the first posting in the series exploring mobile technology platforms. For introduction to the series please refer to: "What technology platform to choose for development of mobile applications?"

Messaging

Short Message Service (SMS) allows wireless phones to send and receive short text messages. All carriers and nearly all phones support the sending and receiving of messages. SMS supports e-mail addressing, so the device can send e-mails directly to an e-mail address. For example, to send a text message to the Cingular phone number (415) 123-4567 you simply send an e-mail to 4151234567@mmode.com. For Verizon the e-mail address would be 4151234567@vtext.com.
Messages have a 160-character limit which includes the sender's e-mail address (if applicable), the message and, if provided, the subject and callback number.

SMS application may use Simple Mail Transfer Protocol (SMTP), a protocol used in sending and receiving e-mails over the Internet. Such an application structurally is not different from a non-mobile application that sends or receives e-mails. Another option is connecting directly to the carrier’s SMS access gateway through SMPP (Short Message Peer to Peer) protocol. SMPP is more complex to implement but it offers some advantages such as shorter latency and the ability to confirm delivery.

Multimedia Message Service (MMS) is an extension of the SMS concept. It is a store-and-forward method of transmitting text, graphics, sound files and video clips. Carriers deploy servers, called MMS Centers, to implement the offerings on their networks. MMS also supports e-mail addressing, so the device can send mesage directly to an e-mail address. Verizon’s address for the phone number (415) 1234567 would be 4151234567@vzwpix.com. MMS, however, is not the same as e-mail. E-mails support attachments, MMS does not. Instead, presentation of the message is coded into the message itself so that the images, sounds, and text are displayed in a predetermined order.
MMS messages support up to 1000 characters of text. Multimedia file size limit is 100kb at Cingular and 200kb at Verizon.