Content uploaded by Siegfried Reich
Author content
All content in this area was uploaded by Siegfried Reich on May 02, 2014
Content may be subject to copyright.
Gulliver - A Development Environment for WAP Based
Applications
A. Hartl, G. Austaller, G. Kappel, C. Lechleitner, M. Mühlhäuser, S. Reich, R. Rudisch
University of Linz, Austria
hartl@tk.uni-linz.ac.at
Abstract
As the WWW goes wireless software engineers experience the challenge of developing WAP
applications which respond to both the constraints and the opportunities of the wireless Web.
The Gulliver project addresses the three pertinent questions prevailing among the WWW
audience: i) How should and must WAP content differ from traditional Web content? ii) How
does the development of WAP applications differ from Web applications? iii) How does a
development environment for WAP applications look like?
Introduction
Network-enabled devices such as mobile phones or PDAs allow new user groups to take
advantage of the Internet. Besides the limitations posed by these devices there are new
opportunities for application developers, e.g.: information services may be designed to consider
the users' locations; portability and usability of mobile devices provide instant and ubiquitous
access to information. Gulliver has been designed with these possibilities in mind and provides
an environment for the development of WAP based applications. The name Gulliver follows
Jonathan Swift's novel "Gulliver's Travels" indicating the system's support for mobile users.
Requirements
The following list of requirements needs to be addressed by development environments for
advanced WAP applications:
1.
Low Learning Curve:
The information presented should conform to the device's interface guidelines
[1]
.
2.
Minimized Input Effort:
Numeric keypads severely increase the time for entering data. Applications should,
e.g., support context dependent default values
[2, 7, 8]
.
3.
Information Filtering:
Applications should be able to pre-select the information transmitted based on the
user's actual needs optimizing both bandwidth as well as screen real estate usage.
4.
Server-side Computations:
Mobile devices are restricted in their computing power. Therefore,
development environments should support the possibility to defer the processing of complex problems to
the server
[2]
.
5.
Robustness:
Disconnections are common in mobile environments. Applications should provide the means
for resuming open sessions upon reconnection
[2]
.
Architecture and Implementation
The Gulliver architecture has been designed in order to meet the requirements presented in
the previous section. It is shown in Figure 1.
Figure 1: The architecture of the Gulliver system
Requests generated by WAP-enabled devices are converted into HTTP requests by a WAP-
Gateway and forwarded to the Gulliver IO-Interface. This interface is implemented as a Java
Servlet. It translates incoming HTTP requests into events which are processed by the
A
pplication Manager. The Application Manager handles a set of Gulliver applications, ranging
from simple directory services such as timetables up to more sophisticated services like guided
tours
[3]
. The sophisticated services obviously require substantial computing power, they are
processed by server-side components (Req.
4
). All components use a database gateway
[5, 6]
for storage and retrieval of persistent data (Req.
5
).
In the following, we briefly will describe key features of the Gulliver architecture.
!
Best Fit Pages:
User interface elements are implemented as device-independent GulliverBeans
[4]
. These
are an abstract representation of commonly available WML widgets and can be re-used throughout the set
of Gulliver applications. Depending on the end user device the IO-Interface dynamically loads the
appropriate Behavior in order to generate a device specific presentation of the content (Req.
1
). For new
and as yet unsupported devices, a default functionality is provided.
!
Personalization via User Profiles:
Both the Application Manager and the applications make use of profile
information stored in the database. Profiles are used for:
!
implementation of B2C (Business to Consumer) or C2C services, e.g., in order to find users with
similar interests.
!
pre-selection of information presented to users (Req.
3
).
!
provision of personal default values that are most likely to be used (Req.
2
).
All session information used within Gulliver is stored in the database. Based on this feature, Gulliver
supports recovery from temporary disconnections (Req.
5
).
!
Integration of Context-Specific Data:
> Gulliver does provide information on the user's context. Systems
like the Wireless Application Environment
[2]
allow the access of location information from end user
devices. For Gulliver, location is just one kind of context. Others include date and time or even the user's
trail. Gulliver supports the consideration of different kinds of context and the processing and transmission of
information according to the user's current context (Req.
2
+
3
).
Implementation
The Gulliver architecture has been implemented as a set of Java components. It has been
tested with the following devices: XML viewers, PDAs and cellular phones. Specific behaviors
have been implemented for 3com Palm IIIx and Nokia 7110 devices.
Two sample applications - a timetable application and a guided tour through Vienna - show
the reuse and adaptation of existing services as well as the support for long term sessions.
Summary
Mobile devices offer challenging possibilities for the design of information services. The
increasing number of commercial WAP services demonstrates the need for personalized and
adapted applications. We have introduced an architecture and prototypical implementation of a
development environment that addresses the requirements set by these applications. First
experiences are promising and show the suitability of this approach.
Acknowledgements
The authors would like to acknowledge the support by Siemens PSE Austria. In particular we
would like to thank Siegfried Grabner and Alfred Karner.
References
1. B. Laurel (Ed.): The Art of Human-Computer Interface Design, Apple Computer Inc., 1990, p. 75ff.
2. Wireless Application Protocol Forum: WAP WAE Overview, 16-Jun-1999,
http://www.wapforum.org/what/technical/SPEC-WAEOverview-19991104.pdf
, p. 10
3. R. José, N. Davies: Scalable and Flexible Location-Based Services for Ubiquitous Access, in: [9], p. 52-66
4. P. Ørbæk: Building Blocks for Dynamic Web Applications, in: 8th International World Wide Web Conference
- Poster Proceedings 1999, p. 114-115
5. S. Stoiber: Datenbankanbindungsmuster - Untersuchung alternativer Ansätze und Realisierung im Rahmen
eines verteilten Kalendermanagers, Master's Thesis at the Department for Information Systems, University
of Linz, Austria, 1999
6. S. W. Ambler The Design of a Robust Persistence Layer For Relational Databases, AmbySoft Inc. White
Paper, 1998,
http://www.ambysoft.com/persistenceLayer.pdf
7. J. Pascoe, N. Ryan, D. Morse: Issues in Developing Context-Aware Computing, in: [9], p. 208-221
8. G. D. Abowd, A. K. Dey (Moderators): Towards a better understanding of Context and Context-Awareness
(Panel Session at HUC 99), in: [9], p. 304-307
9. H.-W. Gellersen et al.: Handheld and Ubiquitous Computing, First International Symposium, HUC '99,
Proceedings, Lecture Notes in Computer Science, No. 1707, Springer, Heidelberg, September 1999