An MXM-based application for sharing protected content

June 30th, 2009

Authors: Filippo Chiariglione ( and Angelo Difino (

Abstract: By using a client-side MXM application embedded in a Firefox plug-in, users can protect their content items, import their contacts from existing social communities and grant selected contacts rights to access their content. The same application can also be used to access protected content created by other contacts according to the rights they have been granted. A server-side MXM application provides a number of services to its subscribers such as issuing licenses, providing digital certificates, storing and delivering protected content, stats and reports, etc.

MXM Engines:

  • Mpeg21FileEngine for creating and parsing MPEG-21 files containing the Digital Item and the resources;
  • DIEngine for creating and parsing MPEG-21 Digital Items representing content items;
  • MetadataEngine for creating and parsing the metadata describing content;
  • MediaFrameworkEngine for protecting (creation side) and rendering (access side) content;
  • RELEngine for creating and parsing licenses granting rights to other users;
  • IPMPEngine for creating and parsing IPMP information for a content item;
  • SecurityEngine providing applications with security functionalities such as key and certificate management, secure storage of information, etc
  • ContentProtocolEngine and LicenseProtocolEngine for performing a number of protocols for identifying, storing and accessing content items and licenses between the client and the server.

Implementation Details:

  • Programming Language: C++ (client side) and Java (server side).
  • External libraries:
    • VLC in the client side (;
    • xerces-c ( and xsd codesynthesis ( for marshalling/unmarshalling XML structures in C++, JAXB ( for the same purpose in Java.
    • OpenSSL and Trousers for the SecurityEngine
    • Apache Axis ( for web services support
    • Firefox
    • …and many more