Architectural components are classes and static utilities generic enough to be used for many applications. After you've identified a need for an architectural component, your first step should usually be looking in the marketplace for a component that meets that need. If you have the necessary budget, commercial alternatives are often better than building your own components. But I recommend starting your marketplace search by checking out open source alternatives, which can be just as good as commercial software and a lot easier on the budget. At the end of the chapter, I highlight some of my favorite open source Web sites.
One issue with component software, both open source and commercial, is the extreme variance in quality. Some components are easy to understand and use, others are inscrutable and impractical. In this chapter, I list the capabilities that developers generally associate with quality components. You can use this list to evaluate open source or commercial component software. I also present a series of tips and techniques for creating your own architectural components with those capabilities considered the marks of quality.
The role of architectural components is illustrated in figure 16.1.