Framework for Interoperable Media Services (FIMS) FIMS Repository Service Interface Design and Concept V0.4 Author: Loic Barbou
FIMS Repository Interface Concept and Design June 5 th FIMS Meeting in NYC: Version 0.1 – Bloomberg/Triskel/IBM Presentation July 23 rd working session: Version Creation of initial version (GenerateID, AddObject, AddContent, Repository Capability Settings) August 2 nd working session: Version 0.3 – Added new operations (UpdateObject, UpdateProperties, UpdateState, Lock, Unlock, DeleteContent, UndeleteContent, DeleteObject, UndeleteObject, PurgeContent, PurgeObject) August 10 th working session: Version 0.4 – included feedback from Peter G for AddContent operation and added new operations (GetBMContent, GetBMContents, RetrieveBMEssence )
Operation: GenerateUniqueID Description –Generate Unique ID within the scope of a given repository. This operation doesn’t have any dependencies or effect on other repository components. The unique ID needed for object creation doesn’t have to be generated by this operation and can be created by an external service as as long as ID uniqueness is respected. Operation Type –Synchronous Input Parameters –RepositoryProfile Output Parameters –String representing the ID –ID Type (String, Numeric, GUID)
Operation: AddObject Description –Create an object (BMContentType) representing the media asset data entry containing asset IDs and editorial metadata. Operation Type –Synchronous Input Parameters –RepositoryProfile –BMO (includes unique ID) Output Parameters –BMO (contains internal system ID, version, timestamp, …..) Fault –Operation exceptions should be defined for all operations –Non unique ID, missing parameter, backend processing issues,…
Operation: AddContent Description –Associate a physical essence to an existing object by providing the essence in one of the valid import repository locations. (Peter will add comments (Locking: AddContent throws an exception for Locked objects, To Be Refined)) –From Peter G: Associate a physical essence to an existing object by providing the essence in one of the valid import repository locations. If the LightBMO input parameter is locked the AddContent will throw an exception. An Essence Locator ID will be generated by the repository and returned as an output parameter. Operation Type –Asynchronous Input Parameters –RepositoryProfile –BMO (or LightBMO) –FormatContentType (optional based on capabilities of repository) –EssenceLocator (Location of the physical essence in predefined import folder) Output Parameters –OperationResult (include the essence locator ID created by the repository service) CallBack –BMO –OperationResult (include the essence locator ID created by the repository service) Question from Peter G Regarding the essence locator id, is the scope of the uniqueness of this id limited to the repository, or does it span repositories, and if so should it be generated by the "GenerateUniqueID" method? It is an implementation restriction to generate id unique to a rep or and entire organization Should we be returning BMContent instead of BMO? Same thing
Repository Capability Settings Role –The repository capability settings represent a list of parameters describing the implemented functionality of the FIMS repository interface. Settings –FormatProfileMetadataProcessing: Describe how the format profile metadata need to be passed for an AddContent operation Values: MustBeProvided, AlwaysAutoGenerated, AutoGeneratedWhenNotProvided –ImportFolderLocation Represent the list of possible import folder locations where content needs to be place for an AddObject operation. –RetrieveFolderLocation Represent the list of possible retrieve folder locations where content needs to be copied. May be a file share, FTP folder, … –ContentVersioning Describe versioning support –Locking –Schemas for Repository specific properties (fields). Should be in the form of XSD –Purge operation –Undelete operation
Operation: UpdateObject Description –Update “metadata” properties of a BMContent object passed as an input parameter. The operation is behaving as an object replace not as an update specified properties. If properties are omitted in input object the service set these properties to null in repository. –A new version of the BMContent will be created upon executing this operation (If repository service support versioning). Operation Type –Synchronous Input Parameters –RepositoryProfile –BMContent: Represents the BMContentType that will overwrite the existing one. –LockToken(LockID) Optional based on Rep Capabilities Output Parameters –Updated BMContent
Operation: UpdateProperties Description – Update “metadata” properties of a BMContent object. The operation defined the properties to be updated with their associated values. It can only be used on addressable and updatable properties Operation Type –Synchronous Input Parameters –RepositoryProfile –LockToken(LockID) Optional based on Rep Capabilities –Light BMContent (To Be Defined) –Arrays of Properties PropertyInfo –RessourceID –Address: Property Xpath –Value –Action(Update, New, Remove) Output Parameters –Updated BMContent
Operation: UpdateState Description – Update state/status of a BMContent object. TODO: define state, status, compound status Operation Type –Synchronous Input Parameters –RepositoryProfile –LockToken(LockID) Optional based on Rep Capabilities –Light BMContent (To Be Defined) –State/Status Output Parameters –Updated BMContent (can be revised later)
Operation: Lock Description – Apply a lock to a defined BMContent object. Operation Type –Synchronous Input Parameters –RepositoryProfile –Light BMContent (To Be Defined) –Expiration Datetime Output Parameters –LockToken
Operation: UnLock Description – Remove a lock to a defined BMContent object. Operation Type –Synchronous Input Parameters –RepositoryProfile –LockToken (SuperToken will allow to unlock any object) Output Parameters –Light BMContent (To Be Defined)
Operation: DeleteContent Description – Set the state of an essence to “Deleted”. Operation Type –Synchronous Input Parameters –RepositoryProfile –LockToken (SuperToken will allow to unlock any object) –EssenceID Output Parameters –BMContent ( To Be Modified )
Operation: UnDeleteContent Description – Set the state of an essence to “Active” for an essence in a “Deleted” state Operation Type –Synchronous Input Parameters –RepositoryProfile –EssenceID Output Parameters –BMContent
Operation: DeleteObject Description – Set the state of BMContentType to “Deleted” for an asset in a “Active” state. Also set the state of all of the essences to “Deleted”. Operation Type –Synchronous Input Parameters –RepositoryProfile –Light BMContent Output Parameters –BMContent
Operation: UnDeleteObject Description – Set the state of BMContent to “Active” for an asset in a “Deleted” state. Also set the state of all of the essences to “Active”. Operation Type –Synchronous Input Parameters –RepositoryProfile –Light BMContent Output Parameters –BMContent
Operation: PurgeContent Description – Operation can only be executed on an Essence being in a “deleted” state. It physically removes the essence from the repository database and storage. Note: if the essence is the last representation of a BMContentFormat, the format entry is also remove from the BMContentObject. Operation Type –Asynchronous Input Parameters –RepositoryProfile –Essence ID Output Parameters –OperationResult (include the essence locator ID to be purged by the repository service) CallBack –OperationResult (include the essence locator ID purged by the repository service)
Operation: PurgeObject Description – Operation can only be executed on an BMContent being in a “Deleted” state. It physically removes all the essences and asset information from the repository database and storage. Operation Type –Asynchronous Input Parameters –RepositoryProfile –Light BMContent Output Parameters –OperationResult (include the Light BMContent to be purged by the repository service) CallBack –OperationResult (include the Light BMContent purged by the repository service)
Operation: GetBMContent Description –Retrieve a single BMContent by passing one of its identifiers Operation Type –Synchronous Input Parameters –RepositoryProfile –BMReference aka LightBMO (Need to fully defined all properties of LightBMO) –FilterOutType (Editorial Metadata, Physical Metadata) information to be filtered out Output Parameters –BMContent
Operation: GetBMContents Description –Retrieve a multiples BMContents by passing their identifiers Operation Type –Synchronous Input Parameters –RepositoryProfile –Array of BMReference aka LightBMO (Need to fully defined all properties of LightBMO) –FilterOutType (Editorial Metadata, Physical Metadata) information to be filtered out Output Parameters –Array BMContent –Fault: a fault message is generated if an invalid ID is used as a input parameter. The fault message will include an indicator for invalid IDs
Operation: RetrieveBMEssence Description –Copy an essence composed of one or multiple files (single essence locator) to a known supported destination by the repository Operation Type –ASynchronous Input Parameters –RepositoryProfile –Essence Locator ID –Known destination ? (More to be done to defined what is know location is) Output Parameters –OperationResult (include the essence locator ID being retrieved by the repository service) CallBack –OperationResult (include the essence locator ID retrieved by the repository service and destination path)
Graveyard
Operation: ?? Description –?? Operation Type –?Asynchronous or Synchronous Input Parameters –?Input parameter? Output Parameters –?Output parameter? CallBack –?Call Back operation and payload?