Skip to content
Solely for the Purpose of Catching $PAMRZ

Services in a Service Oriented Architecture

This post is the second in a series about the application of the Service Oriented Architecture (SOA) system design pattern to library services. The first post in this series focused on defining “Service Oriented Architecture” using the analogy of a transportation network. This post goes into some detail about what makes a “service” in this architecture and offers an example using a hypothetical use case: a union library catalog (Open WorldCat) making a statement about the availability of a book.

Why are we even looking at SOA?


This is a good question to ask before we get much further. SOA adds a new layer of complexity on top of existing systems and services, so — other than being a neat new set of buzzwords — there had better be a good reason for investigating and adopting pattern for designing systems. Answering this question also helps us in defining what a “service” is in an SOA. The most concise answer can be found in OASIS Reference Model for Service-Oriented Architecture:

SOA is a means of organizing solutions that promotes reuse, growth and interoperability. It is not itself a solution to domain problems but rather an organizing and delivery paradigm that enables one to get more value from use both of capabilities which are locally “owned” and those under the control of others. It also enables one to express solutions in a way that makes it easier to modify or evolve the identified solution or to try alternate solutions. 1

The first sentence is a statement that reflects SOA position as the latest step on an evolutionary path from monolithic to modular computing. In the really old days of electronic computing, every sequence of processing instructions was defined from scratch — you programmed the computer to do everything. Very quickly one realized that the programming code being written contained a lot of redundancy, so “code libraries” were formed that held all of the repeated instructions; no longer did everyone have to write and debug their own code routines to get the current date or write out a character…you used the supplied code libraries.

Gradually, as systems became more and more complex, the computing profession came up with more code libraries and developed higher levels of abstraction to deal with the complexity. “Objects” as programming entities were introduced in the 1960s via Simula 67, a programming language designed for making simulations, and Smalltalk, a programming language developed at Xerox PARC in the 1970s, introduced the term Object-oriented Programming (OOP) to represent the pervasive use of objects and messages as the basis for computation. OOP became the dominant programming methodology during the mid-1980s largely due to the influence of C++, an extension of the C programming language, but for the most part the applications developed using the OOP methodology remained as applications running on a solitary computer system. 2

OOP and SOA are similar in that each seeks to encapsulate activities to an abstract level at which point the abstractions can be reused as building blocks to larger applications. Where they differ, as explained by the OASIS Reference Model for Service-Oriented Architecture 3, is at the level of abstraction: in the OOP paradigm the focus is on packaging data and operations whereas in the SOA paradigm the focus is on “the task or business function &mdash getting something done.” Or, if you will, providing a service.

Definition of “Service”

In the SOA sense of the word, a service is a set of capabilities offered by a service provider through a service definition that makes the capabilities discoverable by a service consumer. The implementation of the service is “opaque” to the consumer, and the invocation of a service itself may seek out the SOA-defined capabilities of another service provider. The real-world consequences of a service invocation can be: 1) information transferred from a provider to a consumer (e.g. “read”); 2) a change in the state of information at the provider (e.g. “write”); or 3) a combination of both.

The amount of information received and/or changed per service invocation can be rather small, and the transaction itself can be rather light-weight. For instance, in an ACM QUEUE interview Werner Vogels, Amazon’s Chief Technical Officer says that when “you hit the Amazon.com gateway page, the application calls more than 100 services to collect data and construct the page for you.” 4 If it took seconds rather than miliseconds to respond to a SOA query, Amazon’s architecture would clearly be unsustainable.

Back up to the quotation near the top of this post, the second sentence ends by speaking of “capabilities which are locally ‘owned’ and those under the control of others.” SOA, by defining this abstract notion of service and focusing on the semantics surrounding a service, promotes the exchange of services across organizational boundaries. This is the subject of the following hypothetical use case.

Hypothetical Use Case: Reflection of Local Library Holdings in Open WorldCat


So, you might be asking yourself, what does this mean for the systems and services delivered by the library community? (The first post in the series generated a lot of hits that, judging by the quantity and the HTTP referrer strings, are not from the the library community so you might be asking “who cares about libraries?” Welcome to DLTJ — a blog about the application of technology changes that are disruptive to the library community status quo…and you may have thought that libraries are boring…) Suppose for a moment that you decided to replace the public interface of your local library catalog with that of, say, Open WorldCat — you like the design and functionality better than what is offered by your library automation vendor plus Open WorldCat offers the very neat find-a-copy-in-a-nearby-library feature. (Again, for those coming in from outside the library community, WorldCat is a combined database of the holdings of thousands of libraries worldwide offered by a not-for-profit cooperative called OCLC. You can, no pun intended, read more about it. A database of, at the time of writing 68,338,776 works represented by 1,081,317,008 distinct holdings in libraries. Still think libraries are boring?)

You are all ready to proceed with this plan, 5 but there is one sticking point: your local public catalog displays the status of the item (”available”, “checked out”, “lost”, etc.). And WorldCat, although it contains the combined holdings of thousands of libraries, it doesn’t know whether any particular item is available or not — the only thing stored in the WorldCat database is whether an item is owned, not whether it is checked out. The status of the item is only known to the local catalog system.

Enter a Service Oriented Architecture. The local catalog system makes known a service whereby an service consumer can ask for the status of an item. What is returned by the service provider can be as simple as a string of text that is a spelled-out version of the item status or it can be as complex as an XML schema with attributes for “checked out” or “lost” and parsable date fields and so forth. Remember, though — these SOA exchanges need to be processed quickly. As WorldCat is generating the screen of the search results for the user, it calls back to the library catalog system to find the status of the item and then displays it for the user. The result might be something like this:
WorldCat example with "Status"

Okay, but is That What the User Really Wanted?


I have my wife to thank for the next part; she, too, is a librarian 6 and as I was describing this scenario she was most emphatic about the relative uselessness of the status display. After all, if your question is “how can I get this item?” does the answer “due back on…” or “declared lost” or even “available” answer that question? What if we were to really answer the question; the answer might look something like:
WorldCat example with "Availability" added
We’re translating the raw status information from our inventory control database following these rules:

Available Online
If we see in the description of the item that it is on the web somewhere. In this case, the word “Online” can link right to the item.
Available Onsite; Delivered in 1-2 days
This item is physically held in the library and the inventory control aspect of the library system says that it is available. So the choices to the user are “onsite”, which could link to a page that describes which library holds the item and the approximate location of the item within the library, or “delivered in 1-2 days” for a user service that will pull an item from the shelves and deliver it to an office or home.
Delivery on or about…
This item is checked out. A hold has been placed on it, and when the item is returned (hopefully no later than the original due date) it will be turned around to the next user.
Delivered in 3-4 weeks
This item was declared lost, so the 3-4 week delivery statement represents the estimated time to get the item from another library through interlibrary loan. Ultimately, does the user really care if the item was declared lost? Probably not — they just want to get to the item!

Layers of Services


Here in Ohio we can actually do one better than those last two. In addition to our local catalog systems, Ohio academic libraries have a combined catalog of their own and a requesting/delivery service that can move an item from one institution to another in a matter of days. What would this mean in terms of our emerging SOA? The service provider that WorldCat asks for the local item status doesn’t have to be the local catalog system. Instead, it could be an intermediary service that would first ask the local catalog system if the item is available. If not (such as in the “checked out” or “lost” examples), the intermediary service would query the OhioLINK combined catalog service provider to see if the item is available at any other OhioLINK member institution. If so, the display might look something like this:
WorldCat example with "Availability" line and with value-added delivery time
Here again is the translated message:

Delivered in 2-3 days
The item was not available at the local site (so we don’t see an “on-site” link) but it is available from an OhioLINK member institution. The average turn-around time for an OhioLINK physical delivery request is about 2 to 3 days. But again, the user doesn’t care at this point where the item is coming from — their local library or one somewhere across the state; the only thing the user likely cares about is how long it would take to get the item if he or she asked for it to be delivered to their home or office.

But What of the “Integrated Library System”?


If you read closely and have your internal sensors calibrated to such things, you may have noticed the juxtaposition of “inventory control system” with “local catalog system” in the descriptions above. That is no mistake — in the next posting of this series we’ll take a look at the disaggregation of the traditional integrated library system in a SOA environment.

Footnotes

  1. OASIS Reference Model for Service-Oriented Architecture, Committee Specification 1, dated 2 Aug 2006, lines 175-179. The document was retrieved from http://www.oasis-open.org/committees/download.php/19679/soa-rm-cs.pdf on 18-Sep-2006. []
  2. Summarized version of “Object-oriented programming.” Wikipedia, The Free Encyclopedia. 19 Sep 2006, 18:27 UTC. Wikimedia Foundation, Inc. 19 Sep 2006 http://en.wikipedia.org/wiki/Object-oriented_programming&oldid=76627897#History. []
  3. OASIS Reference Model for Service-Oriented Architecture, Committee Specification 1, dated 2 Aug 2006, lines 243-259. []
  4. “A Conversation with Werner Vogels.” ACM Queue. 4(4): May 2006. 19-Sep-2006 http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=388 []
  5. For the record, please note the word “hypothetical” sprinkled liberally throughout this example. WorldCat cannot now do the things that are described in this post, the screenshots are unauthorized adaptations of WorldCat web pages, and, to the best of my knowledge, OCLC is not planning on doing anything like what is described here. Although it would be really neat if they could do it…. []
  6. yeah, yeah — I can almost hear the sharp-witted speculations about our dinner-time conversations from those outside the library community. []

2 Comments

  1. Adam Chandler | September 22, 2006 at 3:54 pm | Permalink

    Peter,

    I’ve been thinking along the same lines for the past few months. I’ve been wanting to have a dialogue at the detail you are working. Given my involvement in ERM modeling/standards, I’m looking at the problem from that perspective. My first attempt to put my thoughts into some kind of form was for a presentation I did back in March for a III meeting:

    Electronic Resource Management: Driving Factors: III Directors Symposium Berkeley, CA, March 14, 2006

    Thanks,
    Adam

  2. the jester | September 25, 2006 at 9:13 am | Permalink

    I’ve been thinking along the same lines for the past few months. I’ve been wanting to have a dialogue at the detail you are working.

    Welcome to the party! There seems to be about a half-dozen of us, at least, that are willing an eager to engage on the topic. (If anyone is going to Access 2006, please reply to Richard Akerman call for BoF participation. Unfortunately, Access 2006 won’t fit into my travel allotment for this year, but I’m eager to hear of any results from the get-together.)

    Given my involvement in ERM modeling/standards, I’m looking at the problem from that perspective. My first attempt to put my thoughts into some kind of form was for a presentation I did back in March for a III meeting:

    Electronic Resource Management: Driving Factors: III Directors Symposium Berkeley, CA, March 14, 2006

    Nice presentation. I’m partial to the graphic on slide 15: “Ranking and recommending based on intentional data”. Having that kind of slider — a la the Kayak.com travel metasearch engine search results — is more akin to what the user is asking for from us that what we are doing now. I also like th

    e comment in the Notes section of slide 16:

    Maybe we should start talking to logistics companies (Federal Express, DHL, etc) about a nationwide del

    ivery system between libraries

    If we can effectively tie into their shipping manifest and delivery systems, I’ll bet there is a world of good we can do.

    Thanks for the comments!

13 Trackbacks

  1. panlibus | September 22, 2006 at 3:57 pm | Permalink

    links from TechnoratiDisruptive Library Technology Jester Peter Murray follows up on his earlier post, which Richard blogged about yesterday. In “The Dis-integration of the ILS into a SOA Environment”, Peter begins to address the vexed question of; “what to do about the Monolithic (er… ‘Integrated’) Library System.

  2. panlibus | September 20, 2006 at 8:33 am | Permalink

    A Library SOA example – not just Buzzword Bingo!…

    The Disruptive Library Technology Jester [Peter Murray] in his post Services in a Service Oriented Architecture(SOA) “the second in a series about the application of the Service Oriented Architecture (SOA) system design pattern to library services” u…

  3. Lorcan Dempsey's weblog | September 20, 2006 at 4:33 pm | Permalink

    D2D in Ohio

    Our close neighbor, Peter Murray, of Ohiolink, has been posting about Service Oriented Architectures. He has just been elaborating with some examples of how one might organize an integrated discovery to delivery experience across a set of independently managed services….

  4. NGC4LIB Archives -- September 2006 | September 21, 2006 at 2:06 pm | Permalink

    Karen Coyle | 21 Sep 18:33
    Service-Oriented Architecture

    Peter Murray has posted a piece on using a Service-Oriented Architecture for the design of library systems.

    http://dltj.org/2006/09/services-in-soa/

    I think this is the direction many designers are going, and it’s nice to see it clearly articulated. Actually, many systems already *do* this, although they are often doing it in spite of the ILS design. What we don’t have yet is an analysis of what this means at the level of data structures and systems design. Peter does say that his next post will be a look at the “disaggregation” of the ILS (which sounds like what I’ve called the “dis-integrated library system.”).

    SOA should definitely be one of the scenarios in our work. I’ll add it to the wiki.

  5. Kramer auto Pingback[...] This post [...]

  6. Science Library Pad | September 24, 2006 at 7:19 pm | Permalink

    BOF on SOA at Access 2006?…

    Anyone interested in a BOF on Service-Oriented Architecture at Access 2006? I don’t know how the Access BOFs work, but I do see there is a slot Thursday, October 12, 2006 5:00pm – 5:45pm Birds of a Feather7:30pm – Improv…

  7. Web services in Libraries « David, the Blog | September 26, 2006 at 6:57 pm | Permalink

    [...] Services in a service oriented architecture [...]

  8. Enterprise Abstraction | October 29, 2006 at 1:07 pm | Permalink

    Library SOA buzz…

    There have been several recent developments in Library SOA buzz. Here’s the quickie list: Richard has reviewed a report entitled Web Services and the Service-Oriented Architecture by Marshall Breeding. He also points out the NISO document Best Practic…

  9. Kramer auto Pingback[...] Peter Murray – April 16, 2007 @ 06:58 PM I had much the same epiphany as I was doing some work on a Service Oriented Architecture whitepaper for OhioLINK. It isn’t so much that our users care whether an item is available. They want to know how fast they can get there hands on it. Is it available immediately (online)? Can I have it delivered in 2-3 days (paged from the physical stacks and sent to my dorm/office)? If it took 2-3 weeks to get the item (as in via ILL or rushed purchase), would I be willing to wait that long? I put all of those ideas together in a blog post that mocked up Open Worldcat screens enhanced with local availability data. (This was in the days before Worldcat Local was announced.) Details at http://dltj.org/2006/09/services-in-soa/ (or via the URL that is hyperlinked to my name in this comment). [...]

  10. Kramer auto Pingback[...] (part 1 of a 3-part library-focused series; see also part 2 and part [...]

  11. Digital Library Technologies | June 29, 2007 at 3:40 pm | Permalink

    Kramer auto Pingback[...] article by Peter Murray (aka the Disruptive Library Technology Jester) that first defines SOA, then shows how it would work with WorldCat as an example, and finally how it would enable the “dis-integration” of the hitherto monolithic [...]

  12. The Krafty Librarian | July 13, 2007 at 1:28 pm | Permalink

    links from Technorati library systems. To get a better idea of what SOA is and what it means for libraries check out these sites: Eric Schnell’s four part series on SOA. Part 1, 2, 3, 4 (coming soon) Stephen Anthony’s The Future of the ILS Peter Murray’s Services in a Service Oriented Architecture and “Applying the Service Oriented Architecture (SOA) Model to Libraries” — A Presentation Marshal Breeding’s Web Services and the Service Oriented Architecture (not online) If you are really interested in

  13. Webservices - Verbund-Wiki GBV | August 24, 2007 at 3:08 am | Permalink

    Kramer auto Pingback[...] Zu SOA in Bibliotheken Services in a Service Oriented Architecture. September 19th, 2006. http://dltj.org/2006/09/services-in-soa/ Von [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *
Human Detection Scheme
(What's this?)
Comment Preview

Additional comments powered by BackType

Subscribe without commenting

From the Disruptive Library Technology Jester (http://dltj.org/), printed on Monday the 29th of June 2009 at 7:40:37 AM EDT (-0400). The URL to this page is http://dltj.org/article/services-in-soa/

[Creative Commons Logo] This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.