The Digital Media Project
Source GA08
Date 2005/10/07
Title Approved Document No. 7, Draft 3.0 –
No. 0547/GA08
Technical Specification: Reference Software
Approved Document No. 7, Draft 3.0
Technical Specification: Reference Software
NOTICE
Use of the technologies described in this DMP Approved Document may infringe patents,
copyrights or intellectual property rights of DMP Members or non-members. Under no
circumstance shall DMP be held responsible for identifying any or all such rights
Neither DMP nor any of its Members accept any responsibility whatsoever arising out of or in
connection with the use of this DMP Approved Document and the information contained herein
for damages or liability, direct or consequential.
This DMP Approved Document supersedes all previous versions and is subject to change
without notice.
DMP is a non profit organisation registered in accordance to the laws of Switzerland.
Copyright © 2005 – The Digital Media Project
Table of Contents
Table of Contents ............................................................................................................................ 2
1
Introduction ............................................................................................................................. 3
2
Software policy ....................................................................................................................... 3
3
Reference Software – Tools .................................................................................................. 17
4
Reference software – Models .................................................................................................. 3
4.1
Content Creation Device ................................................................................................. 3
4.1.1
Architectural Model ................................................................................................ 3
4.1.2
Communication Analysis ........................................................................................ 4
4.2
eXternal Device ............................................................................................................... 6
4.2.1
Architectural Model ................................................................................................ 6
4.2.2
Communication Analysis ........................................................................................ 7
4.3
Content Consumption Device ......................................................................................... 6
4.3.1
Architectural Model ................................................................................................ 9
4.3.2
Communication Analysis ........................................................................................ 9
4.4
Domain Manager ........................................................................................................... 11
4.5
License Provider ............................................................................................................ 11
Annex A – The BSD License ........................................................................................................ 13
Annex B – Copyright disclaimer ................................................................................................... 15
Annex C – CVS ............................................................................................................................. 16
2
1
Introduction
2
Software policy
Currently DMP considers 4 types of sources for its Technical Specifications to each of which it
applies a specific reference software policy
Technology or specification
Technology that has been declared by the proponent
to be unencumbered by IP
Technology for which the proponent has declared
 to be possibly/definitely encumbered by IP
 his availability to license the IP at RAND terms
Specification developed by another body with
reference software.
Specification developed by another body without
reference software.
3
Reference software
License according to Annex A
License according to Annex B
Existing license, if compatible with the
licenses in Annex A or Annex B
License of Annex A or, if this is not
possible, license in Annex B
Reference software – Models
The Reference software should enable the implementation of the following Devices:
1.
2.
3.
4.
5.
6.
7.
8.
Content Creation Device (CCD)
eXternal Device (XD)
Content Consumption Device (PAV)
Content Consumption Device (SAV)
Content Identification Device
Content Provider Device
License Provider Device
Device Identification Device
Architectural Models have been developed for
1. Content Creation Device (CCD)
2. eXternal Device (XD)
3. Content Consumption Device (PAV)
4. Content Consumption Device (SAV)
For each of the three Models the document analyses which modules implementing a Tool talk to
which modules and how (secure communication or not).
3.1 Content Creation Device
3.1.1
Architectural Model
3
Fig. 1 – Architecture Module of Content Creation Device
Note that blue boxes represent modules that are internal to the Device and green boxes modules
that are external to the Device. Red boxes represent storage. Only some of the more obvious
connections between modules are indicated.
3.1.2 Walkthrough
Creator activates an application on his CCD. The application shows a user interface displaying a
series of steps that the Creator will follow:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Selects the DCI from a number of available DCI templates
Gets Resources from outside the CCD
Obtains a Resource Identifier
Has the option to Encrypt Resources
Fills the Metadata template for each Resource
Has the option to obtain Metadata Identifier
Selects a License from a number of available License templates
Obtains a License Identifier
Has the option to Store the License on a License Provider Device or to Bundle the License
within the DCI
10. Obtains a Content Identifier
11. Creates a DCF
12. Stores the DCF on a Content Provider Device
3.1.3
Module list
Module
name
Get Resource
Description
Gets Resources (e.g. audio and video as file) in the CCD
4
Encrypt
Resource
Identify
Resource
Create
Metadata
Identify
Resource
Create
License
Identify
License
Create DCI
Identify
Content
Create DCF
Store Content
User
Interface
DRM Timer
SAC
Binary XML
Parser
Storage
Manager
Storage
3.1.4
Receives a clear text Resource and provides an Encrypted Resource
Request an Identifier to the Resource Identification Device of a Registration
Agency
Provides a user interface to input Resource Descriptions
Request an Identifier to the Metadata Identification Device of a Registration
Agency
Provides a user interface to select and input data to Create a License
Request an Identifier to the License Identification Device of a Registration
Agency
Provides a user interface to select a DCI template (e.g. for music, for
documentaries etc.) and input data (e.g. Content Elements just Created) to
Create the DCI
Request an Identifier to the Content Identification Device of a Registration
Agency
Create DCF from DCI
Upload DCF to Content Provider Device
Provides user interface for the different steps of Content Creation
Accurate time code generation for use in Create License
Secure Authenticated Channel (between modules)
Parses binary XML
Handles requests to Store Data to and retrieve Data from storage
Memory area Storing Data
Communication Analysis
CCD Module
Get Resource




Identify Resource 


Encrypt Resource 


Create Metadata 

Identify Metadata 


Communicates with
User Interface
(Resource source)
Encrypt Resource
Create DCF
User Interface
Get Resource
Resource Identification Device
User Interface
Get Resource
Create DCF
User Interface
Create DCI
User Interface
Create Metadata
Metadata Identification Device
5
Create License
Identify License
Store License
Create DCI
Identify Content
Create DCF
Store Content
User Interface







































User Interface
DRM Timer
Identify License
Create DCI
Store Licence
User Interface
Create License
License Identification Device
User Interface
Create License
License Provider Device
User Interface
Get Resource
Create Metadata
Create License
Identify Content
Create DCF
Storage Manager
User Interface
Create DCI
Content Identification Device
User Interface
Create DCI
Encrypt Resources
Storage Manager
User Interface
Create DCF
Content Provider Device
Get Resources
Identify Resource
Encrypt Resources
Create Metadata
Identify Metadata
Create License
Identify License
Create DCI
Identify Content
Create DCF
Store Content
3.2 eXternal Device
3.2.1
Architectural Model
6
Fig. 2 – Architecture Module of External Device
Note that blue boxes represent modules that are internal to the Device and green boxes modules
that are external to the Device. Red boxes represent storage. Only some of the more obvious
connections between modules are indicated.
3.2.2 Walkthrough
Get Content
1. End User connects his XD to a Delivery System, e.g. Memory module, the Internet or a
Broadcast channel
2. End User activates a browser
3. End User selects the Service
4. End User select the Content (without a License Bundled within it)
5. End User Stores the selected Content in the XD
6. End User plugs his PAV in the XD
7. End User Accesses the License
8. XD Bundles the License within the Content
3.2.3
Module list
Module name
User Interface
Access Content
Access License
Create DCI
Create DCF
Description
Provides user interface for the different steps of Content and License
Access to XD, internal Storage and Delivery to PAV
Gets Content from Content Provider Device or external Storage
(without License Bundled within)
Gets License from License Provider Device
Takes Accessed DCI and License, Creates new DCI with new Identifier
Makes a DCF out of the Created DCI
7
XD to PAV
Communication
SAC
Binary XML Encoder
Storage Manager
Storage
3.2.4
Request PAV Identifier, Copy/Move selected DCF to PAV and request
Use Data
Secure Authenticated Channel (between modules)
Converts XML documents to binary format
Handles requests to Store Data to and retrieve Data from storage
Memory area Storing Data
Communication Analysis
CCD Module
Manage Domain




Access Content





Access License




Create DCI







Create DCF



Parse License

XD to PAV Communication 





User Interface





Storage Manager


Communicates with
User Interface (SAC for UN/PW)
Manage Domain Device
XD to PAV Communication (SAC)
Storage Manager (SAC)
User Interface
Content Provider Device
Create DCI
XD to PAV Communication (SAC)
Storage Manager (temporary storage) (SAC)
User Interface
License Provider Server
Create DCI (SAC)
XD to PAV Communication
User Interface
Parse License (SAC)
DRM Timer (SAC)
Access Content
Storage Manager
Access License (SAC)
Create DCF (SAC)
Create DCI
Storage Manager (SAC)
XD to PAV Communication (SAC)
Create DCI (SAC)
User Interface
Create DCF (SAC)
Storage Manager (SAC)
Manage Domain (SAC)
Access Content (SAC)
Access License (SAC)
Manage Domain (SAC)
Access Content
Access License
Create DCI
XD to PAV Communication
Manage Domain (SAC)
Access Content (SAC)
8


Create DCF (SAC)
XD to PAV Communication (SAC)
3.3 Content Consumption Device (PAV)
3.3.1
Architectural Model
Fig. 3 – Architectural Model of Consumption Device (PAV)
Note that blue boxes represent modules that are internal to the Device and green boxes modules
that are external to the Device. Red boxes represent storage. Only some of the more obvious
connections between modules are indicated.
3.3.2 Walkthrough
Get Content
1.
2.
3.
4.
5.
End User plugs his PAV to the XD
End User activates an application on the XD that connects the XD to the PAV
The application displays a list of the DCFs on the XD that are available for Use on the PAV
End User selects the DCFs of his liking
End User activates Move/Copy of those DCFs from XD to the PAV Secure Storage Module
Use Content
1. End User activates the User Interface
2. User Interface
a. Reads the files in the Secure Storage
9
b. For each file activates Parse DCF and Parse DCI to get the necessary Metadata to
create a user-friendly list
3. End User selects DCF
4. Parse DCF Parses the DCF
5. Parse DCF delivers the DCI to Parse DCI
6. Parse DCI extracts
a. License
b. Metadata
c. Resource
7. Parse License
a. Interprets Rights Expression
b. Extracts DRM Information
8. User Interface dispays the list of Functions that can be executed and Metadata
9. User selects the Function
10. Decrypt Resource
a. Decrypts the Resources
11. Decode & Render
a. Decodes the Resources
b. Stores the Resources on the Temporary Secure Storage
c. Delivers them to Presentation Device
3.3.3
Module list
Module name
User Interface
PAV to XD
Communication
Secure Storage
Manager
Secure Storage
Parse DCF
Parse DCI
Process License
Decrypt Resource
Decode & Render
Temporary Secure
Storage
3.3.4
Description
Provides user interface for selecting a DCF and selecting the Functions to
be executed on the selected DCF
Provides communication capabilities for the XD to Copy/Move DCFs to
the PAV and for the XD to obtain from the PAV its Device Identifier and
the Use Data
Handles requests to Store Data to and retrieve Data from a Secure Storage
Memory area for Storing Data securely
Parses DCFs to Deliver the Parsed Data to Parse DCI
Parses DCIs to Deliver License, Metadata and Resources to the
appropriate modules
Parses Licenses to Deliver Rights Expressions to User Interface, receives
and checks for consistency with the Rights Expressions Users inputs,
maintain Content Use Data and Delivers Keys to Decrypt
Decrypts Resources
Converts Resource to a form suitable for Presentation and Renders
Memory area for Storing Decrypted Resources that are frequently used
Communication Analysis
CCD Module
PAV to XD Communication 
Communicates with
XD
10
Parse DCF
Parse DCI
Process License
Decrypt Resource
Decode & Render
User Interface





















SStorage Manager
SStorage Manager
Parse DCI
Parse DCF
Process License
Storage Manager (Encrypted Resource and Metadata)
Binary XML Parser
Parse DCI (SAC)
SStorage (Use Data) (SAC)
DRM Timer (SAC)
Decrypt Resource
Binary XML Parser
Process License (SAC)
Storage Manager
Decode & Render
Decrypt Resource (SAC)
Temporary Storage Manager (scrambling)
SStorage Manager
Parse DCF
Parse DCI
Process License (SAC)
3.4 Domain Manager
The following figure represents the “Manage Domain” module in the Domain Manager. It has to
be extended with other components
3.5 License Provider
The following figure represents the “Manage Domain” module in the License Provider. It has to
be extended with other components
11
12
Annex A– The BSD License
Copyright (c) 2005, DMP - Digital Media Project
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:



Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials provided
with the distribution.
Neither the name of the DMP - Digital Media Project nor the names of its contributors may
be used to endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The PHP License
version 3.0
Redistribution and use in source and binary forms, with or without modification, is
permitted provided that the following conditions are met:
1.
2.
3.
4.
5.
Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
The name "DMP – Digital Media Project" must not be used to endorse or promote products
derived from this software without prior written permission. For written permission, please
contact members@digital-media-project.org.
Products derived from this software may not be called "DMP – Digital Media Project", nor
may " DMP – Digital Media Project " appear in their name, without prior written permission
from members@digital-media-project.org. You may indicate that your software works in
conjunction with DMP by saying "Foo for DMP" instead of calling it "DMP Foo" or
"dmpfoo"
The DMP - Digital Media Project may publish revised and/or new versions of the license
from time to time. Each version will be given a distinguishing version number. Once
covered code has been published under a particular version of the license, you may always
13
6.
continue to use it under the terms of that version. You may also choose to use such covered
code under the terms of any subsequent version of the license published by the DMP Digital Media Project. No one other than the DMP - Digital Media Project has the right to
modify the terms applicable to covered code created under this License.
Redistributions of any form whatsoever must retain the following acknowledgment: "This
product includes DMP, freely available from <http://www.dmpf.org/>".
THIS SOFTWARE IS PROVIDED BY THE DMP DEVELOPMENT TEAM ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE DMP
DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------This software consists of voluntary contributions made by many individuals on behalf of the
DMP - Digital Media Project.
The DMP - Digital Media Project can be contacted via Email at group@php.net.
For more information on the DMP - Digital Media Project please see <http://www.dmpf.org>.
14
Annex B – Copyright disclaimer
If this is not possible to develop reference software with the license of Annex A, the reference
software should bear the following copyright disclaimer:
< DMP Approved Document > should be replaced by the appropriate DMP Approved
Document
<FN> = First Name, <LN> = Last name, <CN> = Company Name
"This software module was originally developed by <FN1> <LN1> (<CN1>) and edited by
<FN2> <LN2> (<CN2>), <FN3> <LN3> (<CN3>), … in the course of development of the
<DMP Approved Document>. This software module is an implementation of a part of one or
more < DMP Approved Document > tools. DMP gives users of the <DMP Approved
Document> free license to this software module or modifications thereof for use in products
claiming conformance to the < DMP Approved Document >. Those intending to use this
software module in products are advised that its use may infringe existing patents. The original
developer of this software module and his company, the subsequent editors and their companies,
and DMP have no liability for use of this software module or modifications thereof. Copyright is
not released for non < DMP Approved Document > conforming products. <CN1> retains full
right to use the code for its own purpose, assign or donate the code to a third party and to inhibit
third parties from using the code for non < DMP Approved Document > conforming products.
This copyright notice must be included in all copies or derivative works. Copyright © 199_".
You can access the CVS in two ways: using the appropriate CVS client tool (mandatory to get
and upload code), or via Web-browser (just to browse the repository).
15
Annex C – CVS
Username: dmp_guest
Password: dmpatad
1) To browse the CVS:
http://lablin2.adetti.iscte.pt/cgi-bin/viewcvs.cgi/ADETTI/DMP/
2) To get code use the appropriate CVS client tool e.g.
TortoiseCVS (for Windows only, but integrates nicely with the Windows Explorer) http://www.tortoisecvs.org
SmartCVS (in Java, for both Windows and Linux platforms) - http://www.smartcvs.com/
To use one of these tools you will need to configure the CVSROOT variable in a correct way.
CVSROOT = :pserver:dmp_guest@lablin2.adetti.iscte.pt:/home/cvs/DMP
3) To upload code, send it to: Carlos Serrão (carlos.serrao@iscte.pt)
16
Annex D – Reference Software – Tools
Currently DMP has Technical specifications for the following Tools. Reference software is
needed as indicated in the table below (bold means that software has been provided, italic means
that software has been promised):
Category
1 Represent
Tool
Status
1.1 Content
MPEG21 SW
MPEG21 SW
?
Hendry (ICU)
NCA
NCA
?
?
Sang-ug Kang
Sang-ug Kang
3.1 Content as
file
MPEG21 SW
Hendry (ICU)
4.1 Access
License
ADETTI
SW
Carlos Serrão
?
Carlos Serrão
1.2 Rights
Expressions
1.3 Represent
Keys
2
4
5
Content
License
Device
Domain
Package
Access
Authenticate
5.1 Authenticate
Device
6
7
Hendry (ICU)
Identify
2.1
2.2
2.3
2.4
3
Provider
Manage
6.1 Manage
Domain
JVC SW
Joji Naito (client)
Carlos Serrão (server)
7.1 Process:
Encrypt
7.2 Process:
Binarise XML
7.3 Process:
Parse
Openly
available
MPEG21 SW
MPEG21 SW
ftp://ftp.franken.de/pub/crypt/cryptlib/cl32.zip
Process
17
?
?