Keywords: Distributed database, multi-agent system, distributed computing
1 OVERVIEW
Within the CHIME, information is managed in units called cells.
The cell is a new type of atomic object, which extends existing distributed
object paradigms, such as agents, actors, and proxies. In what follows,
we describe some of the important aspects and features of cells.
1.1 CHIME AS OPEN MULTI-AGENT SYSTEM
As a first approximation, one may consider a cell to be a weak agent
in the sense proposed by Wooldridge and Jennings [7],
i.e. the cell is an object that is autonomous, social, reactive and pro-active.
A machine indicates its willingness to host cells by running a special
depot program. Each cell within the CHIME then resides in some depot
process; each depot process manages a set of cells (see figure 1).
![]() |
We use active objects (cells) as the basic quantum of information because:
Thesis 1: Information must be managed at the level of the active processes generating it, not at the level of passive data that is the byproduct of such processes.
1.2 CHIME AS MULTI-RESOLUTION DISTRIBUTED DATABASE
Unlike traditional agents (see e.g. [2],
[5]), the cell is a composite object, i.e.
each cell is made up of sub-cells, and each cell is a sub-cell of
some super-cell. Thus cells are organized in a tree, whose nodes
(the cells) are distributed across the depots (see figure
2).
A cell encapsulates its sub-cells, and is responsible for providing an
interface to the sub-cells' information in an aggregated form.
While the Web does permit the organization of information using a directory structure or a tree of hyper-linked pages, there is a fundamental difference: the Web does not itself interpret the structure of the hyper-links. In contrast, the CHIME interprets cell hierarchy as follows: sub-cells represent the internal contents of their super-cell. Accordingly, if the a user wishes to obtain information at a higher resolution or to see details not presently revealed by a cell, the user simply "enters" into the cell. The CHIME thus facilitates the efficient partitioning of information, and supports multi-resolution representations.
![]() |
We use composite objects (cells) as the basic quantum of information because:
Thesis 2: A scalable solution to the problems of location, management and annotation of information requires maintaining information at multiple resolutions; aggregation must be supported.
1.3 CHIME AS HIERARCHICAL SPATIAL DECOMPOSITION
So far, the sub-cells of a cell have been considered equal peers in
their relationship to their common parent. This is certainly too restrictive,
since a large part of information is encoded in the relative positions
of data. In analogy, consider how passive data in web pages is rendered
meaningful by its relative placement. Accordingly, each CHIME cell is assigned
a dimensional volume by its parent, and is in turn responsible for allocating
a region of this volume to each of its sub-cells. The dimensional volume
that a cell occupies is referred to as its geometry or spatial
position (see figure 3). While the logical
address of a cell indicates its location in the CHIME tree, a cell's spatial
position further specifies the relationship of the cell within its super-cell.
By requiring each cell to occupy some volume in space, the CHIME is able
to efficiently compute distances between cells. This allows the CHIME to
support the notion of information locality, i.e. it facilitates
being able to encode and assess the relative nearness or farness of cells.
![]() |
We use spatial objects (cells) as the basic quantum of information because:
Thesis 3: Meaningful organization of information requires specification of geometric relationships (e.g. proximity) between information quanta.
1.4 CHIME AS INTERCONNECTED ACTIVE INFORMATION
Cells are active objects capable of intercommunication. Every cell
can communicate (via a message passing interface) with any of its sub-cells
and with its super-cell. Beyond this, if a cell
wishes to communicate with some cell
(that is not a sub-cell and not a super-cell), it is necessary for
to own a model of
.
This model, which we denote as
,
is an object that is created dynamically by cell
and delivered by the CHIME to cell
.
The CHIME maintains a bidirectional channel between the model
and the cell
which created it. This channel can be used to stream data from
to
,
and also provides bidirectional message delivery services between
and
.
The operation of this channel is transparent to changes in the physical
or logical addresses of the cells
and
.
The model
in turn acts as a mediator [4], providing
its owner
with reliable message-passing to
(see figure
4).
![]() |
We use interconnected active objects (cells) as the basic quantum of information because:
Thesis 4: Information must be modeled as a dynamical system.
1.4.1 GRACEFUL DEGRADATION OF INTERCONNECTIVITY
To ensure scalable communication overhead, the CHIME does not support
arbitrary communication patterns between cells. Specifically, a cell
may only own models of cells that are reachable from
.
The set of cells reachable from
is denoted
,
and consists of: the siblings of
,
the siblings of
's
super-cell, the siblings of
's
super-super-cell, and so on up to a specifiable number of levels. Figure
5 distinguishes cells that are in
by shading them black.
Recall that the CHIME interprets cell hierarchy by considering sub-cells
to be higher-resolution representations of regions of their common super-cell.
Conversely, a super-cell is expected to be an aggregator, generating a
low-resolution version of the information in its sub-cells. In light of
this, the membership of
can then be seen to satisfy the following appealing criterion:
gets models of nearby cells with high resolution information, and it models
of far-away cells with low resolution information. Indeed in general,
the
greater the distance to
,
the lower the resolution of the model obtained.
![]() |
We prune the possible inter-connectivities of cells because:
Thesis 5: For scalability, information interconnectivity must degrade gracefully with distance.
2 CHIME AS AN INFORMATION WEB
We summarize some of the important aspects of the CHIME:
3 DESIGN
3.1 THE DEPOT
The depot is the process which serves as an an object repository for
running cells. In particular, each depot supervises the execution of cell
code in the host's environment, and provides its resident cells with an
interface to CHIME services. These services include:
The fourth service offered by the depot is automatic model collection. This service operates by creating one model-collection FSM for each of the depot's resident cells. A model-collection FSM monitors the CHIME hierarchy on behalf of the cell it represents, and acts to detect any changes in the cell's reachable set. (Recall that cells may enter or leave the reachable set as a result of relocations within the tree.) When a model-collection FSM detects new members entering [existing members leaving] the reachable set, it commences procedures to acquire new models [destroy previously acquired models] as appropriate.
Finally, a depot provides a cell with a well-defined message passing interface so that it can communicate with its super- and sub-cells. Cells are restricted much as applets are in traditional remote execution environments (e.g. they cannot open network connections or access the local filesystem). Thus the only mechanism provided to a cell for external communications is via the depot message transport layers. A cell may "emit" a message to its current super-cell, or directly to a named sub-cell. More advanced communication mechanisms are available in the model architecture discussed in section 1.4. Note that models are essentially applets as well, running "within" the cell applet. As such, there are significant restrictions on models as well in order to reduce the opportunity for misbehaviour.
The depot messaging services are implemented in a layered fashion, a cell is installed at the bottom of the layer stack. When a message is emitted by a cell, the inter-cell transport layer determines whether or not the target of the message is present locally or resides on a different depot. This is accomplished by accessing an external directory service (e.g. LDAP, JINI). If the target cell is local, the message is forwarded directly to the receipient with no further transport processing. A message intended for a cell in a separate depot is pushed up the layer stack into the inter-depot transport layer, which performs the necessary remote method invocation on the destination depot, passing the message into that depot's layers. Incoming messages flow downward in the layer stack until they reach the target cell, or are rejected because the target is not actually present in the depot (due to staleness of information retrieved from the naming service or local caches). CHIME facilitates the automatic relookup/resend of messages that missed their target, generally due to excessive mobility on the part of said target.
![]() |
3.2 THE CELL
A cell is agent code, it is the quantum of active data stored
in an CHIME depot. The cell contains a Model Manager and message passing
interfaces to the each model it has created and each model that it owns.
Together, this collection of interfaces permit the cell to communicate
with other reachable cells.
The Model Manager contains a customizable Model Factory; this factory is consulted by the Model Collection FSM whenever a model of the cell needs to be made. In addition, the Model Manager is responsible for maintaining two tables: one containing interfaces to the models it has created, and the other containing the models that it owns (i.e. models that were made for it by other cells). The Model Manager inserts and removes models and interfaces from these tables as directed by the associated Model Collection FSM which resides within the depot.
Defining a custom cell requires providing a concrete implementation for the Reasoning module and the Model Factory. While the Model Factory defines the cell's response to communication attempts by other cells, the Reasoning module defines the cell's response to the passage of time. The Reasoning module has access to CHIME services for cell migration, relocation, and repositioning; these services are brokered by the cell's depot. The Reasoning module also has access to persistent storage to facilitate the implementation of safe multi-cell distributed procedures.
![]() |
3.3 THE CHIME PROTOCOLS
CHIME cells support the notion of migration, i.e. the entire state
of a cell can be frozen, transported to another host, re-instantiated in
the depot there, and revived at its new residence. Figure
8
depicts the interactions necessary for a successful migration scenario
that is initiated by the cell itself. Utilizing the services of its current
depot, the cell requests to be migrated to a new depot. The local depot
establishes a transaction context under which it will service the cell's
request. First, the target depot is asked to create a deep copy of the
cell. This requires instantiating an object of the corresponding type and
copying the migrating cell's data members (state). When the target depot
has completed this, the requesting depot can proceed to terminate the execution
of the original cell. The new copy is then started on the target depot,
thus reviving the cell at its new residence. At this point, the original
depot can destroy the original cell and commit the transaction. Because
the inter-depot transport layer is implemented using Java RMI [3],
and RMI does not serialize the context of running Java threads, cells must
currently be written to be re-entrant, to the extent that they must expect
to be restarted at the new depot after migration.
![]() |
![]() |
![]() |
3.4 THE BROWSER
The CHIME browser performs the same function of today's popular browser
software (for example, Netscape or Opera) in that it presents a graphical
view of the information elements to the user, and accepts and acts upon
user input in order to navigate the web of data. However, in the CHIME,
the browser is an active participant in the data model itself. The CHIME
browser is itself a cell, and makes use of logical mobility in the CHIME
tree in order to navigate through the cells that make up the CHIME universe.
The only present limitation is that the browser cell cannot migrate to
other depots, and must remain fixed at its starting point where the user
resides. This is because the primary function of the browser cell is to
act as a gateway to the operating system on the user's machine. Allowing
the browser cell to migrate would require wrapping the host platform's
operating system in a cell, which is beyond the scope of the present work2.
The model collection FSM operating on behalf of the browser requests
models from cells within its reachable set. The model collection FSM advertises
local hardware capabilities, and collected models are expected to be renderable
using this hardware (specifically, to implement a Render() method). This
is not typically required of models that are destined to non-browser cells.
The CHIME browser functions by (1) periodically calling the Render() method
of its owned models, so they may render themselves onto the output devices
available at the host, and (2) to accept events from local input devices
for relay to the browser's internal Reasoning module, where suitable repositioning
and relocation actions are triggered.
4 CONCLUSION
In this paper, we provided an overview of the motivating principles
and design of the Cellular Hierarchy Information Modeling Environment (CHIME),
and assessed its advantages and merits as a foundational framework for
a next generation information web.