EAI - Shared Database
Identification
Name: EAI - Shared Database
Category: Application/Technology
Version: v1.1
Modelling/Architecture Pattern: Architecture Pattern
Synonyms: No data
Contributor(s): Ed Walters
Attribution: This pattern is based on information in “Enterprise Integration Patterns” (Hohpe, Woolf 2003), supplemented by internet and Wikipedia searches.
Description
Context: In most enterprises there is a mix of different applications and technologies that supply its automated information system needs. These will have been acquired from multiple vendors at different times. Information though needs to flow around the enterprise as smoothly and seamlessly as possible, ‘boundaryless information flow’, hence there is a need to integrate data managed by a set of heterogeneous applications. There is also an expectation for modern enterprises to be able to exchange information with many sorts of external entities, including Customers, Partners and Regulators.
Problem: The problem that recurs is the need to ‘integrate’ the data of distinct applications both within the enterprise and to link up with external entities. • Information Portal • Data Replication • Distributed Business Processes • B2B Integration • Master and Reference data
EAI - Shared Database may be a solution to some of these integration needs.
Trade-offs, Design Constraints (Forces): There are a number of forces to balance in an integration solution. The integrator must consider: • Performance issues • Latency issues • Security issues • Robustness and the implications of failure to integrate • Scalability of the solution
Solution Structure:
Shared Database is one of a number of possible data integration solutions. In Shared Database a number of applications share a common database, ensuring they all have access to the same ‘version of the truth’. For this to be successful, it's essential the applications' understanding of the data is based on a common data model. The access to the data is enabled through database drivers installed locally, provided by a Database Management System (DBMS). The DBMS handles contention for resources and offers facilities like record locking and ACID transactions.
Solution Dynamics: In Shared Database no movement of data is necessary to achieve integration and data consistency is assured.
Layers/Aspects of the ArchiMate modelling language used: Applications/Technology.
Variants, Refinements and Combinations: The idea of accessing common data values is at the core of Master Data Management (MDM) strategies. This pattern of integration could be usefully combined with the RPC Pattern to form a more robust system.
Known Uses: Shared Database is one of the publicised benefits of adopting ERP solutions rather than Best-of-Breed.
Other comments and references: The principal problem with this arrangement is that applications are tightly coupled through the database structures, if given unencapsulated access. The database designer has the difficult task of designing schemas that suit all applications, and/or the applications may need tortuous code to accommodate the data available to suit their needs. Changes in the database structures or the applications could imply a lot of knock-on work, making for some reluctance to take on necessary changes.
Shielding the database by using a system of data services would alleviate some of these issues, which otherwise might be classified as something of an ‘anti-pattern’ in a modern setting. Applications don’t really need to share a common physical database, but they do often need to access ‘common data’. This form of integration spills over into the realm of enterprise Data Governance/Data Management where there are lots of issues to consider, well beyond the scope for discussion here. For example, which application manages the ‘golden record’ of any given entity type is one such issue, and the answer to this may be more political than technical.
Pattern Metamodel
Example(s)
In this example the Sales system reads Customer data and writes Sales transactions to a relational database. The Invoicing system reads Sales and Customer data from the same database and has a shared understanding of the meaning of the data.
Downloadable Model
[EAI_Shared_Database.xml]EAI_Shared_Database.xml