Skip to main content

The autonomic computing edge: If you build it, management will come

How the AIDE toolkit can help you build autonomic management components more rapidly and effectively

Brent Miller (bamiller@us.ibm.com), Senior Technical Staff Member, IBM 
Brent A. Miller is a member of IBM’s Autonomic Computing Architecture team, where he serves as the lead architect for self-healing. He has worked for IBM for 21 years, with assignments including printer development, mobile clients, mobile software and pervasive computing.
Mark Weitzel (weitzelm@us.ibm.com), Software Architect, IBM 
Mark Weitzel is an architect in Tivoli's Autonomic Computing (AC) group focusing on Web Services Distributed Management. In addition to articles published on developerWorks, Mr. Weitzel co-authored Enterprise Java Programming with WebSphere, Second Edition.

Summary:  Autonomic computing is an industry initiative driving toward self-managing IT systems -- the autonomic computing architecture describes how such systems can be constructed, and IBM and others already have incorporated many autonomic computing capabilities in products and technologies. But how can you build products that realize the autonomic computing architecture, thus enabling them to participate in self-managing autonomic systems? This column discusses new tooling, the IBM Autonomic Integrated Development Environment (AIDE), which is available to accelerate the development of products that include fundamental manageability capabilities based on standards and enables products to realize the value of autonomic computing.

View more content in this series

Date:  06 Jun 2006
Level:  Intermediate
Activity:  1543 views
Comments:  

The previous column ("Autonomic computing: The state of the union") was a departure from the norm, introducing the fictional character Otto Nomic, who offered his own version of the state of the union of autonomic computing. Otto failed to be picked up by any major syndicate, so this Edge article returns to our roots, describing the latest developments in autonomic computing. In this article, your beloved columnist Brent Miller is joined by Mark Weitzel, an autonomic computing tooling architect. We will discuss tooling called the Autonomic Integrated Development Environment (AIDE), software that lets you build components that can snap into self-managing autonomic systems.

With apologies to a great movie, Field of Dreams, we will describe:

  • How AIDE can assist you in realizing the dream of "If you build it, management will come."
  • How AIDE can help you "go the distance" more rapidly when building components with autonomic manageability capabilities.
  • How the resulting self-managing autonomic components, when used by a system administrator, can help to "ease his pain."

We'll promise to reduce additional movie references as we discuss how AIDE enables you to put a sharp autonomic computing edge on products that you can develop.

The Autonomic computing architecture

As described in "An architectural blueprint for autonomic computing" (see Resources):

This blueprint organizes an autonomic computing system into the layers and parts shown in Figure 1. These parts are connected using enterprise service bus patterns that allow the components to collaborate using standard mechanisms such as Web services. The enterprise service bus integrates the various blueprint building blocks, which include:

  • Touchpoints (also called manageability endpoints) for managed resources
  • Knowledge sources
  • Autonomic managers
  • Manual manager

Figure 1. Autonomic computing reference architecture
Autonomic computing reference architecture

The lowest layer contains the system components, or managed resources, that make up the IT infrastructure. These managed resources can be any type of resource (hardware or software) and may have embedded self-managing attributes. The next layer incorporates consistent, standard manageability interfaces for accessing and controlling the managed resources. These standard interfaces are delivered through a touchpoint. Layers three and four automate some portion of the IT process using an autonomic manager.

A particular resource may have one or more touchpoint autonomic managers, each implementing a relevant control loop. Layer 3 in Figure 2 illustrates this by depicting an autonomic manager for the four broad categories that were introduced earlier (self-configuring, self-healing, self-optimizing and self-protecting). Layer four contains autonomic managers that orchestrate other autonomic managers. It is these orchestrating autonomic managers that deliver the system-wide autonomic capability by incorporating control loops that have the broadest view of the overall IT infrastructure. The top layer illustrates a manual manager that provides a common system management interface for the IT professional using an integrated solutions console. The various manual and autonomic manager layers can obtain and share knowledge via knowledge sources.

Of particular interest for this article is the topic of touchpoints (also called manageability endpoints), which can be built in a standard manner using AIDE. This tooling enables you to build the standard manageability interfaces to access and control the managed resources, as described in the preceding citation from "An architectural blueprint for autonomic computing." AIDE lets you produce standard manageability endpoint interfaces that map to your manageable resource's internal interfaces and lets you describe the manageability capabilities of your managed resource.

Before going further into how to use AIDE to create touchpoints for manageable resources, we will first discuss the importance of standard interfaces, both architecturally and in implementations.

The importance of standard interfaces

An earlier Edge column ("The 'Standard' way of autonomic computing") cited this quotation from the United States government's National Institute of Standards and Technology (NIST): "Standards are essential elements of information technology -- hardware, software, and networks. Standard interfaces, for example, permit disparate devices and applications to communicate and work together." This is particularly important in the area of systems management in which multiple management and manageability interfaces proliferate. When these interfaces are standardized, interoperability of management tools can be achieved.

Web Services Distributed Management (WSDM) from OASIS offers such a standard manageability interface. As described in the announcement for WSDM 1.0, "WSDM enables management applications to be built using Web services, allowing resources to be controlled by many managers through a single interface." Interoperability increases as more components are built with these standard manageability interfaces. As described next, tooling can help to accelerate that adoption while also providing consistency in the resulting implementations.

The importance of tooling

Standard interface definitions enable interoperability in heterogeneous environments; however, those standard interfaces must be instantiated -- that is, built with real, working code -- to actually realize the benefits of standards.

Building the code that implements standard interfaces can be done in multiple ways. One way is to sit down with the standard specification and begin to write the code that implements it. If everyone who implements the standard does this and does it faithfully, then the benefits of the standard can be realized. It is important to note though that each party who implements the standard is duplicating the work of others.

Another way to achieve this instantiation is to use tooling to help produce the code that implements the standard. This is a common practice for software development in general and it applies equally well for this application. The use of tooling to implement standard manageability interfaces offers these benefits:

  • Consistency -- the code produced as a result of using tooling is uniform.
  • Validation -- the tooling can be used to perform development-time verification for logic and data.
  • Productivity -- tooling typically can automate much of the code generation process so that the developer needs to write much less code from scratch (often, the developer just needs to supply specific names and values to be inserted into a code template and logic for custom modules such as implementations for certain internal interfaces).
  • Migration -- when standards specifications change as they inevitably do over time, the changes required to match updated standards versions can be contained within the tooling, thus removing the need to change every individual implementation to match the new standard.

AIDE is a set of tooling that offers these benefits for building implementations of standard WSDM manageability interfaces for both existing and new components. Now we'll discuss AIDE in more detail.

Using AIDE to build self-managing autonomic components

In the last several months, there have been a number articles published on developerWorks that provide detailed examples of using the AIDE tooling. In "Hit the ground running with AIDE: Building a touchpoint," Stephen Morris explains the basics of building a touchpoint. Leigh Williamson of IBM's WebSphere team partnered with Mark Weitzel and Dan Jemiolo of IBM Tivoli's Autonomic Computing group to demonstrate a WSDM manageability endpoint for Java™ 2 Platform, Enterprise Edition (J2EE) in "WSDM for J2EE provides next-generation management." Both of these examples were built using AIDE, which is available at IBM alphaWorks.

Tools play an important part of the development process. When applied to the management space, tools let the developer "build in" management aspects from the outset. AIDE is the first step in creating an environment in which the management aspects of a resource can be constructed and used throughout the entire development process.

One of the key design goals of AIDE was to keep the definition of the management aspects distinct from how they are realized. In essence, AIDE lets you define a model of a resource's manageability. This is similar, in one sense, to CIM or JSR77, but it differs in that the model is the underlying core of the tooling. For example, AIDE uses the model to drive the generation of code and other artifacts for use in the Autonomic Integrated Runtime Engine (AIRE), which is a WSDM 1.0-compliant run time. AIRE is a run-time framework for the WSDM-enabled IT resource. IBM is in the process of donating this code to open source and is working closely with the Apache Muse community.

AIDE creates the definition of a resource's manageability aspects in two ways. First, a management interface is defined. AIDE has chosen to use the same terminology as the WSDM specification, calling these management interfaces "capabilities." In this section, we examine the model files that are similar to those in the article "WSDM for J2EE provides next-generation management."

Manageability capabilities represent the properties, operations, and events of a resource. In addition, the autonomic computing team provides the ability to declare dependencies on another resource's management interface. These extensions are named call outs because the resource is declaring that in order to be effectively managed, it will "call out" to another resource.

Capabilities are intended to be reusable. For example, the manageability capabilities defined by the WSDM specification are provided by the tooling. Ideally, capabilities will expand into other industry segments, and standards bodies will agree upon the management capabilities of like things such as the JSR77 so that interfaces used within the tooling also can be standardized. In these cases, artifacts might already exist that can be used as a starting point; for example, a Java class or XML schema. These can be imported into the editor to begin the definition of the management interface, as shown in Figure 2.


Figure 2. Choices for creating a capability from an existing artifact
Choices for creating a capability from an existing artifact

Figure 3 shows the editor used to build out the management capabilities details. The editors in AIDE follow a general pattern of opening with an overview page, then presenting tabs along the bottom for each of the major sections. Pressing the Details... button or selecting the tab on the bottom lets the user navigate to the information. Also provided is a source page. Currently, the source page is a read-only page that shows the serialized form of the models. It is provided as an easy mechanism for developers familiar with the Eclipse Modeling Framework (EMF) to understand the underlying model format.


Figure 3. Capability editor overview page
Capability editor overview page

One of the unique aspects of the AIDE tooling is that it provides the ability to capture additional information about resources. For example, it is often desirable to declare that a particular property is read-only. This and additional metadata are shown in Figure 4.


Figure 4. Capturing metadata about a resource property
Capturing metadata about a resource property

The initial focus of AIDE was to provide tooling to create WSDM-based manageability endpoints. The definition of these endpoints represents an aggregated set of manageability interfaces; as such, they have no properties or operations of their own because these are provided by their capabilities. Figure 5 shows the overview page of AIDE's Touchpoint Type editor.


Figure 5. AIDE Touchpoint Type building overview page
 AIDE Touchpoint Type building overview page

The Touchpoint Type, also known as the manageability endpoint type, contains all the manageability capabilities required by WSDM and also the manageability capability defined to represent the J2EE server. This editor has built-in awareness of the WSDM specification and helps the user create well-formed manageability endpoints. For example, because the WSDM specification declares identity to be a required management capability, the tooling automatically adds this to the definition.

One interesting feature of the AIDE tooling is that it allows one capability to define extensions to another capability. Two examples of this are metrics and relationships. When the metrics or relationships capabilities are added to a touchpoint type, they contribute a unique view to help further define their management aspects. Anyone providing a capability may choose to take advantage of this feature of the tooling. Figure 6 shows the custom editor that is provided with the capability for relationships.


Figure 6. AIDE custom editor added by WSDM relationships capability
AIDE custom editor added by WSDM relationships capability

Generating the implementation

After the management capabilities of a resource are defined, they can be used to produce artifacts that are used to drive the run time, AIRE. Many different deployment environments for management capability may exist; for example, an application server or an OSGi run time. Each of these environments has different styles of deployment, such as WARs or EARs files versus bundles.

To facilitate a wide variety of use cases, the tooling provides the ability to describe the generation options for code and deployment. This is accomplished by creating an implementation model based on one or more touchpoint types. The implementation model is a separate design-time artifact that drives the generation of code, WSDL, and metadata. Figure 7 illustrates the implementation editor for manageability endpoints.


Figure 7. AIDE implementation editor for manageability endpoints
AIDE implementation editor for manageability endpoints

In the example used in the "WSDM for J2EE" article, multiple touchpoint types have been aggregated into a single deployment unit for deployment into an application server. Because WSDM often wraps existing management behavior and APIs, AIDE provides control for the ways in which a resource's state is accessed. For each attribute in the touchpoint types, the developer can specify that the generation framework should create an access method for custom coding. This is the "Backed by Java Method" option.

Sometimes it is necessary to override the default behavior provided by the framework for Endpoint Reference (EPR) creation. For each capability, the developer can specify a custom class that is invoked to create the EPR at run time.

When the code for a resource is actually created, the code generation framework starts with the implementation model and proceeds through each of the contained touchpoint types. The tooling automatically handles the standard capabilities defined by WSDM and will "hook" those into the generated code. For each capability that the developer provides, a Java method is created for each operation in the manageability interfaces. Figure 8 illustrates the stop method.


Figure 8. Java method code generation example
Java method code generation example

Notice how the Eclipse workbench is leveraged by tapping into the "Tasks" view. Each method that needs to be implemented by the user is commented with the "//TODO" task marker, making navigation to the method quick and easy.

AIDE allows for easily testing the implementation of the manageability endpoint. For example, if the endpoint was generated for deployment into an application server, the option to "Run on Server" from the implementation's context menu can be selected. This runs the endpoint directly in the development environment. If the debugging option is used, the developer can debug the endpoint directly in the development environment!

One final tool that can be used is the Manageable Resource Explorer. This view lets the user inspect and manipulate the underlying resource by setting properties and invoking operations. Figure 9 shows the explorer used in conjunction with the debug perspective. The explorer is tied into the standards properties view to make it easy to see the state of the resource.


Figure 9. Manageable Resource Explorer used in conjunction with debug perspective
Manageable Resource Explorer used in conjunction with debug perspective

Conclusion

The AIDE tooling lets the developer quickly build, test, and deploy WSDM-compliant manageability interfaces. Its robust set of editors and code generators minimize the burden of understanding the complex standards for IT management. In this article, we've described how tooling can be used to realize the standard interfaces necessary for systems management in a heterogeneous environment. In other words, "If you build it, management will come" -- and AIDE helps you build it.

This overview of AIDE is complemented by other developerWorks articles for readers who want to explore AIDE in more detail.

The next installment of the Autonomic Computing Edge will return to one of the fundamental aspects of the autonomic computing architecture, Common Base Events, to examine what's new in the world of standard event representation. The article will look at the WSDM Event Format (WEF) and how that compares to Common Base Events, and you'll see what's up with the recently published Common Base Events Best Practices Guide.


Resources

Learn

Get products and technologies

  • AIDE toolkit: This toolkit is a set of tools for creating WSDM-compliant interfaces for managed resources.

  • IBM trial software: Build your next development project with trial software, available for download directly from developerWorks.

Discuss

About the authors

Brent Miller

Brent A. Miller is a member of IBM’s Autonomic Computing Architecture team, where he serves as the lead architect for self-healing. He has worked for IBM for 21 years, with assignments including printer development, mobile clients, mobile software and pervasive computing.

Mark Weitzel is an architect in Tivoli's Autonomic Computing (AC) group focusing on Web Services Distributed Management. In addition to articles published on developerWorks, Mr. Weitzel co-authored Enterprise Java Programming with WebSphere, Second Edition.

Comments



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Tivoli
ArticleID=125301
ArticleTitle=The autonomic computing edge: If you build it, management will come
publish-date=06062006
author1-email=bamiller@us.ibm.com
author1-email-cc=
author2-email=weitzelm@us.ibm.com
author2-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers