A Toolkit for Object Oriented Mobile Computing Environments

With the advent of widespread wireless networks, more and more applications are migrating from the wire line domain to the wireless domain. Previously deployed high bandwidth wire line applications are no longer suited because of the inherent limitation on the bandwidth and unreliable channel conditions. Users demand new protocols and new systems that can react to the varying network conditions including limited bandwidth and possible network disconnections. Few of the general application areas for mobile computing are described below. As an example of an application well suited for a mobile computing, consider a calendar-scheduling program. A common office activity is reserving conference rooms for presentations and meetings, known as the group calendar application. We would like managers to be able to reserve rooms even while away on a business trip. Traditional calendar programs assume that everyone updating the (shared) calendar has reliable network connections and thus the software cannot handle disconnected mobile hosts. Hence, mobile computing environments can offer improvements for this application area. Another mobile application is email using the POP protocol that allows a server to hold a user's mail and allows the user to retrieve the email from any system. With only slight additional coding, a POP client can support mobile computing by pre-fetching all new messages during a (possibly) brief network connection and queuing the user's replies until the user reconnects. Emergency response is also well suited for mobile computing systems. Often emergency response personnel need specific information, such as geographic information in a flood region or a copy of a emergency call report for a medical or police emergency. Fixed networks are unavailable for an emergency response team, and often the only wireless communications available are satellite communications with very high latency. Ideally, a mobile system supporting emergency response teams would allow two-way communication of both voice and graphical data. Thus, this application requires higher bandwidth than POP email or calendar management.

Much research literature has focused on systems designed to support distributed computing. However, mobile computing systems have some unique requirements and change their focus areas. We identify some crucial features of mobile-computing systems and emphasize how these differ from traditional distributed systems.

One of the major trade offs in mobile computing systems is the trade off between offering strong consistency guarantees and robustly handling disconnected work groups or unreliable network communication. Strong consistency guarantees required timely reliable transmission between client and server. A system, which allows for disconnected work groups is limited in the consistency guarantees which it can make. Another important issue facing mobile computing systems is how much transparency to support. Existing mobile computing systems all require changes to the server software. By changing the software on client side, the mobile computing system can offer more flexible network architecture. Systems that use existing client/server software (high flexibility) are less able to support dynamically reconfiguring network topologies. We expect that as mobile computing systems become more flexible, they will support operation that is both transparent and flexible. As computing becomes ubiquitous the place of mobile computer systems requires many features and characteristics not common or important on stationary systems. We envision a future where many types of very different systems will be mobile, many with temporary connections to some kind of networks for short periods of time. Such systems: smart identification badges, medical records and status, personal planners and assistants, and others such systems have many common problems (transient network connections, data management, merging and updating shared information) and each has specific needs. We believe an environment can be created to facilitate understanding, specifying, designing and programming such systems by using a graphical based visualization toolkit which supports the use of object components. In contrast to a programming language tool which helps in creating an application program or a CASE tool which aids in design we focus on the particular needs of mobile systems and sharing commonality through the reuse of mobile objects. An important part of building mobile systems is a visualization environment that aids in abstracting mobile issues and identifying features and functionality to create an object-component based system.

People

  • Damla Turgut