DDF Content Framework

Overview

The DDF Content Framework is a framework for storing, reading, processing, and transforming content information. Content information is defined as files that the client wants:

  • parsed and a Metacard created that is subsequently used to create a catalog entry in the Metadata Catalog
  • stored in the DDF Content Repository

The files passed into the DDF Content Framework can be of any type, e.g., NITF, PDF, Microsoft Word, etc., as long as their mime type can be resolved and an Input Transformer exists to parse their content into a Metacard and the generated Metacard satisfies the constraints of the  catalog provider that the generated Metacard will be inserted into. For example, if the Tika Input Transformer is installed, then Microsoft Office documents and PDF files can be transformed into metacards. If the Solr catalog provider is being used, then the generated Metacard can be successfully inserted.

Clients typically perform create, read, update, and delete (CRUD) operations against the content repository.  At the core of the Content functionality is the Content Framework, which routes all requests and responses through the system, invoking additional processing per the system configuration.

The DDF Content Framework is composed of several components and an API that connects them together.  The Content API consists of the Java interfaces that define DDF functionality. These interfaces provide the ability for components to interact without a dependency on a particular underlying implementation, thus allowing the possibility of alternate implementations that can maintain interoperability and share developed components.  As such, new capabilities can be developed independently, in a modular fashion, using the Content API interfaces and reused by other DDF installations.

The DDF Content API will evolve with DDF itself, but great care is taken to retain backwards compatibility with developed components.  Compatibility is reflected in version numbers.  For more information, see the Software Versioning section in the Appendix.