Multichannel application hosting platform
In today's mobile computing world, a broad range of end-user devices
can potentially access data and applications on servers, much like
desktop computers access HTML sources across the Internet. A common
feature among these mobile devices is their browser-centric architecture:
content is transmitted from the server to the client in the form
of a marked-up document, all interaction at the client device is
orchestrated through a user-interface that is generated and maintained
by a generic browser program. But devices differ greatly with regard
to their input, output, and processing capabilities; with regard
to their content formats (wml for WAP devices, or VoiceXML for voice-based
browsers, for example); and with regard to their user interface
paradigms, including alternative modalities such as voice or combinations
of voice and text. Most significantly, the interaction patterns
and typical usage scenarios vary from one device to another.
Providing adequate services to mobile devices is thus more complex
than providing services to uniformly configured HTML browsers. An
application must deliver information through different channels,
and the content format and interaction modality must be selected
according to the requesting device. We have designed an application
hosting platform aimed at facilitating the development and hosting
of such multichannel applications, illustrated in the figure below.
Its architecture not only allows applications to generate the appropriate
content format for each device, but also allows authors to define
a device-specific view on the application's data and features, thus
providing optimal application interaction for each device.

Our platform acts as a bridge between the user's receiving device
and an application server's back-end data sources. The back-end
data sources may be transaction engines, in which case we provide
a suitable access "window" into those transactions, allowing the
user to select among them, enter the relevant parameters, trigger
a specific transaction, and retrieve the resulting data sets. Alternatively,
the back-ends can be plain data sources (such as databases, data
warehouses, news feeds, etc.), in which case the platform hosts
the actual application logic as well. We provide a framework for
the strict separation of device-independent logic from the markup
generation. By separating the logic components of an application
from the front-end in a thorough manner, additional devices can
be added easily by supplying an additional set of markup generation
components, without requiring other parts of the application to
be modified. Conversely, migrating an existing application to a
modified back-end system with the same functional characteristics
affects only the logic components and does not require changes to
the markup generation.
The JSP (Java server pages) mechanism was selected to drive the
overall application architecture. JSPs are output templates from
which Java Beans, which implement the application logic, can be
polled; if used correctly, one can guarantee that only application
logic that is relevant to a specific device-dependent markup is
being executed. An additional component of the platform, the "WhaleInvoker",
dynamically selects and executes the appropriate combination of
Java server pages and Java beans to satisfy a data request from
an end-user device. The multichannel application hosting platform
was used to develop the Swissair "Easy Check-In" service, which
allows selected Swissair passengers to check-in to booked flights
using a WAP phone. The platform hosts the checkin application itself,
as well as an SMS-based notification functionality and a configuration
server for over-the-air provisioning of WAP telephones.
|
 |

|