Component Composition and Integration

advertisement
Chapter 9
Component Composition and
Integration
Building Reliable Component-based Systems
Ivica Crnkovic
Page 1
Overwiev
 Component Integration
 From Integration to Composition
 Predictable Assembly from Certifiable Components
 Prediction-Enabled Component Technology (PECT)
 Architecture-based Analysis
 Component Certification
 Architectural Styles and Component Models
Building Reliable Component-based Systems
Ivica Crnkovic
Page 2
Component Integration
 Integrating components can be illustrated as a mechanical
process of “wiring” components together to form
assemblies.
 Standardization in form of component models like EJB,
CORBA and COM.
 Still Difficult to make components play well together.
Building Reliable Component-based Systems
Ivica Crnkovic
Page 3
Component Integration (2)
Architectural mismatch stems from mismatched assumptions a reusable
part makes about the structure of the system it is to be part of. These
assumptions often conflict with the assumptions of other parts and are
almost always implicit, making them extremely difficult to analyze
before building the system.”
D. Garlan, R. Allen and J. Ockerbloom. “Architectural Mismatch: Why Reuse is So Hard,”
IEEE Software, 12(6):17-26, November 1995
Building Reliable Component-based Systems
Ivica Crnkovic
Page 4
Component Integration (3)
 2 Cases
 D. Garlan, R. Allen and J. Ockerbloom “Architectural
Mismatch: Why Reuse is So Hard”

AESOP
 P. Inverardi, A.L. Wolf, and D. Yankelevich, Static Checking of
System Behaviors Using Derived Component Assumptions

Compressing proxy
Building Reliable Component-based Systems
Ivica Crnkovic
Page 5
Component Integration (4)
 four classes of structural assumptions

The nature of components (infrastructure, control model, and
data model)

The nature of connectors (protocols and data models)

The architecture of the assemblies (constraints on
interactions)

The run-time construction process (order of instantiations).
Building Reliable Component-based Systems
Ivica Crnkovic
Page 6
Component Integration (5)
Process
Function call interface
Component
UNIX pipe interface
Channel
gzip
Compressing Proxy
2
Filter
1
3
Pseudo Filter
(Adaptor)
Building Reliable Component-based Systems
Ivica Crnkovic
4
Filter
Page 7
Component Integration (6)
 Formal architectural description and analysis to uncover
what they call “behavioral mismatch”
 Not component mismatch
 Components must express assumptions made about it’s
environment such as data formats or buffer sizes
 Careful analysis of the assumptions components make about
the context in which they are to be used can help prevent
design errors and result in building the right product faster
Building Reliable Component-based Systems
Ivica Crnkovic
Page 8
From Integration to Composition
 All assemblies are potential subsystem
 Predicting the emergent behavior of assemblies
 The result of component composition is a component
assembly which can be used as a part of a larger
composition
 Composition goes beyond integration by allowing prediction
of the emergent behavior of assemblies
Building Reliable Component-based Systems
Ivica Crnkovic
Page 9
Predictable Assembly from Certifiable Components
 What types of system quality attributes are developers
interested in predicting?
 What types of analysis techniques support reasoning about
these quality attributes, and what component property values
do they require as input parameters?
 How are these component properties specified, measured,
and certified?
Building Reliable Component-based Systems
Ivica Crnkovic
Page 10
Prediction-Enabled Component Technology
 A prediction-enabled component technology consists of a
component model and an associated analysis model
 PECT integrates ideas from research in the areas of software
architecture,
component
certification,
and
software
component technology to create a prediction-enabled
component technology .
 Prediction-enabled component technologies exploit the
relationship between structural restrictions and assumptions
of analysis models to compute properties of assemblies
based on trusted properties of the assembly’s constituent
components.
Building Reliable Component-based Systems
Ivica Crnkovic
Page 11
Prediction-Enabled Component Technology
Component
Model
Analysis
Model
PECT
interpretation
Component
Model
Analysis
Model
assumptions
not connected
specializes
influences
Building Reliable Component-based Systems
Ivica Crnkovic
Page 12
Architecture-based Analysis
 Provides a foundation for reasoning about system
completeness and correctness early in the development
process and at a high level of abstraction
 Architecture description languages
 One still unresolved challenge within architecture technology
is the bridging of the gap between architectural abstractions
and implementation
 Analytic models capture the fundamentals of compositional
reasoning techniques: assumptions of the algorithms used
as well as the algorithms themselves.
Building Reliable Component-based Systems
Ivica Crnkovic
Page 13
Architecture-based Analysis (2)
 Specification refinement
 mappings between analytic models and constructive models
 Analytic models capture the fundamentals of compositional
reasoning techniques: assumptions of the algorithms used
as well as the algorithms themselves.
Building Reliable Component-based Systems
Ivica Crnkovic
Page 14
Component Certification
 The National Security Agency (NSA)
 National Institute of Standards and Technology (NIST)
 used the trusted computer security evaluation criteria
(TCSEC), a.k.a. “Orange Book.” as the basis for the Common
Criteria, which defines criteria for certifying security features
of components
Building Reliable Component-based Systems
Ivica Crnkovic
Page 15
Component Certification (2)
 Trusted Components Initiative (TCI)
 Loose affiliation of researchers with a shared heritage of
experience in the formal specification of interfaces.
 Use use of pre/post conditions on API
 Quality attributes, such as security, performance, availability,
and so forth, are beyond the reach of these assertion
languages
Building Reliable Component-based Systems
Ivica Crnkovic
Page 16
Component Certification (3)
 Quality attributes, such as security, performance, availability,
and so forth, are beyond the reach of both earlier mentioned
languages
 Voas has defined mathematical models of component
reliability based on statistical approaches to testing
 Commercial component vendors
 Shaw proposed component credentials as an open-ended,
property-based interface specification
 In Shaw’s proposal a credential is a triple <attribute, value,
knowledge>
Building Reliable Component-based Systems
Ivica Crnkovic
Page 17
Component Certification (4)
 What does it mean to trust a component?
 Still more fundamental: what ends are served by certifying
(or developing trust) in these properties?
Building Reliable Component-based Systems
Ivica Crnkovic
Page 18
Architectural Styles and Component Models
 Architectural styles are sets of component types and
constraints on how instantiations of those types can be
interconnected.
 Component technology provides the means of realizing
architectural style constraints in software
 Component models can be Architectural styles
 Enterprise Java Beans
Building Reliable Component-based Systems
Ivica Crnkovic
Page 19
Summary
 Integration != Composition
 Prediction-Enable component technologies will allow for
building component based software right from the beginning
 Old ideas are used together with new to form a answer to
delays, due to unexpected result from assembling
components, in component based software development
 Several fundamental questions are still unanswered
Building Reliable Component-based Systems
Ivica Crnkovic
Page 20
Download