Improving an Organization’s Information Management
The problems that MCHS Trading is experiencing are typical for many organizations. Information is distributed across multiple applications for operational efficiency, leaving the information duplicated, fragmented, and often inconsistent. As a result, the organization cannot act in a coordinated manner:
- They find it hard to get an overall picture of how well the organization is performing. This requires a consolidated view of their business activity, showing the current position, along with a historical perspective for comparison. For example, MCHS Trading would want to understand how many customers it has, what types of products its customers are interested in buying, how this is changing over time, how efficient the delivery process is, who its best suppliers are, and much more if it is to maintain its market leadership position.
- The quality of information varies from application to application. This means different parts of the organization are operating on different facts that could lead to different decisions being made for the same situation.
- The internal fragmentation of the information is often exposed outside of the organization, creating poor customer service or missed opportunities. This was Alistair Steiff’s experience when he tried to change his address—he had to ensure it was updated in each application—using a different process for each one.
- External regulators are skeptical that the organization’s reported results are accurate when ad hoc processes are used to create them because it is difficult to explain where the information came from and how the results were calculated.
- Information is not retained for the required amount of time—or too much information is retained for too long. Either case can inhibit the ability to find the right information in a timely manner.
- Failures in the mechanisms that move information around can corrupt the integrity of the organization’s information. These failures may be errors in the information itself, which means it cannot be transferred, or errors in the implementation of the mechanism, or a failure to initiate some processing in time, resulting in missing information. These failures may not be detected for some time and can be extremely difficult to resolve.
An organization needs to maintain a strong core of information to run the business. This requires a focus on how key information is created, processed, and stored within its IT systems:
- They must optimize where information is located relative to the workload that is using it—ensuring copies are taken in a thoughtful way and these copies are supported with mechanisms to maintain or remove them as new information becomes available.
- Related information should be correlated together to create a complete picture of the organization’s activities.
- Obsolete information must be removed to save storage and reduce the processing effort. Vital historical information needs to be retained.
- Information must be protected from inappropriate use, restored after a failure, and, despite the fact that most organizations have their silos and cliques, the right information needs to be exchanged and presented to the right people at the right time.
This is hard to achieve. Technology is often focused on providing function to the business rather than managing information. Specialist information management technology helps, but it has to be blended with the existing infrastructure. The blending process creates emergent properties.
Emergent properties are those characteristics that “appear” when components are combined together in a particular configuration—rather than being inherent properties of any one of the components. This is similar to the behavior of colors when you mix them together. If you combine blue and yellow, you get the color green. Green is an emergent property because it is not present in either the blue or the yellow—and only emerges when they are combined.
When we combine technology together, we also get emergent properties. These emergent properties may be additive, or they may override some of the components’ original capabilities.
Consider two applications sited on opposite coasts of the United States. The application on the East Coast needs to regularly send information to the West Coast application. However due to the different time zones in which they operate, there is a 3-hour period of its operation when the West Coast application is not available. It is not possible to extend the period of operation of the West Coast application—and the East Coast application is not capable of buffering the information until the West Coast application comes online.
The solution is to provide a new database that is available whenever either application is online (see Figure 1.3). The East Coast application writes information into the database. The West Coast application processes the information in the database when it becomes available.
Figure 1.3. Using a staging area between two applications.
This is a common integration approach. The database in the middle is acting as a staging area. Its effect in the integration is to expand the time window that information can be transferred between the two applications. It may also improve the resiliency of the integration because the East Coast application is no longer affected by the occasional outages of the West Coast application. However, the downside is that when both applications are available, the staging area slows down the transfer of information between the two applications because there is a small delay between the East Coast application writing the information and the West Coast application picking it up. The time it takes to transfer information between two systems is called the latency of the information transfer.
The increased availability, latency, and resilience are all emergent properties of the integration. In general, the emergent properties relate to non-functional characteristics that may not be evident until the integration is in production. This is why architects like to use tried and tested approaches where the emergent properties are well understood.
This book describes how the flow of information between applications and other systems should be designed, calling out the emergent properties as they occur.
The aim is to shape the placement of workload and information stores within the IT systems to create an orderly flow of information that guarantees the quality of the results. The material is presented as a set of connected software design patterns, called a pattern language.