Interop Architectural Patterns

Architectural design patterns that are relevant to the Interop initiative

As UW-Madison plans its approach to major transformative IT and business initiatives such as Interop, Administrative Transformation and others, terms like Domain Driven Design (DDD) and Master Data Management (MDM) are entering the UW-Madison lexicon. This paper provides definition and context for these and related terms as architectural patterns and practices for integrating systems and business processes.


Definitions and References


Domain Driven Design (DDD): An architectural design pattern that emphasizes managing complexity by closely aligning the technical and software models of complex systems with the business and process models of the organization1. The term “domain” in this context refers to a business discipline or body of knowledge. DDD is often used in conjunction with Microservices Architectures to create interfaces between systems that are well-defined, consistent and resilient to change, and that are a reflection of business data and capabilities2


Master Data: Also called reference data, master data3 represents the core entities of an organization (e.g. customers, suppliers, charts of accounts, etc) that must be consistently leveraged across a large number of transactional systems. When viewed in the context of an overall business model, these core entities are sometimes called Enterprise Business Objects (EBOs). The practice of curating master data to ensure accuracy, semantic consistency, security and stewardship is referred to as Master Data Management (MDM)4.


Data Virtualization: An architectural pattern that presents data as if it were part of a unified system5, even if the physical location of the data is spread across multiple systems. Data virtualization is often used to mask the complexity of underlying systems and to enforce structure and rules around data. When data virtualization and aggregation are used to consolidate enterprise data into a common (physical or virtual) repository, the result is sometimes called a Data Lake6.


360° View / Single Customer View: The concept of a single view of a business object (e.g. customer, learner, account, etc) and all of the related records in other systems that provide a full view of that object (often a person) and all of its relationships to the organization. A 360° view can be accomplished through data aggregation and consolidation across systems, but can also be accomplished virtually using data virtualization and integration platform capabilities7.


Integration Platform: a set of integration components that provide a “hub” for application integration and data exchange. Integration platforms are frequently used to publish and consume application programming interfaces (APIs), but can also expose business events (e.g. hires, terminations) or present Master Data in a normalized and structured format via data virtualization. An integration platform is a key infrastructure component for increasing organizational agility in implementing and managing systems and data8.


Microservices: An architectural pattern that emphasizes applications as collections of components that are modular, self-contained and organized around business capabilities9. Microservices are used to define and enforce standard methods of exposing business functionality and data, and also help to create durable and resilient interfaces between systems. Microservices are an increasingly important approach to designing agile and scalable systems that can effectively leverage cloud providers such as Amazon, Microsoft and Google10.



Putting it together:

The architectural patterns above provide a very rich toolkit for transforming our application integration environment and ensuring that IT systems support UW-Madison’s vision for business process transformation. The diagram below suggests one possible way that these architectural patterns can work in concert to articulate an agile, resilient environment that applies appropriate security, governance and control:


arch graphic


In the above example, domain-driven design practices establish a business context and guide the specification and development of enterprise business objects and microservices that represent standard interfaces to business objects. An integration platform provides the security, governance and structure necessary to publish those interfaces. Master data practices ensure that the business’ core entities are effectively defined and curated. Finally, 360° views of those core business entities is facilitated by a data virtualization layer that masks the complexity of the underlying business systems. Data governance, security and compliance and business process transformation are cross-cutting elements in the above architecture.


Benefits of these patterns:

  1. Complexity and implementation details for specific line of business systems are better encapsulated, reducing the scope and impact of change to those systems.

  2. An ‘integration platform’ approach allows for improved standardization, greater transparency and visibility, and more direct application of security policies than a distributed approach.

  3. Domain-driven design practices help ensure that IT systems and interfaces are well aligned to the business processes and capabilities that they represent.

  4. Master data practices ensure that there are common definitions and clear stewardship of data that is used across a variety of line-of-business systems.

  5. A 360° view of business entities across systems is a strong business enabler, and helps to shield consumers from complexity in the underlying systems.



Endnotes and References


  1. Domain Driven Design (Eric Evans, 2004) https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/


  1. Applying Domain Driven Design to Microservices Architecture (IBM Whitepaper) https://www.ibm.com/cloud/garage/practices/code/domain-driven-design


  1. Master Data Management (Gartner IT Glossary) https://www.gartner.com/it-glossary/master-data-management-mdm/


  1. Implementing the Technical Architecture for Master Data Management (Gartner) https://www.gartner.com/document/3901669?ref=solrAll&refval=222566553&qid=9f592e50dbeb9635c1b7ff2b6


  1. Leveraging Data Virtualization in Modern Data Architectures  (Gartner) https://www.gartner.com/document/3901669?ref=solrAll&refval=222566553&qid=9f592e50dbeb9635c1b7ff2b6


  1. Assessing the Optimal Data Stores for Modern Architectures (Gartner) https://www.gartner.com/document/3902318?ref=solrAll&refval=222575669&qid=6394afe59379b9bcc906e89c9


  1. Building a Single Customer View using APIs (Mulesoft Whitepaper) https://www.mulesoft.com/lp/whitepaper/api/single-customer-view-using-apis


  1. Integration Architecture and Platforms (Gartner) https://www.gartner.com/explore/initiatives/overview/16088?ref=solrSearch&srcId=1-5418502758


  1. Microservices - https://microservices.io/


  1. How to Design Microservices for Agile Architecture (Gartner) https://www.gartner.com/document/3891779?ref=solrAll&refval=222569142&qid=b3ca7bd82b8b6cb99cc9ebee





Keywords:interop architecture domain design master data   Doc ID:95706
Owner:Tom J.Group:Interoperability
Created:2019-11-08 14:51 CDTUpdated:2019-11-08 15:03 CDT
Sites:Interoperability
Feedback:  0   0