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