Stanford Digital Library Testbed Development


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)


[Stanford] [DigLib] [Write Webmaster]
Digital Libraries Webmaster
Webmaster@diglib.stanford.edu