What is a Component Framework?
defines a set of AbstractInteractions
that define the protocols by which components cooperate -- each component takes on roles in various AbstractInteractions
. The AbstractInteractions
defined by a ComponentFramework
provide a conceptual framework in which to think about solutions to the problem domain addressed by the framework.
also defines the packaging
for components so that they can be instantiated and composed into legal configurations by ThirdPartyBinding
For ease of use, a ComponentFramework
can provide ComponentGlue
to make it easy to connect components that play roles in incompatible AbstractInteractions
. Scripting is an especially flexible form of ComponentGlue
To help framework users up the learning curve, a ComponentFramework
can provide PrebuiltFunctionality
, such as useful components or AutomatedAssembly
functions that automatically instantiate and compose components to perform common tasks.
is used as a BlackBoxFramework
when composing components. However, a WhiteBoxFramework
(or other OO techniques) can be used to support programmers implementing new components.
is often implemented as LayeredFrameworks
to manage complexity.
How does a ComponentFramework differ from an Object Oriented Framework?
The main distinguishing feature seems to be that an application is constructed from ComponentFramework
and from an O-O framework by customisation
An O-O framework will provide a lot of behaviour. The application programmer
customises this behaviour for a particular application by extending or altering the classes by inheritance (e.g. TemplateMethodPattern
) and by plugging application-specific objects into particular points of the object-web created by the framework (e.g. StrategyPattern
An application is built using a ComponentFramework
by instantiating prebuilt and application-specific component types and connecting compatible elements of their interfaces so that they can cooperate. The component framework provides support for instantiation and composition, rather than for application tasks. The application tasks are encapsulated within the components.
However, there is no clear dividing line between a ComponentFramework
and OO framework.
This page has been distilled from the discussions about ComponentDefinition
past its used-by date? This wiki page last edited 2002, with a question below unanswered for two years. And a web page on Component
Business is 2001 (based on its news items). See http://www.users.globalnet.co.uk/~rxv/cbb/index.htm
Is a component framework distinct from an operating system?
It is a system, but not classified as an OperatingSystem
. Discussion reopened 200812130650.m05
I postulate that not much discussion occurs related to component frameworks these days (ca. 2008) because I think most feel it's now a solved problem. The widespread deployment of frameworks like Spring in the commercial sector seems to suggest, however, that the golden age of component frameworks is far from over.
See Also: HelpersInsteadOfWrappers