230 likes | 357 Views
Towards a Model-Based Characterization of Data and Services Integration. Paul C. Brown Principal Software Architect. Context: Interacting Systems. Overlapping Information Views. Multiple Schemas. Domain Model: Conceptual Abstraction. Concepts, relationships, key attributes.
E N D
Towards a Model-Based Characterization of Data and Services Integration Paul C. BrownPrincipal Software Architect
Domain Model: Conceptual Abstraction • Concepts, relationships, key attributes
Mapping Concepts to Representational Schema • Concepts, relationships, key attributes
Information Realities • Canonical data model myth • One size does not fit all: complete concept vs. reference • Vocabularies vary • Think about the multiple meanings of “attribute” • “Procedure” to a physician vs. health insurance company • Information evolves • Medical procedure code change ICD-9 ICD-10 • Versioning is important • Information is replicated • Consistency is an issue
Data-Related Model Requirements • Network- and tree-structured representational schema (e.g. database schema, XSDs, JSON, record formats) • Mappings between representational schema • Abstracted models of concepts and relationships • Independent of representational schema • Mappings between the abstracted concepts and representational schema • Flexible vocabulary • One concept many terms • One term many concepts • Versions of representations and mappings • Mappings whose expression requires some form of computation
Service Realities • Many operations are not pure functions • Operate on persistent state (information) managed by the service • Operations are not independent • Sequencing constraints, business rules • Services often house cached data • Cache update protocols and timing • Impact on service operations • Vocabulary (terminology) varies and overloaded • Particularly between organizations • Services evolve • Versioning is important
Service-Related Model Requirements • Representation of: • Services and their interfaces • Service operations and their data structures • State and state instances • Relationship between service operations and service state • Dependencies between service operations • Versions and mappings between versions • Abstracted concepts related to services operations • Mappings between concepts and concrete service models • Flexible vocabulary • Mappings whose expression requires some form of computation
Process (Service Utilization) Realities • Services may be involved in multiple processes • Protocol semantics must be understood • REST, SOAP, XML over JMS, HTTP, file transfer, etc. • Coordination must be understood • Fire and forget to distributed transactions
Process (Service Utilization) Model Requirements • Observable behavior of the service as viewed through its interfaces • Service usage scenarios • Sequencing and dependency constraints between service operations • Coordination of activities between components • Versions of observable behavior, usage scenarios, sequencing, and coordination • Mappings between versions
UML Can Satisfy Many Modeling Requirements • UML can represent concrete things • Data structure schema • Services, operations, state machines • UML can represent abstractions • Concepts and Relationships How do we model mappings and multiple vocabularies?
Semantics of Business Vocabulary and Rules (SBVR) Abstract concepts and relationships Concrete schema and other representations
SBVR Can Complete the Modeling Picture • SBVR can represent mappings (simple and complex) • SBVR handles multiple vocabularies for concepts • SBVR can be used to relate multiple UML representations
What We Need • Uniform approach to modeling • Abstract and concrete concepts and relationships • Multiple domains with relationships • Bi-directional Mappings • Abstract concrete models • Concrete concrete models • Concrete models actual schema • Schema schema mappings • Versioning at all levels + mappings between versions • Tooling • Schema Concrete model + schema-model mapping • Concrete mappings schema mappings (e.g. XSLT) • Abstract mappings concrete mappings UML and SBVR seem to have the required building blocks!