| Chapter 2: Vendors and Products | |
| Marshall Breeding | |
|
|
|
| Abstract |
This chapter of “Opening Up Library Systems through Web Services and SOA: Hype or Reality” takes an in-depth look at what is currently available on the ILS market, what services are offered in terms of APIs and customizability, and how users have reacted to the products and services. Vendors covered in this chapter include Ex Libris, The Library Corporation, Innovative Interfaces, Polaris, SirsiDynix, Talis, and VTLS. |
In this section we will take a look at some of the major integrated library systems and explore the extent to which they offer APIs. Each vendor was contacted with a request to respond to a set of questions that elicit information about the APIs offered by the systems that they support. The responses received from each product representative are presented as received.
Ex Libris, based in Israel, specializes in providing automation software to research libraries and consortia, with a customer base that includes some of the largest libraries in the world. The libraries that use this company's products fall well within the profile of those that expect to extend or adapt the software. These libraries tend to have very complex automation requirements that may not be met by any off-the-shelf solution. By the nature of the demographics of its customer base, Ex Libris faces a very high demand for extensible systems.
Ex Libris
Ex Libris offers a variety of automation products. The company developed the Aleph ILS in the early 1980s and has advanced this product through several generations of technologies. Aleph has been deployed throughout the world, primarily by academic and national libraries, but also by consortia that include public libraries. Voyager, developed by Chicago-based Endeavor Information Systems, was acquired by Ex Libris in 2006. Voyager finds use primarily in academic libraries in the United States, the United Kingdom, and Australia; it is the automation system used by the Library of Congress. Other products offered by the company include the SFX OpenURL link server; MetaLib, a federated search product; Verde for electronic resource management; the Primo discovery interface; and most recently, Rosetta, a digital preservation system.
Given Ex Libris's clientele, the company faces the challenge of offering not only products with sophisticated functionality, but ones that can be extended to handle complex and specialized library automation scenarios. One of the primary approaches that the company has taken to satisfy these requirements has been an evolving set of APIs.
Ex Libris offers a diverse set of products, created over a long time frame that spans many different cycles of technology architectures. Aleph, for example, traces its roots to the early 1980s as a mainframe product written in COBOL. This long history has allowed it to steadily accumulate new functionality, growing into one of the most sophisticated and feature-rich ILS products on the market, capable of serving the world's largest and most complex libraries. While it has been completely reworked over its long history, vestiges of technologies from past ages remain. Voyager, created in the mid-1990s as a client/server automation system, embodies a significantly different architecture and programming style. SFX, the company's OpenURL link server, was originally created at the University of Ghent in Belgium. Though it has been largely rewritten, its codebase differs substantially from the company's other products. MetaLib, the company's federated search platform, and DigiTool, a digital asset management system, though developed somewhat more recently, still predate current service-oriented software.
Throughout its corporate history, Ex Libris has taken at least some measures to give its customer libraries the ability to work with its products beyond the user interfaces delivered with the system. Each of these products has offered a set of APIs appropriate for its technical heritage. While each product offers APIs in some way and to varying extents, when APIs are considered across the individual products, they are disjointed and inconsistent. While libraries might appreciate that each application offers some flavor of APIs, they may be less than delighted at the complexities of programming against each product in a different way.
In the last year, Ex Libris has articulated a strategic direction of technology based on a more thorough and consistent delivery of APIs. This strategy involves exposing a more comprehensive array of functionality in its products through APIs and delivering them more consistently. As the company develops new versions of its current products as well as entirely new products, it will work toward creating a more uniform and coherent set of APIs, delivered through a consistent and modern Web services approach.
In June 2008, Ex Libris announced its “open-platform program,” which stated that its corporate strategy was to develop open interfaces to its products, to provide full documentation for its APIs, and to evolve the APIs across all its products to a more consistent and unified structure. The program specifies that forward development will emphasize a service-oriented architecture. Oren Beit-Arie, Ex Libris chief strategy officer, has been one of the guiding forces behind the company's support of open APIs; Tamar Sedeh, director of marketing, has been given responsibility for the open-platform program.1
As part of the fulfillment of its open-platform program, Ex Libris created a workspace called “EL Commons” as the focal point for programmers involved with Ex Libris products. EL Commons includes a repository to gather together and make available any programs or scripts that make use of the APIs associated with any of the Ex Libris suite of products, documentation for the APIs associated with each of the products, and forums to facilitate enquiries and discussion surrounding their use. At the of this report's publication, Ex Libris restricts access to EL Commons to its direct customers, but intends to open its access to noncustomers in the near future to accommodate those involved with other organizations that want to develop interoperable applications with Ex Libris products.2
Ex Libris offers open interfaces for all of the company products, enabling libraries to customize our products, extend them by adding locally developed or third party functionality, and integrate entire products or parts of them with other systems in the library. We divide the open interfaces into several categories:
We provide comprehensive documentation, including examples, for all interfaces. In some cases we provide additional programming tools such as utilities and libraries of functions or classes that together form a software development kit (SDK).
Today all open interfaces are offered as part of the core product and we do not charge any license fees for them.
Comprehensive and consistent documentation of the open interfaces across all products is available on a collaborative Web site—EL Commons—that serves as a communication channel among Ex Libris community members (library developers and Ex Libris developers). The EL Commons Web site consists of two parts: a wiki, defined and administrated by the customer user groups (IGeLU and ELUNA), and the Developer Zone. The documentation of the open interfaces is available on the Developer Zone, along with contributions posted by customers and Ex Libris. By default, contributions are open source and are assigned BSD license; however, contributors can change the license as required.
The EL Commons Web site is available to all Ex Libris customers, regardless of the product they deploy. Parts of the site will be open to all by October 2009. We enable access to third party developers if requested by our customers.
As explained above, Ex Libris provides APIs of three types, all transferring data over the Web. X-Services are based on simple http/XML data transfer, whereas the other APIs are either wrapped in SOAP or adhere to the REST network architecture.
The open interfaces enable the full spectrum of functionality, including the creation and the modification of data.
There are many examples on the EL Commons Developer Zone, where customers post their code and enable it to other customers. Most code contributions are developed to extend the Ex Libris solutions by adding functionality. A few recent examples:
Some projects are on a larger scale. Most notorious examples:
Xerxes
Livetrix
http://purplesearch.ub.rug.nl/help.docs
Umlaut
Our newer systems adhere to service-oriented architecture principles, and as we move forward we are putting more emphasis on modularity and on developing our solutions as components that interact through open interfaces. A good example is the way we implemented the inclusion of OPAC functionality in Primo version 3.0 to be released at the end of 2009: we developed a suite of RESTful services for Aleph and for Voyager, and applied the functionality in Primo relying on the interfaces included in these suites.
The development of open interfaces is defined within our design and coding practices.
First, I'd like to stress that we at Ex Libris attribute much importance to the openness of our systems. We realize that despite the rich functionality and the flexibility of our solutions, we cannot satisfy all needs of all customers cost-effectively and in a time frame that fits all. We believed in open systems years ago, but in the last 15 months we went through an extensive process in the company, examining our practices and setting in place a framework for defining, developing, and supporting open interfaces. Furthermore, rather than developing these interfaces only so that customers can extend our systems, we rely on them when we develop our systems and we make sure to develop functionality that is relevant to more than one system as a separate module, interoperable through open interfaces. Our open interfaces cover rich functionality that is not limited to end-user access to the system.
In May 2008 I was appointed to lead the open-platform program and now have an overall responsibility for the program within the company. To carry out the program we went through organizational alignment, nominating one of the senior development staff members to head the open-platform program from the development side, and a focal point in every development team. We built the Developer Zone of the EL Commons Web site and we rearranged our documentation of open interfaces so that all of it is available in one place and in a consistent format. We regularly communicate with customer developers and conduct meetings during user group meetings. In addition, we hold two annual Developer Meets Developers meetings. Up to now we had held two such meetings—one at the Company's headquarters in Jerusalem in November 2008 and the other at the Company's North American R&D center in Chicago in March 2009. The meetings enabled customer developers and Ex Libris developers to communicate and discuss technical and other matters. We believe that the active community of developers is a key component in the open-platform program and we are inspired and impressed by their ideas.
Another thing that I'd like to point out is that the open-platform program enables libraries to enjoy the benefits of commercial products—stability, regular enhancements and upgrades, professional support, rich functionality from the outset, and a clear, committed roadmap—as well as the flexibility and agility of open source. Libraries do not have to commit to one way or another, and can start their innovation at the point that suits them best. For most libraries, engaging in big development processes is not a desired task for several reasons. For example, many libraries do not employ professional software engineers and hence lack the human resources to commit to long and complex development cycles that, in some cases, may not yield the expected results in the time frame set. Therefore, libraries prefer to invest their effort in adapting existing systems to their needs by sophisticated customization and addition of functionality that they develop or acquire. Our openness and tools enable such a process in the best possible way.
And last but not least, the open-platform program enables all libraries, regardless of their size, budget or IT resources to benefit from the creative work done by all developers. That is, libraries that are more limited in their capabilities to develop code can use code written at other institutions or collaborate with others to carry out projects they could not perform themselves.
Ken Mitchell, IT analyst at Duke University Libraries, provided the following response to the questions regarding the APIs offered by Ex Libris:
We are definitely constrained in the ALEPH system. The “X-Services” API layer provides access to some important functions, but it also:
No. Not even close. The ALEPH “X-Services” API does not provide the range of functionality required to replace the application's OPAC. Some missing features: hold-request processes (both on the query level [to determine requestability] and on the request level), browse/authority list search-and-retrieval processes; complete item-level information in a single call, etc.
No. ALEPH does have an API library (as quirky as it is), and many schools have opted to perform direct database calls to gain access to data and/or functionality that is not accessible through the APIs.
Yes. There are occasional typos, and some undocumented bugs/features for the APIs, but overall ALEPH has a reasonably well-documented set of APIs.
We have developed both automated scripts and interface applications taking advantage of the APIs, primarily using Perl, PHP, and Python (often layered under the Django framework), and often using XSL for the presentation components of these applications.
Depending on the purpose of the application, either level of expertise is adequate, since the APIs themselves are accessible via simple URL calls. In general, though, in our environment we are using the skills of software development engineers to develop most of our scripts and/or applications.
As we look more towards abstracting out the discovery layer and process from our ILS, the primary features we would like to see in our ILS are:
Mike Curtis, systems librarian at Broome Community College, one of the State University of New York libraries that uses Aleph 500, responded to inquiry regarding ILS APIs, reporting on his experience creating an entirely new OPAC interface using the APIs available with Aleph.
Broome Community College
Mike Rogers, a computer systems specialist at the University of Tennessee Libraries, provided a response regarding that institution's experiences with the ALEPH 500 system from Ex Libris:
University of Tennessee New Items feeds
The National Library of Australia, an Ex Libris Voyager site, gave the following responses:7
Very constrained.
There are no real APIs with current version of the ILS that we are on.
Yes, definitely too closed.
Again, there are no real APIs with current version of the ILS that we are on. With latest versions there are some APIs/Web services, but the documentation is poor.
As no real API is available, what work we have done has been connecting straight to the Oracle database using Perl, screen scraping or using its bulk program to wrestle MARC records
On our wish list would be an API (Web services or other similar technology) that exposes the full functionality of the ILMS system. Everything that the OPAC shows you, everything that the call slip client lets you do, everything you can do with the cataloguing client, should be able to be performed using the API as well. The system should expose as its API the exact same interfaces used by its own modules.
Evergreen is an open source ILS developed originally for the PINES consortium of public libraries in Georgia. Following its successful implementation in Georgia, it has attracted the interest of many other public library consortia. The original developers of Evergreen launched a company named Equinox Software in 2007 devoted to its ongoing development, marketing, and support.
Evergreen
While it has also seen a few implementations by single libraries, the majority of interest in Evergreen has been through consortial efforts. In addition to the original PINES consortium, some of the consortia using Evergreen now include the British Colombia SITKA consortium, Evergreen Indiana, SC Lends in South Carolina, and Michigan Library Consortium, with others expected to come online in the near future. The first group of academic libraries, the Conifer consortium in Ontario, Canada, began production use of Evergreen in August 2009.
Evergreen, given its status as the most recently created library automation system available, is one of the few systems created in the area of service-oriented software. One of the key components of Evergreen is an underlying services layer called OpenSRF, based on Jabber as the messaging protocol. This design makes the software inherently more able to support APIs.
Since Evergreen is an open source ILS, developers have the option of working directly with the source code of the software rather than programming through an abstract API layer. In a service-oriented application like Evergreen, this distinction is more subtle than with proprietary applications, where the only avenue for interacting with the software is through an API. Because the application is built on a services framework, application programming primarily involves coding against the OpenSRF API.
The libraries that have adopted Evergreen so far are not necessarily the types of libraries that have a high demand for APIs. The APIs provide a good foundation for the forward development of the system but tend not to be used by the end-user libraries.
Equinox Software, the primary firm providing support for Evergreen, fielded the survey questions.
Equinox Software
The basic programming of the Evergreen application takes place through calls made to the underlying OpenSRF API. This API provides access to all of the underlying data structures.
All Evergreen APIs are available at no cost out of the box.
We document the APIs used by Evergreen, all of which are available for use by third-party developers, on the project wiki, in the Evergreen documentation project, and in blog posts. In addition to wiki-based, blog, and traditional documentation of the various APIs, there is a built-in introspection service for the core API.
There are some portions of the API available through a RESTful interface, and the entire API is available through XML-RPC. There are also Evergreen-specific libraries which implement http and XMPP bindings for the full API.
Evergreen is constructed as a set of loosely coupled services which consume standard data object and provide business logic for implementing specific functions which are required for library workflow.
At the heart of Evergreen is the OpenSRF (Open Service Request Framework) network, a programming language agnostic communication backbone that provides an abstraction layer for inter-service service requests. In addition, OpenSRF provides transparent Load Balancing and High-Availability to an application such as Evergreen.
Adding processing capacity to an application built on OpenSRF is as simple as procuring and provisioning an additional low-cost commodity server, and configuring it to connect to an existing OpenSRF network.
By providing a simple internal API for use by application developers, adding and changing functionality of an OpenSRF application is a simple as defining the input, output and logic of the desired method. There need be no consideration made of potential network topologies, client programming languages, session and transaction semantics, or even external integration.
All of these concerns are handled by OpenSRF itself, and the developer of an OpenSRF application can focus strictly on the specific task at hand.
Additionally, by using OpenSRF, Evergreen can be made to scale from the very tiny—say, a rural, single branch library with less than 10,000 items—to the enormous. No code changes are necessary; only a single configuration file specifying which services to run on each node in an OpenSRF network.
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Modification of bibliographic records is performed atomically, by updating the record as a whole.
The API provides methods for both aggregate and individual availability information for items, and can be used to perform all transactions involving items.
Evergreen can perform batch imports and updates of user records from an external, authoritative source, but does not directly integrate with such sources for real-time authentication.
Evergreen allows retention of full circulation data, as well as supporting the retention of circulation data stripped off of personally identifiable patron information. All retained data can be explored and reported on using standard database techniques including use of the built-in reporting engine.
While acquisitions functionality is currently under development, Evergreen does currently support interaction with external systems through EDI (EDIFACT) file interchange.
The OpenSRF provides access to all functionality defined in the application.
Using the Evergreen APIs, production customers built various tools that fall outside the scope of an ILS which leverages their data. Among others, there are contributed, non-core projects for automated outbound telephony, captive portal authentication and a standalone new-books list. All of these use existing Evergreen API calls with no new code required on the ILS side.
Customers have also created entire customized OPACs to replace the stock OPAC that ships with Evergreen.
In order to create a scalable solution, Evergreen was designed from the beginning as a loose federation of cooperating services that depend on one another and create a fabric of methods that are programming language, location, data, and server independent. Each service provides a specific set of functionality, and each can be tuned, modified or upgraded without affecting the rest of the system.
This is the very heart and spirit of SOA—that a loosely bound group of services depending on one another for specialized tasks is greater than the sum of its parts. This is a technical, founding principal we use in developing Evergreen.
No responses were submitted from libraries that have implemented Evergreen that make use of its API.
The Library Corporation (TLC) offers two different ILS products, with a new system in development. Carl.X finds use in large library organizations, especially municipal libraries and consortia; Library.Solution is a popular choice for small to medium-sized public libraries. Both systems have been implemented primarily in public libraries. A specialized version of Library.Solution has been developed for K–12 school districts. Special and academic libraries represent a small portion of TLC's customer base.
Carl X has a long legacy in the library automation arena, tracing its roots to at least the early 1980s. The software was designed originally to operate on Tandem hardware, noted for its extremely high reliability. Carl finds use primarily in large-scale implementations, including consortia and municipal systems. The Library Corporation acquired the software in August 2000 and has evolved the system into Carl.X, which relies on a new technology platform based on UNIX and Oracle. As a system implemented by large library organizations, it fits within the realm where APIs and Web services have a high level of interest.
Library.Solution was developed by The Library Corporation and introduced in 1997. This system was designed for small to medium-large public libraries. As a system that appeals to libraries with limited resources, Library.Solution does not fall within the profile of products where APIs would be in great demand.
TLC has begun development of a new ILS platform named LS2. The initial module of the system, the LS2 PAC, can be used as a public interface with either Carl.X or Library.Solution. LS2, consistent with modern programming practices, has been created in a more service-oriented model and will have more capabilities for delivering APIs that can be accessed by customer libraries than was possible with the company's legacy products. The development of the LS2 platform transitions from legacy products to modern service-oriented software; the LS2 PAC, used in conjunction with TLC's older ILS products, makes their data and services more available through Web services.
The Library Corporation
Both of our integrated library systems, Library.Solution and CARL.X, are exposed primarily through the LS2 platform, which was designed specifically with access to open APIs in mind. Up to that point, we had a variety of examples where we made data available through these ILS systems, either with old-fashioned protocol methods such as NCIP, Z39.50, or SIP2; through on-demand API required by vendors such as AquaBrowser, where we made our bibliographic data, shelf status, and various items in the catalog available; and finally (and most extensively), for our CARL.X system, Chicago Public Library used API for its public catalog and acquisitions/selections interfaces, all via Web services with different front ends designed by third-party companies.
Of course, we would also include our links to multiple other vendors—Student Information Systems (over 30 brands), EnvisionWare, Tech Logic, Unique Management, Talking Tech, NoveList, Cognos, Syndetic Solutions—which allow integration in both directions between our systems and theirs for sharing or exporting/importing data.
We have only provided API access extensively for CARL.X. The business model for open APIs with LS2 has not yet been used. However, that doesn't mean we don't have a business model for openly retrieving and using this client data from our traditional systems. Because we offer flexibility in our public catalog interface with open access to the HTML and the services within it, we had libraries linking up to book jackets from Amazon.com in 1999. We've been connecting with about 30 student information systems for the past 10 years through our Library.Solution for Schools product, which updates student information via user-defined fields.
All of our modules include user-defined fields for things such as statistics, book cataloging, serials, acquisitions, and circulation for a greater degree of flexibility in terms of help and support. Our customers have found that the public catalog can be modified in any way that they choose, all within the limits of the code it's written in. The system has been open, although not necessarily through a large-scale API. In the future, we expect to find libraries that will have a reason to access our API, and they have the ability to do that for anything regarding our public catalog and Web circulation in the LS2 API that works with both Library.Solution and CARL.X.
It has been TLC's long-held conviction that our customers' data belongs to them and we'll give them access to it however possible. We look forward to working with libraries to make sure that we balance the need to have an open API with TLC's ability to rapidly innovate the product.
With CARL.X, we did publish documentation for our API and confined it to licensed customers and third-party developers. We wouldn't give it to an unrelated third party. It's not a shareware product.
We use SOAP (Simple Object Access Protocol) and the more “modern” JSON (JavaScript Object Notation) in LS2.
The API is CRUD (create read update destroy).
We use DWR (Direct Web Remoting) to create JSON. We use Axis 2.0 for the Web services.
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Available in LS2 via SOAP and JSON.
Real-time requests for availability are available in LS2 via SOAP and JSON. Ability to execute circulation transactions for checkouts, returns, and holds is offered in LS2 PAC and Circ via SOAP and JSON.
Personal details are available in LS2 PAC via SOAP and JSON. Authentication credentials materials charged or requested are available in LS2 PAC via SOAP and JSON. Real-time synchronization with external authoritative repositories of user populations in near real time is available with ActiveDirectory.
No, only via reporting.
No.
No.
No responses were submitted from libraries that have implemented TLC products that make use of APIs.
Innovative Interfaces ranks as one of the largest and most long-standing library automation vendors. Its Millennium ILS has been adopted by thousands of libraries throughout the world. Innovative's ILS has been evolving for over twenty years and has made the transition through several generations of technology. The current system, Millennium, was introduced around 1997.
Innovative offers a number of APIs to its customers, mostly packaged into discrete product offerings. In general, the company does not offer a one-size-fits-all system, but rather a system where it licenses a customized set of modules and components that meet the needs of each library. With this approach to pricing, each library pays for the functionality it uses, and does not pay for capabilities that might be available that it does not need. Innovative offers a fairly wide selection of APIs, offered as separately licensed components, consistent with its general pricing strategy.
Innovative launched Encore, a new-generation discovery interface in 2006. Encore also provides a new technology platform for Innovative, developed with current-day technologies more amenable to APIs and Web services. Encore also functions as a service layer into Millennium data and functionality.
The customer base of Innovative spans a wide range of types and sizes of libraries. It provides automation for many large and complex libraries. Its products are used in many regions of the globe. Innovative's customer libraries include many large research libraries (thirty-nine ARL members), municipal and large public library systems, and others that fall within the profile of libraries with advanced needs for interoperability and data services.10 At the same time, Innovative serves a vast number of libraries that expect fully managed turnkey systems and that do not expect to perform local programming. This heterogeneous customer base presents a challenging environment and provides some perspective on the company's business model of offering its APIs as separately licensed options.
Innovative Interfaces
Our practice has been to develop needs-based APIs with direct input/direction from our customers. As a result, we tend not to have theoretical models, but practical implementations that solve specific and real needs. For example, rather than have a “Patron Record” API, we offer a “Patron Update” API, a “Fine Payment” API, and a “My Account” API—we target specific tasks.
Several of our products offering API functionality in-clude Millennium, Encore, Content Pro, and INN-Reach.
API sets are optional functions within Millennium. Depending on the initial needs of the particular library, the Millennium system may be initially configured with the appropriate API functions that the library needs. If so, the price of those functions (as with other functionality) is bundled into the initial price. If a library decides to add this functionality to an existing Millennium system, there is an optional fee.
For Encore, the Query API is a module that is priced separately.
Technical documentation is available to customers and third-party developers. Techdocs, Innovative's Technical Documentation site, provides information to libraries that have purchased one or more of Innovative's Web interface products, such as the Patron Update Web Service, Fine Payment Web Service, My Account Web Service, or Millennium Enterprise Backup.
In addition, Innovative has a separate website, Vendordocs, for the purpose of distributing information important to joint development with vendor partners. More importantly, our online documentation provides Perl and/or JavaScript scripts. Our experience has shown that this is the best way for our partners to explore the functionality of the various APIs.
Innovative provides libraries with a downloadable Patron Web Services Development kit.
All of Innovative's modern APIs operate through SOAP, and utilize Perl and JavaScript. Legacy APIs use http://mechanisms.
See specific API descriptions provided below.
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Provided below is a representative set of APIs offered by our products:
The following are interfaces that allow Millennium to interface to external APIs:
Encore APIs
RFID integration with Item Status API. We have several instances of the use of Item Status API.
Item Status.
Patron Update Web Service.12
Innovative leverages SOA for the development of new products and for the enhancement of existing products. Our applications leverage SOA using multiple back-end infrastructure components which provide encapsulation, code reuse, and deployment flexibility. In addition we are able to leverage these services for both our own application presentation layer as well as customer-facing APIs. For example, with Encore, using SOA has resulted in an implementation that is distributed, easier to manage, and more extensible and reusable for future development.
Information on Item Status API
http://brewing.iii.com/2008/09/10/item-status-api-now-working-with-3m-and-envisionware-rfid-systems
Patron Update Web service article
As mentioned earlier, Innovative practices a “needs based” approach to this type of functionality. As libraries identify areas where there are information needs that can be supported by the ILS, we will develop interfaces that support those needs. This also extends to technologies. We implement technologies based on those needs. Whether it results in the implementation of an API or other communication technique, we implement in the manner that best suits the needs of the problem to be solved.
No responses were submitted from libraries that have implemented Innovative Interfaces products that make use of APIs.
The open source Koha ILS has attracted a number of libraries of many different types in many regions of the world. In the United States, Koha has been adopted by a mix of public and academic libraries, primarily in the small to mid-sized range. The system was originally developed in New Zealand in 1999 and has seen continuous development and enhancement in the past decade. In the United States, most libraries implementing Koha have done so through paid service contracts with commercial firms, including LibLime, PTFS, and ByWater Solutions. LibLime ranks as the largest of these firms, has been providing these services the longest, and has the most client libraries. Given its vintage of development, Koha predates the period when most applications were built according to a service-oriented architecture. The software has evolved significantly since its original version. The ILS has become more sophisticated in functionality and has been extended to support a wider range of standards; a limited number of APIs have been added.
Koha finds use primarily in smaller libraries that do not necessarily expect to work with their ILS through an API. A large portion of the libraries using Koha rely on a support company for all the technical work involved in implementation, and many take advantage hosting services.
As the dominant company involved with providing support services, LibLime provided responses to the survey questions regarding Koha's support for APIs.
LibLime created and maintains a simple set of RESTful APIs that enable our customers to write applications to interact with their Koha databases. The same set of APIs are implemented in our ‡biblios.net product and are documented at the ‡biblios.net Web services website.
‡biblios.net Web services website
https://bws.biblios.net/doku.php
Koha Web Services Overview
http://wiki.koha.org/doku.php?id=en:development:web_services
Access is included with the base product.
The documentation is available to anyone.
There are some portions of the Community documentation that are sparse, that's for sure. Since Koha is open source, it's assumed that any programmers that need to use the API will just delve into the programming itself.
Note that all of the APIs supported in ‡biblios.net are also supported natively in Koha, and they share the same codebase.
It operates through REST Web services.
Data can be created and modified using the API.
LibLime's Web services architecture goes beyond the nebulous so-called “Services Oriented Architecture” and focuses instead on resources using the principles embedded in the Resources Oriented Architecture and in Roy Fielding's doctoral dissertation in Representational State Transfer.
Roy Fielding, doctoral dissertation, chapter 5, “Representational State Transfer (REST)”
www.ics.uci.edu/∼fielding/pubs/dissertation/rest_arch_style.htm
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Yes.
Yes.
Yes.
Yes.
Yes, in theory, though there are no live examples.
Yes.
We're unaware of any customers that even know what an API is. Most of the time we simply provide tools and widgets that access the various APIs embedded in our products and our customers use those tools/widgets. APIs for LibLime are not an add-on afterthought; they are how the product is actually designed.
The most interesting application of our APIs exists on the ‡biblios.net Web services platform. Quite a few libraries have used Koha's built-in cataloging editor to contribute to the ‡biblios.net platform, which uses the API even if they don't know it does.
The cataloging editor in ‡biblios uses the authority Web service to provide an auto-complete dropdown list of authority records in authority controlled fields.
We have a few Koha customers that synchronize patron data with LDAP.
No responses were received from libraries using Koha reflecting their use of APIs or Web services.
Polaris, based in Syracuse, New York, focuses on the public library arena. The company offers the Polaris Integrated Library System. The company was originally created as a division of Gaylord, but became an independent company in 2003 when Gaylord was acquired by Demco. Polaris was introduced around 1997 and has steadily increased its customer base ever since. Polaris finds use in public libraries of all sizes; in recent years, it has found inroads into the municipal library arena with sales to Phoenix Public Library and Miami Public Library. From its beginning, Polaris has been designed to accommodate large libraries. With this emphasis on larger libraries comes an expectation for the extensibility offered through APIs.
Polaris
The Polaris API needs to be viewed in context with the underlying architecture of the Polaris ILS. The Polaris ILS is an open database. Polaris customers have a fully documented copy of the database schema and, with knowledge of SQL, can freely access and leverage the database without permission or assistance from Polaris.
The Polaris API simply enables customers to take this level of access and control a step further by ensuring that any enhancements or procedures written against the Polaris ILS are automatically updated against any changes to Polaris's stored procedures. Essentially, as the Polaris ILS evolves with every release, so do the enhancements created by the customer.
The API is an extra-cost option due to the level of ongoing support needed to maintain the product.
Yes, Polaris does publish documentation regarding the API for our customers. Customers are free to share that documentation with third-party developers at their discretion.
The API uses standard database communication mechanisms, such as JBDC, ODBC, OLEDBC, ADO, etc. Polaris chose this approach because they are existing standards. In addition, this approach is more secure and better protects the integrity of the customer's data, as you need to be inside the customer's network to access the database.
However, Polaris does offer a SOAP-based holdings Web service that provides item level call number, location, availability and real-time status information. The Web service is provided at no cost as part of the PAC Web application and includes documentation on its use and example service calls.
Yes, the Polaris API enables the customer to create and modify data.
The Polaris API is a database of stored procedures exposed through standard database communication mechanisms including JBDC, ODBC, OLEDBC, ADO, etc.
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Polaris provides the capability for complete and flexible extraction of bibliographic content through the Simply Reports Export Express product, not through the API.
Yes, the API is able to perform this type of transaction.
The API does address renewals and holds, but does not address returns and checkouts. However, customers can use SIP to accomplish these types of transactions.
Yes. The API does perform these types of transactions.
This can be accomplished without the API. Polaris has a utility that interfaces with Civic Technologies.
This can be accomplished without the API by querying the database through the use of Simply Reports or SQL Reporting Services.
Polaris has developed a utility for interaction with external financial systems through a generic XML-based data interchange. The adaptability of this model is dependent on the capabilities of the financial system with regards to data exchange with external systems. This interface has been integrated at Dallas Public Library with the Advanatage 3 Financial System.
No, the API is not able to perform this type of transaction.
Phoenix Public Library has been able to interface with Endeca for the PAC.
Also, Henderson District Public Libraries in Nevada has leveraged our open database, without the need for an API, for quite some time (they also have our API). As one example, Henderson wrote their own .NET application that uses the Polaris database and the Stamps.com API to generate overdue and hold notices in postcard format. The notices, including postage, are printed in-house by the circulation department and mailed. Patron accounts are updated automatically. In addition to reducing staff time, notices are turned around faster, and the library saved significantly on printing and postage.
Polaris offers a SOAP-based holdings Web service that provides item level call number, location, availability and real-time status information. The Web service is provided at no cost as part of the PAC Web application and includes documentation on its use and example service calls.
Whenever possible, any integration with third party content providers is done through Web services published by the vendors. Polaris currently consumes Web services from NoveList Select, Baker & Taylor's Content Café, and Syndetics, as well as Baker & Taylor, Ingram, BWI & United Library Services for Titles to Go.
Polaris offers tools that enable customers of all skill levels to access their data. For library staff with technical skills, the Polaris API is easy to use, intuitive and supplements the “openness” that is built into the fabric of the system.
For customers who do not have this level of technical skill, or who are not interested in devoting staff resources to these types of projects, Polaris offers tools to make it easy to access the data and interface with other vendors, without the customer needing a programming background. As noted above, much of the functionality you inquired about can be accomplished without the need for an API or advanced programming skills on the part of our customers.
As an additional example, SimplyReports, Polaris's Web-based reporting tool, enables customers to build hundreds of thousands of custom reports using a GUI interface. With SimplyReports, customers point and click to the data elements they are interested in—requiring no programming skills or knowledge of SQL. SimplyReports can be supplemented with Export Express, Polaris's export utility, to enable users to easily extract records from the database and save them in exportable format.
Essentially, Polaris strives to provide a balance for our user community–an open system, but one that is fully functional and enables our customers to focusing on meeting the needs of their communities.
No responses were received from libraries using Polaris reflecting their use of APIs or Web services.
SirsiDynix, a consolidated company formed through a series of business acquisitions, offers Symphony as its primary ILS. The company also continues to support Horizon and Dynix Classic. SirsiDynix has library customers in many regions of the globe spanning many different library types. Its customers run the gamut of large research libraries to small public libraries. The company faces the need to provide powerful flexible tools to its larger customers that have more complex automation needs while delivering fully managed self-contained systems for others. One of the key business strategies involves an emphasis on software-as-a-service (SaaS). SaaS is quite consistent with the use of APIs, but tends to be implemented by libraries of smaller size and complexity, which are less likely to take advantage of APIs.
SirsiDynix
Symphony, formerly known as Unicorn, has been steadily evolving since it was introduced in the early 1980s. SirsiDynix (then Sirsi Corporation) became the first ILS vendor to enable its customer libraries access to its internal API in late 1995. This API offered comprehensive access to all the data and functions of the underlying Unicorn system. It operated at the UNIX command line and generally returned results as pipe-delimited text.
SirsiDynix offers training for its customers that want to use the API. While the company charges for this training and generally prefers that libraries not use the API unless they have taken this training, there is no additional license fee involved with the API itself.
Since the Unicorn API allows libraries to create and modify data records, those making use of it must work with great skill and care to ensure that no databases are damaged or corrupted. Use of the API can result in support questions of great complexity. The API gives the library programmer great power to work with the system; with that power comes the responsibility not to allow an error in a custom script to wreak havoc on the library's data.
SirsiDynix provides multiple APIs with our various products. We provide the following:
Summary of APIs and Web services:
SIP API—Industry standard for self-service circulation used by Horizon and Symphony
NCIP API—Next generation of SIP
Symphony API (HAT Protocol)—Full access to Symphony
Symphony Web Services—Simplification of HAT API
Discovery Platform Web Services—Used by Enterprise, SchoolRooms and Hyperion applications
All APIs and Web services are automatically installed and available to our customers. Customers are not required to purchase our training subscription but are strongly encouraged to do so. It is an extra optional cost that provides technical documentation, hands-on lab experience, source samples, etc.
Yes, we publish hundreds and hundreds of pages of technical documentation and descriptions for our APIs and Web services.
Both. Our Symphony API is a proprietary protocol utilizing TCP/IP sockets and formatted strings for all of the commands, parameters, and return values. Our Web services are implemented with both SOAP and REST.
All APIs and Web services can modify data and also re-trieve read-only data.
The Symphony APIs (proprietary protocol) provide access to 100% of the back end Symphony functionality. Our own client applications utilize this protocol and these APIs. The Symphony Web Service is architected to be more modular. We are focusing extensive research and design effort into grouping together related Web service calls into a Web service and then providing multiple Web services (WSDLs) that provide more meaningful functional separation. These individual Web services provide a true SOA. The Enterprise Discovery Platform Web services consist of 10 distinct services with our release of Enterprise V3. The Enterprise patron user interface and the Enterprise administrative user interface utilize these 10 Web services exclusively. These are the same Web services we'll release to our customers.
The following picture [see figure 9] shows this architecture.
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Yes.
Yes.
Yes.
Yes.
Yes, we can retrieve vendor records and also have customers who have used our API to synchronize and external ERP with the records in the Symphony database.
Yes, we can retrieve vendor records and also have customers who have used our API to synchronize and external ERP with the records in the Symphony database.
We've had numerous customers utilize our APIs to write client applications and also use scripting tools to automate their various unique business practices.
A true SOA provides distinct services that are well defined, documented, and easy to use. With our new Web services and architecture, development tools can consume our WSDLs and create stub implementations to our services within minutes. We are now soliciting the help of our customer base, vendors, and others thru our Strategic Partner Program. The partners will be helping us define additional services and also to enhance our existing services. Our Enterprise V3 product was 100% written based on the Discovery Web Services. We spent a tremendous amount of time designing these services with SOA in mind.
As mentioned above, direct database access is available to our Horizon/Dynix customers. Direct database access is also a possibility with our Symphony product depending on the licensing arrangement with the customer.
No responses were received from libraries using SirsiDynix reflecting their use of APIs or Web services.
Talis, a library automation company based in Birmingham, United Kingdom, offers the Talis Library Management Suite (LMS), used exclusively in the United Kingdom. While the company focuses its business activities primarily in the United Kingdom, it has been a proponent of the service-oriented architecture and semantic Web technologies to a much wider audience. Representatives from Talis have been actively involved in conferences and at other venues outside the United Kingdom, especially in the United States, promoting Web 2.0 technologies, SOA, and the semantic Web. The company has been involved in providing open source tools while it continues to license proprietary software.
Talis
Alto, the company's primary integrated library system (or library management system in UK parlance) has been adopted primarily by public and academic libraries. The Alto automation system has evolved steadily over a long history of development. While Alto itself was created prior to the age of APIs, Web services, and SOA, the company has developed a strategy of creating integration products that layer APIs in the form of Web services onto existing traditional products.
In recent years, Talis has increasingly defined its technology strategy around the service-oriented architecture. The company continues to develop and support its traditional products and services, but has produced a new set of products that rely on SOA to connect library products with other institutional technology infrastructure components.
The LMS marketplace in the United Kingdom, where Talis does business, presents very limited opportunities for major new sales. This finite body of libraries offers only a handful of LMS procurements each year. Given these limitations, Talis supplements its efforts on traditional library software development with the creation of an SOA framework that can be used in the creation of integration products. Within the library market, these tools might provide interoperability between Alto and the business systems of the local authorities or a university. Ambitiously, Talis also sees its integration products finding use with its competitors' LMS products. Taken more broadly, Talis sees its SOA framework as having the capability to address other business scenarios where interoperability can be accomplished through Web services.
As noted below, Talis offers a set of licensed, commercial quality products as modules of a broader platform called Keystone. Talis is also involved in a project called Jangle, a specification of a middleware layer that can be applied to any ILS to expose a standard set of services through the Atom Publishing Protocol. Some open source implementations have been built around the Jangle specification. The basic idea involves building a core middleware layer that can be associated with any ILS in order to provide a standard set of services as Atom feeds. The key to implementing Jangle involves creating a connector between the proprietary or idiosyncratic APIs of any given ILS to the Jangle core. Talis staff have been involved in the creation of the Jangle specification and in open source projects to implement it. Yet the company does not assert ownership of the project, but rather promotes involvement of a broader community of open source developers. Jangle, for example, has been positioned as one of the methods for providing connections between the open source VuFind discovery interface and an ILS.
Jangle
Author's Note: Talis did not provide direct answers to the questions, but submitted a draft of a white paper that addresses the topic. Excerpts of this paper have been selected in response to the survey questions.
“Talis SOA is a continuously evolving architecture which is the technical engine behind three commercial areas.
“Talis Keystone is a licensed product with a central middleware and a series of bolt on modules that can be activated as required, depending on the business requirements of the library service. This gives customers choice and flexibility to create the integration solutions that they require, rather than imposing a suite of solutions which may not be entirely relevant. As well as the middleware license, each module also has a license fee. Talis Connect Services has a similar business model to Talis Keystone; however, Talis Local Data Services is part of the Talis Alto (Library Management System) subscription.”17
Author's note: Information both from Talis and customer sites indicates that the company provides extensive documentation for its APIs. Customer comments indicate that only licensed sites receive access to that documentation.
“The Talis SOA architecture is a standalone appliance which is designed with the principles of componentisation, reusability, interoperability, orchestration and loose coupling at its core. Over time, the use of SOAP based web services has been fully replaced with a growing portfolio of approximately seventy RESTful web services in various functional areas. Based upon the Java platform and on open standards such as XML and http the web services have enabled developers in libraries, in other institutional departments and in third party suppliers to easily integrate their solutions with their library management system.”18
Author's note: The APIs described in the white paper include ones that involve transactions that modify library data as well as those that read and report data.
“The Talis SOA architecture is a standalone appliance which is designed with the principles of componentisation, reusability, interoperability, orchestration and loose coupling at its core. Over time, the use of SOAP based web services has been fully replaced with a growing portfolio of approximately seventy RESTful web services in various functional areas. Based upon the Java platform and on open standards such as XML and http the web services have enabled developers in libraries, in other institutional departments and in third party suppliers to easily integrate their solutions with their library management system.”19
Author's note: Appendix B of the white paper provides an inventory of the Web services offered by Talis. Business areas addressed include MyAccount, Finance, e-pay, borrower services, circulation, loan services, charge services, message services, item services, and system services.20
Author's note: Talis describes several organizations that have purchased its integration components:
A systems manager in a library that uses Talis Alto and Keystone offers some perspective of the Talis approach to APIs:
VTLS, based in Blacksburg, Virginia, offers the Virtua ILS, which was initially introduced around 1998. One of the longest standing companies in the industry, VTLS has been in continuous operation since 1974.
VTLS
A diverse group of libraries have implemented the Virtua ILS, including academic, public, national, and many regional consortia. The customer base of libraries using Virtua is internationally diverse, including the United States, Europe, Asia, Australia, the Middle East, South Asia, and many others. Especially noteworthy among its clientele is the Queens Borough Public Library, the busiest and one of the largest public libraries in the United States.
The company has recently announced Chamo, a new public interface for Virtua based on the open source Drupal extensible content management system. One of the characteristics of Chamo that VTLS emphasizes is an architecture that directly accesses the Oracle database API rather than functioning through the Virtua server application.
VTLS serves many libraries with very complex automation needs and performs a great deal of custom development of its systems. This niche of the library automation arena expects more than off-the-shelf functionality, making support for APIs especially vital.
Both APIs and database views to support special needs are available to customers. SOAP is used in VITAL; Chamo's API is a simple XML over http service. It will support SOAP in the next release.
Database views are free. APIs are licensed to customers that license the primary product (Virtua or VITAL).
Yes, APIs are documented, but available only to customers with an active license.
SOAP is supported in VITAL only. (Note from VTLS: VITAL is VTLS's institutional repository product based on Fedora.)
The APIs allow users to place and modify patron requests and perform renewals. The rest is read-only: search, availability information, and patron information including fines, checkouts, and requests. If users choose to work with Z39.50 and its extensions, then they can access or modify any and all data within the database.
The API is part of the main Chamo application, a Java EE servlet. Since the API is simple XML over http, it uses the same servlet technology as the standard Web interface.
Are your APIs able to perform the following types of transactions? (I've provided some examples of some specific activities that libraries may want to accomplish, but there may be others that you support that you may want to mention.)
Single API call to retrieve all bibliographic data including the full record in MARCXML format, and all item information including availability, and serials issues. There are no smaller or more granular operations. (Our API design is focused on simplicity.)
API calls that update item information:
Yes—see above.
There are two API calls here:
This is part of the previous API. There are no APIs for this data except the patron-related ones.
Yes, but only available through Edifact.
No, not supported.
SOA is implemented in full scale add-on products like FRBR SaaS.
No responses were received from libraries using VTLS reflecting their use of APIs or Web services.
|
STATEMENT OF OWNERSHIP AND MANAGEMENT
Library Technology Reports, Publication No. 024-897, is published 8 times per year by the American Library Association, 50 E. Huron Street, Chicago, IL 60611-2795. It is the official publication of ALA Techsource, a unit of the publishing department of the ALA. Annual subscription price, $325. American Library Association, 50 E. Huron Street, Chicago, IL 60611-2795, owner and publisher; Dan Freeman, 50 East Huron Street, Chicago, IL 60611-2795, editor. Periodicals postage paid at Chicago, Illinois, and additional mailing offices. Printed in U.S.A. As a nonprofit organization authorized to mail at special rates (Section 423-12, Domestic Mail Manual), the purpose, function, and nonprofit status of this organization and the exempt status for federal income tax purposes has not changed during the preceding twelve months.
EXTENT AND NATURE OF CIRCULATION
(“Average” figures denote the average number of copies printed each issue during the previous twelve months. “Actual” figures denote actual numbers of copies of single issue published nearest to the filing date—August/September 2009 issue.) Total number of copies printed: Average, 1,391; Actual, 1,339. Sales through dealers and carriers, street vendors, counter sales, and other paid distribution outside USPS: Average: 110; Actual: 105. Total paid and/or requested circulation: Average, 796; Actual, 759. Free distribution by mail, carrier, or other means, samples, complimentary and other free copies: Average, 0; Actual, 0. Total distribution: Average, 1,006; Actual, 961. Copies not distributed: office use, leftover, unaccounted, spoiled after printing: Average, 385; Actual, 378. Total (previous two entries): Average, 1,391; Actual, 1,339. |
| 1. | Marshall Breeding, “Ex Libris Sets Strategic Course on Open Systems,” Smart Libraries Newsletter, Aug. 2008; “Ex Libris Launches Open-Platform Program, Reaffirming Its Commitment to Openness as a Core Company Value,” Ex Libris press release, June 29, 2008, www.librarytechnology.org/ltg-displaytext.pl?RC=13372 (accessed Oct. 14, 2009). |
| 2. | Tamar Sedeh, telephone interview by the author, Aug. 13, 2009. |
| 3. | Tamar Sadeh, e-mail and telephone interview by the author, including a Web demo of the EL Commons, Aug. 13, 2009. |
| 4. | Ken Mitchell, e-mail interview by the author, Aug. 31, 2009. |
| 5. | Mike Curtis, e-mail interview by the author, Aug. 24, 2009. |
| 6. | Mike Rogers, e-mail interview by the author, Aug. 20, 2009. |
| 7. | ILS manager at National Library of Australia, e-mail interview by the author, July 27, 2009. |
| 8. | Brad LaJeunesse, president, Equinox Software, e-mail interview by the author, July 26, 2009. |
| 9. | Gar Sydnor, senior vice president, The Library Corporation, e-mail interview by the author, Aug. 6, 2009. |
| 10. | Gene Shimshock, vice president of marketing, Innovative Interfaces, e-mail interview by the author, Aug. 13, 2009. |
| 11. | Ibid. |
| 12. | Innovative Interfaces, “At University of Lethbridge (Canada), Machines Talk When People Talk: Patron Web Services Keeps Library in Synch with Campus,”INN>Touch 22, no. 4 (March 2009): 4, www.iii.com/news/it/it_2009_03.pdf. |
| 13. | Joshua Ferraro, CEO, LibLime, e-mail interview by the author, Aug. 18, 2009. |
| 14. | Kathryn Miller, director of marketing, Polaris, e-mail interview by the author, Aug. 14, 2009. |
| 15. | Talin Bingham, chief technical officer, SirsiDynix, e-mail interview by the author, Aug. 28, 2009. |
| 16. | Andy Latham, “Opening the Wall of the Library: SOA and Web Services at Talis” (Aug. 2009): 3, www.talis.com/integration/documents/talis_SOA_white_paper_august_2009.pdf (accessed Aug. 30, 2009). |
| 17. | Ibid., 4. |
| 18. | Ibid. |
| 19. | Ibid. |
| 20. | Ibid, 21–23. |
| 21. | Ibid, 20; see also “Students at Queen's University Belfast Can Now Pay Their Library Fine Online with Debit and Credit Cards,” Talis press release, Jan. 10, 2008, www.librarytechnology.org/ltg-displaytext.pl?RC=12971 (accessed Oct. 1, 2009). |
| 22. | “Online Payments for Students at the University of Wolverhampton, ” Talis press release, Dec. 4, 2008, www.librarytechnology.org/ltg-displaytext.pl?RC=13696 (accessed Oct. 1, 2009). |
| 23. | Latham, “Opening the Wall,” 5. |
| 24. | Anonymous [a systems manager in a library that uses Talis Alto and Keystone], e-mail interview by the author, Sept. 1, 2009. |
| 25. | Vinod Chachra, president and CEO, VTLS, e-mail interview by the author, Sept. 1, 2009. |
[Figure ID: fig7] |
Figure 7
Broome Community College replacement OPAC for Aleph 500. |
[Figure ID: fig8] |
Figure 8
Details of data elements involved in Innovative Interfaces Patron Update Web Service. |
[Figure ID: fig9] |
Figure 9
SirsiDynix technical architecture. |
Article Categories:
|
|