CS551 - Lecture 2 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932

Slides:



Advertisements
Similar presentations
Distributed Processing, Client/Server and Clusters
Advertisements

COM vs. CORBA.
Distributed Systems Topics What is a Distributed System?
©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.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
1DT057 D ISTRIBUTED I NFORMATION S YSTEM Distributed Systems Characterization and Design 1.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Distributed components
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization and Design Goals Dr. Michael R. Lyu Computer.
Distributed Systems Architectures
City University London
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
ECI-M-811 Distributed Systems and Internetworking
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Introduction to Distributed Systems CS412: Programming Distributed Applications Computer Science Southern Illinois University CS412: Programming Distributed.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
Slides for Chapter 1 Characterization of Distributed Systems From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3,
CS551 - Lecture 1 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
EPL441 1 EPL441 Software Engineering for Parallel and Distributed Systems George A. Papadopoulos Department of Computer Science
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Distributed Systems Architectures
Chapter 1 Characterization of Distributed Systems Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Pearson Education.
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bộ môn Mạng và Truyền Thông Máy Tính.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Distributed Systems: Concepts and Design Chapter 1 Pages
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Distributed systems A collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility –A well.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
CS451 - Lecture 11 CS451 Introduction to Software Engineering Yugi Lee FH #560D (816)
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CS551 - Lecture 2 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816)
SUMAN K REDDY BURJUKINDI. Evolution of Modern Operating Systems 1 st Generation: Centralized Operating System 2 nd Generation: Network Operating System.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
Kjell Orsborn UU - DIS - UDBL DATABASE SYSTEMS - 10p Course No. 2AD235 Spring 2002 A second course on development of database systems Kjell.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
CS551 - Lecture 11 1 CS551 Object Oriented Middleware (III) (Chap. 5 of EDO) Yugi Lee STB #555 (816)
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Computer Science Lecture 28, page 1 CS677: Distributed OS Today: Final Thoughts.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
IT 5433 LM1. Learning Objectives Understand key terms in database Explain file processing systems List parts of a database environment Explain types of.
Objektorienteret Netværkskommunikation Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Chapter 1 Characterization of Distributed Systems
CSC 480 Software Engineering
3. Distributed Systems – Architecture Models Part 1
#01 Client/Server Computing
Distributed Systems Bina Ramamurthy 11/12/2018 From the CDK text.
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 4/7/2019 B.Ramamurthy.
Slides for Chapter 1 Characterization of Distributed Systems
Distributed Systems Bina Ramamurthy 4/22/2019 B.Ramamurthy.
Introduction To Distributed Systems
Distributed Systems and Concurrency: Distributed Systems
#01 Client/Server Computing
Presentation transcript:

CS551 - Lecture 2 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816)

2 CS551 - Lecture 2 Today’s Software Development Development of large & complex systems Software systems must fulfill the requirements of stakeholders (clients, end-users, developers,…) Number of persons involved in the development > 1 Software systems are expected to live long and be used by many people

3 CS551 - Lecture 2 What are the Problems? Increased quality demands on software products High cost and time pressure Shorter time to market Coordination problems within the projects Scarce resources

4 CS551 - Lecture 2 The Software Crisis/Solution 1968: NATO conference in Garmisch-Partenkirchen Software crisis (to characterize the situation) Software engineering (idea for a solution)

5 CS551 - Lecture 2 What’s Software Crisis?  Unacceptably low quality of software  Delayed deadlines: Average 1 year  Over cost limits: Average 2X estimate E.g. Air Force Command and Control system Initial estimate $1.5million Winner’s bid $0.4 million Actual cost $3.7 million  After deliver? E.g. U.S Army study of Federal projects Delivered, but not used 47% Paid for, but not delivered 29% Abandoned or reworked 19% Used after changes 3% Used as delivered 2%

6 CS551 - Lecture 2 Example: Practical Disasters European Space Agency Ariane 5 –Track control system failure results in self destruction Denver Airport –Late delivery of software for the baggage system delays the opening of the airport by 16 months US study (1995): 81 billion US$ spend per year for failing software development projects

7 CS551 - Lecture 2 Why is Software so Hard? Software is [Parnas, 1985]:  Buggy  Unreliable  Forever changing  Unwarrantable

8 CS551 - Lecture 2 Definition: Software Engineering The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software [IEEE-93]

9 CS551 - Lecture 2 Three P’s ProcessesProducts People

10 CS551 - Lecture 2 People, Processes, Products People –education –skills –communication –style –..... Products –requirements –design –source code –executable –user documentation –test cases –test results –change request –.... Processes –planning –coordination –management –measuring –analyzing –designing –coding –.....

11 CS551 - Lecture 2 Scope: Software Engineering various disciplines –Mathematics, –Computer science, –Economics, –Management, –Psychology –etc. extremely broad – the software life cycle – team or organization –economic aspect – legal aspect, – etc.

12 CS551 - Lecture 2 Why still Software Engineering? Has the software crisis vanished? No! Software projects still run over time and out of budget no break through in quality !!! [still art instead of engineering discipline]

13 CS551 - Lecture 2 What is a Distributed System? A collection of autonomous hosts that that are connected through a computer network. Each host executes components and operates a distribution middleware Middleware enables the components to coordinate their activities Users perceive the system as a single, integrated computing facility.

14 CS551 - Lecture 2 Host n-1 Host n Host 2 Host 1 What is a Distributed System? Middleware Network Operating System Hardware Component 1 Component n Component 1 Component n Component 1 Component n Component 1 Component n Network

15 CS551 - Lecture 2 Middleware Examples Transaction-oriented –IBM CICS –BEA Tuxedo –IBM Encina –Microsoft Transaction Server Message-oriented –Microsoft Message Queue –NCR TopEnd –Sun Tooltalk Transaction-oriented –IBM CICS –BEA Tuxedo –IBM Encina –Microsoft Transaction Server Message-oriented –Microsoft Message Queue –NCR TopEnd –Sun Tooltalk Procedural –Sun ONC –Linux RPCs –OSF DCE Object-oriented –OMG CORBA –Sun Java/RMI –Microsoft COM –Sun Enterprise Java Beans Procedural –Sun ONC –Linux RPCs –OSF DCE Object-oriented –OMG CORBA –Sun Java/RMI –Microsoft COM –Sun Enterprise Java Beans

16 CS551 - Lecture 2 Centralized vs. Distributed System One component with non- autonomous parts Component shared by users all the time All resources accessible Software runs in a single process Single Point of control Single Point of failure Multiple autonomous components Components are not shared by all users Resources may not be accessible Software runs in concurrent processes on different processors Multiple Points of control/failure

17 CS551 - Lecture 2 Real World Example: Hong Kong Telecom Video-on-demand: provide subscribers with facilities to download videos from HK TK servers to low-cost Web-TVs. currently 90,000 users. Built using distributed object-technology. Video-on-demand: provide subscribers with facilities to download videos from HK TK servers to low-cost Web-TVs. currently 90,000 users. Built using distributed object-technology. …

18 CS551 - Lecture 2 Requirements Hardware: –Clients: Web-TV –Servers: RISC processor Operating System Heterogeneity : –Clients: Java OS –Servers: UNIX Programming Language Heterogeneity: –Clients: Java –Servers: C++ Communication across Network –How to transmit complex data structures across the Internet? Scale –Scaling from initially several hundred to currently 90,000 users Security –Secure Payment –Authentication

19 CS551 - Lecture 2 Why Distributed Object Technology? Distributed: –Video clients need to download/show video on customer’s Web- TV –Multiple servers needs to be operated by Hongkong Telecom Object Technology: –Video clients are written in Java: Web-TV has Java Virtual Machine portability to e.g. Sony Playstation, Sega-Console... –Video servers are written in C++: high performance

20 CS551 - Lecture 2 Trading Workstation Trading Workstation Authorisation Services Authorisation Services Host Services Customer Information Services Customer Information Services Product Database Services Product Database Services Marketing Services Marketing Services Another Example:IT Infrastructure of UBS

21 CS551 - Lecture 2 Requirements Time to market –Development of new applications with recent technology –Integration of new applications increasingly difficult Scalability –Management of 30,000,000 accounts –Management of 10,000,000 customers –Use by 2,000 concurrent users Reliability Hardware Heterogeneity –Unisys Mainframes –IBM Mainframes –SPARC Servers –PC Workstations Operating System Heterogeneity –MVS –UNIX –Win-NT Programming Language Heterogeneity –Cobol –C/C++ –Visual Basic

22 CS551 - Lecture 2 Why Distributed Object Technology? Uniform view of all banking services Appropriate level of abstraction Preserving investment by wrapping legacy applications Exploiting advantages of object technology for new development Resolving –distribution –heterogeneity

23 CS551 - Lecture 2 Boeing 777 Configuration Mgmnt.

24 CS551 - Lecture 2 Requirements Scale –3,000,000 parts per aircraft –Configuration of every aircraft is different –CAA regulations demand that records are kept for every single part of aircraft –Aircraft evolve during maintenance –Boeing produce 500 aircraft per year –Configuration database grows by 1.5 billion parts each year –Projected life of each aircraft 30 years –45,000 engineers need on-line access to engineering data

25 CS551 - Lecture 2 Requirements COTS Integration –Existing IT infrastructure was no longer appropriate –Boeing could not afford to build required IT infrastructure from scratch –Components were purchased from several different specialized vendors relational database technology enterprise resource planning computer aided project planning –Components needed to be integrated

26 CS551 - Lecture 2 Requirements Heterogeneity –20 Sequent database machines as servers for the engineering data –200 UNIX application servers –NT and UNIX workstations for engineers

27 CS551 - Lecture 2 Why Distributed Object Technology Object wrapping of COTS Resolution of distribution at high level of abstraction Resolution of heterogeneity Scalability

28 CS551 - Lecture 2 Distributed System Requirements Integration of new, legacy and components off-the-shelf –Legacy components might not need to be re-engineered –COTS cannot be modified Heterogeneity of –hardware platforms –operating systems –networks –programming languages Construction of distributed systems

29 CS551 - Lecture 2 Distributed System Requirements What are we trying to achieve when we construct a distributed system? Certain requirements are common to many distributed systems –Resource Sharing –Openness –Concurrency –Scalability –Fault Tolerance –Transparency

30 CS551 - Lecture 2 Resource Sharing Ability to use any hardware, software or data anywhere in the system. Resource manager controls access, provides naming scheme and controls concurrency. Resource sharing model (e.g. client/ server or object-based) describing how –resources are provided, –they are used and –provider and user interact with each other. Ability to use any hardware, software or data anywhere in the system. Resource manager controls access, provides naming scheme and controls concurrency. Resource sharing model (e.g. client/ server or object-based) describing how –resources are provided, –they are used and –provider and user interact with each other.

31 CS551 - Lecture 2 Openness Openness is concerned with extensions and improvements of distributed systems. Detailed interfaces of components need to be published. New components have to be integrated with existing components. Differences in data representation of interface types on different processors (of different vendors) have to be resolved. Openness is concerned with extensions and improvements of distributed systems. Detailed interfaces of components need to be published. New components have to be integrated with existing components. Differences in data representation of interface types on different processors (of different vendors) have to be resolved.

32 CS551 - Lecture 2 Concurrency Components in distributed systems are executed in concurrent processes. Components access and update shared resources (e.g. variables, databases, device drivers). Integrity of the system may be violated if concurrent updates are not coordinated. –Lost updates –Inconsistent analysis Components in distributed systems are executed in concurrent processes. Components access and update shared resources (e.g. variables, databases, device drivers). Integrity of the system may be violated if concurrent updates are not coordinated. –Lost updates –Inconsistent analysis

33 CS551 - Lecture 2 Scalability Adoption of distributed systems to –accommodate more users –respond faster (this is the hard one) Usually done by adding more and/or faster processors. Components should not need to be changed when scale of a system increases. Design components to be scalable! Adoption of distributed systems to –accommodate more users –respond faster (this is the hard one) Usually done by adding more and/or faster processors. Components should not need to be changed when scale of a system increases. Design components to be scalable!

34 CS551 - Lecture 2 Fault Tolerance Hardware, software and networks fail! Distributed systems must maintain availability even at low levels of hardware/software/network reliability. Fault tolerance is achieved by –recovery –redundancy Hardware, software and networks fail! Distributed systems must maintain availability even at low levels of hardware/software/network reliability. Fault tolerance is achieved by –recovery –redundancy

35 CS551 - Lecture 2 Transparency Distributed systems should be perceived by users and application programmers as a whole rather than as a collection of cooperating components. Transparency has different dimensions that were identified by ANSA. These represent various properties that distributed systems should have. Distributed systems should be perceived by users and application programmers as a whole rather than as a collection of cooperating components. Transparency has different dimensions that were identified by ANSA. These represent various properties that distributed systems should have.

36 CS551 - Lecture 2 Access Transparency Access Transparency Location Transparency Location Transparency Concurrency Transparency Concurrency Transparency Migration Transparency Migration Transparency Performance Transparency Performance Transparency Scalability Transparency Scalability Transparency Replication Transparency Replication Transparency Failure Transparency Failure Transparency Distribution Transparency

37 CS551 - Lecture 2 Access/Location Transparency Access Transparency –Enables local and remote information objects to be accessed using identical operations. –E.g: File system operations in NFS, Navigation in the Web, SQL Queries Location Transparency –Enables information objects to be accessed without knowledge of their location. –E.g: File system operations in NFS, Pages in the Web, Tables in distributed databases Access Transparency –Enables local and remote information objects to be accessed using identical operations. –E.g: File system operations in NFS, Navigation in the Web, SQL Queries Location Transparency –Enables information objects to be accessed without knowledge of their location. –E.g: File system operations in NFS, Pages in the Web, Tables in distributed databases

38 CS551 - Lecture 2 Concurrency/Replication Transparency Concurrency Transparency –Enables several processes to operate concurrently using shared information objects without interference between them. –e.g, NFS, Automatic teller machine network, Database management system Replication Transparency –Enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programs –e.g, Distributed DBMS, Mirroring Web Pages. Concurrency Transparency –Enables several processes to operate concurrently using shared information objects without interference between them. –e.g, NFS, Automatic teller machine network, Database management system Replication Transparency –Enables multiple instances of information objects to be used to increase reliability and performance without knowledge of the replicas by users or application programs –e.g, Distributed DBMS, Mirroring Web Pages.

39 CS551 - Lecture 2 Failure/Migration Transparency Failure Transparency –Enables the concealment of faults –Allows users and applications to complete their tasks despite the failure of other components. e.g. Database Management System Migration Transparency –Allows the movement of information objects within a system without affecting the operations of users or application programs. e.g., NFS, Web Pages Failure Transparency –Enables the concealment of faults –Allows users and applications to complete their tasks despite the failure of other components. e.g. Database Management System Migration Transparency –Allows the movement of information objects within a system without affecting the operations of users or application programs. e.g., NFS, Web Pages

40 CS551 - Lecture 2 Scaling/Performance Transparency Performance Transparency – Allows the system to be reconfigured to improve performance as loads vary. –E.g. Distributed make. Scaling Transparency –Allows the system and applications to expand in scale without change to the system structure or the application algorithms. –E.g.,World-Wide-Web, Distributed Database Performance Transparency – Allows the system to be reconfigured to improve performance as loads vary. –E.g. Distributed make. Scaling Transparency –Allows the system and applications to expand in scale without change to the system structure or the application algorithms. –E.g.,World-Wide-Web, Distributed Database

41 CS551 - Lecture 2 Key Points What is a Distributed Systems Adoption of Distributed Systems is driven by Non-Functional Requirements Distribution needs to be transparent to users and application designers Transparency has several dimensions Transparency dimensions depend on each other What is a Distributed Systems Adoption of Distributed Systems is driven by Non-Functional Requirements Distribution needs to be transparent to users and application designers Transparency has several dimensions Transparency dimensions depend on each other