120 likes | 209 Views
Architecture with Components. What Changes?. Components reduce the architectural control Remove some qualities from your direct influence Which can force “how-important-is-this” decisions about requirements Search becomes a part of the problem. Searching for workable component ensembles.
E N D
What Changes? • Components reduce the architectural control • Remove some qualities from your direct influence • Which can force “how-important-is-this” decisions about requirements • Search becomes a part of the problem
Searching for workable component ensembles • Define constraints that the ensemble must meet • Define a first cut at other success criteria • Try to make it work • Revise (usually, add to) the success criteria • Modify the ensemble • Repeat 3-5 until • An adequate ensemble is found, OR • You give up
Remember • You are searching for a working ensemble of components • Working one component at a time will probably waste time and energy
Mismatch can make an ensemble unworkable • Each OTS component comes with an architectural style • Architectural Mismatch! • Requires • Provides • What to do? • Detect mismatch during search and avoid it • Detect it during design/implementation and fix it
Detect mismatch during search • Inspect each candidate component to discover • Requires • Provides • Make sure each requires can be satisfied by a provides • Parameterized interfaces can give you some control over requires/provides • Unfortunately, examining all assumptions for components is not possible!
Detect mismatch during design/implementation • Qualify the interfaces by discovering requires and provides while • Designing the architecture • Integrating the ensemble • Prototyping • Building a skeletal system
When qualifying an interface, remember • An interface is more than method signatures • It may also include assumptions about • Ordering of method calls • Threading • Resource availability and consumption • Authorization • Security • Persistent storage • Network access • Error reporting and handling • Logging
Fixing mismatch • Wrappers • Bridges • Mediators
Fixing Mismatch 1 - Wrappers • Encase the component to • Translate an element • Hide an element • Preserving an element without change • Usually specific to the using and used components • Examples: • Screen scraping • Most legacy wrappers • What experience do you have with wrappers?
Fixing Mismatch 2 - Bridges • An independent component • Translate a requires of one side to a provides of the other • Translation is defined at design time • Often independent of the components • Example: postscript to PDF • Experience with bridges?
Fixing Mismatch 3 - Mediators • Planning • Is often a first class component in the architecture • Examples: • Sensor fusion (p 459) • EAI platform • Experience with mediators?