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