Case Studies Elevator control system Elevator control system Comet case studies From task structuring to target system configuration.

Slides:



Advertisements
Similar presentations
DISTRIBUTED COMPUTING PARADIGMS
Advertisements

Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Multiple Processor Systems
Executional Architecture
Chapter 10 Input / Output Organization CS 147 Yueyang Zhou.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
Advanced Workgroup System. Printer Admin Utility Monitors printers over IP networks Views Sharp and non-Sharp SNMP Devices Provided Standard with Sharp.
Multiple Processor Systems
Multiple Processor Systems Chapter Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
9/20/2004 Arch. Des. of Dist. Sys., ECEN5053, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems ECEN 5053 Software Engineering of.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 3, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 3 ECEN5053 SW.
1: Operating Systems Overview
Concurrency CS 510: Programming Languages David Walker.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
Middleware Technologies compiled by: Thomas M. Cosley.
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 4, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 4 ECEN5053 SW.
1 I/O Management in Representative Operating Systems.
9/20/2004 Arch. Des. of Dist. Sys., ECEN5053, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems ECEN 5053 Software Engineering of.
DISTRIBUTED COMPUTING
What is it? A mobile robotics system controls a manned or partially manned vehicle-car, submarine, space vehicle | Website for Students.
Client/Server Software Architectures Yonglei Tao.
WORKFLOW IN MOBILE ENVIRONMENT. WHAT IS WORKFLOW ?  WORKFLOW IS A COLLECTION OF TASKS ORGANIZED TO ACCOMPLISH SOME BUSINESS PROCESS.  EXAMPLE: Patient.
Chapter 10 Architectural Design
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Computer System Architectures Computer System Software
Ryan McAlister CONNECTORS. Introduction Integration and interaction As important as developing functionality More challenging decisions Transfer control.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
An Introduction to Software Architecture
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster computers –shared memory model ( access nsec) –message passing multiprocessor.
Supporting Multi-Processors Bernard Wong February 17, 2003.
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
Comet, a Case Study Distributed Factory Automation System Software Engineering Petta Davide.
1 CMPT 275 High Level Design Phase Modularization.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Shuman Guo CSc 8320 Advanced Operating Systems
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
1: Operating Systems Overview 1 Jerry Breecher Fall, 2004 CLARK UNIVERSITY CS215 OPERATING SYSTEMS OVERVIEW.
PARALLEL PROCESSOR- TAXONOMY. CH18 Parallel Processing {Multi-processor, Multi-computer} Multiple Processor Organizations Symmetric Multiprocessors Cache.
CS603 Basics of underlying platforms January 9, 2002.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Object and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
I/O: Input-Output By: Tommy Zeng. What is I/O? I/O – short for “Input – Output” How a computer interacts with its users Input – gets information from.
7.1 Operating Systems. 7.2 A computer is a system composed of two major components: hardware and software. Computer hardware is the physical equipment.
Two New UML Diagram Types Component Diagram Deployment Diagram.
9 Systems Analysis and Design in a Changing World, Fifth Edition.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Elevator Example. Problem GSU schedules to upgrade all the campus elevators in 6 months. Due to incompatibility with the new hardware, the current software.
Cmpe 589 Spring 2006.
Definition of Distributed System
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
#01 Client/Server Computing
Programming Models for Distributed Application
Advanced Operating Systems
Software Architecture
Multiple Processor Systems
An Introduction to Software Architecture
#01 Client/Server Computing
Presentation transcript:

Case Studies Elevator control system Elevator control system Comet case studies From task structuring to target system configuration.

Centralized solution - - Determine tasks for each subsystem - - Define task interfaces - - Design of data abstraction classes Task structuring

Centralized solution - -Elevator Control System is mapped to a single CPU or to a multiprocessor configuration with shared memory - -Elevator Status&Plan object is accessible to all elevators and to the scheduler - -We can use a centralized repository of data Assumptions

Task structuring Centralized solution - - Analize all the objects on the collaboration diagrams - - Apply the task structuring criteria Procedure

Elevator subsystem Task structuring Elevator button Interface - Asynchronous input device interface criterion - Asynchronous input device interface criterion -> Separate task - - Task inversion criteria -> One task handles all the elevator buttons

Task structuring Elevator subsystem Elevator Manager -Structured as a Coordinator Object

Task structuring Elevator subsystem Elevator Status&Plan -Passive data abstraction object -> doesnt need a separate thread of control

Task structuring Elevator subsystem «state dependent control» :ElevatorControl «entity» :ElevatorStatus&Plan «coordinator» :Scheduler «output device interface» :DirectionLamp Interface «external output device» :FloorLamp «output device interface» :MotorInterface «external output device» :Motor D10a: Departed (Floor#) D10: Departed (Floor#) D6a: Off Up Direction Lamp D6: Up D9: Elevator Started D6a.1: Direction Lamp Output D8: Motor Response D7: Start Up Motor Command Elevator Control

Task structuring Each Elevator Control object is mapped to a separate Elevator Controller task It interacts with several output device interface objects such as: - -Motor Interface - -Door Interface - -Elevator Lamps Interface Do we need separate tasks? Elevator subsystem Elevator Control

Task structuring - -Passive devices - -Output request executed on demand - -The calling task has to wait for the output request to complete - -Elevator Controller doesnt execute concurrently with Motor Interface and Door interface By the Control Clustering Criteria we combine these tasks with the Elevator Controller task Elevator subsystem Output devices

Elevator Controller doesnt execute concurrently with Motor Interface and Door interface Elevator Door Opening Elevator at Floor Elevator Stopping Elevator Moving Entry/Departed Approaching Floor/Check This Floor Approaching Requested Floor/Stop,On Direction Lamp Elevator Stopped/Open Door, Off Elevator Lamp, Arrived Door opened/Start Timer Task structuring Elevator subsystem

For the Elevator Control subsystem we have four tasks Task structuring - -Elevator Buttons Interface - -Arrival Sensors Interface - -Elevator Controller - -Elevator Manager Elevator subsystem Summary

Task structuring Elevator subsystem

«external input device» : FloorButton Floor Button Request «subsystem» : Scheduler Floor Lamp Output «external output device» : DirectionLamp Direction Lamp Output «input device interface» :FloorButtonInterface «output device interface» :FloorLampInterface «output device interface» :DirectionLamp Interface «subsytem» :ElevatorSubsystem Service Request Floor Lamp Command «external output device» : FloorLamp Direction Lamp Command «data collection subsystem» :FloorSubsystem Task structuring Floor subsystem We start from the floor subsystem structure.

Task structuring Floor subsystem We determine the Floor Button Interface task We consider Floor Lamp Interface and Direction Lamp Interface - -Are passive output devices - -Receive concurrent requests from the Elevator Controller instances We use monitors tasks to serialize the requests

Centralized solution Task structuring

Centralized solution Task structuring

Define Task interfaces Task structuring - -Consider message interfaces between concurrent tasks - -Map them to loosely or tightly coupled messages - -Add name and parameters of each message

Define Task interfaces Task structuring For instance: ElevatorRequest <<asynchronous input device interface>> input device interface>> :Elevator Buttons Interface <<coordinator>>:ElevatorManager ElevatorRequest(Elevator#,floor#,direction) <<asynchronous input device interface>> input device interface>> :Elevator Buttons Interface <<coordinator>>:ElevatorManager

Define Task interfaces Task structuring

Define Task interfaces Task structuring

Design of Data Abstraction Class Task structuring > Elevator Status&Plan + arrived(elevator#,floor#,direction) + departed(elevator#,floor#,direction) + checkThisFloor(in elevator#,in floor#,out floor status, out direction) + checkNextDestination(in elevator,#out direction) + updatePlan(elevator#, floor#, direction,out idlestatus) + selectElevator(in floor#, out elevator#,in direction)

Distributed Solution -Subsystem Structuring - -Design of Device Interface classes -Design of information hiding classes - -Design of Device Interface classes - -Design of State-Dependent classes -Detailed software design - -Design of Connector objects - -Design of Composite Tasks -Target system configuration

Distributed solution General description - -Multiple nodes interconnected by a LAN - -No shared memory Physical configuration: - -All communication is via loosely coupled messages

Task structuring Distributed Solution

Distributed solution General description - -Now the Scheduler and the multiple instances of the ElevatorManager cannot directly access Elevator Status&Plan data object An emerging issue We may: Embed ElevatorStatus&Plan in a server object Use replicated data

Distributed solution General description Server solution - -Clients access the ElevatorStatus&Plan with a synchronous message with reply Risk of Bottleneck!

Distributed solution General description Data replication solution - -Each instance of the Elevator Subsystem maintains a Local ElevatorStatus&Plan - -The Scheduler Subsystem maintains an Overall Status&Plan Faster data access

Distributed solution Subsystem Structuring Structure of Elevator Subsystem - -Similar to the centralized solution -Each Elevator subsystem contains a Local Elevator Status&Plan object

Distributed solution Task structuring

Distributed solution Task structuring

Distributed solution Subsystem Structuring Structure of Scheduler Subsystem - -Elevator Status&Plan Server Task -Elevator scheduler - -Receives Status and commitment messages - -Updates Overall Elevator Status&Plan - -Receives Service Requests messages

Distributed solution Subsystem Structuring

Design of information hiding classes - -Device Interface classes - -Data abstraction class(distributed) - -State Dependent class We design the operations of

> Floor Lamp Interface + initialize() +off() > Arrival Sensor Interface + initialize() + read(out sensorInput) Design of device interface classes Design of information hiding classes

Design of device interface classes > Motor Interface + initialize() + stop(out stopped) + up(out started) + down(out started) > Door Interface + initialize() + open(out opened) + close(out closed) Design of information hiding classes

Design of Data Abstraction Class > LocalElevator Status&Plan + arrived(elevator#,floor#,direction) + departed(elevator#,floor#,direction) + checkThisFloor(in elevator#,in floor#,out floor status, out direction) + checkNextDestination(in elevator,#out direction) + updatePlan(elevator#, floor#, direction,out idlestatus) Design of information hiding classes

Design of Data Abstraction Class > OverallElevator Status&Plan + arrived(elevator#,floor#,direction) + departed(elevator#,floor#,direction) + updatePlan(elevator#, floor#, direction,out idlestatus) + selectElevator(in floor#, out elevator#,in direction) Design of information hiding classes

Design of State Dependent Class > Elevator Control + processEvent(in event,out action) + currentStatus():Status Design of information hiding classes

Detailed Software Design Two main phases: - -Design of the connector objects - -Design of the composite tasks

Detailed Software Design Design of connector objects We introduce connectors to hide the details of message communication. The sender tasks should be unaware of the location of the receiver tasks Location transparency

Detailed Software Design Elevator subsystem Design of connector objects

Detailed Software Design Messages from Arrival Sensor Interface and Elevator Manager to Elevator controller never overlap-> We can use one message buffer instead of two We introduce three message queue connectors to hide the details of asynchronous(and possibly remote) communication Elevator subsystem Design of connector objects

Detailed Software Design Design of connector objects

Detailed Software Design Elevator Controller Task embeds - -Three output device interfaces - -One state dependent control object - -Two objects that provide synchronization Design of composite tasks

Detailed Software Design - -Each device interface object for an asynchronous I/O device is placed inside the task supporting that device - -Resource monitor tasks embed the passive I/O interfaces for the devices they operate Design of composite tasks

Detailed Software Design Design of composite tasks

Distributed solution System Configuration Target system configuration - -Instances of the component types are defined - -Component instances are interconnected - -Component instances are mapped to physical nodes

Distributed solution System Configuration A possible physical configuration - -One Elevator Subsystem for each elevator node - -One Floor Subsystem for each floor node

Distributed solution System Configuration

Definition Control Clustering criteria Another possible physical configuration - -All instances of the floor subsystem mapped to one node - -One Elevator Subsystem for each elevator node