[OPEN-ILS-DEV] Software architecture ?

Reuben Pasquini rdp0004 at auburn.edu
Mon Mar 3 13:44:48 EST 2008


Thanks a lot, Mike!
It's a pretty cool setup.

I'm finally up and running with an OpenILS install
where the OPAC and staff-client run and
authenticate - enough to let some people
see what it looks like.  I've got a couple
more questions if you or anyone else can help.

*. Is it possible to connect to the gapines demo system
    with the staff client ? 
             http://demo.gapines.org/
     If so, would you setup the version-link so that the 
     download-and-run Windows staff-client
     version will talk with the server ?
           http://open-ils.org/downloads/evergreen-setup-v100rc2.exe 
     It would be nice to be able to tell people to just download
     that staff-client build, point it at demo.gapines.org, and play
around.

*. I know one thing people are concerned about here when evaluating
    the Evergreen ILS is the lack of acquisitions and serials modules.
    I read someplace that there was a project afoot to address that - 
    is there likely to be acquisitions/serials support in 
     Open-ILS in the near future ?
              
Thanks again,
Reuben


>>> "Mike Rylander" <mrylander at gmail.com> 2/29/2008 7:41 PM >>>
On Fri, Feb 29, 2008 at 10:43 AM, Reuben Pasquini <rdp0004 at auburn.edu>
wrote:
> Hello!
>
>  I'm installing Evergreen-ILS-1.2.1.4/OpenSRF-0.9,
>  and in the process trying to get a grip on how the software is put
>  together.
>  The following is what I came up with so far - can someone verify if
>  this
>  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.

RIght on.

>
>  *. 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
domains.

>      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
translation
- 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.

Then there are the client flavors.  There's a new JavaScript package
for interacting with the OpenSRF-over-HTTP translator, as well as the
existing JSON gateway JavaScript package.  There are XMPP client
libraries for JavaScript (only supported in Mozilla as an extension),
Perl, Python, C and Java, as well as support for any language with
XML-RPC bindings.

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
here(2).

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.

 (1) http://open-ils.org/dokuwiki/doku.php?id=opensrf_over_http 
 (2)
http://dev.gapines.org/opac/extras/docgen.xsl?service=open-ils.actor&all=on&offset=0&limit=25


-- 
Mike Rylander
 | 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 mailing list