PROPOSAL

I: Cover Page

ARPA BAA Number 96-06: Research Topics in High Performance Distributed Services

Technical Topic Area: User Centered Systems

Proposal Title: USAMAT: Unified Scalable Adaptive Mobile Application Toolkit

Principal Investigators:

Georgia Tech: Gregory Abowd, Mustaque Ahamad, Mostafa H. Ammar, Christopher G. Atkeson, Kenneth Calvert, Ann Chervenak, Ellen Zegura

Motorola: Ronald Borgstahl

Technical Contact:

Gregory Abowd 
College of Computing, Georgia Tech 
801 Atlantic Drive, Atlanta, GA 30332-0280 
Email: abowd@cc.gatech.edu 
Phone: (404) 894-7512 
Fax: (404) 894-9442 
http://www.cc.gatech.edu/fac/Gregory.Abowd/

Administrative Contact:

Office of Contract Administration
Georgia Tech, Atlanta, GA 30332 
Christopher D'Urbano
Contracting Officer
Phone: (404) 894-4817

Schedule and Cost:

Duration: October 1, 1996 to September 30, 1999 
Total Cost: $1,995,903 
Yearly Cost: $635,536 (Year 1), $664,813 (Year 2) and $695,554 (Year 3)

Type of Business: Other Educational

Section II. Summary of Proposal: A. Innovative Claims

We will develop USAMAT: Unified Scalable Adaptive Mobile Application Toolkit, for highly dynamic and mobile advanced network services. The toolkit will include component software for user interfaces, network applications, and relevant middleware. For evaluation, we will also develop hardware prototypes of small scale network devices such as wristwatch audio and video interfaces and implanted medical and machine sensors. We propose a networking deployment strategy of randomly distributing infrastructure by aerial-dropping or shooting munition-sized nodes into desired areas, or placing nodes on unmanned mobile vehicles whose location and even existence change rapidly. With these systems a network could be rapidly deployed in a new area and each soldier have a personal interface to high performance distributed network services using a range of interfaces. We will develop these technologies and applications by bringing together expertise from user-interfaces, software engineering, networking, distributed computing, machine learning, and advanced network services.

Innovative Claims: Interfaces and Applications

Multi-modal network interfaces. We will develop consistent network interfaces ranging from a small pager screen or audio channel and phone keypad of today's cellular phone to audio, video, and pen-based gesture on a future wristwatch device. Our algorithms will choose the right information to display at the right place using the right modality (including multiple languages).

Personal information filtering. Our software agents will filter and prioritize information from sources ranging from directly addressed (email, phone messages, faxes, and pages) to broadcast (electronic news services, uunet news) to database updates and mining results (outputs of Web watchers and crawlers). These agents will use statistical and machine learning techniques to develop models of individual priorities and preferences.

Virtual persona architecture. The virtual persona architecture decouples physical devices from applications. The virtual persona, or agent, will manage I/O and general task activity for the physical person.

Innovative Claims: Smart Middleware

Network probing and user tracking. Delivering a message to an unattended device is not adequate. The network will track users, and reconfigure routing to follow users. In the highly dynamic environment envisioned, network status and performance must be monitored to make the most from changing and possibly limited network functionality. Our probing techniques will allow networks to continuously reconfigure themselves.

Active networks. We break with the usual networking paradigm by allowing computation to occur on user data as it passes through the network. Our architecture for active processing provides a simple, but powerful, mechanism for the network to support advanced services such as multi-modal delivery of information.

Distributed storage. Our distributed hierarchical storage manager will offer a high performance, object-oriented interface to multimedia objects. We will provide the replication, caching and consistency mechanisms to support services in a dynamic environment.

Technology Transfer: The participation of Motorola in this work will help ensure that this technology will be applied to the nation's information infrastructure. We expect that the systems we develop will directly carry over to existing landline and cellular phone systems, pagers, and PDAs, as well as creating new opportunities for future services and products.

Summary II B: Deliverables

Hardware Deliverables

In each case, we will first build prototype systems using existing commercial hardware. We will then explore further improvements possible from custom hardware.

Software Deliverables

All software developed at Georgia Tech will be released to the public domain.

Intellectual Contributions

Technology Transfer

Georgia Tech is partnering with Motorola Corporation (General System Sector, Government and Space Technology Group, Satellite Communication Division) in order to facilitate the transition of our research into both government and commercial use. Motorola is an excellent research partner for many reasons, including:

  1. Motorola is a source of expertise on networking infrastructure (both cellular and satellite based systems).
  2. Motorola is a source of expertise on many personal interface devices such as PDAs (Envoy, Marco, Forté), pagers, and cellular phones. Motorola has a strong interest in future versions of these and similar devices.
  3. Motorola has targeted software architecture as a key software engineering technology that is critical for corporate-wide technical success.

The mission of Motorola's Advanced Software Architecture group (General System Sector, Government and Space Technology Group, Satellite Communication Division) is to specify, prototype, and demonstrate software architecture for SATCOM's advanced satellite-based information systems, and to lead Motorola's establishment of an industry predominant information-services software architecture. Adapting current architectures into ones that will satisfy an entire family of wireless infrastructure and subscriber devices requires that we specify what the architectural requirements are and then formally specify the architecture. Specifying the requirements of the SATCOM advanced software architecture is essential to increasing our understanding of multi-media applications running in a wireless environment, providing a basis for the analysis of alternative architectural approaches and alternative design trade-offs, and providing a reusable framework for future applications of this architecture.

This collaboration will provide a method to both formally evaluate architectural alternatives and to formally specify architectural requirements. A secondary reason for this collaboration is that processes and mechanisms of software architecture have not yet reached state-of-the-art quality. A collaborative effort is required for the efficient assimilation by industry and for effective changes in the academic process to fit industry.

Our collaboration plan is that Motorola will participate in externally funded research centered at Georgia Tech, and in parallel pursue proprietary research at Motorola using internal funding. Motorola will be among the first users of the software and hardware deliverables described above. Research at Georgia Tech will explore a wide range of equipment from a correspondingly wide range of vendors, and will avoid designing platform specific interfaces or network control algorithms.

Summary II C: Cost, Schedule and Milestones

We request funding in each year for supporting 3 graduate research assistants, 3 postdoctoral fellows, and 2 months of salary per year for each PI. A half-time secretary will be hired to help administer the program. In addition approximately $100,000/year is budgeted for construction of interface and network prototypes ($50,000 equipment and $50,000 materials and supplies). Funds are also requested for travel, computing charges, and other allowable miscellaneous expenses. The research will be completed in three years. An approximate schedule and estimated yearly costs are shown below.

  1. Schedule and Milestones
  2. Estimated Costs

Summary II D: Technical Rationale

Motivating Scenarios

Battlefield/Disaster Awareness. Consider the following battlefield/disaster area information management scenario. The area has lost most, if not all, communication infrastructure. Moreover, the area is hostile or dangerous, thus network deployment must be inexpensive and easy, of the ``deploy and forget'' variety. A suitable strategy to create network infrastructure involves thimble-sized devices dumped out of an airplane or dropped into each military vehicle. A soldier might swallow a pill-sized network node with additional sensors to monitor and perhaps transmit biomedical measurements. A machine or vehicle may have temporary sensor-rich network devices installed for maintenance or resource management. Network routers or servers may be installed in disposable resources such as cheap unmanned aerial vehicles. These networks must organize themselves and provide substantial fault tolerance as users, network infrastructure, and servers go online; change their location, load, and resource usage pattern; and go off-line.

Interface Integration. When we want to interact with some application or information service, we usually are provided with a fixed interface. If a colleague or relative wants to contact us, then they have to choose to phone us, or contact us via fax, page or e-mail. Whatever medium the sender chooses commits the receiver to some physical device. There is a predetermined commitment between physical interfaces and applications/services that necessarily limits the flexibility of communication. If we want to expand beyond those predetermined connections, to allow, for example, phone messages to be received as electronic mail, we would have to build a single solution that integrates the audio message with some electronic mail service. The vision we have is to remove this dependence between physical devices and applications/services by providing general purpose mechanisms for attaching physical devices to applications/services. Note that the existence of multi-modal interfaces implies that information delivered from a source to a receive may require a change in modality. This change must be supported at the source, the receiver, within the network, or at some combination of locations.

Geographical survey. Consider constructing and using an information-rich survey of a geographical region. Soldiers and autonomous devices are equipped with information gathering and transmission capabilities, and as they move about, this information is assembled into a database of the area. The database might include information about terrain, landmarks, presence of other units, weather conditions, etc. Some commanders would probably want access to the entire view, but others will want access just to critical pieces. The system and network will have to support assembling the pieces of information into the proper view at the location where it was needed. If the military forces are multi-national, any text or voice-based sources of information will have to undergo language translation as part of delivery.

Technical Barriers

Current network services are designed for a high bandwidth network connection, substantial local computing resources, and a high bandwidth interface to the user. This proposal considers high performance distributed services in the context of limited bandwidth wireless networks with small amounts of local computational power and a limited interface to the user. To put this issue in concrete terms, how could a user access Internet services with a two-way pager, a cellular phone, or a ``Dick Tracy'' radio wristwatch?

In order to provide advanced network services described in a mobile distributed environment with limited computational, communication, and storage resources, we must break down the traditional divisions between information processing, information transmission (networking), and information storage (file systems and databases). The tools we will use to deliver advanced network services, such as intelligent caching, replication, and probing, can also be applied to distributed file system and computation management. The Internet (a network) became wildly popular when the World Wide Web became available (a universal and distributed file system with shared standard application models). We must build on the success of this unification of networking, distributed processing, and information storage in order to provide future network services.

Technical Approach: Overview

If we consider the problems outlined in the scenarios, the problem of unifying networking, distributed processing, and information storage can be addressed through a layered architectural approach that separates three important concerns. The bottom layer deals with physical networking issues such as connectivity, discovering neighbors/topology, link quality, coverage, and relating network topology to the actual topography. This bottom level support for the physical infrastructure of a network has been extensively studied, so we choose to treat it as a set of established services. At the next level, we are concerned with the collection, transformation and routing of information in a generic way. Here, our research will establish working solutions for an active network, covering topics such as anycasting, caching, and the language for describing information and transformation. At the top level, we are concerned with application-specific intelligence. Here we provide mechanisms to decide when and how to transform the information (using the services of the middle layer). We will provide techniques for defining a ``virtual persona'' or intelligent multi-modal integration of information based on the specific physical interaction devices made available and the tasks that they are meant to support.

There are several advantages to this layered architectural approach. By treating the bottom layer as a black box, we can take advantage of technology advances. When physical services become cheaper, smaller or faster, we can still invoke them with the same set of service requests from the middle layer. As we introduce new interaction devices or better techniques for intelligent adaptation of information in the application layer, we can still make use of the platform and infrastructure services of the bottom layers. This is an architectural approach that has been quite successful in the Internet community and elsewhere. The difference with what we are proposing is a much higher level of information processing and handling capability of the middle layer.

Middle Layer Solutions: Smart Middleware

Distributed storage: We define a software architecture that manages multimedia objects as they are stored, replicated, moved among storage devices of different types, transformed to appropriate modalities, and migrated among servers. The goal of this software architecture is to provide high availability, high performance, and a consistent and transparent view of multimedia objects that may be stored locally or at very distant locations.

We consider an object-oriented interface to multimedia objects, algorithms to control movement of objects (including migration), dynamic replication policies, and appropriate models of consistency.

Active networks: One of the challenges of the outlined scenarios is the dynamic conditions that will exist in the network and in the user interfaces. We aim to maximize the performance of devices with limited and changing functionality. Active networking offers a novel mechanism for handling diversity both within the network and at endsystems.

Active networking offers a change in the usual network paradigm: from passive carrier of bits to a more general computing engine. In an active network, nodes (routers and switches) can perform computations on user data as it traverses the network [95, 91]. These computations can support adaptation to network capabilities (e.g., by thinning a stream to a less bandwidth intensive representation of the data) and adaptation to interface capabilities (e.g., by transforming from one modality to another).

Placing complexity at strategic points in the network will allow lightweight mobile devices to share smart resources. We later describe an approach to active networking that has the advantage that not all network nodes need to participate. Thus it is feasible to consider strategic placement of active network nodes and use inexpensive network components. Further, our approach is simpler in concept than some other proposals, allowing faster development and deployment using network nodes of more limited functionality.

Probing and tracking: A novel feature of our work is the explicit consideration of the interaction between the support provided by the networking infrastructure and the functionality exhibited by particular applications. The network infrastructure will be dynamic because of mobility, changing communication and computational loads on the components, and losses of components. We also want low maintenance networks, which require little human input to install and maintain. We will address these issues using intelligent caching, replication, and constant probing of the network to assess routing and service levels. We will then ask what additional or enhanced services can be offered to users.

In order to make designing mobile applications easier, we will develop a library of software components that support at least three techniques to support mobile users: (1) tunneling to provide services from a home base, (2) client spoofing to provide remote service from local servers and (3) server spoofing to provide local service.

Upper Layer Solutions: Applications and Services

Virtual persona: We will realize interface integration with the concept that each person is associated with a virtual persona or agent, realized in software, that removes the dependency between physical device and application. This virtual persona is responsible for: (1) output management: knowing where the real person is and, given any piece of information that must be delivered to that person, determining the best available output device; (2) input management: given some information obtained from the person, knowing how best to direct that information to some application, based on the current activity of the person; (3) activity management: understanding what tasks the person is performing and which ones are currently active.

The software challenge facing us will be to provide the connection between the virtual and physical person in a generic and extensible manner. Our approach will be to provide an architectural solution to I/O and activity management tasks of the virtual person. A software architecture defines the significant interacting components in a system and the way in which they are coordinated. Our architecture will be layer to separate the physical interaction devices from the applications/services. A virtual layer, the software realization of the virtual person, mediates between the physical and application layers.

Multi-modal delivery: User interfaces will take many forms. Input devices can range from the phone keypad of today's cellular phone to voice, video, and pen-based gesture. Output devices can range from a small pager screen to voice and video. A major issue is handling and translating these different forms of information, and choosing the right information to display at the right place using the right modality.

Clearly active networks and distributed storage can assist in the delivery of information in multiple modalities. For example, an active network can transform information from one representation to another, either at a point of congestion or when a low bandwidth link is encountered. This transformation can range from simple scaling to more complex computation. The storage system may contain multiple versions of the information, in the most commonly accessed modalities. An interesting question which we will explore is the right way to support multiple modalities using a combination of storage, active networking and receiver agent processing approaches.

Information filtering: With many network nodes transmitting video simultaneously, it is likely that information will need to be filtered. For example, on a battlefield in which all nodes are transmitting video, it may be desirable to store the video streams on a local server but transmit to a remote server only a small number of streams or some summary of the information they contain.

We will develop multiple applications that involve filtering. For example, the context aware personal information filtering application provides a periodic review of important events and messages for a particular user. The system will be capable of providing various levels of presentation, including synthesizing summaries and presenting highlights. This implies compression, abstraction, and mode switching between original and final output mediums. We can distinguish between Web search, in which the user drives the collection of ``interesting'' information, and this service, which is data driven (the user may reward interesting summaries and punish boring summaries). This service will allow both explicit specification of features of interesting items, as well as automatic modeling of ``interest'' level.

Best server location: In an environment that includes redundancy, a choice must be made of the best resource among those satisfying basic criteria. For example, in making a short query to a replicated database server, the best server may be the one which contains the proper information and has the fastest overall response time. If the query will result in the transfer of a significant amount of data, the best server may be the one reachable by the highest throughput path. In addition to performance-based metrics, there may be security or other policy considerations that contribute to the definition of ``best''. For example, the user may want to specify that the route to the selected server be restricted to certain trusted portions of the network. In a mobile environment with changing user location, changing I/O modes and changing interface, a new dimension is added to the problem. Now the definition of ``best server'' should include this changing information about the user.

We will significantly expand the anycasting paradigm [78] to provide the user with much more control over the specification and selection of the destination address. In particular, we are developing the notion of metric-based anycasting, in which the user can specify one or more metrics (e.g., server response time) to be used in selecting from the set of hosts that meet the basic criteria. When multiple hosts satisfy the user criteria, we shift the task of selection to the user, allowing additional constraints to be applied locally to reflect, for example, policy considerations. In the context of highly dynamic mobile networks and interfaces, we will explore and prototype solutions to problems such as metric determination, location of metric probing agents, timely use of metric information and adaptation to changing user modalities.

Summary II E: Related Work

An excellent survey of work on mobile computing is given in [109]. We intend to build upon the work of several related projects, including the the Infopad project at Berkeley [56], the TRAVLER and WAMIS projects at UCLA [103, 107], the MONET project at NOSC [73], the Mobile Computing Laboratory project at Columbia [32], the Distributed Microsystems Research Group at UCLA citeDMSR-UCLA, the Rapidly Deployable Radio Networks project at the University of Kansas [81], and the Dataman project at Rutgers [37]. The Infopad project is building a sophisticated mobile multimedia terminal, and a wireless network to support it. The goal is to allow a user many of the capabilities of a workstation interface (X server, audio, video, and pen interfaces all in one device) in a mobile computer. In this project we will explore more lightweight interfaces that do not recreate a workstation interface, we will support a wide range of interface modalities and switching between modalities, and we will support a wide range of network technologies and protocols.

Our efforts are influenced by previous work in ubiquitous computing. The ubiquitous computing effort at Xerox PARC best exemplifies our goal in personal interfaces which appear at different scales [104]. Other ubiquitous computing projects include two at MIT [99, 69] and the ARPA TIA program [100]. Other research in wearable computers is being conducted at the University of Toronto, Carnegie Mellon University, University of Oregon, and The MIT Media Lab [102, 76, 111, 110, 75]. Drs. Abowd and Atkeson have explored context-aware computing and scalable interfaces at Georgia Tech. The Cyberguide project has created indoor position-aware mobile tour guides using commercially available PDAs (Newton MessagePad) and IR positioning beacons. It is currently being extended for indoor/outdoor use with 2-way communications capabilities [67]. More information on Georgia Tech projects can be found at http://www.cc.gatech.edu/fce. Some research programs in context awareness technology are described in  [108].

Recent relevant work in Software Engineering includes Arcadia [10] and Mastermind [68]. Multimodal interaction toolkits are being developed by [71].

Adaptive agents and learning apprentices have been applied in a variety of tasks including job scheduling, mail filtering, file/database management, and calendar scheduling [18, 44, 113, 64, 70, 74, 84, 85, 90]. There has also been work on automatically modeling and learning user preferences, usually focusing on nearest neighbor algorithms (case-based, memory-based) [54, 65, 66, 82, 89].

Section III-E Related Work continues the discussion of related work. Section III-F Accomplishments discusses our own work, and describes current and pending support.

Summary II F: Personnel

We combine expertise from user-interfaces and software engineering (Abowd), networking (Ammar, Calvert, Zegura), distributed computing (Ahamad), machine learning (Atkeson), and advanced network services such as video on demand (Chervenak, Borgstahl).

III A: Statement of Work

We will create software toolkits and hardware prototypes that explore a range of system (hardware and software) architectures, user interfaces, communication algorithms, storage management approaches, and distributed computation management approaches, for highly dynamic, mobile, multimodal, context aware, adaptive, and scalable advanced network services.

Task 1: Develop alternative software architectures

Task 1 involves defining and exploring appropriate software architectures. The requirement for the architecture specifications (the task product) is that they support the design and implementation of advanced services (Task 7) on the proposed network device prototypes (Task 5) connected to the prototype smart network (Task 6). We will evaluate these alternative architectures by performing comparative implementations and assessing design complexity, implementation difficulty, and maintenance requirements. We will also evaluate performance (Task 8) and usability (Task 9). The criteria for success in this task is that an architecture that supports more than one type of advanced service in a clean and direct way.

Task 2: Develop application toolkit for smart network

We will develop an application software library for highly dynamic and mobile networks and interfaces, in which location, loading, and existence of network components is changing constantly. These network control algorithms will also be adaptive, leading to network behavior that adapts to and anticipates usage patterns. Subtasks include:

1. Implement user tracking, user task and context tracking, service adaptation, and corresponding probing and routing algorithms.

2. Implement node/link status and load assessment, and corresponding probing and routing algorithms.

3. Implement modeling of local information usage, and corresponding caching and replication algorithms.

4. Implement best-server determination in a mobile client and mobile server environment.

The requirement for this software library (the task product) is that it efficiently supports the wide variety of advanced services of Task 7. Our performance assessment (Task 8) will provide the criteria by which success is measured in this task.

Task 3: Develop middleware for scalable services

The construction of the various services described in task 7 will require significant coordination among distributed entities as well as access to information that is dynamically generated and disseminated. We will explore replication and caching of such information to improve accessing such information and to deal with high latency and low bandwidth communication links that may be encountered by the applications. We will also build a middleware system that will provide support for distributed objects which can enable interaction among heterogeneous application components and services. The implementations of these objects will be able to be customized depending on resources available on the devices (e.g., available memory and communication bandwidth). We will also develop the system so it is possible to increase or decrease the level of consistency provided among data copies depending on the availability of resources and needs of applications.

Task 4: Develop tools for manual and automatic filtering and prioritization

The requirement for this task is to provide users with tools to facilitate explicit customization and automatic customization. We will develop explicit selection tools for a user to conveniently specify preferences to a mobile application (one current example is the way news groups are currently manually selected). We will also develop software agents that learn to unify, filter, and prioritize information from sources ranging from directly addressed (email, phone messages, faxes, and pages) to broadcast (electronic news services, uunet news) to database updates and mining results (outputs of Web watchers and crawlers). These agents will use statistical and machine learning techniques to develop models of individual priorities and preferences, and specific task models. We will explore the extent to which software agents need to actually understand speech or language. It may be the case that relatively simple and incomplete levels of understanding may be sufficient to prioritize, sort, and filter information. We will especially explore this issue in the context of multiple languages (English, Japanese, and German). We will compare different approaches to preference selection in Task 9, Evaluating Usability.

Task 5: Develop hardware prototypes of interface and sensing devices

The requirement of this task is to provide tools for experimental assessment of our advanced network services, in addition to the simulation studies we will perform. The product of this task will be several kinds of hardware prototypes: personal interface prototypes, sensor node prototypes, tracking node prototypes, and network node prototypes (for a more detailed list see Section III B: Results). In each case, we will first build prototype systems using existing commercial hardware, such as two-way pagers, cellular phones, and personal digital assistants (PDAs). We will then explore further improvements available from custom hardware, developing prototypes of future personal interfaces, such as a ``Dick Tracy'' video input/output wristwatch, and an Internet hearing aid audio input/output device. Success in this task will be indicated by existing prototypes delivering acceptable service levels.

Task 6: Develop hardware prototype of smart network

In partnership with Motorola we will develop an experimental campus-wide wireless network at Georgia Tech to explore delivery of new services such as wireless video. Subtasks include:

1. Develop network prototype using existing wireless devices. (pager, cellular phone, point to point wireless modem, WaveLan, Metricom, ...)

2. Develop shoebox version of ``Thimble'' network node.

The requirement for this prototype network (the task product) is that it efficiently supports a large number of mobile users. Our performance assessment (Task 8) will provide the criteria by which success is measured in this task.

Task 7: Develop alternative implementations of advanced services

The requirement for this task is to provide a consistent interface to a spectrum of advanced services across a wide range of input and output modalities. We will implement each of the services (see Section III B: Results for a detailed list) in several alternative ways as subtasks of this task. Success in these implementations will be assessed by measuring performance (Task 8) and usability (Task 9). The success criteria will be acceptable levels of performance and a consistent usable interface.

Task 8: Evaluate performance

We will undertake an evaluation of the algorithms, toolkits and prototypes we develop in previous tasks. The goal of the evaluation is to estimate the performance and complexity of the various mechanisms and systems. This work will the following forms of evaluation:

1. Qualitative Evaluation: Through analysis of the requirements and relative merits of our proposals.

2. Simulation: We will use advanced simulation techniques to test and evaluate the numerical performance of our systems.

3. Feasibility: We will evaluate the feasibility of the techniques and systems through the construction of laboratory prototypes.

4. Real-World system testing: We will use real-world testing of our prototypes by deploying them over FutureNet (a local high speed network supporting multimedia and mobility and connecting offices and dormitories at Georgia Tech.)

Task 9: Evaluate usability

We will follow an iterative approach in designing systems that interface with the user. Each significant version of a mobile information system will be subjected to formal and informal usability evaluation techniques. We will deploy certain systems in realistic environments for the purpose of longitudinal studies of the effect of this ubiquitous technology. The results of all evaluations will be written up, and where suitable published in relevant forums for usability studies on mobile and ubiquitous computing. We will report on the evolution of user tasks that will inevitably result from the prolonged interaction with novel and personal interfaces.

Task 10: Publication, Education, and Technology Transfer

We will develop prototypes and insight into personal information systems and ubiquitous and reliable wireless networking, which will be reflected in papers, presentations, new curriculum, as well as direct technology transfer via Motorola. Motorola and Georgia Tech will collaborate to prototype proposed services for current devices as networks, as well as proposed devices and networks. Motorola will then select and pursue ideas, concepts, and prototypes for product development.

III B: Results and Technology Transfer

This Section continues Section II B: Deliverables.

Software architectures

The Unified Scalable Adaptive Mobile Application Toolkit (USAMAT) system will provide a unified approach to a range of architectural and algorithmic decisions in building highly dynamic, mobile, multimodal, context aware, adaptive, and scalable advanced network services. As an example, the USAMAT system will make explicit the range of choices such as choosing how to handle multimodality. In an Esperanto architecture all inputs are mapped into a common language/medium and all outputs generated from that common language/medium. On the other hand, the Translator (or UN) architecture, directly translates inputs as needed into necessary intermediary or output forms. Another example is provided by the issue of how to organize network objects, by user or by task. The Mirror architecture mirrors real world objects or users in network objects, while the Task architecture uses network objects to represent individual user's involved in a particular task, such as mail reading or Web browsing.

Hierarchical Storage Architectures to Support Fast Retrieval of Multimedia Data

Our software architecture will also define components that store and transmit multimedia objects. Subtasks include:

1. Design an object-oriented Distributed Hierarchical Storage Manager that manages complex multimedia objects as they are replicated and migrated between geographically distributed servers and network nodes.

2. Develop algorithms for prefetching objects from lower levels of a storage hierarchy (for example, from tape to disk array or from disk to main memory). Good performance will require aggressive prefetching of information based on knowledge of past data accesses. These algorithms will use the results of the software agents discussed in Section III-A Task 5, which filter and prioritize information for receivers.

3. Develop algorithms for replication and migration of objects with the goal of providing high-performance, reliable, transparent, consistent access to local and remote objects. Migration and replication policies will be highly dynamic, based on the changing nature of the network and how objects are accessed over time. Popular objects may be replicated many times to provide good performance. In a volatile environment, in which network nodes are failing at a high rate, objects may be frequently replicated to guarantee sufficient availability. We must also maintain consistency among many replicas of objects that are distributed geographically.

4. Develop policies for managing multiple representations of multimedia objects. Since we will scale and transform objects based on the modality of the receiver nodes and the bandwidth of network connections, the resulting system will produce various representations of the same objects. We will develop policies for managing these multiple representations and keeping them mutually consistent.

Mobile Application Toolkit: Intelligent Caching, Replication, and Probing Algorithms

Replication and caching of information and flexible notions of consistency among such data copies are crucial for improving the efficiency of information access and to deal with lack of communication resources (e.g., if a high bandwidth connection is not available to a server, cached information can be used by the application to create a server proxy). We will develop intelligent caching and replication schemes coupled with flexible notions of consistency. These schemes will be novel because they will deal with a high degree of dynamic behavior exhibited in our system environment and will be integrated the network control algorithms. Furthermore, machine learning techniques will be used in predictive caching, replication and consistency algorithms. The deliverables will include such algorithms and their implementation and evaluations, in a form in which an application designer can easily choose between alternative caching, replication, and probing strategies.

Hardware prototypes of interface and sensing devices

We will develop the following network device prototypes, and explore advanced services that use them.

  1. Building I/O device prototypes including:

    Pager-I/O: an alphanumeric pager based interface prototype.

    Phone-I/O: a cellular phone based interface prototype.

    TV-I/O: a television based audio/video interface prototype.

    Wrist-I/O: a wristwatch audio/video interface prototype.

    Tablet-I/O: a PDA style audio/video/pen/screen interface prototype.

    Room-I/O: a room sized audio/video/wall-screen interface prototype.

    Building-I/O: a building-size interface where each room is instrumented.

  2. Sensor devices to be developed include:

    BioSense: a physiological sensor prototype.

    MechSense: a vehicle status sensor prototype.

    VideoSense: a video surveillance device prototype.

  3. Tracking devices to be developed include:

    GPSTrack: a GPS based tracking system for outdoor use.

    InsideTrack: a beacon based indoor tracking system.

Advanced Network Prototype

In partnership with Motorola we will develop an experimental campus-wide wireless network at Georgia Tech to explore delivery of new services such as wireless video. We will first develop a network prototype using existing wireless devices such as pagers, cellular phones, point to point wireless modems, WaveLan, and Metricom networks. We will then develop a rapidly deployed disposable network prototype in the form of a ``shoebox'' sized version of a network node we expect to be ``thimble'' sized eventually.

Implementations of Advanced Network Services

Advanced network services to be developed include:

Mobile communication: email/fax/voicemail/imagemail/videomail.

Mobile prioritized communication, with personal information filtering.

Distributed position and context-aware news services (such as traffic reports).

Context aware personal information filtering: hourly/daily summary of important events.

Mobile access to services such as printing and Web browsing.

Mobile individual calendar/plan management.

Mobile distributed group calendar/plan management/coordination services.

Mobile distributed group filing systems.

Mobile distributed geographical database.

Mobile videoconference/cooperative work technology (mobile distributed C2000).

Mobile people/vehicle/equipment/object tracking.

Context aware (position/status/condition) information applications (Cyberguide),

Massive distributed sensing for weather assessment and prediction and battlefield monitoring.

The following paragraphs amplify on a few of these services.

The context aware personal information filtering application provides a periodic review of important events and messages for a particular user. The system will be capable of providing various levels of presentation, including synthesizing summaries and presenting highlights. This implies compression, abstraction, and mode switching between original and final output mediums. We can distinguish between Web search, in which the user drives the collection of ``interesting'' information, and this service, which is data driven (the user may reward interesting summaries and punish boring summaries). This service will allow both explicit specification of features of interesting items, as well as automatic modeling of ``interest'' level.

To combat the flood of information potentially available via email, fax, phone, or radio/TV broadcast, we will develop a prioritized user communication system. In order to indicate to a user that there are messages, the user must be found, some assessment must be made of what interfaces are currently available, and the appropriate interfaces used to deliver different aspects of the message. Synopses of urgent messages should be automatically delivered with ubiquitous technologies such as pagers, to be followed up by more complete messages using higher capacity channels.

Another example is constructing and using an information-rich survey of a geographical region. Soldiers and autonomous devices are equipped with information gathering and transmission capabilities, and as they move about, this information is assembled into a database of the area. The database might include information about terrain, landmarks, presence of other units, weather conditions, etc. Some commanders would probably want access to the entire view, but others will want access just to critical pieces. The system and network will have to support assembling the pieces of information into the proper view at the location where it was needed. If the military forces are multi-national, any text or voice-based sources of information will have to undergo language translation as part of delivery.

A common application is people/vehicle/equipment/object tracking. We would augment simple tagging of objects to report location to include information on travel direction and velocity and status such as physiological state (for example alive/wounded/dead or effort/fatigue level).

Another important application is massive sensing for local weather prediction. For example, a large number of sensor/network nodes could be dumped into the ocean or onto a terrain to measure and report local conditions such as surface temperature and air/water heat exchange.

A useful service is a resource and equipment location system. Given a specification of the search criteria, this system reports the location and status of the ``best'' available piece of equipment (and how to obtain it).

Develop tools for manual and automatic filtering and prioritization

All of these advanced services will include adaptive interfaces that learn a user's interests and needs and predict a user's future activities. These adaptive elements will use statistical and machine learning techniques to develop models of individual priorities and preferences, discover features appropriate for an individuals rating of the importance of a particular item, and learn specific task models. We will explore the extent to which software agents need to actually understand speech or language. It may be the case that relatively simple and incomplete levels of understanding may be sufficient to prioritize, sort, and filter information. We will especially explore this issue in the context of multiple languages (English, Japanese, and German).

Lessons To Be Learned From Usability Studies

This proposal concerns the introduction of novel interaction techniques, so we are required to assess the impact of this new technology on its intended user community. Throughout this project, as we introduce new interaction technology at the user interface, we will use formal and informal evaluation techniques to judge their fitness for purpose. This usability evaluation will be both summative and formative in nature.

Usability evaluation in the context of new technology is not altogether straightforward. The task-artifact cycle, which admits that the things we think to do with a computerized system are greatly influenced by the interfaces with which we are presented, means that we should not expect to be able to predict entirely how our systems will be effectively used by an entire population. Though we will have certain focussed tasks in mind when building a given application, we will be especially open to observe how our novel interfaces influence the way we do work. A particular focus on this project will be the use of the new interaction technology in realistic settings. A great success of this project would be to determine the unique sets of tasks that users invent with our ubiquitous, context-aware systems. Rather than predict, we will observe and report.

Expected Publications

We expect to publish in the following journals: Wireless Networks, ACM Transactions on Computer-Human Interaction, ACM Transactions on Software Engineering and Methodology, IEEE Transactions on Software Engineering, and ACM/Baltzer Wireless Networks Journal We also expect to make presentations at relevant conferences, including ACM SIGCHI Conference on Human Factors in Computing Systems the International Mobile Computing Workshop,, the IEEE International Conference on Software Engineering, the ACM Symposium on the Foundations of Software Engineering (SIGSOFT) the ACM International Conference on Mobile Computing and Networking , the International Conference on Distributed Computing, Wireless '97, and the USENIX Symposium on Mobile and Location Independent Computing.

Expected Curriculum Development

We will develop educational materials: new courses, curriculum, textbooks, and publicly available World Wide Web Materials. New courses and seminars to be developed at Georgia Tech include: Future Networking Services, Mobile Networking and Interfaces for Future Computing Environments. For example, during the past year the Future Computing Environments Group has conducted a weekly seminar series on topics ranging from mobile and ubiquitous computing, the Internet, and personal interaction devices and their applications. This seminar series has served as a launching pad for numerous prototype applications investigating the boundaries of pen-based computing, machine learning, and context-aware applications. With impetus from this proposal, we would like to turn the intellectual and practical experiences of this very successful seminar series into a graduate level course on Interfaces for Future Computing Environments. As part of the activity in this curriculum development, we propose to create a rich repository of instructional and demonstrational information on mobile and ubiquitous computing and would like to investigate novel channels for disseminating this material that transcend and augment what information would normally be available via a standard textbook.

Technology Transfer

Technology transfer is described in Section II B: Deliverables.

Section III C: Technical Rationale

Unifying Communication, Storage, and Processing

In order to provide the advanced network services described in the previous section in a mobile distributed environment with limited computational, communication, and storage resources, we must break down the traditional divisions between information processing, information transmission (networking), and information storage (file systems and databases). The tools we will use to deliver advanced network services, such as intelligent caching, replication, and probing, can also be applied to distributed file system and computation management. The Internet (a network) became wildly popular when the World Wide Web became available (a universal and distributed file system with shared standard application models). We must build on the success of this unification of networking, distributed processing, and information storage in order to provide future network services.

The Motivating Scenario

The motivation for this research is a battlefield/disaster area information management scenario related to Comprehensive Battlefield Awareness. There are a large number of distributed information sources, including high data rate sensors such as video surveillance devices. There are many distributed decision makers that are making decisions based on information collected from local and remote sensors. Network resources must be rapidly deployed as individual decision makers move into an area, since any pre-existing infrastructure is no longer available. Decision makers need access to previous decisions by relevant decision makers and the reasoning and analysis that supported those decisions, as well as past sensor output, so information storage should be viewed as a communication medium that permits communication across time, just as a network is traditionally viewed as a method to communicate across space. No single element in this scenario knows completely which sensor streams each decision maker is utilizing, who is sharing the output of each sensor, or the performance or loading on each network link and node.

The distributed sensors include sensors whose output can be transformed, compressed, or degraded to reduce the size of the information stream. Consider a distributed set of color imaging devices, and a distribution of color and monochrome viewers. Where and when in the transmission from image producers to consumers should the images be compressed, or transformed to monochrome to reduce the size of the information stream? At the source? At the destination (the Web approach)? Should there be different types of information requests and different types of point to point communication? Can a color and a monochrome viewer ``share'' a color imaging source? The above question can be asked for imagers and viewers at different scales/resolutions, and it can be asked for video imagers and image stream viewers with different spatial and temporal resolution resources and needs, and the potential for lossy compression at the sources, destinations, and/or network nodes. We can also ask this question for different information modalities (examples include text to speech, speech to text, and fax to text conversion). The information streams may be sent to devices that vary widely in capability, from a simple text-based devices such as a pager to a multi-media workstation.

Interface Multimodality

We need to deal with multiscale user interfaces in a clean way. We expect soldiers to use many physical devices, (e.g., phones, cameras, computers, audio devices, and televisions) to gain battlefield awareness. In general, each of these devices provide us different modalities for interaction, some involving input only (a camera), some providing output only (a television) and some providing both (a phone). In our electronic lives, we have also become accustomed to many applications (electronic mail, Web browsers, calendar manager, financial systems, weather watchers) that provide us information about the world around us. There are also information services in our world, such as libraries, weather satellites, positioning systems, that we often want to consult. When we want to interact with some application or information service, we usually are provided with a fixed interface. If we want to find out about the weather in the Florida Keys, we need to use a portable computer and consult some weather service, or we can phone a weather hot-line. If a colleague or relative wants to contact us, then they have to phone us, or contact us via fax, page or e-mail. But whatever medium the sender chooses commits the receiver to some physical device. There is a pre-determined commitment between physical interfaces and applications/services that necessarily limits the flexibility of communication in our world. If we want to expand beyond those pre-determined connections, to allow, for example, phone messages to be received as electronic mail, we would have to build a single solution that integrates the audio message with some electronic mail service. The vision we have for USAMAT is to remove this dependence between physical devices and applications/services by providing new general purpose mechanisms for attaching physical devices to applications/services.

The Case For Smart Networks

There are several reasons to look for new solutions to integrating distributed communication, computation, and storage. Old approaches that form end-to-end connections between relatively complex hosts will not support cheap disposable sensor nodes that are capable of generating a data stream but not capable of complex routing or caching algorithms. The network must be smart in order to compensate for dumb devices. The advantages to putting computation within the network include:

Motivating Questions

This battlefield scenario and its accompanying issues of interface multi-modality and cheap disposable network devices and infrastructure raise many questions:

An Argument For A Unified Architectural Approach

The battlefield awareness scenario motivates the need for continuous connection between multiple information sources and consumers. There are several hard issues to investigate in the engineering of such systems, many of which we will address below. An important point is that there are many software solutions that can be used to address the functional issues. Few software design problems are such that they allow for only one solution. Since software engineering is concerned with defining repeatable and reliable methods for producing systems with known functional and nonfunctional characteristics, there is a need to provide a system designer with techniques for selecting an appropriate design solution among many alternatives.

We advocate a software architectural perspective on this design problem. For many years, successful designers have known that it pays to be concerned with how the software in large systems is structured and coordinated [79, 46]. The academic discipline of software engineering does not provide any predictive theories behind the importance of structure and coordination at this gross level of organization of a software system - what is called the software architecture.

The motivating scenario presents a good example of the necessity for a system to provide continuous connection between multiple information sources and consumers. There are several hard issues to be investigated in the engineering of such systems, many of which we will address below. An important point is that there are many software solutions that can be used to address the functional issues brought up by the scenario. Few software design problems are such that they allow for only one solution. Since software engineering is concerned with defining repeatable and reliable methods for producing systems with known functional and nonfunctional characteristics, there is a need to provide a system designer with techniques for selecting an appropriate design solution among many alternatives.

If we consider the problems outlined in the scenario, unifying networking, distributed processing and information storage can be addressed through a layered architectural approach that separates three important concerns. The bottom layer deals with physical networking issues such as connectivity, discovering neighbors/topology, link quality, coverage, and relating network topology to the actual topography. This bottom level support for the physical infrastructure of a network has been extensively studied, so we choose to treat it as a set of established services. At the next level, we are concerned with the collection, transformation and routing of information in a generic way. Here, our research will establish working solutions for an active network, covering topics such as anycasting, caching, and the language for describing information and transformation. At the top level, we are concerned with application-specific intelligence. Here we provide mechanisms to decide when and how to transform the information (using the services of the middle layer). We will provide techniques for defining a ``virtual persona'' or intelligent multi-modal integration of information based on the specific physical interaction devices made available and the tasks that they are meant to support.

There are several advantages to this layered architectural approach. By treating the bottom layer as a black box, we can take advantage of technology advances. When physical services become cheaper, smaller or faster, we can still invoke them with the same set of service requests from the middle layer. As we introduce new interaction devices or better techniques for intelligent adaptation of information in the application layer, we can still make use of the platform and infrastructure services of the bottom layers. This is an architectural approach that has been quite successful in the Internet community and elsewhere. The difference with what we are proposing is a much higher level of information processing and handling capability of the middle layer.

Though a high-level architectural solution is important for obtaining a direction and focus for a whole community of designers, there is still too much left unspecified. There will be multiple solutions that reside in each layer. In fact, the reason we have adopted a layered approach is to accommodate localized choice among alternatives. But there still remains a need to understand how to choose among the architectural options that reside inside each layer described above. We have developed a technique, called the Software Architecture Analysis Method (or SAAM) for the sole purpose of being able to provide concrete rationale for comparing architectural solutions to the same problem. The work we propose here will describe competing architectural solutions to the same problem (e.g., within the application layer we have the Esperanto vs. Translator architecture for integrating multimodal information or the Mirror vs. Task/Process architecture for dealing with mobile end-users). It will be our objective to:

This latter activity will lead us to a software engineering handbook for the class of systems of concern in this proposal (mobile, ubiquitous, dynamic, multimodal, adaptive).

Our goal for the Unified Scalable Adaptive Mobile Application Toolkit (USAMAT) system is to deliver a full architectural specification detailing how distributed network, file system, and computational elements are integrated and how the different network layers (physical, virtual and application) are defined. This will include the development of an interface and application behavior specification language tailored for mobile and distributed tasks, and a high-level semantic language for describing application activity. An event-based implicit invocation system will be constructed to allow for activity management between applications and the virtual layer. A library of software will be provided to take existing applications and provide a semantic wrapper that will enable inclusion into the USAMAT system and enable implicit event-based communication between applications and the activity manager. An I/O management system will be constructed that enables multimodal specification of physical devices. Since arbitrary information will be passed between the physical and application layers, the I/O manager will maintain a suite of translation mechanisms to facilitate communication between devices of different I/O capabilities.

This software infrastructure will support a component-based approach to dynamic delivery of scalable/multimodal computing within a dynamic, highly mobile network. This infrastructure will include an architectural paradigm for the high-level organization and coordination of software components as well as tools and a programming environment to instantiate the architecture in prototype systems. Our goal is an affordable capability for a wide range of military users. We will develop a public domain toolkit and component technologies that will underly the functionality we are providing: 1) Software for service-dependent tracking of users to include not just determination of user location but also user interface and end-device capabilities. 2) Software for ``best'' server determination that integrates seamlessly with current and future Internet protocols and addressing structures. 3) Enhancements to existing network service to provide tailored delivery to user and network path capabilities. 4) We will also provide software libraries to support simulation of the proposed network control algorithms. For ease of programming and portability across the wide range of hardware and software platforms, these services will be built on middleware that will support distributed objects. In addition to exploiting caching and replication in efficient data dissemination, we will also use these techniques in the efficient implementation of distributed objects themselves.

System Architectures For Real World Integration

In order to have distributed services that function well in the real world, one approach is to mirror real objects and individuals with net objects and virtual individuals. This vision is best conceptualized by asserting that each person and object is associated with a virtual persona or agent, realized in software, that removes the dependency between physical device and application. This virtual persona is responsible for: (1) output management: knowing where the real person is and, given any piece of information that must be delivered to that person, determining the best available output device; (2) input management: given some information obtained from the person, knowing how best to direct that information to some application, based on the current activity of the person; (3) activity management: understanding what tasks the person is performing and which ones are currently active. Activities can be simple, such as e-mail browsing, or they can be more complex, such as data mining tasks or surveillance tasks that are intended to look out for significant changes in the world and then inform the person.

Input and output management require the virtual persona to be able to locate the actual person and to be aware of what physical devices are in proximity to the person. Activity management requires the ability to infer what high-level tasks the user intends to perform and how to associate those tasks with various applications/services that exist in some computational form. More sophisticated activity management will also require the coordination between different applications.

The real software challenge facing us will be to provide the connection between the virtual and physical person in a generic and extensible manner. Introduction of a new physical device with some combination of input and output modalities should only require a high-level specification to the virtual person in order to be considered part of the real person's interaction arsenal. Likewise, coordination between applications must occur at a high level of semantic detail. A coordinating activity that constantly probes input messages in order to update a contact database or maintain a schedule of appointments must not rely on the implementation details of the messaging system or the contact database or scheduler. Today, suites of applications provide coordinated activities (such as contact management and scheduling) by opening up the details of one application to another. The coordination provides a greater service to the end-user, but at the cost of dictating the specifics of the separate applications the user must interact with. If the user wants to coordinate electronic mail with a calendar, then both the mailer and the calendar system must be chosen together. In practice, this dependence on the individual application is undesirable because it is too inflexible.

Our approach in USAMAT will be to provide an architectural solution to I/O and activity management tasks of the virtual person. A software architecture defines the significant interacting components in a system and the way in which they are coordinated. Our architecture will be layer to separate the physical interaction devices from the applications/services. A virtual layer, the software realization of the virtual person, mediates between the physical and application layers.

Our architectural approach requires a language to define the interfaces of all components and mechanisms for defining the interaction between components. For I/O management, each physical device will have to be known to the virtual layer through a high-level interaction specification which characterizes the direction and modality of the device. For instance, a phone is identified as a 2-way voice device. For activity management, we will use a knowledge specification language to define what significant activities a single application (such as an e-mail reader or Web browser) provides. This high-level semantic specification will be coupled with a probe that will detect when significant events occur (e.g., when a mail message arrives, or a Web page changes). Coordination of these applications will be achieved through an implicit invocation system, as is commonly used in many software engineering tool environments today, with the activity management process acting as overall notifier/dispatcher.

Scalability and Individuality of Advanced Network Services

The most exciting new advanced network services combine recent advances in information content development and advances in the networking infrastructure used for this content's delivery. Web page delivery, multimedia-on-demand and multimedia distribution are examples of services that have recently received significant attention from the research community and from the public in general. We are interested in two characteristics of advanced network services: 1) Scalability: the ability of the service to handle a large number of end-users with low per-user cost, and 2) Individuality: the ability of the service to deal with differing requirements imposed because of heterogeneity in the end-users capabilities and/or heterogeneity of the network paths leading to the end-users. Although a high level of both individuality and scalability are desirable features of any networked service, they are normally conflicting goals that need to be traded-off with each other. This proposal will pursue complementary investigation of this tradeoff at a number of levels ranging from the application level to the networking infrastructure level.

Networked services typically make use of communication services provided by a networking infrastructure. Traditionally such infrastructure has provided various flavors of point-to-point (or unicast) capabilities. Increasingly, however, point-to-multipoint (or multicast) support is being defined and made available in various types of networking infrastructure such as IP [38] and ATM [98]. The decision on which type of communication to use is traditionally based on some intrinsic requirement of the service (e..g., use multicast for video conferencing and unicast for Web page delivery). Typically, a networked service provider is required to choose either unicast or multicast as the underlying communication mechanism. In fact unicast and multicast represent the ends of a spectrum with many other possibilities in between. Moving in the direction of multicast gives increased scalability, whereas moving in the direction of unicast gives increased individuality. This is, in effect, a basic principle underlying our proposed work.

Section III D: Technical Approach: Lightweight Access to Network Resources

The overall architecture of our approach can be stratified into three tiers of functionality. At the bottom are the network-specific protocols and algorithms, which provide the basic communication substrate and deal with low-level problems of connectivity, fault-tolerance and basic routing. This ``substrate tier'' may differ for different applications, e.g. battlefield and disaster-relief applications may use a rapidly deployable substrate, while civilian applications might use one that is more stable and slow to change. This tier may require enhancements to existing technology to provide more information to the upper tiers, e.g. a characterization of the quality of the path to a given node in terms of bandwidth available, error rate, delay, and amount of computational power. However, considerable information can also be inferred by probing to determine network capability.

The middle tier provides generic ``smart network'' functionality, in the form of a standard set of processing and storage facilities. These generic functions are available at nodes throughout the network, with some nodes offering more powerful facilities than others. These facilities are used by the top tier to effect the transformation and routing of information to the appropriate mode and location for the application and person. Thus the top tier contains the algorithms and information that determine when, where, and how information is to be transformed, routed, and/or cached.

One advantage of this architecture is that the generic intelligences in the middle layer provides a kind of ``cross point'' for mixing all kinds of applications with all kinds of network substrates. Like the ``hourglass'' architecture of TCP/IP, it provides a common platform that hides substrate differences from applications and user interfaces, and vice versa.

Smart Network Functionality

We include three components in the middle tier: (1) distributed storage, including replication, caching and alternative storage representations; (2) active networking to provide intra-network processing capability; and (3) probing and tracking to monitor location, availability and performance of servers, clients and network resources. Our top tier applications will make significant use of the capabilities provided by the smart network.

Distributed Storage

The many network nodes (thimbles) and servers in our environment, along with all the storage devices such as RAM, disk arrays, and tape libraries that they contain, constitute a large, distributed, hierarchical storage system. One large challenge of this environment is managing the storage system. We will define a software architecture that manages multimedia objects as they are stored, replicated, moved among storage devices of different types, transformed to appropriate modalities, and migrated among servers. The goal of this software architecture is to provide high availability, high performance, and a consistent and transparent view of multimedia objects that may be stored locally or at very distant locations.

First, we will develop a distributed hierarchical storage manager that offers us an object-oriented interface to multimedia objects. Next, we will develop algorithms to control movement of objects in the storage system. This movement includes the migration of objects among servers; such migration will be driven by demands on servers and network links. For example, keeping a popular object at a remote server increases the network bandwidth to that location, while moving the object to a local server increases the storage requirements of that server. Our distributed storage manager will also control replication policies. Popular objects will be replicated to provide low latency data access. Objects must also be replicated to assure high reliability and availability. Migration and replication policies are likely to be highly dynamic. For example, in a volatile environment where many nodes are failing, new replicas of data will frequently be created.

Other algorithms are required to control moving objects among different types of storage devices. Based on dynamically analyzed patterns of data access, we will perform aggressive prefetching of data from slower storage to faster storage to minimize response times. These strategies will include algorithms for prefetching data from tape to disk and from disk to memory.

Finally, our storage system will maintain consistency, both among replicas of objects and among different representations of individual objects. We will propose appropriate models of consistency for objects that are stored at geographically distributed locations. Additionally, our system will create a number of representations of individual objects. These objects are created when original objects are scaled or transformed based on the modality of the receiver nodes or the bandwidth of network connections. We will develop policies for storing these multiple object representations and for keeping them mutually consistent.

Active Networking

Viewing the network as a computational engine admits a rather large space of possible approaches. The basic tenet of active networking is that, in addition to addressing information, the data may have associated information describing a computation to be performed using that data as some or all of its input. The class of possible computations may be characterized according to computational power, temporal and spatial locality. Some current proposals for active networking tend toward the more general end of the scale [51, 95], with programs in a Turing-complete language attached to each packet. Our approach is simpler in concept, allowing faster development and deployment, with more limited network node functionality.

In our approach, the network defines a finite set of functions that can be computed at an active network node. Computing these functions may involve state information that persists at the node, across the handling of multiple data units. Each function computation is spatially local, in the sense that state information does not move from node to node (unless it is carried in a data unit).

The interface between the user and the network is very simple: each data unit carries control information including a number identifying the function to be computed, plus a set of identifiers called labels that select the state information to be used (and possibly updated) in the computation. By assigning these labels to its data units in an appropriate way, the user can control the processing of its data units. As an example, the network may support a unit-level drop function: when one packet that specifies that function is dropped, for some time thereafter, every packet that matches some subset of its labels is also dropped. Thus, the definition of ``unit'' depends entirely on the labeling, and the user can control how much information is aggregated for dropping purposes.

The hardware architecture of an active network node will need to provide substantial processing capabilities and easy access between processing functions and node inputs and outputs. We envision an architecture consisting of a routing core, connecting node inputs and outputs and active processing (AP) elements. Data entering the node can be sent directly to the proper output or it can be sent to an active processing element.

The active processing elements may be specialized hardware, tailored to perform particular active node processing, or they may be general purpose processors. An individual processing element may consist of multiple processors and/or pipelining to enable fast computation. This computation power is a shared resource, accessible by the data from any user connection that passes through this network node, thus greater resources may be justified than in a non-shared location. A data unit that enters the network node may pass through multiple processing elements before being routed to one or more network outputs. The routing core allows data to move between processing elements at high speed.

Active Processing Methods

We envision active processing of the following types:

Probing and Tracking

Mobile connectivity is more than just connecting roaming users to a point where packets can be injected into the Internet. Merely providing a new address every time a mobile host connects to the network or makes contact with a new gateway or bridge node does not allow continuity or convenience in network services. A standard way to support mobile computing is to maintain a forwarding connection from a fixed home computer. This approach will not work for highly fluid situations where a high degree of connectivity is needed between local sensors and decision makers far away from their ``home'' computer systems. Furthermore, security concerns encourage isolation of different functional sections of a larger network, cutting off users from their ``home''.

In order to make designing mobile applications easier, we will develop a library of software components that support at least three techniques to support mobile users, allowing legitimate users to jack into any local network infrastructure as needed:

  1. Tunneling: providing services from a home base.
  2. Client spoofing: providing remote services from local servers.
  3. Server spoofing: providing local services.

We will also implement various methods to collect and maintain information about the status and load on nodes and links. These methods may include probing from clients or client proxies, server pushing, and active network monitoring.

Advanced Applications and Services

The smart network in the middle tier provides a base of functionality on which we can deliver applications and services to highly mobile users with multi-modal interfaces.

Multi-modal Delivery

User interfaces will take many forms. Input devices can range from the phone keypad of today's cellular phone to voice, video, and pen-based gesture. Output devices can range from a small pager screen to voice and video. A major issue is handling and translating these different forms of information, and choosing the right information to display at the right place using the right modality. Multiple languages is another form of multi-modality that we will explore, using English, Japanese, and German.

How do we accommodate receivers with vastly different capabilities? These receivers might include a fiber-connected hand-held computer that can receive a high-quality HDTV video stream, low-power wireless computers such as InfoPads with low-bandwidth infra-red interfaces, and a simple pager system with the capability of receiving only a small amount of text.

First, we require the capability to scale down media quality and the resulting bandwidth to accommodate lower bit-rate connections and devices. One method for doing this downscaling involves using scalable compression schemes in which some DCT components of the compressed video can be discarded to limit bandwidth requirements of the stream; the MPEG-2 standard includes scalable compression [33], as do the compression standards from Zakhor [93, 94]. Another method is to use video gateways such as that implemented by Amir and Katz [7]; the gateway resides on a machine trusted by the video client and transforms video as it arrives on the network from one video format to another format that generates a lower-bandwidth stream. Transformations that are more significant than simple scaling will also be required, for example translating a video stream into a few phrases of text to be delivered to a pager.

Since transforming video from one format to a lower-bandwidth format will result in loss of resolution, one of the important issues is where and when this transformation should take place. Transporting a high-bandwidth stream over a low-bandwidth link or to a low-bandwidth device will waste network bandwidth. So, we would like to scale down the stream as early as possible. However, scaling down the stream bandwidth results in a permanent loss of resolution for the stream; after we scale down stream quality, subsequent receivers only get the low-quality version. In a rapidly evolving network, scaling quality down too early may severely hamper higher-quality receivers who need all the information carried in the original video signal.

Clearly active networks and distributed storage can assist in the delivery of information in multiple modalities. For example, an active network can transform information from one representation to another, either at a point of congestion or when a low bandwidth link is encountered. This transformation can range from simple scaling to more complex computation. The storage system may contain multiple versions of the information, in the most commonly accessed modalities. An interesting question which we will explore is the right way to support multiple modalities using a combination of storage, active networking and receiver agent processing approaches.

Information Filtering

With many network nodes transmitting video simultaneously, it is likely that information will need to be filtered. For example, on a battlefield in which all nodes are transmitting video, it may be desirable to store the video streams on a local server but transmit to a remote server only a small number of streams or some summary of the information they contain. In such a battlefield network, it would make sense to forward information on critical positions or when enemy troop movements are detected. However, it may be unnecessary and even undesirable to transmit all possible streams. Rather, these can be stored locally and retrieved if necessary, saving considerable bandwidth.

Various research issues arise out of a desire to extract information on which streams are relevant and which are not. On a battlefield large numbers of moving soldiers will all be transmitting signals; while these signals might be stored on a server or a collection of servers, support elements such as medical units would probably be interested in only a few streams. This might be a random sampling of the population to get a sense of the range of physiological state of the soldiers. The doctors might also focus on a sensor stream after an indication of some problem or injury from one of the biological sensors. Other filtering mechanisms might do real-time extraction of content information and look at streams that meet certain content conditions.

Best Server Location

The anycasting communication paradigm is designed to support server replication by allowing applications to easily select and communicate with the ``best'' server, according to some performance or policy criteria, in a group of content-equivalent servers. In a mobile environment with changing user location, changing I/O modes and changing interface availability, a new dimension is added to the problem. Now the definition of "best server" should include this changing information about the user. We will extend the notion of anycasting so that it reflects the user context (such as location). Our version of anycasting includes the notion of sophisticated metric based and policy based filtering at the request source, within the network, and at the servers to affect the selection process. We make use of probing and server push techniques provided by the middle tier to maintain filter state information at the anycast servers.

Customization/Adaptation

Our approach to adaptation and customization of services and network behavior is to provide tools that allow both manual customization as well as automatic adaptation. The basis of the adaptation will be both storing examples (nearest neighbor, memory based, and case based techniques) and making rules (decision trees, for example). Rules are useful when execution speed is critical and computation and memory resources are limited, such as in a network router. Methods based on storing examples can be more flexible and automated. We will also emphasize learning approaches that operate on continuous numerical quantities and use numerical representations, rather than exclusively focusing on symbolic learning approaches. Numerical machine learning avoids brittle performance and allows smooth interpolation and extrapolation from examples.

We will build software agents that filter and prioritize information from sources ranging from directly addressed (email, phone messages, faxes, and pages) to broadcast (electronic news services, uunet news) to database updates and mining results (outputs of Web watchers and crawlers). These agents will use statistical and machine learning techniques to develop models of individual priorities and preferences. We will explore the extent to which software agents need to actually understand speech or language. It may be the case that relatively simple and incomplete levels of understanding may be sufficient to prioritize, sort, and filter information. We will especially explore this issue in the context of multiple languages (English, Japanese, and German).

Section III E: Related Work

This section complements Section II E: Related Work and focuses on networking issues. There have been several approaches for improving the scalability of a network service. These include server replication [36], caching [35, 80], batching requests at the server [34], and multicasting of server responses over the network [49, 30].

Replication and Finding the Best Server

The server or resource finding problem in the presence of replication has been the subject of much investigation. Many techniques were proposed for translating a name or property into a server address, including 1) the use of multicast or broadcast communication to ``touch" all the locations where the resource may reside an attempt to find it (e.g., [77]) , 2) the use of various name server architectures in order to lookup the location of the resource (e.g., [72, 50, 17]) and 3) the use of caching of a resource's location (not content) at sites where the resource is frequently accessed [96]. The case of a mobile resource was addressed through interesting techniques like the use of forwarding addresses [45]. Replication adds a new dimension to the server finding problem: it is now important to find the ``best'' server from among many content-equivalent servers. Two notable studies in this area are: 1)the original work by Partridge, Mendez and Milliken [78] proposes the idea of anycasting and discusses its network-layer support and 2) a recent study by Guyton and Schwartz [52] which addresses the problem of locating the nearest server. The latter work also presents a classification of ``best"-server location schemes. The work is related to earlier work on the Harvest system [21] which provides a set of tools for gathering information from various servers and efficiently indexing and searching through this information. Tools for caching and replication of indices are also used in the Harvest system in order to improve the scalability of the service. By choosing to define anycasting as a communication paradigm, we deviate somewhat from the Guyton and Schwartz classification which considers the original definition of anycasting as a network-layer-supported service. Our work investigates the complete design of application-layer anycasting and not just the metric probing aspect as discussed in [52].

Probing

The concept of probing the network and the servers to determine performance measures is related to various tools and systems that are used for network management purposes. Examples of these include the traceroute [57], and mwatch [48] tools and management systems that integrate such tools such as the Fremont system [112]. Rather than probing for performance measurements, we also consider the idea of having the server ``push'' onto the network its own locally generated performance observations. This is related to the Push Caching idea [53] where servers are in charge of pushing the desired information onto remote caches and the server push mechanism [55] implemented in Netscape browsers.

Scalability/Individuality Tradeoffs in Network Services

As mentioned earlier, the fact that the use of multicast communication can limit individuality has been recognized by some researchers. Several techniques have been developed to deal with this. Not all techniques are applicable in all situations. For the transmission of video and audio, individual treatment of receivers can be accomplished through the use of some form of hierarchical encoding of the data [87, 88]. For resource reservation-based networks [43, 22], providing individuality involves the maintenance of receiver state in routers. Routers then forward only the components of the video stream that the receivers are capable of handling and the source only needs to maintain one stream. This approach has the advantage of being bandwidth efficient (subject to good selection of the encoding hierarchies) but requires somewhat complex network operation to maintain router state. Another technique has been described in [39]. The method encodes temporally-scaled media hierarchically and transmits streams on separate ST-II connections [101] that can have differing service guarantees (i.e., priorities). The scheme relies on the ``stream group'' feature of ST-II to synchronize message delivery from different connections which can represent a significant processing burden on the receivers.

The work in [40] argues for the need to make applications (or what we call networked services) adaptive. It draws on experience dealing with heterogeneity in the IVS conferencing system for which a solution is proposed in [20]. Although drawn from a somewhat different perspective this argument is very much in line with our individuality/scalability tradeoff arguments.

Related Work on Active Networking

Tennenhouse and Wetherall [95] have outlined an architecture and set of issues for active networking. They propose an integrated approach in which capsules containing data and programs replace the traditional (passive) network packets. Much of their discussion focuses on the programming and security aspects of this architecture, including program scope, cross-platform execution of code, and resource usage. Active messages [106] are related to active networking in the sense that the messages contain both user data and information to specify processing at the receiver. (Specifically, each message contains an address of a user-level handler.) However, active messages are intended to optimize performance for a network of workstations or other relatively closely coupled set of processors, not a multi-hop, wide-area network.

Examples of processing that could be called ``active'' can be found in existing congestion control mechanisms. Recognizing the performance degradation caused by fragmentation [61], packet-level discard techniques have been explored to improve the performance of TCP/IP over ATM [11, 83]. The Partial Packet Discard strategy drops all cells in a packet that follow a dropped cell [11]; the Early Packet Discard strategy improves performance by aggressively dropping entire packets when a congestion threshold is reached [83].

Another example of (special purpose) intelligence appearing in the network is the ``TCP snooping'' technique used in the Infopad project at Berkeley [6]. There, network nodes located at the edge of especially unreliable (wireless) network links take certain actions on behalf of TCP connections in order to improve throughput in case of packet loss.

Related Work on Advanced Network Services

Relevant work on Advanced Network Services includes [12]. Approaches proposed to dealing with the real-time aspect of video distribution fall in one of two categories: 1) the use of a network capable of resource reservation to provide performance guarantees [43, 13, 22, 87] and 2) the use of feedback control to adjust video stream requirements to meet current network capabilities [19, 20, 58, 25].

Our approach is an extension of our work in multicast destination set grouping [8, 28]. The work in [8] investigated the performance gain of destination set grouping in the context of an ARQ protocol over a broadcast channel. In [28], we designed and implemented a destination set grouping protocol for window flow-controlled connections using a binary feedback flow control method.

The basic components of resource reservation-based schemes is the maintenance of receiver state in routers and the use of hierarchical encoding of video. Routers then forward only the components of the video stream that the receivers are capable of handling and the source only needs to maintain one stream. This approach has the advantage of being bandwidth efficient (subject to good selection of the encoding hierarchies [87, 88]) at the expense of more complex network operation. Based on our experiments over the Mbone, we compare the bandwidth requirements of our proposed scheme with those of an idealized version of this approach.

Distributed Storage

In the area of storage system design, previous work falls into two main categories. Research into distributed, object-oriented storage systems has primarily focused on massive storage systems for large government laboratories, and the appropriate migration, archival and prefetching policies for those environments [47]. Other work in this area has focused on configuration of disk systems for multimedia applications such as video-on-demand [105, 26, 16]. With few exceptions (notably, [97]), this work has ignored several issues: storage devices other than magnetic disks; the geographic distribution of servers; and the characterization of more sophisticated workloads than traditional video-on-demand. In our work, we will address all three of these issues. Our storage system will be a general, distributed storage hierarchy, and the environment that we will create will present much heavier demands on the multimedia storage system than simple delivery of movies.

Section III F: Accomplishments

Software Architecture: In the area of software architecture, we have built formal and informal models for describing and analyzing a software architecture against a set of concrete, nonfunctional characteristics. We have defined a formal framework for describing families of architectural solutions, or architectural styles, that allows us to reason about their behavior [1]. We have also developed a more informal and practical method for evaluating an architecture against a concrete set of quality requirements. This method is called the SAAM technique (Software Architecture Analysis Method) and has been applied to numerous academic and industrial case studies [60, 31, 2, 59]. The SAAM technique is a cornerstone of an ARPA project on evolutionary design of future computing environments.

Future Computing Environments: User Interfaces and Prototype Services: Drs. Abowd and Atkeson have founded the Future Computing Environments (FCE) project at Georgia Tech, which explores context-aware computing and scalable interfaces. More information on Georgia Tech projects can be found at http://www.cc.gatech.edu/fce. The FCE project, Cyberguide, is one example of context aware computing, which uses indoor position-aware mobile tour guides built from commercially available PDAs (Newton MessagePad) and IR positioning beacons indoors and GPS outdoors [67]. It is currently being extended with 2-way wireless communications capabilities. Another FCE project, CyberNag, provides a unified messaging system that supports many forms of input (e-mail, snail-mail, voice-mail, fax, WWW pages, newsgroups, calendar reminders), treats them all as messages and is able to deliver them to a variety of output devices (pagers, phones, PDAs, workstations, wall-screens, room I/O devices). Classroom 2000 is an FCE project focusing on group information capture and use of pen-based computing [86]. This exploration of computer supported cooperative work will be reimplemented in a mobile context with a wide range of interface devices.

We have also put together a working system for the delivery of phone service to workstations based on our current internet phone implementation. Ultimately, we will also address the problem of delivery of other services. An interesting twist is the determination of users capabilities/interests (not just location) as these change over time and delivering just the right service component to match that.

Networking Accomplishments: In the Active Networking project we have examined the benefits of active networking to provide application-specific congestion control [15, 114]. The congestion control mechanisms are activated based on dynamic network conditions regarding the presence and severity of congestion. Our methods include simple unit dropping, media transformation and multi-stream interaction. We have a prototype implementation that uses an ATM switch with attached workstations as the active node, and we are working on an IP-based implementation.

We have implemented components of an Application-layer Anycasting system, that allows applications to easily select and communicate with the best server from a group of replicated servers [14]. The definition of best is quite general, allowing both performance and policy filters to influence the server selection process. The system is capable of tracking changes in network conditions and availability of servers. We have experimented with performance metrics, including processor load and server response time, and integrated the implementation into a Web browser.

The Resource Reservation Manager provides middleware to interface time-varying, multi-stream applications to a network that provides various classes of service. We are building a resource manager to run over ATM, and examining issues of optimal renegotiation, resource manager communication protocols, and multi-stream management.

Prior models of internetworks did not reflect the locality and hierarchy properties present in actual large networks. Further, they tended to be either too random or too regular in structure. We have developed a model that imposes structure at the highest levels of detail, then uses various forms of random graphs to instantiate lower levels of detail. The high level structure is designed to reflect known properties of Internet topology. We also have developed a methodology for comparing network models, and have used this to determine that significant differences exist between our models and others [23].

In our work in this area we have considered the use of another technique which we dub Destination Set Grouping (DSG). This technique has wider applicability than the previously discussed schemes. Our work has explored its use in the error- and flow-controlled transmission of data and in multicast video distribution. This work has been reported in [9, 28, 29].

We have done extensive work in managing replicated and cached shared state in distributed systems. Our work has developed new techniques for keeping replicated server state [3] consistent. We have also developed techniques that employ client caching in addition to server replication. These have resulted in scalable distributed algorithms for managing multiple level of consistency for shared information and they work well in the context of mobile and varying bandwidth network systems [4, 62]. A key property of our algorithms is that communication and processing overheads incurred by nodes do not depend on the total size of the system. We have exploited these algorithms in the development of a distributed object based middleware system that makes use of caching to improve access performance in a CORBA-compliant system [63].

Storage System Architectures: Dr. Chervenak has examined the use of storage hierarchies to support interactive multimedia services. This work included measurement and simulation of tertiary storage devices as part of a video server hierarchy. This work demonstrated insufficiency of current tape devices and optical libraries for such interactive services, since the response times of such systems is long. These results motivated our current interest in aggressive prefetching schemes based on predictions of user accesses. Dr. Chervenak also evaluated such optimization techniques as disk and tape striping. While disk striping proved to be a very effective technique for increasing the number of simultaneous streams supported by a multimedia server, tape striping was found to be detrimental to performance for these applications. Dr. Chervenak has also characterized interactive multimedia workloads such as movies-on-demand video servers and digital libraries. She has used these workload characterizations to drive and refine the design of hierarchical storage systems. Earlier, as part of the RAID disk array project at the University of California at Berkeley, Dr. Chervenak participated in a large implementation effort for two disk array prototypes. Dr. Chervenak evaluated the performance of an initial prototype disk array built from commercially-available components. Dr. Chervenak also shared (among three graduate students) the board-level design of a second prototype, a scalable high-bandwidth network-based storage server [42].

Our current implementation efforts include a large prototype system. The initial prototype includes a commercial video server with a variety of storage devices and rich network infrastructure including a hybrid fiber-coaxial cable network, a variety of set-top boxes and cable modems. This prototype system will evolve to explore other network technologies, including fiber connections and wireless connectivity. The prototype also includes a variety of media servers that we will use to experiment with caching, replication and migration strategies. Storage components attached to the multimedia servers include solid state memory, disk farms, tape libraries and optical disk juke boxes. The initial prototype implementation includes video servers attached through ATM switches to workstations, the Internet, and a ``Broadband Integrated Gateway''. We have recently purchased a large Sun MediaCenter video server. The fiber-to-coax gateway, built by Scientific Atlanta, connects fiber links from ATM switches to the coaxial cable network. The prototype includes a cable television head-end system, a collection of set-top boxes attached to television monitors, and a collection of cable modems attached to workstations.

Current and Pending Support

Dr. Abowd holds grants from Bell Northern Research, Motorola, BellSouth Intelliventures, and NEC for research in software architecture and future computing environments. Dr. Abowd has submitted a proposal to the NSF Career program on the topic of automated architectural understanding for evolutionary design of future computing environments and is co-PI (with Rugaber, Potts, McCracken, Wills, Moore and Goel) on the ARPA Morale project awarded for 5 years at roughly $200K/year. from the Evolutionary Design of Complex Systems program. Together with Motorola and partners with three other universities (Maryland, Michigan State and Virginia), Dr. Abowd is proposing a Motorola-sponsored distributed software engineering research lab for work on applications of future computing environments.

The current support for Dr. Ahamad includes ARPA projects entitled Using Replication to Build High Performance Distributed Systems (PIs: Ahamad and Ammar) and Object Technology for High Performance Systems (PIs: Schwan and Ammar). He is exploring middleware that can support distributed objects efficiently. Such objects can allow scalable services to be programmed easily in a heterogeneous environment. The main techniques being used in efficient object implementations include replication and caching with flexible notions of consistency among multiple copies of shared object state.

Dr. Ammars and Calvert currently have a funded NSF grant Multi-Protocol Architectures as Paradigm for Achieving Inter-Operability, (amount $171,000). Drs. Ammar and Zegura participate in a grant from Hitachi Telecom Application-based Traffic Management for ATM Networks, (PIs: Aaron, Ammar, Evans, Howard, Limb, Zegura, amount $250,000). Dr Ammar also has several pending proposals: Supporting and Exploiting Multiprotocol Communication, NSF (PIs: Calvert and Ammar, amount $330,000); Investigating the Scalability/Individuality Tradeoff in the Provision of Networked Services, NSF, amount $260,000; and: IP Multicast over ATM, Bellcore, amount $30,000.

Dr. Atkeson is currently supported by an AFOSR grant, Nonparametric Modeling and Control of High Performance Maneuvers, (amount $161,742), which will complete in June 1996.

Dr. Calvert has a pending NSF proposal Supporting and Exploiting Multiprotocol Communication, NSF, PIs Ammar and Calvert, amount $330,000.

Dr. Chervenak has applied for a NSF Careers award A Systematic Approach to the Design of High-Performance Cost-Effective Multimedia Storage Systems.

Current support for Dr. Zegura includes an NSF funded Careers proposal entitled A Systematic Approach to the Design of Cost-Effective, High Performance Switch Architectures (amount $131,479). Dr. Zegura has pending an ONR Young Investigator proposal entitled System Architectures for Very Large Networks. Dr. Zegura is participating in another submission to this BAA, on Self-Organizing Scalable Simulations, along with colleagues from Bellcore, Bell Labs and several other universities.

Section III G: Facilities

The College of Computing at the Georgia Institute of Technology provides an ideal environment for the proposed research because of the extensive computational facilities available and the concentration of colleagues working on Human-Computer Interaction, Software Engineering, Networking, Systems, and Machine Learning. Two research centers within the Institute, the Graphics, Visualization and Usability Center (GVU) and the Software Research Center (SRC), provide strong evidence of the major commitment the Institute has made towards furthering research and education in both Human-Computer Interaction and Software Engineering.

The GVU Center includes a lab which houses a variety of graphics and multimedia equipment, including high-performance systems from Silicon Graphics, Pixar, Sun, Hewlett-Packard, Digital, Apple, and Intel.

The Software Research Center (SRC) within the College of Computing serves as a focal point of research designed to enhance both the state-or-the-art and the state-of-the-practice of software engineering through industrial liaisons, education and research. Its staff includes nine faculty and eight graduate research assistants. One of the principal research areas is in Human-Computer Interaction which is manifest in several jointly appointed faculty in SRC and GVU (including Abowd). The SRC runs the Open Systems Lab which was established in 1993 to study problems in technology and systems transfer. The mission of the lab is to identify, track and participate in the development of relevant Department of Defense and industry standards and to assess the availability and maturity of open systems software. Areas of current research include standardized operating systems, open systems communications and networking, user interface migration, business process reengineering, reverse engineering and tool support, and distributed databases.

The Telecommunications group within the College of Computing comprises six faculty and approximately fifteen graduate students. The primary theme of the group is the development of broadband technology and the associated research challenges, including exploring systematic ways to handle internetworking between heterogeneous systems. Equipment available within the group includes two Fore ATM workgroup switches, a sniffer, an Adtech traffic generator/analyzer, numerous workstations, and some cable equipment. We participate in GCATT, a state-wide organization intended to bring together telecommunications technology interests throughout Georgia. Six universities in the state form the academic component of GCATT, with Georgia Tech designated as the lead university. Equipment available within GCATT includes a multi-node ATM network called Xnet, ATM test equipment and an interoperability lab for ATM products. A new GCATT building, scheduled for completion in Summer 1996, will provide offices and significantly expanded laboratory space for the telecommunications group.

The Georgia Tech College of Computing Systems group along with faculty in the Networking group and the Graphics, Visualization and Usability Center were awarded a Research Infrastructure grant by the National Science Foundation. This grant is in support of the Distributed Laboratories Project at Georgia Tech, which will focus on supporting collaborations among geographically separate scientific researchers. Equipment to be purchased using this Infrastructure award includes a large multiprocessor, a video server, a cluster of workstations, several visualization workstations and ATM network infrastructure.

The Future Computing Environments has 20 PDAs (Newtons) 10 palmtop PCs (DTR-1s), and 17 tablet computers (IBMs and Toshibas). We also have an IR indoor positioning system and an outdoor GPS system.

Section III H: Personnel

See Section III F Accomplishments for a listing of major sources of support.

Section III I: Budget

We request funding in each year for supporting 3 graduate research assistants, 3 postdoctoral fellows, and 2 months of salary per year for each PI. A half-time secretary will be hired to help administer the program. In addition approximately $100,000/year is budgeted for construction of interface and network prototypes ($50,000 equipment and $50,000 materials and supplies). Equipment includes portable computers with wireless interfaces ($5000 each), wireless network hubs ($2000 each), and video cameras ($1000 each). Materials and services include sensor fabrication ($1000 each). Funds are also requested for travel, computing charges, and other allowable miscellaneous expenses.

We expect substantial equipment loans and donations from Motorola, our research partner. We are also requesting $50,000/year equipment matching funds from Georgia Tech (in addition to the funds requested in the following budget).

                          Year 1     Year 2     Year 3        Total	

Total Senior Personnel    94,516     99,242    104,203      297,961

Other Personnel:
Post Docs (3)            105,000    110,250    115,763      331,013
Graduate Students -       48,000     50,400     52,920      151,320
  (3 @ 50%)
Administrative Support -  12,500     13,125     13,781       39,406
  (50%)
Total Personal Services  260,016    273,017    286,667      819,700

Fringe @ 24.8%            49,480     51,954     54,552      155,986
GRA Tuition-fee            9,600     10,080     10,584       30,264

Total P.S. & Fringe      319,096    335,051    351,803    1,005,950
EQUIPMENT                 50,000     50,000     50,000      150,000
TRAVEL                    12,000     12,600     13,230       37,830

OTHER DIRECT COSTS
Materials and Supplies    50,000     50,000     50,000      157,625
Computing Charges         22,981     24,130     25,337       72,448

Total Other Direct        72,981     76,630     80,462      230,073

TOTAL DIRECT COSTS       454,077    474,281    495,495    1,423,853

INDIRECT @ 46%           181,459    190,532    200,059      572,050
                         -------    -------    -------    ---------

TOTAL DIRECT & INDIRECT  635,536    664,813    695,554    1,995,903

Section IV: Additional Information

References

1
Gregory Abowd, Robert Allen, and David Garlan. Formalizing style to understand descriptions of software architecture. ACM Transactions on Software Engineering and Methodology, 1996. To appear.

2
Gregory Abowd, James Pitkow, and Rick Kazman. Analyzing differences between internet information system software architectures. In Proceedings of ICC'96, 1996. To appear.

3
M. Ahamad, M. H. Ammar, and S. Y. Cheung. Multi-dimensional voting. ACM Transactions on Computer Systems, 9(4):399-431, November 1991.

4
M. Ahamad, F. Torres, J. Singh, R. Kordale, and S. Smith. Detecting mutual consistency of shared objects. In Proc. of Mobile Systems and Applications, December 1994.

5
Kevin Almeroth and Mostafa H. Ammar. On the use of multicast delivery to porvide a scalable and interactive video on demand service. IEEE Journal on Selected Areas in Communications (to appear), 1996.

6
E. Amir, H. Balakrishnan, S. Seshan, and R.H. Katz. Efficient TCP over networks with wireless links. In Proceedings of the Fifth Hot Topics in Operating Systems (HotOS-V), May 1995.

7
Elan Amir, Steve McCanne, and H. Zhang. An Application Level Video Gateway. In Proceedings. ACM Multimedia, November 1995.

8
M. H. Ammar and L. R. Wu. Improving the throughput of point-to-multipoint ARQ protocols through destination set splitting. In IEEE INFOCOM'92, pages 262-271. IEEE Communications Society, 1992.

9
Mostafa H. Ammar and Li-Ran Wu. Improving the Performance of Point-to-Multipoint ARQ Protocols Through Destination Set Splitting. In Proceedings of INFOCOM '92, pages 262-271. IEEE, May 1992.

10
CU Arcadia. http://www.cs.colorado.edu/homes/arcadia/public_html/Home.html.

11
G. Armitage and K. Adans. Packet reassembly during cell loss. IEEE Network Magazine, September 1993.

12
Support for distributed real-time multimedia applications in mobile wireless networks. http://www.ito.darpa.mil/Summaries95/C913-BBN.html.

13
R. Bettati, D. Ferrari, A. Gupta, W. Heffner, W. Howe, M. Moran, Q. Nguyen, and R. Yavatkar. Connection establishment for multi-party real-time communication. In Int`l Workshop on Network and Operating System Support for Digital Audio and Video, pages 255-266, 1995.

14
S. Bhattacharjee, M. Ammar, E. Zegura, and V. Shah. On the design and implementation of generalized application-layer anycasting. In Submitted to ACM Sigcomm '96, 1996.

15
S. Bhattacharjee, K. Calvert, and E. Zegura. On active networking and congestion. In Submitted to ACM Sigcomm '96, 1996.

16
Yitzhak Birk. Track-Pairing: A Novel Data Layout for VOD Storage Servers. In Proceedings. International Conf. on Multimedia Computing and Systems, May 15-18 1995.

17
A. Birrel, R. Levin, and M. Schroeder. Grapevine: An exercise in distributed computing. Communications of the ACM, 25(4):260-274, April 1982.

18
S. Bocionek and M. Sassin. Dialog-based learning (DBL) for adaptive interface agents and programming by demonstration systems. Technical Report CMU-CS-93-175, Carnegie Mellon University, 1993.

19
J.-C. Bolot and T. Turletti. A rate control mechanism for packet video in the Internet. In Proceedings of INFOCOM '94, pages 1216-1223, Toronto, Canada, 1994. IEEE Communications Society.

20
J.-C. Bolot, T. Turletti, and I. Wakeman. Scalable feedback control for multicast video distribution in the Internet. In ACM SIGCOMM '94, pages 58-67. ACM, 1994.

21
C. M. Bowman, P. Danzig, D. Hardy, U. Manber, M. Schwartz, and D. Wessels. Harvest: A scalable, customizable discovery and access system. Technical Report CU-CS-732-94, University of Colorado - Boulder, 1995.

22
R. Braden, L. Zhang, D. Estrin, S. Herzog, and S. Jamin. Resourse ReSerVation Protocol (RSVP) - version 1 functional specification. IETF draft, Sept 1995.

23
K. L. Calvert, E. W. Zegura, and S. Bhattacharjee. How to model an internetwork. In IEEE Infocom '96, March 1996.

24
Kenneth L. Calvert. Beyond layering: Modularity considerations for protocol architectures. In Proceedings International Conference on Network Protocols, San Francisco, October 1993.

25
S Cen, C. Pu, R. Staehli, C. Cowan, and J. Walpole. A distributed real-time MPEG video audio player. In Int`l Workshop on Network and Operating System Support for Digital Audio and Video, pages 151-162, 1995.

26
Ming-Syan Chen, Hui-I Hsiao, Chung-Sheng Li, and Philip S. Yu. Using Rotational Mirrored Declustering for Replica Placement in a Disk-Array-Based Video Server. In Proceedings. ACM Multimedia, November 1995.

27
Ann L. Chervenak, David A. Patterson, and Randy H. Katz. Choosing the Best Storage System for Video Service. In Proceedings. ACM Multimedia, November 1995.

28
S. Y. Cheung and M. H. Ammar. Using destination set grouping to improve the performance of window-controlled multipoint connections. In Proceeding of the 4th International Conference on Computer Communications and Networks (to appear). IEEE Computer Society, Sept 1995.

29
Shun Yan Cheung, Mostafa H. Ammar, and Xue Li. Using Destination Set Grouping to Improve Fairness in Multicast Video Distribution. In Proceedings of INFOCOM '96 (to appear). IEEE, March 1996.

30
Russ Clark and Mostafa Ammar. Providing scalable web service using multicast delivery. In Proceedings of 2nd IEEE Workshop on Services in Distributed and Networked Environments, pages 19-26, 1995.

31
Paul Clements, Len Bass, Rick Kazman, and Gregory Abowd.Predicting software quality by architecture-level evaluation.In Proceedings of the Fifth International Conference on Software Quality, Austin, Texas, October 1995.

32
Mobile computing laboratory. http://www.mcl.cs.columbia.edu/.

33
MPEG-2 Systems Committee. MPEG-2 systems working draft. ISO/IEC/JTC1/SC29/WG-11-N0501, July 1993.

34
A. Dan, D. Sitaram, and P. Shahabuddin. Scheduling policies for an on-demand video server with batching. In ACM Multimedia '94, pages 15-23, San Francisco, CA, Oct 1994.

35
Peter Danzig, Richard Hall, and Micahel Schwartz. A case for caching file objects inside internetworks. In Proceedings of SIGCOMM 93, pages 239-248, 1993.

36
Peter B. Danzig, Dnate Delucia, and Katia Obraczka. Massively replicating services in wide-area internetworks. Technical report, University of Southern California, 1994.

37
DATAMAN. http://athos.rutgers.edu:80/dataman/.

38
S. E. Deering. Host extensions for IP multicasting. RFC 1112, August 1989.

39
L. Delgrossi, C. Halstrick, D. Hehmann, R. G. Herrtwich, O. Krone, J. Sandvoss, and C. Vogt. Media scaling in a multimedia communication system. Multimedia Systems, 2:172-180, 1994.

40
C. Diot, C. Huitema, and T. Turlett. Multimedia applications should be adaptive. In Proceedings of the High Performance Communication Subsystems Workshop, 1995.

41
Ann L. Drapeau and Randy H. Katz. Striping in large tape libraries. Supercomputing '93, November 1993.

42
Ann L. Drapeau, Ken Shirriff, Edward K. Lee, John H.  Hartman, Ethan L. Miller, Srinivasan Seshan, Randy H. Katz, Ken Lutz, David A. Patterson, Peter M. Chen, and Garth A. Gibson. RAID-II: A High-Bandwidth Network File Server. Procceedings 1994 International Symposium on Computer Architect ure, April 1994.

43
D. Ferrari, a. Banerjea, and H. Zhang. Network support for multimedia: A discussion of the tenet approach. Computer Networks and ISDN Systems, 20:1267-1280, 1994.

44
P. W. Foltz and T. Dumais. Personalized information delivery: An analysis of information filtering methods. Communications of the ACM, 35(12):51-60, July 1990.

45
R. Fowler. Decentralized Object Finding Using Forwarding Addresses. PhD thesis, University of Washington, 1985.

46
David Garlan and Mary Shaw. An introduction to software architecture. In V. Ambriola and G. Tortora, editors, Advances in Software Engineering and Knowledge Engineering, pages 1-39, Singapore, 1993. World Scientific Publishing Company. Also appears as SCS and SEI technical reports: CMU-CS-94-166, CMU/SEI-94-TR-21, ESC-TR-94-021.

47
R. Garrison, editor. Model for Open Storage Systems Interconnection: Mass Storage System Reference Model: Version 5. IEEE Storage System Standards Working Group (Project 1244), http://www.arl.mil/IEEE/ssswg.html, September 8 1994.

48
A. Ghosh and P. Brooks. Mwatch 3.6.2. available from http://www.cl.cam.ac.uk/mbone/index.html#Mrouted.

49
D. K. Gifford. Polychannel systems for mass digital communication. Communications of the ACM, 33(2):141-151, February 1990.

50
Inder Gopal and Adrian Segall. Directories for networks with casually connected users. In Proceedings of INFOCOM, pages 1060-1064. IEEE, March 1988.

51
James Gosling and Henry McGibon. The java language environment: A white paper. http://www.javasoft.com/whitePaper/java-whitepaper-1.html.

52
James Guyton and Michael Schwartz. Locating nearby copies of replicated internets servers. In Proceedings of SIGCOMM 95, pages 288-298, 1995.

53
J. Gwertzman and Margo Seltzer. The case for geographical push caching. Technical Report tr-34-94, Harvard University, 1994.

54
W. Hill. Personal communication, 1994.

55
M. Humes. Netscape's server push, client pull and cgi animation. http://www.emf.net/mal/animate.html.

56
Infopad. http://infopad.eecs.berkeley.edu/.

57
V. Jacobson. Traceroute. available from ftp://ftp.ee.lbl.gov/traceroute.tar.Z.

58
H. Kanakia, P. P. Mishra, and A. Reibman. An adaptive congestion control scheme for real-time packet video transport. In ACM SIGCOMM Conference on Communications Architectures, Protocols and Applications, pages 20-31. ACM, 1993.

59
Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements.Scenario-based analysis of software architecture. IEEE Software, 1996. In press.

60
Rick Kazman, Len Bass, Gregory D. Abowd, and S. Michael Webb. SAAM: A method for analyzing the properties of software architectures. In The proceedings of the International Conference on Software Engineering -- ICSE-16, pages 81-90, May 1994.

61
C. Kent and J. Mogul. Fragmentation considered harmful. In ACM SIGCOMM '87, August 1987.

62
R. Kordale and M. Ahamad. A scalable technique for implementing multiple consistency levels for distributed objects. In Proc. of International Conference on Distributed Computing, May 1996.

63
R. Kordale, M. Ahamad, and M. Devarkonda. Object caching in a CORBA compliant system levels for distributed objects. In Usenix Conference on Object-Oriented Technologies, June 1996.

64
R. Kozierok and P. Maes. Intelligent groupware for scheduling meetings. In CSCW-92, 1992.

65
Ken Lang. Personal communication, 1994.

66
Mary S. Lee and Andrew W. Moore. Learning automated product recommendations without observable features. Technical Report CMU-RI-95-17, Carnegie Mellon University, Robotics Institute, 1995.

67
Sue Long, Dietmar Aust, Gregory D. Abowd, and Chris Atkeson. Cyberguide: Prototyping context-aware mobile applications. In ACM SIGCHI Conference on Human Factors in Computing Systems, April 1996.

68
MASTERMIND Project Home Page. http://www.isi.edu:80/isd/Mastermind/.

69
MIT Intelligent Room. http://www.ai.mit.edu/projects/hci/.

70
Tom Mitchell, Rich Caruana, Dayne Freitag, John McDermott, and David Zabowski. Experience with a learning personal assistant. Communications of the ACM, July 1994.

71
Support for the ARPA HCI Program. http://www.ito.darpa.mil/Summaries95/D287-MITRE.html.

72
Paul Mockapetris. Domain Names - Concepts and Facilities. RFC 1034, November 1987.

73
MONET Home Page. http://fury.nosc.mil/.

74
Y. Nakauchi, T. Okada, and Y. Anzai. Groupware that learns. In Proceedings of the IEEE Pacific Rim Communications, Computers, and Signal Processing. IEEE, May 1991.

75
Nicholas Negroponte. Wearable Computing. http://www.hotwired.com/wired/3.12/departments/negroponte.html.

76
On-Site Wearable Computer Systems. http://www.cs.cmu.edu/afs/cs.cmu.edu/project/vuman/www/home.html.

77
D. Oppen and Y. Dalal. The Clearinghouse: A decentralized agent for locating named objects in a distributed environment. ACM Transactions on Office Information Systems, 3(1):230-253, July 1983.

78
Craig Partridge, Trevor Mendez, and Walter Milliken. Host Anycasting Service. RFC 1546, November 1993.

79
Dewayne E. Perry and Alexander L. Wolf. Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes, 17(4):40-52, October 1992.

80
James Pitkow and M. Recker. A simple yet robust caching algorithm based on dynamic access patterns. In Proceedings of 2nd WWW conference, 1994.

81
Rapidly depoyable radio networks. http://www.tisl.ukans.edu/RDRN/.

82
Paul Resnick, Neophytos Iacovou, Mitesh Suchak, Peter Bergstrom, and John Riedl. Grouplens: An open architecture for collaborative filtering of netnews. In Proceedings of Computer Supported Cooperative Work, 1994.

83
A. Romanow and S. Floyd. Dynamics of TCP traffic over ATM networks. IEEE Journal on Selected Areas in Communications, May 1995.

84
N. Sadeh. Look-Ahead Techniques For Micro-Opportunistic Job Shop Scheduling. PhD thesis, CMU Robotics Institute, 1991.

85
G. Salton and C. Buckley. Improving retrieval performance by relevance feedback. JASIS, 41:288-297, 1990.

86
Nitin ``Nick'' Sawhney, Gregory D. Abowd, and Chris Atkeson. Can electronic notebooks enhance the classroom? Technical Report GVU Technical Report GVU-96-06, Georgia Tech, Graphics, Visibility, and Usability Center, February 1996.

87
N. Shacham. Multipoint communication by hierarchically encoded data. In Proceedings of IEEE Infocom, Florence, Italy, May 1992.

88
N. Shacham and J. S. Meditch. An algorithm for optimal multicast of multimedia streams. In Proceedings of IEEE Infocom, Toronto, Canada, June 1994.

89
Upendra Shardanand and Pattie Maes. Social information filtering: Algorithms for automating ``word of mouth''. In Proceedings of the International Conference on Computer-Human Interfaces, 1995.

90
B. Sheth and P. Maes. Evolving agents for personalized information filtering. In Proceedings of the Ninth IEEE Conference on AI for Applications. IEEE, 1993.

91
W. David Sincoskie. Development of the U.S. national information infrastructure. Keynote address, International Conference on Computer Communications and Networks (ICCCN'95), September 1995.

92
R. Talpade and M. H. Ammar. Single connection emulation (SCE): An architecture for providing a reliable multicast transport service. In 15th IEEE Intl Conference on Distributed Computing Systems, pages 144-151, June 1995.

93
D. Taubman and A. Zakhor. Multi-rate 3-d subband coding of video. IEEE Transactions on Image Processing, 3(5):572-588, September 1994.

94
D. Taubman and A. Zakhor. Orientation adaptive subband image coding. IEEE Transactions on Image Processing, 3(4):421-437, July 1994.

95
D. L. Tennenhouse and D. J. Wetherall. Towards an active network architecture. In Multimedia Computing and Networking '96, January 1996.

96
D. Terry. Caching hints in distributed systems. IEEE Transactions on Software Engineering, 13(1):48-54, January 1987.

97
William Tetzlaff, Martin Kienzle, and Dinkar Sitaram. A Methodology for Evaluating Storage Systems in Distributed and Hierarchical Video Servers. In COMPCON Spring 94, February 1994.

98
The ATM Forum. ATM User-Network Interface (UNI) Specification, Version 3.1. Prentice Hall, 1994.

99
Things That Think. http://ttt.www.media.mit.edu/.

100
Tactical Information Assistants (TIA). http://esto.sysplan.com/ESTO/TIA/.

101
C. Topolcic. Experimental Internet Stream Protocol: Version 2 (ST-II). RFC 1190, Oct 1990.

102
Toronto's Wearable Computer. http://www.dgp.toronto.edu/people/ematias/papers/wear/wearable.html.

103
TRAVLER: System Support for Nomadic Computing. http://www.cs.ucla.edu/travler/.

104
Ubiquitous Computing. http://www.ubiq.com/hypertext/weiser/UbiHome.html.

105
Harrick M. Vin and P. Venkat Rangan. Designing a Multiuser HDTV Storage Server. IEEE Journal on Selected Areas in Communications, 11(1):153-164, January 1993.

106
T. von Eicken et al. Active messages: A mechanism for integrated communication and computation. In 19th International Symposium on Computer Architecture, 1992.

107
UCLA Wireless Adaptive Mobile Information System (WAMIS). http://millennium.cs.ucla.edu/wamis.html.

108
WAMIS Program Summaries. http://esto.sysplan.com/ESTO/WAMIS/Prog_Summaries/.

109
Terri Watson. Mobile and Wireless Computing. http://snapple.cs.washington.edu:600/mobile/mobile_www.html.

110
Wearable Computing. http://lcs.www.media.mit.edu/projects/wearables/.

111
Wearable Computing Research Group. http://www.cs.uoregon.edu/research/wearables/.

112
D. Wood, S. Coleman, and M. Schwartz. Fremont: A system for discovering network characteristics and problems. In Proceedings of 1993 Winter USENIX Conference, pages 335-347, January 1993.

113
Y.Kodratoff and G. Tecuci. DISCIPLE: An iterative approach to learning apprentice systems. Technical Report UPS-293, Laboratoire de Recherche en Informatique, Universite de PARIS-SUD, 1986.

114
E. W. Zegura, K. L. Calvert, and S. Bhattacharjee. Tera-op networking: Local adaptation to congestion. In To appear in Gigabit Networking Workshop '96, March 1996.

About this document ...

This document was generated using the LaTeX2HTML translator Version 96.1-d (Mar 10, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 -no_navigation -show_section_numbers -t proposal proposal.

The translation was initiated by Christopher G. Atkeson on Sat Apr 20 10:47:18 EDT 1996


Christopher G. Atkeson
Sat Apr 20 10:47:18 EDT 1996