Open Publication Distribution System (OPDS)
The Open Publication Distribution System (OPDS) is an application of the Atom Syndication Format intended to enable content creators and distributors to distribute digital books via a simple catalog format. This format is designed to work interchangeably across multiple desktop and device software programs.
How we use OPDS
The Library Simplified application utilizes OPDS as the basis for all machine to machine communication.
Server to Client
Server to end user OPDS client applications (tablets, smartphones, PCs) for presentation of library catalog and content host acquisition APIs and endpoints.
Server to Server
Inter-server communication between lirbary simplified servers for meta-data wrangler, Circulation Manager and Open Access Content Server.
Distributor to Library
Library Simplified interoperability with the commercial digital publishing industry and content distributors who use OPDS/ODL to interface with retailer and libraries.
OPDS and extension to OPDS such as ODL allow the Library Simplified applications to establish a common standard for interoperability whether interfacing with applications, or the commercial ebook market. It provides the flexibility to operate in a mixed vendor environment without expensive integration and implementation costs.
While the US commercial and library ebook market platform providers and distributors are vertically integrated, OPDS represents a shift to a horizontally integrated market to expand access to content and the broader, global ebook market. In collaboration with the Readium Foundation, commercial ebooks distributors, and the OPDS working group, the Library Simplified product team chose to extend the industry OPDS protocol (ver 1.1) to support library lending (ver 1.2). We are also working to implement the Open Distribution Libraries (ODL) specification and Authentication for OPDS which formally extend the OPDS protocol to support horizontal integration of library and retail ebooks services with one another and the ebook distributors that support them. There are two common ways to hook a service user to a service provider over the internet. To provide context on why we are starting with a Protocol vs an API consider the folwoing:
Application Programing Interface (API)
- An API has many software libraries and depending on the vendor, can change or be deprecated without notice simply becasue vendor's front or backend software functionality or architecture changed. This can lead to brittle integrations and service disruption.
- An API provides a software library that one must link with to use the services. This tightly binds the client and server together.
- An API tends to invade all code layers and creates strong dependencies between layers becasue of the external code dependencies. It also tends to be simple initially implement and use.
- HyperTextTransferProtocol (HTTP), FileTransferProtocol (FTP), ATOM, etc., are examples of protocols. They tend to evolve over time and persist. They are stable.
- A protocol defines a standard request response layer and a common transport. Thus it is sw architecture independent.
- Nothing other than the standard binds the client and server together. This provides resiliancy and flexibility.
While protocols are more complex to use as they are less direct and take a lot of serializing/deserializing/dispatching type logic, they are more flexible for they allow independent SW development and loosely coupled system architectures. The use of open protocols such as HTTP and HTML powered the growth of the internet and the growth of the Word Wide Web by allowing anyone to independently publish and distribute content online reliably and interoperably. We beleive, OPDS offers the same potential for growth and interoperability for ebook distribution.
OPDS Protocols and Extensions
OPDS 1.2 Features
The OPDS 1.2 Features document is drafted in the context of the formally released OPDS version 1.1 specification. As such it identifies the extensions to the specification in conjucntion with the functonality and features it seeks to provide to support the library ledning uses cases.
- Describe Availability
- Holds List and Copies Available
- New Attributes for Other Media Types
- Responsive Images
- Collections In Acquisition Feeds
- Support for Templated Links
- Providing a Type to a Facet Group
- New Entry Elements for Rating and Number of Downloads
- Specifying Default Facets and Default Facet Group
- New Relationship for Wishlist
- New Relationship for Abandoning a Book
- OPDS Profiles
- Re-organize the Specification Around Navigation/Acquisition
- Make Media Parameters Mandatory
Open Distribution Libraries (ODL)
In order to distribute digital publications from multiple sources, a library needs to be able to easily harvest metadata, check the status and lend such publications to patrons.
Open Distribution to Libraries 1.0 defines a standard way to:
- Distribute metadata about a publication
- provide the rights and terms associated to each copy that the library acquired
- Check the status of each copy
- Lend a copy of a digital publication
- Check the status of that loan
Authentication for OPDS Catalogs (1.0)
In order to distribute digital publications from libraries via OPDS users must be authorized to access the the content. Unfortinately there are a multitude of means and methods to do so and most are propriatary to a particular library's ILS vendors. To resolve this Authentication for OPDS attempts to provide a reference specification for doing so in the context of a OPDS based distribution.
Authentication for OPDS Catalogs (1.0), defines a standard way for OPDS Catalog providers and clients to:
- Provide relevant information for clients to display an authentication page
- Expose how a client can authenticate using various Authentication Flows
The primary objective of this specification is to allow access to specific feeds (such as bookshelf and subscriptions) along with support for interactions that require authentication (specific acquisition links such as buy, borrow and subscribe).