Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.

Slides:



Advertisements
Similar presentations
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Advertisements

Architecture Representation
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Neochiron An Architecture Assembly Language. ADL Constructs Architecture description language – provides primitives for composing an architecture Components,
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Introduction to Software Engineering Lecture 6 André van der Hoek.
Lecture 23: Software Architectures
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Unified Modeling (Part I) Overview of UML & Modeling
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
Architectural Design.
What is Software Architecture?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 10 Architectural Design
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
An Introduction to Software Architecture
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural Design
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
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.
Unified Modeling Language, Version 2.0
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Chapter 13 Architectural Design
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
Design Concepts By Deepika Chaudhary.
Krista Lozada iAcademy First Term 2009
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 Unified Modeling Language, Version 2.0 Chapter 2.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Basic Concepts and Definitions
Chapter : 9 Architectural Design
CS223: Software Engineering
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Basic Characteristics of Object-Oriented Systems
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
Systems Analysis and Design With UML 2
Software Connectors.
The Extensible Tool-chain for Evaluation of Architectural Models
Software Connectors – A Taxonomy Approach
Chapter 20 Object-Oriented Analysis and Design
Software Connectors.
Design Yaodong Bi.
Chapter 6: Architectural Design
Presentation transcript:

Demystifying Architectural Styles Nikunj Mehta

3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework Composing Client Server Style Lessons learned

3/11/02Demystifying Architectural Styles3 Architectural Styles Characterize –Structure, i.e. external appearance –Supported interactions, i.e. software connectors –Topological constraints Various categories –Motion of data, e.g. batch sequential, data flow –Order of computation, e.g. subroutines, objects –Communication centric, e.g. client/server, events –Data centric, e.g. databases, blackboard, hypertext –Layered, e.g. interpreter

3/11/02Demystifying Architectural Styles4 Why Research Architectural Styles? Design patterns are not enough –Styles support higher level reuse Component based software engineering –Avoiding COTS mismatches Model based software engineering –Avoiding model clashes Little is known about –Style similarities –Style primitives –Architectural primitives –Connector composition

3/11/02Demystifying Architectural Styles5 Mystical Nature of Styles Stem from principles of encapsulation, and information hiding Invisible software connectors are key Origin of styles - a mystery –How is a style created? –How is a connector created? Codification of successful approaches One size fits all? How to know which style is appropriate?

3/11/02Demystifying Architectural Styles6 We Need… Style and architectural primitives Architectural composition techniques Tool-supported formal compositional model Separation of behavioral, structural, compositional and interaction concerns Architectural prototyping framework Connector composition techniques An architectural assembly language Welcome Alfa!

3/11/02Demystifying Architectural Styles7 The Alfa Project Alfa – a bottom-up approach –Architecture needs composition Assembly language –Constructs and primitives for composition –Fine grain control over semantics –General but simple –Small set for analyzability and conceptual integrity –Style-neutral and implementation-agnostic Memories revived? –Assembly mnemonics and machine code –Start small, and then create languages and tools

3/11/02Demystifying Architectural Styles8 Composition primitives Particles –Simplest architectural elements Link Entry Portal Exit Portal Particle Jumper Particle Portals –Entry/exit points for particles Jumpers –Interaction ducts –Softwire Links –Interaction path between particles

3/11/02Demystifying Architectural Styles9 Behavioral primitives Fragment Controller –Locus of functional computation Portal Controller Fragment Controller Transport Controller –Locus of interaction Portal Controller –Locus of message filtering/tagging

3/11/02Demystifying Architectural Styles10 Interaction primitives Message –Communication container Call –Procedural invocation primitive Dispatcher –Dispatch messages and calls to controllers Thread –Schedule and control execution Queue –Buffer for holding messages and calls Semaphore, Monitor, Rendezvous –Synchronization

3/11/02Demystifying Architectural Styles11 Architectural framework Compositional Aspects Behavioral Aspects

3/11/02Demystifying Architectural Styles12 Composing Client Server Style Client Protocol ConnectionServer Protocol

3/11/02Demystifying Architectural Styles13 Lessons learned Architecture approaches should be composable Provide simple primitives that map consistently to implementation Data-centric styles differ fundamentally from communication-centric styles Choose an architectural style that makes sense –Know which style is good for your context –Or compose your own architectural style –Know the software connectors required Create architectural implementation framework