Framework for Interoperable Media Services (FIMS) FIMS Repository Service Interface Design and...

22
Framework for Interoperable Media Services (FIMS) FIMS Repository Service Interface Design and Concept V0.4 Author: Loic Barbou

Transcript of Framework for Interoperable Media Services (FIMS) FIMS Repository Service Interface Design and...

Framework for Interoperable Media Services (FIMS)

FIMS Repository Service Interface

Design and Concept V0.4Author: Loic Barbou

FIMS Repository Interface Concept and Design

• June 5th FIMS Meeting in NYC: Version 0.1 – Bloomberg/Triskel/IBM Presentation

• July 23rd working session: Version 0.2 -- Creation of initial version (GenerateID, AddObject, AddContent, Repository Capability Settings)

• August 2nd working session: Version 0.3 – Added new operations (UpdateObject, UpdateProperties, UpdateState, Lock, Unlock, DeleteContent, UndeleteContent, DeleteObject, UndeleteObject, PurgeContent, PurgeObject)

• August 10th 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 GRegarding 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?