Principles of Data-Centric Design Data-centric design recognizes
that the essential invariant is the information exchange between
systems or components. It describes the exchange in terms of a
"data model" and data producers and consumers of the data; and
it relies on four basic principles: - Expose the data and
metadata. Data-centric design exposes the data and metadata as
first-class citizens, and uses them as the primary means of
interconnecting heterogeneous systems. "Data" is the primary
means of describing the "world as it is," independent of any
component-specific behavior. Metadata refers to information
about the data's layout and structure. A data-centric interface
is defined by the metadata, which must contain all of the
information required to encode and decode the data in a given
format. - Hide the behavior. Data-centric design hides any
behavior and direct references to operations or code of the
component interfaces. A component interface cannot embed any
component-specific state or behavior. Com