The Perfect Storm
The Perfect Storm
Mar. 14, 2001 05:14 PM
People thinking about wireless applications for business are in a dither about wireless technology and where it's going. Wireless will change a lot in the next few
years. But instead of trying to predict the future of wireless standards, developers should be investing in an application architecture that will last them through
technology changes, increasing wireless usage, and the changes in business models that wireless will entail.
Layered application architectures based on the Java 2 Platform, Enterprise Edition (J2EE), can provide a platform for wireless applications that is channel
neutral, adapts easily to new wireless technologies as they mature, and scale to support the potentially millions of concurrent users that wireless applications will
Business people contemplating the development of wireless applications are stressed over trying to predict where wireless will go. Today it's alphabet soup.
What will be the fate of WAP versus i-mode. What will happen with the differing international telecommunications standards such as CDMA and GSM? What can
we expect with the new generation, GPRS and UMTS? Where does messaging fit in? And we haven't even begun to think about the big changes coming in digital
TV and all the other new channels coming onstream.
Getting into wireless applications today feels about as safe as jumping off a bridge into a riptide in a hurricane. And while perception is often reality, in this case
you can jump in. The water's fine. The trick is not to get hung up on all the standards and protocols, but to concentrate on a few simple facts.
First, the most important change in wireless communication today is the evolution from circuit-switched to packet-switched networks, because
packet-switching technology will provide the bandwidth needed to make wireless business applications practical. Second, you don't have to hang back, waiting for
the wireless technology market to settle out. There will always be newer and better technology just around the corner, so you could be waiting a long time. With the
right application architecture, you can get in early and successfully, and plug in the best new communication technology as it arises.
Let's look briefly at the evolution of wireless technology - where it is today and where it's going over the next couple of years:
- First and foremost, wireless Internet access is a great business opportunity. More than that, it will soon be a business necessity. There are 350 million mobile
phone users today. That number will grow to more than 1 billion by 2003, and 600 million of those users will use wireless devices to access the Internet versus an
installed base of only 400 million PC users. If you want to reach people through the Internet, you'll need to reach at least 60% of them by wireless much of the time.
- In thinking about wireless applications, it's important to distinguish between transport issues and application-level issues. Today's circuit-switched transport
protocols (GSM in Europe and CDMA in the U.S.) are not ideal for wireless applications. They're low bandwidth (4-28.8Kbps), and half of that bandwidth is taken
up with connection overhead. This year the industry will move to faster, higher-bandwidth, packet-switched protocols (GPRS and CDMA 2000). Beyond that,
things will get even better: by 2003 UMTS and other 3G technologies promise 2Mbps data streams.
- Wireless application protocols are evolving to make more efficient use of the wireless bandwidth soon to be available. The international standard Wireless
Application Protocol (WAP) provides more efficient Internet access than HTML because the communications stream is sent as encoded binary rather than bulky
text. Wireless Markup Language (WML) provides simplified page descriptions and scripting for wireless applications, and lightweight Java Messaging Service
(JMS) will help guarantee delivery of wireless communications.
- Wireless devices are evolving to take advantage of faster transport mechanisms. The current generation of so-called smart phones is already WAP-enabled.
Second-generation phones based on Palm OS and EPOC will have more memory and better displays and keyboards to handle more sophisticated wireless
applications, and future devices will combine the functions of phones and personal digital assistants (PDAs) such as the Palm handheld organizers.
Within a few years wireless applications will evolve from simple e-mail delivery and paging to true user-centric m-business. Higher bandwidth protocols, more
flexible devices, and alternative application models such as Java clients will support increasingly sophisticated wireless applications for businesses and consumers.
Flourishing in the Storm
The winds of change are strong in the wireless world, so in designing wireless application systems think willow, not oak. The goal is to create an adaptable
application architecture that protects vital business information and makes it available through a variety of communication channels in a personalized way, from
wireless to conventional Internet access to system-to-system communication. Application architectures for wireless need to be:
"Supple" Wireless Application Architecture
- Channel-neutral: Businesses need the immediacy of wireless communication with the flexibility to access the same business applications
using other front-end technologies.
* "Future-enabled": Bad buzzword, but you know what I mean. Applications must be built to incorporate improvements and emerging new
standards in wireless technology with minimal rework and minimal disruption to business processes and users.
* Adaptive: Applications must support new business models that wireless communications will foster. For example, current Internet applications
are based primarily on a "pull" model - users connect and make requests, and applications respond. With packet-switched protocols, users are always on, inviting a
"push" business model where users can register interest in events and be notified in real time. For example, a user might get on a waiting list for a plane reservation
and be notified via a wireless device when a seat becomes available.
The best way to incorporate all these wireless applications is with a layered application architecture centered around object application servers that protect
business assets regardless of changes in front-end technology. J2EE is a natural fit for this kind of architecture because it's layered by definition.
J2EE is a component-based architecture in which requests from users are handled through a servlet engine - a presentation engine for objects that typically runs
in an object application server. The servlet engine assembles content dynamically either by accessing data directly from a database or through business objects
executing on the application server. The application server then retrieves data of record from back-end databases or integrates data from other business systems.
The beauty of this approach is that the presentation engine and the business engine don't need to know where the data is coming from or where it's going.
Applications are channel-neutral because the WAP or Web server on the front end takes care of front-end communication issues and user interface issues. And
because the layers isolate business information and rules from transport issues, you can incorporate new front-end technologies just by changing the front-end server.
The Changeable Heart
The application server is the core of a "supple" application architecture for wireless applications. A next-generation platform technology offers all the benefits of
J2EE, and supports new business models through multichannel delivery of personalized content and transactions, rules technology, and customer profiling and
reporting as well as out-of-the box alerting mechanisms and other technologies. It also supports business growth and success through the same things business
systems have always needed: scalability, high availability, reliability, and so forth.
There are several features to look for in choosing an application platform for wireless applications. Let's take a look at some key core requirements. A
clustered multi-VM architecture with a shared object cache is critical to scalability because it makes optimal use of all available resources, ensures high availability
through efficient clustering that is transparent to applications, and supports multiple channels with highly tuned banks of Java VMs communicating through the shared
cache (see Figure 1).
Scalability is paramount in wireless applications because of the sheer numbers of anticipated users and all-the-time connectivity. New push business models will
put an even greater burden on the application server. Most of those currently on the market offer a single JVM per host machine and keep clusters of these
single-VM application servers in sync at the cost of duplicate hardware and increased system administration. As load increases, these systems must be taken offline
to add more hosts.
Wireless applications are best served by an application server that supports multiple VMs per server with multilevel load balancing that matches processing
needs for specific operations to JVMs configured to meet those needs. This kind of multi-VM architecture will scale faster and more cost-effectively to meet the
needs of always-on wireless applications, and banks of VMs can be configured and dedicated to serving multiple concurrent channels. A shared object cache can
give many JVMs, hence many applications and channels, efficient shared access to the same objects and events. In particular, the shared cache:
- Transparently and efficiently synchronizes clusters of VMs without impacting the developer or the application
- Enables inter-VM communication and collaboration
- Supports the transparent swapping in and out of VMs in the production system for online application releases and to replace VMs that are getting too long
in the tooth
- Provides transparent persistence for objects to minimize object-to-relational translation for in-process data, plus support for distributed, heterogeneous
Wireless applications are interrupt-driven by nature. (I'm using my smart phone and I spill coffee. I lose the signal when my train goes through a tunnel.) To deal
with this, look for application infrastructures that will transparently persist session state, so that applications don't lose context when connections are interrupted.
More important, asynchronous communication is the preferred mode for wireless communications. Wireless applications are already using lightweight Java
Message Service (JMS) within the J2EE architecture to provide message queuing and publish/subscribe capabilities with guaranteed delivery, security, and a small
footprint suitable for wireless devices. JMS and always-on applications require a highly parallel application server architecture with background processes to monitor
for and send events, supporting push business models and protecting users from the inherent problems of network coverage.
High availability is always important to business applications, but it's even more critical in the always-on world of wireless. Application servers for wireless
should provide high overall reliability, plus automatic failover at the exact level required to ensure continued service (VM, server, host, etc.). Precision failover is
more cost-effective and less disruptive to running applications, especially if session context is stored in a persistent object cache. In addition to transparent failover,
application servers should support maintenance, upgrades, and deployment of new applications while remaining on line.
A Case in Point
For some companies wireless applications will be just one new interface in the overall information strategy. For others, wireless communication will be the base
on which their businesses are launched. Look at how wireless fits into an entirely new kind of business model, a digital exchange in which various business partners
collaborate to manage projects; find information on products, regulatory requirements, and market conditions; and purchase materials from a wide array of suppliers.
Wireless devices and applications play many roles in the digital exchange's information network.
- Suppliers use handheld devices to update product inventory. They may also push promotional or product availability information out to
purchasers through mobile devices.
- Sales representatives use multicommunications Devices (MCDs) to generate quotes and fax or e-mail them to customers from the field.
- Purchasers use PDAs to download product and other information, enter transactions, or check order status.
- Project managers use PDAs to check schedules and manage projects remotely.
- Partners use WAP-enabled cell phones to retrieve messages regarding project issues or to send messages to other team members.
Alphanumeric pagers also support Internet e-mail, faxing, and messaging.
This digital exchange's e-commerce system must support all these types of wireless communication (see Figure 2). And even more important, it must support
them through the same system that provides POIA (plain old Internet access), XML access to suppliers' business systems, FTP access for file transfers, JMS/MQ
access to mainframe systems, JDBC access to back-end databases, and future types of access they haven't even thought of yet.
Fortunately, the designers and builders of this hypothetical digital exchange are as wise as we are, and they've planned their business around a layered J2EE
architecture running on a next-generation application platform. They'll be able to support all their different channels with the same business engine. They'll be able to
personalize services and make them highly adaptable. Even within a single channel, such as wireless, all transactions aren't alike. For example, numerical paging
doesn't have the same processing overhead as booking a product order. With their multi-VM application server, the digital exchange will dynamically assign specially
tuned banks of VMs to handle different channels and transaction types. Transmission problems in any channel will be dealt with transparently because session state is
stored automatically in the shared persistent object cache, which also maintains transaction control for business objects in the application server and across the many
systems and databases integrated through the application server.
The lesson of this scenario is that wireless can bring tremendous value to business applications through its wide acceptance and its anytime, anywhere presence.
It's important to remember, though, that the big value of e-commerce, m-commerce, or any other newfangled kind of automated commerce you care to name is the
ability to integrate, streamline, and extend business processes for better service and business growth. And to do all that, you need the right system architecture from
front end to back office.
The Perfect Storm
The storm of change in wireless technology can be an opportunity for those who get in early. Wireless lends itself to totally new types of applications, and its
immediacy can be a powerful differentiator in existing business interactions. The trick is to set sail now, armed with an application architecture that will carry you
forward safely and profitably, wherever the wind may take you. Smooth sailing!
I'd like to thank Paul Chambers, former CTO (Europe) of GemStone Systems, Ltd., a Brokat company, and Anita Osterhaug, currently director of knowledge
products for Brokat Infosystems in California, for their original work on this article.
A MINI WIRELESS GLOSSARY
CDMA: Code Division Multiple Access; circuit-switched wireless transport protocol used mostly in U.S. and Asia
CDMA 2000: Next-generation packet-switched version of CDMA
EPOC: An operating system, application framework, and application suite optimized to support wireless devices such as smart phones
GPRS: Generalized Packet Radio Service; next-generation (2.5G) packet-switched wireless transfer protocol based on GSM
GSM: Global System for Mobile communications; European standard circuit-switched wireless transport protocol
SMS: Short Message Service, standard for alphanumeric messaging in GSM Networks
MCD: Multicommunications device that combines several functions such as phone, fax, paging, e-mail, or personal organizer
mSign: Industry consortium pushing standardization of Mobile Electronic Signatures forward (www.msign.org)
UMTS: Universal Mobile Telephone Standard, third-generation (3G) technologies with bandwidths in the megabit range
UPD: User Datagram Protocol; lightweight Internet protocol that provides only basic services.