acm-header
Sign In

Communications of the ACM

Communications of the ACM

Component-Based Enterprise Frameworks


Recently, while exploring the ancient Mayan temples and pyramids in Guatemala, I was impressed with the pure technical achievement given the tools available to those ancient builders. The stairs on many of these structures are extremely steep, with each step being quite high. I found the easiest way to navigate the stairs was to climb at an angle. I questioned the reason for this design decision. Clearly I was looking at the situation from a personal perspective, largely because this design was truly slowing my ascent and descent, or so it seemed. The tour guide told me to step back and evaluate the temple as a whole and watch the people ascend and descend, walking at an angle. Then I saw the form of a serpent as the people snaked up and down the temple. This was by design; serving a higher purpose.

This section should be approached in the same fashion. Rather than focusing on just one "step" (that is, one article) and its characteristics, I encourage you to evaluate the whole section, deriving the complete value of the authors' experiences across all the articles.

When a business unit is looking for a software solution to a problem there are several technical solutions to which they can look, including: turnkey solutions, component-based framework solutions, and custom development solutions. Turnkey solutions are ready to go "out of the box," often requiring configuration work. Custom development solutions typically involve building most of the major system functionality from scratch. Whereas component-based framework solutions elevate the abstractions software engineers use to identify, discuss, solve, and implement systems.

This section focuses on component-based frameworks; what they look like, how to identify them, model them, build them, extend them, use them, and how they apply to e-business solutions. Component-based framework solutions are partial implementations, specifying the nature and way to extend the framework with pluggable components.

Grady Booch defines a component as "a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces" [1]. Booch further defines a framework as: "An architectural pattern that provides an extensible template for applications within a domain" [1].

Desmond D'Souza puts these concepts together and describes component-based frameworks this way: "In general, a component framework is a collaboration in which all the components are specified with type models; some of them may come with their own implementations. To use the framework, you plug in components that fulfill the specifications" [2].

Frameworks provide the fundamental elements, relationships, structural and dynamic integrity, as well as the extension points for modifying the framework for a given application. Components provide the packaging of frameworks. Each framework should provide extension-point specifications, the specifications with which components should comply and extend the framework's fundamental functional scenarios.

Designing, building, and testing component-based frameworks require considering several things including static models that illustrate component structure, dynamic models that illustrate component collaboration, as well as the technology to implement the component framework. Component-based frameworks build upon what you already know; you do not need to throw away your previous knowledge or experience. Rather frameworks build upon experiences and technologies both past and present.

The pathway to the pyramid, represented by the human forms in the figure appearing here, includes some of the prerequisites to designing and using component-based frameworks. This pathway includes object-oriented technologies, modeling and design, architecture, and development process and testing. Component-based frameworks build on OO technologies, creating a better case for potential reuse and abstraction. Component-based frameworks build upon past modeling techniques and are best leveraged through modeling and visualization using the UML. Continuing up the path, architecture provides the decomposition, justification, and design for given constraints and requirements. Component-based frameworks build upon your past architecture experience and help to define architectures to support today's Internet-based and other solution needs. And finally, development processes you've used in the past are influenced and affected by building applications using component-based frameworks. Each of these areas, as it relates to component-based frameworks, is touched upon in this section. The figure legend beneath the illustration outlines the articles presented.

In this section the "climb" up the component-based framework pyramid begins with a component primer by Jon Hopkins, which identifies the major elements and characteristics comprising components. Building on that foundation, Cris Kobryn outlines current and future UML capabilities for modeling components and frameworks as first-class citizens. Kobryn uses an EJB and a COM+ reference architecture as core examples of how to model today's Web-enabled, distributed, component-based systems using UML. Continuing the climb, Mohamed Fayad, David Hamu, and Davide Brugali expand upon component-based frameworks by discussing the major characteristics of OO enterprise frameworks. Their article addresses the notion of framework adequacy—the ability of a framework to be properly balanced for a given context—covering both technical as well as nontechnical characteristics of frameworks and applying them to e-business solutions.

Michael Sparling continues the "ascent" sharing insights and lessons learned doing component development over the past six years. Sparling discusses the pitfalls as well as the golden nuggets of lessons learned, covering both technical issues as well as process and management issues encountered when doing component-based development. With these "steps" in place Jian Lu et al. take a real-world framework and discuss some of its major components and characteristics for solving real-world parallel architecture and performance issues. The section is "capped" with an article from Peter Fingar, who discusses applying frameworks to today's e-business technical environments. Fingar addresses the issues of how component-based e-commerce frameworks are essential to the agility companies need to respond to rapidly changing e-commerce business models as well as the current state of XML in building and using these frameworks.

Component-based frameworks can deliver on many of the promises of productivity, quality, extensibility, and other benefits. The articles in this section will help you achieve those qualities as you step back, evaluate the climb, and apply the experiences and lessons presented.

Back to Top

References

1. Booch, G. The Unified Modeling Language User Guide. Addison Wesley, Reading, MA, 1998.

2. D'Souza, D. and Wills, A.C. Objects, Components and Frameworks with UML: The Catalysis Approach. Addison Wesley, Reading, MA, 1999.

Back to Top

Author

Grant Larsen ([email protected]) is a senior technology member with Catapulse in Denver, CO.


©2000 ACM  0002-0782/00/1000  $5.00

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

The Digital Library is published by the Association for Computing Machinery. Copyright © 2000 ACM, Inc.


 

No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account
Article Contents: