Distributed Software Architecture and Distributed Systems Middleware Eric M. Dashofy Department of Information and Computer Science University of California,

Slides:



Advertisements
Similar presentations
Distributed Systems Architectures
Advertisements

Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
RPC Robert Grimm New York University Remote Procedure Calls.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Distributed Object & Remote Invocation Vidya Satyanarayanan.
Architectural Pattern: Broker
Distributed Systems Architectures
The Architecture Design Process
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Terminal Bridge Extension Over Distributed Architecture MSc. Sami Saalasti.
Unified Modeling (Part I) Overview of UML & Modeling
Middleware Technologies compiled by: Thomas M. Cosley.
Ch 12 Distributed Systems Architectures
1 Programming systems for distributed applications Seif Haridi KTH/SICS.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Architecture or Component Frameworks? Alexander L. Wolf University of Colorado at Boulder
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Software Architecture for DSD The “Uses” Relation.
Common Object Request Broker Architecture (CORBA) CS-328.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
26 Sep 2003 Transparent Adaptive Resource Management for Distributed Systems Department of Electrical Engineering and Computer Science Vanderbilt University,
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Distributed Systems Architectures
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Architecting Web Services Unit – II – PART - III.
Distributed Processing and Client/Server
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Chapter 6 Architectural Design.
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
CABA’s Middleware Task Force What is Middleware? Middleware is an intelligent, enabling layer of software that manages the communication and interaction.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
1 Middleware and future telecom ’platform’ By Lill Kristiansen, ntnu.
CS223: Software Engineering
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Distributed objects and remote invocation Pages
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Architecting Web Services
Architecting Web Services
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Software Architecture Lecture 20
An Introduction to Software Architecture
Presentation transcript:

Distributed Software Architecture and Distributed Systems Middleware Eric M. Dashofy Department of Information and Computer Science University of California, Irvine May 8, 2000 WESAS 2000

World’s Quickest Review: Software Architecture Components –Loci of computation Connectors –Loci of communication –Implicit/Explicit Configurations

Distributed Systems Middleware Facilitates communication between –Processes –Machines –Languages Provides –Marshaling/Unmarshaling –Transparency (depends on middleware) –Value-added services Fault-tolerance Component location Application Dynamism Examples: –CORBA, ILU, RMI, Polylith, COM/DCOM, HP E-Speak

Current Architecture- Middleware Relationship Middleware induces architecture –CORBA/ILU (Distributed Objects) Components = Objects Connectors = RPC Configurations = OOP + Interfaces –Polylith (“Software Bus”) Components = Processes Connectors = Single message bus Configurations = Process-wide connection to bus, explicit send/receive

Current Architecture- Middleware Relationship This is a Bad Thing –Inhibits architects from choosing most appropriate architecture –Can rob architects of ability to use architecture tools, analyzability, components –Programmers/architects need to be keenly aware of interactions –Can change architecture of the system if implemented late

Thoughts... Invert the relationship –Make architectural style the key abstraction –Middleware becomes a lower layer - like it should be! Encapsulate middleware in connectors

Pictorially Comp Middleware OS + NetworkOS + N Middleware 1 OS + Network OS + N Connector Middleware 2 Connector Comp Connector Process Boundaries Architectural Style? Architectural Style After –Architectural style defined by architect –Architect leverages middleware(s) to create value- added connectors –Abstract style rules intact Before –Architectural style defined by middleware –Components directly connected to/dependent on middleware

Future Research Areas How do we “pull up” middleware capabilities into software architecture? –Middleware-based dynamism Add/replace/remove components / processes / machines at runtime –Important ancillary middleware services Real-time, fault tolerance Transactions Legacy component interoperability Middleware-provided/based gauges?

Future Directions Problems to address –Failure semantics What happens when a connection breaks or a message is lost? –Architectural visibility –Modifying distributed architecture via an Architecture Evolution Manager –Middleware limitations What kind of connectors can/can’t be built with middleware? –Middleware quirks What can and can’t be marshaled Name service

Conclusions Architecture and middleware a natural marriage –Architecture should wear the pants in the family Add value, dynamism, flexibility to architecture through middleware Still a lot of work to be done!