Department of Computer Science
Stanford University
Stanford, CA
|
|
What is the Stanford Digital Library Testbed?
The
Stanford Digital Library testbed is our platform for experimentation
with interoperation among online services. Our basic approach is
to use distributed objects to allow integrated access to
heterogenous services across networks.
The distributed approach allows the interaction
of processes on different machines, with different architectures,
implemented in different languages. We use CORBA to
provide communication between remote processes. In particular, we use
Xerox PARC's ILU, a free implementation of a CORBA
superset. It offers language
bindings for C++, C, CommonLisp, Python and Modula-3. We use the
interpreted, object-oriented language Python for most of our
development work.
For more information, see:
- CORBA
-
- ILU
-
- Python
-
What Protocol does the Testbed Use?
We have developed the Digital Library Interoperation Protocol
(DLIOP) for information access and retrieval. It is an asynchronous
protocol, providing robustness in the face of network or server
outages. Moreover, it also gives the programmer a high degree of
control over where and when information objects are materialized,
affecting tradeoffs of space and cost vs. time. This protocol has
been adopted by other participants of the Digital Library Initiative,
including University of Michigan and University of California at Santa
Barbara.
For more information, see:
How Can I Use the Stanford Testbed?
Even if you're not local to Stanford, there are two simple ways of
accessing the InfoBus from a remote site. Both use the DLIOP
protocol. IBClient,
the first method, accesses the InfoBus through ILU calls and is
therefore a full-functionality client. It requires client sites to have ILU
or another CORBA implementation installed. The second alternative, the
InfoBus
Socket delivers the DLIOP calls via an ASCII
stream over a socket. It does not require a CORBA implementation, but
it is of limited functionality.
We include code
for the IBClient and code for
the InfoBus Socket. The IBClient example is written in Python and thus
requires your machine to have Python installed. If you do
not have Python, you can use the example to build your own client in the
language of your choice. The example represents a minimum, bare-bones
client-side implementation. See the DLIOP documentation for additional
facilities that can be added to clients. As an example, first download
all of the files from the IBClient directory (the subdirectory CVS is
not required). Then, try typing
ibclient.py WebCrawler 'digital library' to see the titles of
WebCrawler searches for those keywords.
The InfoBus Socket is written in C++. It mimics the DLIOP calls in
syntax, but it delivers them through UNIX sockets. See the description
of how it works.
We also have CORBA interface specification files for the DLIOP
protocol.
Information of Interest to local Stanford Developers
ILU -- Our installation and examples.
Python -- Our
installation of Python programming language
CVS -- Our use of CVS in the testbed.
Various Manuals (CVS, Python, ILU)
Digital Libraries Webmaster
Webmaster@diglib.stanford.edu