The services loaded into the HaystackRootServer (discussed
in Section
) fall into a number of categories:.
) provide a
number of vital functions necessary for maitaining the basic
functionality of the Haystack. These include:
) is a built-in
naming service to initiate inter-service communication.
) is a service that dynamically
creates new Haystack data objects.
) is a service
that defines relationships between Haystack data objects and
services that are interested in them.
) loads
other services based on some user configured options.
) is a service to provide
locking on abitrarily named resources.
) provides permanent
storage of HDM objects.
) implements a
mechanism for the Promise caching described in the
previous chapter.
) are included for
debugging and logging a variety of messages (including
HsDebug, HsMessage, and HsError).
)
provide the mechanisms for external processes to talk to Haystack.
These include: socket/stream communication services, an RPC service,
and a WWW server.
) provides an RPC
mechanism for inter-VM communication.
) A service
to allow dynamic loading of ``commands'' that are made available
to non-Java external processes.
) In order to
interact with Haystack from a non-Java program we provide a
socket based protocol for communicating (on a limited basis) with
Haystack services.
) A simple
interactive command line interface tool into Haystack. This
service can also be loaded in a seperate virtual machine for
access into Haystack as a client tool.
)
provide the important function of responding to data as it enters
into -- and changes in -- a user's Haystack. After expressing
interest in specific graph structures in the Haystack these services
are notified of changes to those graph structures. Once invoked
they are free to augment the Haystack data structure in some
fashion. Examples of this type of service are the text convertors
and field extractors.
) include services for general control
that allow for archiving and querying:
) allows new
documents to be archived into a Haystack.
) derives textual
information for documents and ``pushes'' the information into an
Information Retrieval system.
) faciliates queries
between user interface components and Information Retrieval
system.
). The interface to Lore is decribed in
Chapter
.
.