Closing the Loop: Using SOA to Automate Human Interaction
One of the big advantages of Web services is their ability to wrap existing system interfaces and make them more easily accessible. This is particularly useful for companies that have significant investments in tools that provide excellent functionality but were not designed for their ease of interface. Coupling Web services with a service-oriented architecture broadens the scope of these tools. Many companies are actively seeking to service-enable key systems so that they can be used across the enterprise as a part of a SOA ecosystem. In this paper, we're seeking to add another type of key system to the list, the analytical tool. These tools have become extremely common, and many companies are using them in conjunction with Extract, Transformation, and Load (ETL) tools to turn detailed transactional data into key information assets. Most of these analytical solutions are used to create reports that are reviewed by humans who then determine what, if any, action should be taken.
Analytical tools have proven to be very successful, providing businesses with invaluable information about business performance. However, having the events interpreted by human actors still has its share of possible problems:
- Cost of hiring and training people to review the reports
- Time for a person to review, understand, and act upon the reports
- Human error in interpreting the reports
Service-enabling an analytical tool allows these information assets to be used programmatically to extend existing operational systems. We're proposing a specific type of component (a Service-Enabled Analytical Interpreter—SEAI) to service-enable an analytical tool. Using this new component, we then demonstrate how to use it to build self-correcting business systems by implementing Business Analytical Feedback Loops and Business Exception Correction mechanisms.
This article presents several key concepts:
- A business analytical feedback loop uses an external component (SEAI) to logically extend an attribute or process. This functionality extends an existing use case and provides data or additional functionality to enhance the normal processing of the system. The new feature might provide an alternate flow for an existing use case. One clear characteristic of a feedback loop is that it represents a "fine-tuning" of system behavior using existing business concepts.
- A business exception correction mechanism uses an external component to detect exceptional business conditions. The condition is represented as an event and triggers behavior that handles the exceptional flow using services and data owned by the existing application.
- A Service-Enabled Analytical Interpreter (SEAI) provides a remote service interface that subscribes to the analytical tool to transform a variety of logical analytical events that are interpreted by the SEAI and converted into behavior that is supported by the existing system. This allows companies to apply the multi-dimensional analytics capabilities of analytical tools programmatically.
There are undoubtedly many applications for an SEAI, but we're focusing on the two we've just defined: business analytical feedback loops and business exception correction mechanisms. In this section, we'll explain how an SEAI could be used to implement these concepts.
Business Analytics Feedback Loop
The following picture presents a logical view of a business analytical feedback loop.
The feedback loop shows the logical flow of order placement data (either being published by the existing system or extracted using a traditional ETL tool) from the purchase order system and the flow of sales information from the Point of Sale (POS) system into the data mart. The analytical tool creates a report comparing actual sales trends to predicted demand. The report shows demand tracking ahead of the predicted level. A "Demand Update Event" is generated by the analytical tool and published to the SEAI. The SEAI uses metadata to determine what systems are potentially interested in the event, and applies rules to the event to determine what action, if any, to take based on the revised actual demand numbers. In this case, a threshold rule is triggered that indicates the start date for any existing markdowns for the product should be pushed out.The SEAI interprets the rule and adjusts the existing markdown's start date based on the revised demand profile.
This example shows several key aspects of a business analytical feedback loop. First, the analytical functionality provides the same kinds of information that one would expect from a traditional Decision Support System (DSS). Secondly, the SEAI can use a combination of metadata and rules to establish the relationships between analytical events, all known subscribing systems, and the specific rules that need to be evaluated to determine what actions (if any) should be taken. Finally, the overall function of a feedback loop is to "fine-tune" the existing behavior of the existing Pricing system based on actual inventory and sales data without requiring human intervention.
Business Exception Correction Mechanism
The following diagram presents an example of a business exception correction mechanism.
The diagram shows data flowing from the warehouse inventory system to the data mart in response to store inventory requests. The SEAI rules compare the current inventory levels to planned demand. This comparison shows demand running ahead of plan and triggers a "Low Inventory Level" alert. The action associated with the rule causes the SEAI to create a new purchase order request in the purchase order system. Fulfilling this request will bring actual inventory levels into compliance with the revised demand estimate and allow the system to continue normal functioning without depleting existing inventory.
These mechanisms are distinct but both share some key concepts. Both use some sort of secondary (non-transactional) data store. Both use metadata and rules to establish relationships and determine actions, but the results are different. The Business Exception Correction Mechanism creates an automated response that leverages an existing function to prevent an actual error (inventory out-of-stock). The Business Analytics Feedback Loop "fine tunes" existing attributes in response to non-exceptional business conditions thereby improving operational business efficiency and profitability. The behavior of both systems is event-driven and message-based.