Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • type=Video parent=GenericFile
  • +Resolution
  • +Chapters
  • +Aspect_Ratio
  • +Director

Building File Manager Policy with Advanced Inheritance and Organization to support Growth

  • Core Elements will be Setup and Used
  • Great Divergence of metadata between Data Sets
  • Need to easily add new unknown Data Sets in the Future
  • Separation of Concerns (more than one person can update policy)
  • The filemanager.properties file within the ./etc/ directory will need to include paths to all policy files, or the file manager will not pick them up.
  • Virtual Product Types will be used
VIRTUAL vs. STANDARD Product Types

Before diving into this example we should take a moment to explain the difference between a VIRTUAL and STANDARD Product Type.
Virtual Product Types are only used for grouping and organizing metadata elements to support inheritance. These Product Types ARE NOT declared within a product-types.xml and they DO NOT have a MetExtractor associated with them.
Standard Product Types on the other hand MUST BE declared in product-types.xml and MetExtractors can be associated.

Example: Now the Media catalog is being updated by 5 different vendors. At the minimum all vendors will include a core set of metadata about ANY file they want to add into the catalog (this will be the CAS.DEFAULTS), but in addition to the defaults there are also defaults for the 3 supported file types, they are VIDEO.DEFAULTS, AUDIO.DEFAULTS, and IMAGE.DEFAULTS.

The hardest part about getting data from 5 different vendors is making them agree on what else they will add to the catalog, and for that we will enable Vendor Specific Policy. Along with having 5 vendors in the mix we need to make sure they cannot edit the CORE elements, and that they cannot edit EACH OTHERS elements, so we need to also talk about WHERE on disk the *.xml files will be stored and organized.

Sample Policy Overview

NOTE: Again to keep the example brief DEFAULTS will be used to represent large blocks of content that can be seen in previous examples. We will also include a FILEPATH above each filename to demonstrate WHERE on disk the files should be stored. You can store them where ever you like, this is just a suggestion of how to organize the policy files.

CORE POLICY

/usr/local/filemanager/policy
product-types.xml

  • GenericFile

elements.xml

  • CAS.DEFAULTS
  • VIDEO.DEFAULTS
  • AUDIO.DEFAULTS
  • IMAGE.DEFAULTS

product-type-element-map.xml

  • type=GenericFile
  • +CAS.DEFAULTS
  • type=Audio parent=GenericFile <<<Audio is a VIRTUAL Product Type
  • AUDIO.DEFAULTS
  • type=Video parent=GenericFile <<<Video is a VIRTUAL Product Type
  • VIDEO.DEFAULTS
  • type=Images parent=GenericFile <<<Images is a VIRTUAL Product Type
  • IMAGE.DEFAULTS
VENDORX POLICY

/usr/local/filemanager/policy/vendorx
product-types.xml

  • AudioBook
  • Records

elements.xml

  • Author
  • Publisher
  • RPM
  • Diameter

product-type-element-map.xml

  • type=AudioBook parent=Audio <<AudioBook is a STANDARD Product Type
  • +Author
  • +Publisher
  • type=Records parent=Audio <<Records is a STANDARD Product Type
  • +RPM
  • +Diameter