1 / 97

SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

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

lave
Télécharger la présentation

SPECIFICATION OF THE FIMS MEDIA SOA FRAMEWORK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SPECIFICATION OF THEFIMSMEDIA SOA FRAMEWORK REPOSITORY SERVICE INTERFACES Loic Barbou & Ashraf Tadros

  2. 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

  3. Update since Geneva • Design Changes • Extension model for enumeration • New version of XSD and WSDL • Outstanding Tasks • Simplify design for Event models

  4. Goals for Today • Validate • Operation and Object Names • Objects impacting FIMS base services • NOT work on • Redesigning API • Adding requirements

  5. BMContentType Structure • BMContentType == BMO • BMContentFormatType • BMEssenceLocatorType

  6. 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

  7. 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

  8. Repository Service – Objects to be discussed • RepositoryProfileType • To be renamed to CredentialType • Add extensionGroup • Add object to baseServices XSD “To be discussed during FIMS DEV meeting 21st” • QueryParameterOperand Replace with QueryParameterOperator • QueryGroupOperand Replace with QueryGroupOperator • Enumeration Extension  No red flag • ReferenceTypeID

  9. RCR Operations • GetRepositoryState • GetStorageAvailableCapacity • GetPerformanceIndicator • GetRepositoryReport • GetGeneralCapability • GetSchemaExtensions • GetUpdatableProperties • GetQueryResultsetDefinitions • GetSearchableProperties • GetRepositoryDefinitions • GetSuperLockToken • GetSupportedStatus

  10. 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

  11. Presentation from GenevaMeeting

  12. Services • Repository Service • Repository Service Operations • Repository Capabilities Registry (RCR) Operations • Repository Notification Service • Asynchronous Operations Notifications • Events Subscriptions

  13. 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

  14. 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

  15. Notification Service - Async. Operations • Add Content (Notify and Fault) • Purge Content (Notify and Fault) • Purge Object (Notify and Fault) • Retrieve Essence (Notify and Fault)

  16. 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

  17. 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

  18. Clarifications • Status • Object - BMContentStatusType • Content - BMEssenceLocatorStatusType • BMStatusType - new, online, offline, deleted, purged, invalid, processing. • Vendor specific - BMCustomStatusExtensionType. • RepositorySupportedStatusType

  19. Clarifications • Object • BMContentType • Content • BMEssenceLocatorType - SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) • Light Object • BMContentLightType

  20. 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

  21. Repository Service Operations

  22. 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

  23. AddObject • Description • Uses the generated Unique ID. • Submits a new BMContentType to be added to the system. • Request • AddObjectRequestType • Response • BMContentType

  24. 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

  25. AddContent Notification • Notify Result • NotifyAddContentResult Operation => AddContentOperationNotificationType • Notify Fault • NotifyAddContentFault Operation => AddContentOperationFaultNotificationType

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. ClearLock • Description • A mechanism to override a lock. • A RepositorySuperLockTokenType must be obtained from the RCR before calling the operation. • Request • ClearLockRequestType • Response • RepositoryLockTokenType

  32. 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

  33. DeleteContent • Description • Sets the BMEssenceLocatorStatusType for an active BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to ‘deleted’. • No physical bytes are deleted • Request • DeleteContentRequestType • Response • BMContentType

  34. 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

  35. 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

  36. 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

  37. 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

  38. PurgeContent Notification • Notify Result • NotifyPurgeContentResult Operation => PurgeContentOperationNotificationType • Notify Fault • NotifyPurgeContentFault Operation => PurgeContentOperationFaultNotificationType

  39. 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

  40. PurgeObject Notification • Notify Result • NotifyPurgeObjectResult Operation => PurgeObjectOperationNotificationType • Notify Fault • NotifyPurgeObjectFault Operation => PurgeObjectOperationFaultNotificationType

  41. GetBMContent • Description • Retrieves a single BMContentType. • Ability to specify the structure of the retrieved object by setting: RepositoryMetadataFilterOutType: • Null: All available information • Physical: Metadata describing physical essence information • Editorial: Metadata describing editorial content • Request • GetBMContentRequestType • Response • BMContentType

  42. GetBMContents • Description • Retrieves multiple BMContentType(s). • RepositoryMetadataFilterOutType: physical, editorial • Request • GetBMContentsRequestType • Response • BMContentsType

  43. RetrieveBMEssence • Description • Copy an essence BMEssenceLocatorType (SimpleFileLocatorType, ListFileLocatorType or FolderLocatorType) to a known supported destination by the repository – RepositoryKnownLocationType • Request • RetrieveBMEssenceRequestType • Ack • RetrieveBMEssenceOperationAckType

  44. RetrieveBMEssence Notification • Notify Result • NotifyRetrieveBMEssenceResult Operation => RetrieveBMEssenceOperationNotificationType • Notify Fault • NotifyRetrieveBMEssenceFault Operation => RetrieveBMEssenceOperationFaultNotificationType

  45. 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 Parameters Query Definition Operands Group Query Payload Amount of Data Output Definition Data Structure

  46. Query • Request • MediaQueryRequestType • QueryProfileType - RCR • Configures number of total items returned, number of total items returned per page and timeout value for query operations. • QueryInputDefinitionType • Multiple simple and compound search criteria parameters - QueryExpressionType (QueryParameterType, QueryGroupType) . QueryGroupOperandType (and, or) – QueryParameterOperandType (equal, greater, less) and Page number. • QueryOutputDefinitionType • Defines the QueryResultInfoType: noItems, full, light, metadata, physical, specific (Service specific result set – must be defined in the RCR). And specify ordering within query operation – QueryResultSortDirectionType (ascending, descending). • Response • MediaQueryResponseType

  47. 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>

  48. Query • QueryExpressionType: Compound Query: • Title = NY OR Title = Boston OR (DateModified > 2010 AND DateModified < 2012 AND Not (DateCreated=2011)) • QueryGroupType (Compound Query.xml) • operand = OR • parameters • name = Title, value = NY, valueType = string, operand = equal, negated = false • name = Title, value = Boston, valueType = string, operand = equal, negated = false • groups • operand = AND • parameters • name = DateModified, value = 2010, valueType = YYYY, operand = greater, negated = false • name = DateModified, value = 2012, valueType = YYYY, operand = less, negated = false • name = DateCreated, value = 2011, valueType = YYYY, operand = equal, negated = true • Title = NY • OR • Title = Boston • OR • (DateModified > 2010 • AND • DateModified < 2012 • AND • Not (DateCreated=2011))

  49. Repository Capabilities RegistryRCR

  50. 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

More Related