Cin/UFPE Component architecture Chapter Twenty by Vanilson Burégio.

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Architecture Representation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
6/4/2015Page 1 Enterprise Service Bus (ESB) B. Ramamurthy.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Unified Modeling (Part I) Overview of UML & Modeling
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Chapter 2 Database System Concepts and Architecture
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
What is Software Architecture?
Chapter 10 Architectural Design
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
CSC271 Database Systems Lecture # 4.
An Introduction to Software Architecture
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
1 Chapter 1 Introduction to Databases Transparencies.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Basic Concepts and Definitions
Chapter 2 Database Environment.
2) Database System Concepts and Architecture. Slide 2- 2 Outline Data Models and Their Categories Schemas, Instances, and States Three-Schema Architecture.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
J2EE Platform Overview (Application Architecture)
Databases (CS507) CHAPTER 2.
Databases and DBMSs Todd S. Bacastow January 2005.
Chapter 2 Database System Concepts and Architecture
Software Connectors.
Distribution and components
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Data, Databases, and DBMSs
Software Connectors.
An Introduction to Software Architecture
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Cin/UFPE Component architecture Chapter Twenty by 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 A tiered component architecture Fundamental notion of traditional software architecture Layer Vs Tier Component system Component framework Component 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 component platform

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 ) 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-one by 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 Compositional reasoning (Szabo, 1969) Well-formed Context Elements declare their constraints (properties) on acceptable context The application of composition operators successively builds contexts Example: C |- x:int C|-y:int ________________ C |- (x == y): bool Higher-order component framework seem necessary and unavoidable

CIn/UFPE Contextual composition For component software (at the level of component framewoks) Elements composition: 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 The compositional reasoning can be applied to composition at all level of abstraction or granularity

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 COM+ contexts Example V U W X C3 C2 C1 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 CLR contexts and channels

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