97
SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK REPOSITORY SERVICE INTERFACES Loic Barbou & Ashraf Tadros

SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

  • Upload
    lave

  • View
    55

  • Download
    1

Embed Size (px)

DESCRIPTION

SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK. REPOSITORY SERVICE INTERFACES. Loic Barbou & Ashraf Tadros. Update since Geneva. Outstanding questions from Geneva REP group has work on providing answers to questions raised by the group during the Geneva Meeting - PowerPoint PPT Presentation

Citation preview

Page 1: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

SPECIFICATION OF THEFIMS

MEDIA SOA FRAMEWORK

REPOSITORY

SERVICE INTERFACESLoic Barbou

&

Ashraf Tadros

Page 2: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Update since Geneva• Outstanding questions from Geneva

» REP group has work on providing answers to questions raised by the group during the Geneva Meeting

» Answers are listed at the end of the presentation

• CDMI/CMIS» REP Group has evaluated CDMI and CMIS» No direct overlap in existing FIMS Repository Interface» No impact on current FIMS Repository Interface design

Page 3: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Update since Geneva• Design Changes

» Extension model for enumeration» New version of XSD and WSDL

• Outstanding Tasks» Simplify design for Event models

Page 4: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Goals for Today• Validate

» Operation and Object Names» Objects impacting FIMS base services

• NOT work on » Redesigning API» Adding requirements

Page 5: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

BMContentType Structure• BMContentType == BMO

– BMContentFormatType• BMEssenceLocatorType

Page 6: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Service - Operations» GenerateUniqueID OK» AddObject Replace with AddContent » AddContent Replace with AddEssence » ReplaceObject Replace with ReplaceContent» UpdateProperties Replace with UpdateContentProperties» Lock OK» UnLock OK» ClearLock OK» RetrieveOpenLocks Replace with GetLocks » DeleteContent RemoveEssence

Page 7: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Service - Operations» UnDeleteContent Replace with UnRemoveEssence» DeleteObject Replace with RemoveContent» UnDeleteObject Replace with UnRemoveContent» PurgeContent Replace with PurgeEssence» PurgeObject Replace with PurgeContent» GetBMContent Replace with GetContent» GetBMContentCollection Replace with GetContentCollection» RetrieveBMEssence Replace with RetrieveEssence» MediaQuery Replace with ContentQuery

Page 8: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Service – Objects to be discussed

Page 9: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RCR Operations

» GetRepositoryState » GetStorageAvailableCapacity » GetPerformanceIndicator » GetRepositoryReport » GetGeneralCapability » GetSchemaExtensions » GetUpdatableProperties » GetQueryResultsetDefinitions » GetSearchableProperties » GetRepositoryDefinitions » GetSuperLockToken » GetSupportedStatus

Page 10: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Notifications/Call Back Operations

» NotifyAddContentResult Replace with NotifyAddEssenceResult

» NotifyAddContentFault Replace with NotifyAddEssenceFault

» NotifyPurgeContentResult Replace with NotifyPurgeEssenceResult

» NotifyPurgeContentFault Replace with NotifyPurgeEssenceFault

» NotifyPurgeObjectResult Replace with NotifyPurgeContentResult

» NotifyPurgeObjectFault Replace with NotifyPurgeContentFault

» NotifyRetrieveBMEssenceResult Replace with NotifyGetContentResult

» NotifyRetrieveBMEssenceFault Replace with NotifyGetContentFault

» RepositoryEvent

Page 11: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Presentation from Geneva

Meeting

Page 12: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Services• Repository Service

– Repository Service Operations– Repository Capabilities Registry (RCR) Operations

• Repository Notification Service– Asynchronous Operations Notifications– Events Subscriptions

Page 13: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Service - Operations» Lock, Unlock, Clear Lock, Retrieve Open Locks» Generate Unique ID» Add Object» Add Content (Async.)» Update Object (Replace, Update Properties)» Update Status *» Delete and UnDelete Object/Content» Purge Object (Async.)» Purge Content (Async.)» Get BM Content(s)» Retrieve Essence (Async.)» Media Query

Page 14: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Service - RCR» Repository State (online, offline, failover)» Storage Capacity (Names, available and total space)» Performance (Performance Indicator %)» Vendor Specific Report (Report HTML)» General Capability (supported functionalities)» Vendor Defined Schema Extensions» Updatable and Searchable Properties» Vendor Defined Query Result Set Definitions» Repository Definitions (name & Description)» Retrieve Administrative Super Lock Token» Supported Object/Content Status

Page 15: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Notification Service - Async. Operations» Add Content (Notify and Fault)

» Purge Content (Notify and Fault)

» Purge Object (Notify and Fault)

» Retrieve Essence (Notify and Fault)

Page 16: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Notification Service - Events Subscription

– System Events» Exceptions» Performance

– Asset Events» Status Changed» Object/Content Created» Object Deleted» Content Deleted/Purged» Object/Content Format/Essence Locator Update

Page 17: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Clarifications• Asynchronous Operations Notifications

» Request => ResourceType => AsyncEndpointType» Ack: timeStamp + operationId» Notify Result: result + operationId» Notify Fault: RepositoryFaultType + some related info +

operationId

• Lock Token » RepositoryLockTokenType» RepositorySuperLockTokenType

Page 18: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Clarifications• Status

» Object - BMContentStatusType

» Content - BMEssenceLocatorStatusType

» BMStatusType - new, online, offline, deleted, purged, invalid, processing.

» Vendor specific - BMCustomStatusExtensionType.

» RepositorySupportedStatusType

Essence Locator StatusBMContentType Status

Online Offline Deleted Purged Invalid New ProcessingOnline x x x x x x xOffline x x x x x xDeleted x x xPurged x xInvalid x x x x x x xNewProcessing x x x

Page 19: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Clarifications• Object

» BMContentType

• Content» BMEssenceLocatorType - SimpleFileLocatorType,

ListFileLocatorType or FolderLocatorType)

• Light Object» BMContentLightType

Page 20: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Clarifications• Delete vs. Purge

» Delete: flags for deletion.» Purge: removes completely from DB and repository storage.» Purge object purges all related contents.

• Update Object vs. Update Properties» Update object: fully replaces the object.» Update properties: updates the specific passed property only.

• RepositoryProfileType

Page 21: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Service Operations

Page 22: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GenerateUniqueID• Description

» Generates a Unique ID within the scope of a given repository.» Must be obtained before Object or Content Add operations.» Doesn’t have to be generated by this operation and can be

created by an external service as long as ID uniqueness is respected.

• Request» RepositoryProfileType

• Response» ResourceIDType

Page 23: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

AddObject• Description

» Uses the generated Unique ID.» Submits a new BMContentType to be added to the system.

• Request» AddObjectRequestType

• Response» BMContentType

Page 24: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

AddContent• Description

» Associate a physical essence – BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to an existing object – BMContentLightType.

» Uses the generated Unique ID.» BMContentFormatType is optional input.

• Request» AddContentRequestType

• Ack» AddContentOperationAckType

Page 25: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

AddContent Notification• Notify Result

» NotifyAddContentResult Operation => AddContentOperationNotificationType

• Notify Fault» NotifyAddContentFault Operation =>

AddContentOperationFaultNotificationType

Page 26: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

ReplaceObject• Description

» Updates “metadata” properties of a BMContent object.» Behaves as an object replace not as update properties.» Sets omitted properties in input object to null. » A new version will be created (If versioning supported).

• Request» ReplaceObjectRequestType

• Response» BMContentType

Page 27: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

UpdateProperties• Description

» Updates “metadata” of BMContent object (BMContentType).» Applies only on addressable and updatable properties –

RepositoryUpdatablePropertyInfoType (defined by the RCR).» PropertyInfosType parameter includes properties Xpath, values

and RepositoryActionType (update, new, remove).

• Request» UpdatePropertiesRequestType

• Response» BMContentType

Page 28: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

UpdateStatus ( Remove !)

• Description» Updates object status only (BMContentStatusType not

BMEssenceLocatorStatusType)» Should the service allow status update from outside the repository

system?» Status automatically updated through the object and essence life

cycle and other operations (DeleteObject, PurgeContent ..)

• Request» UpdateStatusRequestType

• Response» BMContentType

Page 29: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Lock• Description

» Create a lock on a given resource or add a resource to an existing lock token.

» Adds a reference to be locked to the RepositoryLockTokenType .» Lock expiration is per RepositoryLockTokenType and not per

resource.

• Request» LockRequestType

• Response» RepositoryLockTokenType

Page 30: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

UnLock• Description

» Removes the lock from multiple references.» If no references passed in the request, will unlock all resources

associated with the RepositoryLockTokenType .

• Request» UnLockRequestType

• Response» RepositoryLockTokenType

Page 31: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

ClearLock• Description

» A mechanism to override a lock.» A RepositorySuperLockTokenType must be obtained from the

RCR before calling the operation.

• Request» ClearLockRequestType

• Response» RepositoryLockTokenType

Page 32: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RetrieveOpenLocks• Description

» Gets all open locks within the system.» A RepositorySuperLockTokenType must be obtained from the

RCR before calling the operation.

• Request» RetrieveOpenLocksRequestType

• Response» RepositoryLockTokensType

Page 33: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

DeleteContent• Description

» Sets the BMEssenceLocatorStatusType for an active BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to ‘deleted’.

» No physical bytes are deleted

• Request» DeleteContentRequestType

• Response» BMContentType

Page 34: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

UnDeleteContent• Description

» Sets the BMEssenceLocatorStatusType for the BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to an active status (invalid, online, offline ..).

» Repository system is responsible about tracking and resetting the status in the undelete operation implementation.

• Request» UnDeleteContentRequestType

• Response» BMContentType

Page 35: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

DeleteObject• Description

» Sets the BMContentStatusType for an active BMContentType to ‘deleted’

» Repository system is responsible about setting related essences - BMEssenceLocatorStatusType for the BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to ‘deleted’.

• Request» DeleteObjectRequestType

• Response» BMContentType

Page 36: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

UnDeleteObject• Description

» Resets the BMContentStatusType for a deleted BMContentType.» Repository system is responsible about tracking and resetting the

status in the undelete operation implementation.» Repository system is responsible about resetting related essences

- BMEssenceLocatorStatusType for the BMEssenceLocatorType.

• Request» UnDeleteObjectRequestType

• Response» BMContentType

Page 37: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

PurgeContent• Description

» Can only be executed on an Essence in a “deleted” state.» Physically removes essence from repository database & storage.

Physical bytes are deleted.» If the essence is the last representation in a

BMContentFormatType, the format entry will be removed from the BMContentType.

• Request» PurgeContentRequestType

• Ack» PurgeObjectOperationAckType

Page 38: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

PurgeContent Notification• Notify Result

» NotifyPurgeContentResult Operation => PurgeContentOperationNotificationType

• Notify Fault» NotifyPurgeContentFault Operation =>

PurgeContentOperationFaultNotificationType

Page 39: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

PurgeObject• Description

» Can only be executed on BMContentType in a “deleted” state.» Physically removes asset information and all related essences

from repository database & storage.

• Request» PurgeObjectRequestType

• Ack» PurgeObjectOperationAckType

Page 40: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

PurgeObject Notification• Notify Result

» NotifyPurgeObjectResult Operation => PurgeObjectOperationNotificationType

• Notify Fault» NotifyPurgeObjectFault Operation =>

PurgeObjectOperationFaultNotificationType

Page 41: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetBMContent

Page 42: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetBMContents• Description

» Retrieves multiple BMContentType(s).» RepositoryMetadataFilterOutType: physical, editorial

• Request» GetBMContentsRequestType

• Response» BMContentsType

Page 43: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RetrieveBMEssence• Description

» Copy an essence BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to a known supported destination by the repository – RepositoryKnownLocationType

• Request» RetrieveBMEssenceRequestType

• Ack» RetrieveBMEssenceOperationAckType

Page 44: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RetrieveBMEssence Notification• Notify Result

» NotifyRetrieveBMEssenceResult Operation => RetrieveBMEssenceOperationNotificationType

• Notify Fault» NotifyRetrieveBMEssenceFault Operation =>

RetrieveBMEssenceOperationFaultNotificationType

Page 45: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Query• Description

» Consumer is an orchestration engine.» A search parameter must match a property defined in the asset

schema BMContentType or RepositorySchemaExtensionType and defined in the RCR - RepositorySearchablePropertyInfoType.

» The max number of supported search parameter across all query operations is defined in RCR.

• Operation Structure

Query Payload

Query DefinitionQuery Definition

Output DefinitionOutput Definition

ParametersParameters

OperandsOperands

GroupGroup

Amount of DataAmount of Data

Data Structure Data Structure

Page 46: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Query

Page 47: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Query• QueryExpressionType : Simple Query: Title = NY

QueryParameterType• name = Title• value = NY• valueType = string• operand = equal• negated = false <queryExpression >

<resourceID>00000000-0000-0000-0000-000000000001</resourceID> <parameter> <resourceID>00000000-0000-0000-0000-000000000002</resourceID> <name>Title</name> <value>NY</value> <valueType>string</valueType> <Operand>equal</Operand> <negated>false</negated> </parameter></queryExpression>

Page 48: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Query

• Title = NY• OR• Title = Boston• OR

• (DateModified > 2010• AND• DateModified < 2012• AND• Not (DateCreated=2011))

• QueryExpressionType: Compound Query:

Title = NY OR Title = Boston OR (DateModified > 2010 AND DateModified < 2012 AND Not (DateCreated=2011))

Page 49: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Capabilities RegistryRCR

Page 50: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RCR ?• Definition

» Datastore containing a list of properties describing the implementation behavior of the repository interface.

» Provide the ability for a vendor to implement a FIMS repository interface on top of their product based on its capabilities

» Service interoperability is achieved by having a common interface with a preset list of behaviors and settings (Support Lock, Extension Registration, Queryable Properties,… )

» External service can query the RCR to retrieve settings and behaviors

Page 51: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RCR Clarifications

Page 52: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetRepositoryState• Description

» Retrieve configuration parameters indicating the repository service status: online = active, offline = inactive or not available and failover = instance of the service is not in use, but another instance is active.

• Request» RepositoryProfileType

• Response» RepositoryStateType: online, offline, failover

Page 53: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetStorageAvailableCapacity• Description

» Retrieves the repository storage components and their available and total space.

• Request» RepositoryProfileType

• Response» StorageComponentsType

Page 54: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetPerformanceIndicator

Page 55: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetRepositoryReport• Description

» Retrieves a vendor specific health or general condition report.

• Request» RepositoryProfileType

• Response» RepositoryReportType

Page 56: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetRepositoryGeneralCapability• Description

» Retrieves general supported functionality.

» RepositoryEventSubType: assetStatusChange, assetObjectCreated, assetContentCreated, assetContentDeleted, assetContentPurged, assetObjectUpdated, assetContentFormatUpdated, assetContentEssenceLocatorUpdated, assetObjectDeleted, repositorySystemException, performanceEvent.

» FormatProfileMetadataProcessingType: mustBeProvided, autoGenerated, autoGeneratedWhenNotProvided

» RepositoryEventListenerEndpointTypes: soap, rest

• Request» RepositoryProfileType

• Response» RepositoryGeneralCapabilityType

Page 57: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetSchemaExtensions• Description

» Retrieve vendor defined metadata schema extension.

• Request» RepositoryProfileType

• Response» RepositorySchemaExtensionsType

Page 58: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetUpdatableProperties• Description

» Retrieves the list of properties the repository system allows to be updated.

» RepositoryActionType: update, new, remove.

• Request» RepositoryProfileType

• Response» RepositoryUpdatablePropertyInfosType

Page 59: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetQueryResultsetDefinitions• Description

» Gets a set of vendor specific defined result sets retuned by the Query operation.

• Request» RepositoryProfileType

• Response» QueryResultsetDefinitionsType

Page 60: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetSearchableProperties• Description

» Retrieves list of properties exposed by the system to be used in the QueryParameterType.

• Request» RepositoryProfileType

• Response» RepositorySearchablePropertyInfosType

Page 61: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetRepositoryDefinitions• Description

» Retrieves the internal repository system volumes.

• Request» RepositoryProfileType

• Response» RepositoryDefinitionsType

Page 62: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetSuperLockToken• Description

» Retrieves a super token to override existing RepositoryLockTokenType to unlock specific resources.

• Request» RepositoryProfileType

• Response» RepositorySuperLockTokenType

Page 63: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

GetSupportedStatus• Description

» Retrieves the system supported statuses: BMContentStatusType, BMEssenceLocatorStatusType, and vendor specific BMCustomStatusExtensionType for the content and object.

• Request» RepositoryProfileType

• Response» RepositorySupportedStatusType

Page 64: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Repository Notification Service

Page 65: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RepositoryEvent• Description

» Single event per message.» SOAP and REST» Ordered delivery: events are sent in the same order they are generated» One time delivery: no duplicate events are sent» Push to a single end point with no throttling for V1.0. Pull is out of scope for v1.0.» Client event Listener Endpoint (SOAP or REST) and supported vendor event types defined in

the RCR – RepositoryGeneralCapabilityType.» Customer can disable in RCR supported vendor event types» RepositoryEventType: system, asset» RepositoryEventSubType: assetStatusChange, assetObjectCreated, assetContentCreated,

assetContentDeleted, assetContentPurged, assetObjectUpdated, assetContentFormatUpdated, assetContentEssenceLocatorUpdated, assetObjectDeleted, repositorySystemException, performanceEvent.

» RepositoryEventClassificationType: error, warning, information.» RepositoryOperationType: ingest, archive, delete

Page 66: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

RepositoryEvent• Message

– RepositoryEventEnvelopeType• RepositoryEventPayloadType

– SystemRepositoryEventType» RepositorySystemExceptionEventType» RepositorySystemPerformanceEventType

– AssetRepositoryEventType» AssetStatusChangeEventType» AssetObjectCreatedEventType» AssetContentCreatedEventType» AssetContentDeletedEventType» AssetContentPurgedEventType» AssetObjectUpdatedEventType» AssetContentFormatUpdatedEventType» AssetContentEssenceLocatorUpdatedEventType» AssetObjectDeletedEventType

Page 67: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?

Page 68: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• Do we need BMContentLightType?• BMContentType inheritance from BMContentLightType and move

BMContentLightType to baseMediaService.xsd.• Changing baseMediaService effect on previous fims versions

implementation and rules for fims XSD(s) versioning.• RepositoryProfileType: rename to something more generic and

descriptive, like CredentialsProfile or AuthorizationProfile. Its scope can exceed the Repository and be used in other services. Perhaps, it should even live in the baseMediaService.xsd.

• Do we need UpdateStatus operation?

Page 69: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• Will the Lock operation on an object - BMContentType locks the

associated contents – BMEssenceLocatorType?• ResourceIDType as a parameter – REST.• Many classes inheriting from bms:Resource – REST.• I understand that if my repository exposes a custom searchable and

updateable property it should be returned in GetSchemaExtensions, GetUpdatableProperties and GetSearchableProperties. Is this correct?

Page 70: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• What about "FIMS standard" supported properties (the ones defined

in description-V1_0_7.xsd)? Should we also return them in GetSchemaExtensions, GetUpdatableProperties and GetSearchableProperties?

• Could we also expose standard FIMS technical metadata to be used in the searches? (For example, "title = NY and aspect_ratio = 16/9")

Page 71: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• Locking is an optional feature, the token parameter should be

optional in ReplaceObjectRequest, UpdatePropertiesRequest and DeleteContentRequest - DONE.

• Should we add a lock token to DeleteObjectRequestType?• Naming can be confusing at first sight. The functions and structures

that deal with "BMContent" use "Object" and the ones that deal with "EssenceLocator" use "Content", which could be thought as BMContent. For coherence, the GetBMContent(s) functions should be GetObject(s) and RetrieveBMEssence() should be RetrieveContent()

Page 72: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• QueryParameteType.valueType and

RepositorySearchablePropertyInfoType.dataType, I am not sure if specifying datatypes by name using a string can create interoperatibility problems. Perhaps we should define and use a Resource "DataType" and provide a list of well-known fims data types, which could be extended by inheritance.

• Do we plan to have a way of extending QueryParameterOperand with custom operands? It would be desirable. enumeration vs. object (resource) in xsd.

Page 73: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• Purge Operations – Rename• Delete operations - Rename• AddObject – Rename• AddContent – Rename (RegisterContent)• Responses that contain BMContentType can we have an option in

the content to return BMContentLightType instead. The use of container object with “choice” would this be a good represntation.

• RCR to define max. lock expiration duration (seconds, minutes, hours?) allowed by the system, null means no restriction.

Page 74: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions?• RetrieveOpenLocks operation – Rename• RCR to define if dirty read allowed• When a parent is locked will this lock the children?• Do we need GetBMContentor GetBMContents should be enough?

Page 75: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Questions/AnswersFeedback & Follow Up Items

Page 76: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK
Page 77: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

2. Revisit requests to add which form of BMContentType should be returned in the responses (where applicable), full or light Done

» A new optional Boolean (returnFullBMContent), default is True.» Some requests may change to the form of an envelope for multiple input

parameters. (ASH)

3. Responses that contain BMContentType can we have an option in the content to return BMContentLightType instead. Will the use of container object with “choice” be a good representation? Done

» This can be solved by the use of BMContentType with min. properties, and setting the (isFullyPopulated) property as discussed.

Page 78: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Decision for 1 - 2 - 3: BMContentType is not neededAll repository operations use the BMContentType object as input or output parameter to represent a media asset. The object can be used in its minimal form (IDs) or fully hydrated The ability to describe information populated within FIMS objects is needed to differentiate between data not hydrated and data not existing. The proposal includes the addition of a property to the ResourceReferenceType. The new optional IsFullyPopulated property is set to true when all of the properties of an object are populated with all available existing data.The capability of defining as an input parameter what information is being returned as part of a query or get operation is still handled by selecting an enumeration of type QueryResultInfoType. The same concept will be added to Get operation.

Decision for 1 - 2 - 3: BMContentType is not neededAll repository operations use the BMContentType object as input or output parameter to represent a media asset. The object can be used in its minimal form (IDs) or fully hydrated The ability to describe information populated within FIMS objects is needed to differentiate between data not hydrated and data not existing. The proposal includes the addition of a property to the ResourceReferenceType. The new optional IsFullyPopulated property is set to true when all of the properties of an object are populated with all available existing data.The capability of defining as an input parameter what information is being returned as part of a query or get operation is still handled by selecting an enumeration of type QueryResultInfoType. The same concept will be added to Get operation.

Page 79: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

4. Changing baseMediaService effect on previous fims versions implementation and rules for fims XSD(s) versioning

» (TECHNICAL BOARD) Will be implemented as part of V1.08

5. Figuring proper naming for Object, Essence and BMContent = (Object + Essence) representation and usage.

» There is a need for a smaller group to discuss, document and publish. (TECHNICAL BOARD) Will setup a separate meeting to include FIMS REP + Tech

Decision: Will be implemented as part of V 1.08Decision: Will be implemented as part of V 1.08

Decision: A sub group including members of FIMS REP and FIMS TECH will work on this taskDecision: A sub group including members of FIMS REP and FIMS TECH will work on this task

Page 80: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Decision: A sub group including members of FIMS REP and FIMS TECH will work on this taskDecision: A sub group including members of FIMS REP and FIMS TECH will work on this task

Decision: A sub group including members of FIMS REP and FIMS TECH will work on this taskDecision: A sub group including members of FIMS REP and FIMS TECH will work on this task

Decision: A sub group including members of FIMS REP and FIMS TECH will work on this taskDecision: A sub group including members of FIMS REP and FIMS TECH will work on this task

Page 81: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Decision: A sub group including members of FIMS REP and FIMS TECH will work on this taskDecision: A sub group including members of FIMS REP and FIMS TECH will work on this task

Decision: A sub group including members of FIMS REP and FIMS TECH will work on this taskDecision: A sub group including members of FIMS REP and FIMS TECH will work on this task

Decision: Keep the 2 operations but rename GetBMContents to possibly GetBMContentCollectionDecision: Keep the 2 operations but rename GetBMContents to possibly GetBMContentCollection

Page 82: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

12. RepositoryProfileType - Rename to something more generic and descriptive, like Credentials or Authorization Profile.

» More discussion, concern on why don't we make use of the http security! (REPOSITORY GROUP TECHNICAL BOARD) Will setup a separate meeting to include FIMS REP + Tech

13.RepositoryProfileType scope can exceed the Repository and be used in other services. Perhaps, it should even live in the baseMediaService.xsd.

» (REPOSITORY GROUP) To bring up again with Tech Group/Adm Group

14.Will the Lock operation on an object – BMContentType locks the associated contents – BMEssenceLocatorType? When a parent is locked will this lock the children?

» Best practice, expected behavior(documentation) (REPOSITORY GROUP) Should be added to RCR

Decision: Keep the 2 operations but rename GetBMContents to possibly GetBMContentCollectionDecision: Keep the 2 operations but rename GetBMContents to possibly GetBMContentCollection

Decision: Bring this up again with Tech and Adm groups as it may break interface definition for operations in V1.07Decision: Bring this up again with Tech and Adm groups as it may break interface definition for operations in V1.07

Decision: Locking behavior will be described in a new RCR parameter. The default and recommended behavior is cascading locks

Decision: Locking behavior will be described in a new RCR parameter. The default and recommended behavior is cascading locks

Page 83: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

15 .Locking is an optional feature; the token parameter should be optional in ReplaceObjectRequest, UpdatePropertiesRequest and DeleteContentRequest.

» DONE (ASH) Done

16.Should we add a lock token to DeleteObjectRequestType?» Add to DeleteObjectRequestType (ASH) We are adding the lock to this operation

17.Do we need UpdateStatus operation?» Remove it (ASH) TAKE IT OUT

18.ResourceIDType - REST concern on usage as input parameter.» REST group will investigate.» Remove it and use ResourceReferenceType. (ASH) » Remove ResourceIDType and use ResourceReferenceType for all parameters

(input and output)

Decision: Parameter will be made optionalDecision: Parameter will be made optional

Decision: Token will be added to this operationDecision: Token will be added to this operation

Decision: Operation to be removedDecision: Operation to be removed

Page 84: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

18.ResourceIDType - REST concern on usage as input parameter.» REST group will investigate.» Remove it and use ResourceReferenceType. (ASH)

Decision: Remove ResourceIDType and use ResourceReferenceType for all parameters (input and output)

Decision: Remove ResourceIDType and use ResourceReferenceType for all parameters (input and output)

Page 85: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

19.Many classes inheriting from ResourceType (REST) is it overdone?» It is a cautious approach. However, we should have another cleaning

pass. (ASH)

sons.

- Decision:

- Make not-a-Resource the following classes. Make something a Resource if it makes sense to perform operations on it (mainly CRUD) or to access it by reference. The cost of making something to be a resource is to pass a mandatory ResourceID in every use, which is not negligible IMHO.- PropertyInfo: Seems a one-shot structure. - RepositoryProfile: which would the meaning of the ResourceID be in a login/password pair or in a security token?- QueryInputDefinition: As it includes the pageNumber, it does not seem possible to reuse a stored

Decision: - Make not-a-Resource the following classes. Make something a Resource if it makes sense to perform operations on it (mainly CRUD) or to access it by reference. The cost of making something to be a resource is to pass a mandatory ResourceID in every use, which is not negligible IMHO.- PropertyInfo: Seems a one-shot structure. - RepositoryProfile: which would the meaning of the ResourceID be in a login/password pair or in a security token?- QueryInputDefinition: As it includes the pageNumber, it does not seem possible to reuse a stored

Page 86: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Decision: QueryInputDefinition, which would be the only reason I can figure out for making this a resource- QueryGroup: No persistence by itself (but as a QueryExpression) and no operations- QueryParameter: Same reasonQueryExpression: I would keep it as a resource if and only if we find sense in saving a query for later recalling. In this use case, it should be enough with passing just the ResourceReference and not the fully populated QueryExpression. The drawback is the need to pass a ResourceID in every query, despite it is a stored one or a volatile one. Perhaps the EmptyID could be used for one-shot queries- QueryResultSorting: Same case then QueryExpression- QueryOutputDefinition: Same case then QueryExpression- QueryProfileType: Same case then QueryExpression

Decision: QueryInputDefinition, which would be the only reason I can figure out for making this a resource- QueryGroup: No persistence by itself (but as a QueryExpression) and no operations- QueryParameter: Same reasonQueryExpression: I would keep it as a resource if and only if we find sense in saving a query for later recalling. In this use case, it should be enough with passing just the ResourceReference and not the fully populated QueryExpression. The drawback is the need to pass a ResourceID in every query, despite it is a stored one or a volatile one. Perhaps the EmptyID could be used for one-shot queries- QueryResultSorting: Same case then QueryExpression- QueryOutputDefinition: Same case then QueryExpression- QueryProfileType: Same case then QueryExpression

Page 87: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

20.Recheck for min occurrence = 0, when inheritance from ResourceType» (ASH) Still need to do the pass, task assigned to Ash

21.QueryParameterType.valueType and RepositorySearchablePropertyInfoType.dataType, specifying datatypes by name using a string can create interoperatibility problems. Perhaps we should define and use a Resource "DataType" and provide a list of well-known fims data types, which could be extended by inheritance.

Decision: Another pass will be done. Task assigned to AshDecision: Another pass will be done. Task assigned to Ash

Decision: It can be removed from QueryParameterType as it is included and retrievable from RepositorySearchablePropertyInfosType

Decision: It can be removed from QueryParameterType as it is included and retrievable from RepositorySearchablePropertyInfosType

Page 88: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK
Page 89: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

Decision for 22 and 23: leverage an extension model for complex scenarios but use simple existing object for simple usecases. The next 5 slides describe the places where the extension model should be applied

Decision for 22 and 23: leverage an extension model for complex scenarios but use simple existing object for simple usecases. The next 5 slides describe the places where the extension model should be applied

Page 90: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK
Page 91: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK
Page 92: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK
Page 93: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK
Page 94: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

24. RCR to define max. Lock expiration duration (seconds, minutes, and hours?) allowed by the system, null means no restriction.

» Add to General Repository Capabilities, XSD Time element. (ASH)

25. RCR to define if dirty read allowed.» Add to general Capabilities. (ASH) Done , should be fully described in doc specs

26. RCR to define if , if it supports case sensitivity query.» Add to general Capabilities. (ASH) add it

27.QueryParameterType: Add a Boolean (optional) to ignore case sensitivity.» Add to QueryParameterType. (ASH) will wait for decision on operand to make a

final decision

Decision: Add to General Repository Capabilities, XSD Time elementDecision: Add to General Repository Capabilities, XSD Time element

Decision: Add to General Repository Capabilities. Should also be described in details in implementation guideline Decision: Add to General Repository Capabilities. Should also be described in details in implementation guideline

Decision: Add to General Repository Capabilities.Decision: Add to General Repository Capabilities.

Decision: Add property to QueryParameterTypeDecision: Add property to QueryParameterType

Page 95: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

28. Query XML representation» Compound Query.xml (Repository Group) » query-new.xml (Zsolt – Harris)

29.Repository Events: Confusing pattern, may be overdone and needs to be simplified and to the point. Revisit, consolidate the Repository Asset Events

» Events Discussion and clear documentation needed. (REPOSITORY GROUP) Frank will propose something for next week meeting as simplified design for eventing model. Group please send infos to Frank

Decision: Keep existing modelDecision: Keep existing model

Page 96: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

30.Check with REST team if we need to add the word Repository at the beginning of each Request/Response.

Decision: To be addressed during the renaming exercise as members of the REST group will be present.Decision: To be addressed during the renaming exercise as members of the REST group will be present.

Page 97: SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

General• I understand that if my repository exposes a custom searchable and updateable

property it should be returned in GetSchemaExtensions, GetUpdatableProperties and GetSearchableProperties. Is this correct? YES

• What about "FIMS standard" supported properties (the ones defined in description-V1_0_7.xsd)? Should we also return them in GetSchemaExtensions, GetUpdatableProperties and GetSearchableProperties? YES

• Could we also expose standard FIMS technical metadata to be used in the searches? (For example, "title = NY and aspect_ratio = 16/9") YES

• Documentation to include Events configuration in the system.» Documentation shall reflect these questions. (REPOSITORY GROUP)