1 / 23

Component architecture

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

yamka
Download Presentation

Component architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Component architecture Chapter Twentyby Vanilson Burégio Cin/UFPE

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

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

  8. 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

  9. 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

  10. Component Frameworks Chapter Twenty-oneby Vanilson Burégio Cin/UFPE

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. C1 C2 V U W X C3 COM+ contexts • Example Transaction domain (TxID=42) Load-balancing domain (RsrcID=7) CIn/UFPE

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

More Related