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