On Tue, 6 May 2003, Ross Singer wrote:
> Of course, this whole utopian notion is based on actual development
> projects of all aspects of an ILS, and for those components to be
> interoperable. That, uh, is the catch, of course.
In the back of my mind I've been toying with the idea of distributed,
open-source library automation services. Each module is a black box
with respect to the others, interoperability being achieved through a
common set of protocol & API layers. Each module, like a class in an
OO language, knows what behaviors and outputs to expect from the
other modules it interacts with, but it knows nothing about the
implementation. I was thinking that something like XML-RPC or SOAP
could be the protocol for encoding API calls & responses, partly
because it would then be quite transparent for diffent modules to
live on different hosts, for the sake e.g. of scalability or
The trick, of course, is specifying the behaviors and APIs for the
various modules. This would be an extremely (unrealistically?)
complex task, far more complex I think than the actual coding. The
APIs would have to be extensible by design, and yet there would have
to be some way of merging or reconciling extensions, else you wind up
with systems all implementing the core functionality but with a
myriad of inompatible extensions. There would probably need to be
some kind of integration framework by means of which the modules are
configured, managed, made aware of one another, etc.
If something like this could actually be achieved, then one would
truly be in a position to license vendor A's serials module, use OSS
cataloging module B, OSS acquisitions module C, and vendor D's OPAC.
For the open-source parts, libraries would have the opportunity to
modify the code to suit their needs and give back to the project.
Wacko, pie-in-the-sky, far out: yes it is. But we steer by the stars
without expecting to reach them.
Chuck Bearden Library Systems Programmer/Analyst Rice University
cbearden@... 713.348.3634 713.348.5862 (fax)
(until June 30, 2003)