Developing Applications for Mobile Devices – Part 1

An Introduction to Mobile Technology

by Sharee English

ç


Sharee English

The use of Mobile Devices such as cell phones with Web access and Personal Digital Assistants (PDAs) is becoming more common and studies indicate that the number of mobile device users will keep on growing at tremendous rates. This boom in mobile device usage is largely attributed to the technology that the mobile devices offer. In October 2005, Nokia published some statistics (see Figure 1), comparing the number of data packets generated by different data services for Smartphone users.

 

 

Figure 1- Data packets generated for smartphones by different data services.

 

The demand for wireless services seems to increase exponentially every year. This results in an ever-increasing infrastructure in which to support the “Wireless Web.” Although it is becoming more reliable as it grows, the increase in demand doesn’t come without its challenges.

 

One of the many challenges is that developers have to create additional Web pages specific to mobile devices. This creates additional work both in the development of the pages as well as the support for keeping the pages updated and consistent with the regular (non-mobile version) Web site. Another challenge is that mobile devices utilize a set of components that developers have to learn. In addition, each mobile device is different and may or may not support certain features, thus developers have to test on many different devices.

 

With all these challenges, it is understandable why Web technology for mobile development has been slow. However, with mobile devices outnumbering personal computers three-to-one and mobile networks approaching broadband speeds, it is inevitable that we will see the Web and mobile technologies converge.

 

In this series of articles I will address some of these challenges, discuss some of the general technology used with mobile devices, present considerations for mobile Web design, and provide hands-on example of creating a Web page for a mobile device.

A Background on WAP and WML

The Wireless Application Protocol (WAP) is a suite of network protocols that specify ways of sending data across the airwaves. Mobile devices with a specialized piece of software called a WAP browser (also called a micro-browser) are considered "Internet capable." Although the capabilities of the mobile devices have changed significantly in the past years, many mobile providers still rely on the WAP browser to offer Internet services. Other mobile devices have common browsers, such as Microsoft Internet Explorer, but these applications are not the full-blown versions we are used to seeing on the desktop computers. Instead, they are written specifically for mobile devices and do not have all of the same capabilities as the desktop versions.

 

When working with mobile devices there are two types of protocols used. At the bottom there are low-level protocols that are responsible for establishing connections, coding alphanumeric characters, etc. At the top there are high-level protocols, such as the Wireless Markup Language (WML), which handle the passing page information.

 

WML is a lot like HyperText Markup Language (HTML) in that it provides navigational support, data input, hyperlinks, text and image presentation, and forms. WML is based on eXtensible Markup Language (XML), a language that has generated enormous support due to its ability to describe data.

 

One of the primary differences between HTML and XML is that HTML is used to describe the display of data, while XML focuses on the data itself and does not care about the display. In addition, HTML predefines a "canned" set of tags guaranteed to be understood and displayed in a uniform fashion by a Web browser, while XML allows the document creator to define any set of tags. The set of tags is then grouped into a set of grammar "rules" known as the Document Type Definition, or DTD.

 

The official WML specification is developed and maintained by the WAP Forum, an industry-wide consortium founded by Nokia, Phone.com, Motorola, and Ericsson. This specification defines the syntax, variables, and elements used in a valid WML file. The actual WML 1.1 DTD is available here.

 

Mobile technology has progressed to the next set of mobile devices with much more extended capabilities than a simple micro-browser. With various types of underlying technologies (Palm, Microsoft Windows Mobile, Symbian, or Java), the display capabilities are greatly enhanced from the simple monochrome WAP micro-browser with small text-only screens. Additionally, user interaction now ranges from touch screens to thumb-operated keypads, with Web browsing capabilities and support for many of the standards found on a desktop browser, such as Internet Explorer, Mozilla Firefox, or Opera.

 

The underlying structure of Web-based support on mobile devices is very similar to that of a desktop or a laptop computer. The end-user application is a Web browser that can produce very complex, graphical, and highly-interactive interfaces from data delivered in HTML and XML or their mobile equivalents, therefore bringing the mobile corporate enterprise one step closer to reality through the mobile Web. However, these mobile browsers still do not provide the full functionality of a desktop Web browser; this presents some limitations on the full Web experience.

 

To make such mobile extensions of corporate applications, it is crucial to have products that provide a comprehensive development and deployment platform and also support the creation of new corporate applications and transactions that can be Web-enabled for mobile devices.

Application Development - It’s All About Services

Mobile devices are no longer simple gadgets for presenting static information such as Web pages. They are fully-programmable interactive systems with applications built for them by conventional development environments, like Microsoft Visual Studio, which are typically used for desktop and laptop computers. Developers can address some of the device-specific issues by creating Web services. Web services allow different applications from different sources to communicate with each other without time-consuming custom coding. In today's world, applications for mobile devices can consume Web services and work easily with any corporate systems.

 

The expansion of mobile devices and their built-in capabilities has led to the growth of the possible range of new applications to be built. Windows Mobile devices provide full support for the Microsoft programming environment. For instance, Microsoft Compact .NET Framework (.NET CF) is implemented on PDAs, Phone Edition PDAs, and Smartphones. In addition, support for Java 2 Platform, Micro Edition (J2ME) on Palm devices and many phones based on the Symbian operating system, such as Nokia and Sony-Ericsson, allow Java programs to be written for and run on even generic cell phones. These applications can be delivered and installed on the mobile device automatically and wirelessly through a capability called Over-The-Air (OTA) provisioning.

 

With these new, diverse options for developing applications, organizations have new opportunities for corporate use of mobile devices and integration with corporate applications. With Microsoft .NET CF, it is possible to develop applications to run on the mobile devices that interact seamlessly with corporate assets over wireless networks. For example, a wireless PDA application can be built to interact with a mobile middleware solution, which in turn interacts with the mainframe legacy system or contemporary systems, such as SAP.

 

It seems probable that eventually most software capabilities will be delivered and consumed as services. Of course, they may be implemented as tightly-coupled systems, but the point of usage—to the portal, to the device, to another endpoint, and so on—will use a service-based interface. Service-Oriented Architecture (SOA) expresses a perspective of software architecture that defines the use of services to support the requirements of software users.

In an SOA environment, resources on a network are made available as independent services that can be accessed without knowledge of their underlying platform implementation. The service is the major construct for publishing and should be used at the point of each significant interface. SOA allows us to manage the usage of related services. This will have big implications for how we manage the software life cycle—right from specification of requirements as services, design of services, acquisition and outsourcing as services, asset management of services, and so on.

 

Over time, the level of abstraction at which functionality is specified, published and/or consumed has gradually become higher and higher. We have progressed from modules, to objects, to components, and now to services. SOA has a number of parallels with object orientation (OO) and component-based development (CBD).

 

Services represent natural building blocks that allow us to organize capabilities in ways that are familiar to us. Similar to objects and components, a service is a fundamental unit that combines information and behavior, hides the internal workings from outside intrusion, and presents a relatively simple interface. Where objects use abstract data types and data abstraction, services can provide a similar level of adaptability through aspect or context orientation. Where objects and components can be organized in class or service hierarchies with inherited behavior, services can be published and consumed individually, or as hierarchies, and/or collaborations.

 

For many organizations, the logical starting place for investigating SOA is the consideration of Web services. However Web services are not inherently service oriented. A Web service merely exposes a capability that conforms to Web services protocols. Web services, lying within the broader world of SOA, will be the driver for the new mobile economy. The underlying principles of SOA are not new; existing client-server systems, such as CORBA and DCOM, have delivered distributed applications for quite some time. However, unlike these client-server systems, SOA allows information providers to be developed entirely independently from information consumers through intercommunications standards that are exposed through Web services.

 

The information providers—legacy IBM mainframe applications, the more modern contemporary applications like SAP, or a combination thereof—that span various platforms will remain the core drivers of business in the enterprise. As an integration layer is needed between the "old" applications and the "new" Internet-enabled mobile economy for standardized information integration, the challenge then becomes Web-enabling or mobile-enabling existing corporate assets to transform the transactions lying in the disparate systems into services that can be consumed by other applications and systems.

Summary

Mobile technology opens excellent competitive opportunities for companies by enabling crucial corporate information to travel with employees, partners, and customers wherever they go. The "go anywhere" coverage of mobile networks and the exponential growth of Internet-enabled mobile devices make the mobile enterprise a viable and cost-effective proposition. The more a company's application assets are Web-enabled and the business processes are presented as Web services, the more those company assets can be utilized to easily deliver high-value mobile solutions.

Additional Reading

Mobile Browsing Becoming Mainstream

WML Quick Reference Guide

http://www.devguru.com/Technologies/wml/quickref/wml_intro.html

http://www.softsteel.co.uk/tutorials/wmltut/index.html

 

Books

Learning WML & WMLScript

Beginning WAP, WML, & WMLScript

WAP Development with WML and WMLScript: The Authoritative Solution, with CDROM

Enterprise SOA: Designing IT for Business Innovation

See Also

Part 2
Part 3 (coming soon)

 


Sharee English (MCSD, MCAD, MCT) is the Director of Information Services at SeattlePro Enterprises, an IT training and consulting company. She started her career as a programmer, delving into Web technologies almost twenty years ago. Today she is a highly educated executive with background in software development, training, authoring, management, operations, administration and sales. Sharee holds a Master of Arts in Management (emphasis in Information Systems), a Bachelor of Science (B.S.) in Computer Science and a B.S. in Mathematics.


If you would like to provide feedback on this article, please click here.


Copyright ©2006 SeattlePro Enterprises. All rights reserved.