/me swoops in
I'll try not to sound too much like a commercial... ;-)
On 6/10/06, Mark J. Andrews <markand_at_mac.com> wrote:
> Brad,
>
> Nice to meet you! I've followed Open-ILS for a couple years now. Can you
> shed some light on your project, namely:
>
> * the problem(s) - without damning anyone or any company, what did and
> does PINES want that commercial systems can't or won't deliver?
Brad covered that better than I ever could, as he was here then, and I wasn't...
>
> * the ability of a given, usually commercial, product to solve those
> problems - Where the problems financial (a vendor could do x, or so they
> claimed, but they wanted a boat-load of money), architectural (the
> commercial product's architecture couldn't support x, or couldn't be changed
> to support x in a given time-frame, or for a given amount of money), lack of
> interest ("Sorry, we aren't interested in x, go talk to somebody else"), or
> something else?
>
And this as well.
> * changing user needs (and it probably doesn't matter why they change.
> Changing markets? Changing user preferences? Changing technology? All
> three and more) - Now PINES is the vendor. How does your design accomodate
> changing user needs?
>
> * the ability of vendor(s) to respond to change - Again, how has PINES
> organized itself to do this?
>
Ahhh. Now these I can speak to. As Brad mentioned, what we've
primarily built is an application framework called OpenSRF.
Technology-wise, it rides on top of XMPP (the Jabber IM protocol) and
HTTP (through a gateway module for Apache), and it provides us with
extremely shortened development cycles for new features. It works in
a similar way to, say, Catalyst for Web apps, but is meant mainly for
non-Web application development.
All of the core logic for the ILS lives in a web of individually
simple methods that are combined into a work flow to get things
accomplished. The vast majority of this is written in Perl, which
makes it very flexible (as opposed to, say, C), and adding or changing
functionality is a simple matter of adjusting these simple logic
Legos. As these OpenSRF APIs mature and solidify, we will probably
migrate some of them to C for speed (as in the case of the storage
server, which is currently being built up as a C OpenSRF app to
replace the Perl), and refactoring will go a long way towards making
these APIs more developer friendly. (Though, they are pretty friendly
right now.)
The local business logic supporting things like circulation rules and
hold availability are implemented in server-side Javascript. We feel
this is a fairly natural choice, as it allows some cross-pollination
with the main OPAC (which is very JS heavy), and is more likely than
Perl to be a skill that your average
librarian-turned-web-developer-and-ILS-admin will have. These JS
scripts each get a pile of relevant information about items, titles
and users, and provide decision information back to the core methods.
As it's all scriptable, any logic that has parameters modeled in the
data can applied to almost any part of any user transaction.
That covers the technology end of the adaptability question. As for
how the PINES organization has structured itself to support changing
user needs, we have a specific change request procedure that allows us
to prioritize and integrate any requests into our existing road map.
Our main goal is to make sure that all feature requests are fulfilled
in one form or another, that new features are integrated in a
consistent manner, and that they help the greatest number of users.
You can check out the procedural document here[1]. It's PINES
specific in that case, but we wouldn't bar any requests from outside
PINES (though, right now, they'd get a lower priority than a PINES
internal request).
[1]http://open-ils.org/documentation/feature_request_procedure.doc
> The PINES experience can be a help to everyone interested in NextGen
> products. We are all faced a similar problem set.
>
We certainly hope we can be of some help!
> Mark Andrews, Systems Librarian
> Creighton University, Omaha NE
> mja30807_at_creighton.edu
> mja30807_at_mac.com
>
--
Mike Rylander
mrylander_at_gmail.com
GPLS -- PINES Development
Database Developer
http://open-ils.org
Received on Mon Jun 12 2006 - 11:18:43 EDT