In Chapter 2, we have discussed components and described their benefits. The software architecture that supports the operation of components is called the component “container.” It provides the environment in which a particular type of component can be run and manipulated.
Components come in many different forms, from the ubiquitous JavaBean to Web services, and at many different levels of scale. At the small-scale level, components with a visual aspect, such as drop-down boxes, tree lists, and buttons, are assembled into a single form. At the high-scale level, entire services such as order entry, billing, and inventory update are combined into a complete application.
All levels of components, however, have one thing in common: they all operate within some specific component container. Often, this container is one of the services provided by a framework.
A framework is not only a component deployment environment, but also it is used throughout the development of an application and its components. It is a part of both the development and the run-time life of your application.
In this chapter we explore frameworks in more detail. We describe the features you will likely find, and the benefits they provide to your development project.
We also include what application development frameworks provide in broad terms and how they relate to APIs (e.g., JavaMail). We discuss the common elements found in many Web applications, and how appropriate components and frameworks can be used to provide these elements.