Skip to content
L. Le Meur edited this page Nov 15, 2019 · 25 revisions

Welcome to the readium-lcp-server wiki!

In this Wiki, you'll find some How To guidelines and the specification of the REST API of the License server and the License Status server.

Daily communication will be handled via a "lcp" channel on the Readium Slack (https://readium.slack.com). You can get an invite for the Readium Slack using http://readium-slack.herokuapp.com/ , and the lcp channel is public.

Global Architecture

The open-source server software is split in three parts:

  • Encryption tool: a command line utility for content encryption
  • License Server: a backend server module for LCP license generation and content identification service
  • License Status Server: a frontend server module for LCP license status generation, device activation, lending return or renewal.

In order to facilitate testing, we also provide a Test frontend server module and its Angular.js client, which mimic what a commercial frontend should implement in order to handle ebook acquisitions and license generation requests.

How to integrate these modules?

  1. Install the servers: the installation steps and server configuration are listed in the home page of this project.

  2. Start the License Server and License Status Server.

  3. Integrate these servers into your distribution solution, a.k.a the Provider Frontend.

  4. Encrypt your ebooks

You can use the encryption tool provided as open-source as a command line tool, or embed it in any workflow you like. Be careful about the content identifier you pass to the encryption tool, as it will be the key you'll use later to generate licenses.

Interactions between the different modules

The following diagram illustrates the interactions between the different modules of a Readium LCP server side solution.

The Provider Frontend and License Status Server must be accessible from the Web. But the License Server must be hidden from the Web, only accessible from the Provider Frontend and Encryption Tool with proper authentication.

The Provider Frontend is your ebook distribution system. It must be able to:

  1. request from the License Server the generation of a license, using a content identifier as a key, when a user acquires a publication.
  2. request from the License Server an existing license, using the license identifier as a key, when a client reading system want to fetch an updated license.
  3. act as a reverse-proxy for access to encrypted content, allowing the download of such content by reading systems.

The Provider Frontend may also request from the License Server the generation of a protected publication (with a license embedded in the content) but this is not a recommended practice as it invalidates any effort to cache the encrypted content on the Web.

Acquire a publication, get back a license

LCP server process diagram

To get more details about the interactions shown in this process diagram, you'll find useful to check the associated sequence diagrams.

Detailed documentation

Just follow the links on the right column menu.

Specifications

Note also the the specification of Readium LCP and Readium License Status Document are found on the Readium.org website.