230 likes | 359 Views
Component architecture. Chapter Twenty by Vanilson Burégio. Component Architecture. Basis of any large-scale and is of utmost importance for component based systems Defines: interaction between components and their environment roles of components
E N D
Component architecture Chapter Twentyby Vanilson Burégio Cin/UFPE
Component Architecture • Basis of any large-scale and is of utmost importance for component based systems • Defines: • interaction between components and their environment • roles of components • It is not clear what a component architecture should look like • The chapter presents na attempt at conceptualizing the component architecture • establish order within chaos CIn/UFPE
The roles of an architecture • The basis for: • Independence – enable multiple sources of solution parts • Cooperation – essential when the whole is more than the sum of its parts • Technically • Defines overall invariants • Include all policy decisions • Roles of components • Enable interoperation across otherwise independent uses of the mechanisms • Prescribe proper frameworks • Limiting the degrees of freedom to curb variations and enable cooperation CIn/UFPE
The roles of an architecture • Principal considerations: • Functionality • Performance • Reliability • Security Commonly, these aspects are ignored, emphasizing functionality. The consequences can be fatal! CIn/UFPE
Conceptualization – beyond objects? • Conceptual level • Useful to introduce layers • To single out components • Separate concerns • Challenge: granularities • Distinguish relationships between objects • “has a” relationship - representative objects • “uses a” relationship • can introduce cyclical dependencies • Relationship can be modeled as graphs CIn/UFPE
Definitions of key terms • Component system architecture: consists of a set of platform decisions, a set of component frameworks, and an interoperation design • Component framework: is a dedicated and focused architecture • Interoperation design: rules of interoperation among all the frameworks joined by the system architecture • Component: a set of simultaneously deployed atomic components • Module: a set of classes and possibly non-object-oriented constructs (procedures, functions, …) • Resource: a “frozen” collection of typed items • externalized immutable objects CIn/UFPE
Component framework Component Component system A tiered component architecture • Fundamental notion of traditional software architecture • Layer Vs Tier A multilayer architecture with 3 tiers- components, component frameworks, a component system CIn/UFPE
Components and middleware • Middleware:a set of software that sits between various operating systems and a higher, distributed programming platform • Isolated middleware are slowly disappearing • message queuing systems, transactions processor monitors… • Emerging: specialized servers • Application servers • Combine application management, data transaction, load balancing, and other functions • Integration servers • Combine protocol conversion, data translation, routing, and other functions • All these server categories introduce their own component framework usually build on top of one of the componentplatform CIn/UFPE
Components Vs generative programming • Generative programming • Go beyond such traditional transformation (fixed transformer: compilers, JIT compilers) • Allows programmer to define new transformer • One approach (Czarnecki and Eisenecker - 2000) • C++ templates • In a world of deployable components… • Produce individual components • Useful for large components or to produce a large numbers of related components • Enhance composed systems • Should not interfere with the unit of deployment characteristic of components CIn/UFPE
Component Frameworks Chapter Twenty-oneby Vanilson Burégio Cin/UFPE
Component Frameworks • Definition • Software entity that support components conform to certain standards and allows instances of these components to be “plugged” • Roles • Establishes environmental conditions for the component instances • Regulates the interactions between components • Enforce polices • Have taken off in a particular area: • Contextual composition CIn/UFPE
Contextual composition Higher-order component framework seem necessary and unavoidable • Compositional reasoning (Szabo, 1969) • Well-formed Context • Elementsdeclare their constraints (properties) on acceptable context • The application ofcomposition operatorssuccessively builds contexts • Example:C |- x:int C|-y:int ________________C |- (x==y): bool CIn/UFPE
Contextual composition The compositional reasoning can be applied to composition at all level of abstraction or granularity • For component software (at the level of component framewoks) • Elementscomposition: instances created by components • composition operators: combines sets of such instances • Context: collect sets of instances into domains of comparable properties • Component Framework: mechanism that supports contextual composition of components • There are various academic roots to the approach of using contextual composition in software CIn/UFPE
Contextual component Frameworks Vs connectors • Architecture Description Language (ADL) • Distinguish components and connectors • State which connectors should support interaction between which components • Components • Provide functionality • Connectors • Focus on connectivity • Deal with aspects and system qualities • Substantial complexity CIn/UFPE
Contextual component Frameworks Vs connectors • Pure connection-oriented approach • Components are restricted to only interact with other components if connected appropriately • Contextual component Framework • Can then be used to reintroduce the intercepting behavior of connectors • Contexts themselves are not instances of components • Non-generic aspects are provided by parametrizing generic contexts with objects • ADLs • Earlly ADLs were restricted to static connectivity • Later ADLs added support for dynamic connectivity and dynamic reconfiguration CIn/UFPE
COM+ contexts • COM • Separate objects by threading model • MTS contexts • Separate objects by transactional domain • COM + • Unified these two notions and also a large number of new context properties • Two objects are in the same domain if they share a compatible set of context properties CIn/UFPE
C1 C2 V U W X C3 COM+ contexts • Example Transaction domain (TxID=42) Load-balancing domain (RsrcID=7) CIn/UFPE
EJB containers • Provides containers for EJB instances • Allow a class to be attributed to request explicit transaction control • Explicit control makes these classes much harder to compose • Enable a easier path when wrapping legacy transaction • Support persistent objects • Session • Entity • MDB CIn/UFPE
CCM containers • CORBA Component Model • Builds on EJB concepts • Adds support for process components to the session and entity EJB components • CCM session components => stateful session beans in EJB • CCM Service components => stateless session beans in EJB • Instances of a process component have persistent state CIn/UFPE
Tuple and object spaces • An approach of contextual composition • Based on the concept of an omnipresent data space that can e used to communicate without explicit addressing • Linda coordination language (1988) • Introduced Tuple spaces • Spaces that hold atoms of data called tupes • Three operations • Adding a tuple to a space • Matching and reading (polling) a tuple in a space • Matching and removing a tuple from a space • JavaSpaces • java.sun.com/products/javaspaces CIn/UFPE
BlackBox component Framework • Part of the BlackBox component builder, a component-oriented programming environment (Oberon microsystems - 1997) • Focus • Visual components • Components for compound-document-based client applications with rich graphical user interface • The framework • Consists of a core set of layered modules and a open set of subsystems CIn/UFPE
BlackBox component Framework • Based in the following patterns and approaches: • Carrier-rider-mapper design pattern • Directory objects • Hierarchical model view separation (HMVC) • Container modes • Cascade message multicasting services • … CIn/UFPE
Portos • A realtime operating system of components • New components can be loaded ate runtime • PortosLoader • Various configurations ar possible • At least the modules PortosKernel and PortosTasks are required • PortosTasks is the central module of Portos • JBed - a Java version of Portos • Portos IDE • Cross-development environment for developing Portos applications • Extension of the BlackBox component builder • Adds functionality for transfer of code files and data to and from an embedded system running Portos CIn/UFPE