SOURCE PowrTagR Fedora CMA
From DigiRepWiki
CMA Object Variations (data, sDef, sDep, cModel):
- Data a container for content
- data object has 3 parts: foxml:digitalObject, foxml:objectProperties,foxml:datastream
- data may have many content models -> sDef operations
- Service Definition A container for service definitions, an element of a content model
- sDef describes the Service and Operations it performs.
- is an endpoint that may be called to execute operations <-OOP
- to execute operation must identify data object, sDef and name of operation
- Some operations use content form datastreams (supplied by the data object)
- operation prescribed by client program or browser requestingexecution
- way of saying 'this dataObject supports these operations
- defines a 'behaviour contract'
- sDef using identifier resolver system can be used by multiple repositories
- Service Deployment A container for the service deployment bindings
- is local to repository, only operates with scope of local repo
- can make amendments to sDef
- represents how a service is implemented by the repository
- sDep stores concrete service binding metadata
- interprets to client which operators from the sDef that the sDep will deploy
- describes the runtime binding for invoking service methods
- WSDL used by Fedora to dispatch method requests for representations of DOs (via operations)
- sDep contain contract between teh service and class of Data objects (as defined by cModel)
- sDep objects are not freely shareable accross repositories by default
- is local to repository, only operates with scope of local repo
- Content Model A container for content models
- operations for class' are similar, need to distinguish between operations and content class name
- rather than directly reference sDef to data
- All objects are organised into classes by CModel object.
- data asserts its relation to cModel 'hasModel'
- data should have datastream listed for each cModel it asserts
- all objects assigned to default cModel which asserts basic sDef
- A cModel is free to assert to more than one Service
- A Service may be related to many cModels
- operations for class' are similar, need to distinguish between operations and content class name
- To GET item, syntax would be: Repository : Get : Data object PID : SDef PID : Operation Name : Optional Parameters
D's notes:
- better to think of CMA in terms of verbs (actions/operations) rather than nouns (objects).
- Some quotes from learned colleagues in regards to how to think about OOP:
- twitter.com/jimdowning/status/1011278768
- twitter.com/wee0ne/status/1011282807

