10-4-2006 ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 4 ECEN5053 SW.

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

COMET Approach for UML Overview
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Case Studies Elevator control system Elevator control system Comet case studies From task structuring to target system configuration.
Executional Architecture
A component- and message-based architectural style for GUI software
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Time and Global States Part 3 ECEN5053 Software Engineering of Distributed Systems University of Colorado, Boulder.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Transaction.
ECEN 5053, Paradigms & Patterns, Wk 81 Paradigms & Patterns - 3 ECEN 5053 SW Eng of Distributed Systems University of Colorado, Boulder.
Broker Pattern Pattern-Oriented Software Architecture (POSA 1)
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Distributed Systems Fall 2010 Replication Fall 20105DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
9/20/2004 Arch. Des. of Dist. Sys., ECEN5053, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems ECEN 5053 Software Engineering of.
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 3, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 3 ECEN5053 SW.
EEC 688/788 Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
Chapter 12 Distributed Database Management Systems
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Use Case Analysis – continued
J2EE Kenneth M. Anderson CSCI Web Technologies October 3, 2001.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
9/20/2004 Arch. Des. of Dist. Sys., ECEN5053, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems ECEN 5053 Software Engineering of.
The Design Discipline.
Systems Analysis and Design in a Changing World, Fifth Edition
IMS 4212: Distributed Databases 1 Dr. Lawrence West, Management Dept., University of Central Florida Distributed Databases Business needs.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
VLAN Trunking Protocol (VTP)
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Systems Analysis and Design in a Changing World, 3rd Edition
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Lecture 22: Client-Server Software Engineering
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
Distributed Databases
Databases Illuminated
Comet, a Case Study Distributed Factory Automation System Software Engineering Petta Davide.
Replication (1). Topics r Why Replication? r System Model r Consistency Models – How do we reason about the consistency of the “global state”? m Data-centric.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
DESIGN OF SOFTWARE ARCHITECTURE
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design,
Slide 1 Chapter 10 Object-oriented Design. Slide 2 Characteristics of OOD l Objects are abstractions of real-world or system entities and manage themselves.
Object and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Mutual Exclusion Algorithms. Topics r Defining mutual exclusion r A centralized approach r A distributed approach r An approach assuming an organization.
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
1 Object-Oriented Static Modeling of the Banking System - III Lecture # 33.
Object-Oriented Static Modeling of the Banking System - I
Ch > 28.4.
Programming Models for Distributed Application
Indirect Communication Paradigms (or Messaging Methods)
Indirect Communication Paradigms (or Messaging Methods)
Presentation transcript:

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 4 ECEN5053 SW Eng of Distributed Systems University of Colorado, Boulder

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder2 Timeline of COMET Design Methodology – Pt 1  Use case diagrams  Use case narratives Domain model System context model Static model of entity classes Define classes in the class dictionary (classes & attributes) Class diagram  objects  classes  high-level subsystems  add new classes to class dictionary  Per use case, dev collaboration diagram (or sequence)  Analyze sequence  Analyze information passed Dev. statechart for each state- dependent object in a state- dependent collaboration. Synthesize statecharts Message sequence descriptions for each collaboration diagram Requirements Model Analysis Model Design Model Synthesize artifacts of analysis to make initial sw architecture Synthesize collaboration diagrams into collaboration model Synthesize class diagram  Design overall sw architecture: Subsystem structure  Subsystem interfaces  Collaboration diagram for each subsystem  Hi-level collaboration diagram for whole system  Design distributed component-based sw architecture  For dist. apps., define dist. component subsystems using dist. configuration criteria  Def. msg comm interfaces

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder3 Timeline of COMET Design Methodology – Pt. 2 Define the concurrent task architecture for each subsystem  Apply task structuring criteria  Define tasks and their interfaces  Dev. concurrent collaboration diagrams for each subsystem  Describe each task in task behavior spec Analyze the performance of the design for real-time tasks Design the classes in each subsystem  Class interfaces  Inheritance hierarchies  If database needed o design db o dev wrapper classes  Dev. class interface spec for each class Dev. detailed software design for each subsystem  Internals of composite tasks including nested passive objects  Details of task synchronizatio mechanisms for obj’s accessed by multiple tasks  Connector classes that encapsulate details of inter-task communication  Des., doc each task’s internal event sequencing logic Performance Analysis for real-time sys Subsystem Classes Design Detailed software design Re-analyze performance in greater detail for each subsystem by iterating on these steps, if necessary. This applies to real-time application design.

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder4 Group msg comm or subscribe/notify One source, multiple destinations Broadcast communication unsolicited msg sent to all recipients; recipients decide whether to discard or process Multicast same msg sent to members of a group Subscribe/notify Publisher can send to group

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder5 Brokered Communication Clients and servers can be distributed objects Object broker is intermediary in interactions between them Client does not have to maintain info about where the service is provided or how to obtain it Provides location transparency – if server moves, only the broker needs to know Servers register services they provide and location Clients identify service required and send msg Broker receives request, finds location, forwards req.

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder6 Transaction Management In this section, sufficient to realize the need for transactions Flat – all or nothing Compound – might need only partial rollback We’ll spend a week specifically on transaction management

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder7 Data distribution Distributed data divided into sections each section on a different subsystem Replicated data identical copies everywhere challenge is to keep them identical at the level required by the application We spend a week on this topic, also.

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder8 Design of Server Subsystems Provides a service for client subsystems file servers, database servers, printer servers, etc. Consider a standalone program that accesses a database A data structure is encapsulated in a data abstraction object – acts as a “server” Tasks (concurrent) invoke operations provided by the object in order to access its data How is a distributed system different?

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder9 Distributed data access Tasks on physically separate nodes cannot access a passive data abstraction object directly The passive data abstraction object encapsulates the data structure A server component encapsulates the passive data abstraction object An active object thread access the passive object Server active object responds to client requests to read/update the data maintained by passive obj.

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder10 Simple server subsystem Does not initiate any requests for services from other subsystems Sequential Concurrent

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder11 Sequential Server Services client requests sequentially The sequential server is a task (active object) Provides one or more services Responds to requests from client tasks to access the service When server task receives a message, it invokes the service actually provided by the passive data abstraction object to read or update its data

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder12 Auxiliary support Server task has a message queue of incoming service requests There is a message type for each service provided by the server Server coordinator unpacks the client’s msg, checks the msg type, invokes the appropriate operation provided by the server object. Msg parameters are operation parameters Server object services request, returns response to server coordinator that packs response into a msg and sends it to the client.

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder13 Sequential server subsystem clientTransaction > ;BankServer > ;BankClient bankResponse ; BankTransactionServer ; CheckingAccount ;Savings Account debit() credit() read() debit() credit() read()

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder14 Concurrent Server Subsystem High client demand can lead to bottleneck at the sequential server subsystem interface Transfer the potential bottleneck to the internal access to the data Concurrent server subsystem Instantiate a new task for each msg What are the assumptions?

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder15 Implications of concurrency Access to data must be synchronized by application dependent algorithm mutual exclusion? multiple readers and writers? If clients communicate with server asynchronously Server response can be handled as a callback Client sends an operation handle with its request Server uses the handle to remote call the client operation (the callback) when finished servicing

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder16 Multiple readers & writers > mrwConcurrentServer ;ServerCo ordinator clientRequest aReaderanother Reader aWriteranother Writer ;Data Repository readRequest done serviceRe sponse read

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder17 Another concurrent server Server maintains an event archive Server provides a subscription/notification service to its clients Monitor task monitors external events Subscription server maintains list of clients that wish to be notified of these events When external event occurs, the monitor updates an event archive & informs the event distributor (publisher) of the event arrival Distributor queries the subscription server to determine clients who have subscribed; notifies them.

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder18 :Server Coordinator :EventArchive Server :SubscriptionS erver :Event Distributor > aReal-Time EventMonitor aConcurrentServer S1: client Request S2: subscribe archive Query archiveData S3: server Response E2: update E4: subscription Query E5: event Subscribers E3: event Arrival E1: externalEvent E6: eventNotification

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder19

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder20 Data distribution In the server examples so far, they are single- server subsystems – single host Even concurrent server subsystem can become a bottleneck and a single point of failure Alternatives Distributed Replicated

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder21 Distributed Server Data collected at several locations is stored at those locations Each location has a local server Each local server responds to client requests for that location’s data Where is that used in the Factory Automation System? The homework election system?

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder22 Distributed Server

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder23 Replicated Server Same data is duplicated in more than one location – intent is to speed access to the data Must ensure that data does not get out of date more than is acceptable for the application Coulouris has entire chapter on replicated systems

ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder24 System Configuration After designed, instances can be defined and configured to multiple geographically distributed physical nodes connected by a network Determine What component instances are required/desired How the component instances should be interconnected How the component instances should be allocated to nodes