The License service has sole responsibility of negotiating all client requests for DRM licences ( of any DRM scheme ). It is DRM aware as it needs to understand which parties to negotiate with in order to complete an exchange. The service will negotiate with supported DRM schemes via DRM scheme specific adapters. These adapters may also interact with services external to the license service in order to fulfil their contract. This may be required when the DRM Scheme implementation is platform dependent (PlayReady) or in order to use an existing service (Google Widevine License Service).

Logical Architecture Diagram

HLA

Extensibility

In it’s simplest form, extending the service to support an additional DRM scheme is as simple as adding a new adapter to the existing service. With the right test coverage this will then be automatically deployed by the continuous delivery process.

If an alternative DRM scheme is constrained to a specific operational environment a microservice can be created on the required stack without costly migration of functionality as the business logic for license acquisition is retained in the license service.

Scalability

The licensing function has multiple scaling points. To increase throughput the license service can be automatically scaled. Alternatively the DRM scheme specific services can scale independently when under load.