14
Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Chapter 9 Component Composition and Component Composition and Integration Integration

Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Embed Size (px)

DESCRIPTION

Page 3 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Introduction Component integration  Component composition q Component composition l Determining the properties of assemblies in order to check their run-time compatibility, l Reaches further than integration. l Assemblies must be designed in such a way that they can live in a variety of contexts. l Determine how an assembly will affect the systems in which it is used and also how it is affected by these systems

Citation preview

Page 1: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 1Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Chapter 9Chapter 9

Component Composition and IntegrationComponent Composition and Integration

Page 2: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 2Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

OverviewOverview

Introduction Component integration From integration to composition Summary

Page 3: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 3Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

IntroductionIntroduction

Component integration Component composition

Component composition Determining the properties of assemblies in order to

check their run-time compatibility, Reaches further than integration. Assemblies must be designed in such a way that they

can live in a variety of contexts. Determine how an assembly will affect the systems in

which it is used and also how it is affected by these systems

Page 4: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 4Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Component IntegrationComponent Integration

Integration mismatches have, to a large degree, been ameliorated by the introduction of component models such as EJB, CORBA, and COM.

Component models provide standards for components and a framework into which components can be plugged.

Page 5: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 5Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

From Integration to CompositionFrom Integration to Composition

Integration mismatch encountered by Garlan et al., Prevented them from plugging components together

because of the use of different data formats. The Compressing Proxy

Designed to improve performance of Web browsers through the transparent compression and decompression of transmitted data.

The mismatch allowed the proxy to deadlock.

Page 6: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 6Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

The Compressing ProxyThe Compressing Proxy

Filter FilterPseudo Filter(Adaptor)

gzip

1

2 3

4

Compressing Proxy

Process

Component

Channel

Function call interface

UNIX pipe interface

Page 7: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 7Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

RequirementsRequirements

This is not a mismatch of components, rather one with the requirements of the system.

If the requirements are changed to restrict transmission to small enough files, the potential for deadlock disappears.

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.

Page 8: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 8Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Analysis of Assumptions Analysis of Assumptions

“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.”

Page 9: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 9Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Predictable AssemblyPredictable Assembly

Assemblies can be made explicitly available to support hierarchical system composition.

Informally, compositional reasoning posits that: IF we know something about the properties of two

components, c1 and c2, THEN we can define a reasoning function f: SUCH THAT f(c1, c2) yields a property of an assembly

comprising c1 and c2.

Page 10: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 10Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Achieving a Predictable AssemblyAchieving a Predictable Assembly

To begin, we suggest that three interlocking questions must be answered:

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?

Page 11: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 11Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Prediction-enabled Component TechnologyPrediction-enabled Component Technology

A prediction-enabled component technology (PECT) approach is based on two fundamental premises:

That system quality attributes are emergent properties that are associated with patterns of interaction among components, and,

That software component technology provides a means of enforcing predefined and designed interaction patterns, thus facilitating the achievement of system quality attributes by construction.

A prediction-enabled component technology consists of a component model and an associated analysis model.

Page 12: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 12Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Prediction-enabled Component TechnologiesPrediction-enabled Component Technologies

Component Model

AnalysisModel

Component Model

AnalysisModel

assumptions

interpretation

PECT

not connectedspecializesinfluences

Page 13: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 13Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

Component CertificationComponent Certification

Trusted computer security evaluation criteria (TCSEC) Common criteria

The national security agency (NSA) National institute of standards and technology (NIST)

The trusted components initiative (TCI) Use of pre/post conditions on APIs (application

programming interfaces)

Page 14: Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration

Page 14Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration

SummarySummary

Component Integration Composition

Prediction-enabled component technologies Software architecture-based analysis, Component certification, Architectural style

Produce component models that are enhanced to support reasoning about both the functional and extra-functional properties of software systems composed of components.