This section provides an overview of supported use cases.
Content Generation (URMS BackOffice-API)
This API provides services to register and encrypt e-books within the CGP environment. It can provide the eBook file, file metadata, and the content_url. The content_url is the web address for the third-party location where the encrypted book will be hosted, namely, the store or library.
After the CGP Packaging Process is complete, the web store or distributor can download the encrypted book. The CGP server provides the encrypted book with a Common Content ID (CCID), a unique identifier for the title. The web store or distributor is responsible for managing and distributing the CCID and for storing the encrypted book at the location identified by the content_url.
Store User Registration and De-registration (URMS Store-API)
The user registration process involves three steps.
- An end user must register with the book store/library and create an account. The web store then contacts the CGP Server and registers a unique user ID code for this user by generating by generating an authentication token via the Store-API (see “Store-API/Generate AuthToken”). The store or library can generate any sort of unique code to serve as a user ID for each user. The code is often based on the user’s name.
- The user logs in to the mobile app, using his or her newly acquired login credentials, and the authentication token is transferred from the web store to the mobile app. The CGP Server is not involved in this step.
- After the authentication token has been successfully transferred to the application, the URMS-SDK’s registerUser(authToken) function must be invoked. This function registers the user and device with the CGP Server. Make sure that the registerUser() function is only invoked once, when the app is used for the first time.
The URMS-SDK allows a client to register a mobile device for several user ID accounts, and these user IDs may be from different stores or libraries. For example, a user might have one user ID for Main Street Books, a local bookshop that offers titles online, and another for his or her public library. Or the user might have user IDs for several different bookstores, both local specialty stores and national retailers. If the user wanted to use his or her mobile device to borrow a book from the library, and that user was currently set up to access Main Street Books online, the user would need to switch to his or her library account. That’s because URMS only allows for one user ID to be active at a time. So after switching to the library account, the user’s app will only be able to display books available for borrowing from his or her local library.
Because the URMS SDK can only manage one user at a time, if a user wants to switch an account, that user must first de-register the existing account. Execute the Store User Deregistration function (using URMS SDK). This will delete all of the licenses, eBooks, and DRM metadata stored on the mobile device. We recommend that you set up your app to display a confirmation message before this step is completed.
Note, however, that URMS is set up to allow users to switch back and forth between user IDs very quickly. When an account is de-registered, URMS preserves the eBook files and data associated with that account. So when a user switches to a new account, the eBooks and licenses associated with that account are automatically restored, and made immediately available for the user to access.
Note that the reader app is personalized to a specific store or library, because it holds the store ID code specific to CGP.
Device Management (URMS Store-API)
Limitation on the Number of Devices
A store can place an arbitrary limit on the number of devices that a user can register for a single account. This can be used as a security precaution, so that a user cannot be associated with an excessive number of devices. For example, a store might set a limit of six mobile devices per user, and if a user decides to add a seventh device to an account, that user would be required to deactivate an existing device first. This limit prevents a user from registering dozens or even hundreds of devices for a single account with a store, and thus broadly sharing eBook content with many other people who have not paid for access to the content.
Device Management at Web Store
Use the URMS Store-API to:
- Retrieve a list of devices registered to a specific user and the de-registration of a device from web store or library (Store-API)
- Change the default device name to a more descriptive one
- De-register devices
Book Transactions (URMS Store-API and URMS-SDK)
Buy (URMS Store-API only)
The web store uses the URMS Store API to inform the CGP Server when any book is purchased, so that a user can be associated with the book. Then the CGP-Server issues a license to this user. If the user already has a bookshelf of titles that he or she owns and seeks to migrate to a URMS account, the URMS Store API can be used to associate the user account with the user’s current set of books.
Lend enables borrowing and lending of eBooks between registered Accounts. When an eBook is being borrowed, the lender’s account cannot access it, just as if a patron sought to borrow a book from a library that was already checked out. The web store manages all borrower accounts.
Lend API enables a user to lend his or her eBooks if the user specifies the account for the person to receive the eBook, and the lending period. Lend API is supported by SDK URMS SDK and Book Store API. The countdown of the lending period begins immediately after the API is called. The web store manages all borrower accounts.
A borrower may return the eBook he or she is borrowing from another account before the lending period expires. The borrower would select the eBook from either Store Client Application or from web store and by use the Return API(Store-API) provided by URMS SDK or Book Store API.
A lender can get back an eBook borrowed by another account by selecting the eBook from either Store Client Application or from web store and by using Get Back API (Store-API) provided by URMS SDK or Book Store API.
The eBook is returned immediately and the Lender can access it. When Get Available Books is executed, the status of license is updated in the borrower account, and the eBook is returned.
A user can give his or her eBooks to other users. The eBooks are deleted from the donor’s account and become no longer accessible. The web store manages all receiver accounts.
Synchronization with Web Store
The ownership is transferred only temporarily in case of a Lend, but is changed permanently when it is a Gift. Accordingly, the store must reflect the ownership of eBooks every time CGP executes a Gift.
A user can sell his or her eBooks to a web store, or to another person, through a secondary market. The sold eBooks are no longer accessible to the original owner. CGP only manages the status of the eBooks on sale. It does not provide any type of payment service. If a user-to-user utility needs a payment service, the web store can provide support for that payment service.
The Flea Market service is the reseller marketplace provided in the URMS sample app. End users can work with this Flea Market to sell eBooks that they own (“used” books) directly to other users. It illustrates one method that a web store could use to allow their customers to sell books they purchased earlier to other users.
Keep in mind that the Flea Market is only a feature in the sample store provided with the URMS SDK, used for evaluating and testing the product. The Flea Market is not provided within URMS itself. Individual web stores can set up a means to provide user-to-user sales of used books in a variety of ways.
When an eBook is sold, the CGP is notified. The ownership of the eBook is changed permanently and the eBook is no longer accessible to the original owner.
The sale of an eBook can be withdrawn. The eBook becomes once again accessible to the original owner.
Download Book (URMS-SDK)
Data related to eBooks, and DRM metadata, is downloaded using Download Book [SDK]. The CCID specifies which data should be downloaded. Since the downloaded eBook data is returned to Store Client Application, it is required to manage the file. The file, which is already encrypted, does not need to be uniquely encrypted to be stored. URMS SDK stores an eBook’s DRM metadata in the data region which SDK manages.
Decrypt Book (URMS-SDK)
Decrypt Book [SDK] decrypts the encrypted eBook data that is retrieved by the Download Book [SDK]. An eBook becomes accessible after Store Client Application passes the decrypted data to its corresponding Rendering Engine. License will be checked before decryption to confirm that the Account has permission to read the eBook.
Get Available Books (URMS-SDK)
Get Available Books retrieves information on the eBook owned by a user and updates the status of a license (including “deletion”). This is one of the most important processes in CGP and needs to be conducted by properly executing Get Available Books [SDK] in the development of a CGP Application. If a license is not updated, a user might be able to open an eBook after the designated lending period expires. Get Available Books [SDK] is used only in URMS SDK, and not in Web API.
Retrieval of eBook Information
Get Available Books retrieves the metadata of the eBook that is registered by BackOffice API. The metadata includes the URL for thumbnails, the URL for the data file, and other basic information, as well as a CCID on CGP and an eBook ID that the web store manages. CGP does not provide hosting service for the data file or thumbnail images, so web store must have that capability.
With this information, the Store Client Application can implement the Bookshelf for eBooks registered on CGP.
When Get Available Books [SDK] is executed, it checks the ownership of an eBook held by a user. Losing ownership of an eBook for reasons such as a lending period expiring causes the URMS SDK to delete the license of the target eBook from Store Client Application.
Common Bookshelf (URMS-SDK)
The Common Bookshelf SDK is a function that enables grouping of different accounts. The eBooks in all accounts in the same group can be accessible and opened with Store Client Application from any account in the group, regardless of the store involved. A common bookshelf is created by fetching a token from one account and then entering this token in another account. After all restrictions have been passed, the two bookshelves are immediately connected. The token can only be used once and is must be used before it expires. There is no server limitation on the number of tokens that can be generated. Common bookshelf invites (tokens) can be created by any member of the common bookshelf, not only by the initiator.
Please contact your Datalogics support representative for any questions or requests about the account grouping.
Identity of eBook
Two or more eBooks with the same contents, when they are purchased from different web stores, are treated as different eBooks in Common Bookshelf (CGP).
Invalidation of Common Bookshelf
An account can be unlinked from the common bookshelf. This separates the account from the Common Bookshelf, while leaving all other accounts untouched.
Response to Contents That Cannot Be Rendered
Common Bookshelf enables a Store Client Application to download and open eBooks that external web stores sell.
If a Store Client Application downloads types of eBooks that its rendering engine does not support, we recommend that the app be designed to display an error message for the user.
A maximum of five accounts can be connected to a common bookshelf.
However, if a store limits the number of devices a user can add to an account, this limit can be partly bypassed by accessing a common bookshelf. The user would be able to read books from one store in another store’s application, and using as many devices as that other store allows. For example, if a user has an account with one store that only allows six mobile devices for a customer account, and then accesses books on a common bookshelf with a second store that allows ten devices, the user would be permitted to use ten mobile devices for the common bookshelf.
Bookmark Sync (URMS-SDK)
Bookmark Sync provides the ability to synchronize bookmarks of the same eBook across multiple different devices.
CGP does not define Bookmark format. It depends on Store Client Applications (rendering engines).
Web Reading / Online Readers
For customers that offer web reading capabilities in their stores, URMS provides a variety of services and SDKs that facilitate the integration of URMS protected content in existing streaming services.
Entitlement Service (URMS Store API)
The URMS Entitlement Service lets a store decide if a specific book can be read by a user. Of course, a store could also keep track of entitlements by itself, but as URMS-SDK allows transactions directly between users, which can be completed without a store being involved (an owner of an eBook can lend or give a book to another user, for example), the URMS Entitlement Service can provide more accurate information if a user is currently eligible to read a certain book. The Entitlement API offers the following services:
- retrieving a list of books a user is allowed to read
- checking if a user is allowed to read a specific book
- retrieving permissions on a book, such as copying or printing, or finding out if the book is available for web reading
Decryption Service (URMS Store API/Store-SDK)
This service enables customers and web stores to decrypt Marlin content. This is especially valuable for stores that already have an existing book streaming service, but do not have access to plain book content. The decryption functionality is easily accessible through a Java library. The existing streaming infrastructure simply uses this library to (partially) decrypt books.