Enterprise Data Retrieval Services
From ViaNovaArchitecturaWiki
- This pattern has been originally described in the article “Architecture Patterns for Enterprise-wide SOA” [Cace, 2008][1]

Figure 1 ‘Basisregistraties’ - centralized registers of the City of Amsterdam. This scheme has been translated from an official site of The City of Amsterdam [2]. It shows the so called “basisregistraties”, six centralized data stores (information registrations) that are maintained by the municipality.
Contents |
Context
… at the heart of many organizations, especially those that are administrative in nature such as government agencies and insurers, there needs to be a central, shared data store. That data (for example, customer or citizen records) is accessed in real-time by most of the organization’s business processes including the automated process execution of Business Process Composition and the channel applications supported by Multi-channel Bridging. This pattern ensures that the data is consistently used across the organization’s processes.
Problem, Forces and Tensions
Data replicated in various information systems of the enterprise is difficult to keep consistent and this hampers the agility of the organization.
Data replication is most commonly a legacy of ‘stovepipe’ solutions, typically implemented in 4GL. Let’s take a government agency as an example. The citizens’ data maintained by the agency is stored in multiple databases that together form a (logical) central registry of the relevant citizens’ records. These records are needed in other databases that belong to multiple information systems, mostly implemented in some 4GL. Most commonly, 4GL environments require all databases to be integral parts of a single, tightly coupled system. Updates, either batch bulks or individual transactions are preferably applied only to the central register and then periodically propagated to other databases.
This solution has several inherent problems:
- All of the organization’s major systems are logically tightly coupled by the data model.
- Data that is dynamic in nature needs to be kept synchronized across all systems which is technically challenging .
- It is error prone – technical problems easily lead to data inconsistency that sometimes goes unnoticed.
Therefore:
Solution
Expose the data that is shared across the organization as data retrieval services. Cluster the data in a way that ensures maximum service coherence.
Figure2: Retrieval services exposed to interaction channels
Resulting Context and Consequences
{needs editing}
In this pattern, a central register allows real-time access to its data records. An organization may have multiple central registers - data coherence determines the boundaries between the registers. Define individual data retrieval operations in such a way that the number of requests will be minimized (for more on enterprise data access issues refer to [Lublinsky, 2006]). This creates layers that enable enterprise agility – regarding which an enterprise-wide data layer is a good place to start.
When exposing data outside the organization (EXTENDED ENTERPRISE business pattern [Adams, 2001]) consider first using Web Services and a solution like WEB SERVICE GATEWAY [IBM,2008] or similar.
If data from multiple registers and other systems needs to be combined, use the Composite Retrieval Services, eventually combined with the Replication in the Middle pattern.
Consider using an ODS solution while migrating from the legacy data sources.
Please note that Enterprise Data Retrieval Services is an anti-pattern when used outside of context, and that happens in practice too. Retrieving enterprise data via services may cause serious performance problems in batch processing - services are not meant for that purpose. On the other hand, accessing enterprise data via services works perfectly well in all kinds of interactive applications and process orchestrations (see Business Process Composition).
Examples
{Example(s) of applying the pattern.}
Example {company name or another reference}
Example {company name or another reference}
References
- [Adams, 2001] J. Adams et al: “Patterns for E-Business: A Strategy for Reuse”, IBM Press, Oct. 31, 2001, ISBN-1931182027 (the most of the contents also available in [IBM, 2008] and the so called “Red Books” of IBM)
- [Alexander, 1977] C. Alexander et al, “A Pattern Language”, Oxford University Press, 1977
- [Cace, 2008] B. Cace, “Architecture Patterns for Enterprise-wide SOA”, Via Nova Architectura, 2008 [3]
- [IBM, 2008] IBM’s developerWorks site, IBM Patterns for e-business, [4] and [5]
- [Lublinsky, 2006] B. Lublinsky: “Incorporating Enterprise Data into SOA”, InfoQ, Nov. 22, 2006, [6]
