STARTS
Stanford Protocol Proposal for Internet Search and
Retrieval
Reference Implementation
Implementation Overview
(The STARTS 1 implementation overview is in a separate
document.) The STARTS 2.0 reference implementation is composed of the following
parts:
- A CORBA ORB that runs as a stand-alone server.
- The STARTS IDL, which delineates STARTS objects and
method calls used by the STARTS client and STARTS server.
- The STARTS client, written in Java. This code operates as an applet or application
and prepares STARTS requests as specified in the IDL. It communicates with the CORBA
ORB.
- The STARTS server, written in Java, which gets STARTS requests (in the form of IDL
method calls) from the CORBA ORB. A more complete description of how the IDL methods
are used is in the description of changes to STARTS for CORBA.
- (If running the STARTS server on NT: a bridge server, written in Java, to communicate
between the STARTS server running on NT and the WAIS server running on UNIX.)
- A modified version of the freeWAIS waissearch utility. The modifications to waissearch
are of two types:
- Rather than acting as a stand-alone program, it is a function that takes an ASCII wais
query and returns an array of strings, each of which is a "hit" for the query.
- Argument and return types are conversions of Java types as required for Java native
methods.
- The data returned for a search "hit" has been modified to include the pathname
of the respective document (this allows mapping from the "hit" to the actual
document so that data such as author, title, etc. can be extracted by StartsServer
for the STARTS query return.
- The unmodified freeWAIS-sf
search engine that runs as a stand-alone server.
- Two sets of document sources.
In summary, the control flow of the reference implementation is:
- The STARTS client prepares a STARTS request (according to the STARTS IDL) and submits it
to the CORBA ORB.
- The CORBA ORB sends the STARTS request to the STARTS server.
- The Java StartsServer receives the STARTS request from the CORBA ORB and
processes it. Processing is done internal to the StartsServer, with data
drawn, when necessary from the freeWAIS indexing files (dictionary, inverted index, etc.).
For the submitQuery method, the StartsServer then
communicates with:
- (if running the StartsServer on NT: The bridgeserver, when called,
accepts ASCII WAIS search strings over the socket and then communicates via a JAVA native
method call with the modified waissearch utility)
- The modified freeWAIS waissearch code takes the ASCII WAIS search string from the bridge
server and turns it into a WIIS (quasi-Z39.50) query. It then sends the query
(translated by StartsServer) to the freeWAIS engine.
- The freeWAIS engine processes the query
and returns the query "hits" to the modified waissearch utility.
- waissearch returns the WAIS results into an ASCII result list, which it passes to
the StartsServer.
- When StartsServer has finished processing, it sends the appropriate result object
to the CORBA ORB.
- The CORBA ORB gets the result object from the STARTS server and sends it to the STARTS
client.
Send questions to help@ncstrl.org