What is a Component Framework?
A
ComponentFramework 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.
The
ComponentFramework 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.
A
ComponentFramework is used as a
BlackBoxFramework when composing components. However, a
WhiteBoxFramework (or other OO techniques) can be used to support programmers implementing new components.
A
ComponentFramework 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 by
composition,
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 or
TemplateFactoryPattern) 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 and
ComponentFrameworkDefinition.
ComponentFramework QuickQuestions
Q Is
ComponentFramework 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
Based
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?
A It is a system, but not classified as an
OperatingSystem. Discussion reopened 200812130650.m05
A 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
[
CategoryComponents,
CategoryFramework]