Recent advances in wireless networking technologies and the growing success of mobile computing devices, such as laptop computers, third generation mobile phones, personal digital assistants, watches and the like, are enabling new classes of applications that present challenging problems to designers. Devices face temporary and unannounced loss of network connectivity when they move; they discover other hosts in an ad-hoc manner; they are likely to have scarce resources, such as low battery power, slow CPU speed and little memory that need to be exploited efficiently; they are required to react to frequent changes in the environment, such as new location, high variability of network bandwidth, etc. To help designers building mobile applications, middleware that faces the problems arisen by mobility should be put in place. In the past decade, middleware technologies [6] built on top of network operating systems have greatly enhanced the design and implementation of distributed applications. In particular, they succeeded in hiding away many requirements introduced by distribution, such as heterogeneity, fault tolerance, resource sharing, and the like, from application developers, offering them an image of the distributed system as a single integrated computing facility [5]. These technologies have been designed and are successfully used for stationary distributed systems built with fixed networks, but they do not appear suitable for the mobile setting [1]. Firstly, the interaction primitives, such as distributed transactions, object requests or remote procedure calls, assume a highbandwidth connection of the components, as well as their constant availability. In mobile systems, in contrast, unreachability and low bandwidth are the norm rather than an exception. Secondly, object-oriented middleware systems, such as CORBA, mainly support synchronous point-to-point communication with at-most-once semantics, while in a mobile environment it is often the case that client and server hosts are not connected at the same time. Finally, traditional distributed systems assume a stationary execution environment that contrasts with the new extremely dynamic scenarios. While it was reasonable to hide completely context information (e.g. location) and implementation details from the application, it now becomes more difficult and makes little sense. By providing transparency, the middleware must take decisions on behalf of the application. The application, however, can normally make more efficient and better quality decisions based on application-specific information. In this paper, we first analyze the requirements that middleware for mobile computing should meet. We then describe a mobile middleware based on the principles of reflection [4] and metadata [3]. We briefly illustrate a first prototype we have developed and then conclude the paper by pointing out future directions of research.
[1]
Thomas Ledoux,et al.
OpenCorba: A Reflektive Open Broker
,
1999,
Reflection.
[2]
A. Harter,et al.
Teleporting-making applications mobile
,
1994,
Workshop on Mobile Computing Systems and Applications.
[3]
C. M. Sperberg-McQueen,et al.
Extensible markup language
,
1997
.
[4]
Frank Eliassen,et al.
Next generation middleware: requirements, architecture, and prototypes
,
1999,
Proceedings 7th IEEE Workshop on Future Trends of Distributed Computing Systems.
[5]
Fabio Kon,et al.
Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB
,
2000,
Middleware.
[6]
Steven J. DeRose,et al.
XML Path Language (XPath)
,
1999
.
[7]
Cecilia Mascolo,et al.
Reflective Middleware Solutions for Context-Aware Applications
,
2001,
Reflection.
[8]
Jonathan Robie,et al.
Document Object Model (DOM) Level 2 Specification
,
1998
.
[9]
Marvin Theimer,et al.
Flexible update propagation for weakly consistent replication
,
1997,
SOSP.
[10]
Jim Melton,et al.
XML schema
,
2003,
SGMD.
[11]
Cecilia Mascolo,et al.
Middleware for mobile computing: awareness vs. transparency (position summary)
,
2001
.
[12]
Eric van der Vlist,et al.
XML Schema
,
2002
.
[13]
Amy L. Murphy,et al.
LIME: a middleware for physical and logical mobility
,
2001,
Proceedings 21st International Conference on Distributed Computing Systems.
[14]
Dieter Fritsch,et al.
POSITIONING AND DATA MANAGEMENT CONCEPTS FOR LOCATION AWARE APPLICATIONS
,
2001
.
[15]
Wolfgang Emmerich,et al.
Software engineering and middleware: a roadmap
,
2000,
ICSE '00.
[16]
Mahadev Satyanarayanan,et al.
Mobile Information Access
,
1996
.
[17]
David Gelernter,et al.
Generative communication in Linda
,
1985,
TOPL.
[18]
Wolfgang Emmerich,et al.
Engineering Distributed Objects
,
2000,
Lecture Notes in Computer Science.