Level: Introductory Rob Cutlip (cutlip@us.ibm.com), Software and Solutions Architect, IBM
23 Aug 2005 Optimization within IT is a broad and varied topic. In this article, I will introduce the broader problem of optimization and a model that can be used to solve it. I'll examine the role of both the Common Event Infrastructure, as well as the notion of both local and global or orchestrating autonomic managers in addressing the optimization challenge.
Introduction
A quick look at almost any current IT survey reveals that optimization ranks high. More than any other issue, except perhaps for the ubiquitous and unrelenting concern for security, optimization leads the list of issues that the IT community cares about.
From a business perspective, the appeal of optimization is obvious and consistent with the goals of any organization -- delivering customer value in a timely and cost efficient manner. It’s a value proposition that’s not lost on the decision makers across the IT organization. In the day-to-day world of IT, optimization translates into more efficient use of resources, as well as lowered management costs.
The architectural challenge
A list of the architectural needs for an autonomic computing system might read something like this:
- It must "know" its components and their controls.
- It must adapt or change configuration with a changing environment.
- It must continually optimize to meet goals.
- It must recognize and remedy "out-of-bounds" conditions.
- It must protect itself from attack.
- It must be context aware: for example, it must be aware of its surroundings and available resources.
- It must operate within a heterogeneous environment and must leverage open standards.
- It must have system-wide, predictive, anticipatory capabilities.
One could argue that virtually all of these needs have some relationship to optimization. That is to say, the optimization challenge spans the depth and breadth of the architecture that comprises most systems.
With the optimization problem, like the simple problem presented in Figure 1, it’s important to have a stepwise means of deconstruction so that you can efficiently reach a solution. To solve this problem, you need to understand the context, properly state the problem, and apply an appropriate model to solve it. Bear with me for a just moment as I use this approach to illustrate solving the simple problem stated in Figure 1.
The context of the optimization problem
You need to step back and take a broad perspective to fully understand context. For example, if you look at Figure 1, you see a simple graphic representing the environment and a simple question representing the problem. To solve the problem you need to understand that it is necessary to take a broad, encompassing, and complete view.
As with optimization, to solve the problem below you need to consider all subsystems in context, not just individually, one at a time. The IT context for this article is a distributed, heterogeneous environment.
Figure 1. The problem statement
You need to clearly understand the problem statement and associated semantics. The next step in solving the problem in Figure 1 is much the same in solving the optimization puzzle within IT; you need to deal with the semantics at hand. From Figure 1, the problem statement, "Which figure is most different" is a bit difficult to parse. What if you restate the question as, "Which figure is least alike?" After you understand that the question is inviting a comparison, the next challenge is to understand which characteristics you are comparing -- in other words, the constituent elements that make up the patterns in the final step.
Similarly, semantics in terms of optimization can be perplexing. When you speak of optimization, you often talk about local optimization and global optimization. Local optimization occurs locally within systems, such as the database subsystems or storage subsystems. The optimization that occurs within a subsystem is, for the most part, occurring independent of activities within other subsystems. Global optimization occurs across systems within the enterprise and may involve resource virtualization, as well as workload management and capacity management.
The model that fits the optimization problem
You need to choose the appropriate model for the problem at hand. The right model can help solve the problem.
For example, each of the five elements or figures within Figure 1 can be modeled to have three levels: the outer level, the middle level, and the inner level. Careful observation reveals that elements of the five objects can also be classified in terms of shape and color. The simple lesson here is that getting the proper model is key to solving this problem. What architectural models might you use to effect optimization?
For global optimization within distributed, heterogeneous environments, it is equally important to choose an appropriate model. In the next section I'll explore how you chose the appropriate model from the three listed in Table 1.
Table 1 illustrates a few of the architectural models that historically have been used to achieve optimization in man-made systems.
Table 1. Three architectural models compared
| Object-oriented model |
- Limits visibility of components and component information to only those who need to know
- Monitors system constantly
- Dynamically provides best-choice response
| | Fault-tolerant model |
- Maintains set of faults or conditions
- Can detect and correct
- Monitoring constantly, can adjust when out-of-bound conditions are detected
- Often coupled with the notion of "Role Play and Assumption"
| | Goal-driven model |
- Local, semi-autonomous optimization abounds
- Delegation of responsibilities, local and global
- Global optimization "satisfices" based on global goals
- Can support adaptive behaviors
|
 |
A living example
This approach is, in fact, analogous to the way livings systems work.
- Example of local optimization:
- A human kidney will begin working autonomously and efficiently immediately after transplant
- Example of tolerance for local inefficiencies:
- The human vestigial vermiform appendix serves no apparent purpose
- Example of global optimization:
- Animals adapt to flight or fight situations through the release of hormones such as adrenaline. These hormones allow an animal to marshal a number of resources to address global goals.
|
|
The first two models have been widely used in a number of applications, especially within real-time domain where system-wide or global optimization is a must. The object-oriented model has been employed in a number of ways including management of specialized satellite networks.
The fault-tolerant model has many manifestations; the table shows only one. This model has been widely applied in a number of real-time, safety-critical, requirements systems, such as air traffic control. These kinds of systems need high levels of optimization in order to meet operational objectives.
The third model, the goal-driven model, is highly suited to optimization within distributed IT environments. The first two models are typically closed systems. The hardware, the software, and the system behaviors are well defined and relatively static. The goal-driven model is, by contrast, an open, adaptive model and ideal for autonomic computing systems. It also easily supports the notion of both local and global optimization as two distinct but related entities. In other words, this model tolerates local inefficiencies that are unlikely to have an adverse effect on the global optimization goals.
Having used Figure 1 as the exercise to show value of the approach (establishing context, problem, and model), let’s take a closer look at how autonomic computing can address optimization within a distributed, heterogeneous environment using the goal-driven model.
Autonomic computing architecture: Infrastructure
First, you need to take a brief look at the infrastructure required to loosely couple a number of otherwise disparate IT subsystems. Here you get a feel for the context. In establishing a context, you use a Common Event Infrastructure that can support the notion of integration as well as orchestration. (See Resources for a link to an article on Common Event Infrastructure.)
Figure 2 shows a number of subsystems, including application servers, database servers, hardware servers, networks, and storage, as well as management software. All of these subsystems can, and do, affect local optimization. But the problem you are here to solve is one of global optimization through integration and orchestration.
Figure 2. Self-managing systems: Common Event Infrastructure
 |
Answer to "Which is different?"
Just to recap, the answer to the problem statement in Figure 1 is the object or figure labeled a at the top left-hand corner. As stated earlier, we rephrase the question to something a little more familiar, "Which figure is most different?" Figures a through e differ from each other by shape or color or both. If we compare Figures b through e with each other we find that they differ by two characteristics. However, Figure a differs by only one characteristic. When Figure a is compared to Figure b, it differs by the shape of the innermost component. When Figure a is compared to figure e, it differs by the color of the innermost component. |
|
In Figure 2 you see that the IT subsystems can be linked together using the Common Event Infrastructure (CEI). The CEI provides basic event services and acts as an integration point for consolidation and persistence of raw events from multiple, heterogeneous sources, as well as the distribution of the events to event consumers. Events are represented using the Common Base Event that is a standard XML-based format for defining the structure of an event. (See Resources for a link to an article on using the Common Base Event model for log events.)
Using this common infrastructure, both software and hardware products within the various subsystems shown in Figure 2 can integrate and allow for correlated events across domains. The Common Event Infrastructure provides facilities for generation, propagation, and persistent consumption of events. The CEI is an autonomic computing architectural construct that might typically be instantiated using an Enterprise Service Bus (ESB).
With the requisite event infrastructure defined, it’s time to examine the role of autonomic managers in IT optimization.
Autonomic computing architecture: Autonomic managers
The high-level view of the autonomic computing architecture to support cross-domain optimization (another phrase for global optimization) through the use of an orchestrating autonomic manager is shown in Figure 3. Through this infrastructure, you can implement the goal-driven model to affect global optimization within a distributed, heterogeneous IT environment.
Figure 3. Global optimization leveraging an orchestrating autonomic manager
Local optimization is achieved using the local autonomic managers that take advantage of both autonomic constructs such as the control loop and local objectives. As shown in Figure 3, the local optimizing autonomic manager’s instantiate control loops to address local optimization of resources.
A global orchestrating autonomic manager, as shown in Figure 3, also makes use of a control loop as well. The orchestrating autonomic manager effects global optimization based on system-wide goals and objectives. You can call these goals and objectives policy. In the diagram, the global autonomic manager receives information through the Enterprise Service Bus. For your purposes, this information is generally be referred to as event demand indicators. Using this information, as well as other information, including performance data derived from the k-source (knowledge source), the global autonomic manager can generate messages to effect global optimization. In Figure 3, I have loosely classified these messages as event adjustments.
Wrap-up
The problem I am solving through autonomic computing is one of effecting global optimization among a group of loosely coupled IT subsystems. From the proceeding section on addressing the autonomic computing infrastructure, I gleaned an appreciation for the context in which to frame the optimization problem. Here, the Common Event Infrastructure can support both the notion of integration, as well as orchestration, when used in conjunction with both local and orchestrating autonomic managers.
Resources Learn
Get products and technologies
Discuss
About the author  | |  | Rob Cutlip is a Software and Solutions Architect on the IBM Autonomic Computing team. |
Rate this page
|