Distributed Systems Architectures - Systems, software · PDF fileDistributed systems...

55
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures

Transcript of Distributed Systems Architectures - Systems, software · PDF fileDistributed systems...

Page 1: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 1

Distributed Systems Architectures

Page 2: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 2

Objectives

● To explain the advantages and disadvantages ofdifferent distributed systems architectures

● To discuss client-server and distributed objectarchitectures

● To describe object request brokers and theprinciples underlying the CORBA standards

● To introduce peer-to-peer and service-orientedarchitectures as new models of distributedcomputing.

Page 3: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 3

Topics covered

● Multiprocessor architectures

● Client-server architectures

● Distributed object architectures

● Inter-organisational computing

Page 4: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 4

Distributed systems

● Virtually all large computer-based systemsare now distributed systems.

● Information processing is distributed overseveral computers rather than confined to asingle machine.

● Distributed software engineering is thereforevery important for enterprise computingsystems.

Page 5: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 5

System types

● Personal systems that are not distributed and thatare designed to run on a personal computer orworkstation.

● Embedded systems that run on a single processoror on an integrated group of processors.

● Distributed systems where the system software runson a loosely integrated group of cooperatingprocessors linked by a network.

Page 6: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 6

Distributed system characteristics

● Resource sharing• Sharing of hardware and software resources.

● Openness• Use of equipment and software from different vendors.

● Concurrency• Concurrent processing to enhance performance.

● Scalability• Increased throughput by adding new resources.

● Fault tolerance• The ability to continue in operation after a fault has

occurred.

Page 7: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 7

Distributed system disadvantages

● Complexity• Typically, distributed systems are more complex than

centralised systems.

● Security• More susceptible to external attack.

● Manageability• More effort required for system management.

● Unpredictability• Unpredictable responses depending on the system

organisation and network load.

Page 8: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 8

Distributed systems architectures

● Client-server architectures• Distributed services which are called on by

clients. Servers that provide services are treateddifferently from clients that use services.

● Distributed object architectures• No distinction between clients and servers. Any

object on the system may provide and useservices from other objects.

Page 9: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 9

Middleware

● Software that manages and supports the differentcomponents of a distributed system. In essence, itsits in the middle of the system.

● Middleware is usually off-the-shelf rather thanspecially written software.

● Examples• Transaction processing monitors;

• Data converters;

• Communication controllers.

Page 10: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 10

Multiprocessor architectures

● Simplest distributed system model.● System composed of multiple processes

which may (but need not) execute ondifferent processors.

● Architectural model of many large real-timesystems.

● Distribution of process to processor may bepre-ordered or may be under the control of adispatcher.

Page 11: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 11

A multiprocessor traffic control system

Page 12: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 12

Client-server architectures

● The application is modelled as a set ofservices that are provided by servers and aset of clients that use these services.

● Clients know of servers but servers need notknow of clients.

● Clients and servers are logical processes

● The mapping of processors to processes isnot necessarily 1 : 1.

Page 13: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 13

A client-server system

Page 14: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 14

Computers in a C/S network

Page 15: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 15

Layered application architecture

● Presentation layer• Concerned with presenting the results of a computation to

system users and with collecting user inputs.

● Application processing layer• Concerned with providing application specific functionality

e.g., in a banking system, banking functions such as openaccount, close account, etc.

● Data management layer• Concerned with managing the system databases.

Page 16: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 16

Application layers

Page 17: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 17

Thin and fat clients

● Thin-client model• In a thin-client model, all of the application

processing and data management is carried outon the server. The client is simply responsiblefor running the presentation software.

● Fat-client model• In this model, the server is only responsible for

data management. The software on the clientimplements the application logic and theinteractions with the system user.

Page 18: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 18

Thin and fat clients

Page 19: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 19

Thin client model

● Used when legacy systems are migrated toclient server architectures.• The legacy system acts as a server in its own

right with a graphical interface implemented ona client.

● A major disadvantage is that it places aheavy processing load on both the serverand the network.

Page 20: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 20

Fat client model

● More processing is delegated to the client asthe application processing is locallyexecuted.

● Most suitable for new C/S systems where thecapabilities of the client system are known inadvance.

● More complex than a thin client modelespecially for management. New versions ofthe application have to be installed on allclients.

Page 21: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 21

A client-server ATM system

Page 22: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 22

Three-tier architectures

● In a three-tier architecture, each of theapplication architecture layers may executeon a separate processor.

● Allows for better performance than a thin-client approach and is simpler to managethan a fat-client approach.

● A more scalable architecture - as demandsincrease, extra servers can be added.

Page 23: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 23

A 3-tier C/S architecture

Page 24: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 24

An internet banking system

Page 25: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 25

Use of C/S architectures

Architecture ApplicationsTwo-tier C/Sarchitecture withthin clients

Legacy system applications where separating application processing anddata management is impractical.Computationally-intensive applications such as compilers with little orno data management.Data-intensive applications (browsing and querying) with little or noapplication processing.

Two-tier C/Sarchitecture withfat clients

Applications where application processing is provided by off-the-shelfsoftware (e.g. Microsoft Excel) on the client.Applications where computationally-intensive processing of data (e.g.data visualisation) is required.Applications with relatively stable end-user functionality used in anenvironment with well-established system management.

Three-tier ormulti-tier C/Sarchitecture

Large scale applications with hundreds or thousands of clientsApplications where both the data and the application are volatile.Applications where data from multiple sources are integrated.

Page 26: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 26

Distributed object architectures

● There is no distinction in a distributed objectarchitectures between clients and servers.

● Each distributable entity is an object that providesservices to other objects and receives services fromother objects.

● Object communication is through a middlewaresystem called an object request broker.

● However, distributed object architectures are morecomplex to design than C/S systems.

Page 27: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 27

Distributed object architecture

Page 28: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 28

Advantages of distributed object architecture

● It allows the system designer to delay decisions onwhere and how services should be provided.

● It is a very open system architecture that allows newresources to be added to it as required.

● The system is flexible and scaleable.

● It is possible to reconfigure the system dynamicallywith objects migrating across the network asrequired.

Page 29: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 29

Uses of distributed object architecture

● As a logical model that allows you to structure andorganise the system. In this case, you think abouthow to provide application functionality solely interms of services and combinations of services.

● As a flexible approach to the implementation ofclient-server systems. The logical model of thesystem is a client-server model but both clients andservers are realised as distributed objectscommunicating through a common communicationframework.

Page 30: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 30

A data mining system

Page 31: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 31

Data mining system

● The logical model of the system is not one ofservice provision where there aredistinguished data management services.

● It allows the number of databases that areaccessed to be increased without disruptingthe system.

● It allows new types of relationship to bemined by adding new integrator objects.

Page 32: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 32

CORBA

● CORBA is an international standard for an ObjectRequest Broker - middleware to managecommunications between distributed objects.

● Middleware for distributed computing is required at 2levels:• At the logical communication level, the middleware allows

objects on different computers to exchange data andcontrol information;

• At the component level, the middleware provides a basisfor developing compatible components. CORBAcomponent standards have been defined.

Page 33: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 33

CORBA application structure

Page 34: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 34

Application structure

● Application objects.

● Standard objects, defined by the OMG, for aspecific domain e.g. insurance.

● Fundamental CORBA services such asdirectories and security management.

● Horizontal (i.e. cutting across applications)facilities such as user interface facilities.

Page 35: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 35

CORBA standards

● An object model for application objects• A CORBA object is an encapsulation of state

with a well-defined, language-neutral interfacedefined in an IDL (interface definition language).

● An object request broker that managesrequests for object services.

● A set of general object services of use tomany distributed applications.

● A set of common components built on top ofthese services.

Page 36: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 36

CORBA objects

● CORBA objects are comparable, in principle, toobjects in C++ and Java.

● They MUST have a separate interface definition thatis expressed using a common language (IDL) similarto C++.

● There is a mapping from this IDL to programminglanguages (C++, Java, etc.).

● Therefore, objects written in different languages cancommunicate with each other.

Page 37: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 37

Object request broker (ORB)

● The ORB handles object communications. It knowsof all objects in the system and their interfaces.

● Using an ORB, the calling object binds an IDL stubthat defines the interface of the called object.

● Calling this stub results in calls to the ORB whichthen calls the required object through a publishedIDL skeleton that links the interface to the serviceimplementation.

Page 38: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 38

ORB-based object communications

Page 39: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 39

Inter-ORB communications

● ORBs are not usually separate programs but are aset of objects in a library that are linked with anapplication when it is developed.

● ORBs handle communications between objectsexecuting on the sane machine.

● Several ORBS may be available and each computerin a distributed system will have its own ORB.

● Inter-ORB communications are used for distributedobject calls.

Page 40: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 40

Inter-ORB communications

Page 41: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 41

CORBA services

● Naming and trading services• These allow objects to discover and refer to

other objects on the network.

● Notification services• These allow objects to notify other objects that

an event has occurred.

● Transaction services• These support atomic transactions and rollback

on failure.

Page 42: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 42

Inter-organisational computing

● For security and inter-operability reasons,most distributed computing has beenimplemented at the enterprise level.

● Local standards, management andoperational processes apply.

● Newer models of distributed computing havebeen designed to support inter-organisational computing where differentnodes are located in different organisations.

Page 43: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 43

Peer-to-peer architectures

● Peer to peer (p2p) systems are decentralisedsystems where computations may be carried out byany node in the network.

● The overall system is designed to take advantage ofthe computational power and storage of a largenumber of networked computers.

● Most p2p systems have been personal systems butthere is increasing business use of this technology.

Page 44: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 44

P2p architectural models

● The logical network architecture• Decentralised architectures;

• Semi-centralised architectures.

● Application architecture• The generic organisation of components making

up a p2p application.

● Focus here on network architectures.

Page 45: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 45

Decentralised p2p architecture

Page 46: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 46

Semi-centralised p2p architecture

Page 47: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 47

Service-oriented architectures

● Based around the notion of externallyprovided services (web services).

● A web service is a standard approach tomaking a reusable component available andaccessible across the web• A tax filing service could provide support for

users to fill in their tax forms and submit theseto the tax authorities.

Page 48: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 48

A generic service

● An act or performance offered by one partyto another. Although the process may be tiedto a physical product, the performance isessentially intangible and does not normallyresult in ownership of any of the factors ofproduction.

● Service provision is therefore independent ofthe application using the service.

Page 49: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 49

Web services

Page 50: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 50

Services and distributed objects

● Provider independence.

● Public advertising of service availability.

● Potentially, run-time service binding.

● Opportunistic construction of new services throughcomposition.

● Pay for use of services.

● Smaller, more compact applications.

● Reactive and adaptive applications.

Page 51: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 51

Services standards

● Services are based on agreed, XML-basedstandards so can be provided on anyplatform and written in any programminglanguage.

● Key standards• SOAP - Simple Object Access Protocol;

• WSDL - Web Services Description Language;

• UDDI - Universal Description, Discovery andIntegration.

Page 52: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 52

Services scenario

● An in-car information system provides drivers withinformation on weather, road traffic conditions, localinformation etc. This is linked to car radio so thatinformation is delivered as a signal on a specificradio channel.

● The car is equipped with GPS receiver to discoverits position and, based on that position, the systemaccesses a range of information services.Information may be delivered in the driver’s specifiedlanguage.

Page 53: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 53

Automotive system

Page 54: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 54

● Distributed systems support resource sharing,openness, concurrency, scalability, fault toleranceand transparency.

● Client-server architectures involve services beingdelivered by servers to programs operating onclients.

● User interface software always runs on the clientand data management on the server. Applicationfunctionality may be on the client or the server.

● In a distributed object architecture, there is nodistinction between clients and servers.

Key points

Page 55: Distributed Systems Architectures - Systems, software · PDF fileDistributed systems architectures ... Layered application architecture Presentation layer ... Advantages of distributed

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 12 Slide 55

Key points

● Distributed object systems require middleware tohandle object communications and to add andremove system objects.

● The CORBA standards are a set of middlewarestandards that support distributed objectarchitectures.

● Peer to peer architectures are decentralisedarchitectures where there is no distinction betweenclients and servers.

● Service-oriented systems are created by linkingsoftware services provided by different servicesuppliers.