A Component- and Message-Based Architectural Style for GUI Software BY Richard N. Taylor, et. Al Presented By : Deepashree Krishnamurthy.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
A component- and message-based architectural style for GUI software
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.
Study of Hurricane and Tornado Operating Systems By Shubhanan Bakre.
CORBA - Common Object Request Broker Architecture.
Technical Architectures
Distributed Systems Architectures
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
A Component- and Message-Based Architectural Style for GUI Software BY Richard N. Taylor, et. Al Presented By : Deepashree Krishnamurthy.
The Architecture Design Process
SWE Introduction to Software Engineering
Establishing the overall structure of a software system
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Course Instructor: Aisha Azeem
N-Tier Architecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
Service Oriented Architecture (SOA) Dennis Schwarz November 21, 2008.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
CSC480 Software Engineering Lecture 10 September 25, 2002.
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.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Object storage and object interoperability
Lecture VIII: Software Architecture
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Software Connectors.
OO Methodology OO Architecture.
Software Design and Architecture
Distribution and components
Part 3 Design What does design mean in different fields?
Software Quality Engineering
Lecture 1: Multi-tier Architecture Overview
Starting Design: Logical Architecture and UML Package Diagrams
Software models - Software Architecture Design Patterns
Software Connectors.
An Introduction to Software Architecture
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

A Component- and Message-Based Architectural Style for GUI Software BY Richard N. Taylor, et. Al Presented By : Deepashree Krishnamurthy

A novel architectural style  Directed at supporting larger grain reuse and flexible system composition.  Supports design of distributed, concurrent applications.  Components are not built with any dependencies on what typically would be considered lower- level components, such as user interface toolkits.  Draws its key ideas from another UI development system called: Chiron-1  Hence called as Chiron-2 or C2 What is this paper about?

Ability to compose systems in which:  Components may be written in different programming languages  Components may be running concurrently in a distributed, heterogeneous environment without shared address spaces.  Architectures may be changed at runtime  Multiple users/toolkits/dialogs may be interacting with the system. : A network of concurrent components hooked together in a hierarchy by message routing devices, such that a component could only be aware of components above it and completely unaware of components which reside beneath it. GOALS

Stack Manipulation System

Components

Notifications & Requests

 Connectors bind components together.  They may be connected to any number of components as well as other connectors. Responsibility:  Routing and broadcast of messages.  Filtering messages. Filtering policies:  No Filtering: Each message is sent to all connected components.  Notification Filtering: Each notification is sent to only those components that registered for it.  Prioritized: The connector defines a priority ranking over its connected components. e.g., spell-checking a document, with possibly different implementations.  Message Sink: The connector ignores each message sent to it. Connectors

A. Petri Net Tool with Multiple Presentation Components EXAMPLES AND TRIAL APPLICATIONS ( ) This example considered building a petri net editor such that:  Places in the net are depicted by polygons whose number of sides equals the number of tokens inside each place.  Clearly, places with 0,1, or 2 tokens cannot be represented by polygons and have to be depicted by an empty circle, a point (filled circle), and a line respectively.  Every time a transition is fired, the shapes of all the places connected to that transition potentially change. In order to achieve this: The layout will need to be separated from its presentation. & The presentation of places with different numbers of tokens needs to be entrusted to separate components.

Artist  Maintains the coordinates of places, transitions, and arcs  Addresses issues of adjacency, and maintains logical associations with Petri net ADT objects.  It has no knowledge of the artists in the presentation layer or the look of Petri net Therefore,  When ever a place is added, deleted, or repositioned, or its number of tokens changes due to a transition firing,  the layout artist broadcasts the appropriate notifications  Artist maintaining the presentation of places with the specified number of tokens responds to them.  The separation of the 2 layers, the presentation of Petri net places could be easily changed from the standard circle-with-dots-as-tokens to polygons.  The components in the presentation layer are simple and entirely independent of each other. They can be added, interchanged, or substituted with new ones, without affecting the rest of the system.

ARGO: THE C2 DESIGN ENVIRONMENT Argo is a design environment for building C2-style architectures.  Constructs an architectural model  Checks for syntactic and semantic correctness,  Gives domain-specific feedback about various design qualities,  Keeps track of unfinished steps in the design process,  Generates running programs for that system. Notation: A connected graph of software components and connectors. Critical Feedback : Active agents provide critical and timely feedback from making wrong design decisions. But does not provide a feedback about the design. Code Generation: Allow the designer to specify the mapping from conceptual to efficient implementation architectures. Argo finishes the mapping via default rules. Architecture Analysis: The design environment supports several types of static analysis on the architecture using pro-active design critics.

RELATEDWORK A. Implicit Invocation  In the C2 style, implicit invocation occurs when a component reacts to a notification sent down an architecture by invoking some code.  Contrasting with other systems, the C2 style provides a discipline for ordering components which use implicit invocation. Hence yielding substrate independence. B. Messages and Message Mechanisms  The experiences from Chiron-1,Avoca systems on message communication is that : If message traffic occurs across a process boundary in a non-shared address space, then interprocess communications (IPC) becomes a key performance determinant. This motivated a key goal of the C2 style which was To provide a discipline for using service request and notification messages which can be mapped to either inter- or intra-process message mechanisms as needed.

RELATEDWORK (Contd.) C. Layered Systems Concentrating solely on the layering in an architecture, existing approaches span a wide range.  Systems such as Field and SoftBench have only a single layer.  The client/server spilt was supported by X hence bring about two layered architecture.  Chiron-1 has three layers: the application, artists, and graphics server.  Certain Models partition the work of supporting UI into specific layers say for examples into one of it into five layers, known as the domain-specific (application) component, domain adaptor, dialog, presentation, and interaction toolkit components  BUT C2 style allows natural layering to handle each specific domain. Furthermore, C2 provides a layering mechanism based on implicit invocation, rather than the explicit calls providing greater flexibility in achieving substrate independence in an environment of dynamic, multi-lingual components.

RELATEDWORK (Contd.) D. Language and Process Support  In contrast to certain other systems like Smalltalk, C2 embodies no language assumptions; components may be written in any convenient language.  C2 supports simultaneous satisfaction of arbitrary numbers of processes in a non-shared address space is achieved. E. Component Interoperability Models There are a lot of models that provide standard format for describing services offered by a component and runtime facilities to locate, load, and execute services of other components Ex: OLE and OpenDoc. BUT these models are concerned with low-level implementation issues and provide little or no guidance in building a system out of components. THEREFORE C2 is not based on them but subsumes them : IN THAT These models may be used to realize an architecture in the C2 style.

RELATEDWORK (Contd.) G. Relating C2 Concepts to Object-Oriented Types Differences: The distinction between notifications, requests and the topology imposed by the C2 style on a set of components in an architecture. Programming languages generally adopt a single type checking method. On the other hand, C2 allows several subtyping mechanisms. F. Design Environments Argo : Domain-oriented design environment for the domain of C2 style software architectures. Aesop: Generation tool for software architecture design environments which focuses on architectural styles. Aesop interoperates with external analysis and code generation tools and a component repository. However, it is not organized around critics and has very little support for the designer’s beyond graphical support.

Designing an architecture involves  An iterative process of subdividing functionality into components (modular decomposition)  Determining the external interfaces of components  Positioning components within a C2 architecture.  Implementing a message passing infrastructure for connectors and developing a component template. CREATING AN ARCHITECTURE IN THE C2 STYLE

 Notifications: Need for full state broadcast as when an operation causes a complex state change to occur within the component.  In this case, full state notifications greatly reduce the complexity of listening components.  Connectors, are like software buses. There are no of bus technologies that may be suitable in the implementation of an architecture.  Trade-off between scalability and performance All the trial applications completed have been smaller scale systems.  Much work remains to be done on both architectural description (ADL) and interface definition (IDL) languages and the corresponding code generation and analysis tools. OPEN ISSUES

 One notable characteristic is the inability for a component to have dependencies on the technologies upon which it rests.  Rather, a component is “hopeful” that the components below it will perform useful work based on notification of actions that it performs. Conclusion: Future systems are going to be increasingly distributed, complex, multimedia, heterogeneous, and multi-user.  Assessing key scalability factors  Construction of a design environment  Exploration of how current commercial  Research offerings may be adapted to serve as reusable C2 components. Future work :