Data Contracts, SOA and CMI Data Model

1 view
Skip to first unread message

Aaron Silvers

unread,
Sep 7, 2010, 3:06:04 PM9/7/10
to CMI Harmonization
The following was forwarded to me by Justin Watkins of Career
Education Corporation (JWat...@careered.com):

"My current issue with SCORM and the CMI data model is both are
tightly coupled and can't necessarily be broken apart.  This is a
fundamental concept of a SOA architecture, which is where I'm assuming
SCORM will end up.  The other issue, partly related is the data
contracts are very coarse grained.  For example, I'm a person.  I have
certain attributes about me.  The basic information about me is a fine
grained data contract.  I may have taken courses, have some relevant
personal experiences and have some specific goals to accomplish.  All
of that wrapped into a contract would be course grained.  Now, there
is a lot of great information in this coarse grained contract and I
want to share this information with my friends and colleagues but each
one only cares about a subset of my information.  Since I only have a
coarse grained contract I have three options, 1) give my friends and
colleagues everything in the course grained contract 2) give my
friends and colleagues the entire contract, but only populate the data
they are interested in or 3) break the contract and send only the data
elements that they care about in whatever schema.

"It's a simple example, but it illustrates how having a coarse
contract can limit its use.  Translating this to a physical world and
specifically XML, you would have an XSD that represents your coarse
grained contract that is composed of smaller XSDs the represent your
smaller data elements.  Each can be used independently without
violating any data contract.  Another benefit of XML is we have the
ability to use namespaces appropriately so we can extend the data
contracts or even add more meaningful information to the data.  Say I
want to add semantic information to my BIO by either including a
microformat or simply enhancing the data by adding in-line meta data
(for example, wrapping Career Education Corporation with a
<custom_metadata:company> tag).  I can extend the contract with my own
custom namespace and not break the overall SCORM contract."

Reply all
Reply to author
Forward
0 new messages