Entry Date:
May 25, 2002

CORE: Communication Oriented Routing Environment for Pervasive Computing

Principal Investigator Larry Rudolph


The Communication Oriented Routing Environment (CORE) is a software-based, heterogeneous device interconnect system developed to facilitate interaction between devices. The purpose of CORE is to establish an overlay network that allows devices and applications to interact without requiring the complex configuration typical of device interaction. For example, when a mobile-device user enters an office with various peripheral devices such as printers, projectors, and speakers, it is often difficult to setup the mobile device to make use of those peripherals. CORE allows the mobile user to work with the peripherals, as well as other computers or devices, as if they were all physically connected to each other. CORE differs from previous work such as Jini, INS, and UPnP by emphasizing simplicity. CORE provides users with the ability to connect to devices and services without having any prior knowledge of where they are physically located or what communication protocol they may be using. This behavior is analogous to the way Unix pipes allow users to send the output of one application to the input of another without any prior configuration by the user.

The third release of CORE was completed in December 2002. The most significant changes in this newest version are a cleaner component model, a focus on streaming media, the addition of attributes, and enhanced intercore interaction. Several test appliances have been built, including a VNC wrapper and a wireless keyboard application.

There are many areas of active research and implementation necessary before CORE can be used in a widespread environment. First, through the link component, CORE introduces a layer of indirection into the communication channel between two appliances. Consequently, an appliance connected to a core may not be aware of the source or destination of the data it receives and transmits. Since these endpoints can be changed at any time, fragmented data units can arrive at an appliance without the ability to detect the fragmentation. This defect occurs as links are forged and switched, causing data to be interrupted mid-stream. Possible solutions to this problem include notification of changes in links, application-level framing, and careful replay of connection buffers. Second, improving the performance of appliances that use CORE is crucial to its success. Currently, all data is transmitted through a core and forwarded to its intended destination, regardless of whether or not control messages have been sent through the connection. Thus, for a connection sending only data messages, CORE becomes an unnecessary bottleneck. We have observed the need for three distinct classes of service for CORE: routing through a core with inspection for control messages, routing through a core with no inspection, and a direct connection that bypasses a core entirely. Continued observation is needed before implementation of quality-of-service discrimination can begin. Third, an intriguing possibility is the migration of the entire CORE system to an attribute or rule-based system. The components of CORE would become attributes and adding, removing, or changing a component would translate into adding, removing, or changing an attribute name-value pair. There are numerous benefits to this type of simplification. First, since each component is fully specified by an attribute, formal, first-order logic can be used to complete proofs of correctness and modeling. Additionally, the reduction of components to attributes can greatly increase the flexibility of the system since the behavior of components can be modified and enhanced without changing code. Finally, no design effort has been directed toward authentication or security within CORE. Malicious appliances can flood other appliances with unsolicited reply messages and cores can be flooded with meaningless or malicious control messages. These problems must be addressed before CORE can be deployed in any untrustworthy environment.