EPL441 1 EPL441 Software Engineering for Parallel and Distributed Systems George A. Papadopoulos Department of Computer Science

Slides:



Advertisements
Similar presentations
Welcome to Middleware Joseph Amrithraj
Advertisements

COM vs. CORBA.
IT INFRASTRUCTURE AND EMERGING TECHNOLOGIES
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.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Distributed components
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
What is Software Engineering? And why is it so hard?
Chapter 17: Client/Server Computing Business Data Communications, 4e.
1 Pertemuan 13 Servers for E-Business Matakuliah: M0284/Teknologi & Infrastruktur E-Business Tahun: 2005 Versi: >
Distributed Systems Architectures
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
ECI-M-811 Distributed Systems and Internetworking
- 1 - Component Based Development R&D SDM Theo Schouten.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
Chapter 9: Moving to Design
CS551 - Lecture 1 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816)
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
EAI. 2/31 Example: a simple supply chain purchase order deliver goods write invoice order atricle check availability document customer-contact not available.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Effectively Explaining the Cloud to Your Colleagues.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Introduction To Computer System
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Copyrighted material John Tullis 10/2/2015 page 1 04/02/00 MQ Series Middleware Presentation John Tullis DePaul Instructor
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
1 Computing Fundamantals With thanks to Laudon & Laudon Session 2.
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:
MANAGING SOFTWARE ASSETS ~ pertemuan 6 ~ Oleh: Ir. Abdul Hayat, MTI 1[Abdul Hayat, SIM, Semester Genap 2007/2008]
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CS551 - Lecture 2 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816)
Chapter 17: Client/Server Computing Business Data Communications, 4e.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
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.
Microsoft.NET; A vision for the next generation of XML Web Services. Steven Adler Product Manager Microsoft EMEA.
© 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.
Chapter 8 – Cloud Computing
CS551 - Lecture 2 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816)
SoftwareServant Pty Ltd 2009 SoftwareServant ® Using the Specification-Only Method.
Lecture 21: Component-Based Software Engineering
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©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.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Objektorienteret Netværkskommunikation Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
J2EE Platform Overview (Application Architecture)
Unit 3 Virtualization.
Chapter 9 – RPCs, Messaging & EAI
Introduction to Cloud Computing
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Inventory of Distributed Computing Concepts
Component--based development
Quality Assurance for Component-Based Software Development
Presentation transcript:

EPL441 1 EPL441 Software Engineering for Parallel and Distributed Systems George A. Papadopoulos Department of Computer Science Course URL:

2 EPL 441 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 EPL 441 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 EPL 441 The Software Crisis/Solution 1968: NATO conference in Garmisch-Partenkirchen Software crisis (to characterize the situation) Software engineering (idea for a solution)

5 EPL 441 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 EPL 441 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 EPL 441 Why is Software so Hard? Software is [Parnas, 1985]:  Buggy  Unreliable  Forever changing  Unwarrantable

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

9 EPL 441 Three P’s ProcessesProducts People

10 EPL 441 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 EPL 441 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 EPL 441 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 EPL 441 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 EPL 441 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 EPL 441 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 EPL 441 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 EPL 441 Real World Example: Hongkong 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 EPL 441 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 EPL 441 Why Distributed Software Technology? Distributed: –Video clients need to download/show video on customer’s Web- TV –Multiple servers needs to be operated by Hongkong Telecom: Software 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 EPL 441 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 EPL 441 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 EPL 441 Why Distributed Software 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 EPL 441 Boeing 777 Configuration Mgmnt.

24 EPL 441 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 EPL 441 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 EPL 441 Requirements Heterogeneity –20 Sequent database machines as servers for the engineering data –200 UNIX application servers –NT and UNIX workstations for engineers

27 EPL 441 Why Distributed Software Technology Object wrapping of COTS Resolution of distribution at high level of abstraction Resolution of heterogeneity Scalability

28 EPL 441 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 EPL 441 Course Content - 1 Introduction to Components and Component-Based Software Engineering Fundamental Concepts: –Components vs Objects –Patterns –Software Architectures –Coordination Models and Language –Software Composition

30 EPL 441 Course Content -2 Middleware Platforms and Component Based Systems Development: –COM/DCOM/ActiveX –CORBA –Jini Development of Component Based Systems: –Architectures and Component Frameworks –Development of Components in Distribute Systems –Related Programming Languages –Configuration Management