[OPEN-ILS-DEV] Software architecture ?
mrylander at gmail.com
Fri Feb 29 20:41:35 EST 2008
On Fri, Feb 29, 2008 at 10:43 AM, Reuben Pasquini <rdp0004 at auburn.edu> wrote:
> I'm installing Evergreen-ILS-126.96.36.199/OpenSRF-0.9,
> and in the process trying to get a grip on how the software is put
> The following is what I came up with so far - can someone verify if
> is right, or straighten me out if it's wrong ?
> *. Evergreen-OpenILs consists of several OpenSrf modules
> (separate applications that plug into an OpenSrf setup
> to communicate with each other)
> and a shared postgres database.
> *. OpenSRF is a distributed computing framework characterized by:
> o. The use of a central jabber server to manage communication
One or more jabber servers, but, yes. You can configure multiple
jabber domains for access separation, and you can load-balance the
jabber servers in one domain. Then, there's an OpenSRF Router per
jabber domain, with which the services (that you mention below)
register -- services can register with multiple Routers on separate
> o. WSDL/SOAP-like procedure-call mechanisms where a component
> publishes its interface with OpenSRF via an XML-spec,
> and remote-procedure call is implemented via exchange
> of XML messages via jabber.
Well, there are several interfaces.
- The native transport is JSON-over-XMPP (jabber) -- all OpenSRF-level
messages are JSON encoded, and wrapped in Jabber XML
- A ReST-ish HTTP gateway which can consume and produce both JSON and
XML -- this is not OpenSRF proper, but rather a Web Service like
- An XML-RPC gateway built on top of the RPC::XML Perl module
- A true port of the OpenSRF message passing syntax from XMPP to HTTP,
based on the spec I put together here(1). Bill Erickson has created
a Python reference implementation.
for interacting with the OpenSRF-over-HTTP translator, as well as the
Perl, Python, C and Java, as well as support for any language with
One other interesting feature is the introspection API. Whenever a
method is registered, an entry in an introspection table is created
within the OpenSRF server. Using the XML gateway and some XSLT, we've
built a simple web app for exploring the in-line documentation from a
running instance of the OpenSRF application. You can check that out
I hope that helps shed some more light on how these things work
together, and please don't hesitate if you have any more questions.
| VP, Research and Design
| Equinox Software, Inc. / The Evergreen Experts
| phone: 1-877-OPEN-ILS (673-6457)
| email: miker at esilibrary.com
| web: http://www.esilibrary.com
More information about the Open-ils-dev