Parallel & Distributed Computer Systems Chapter 01: Distributed - - PowerPoint PPT Presentation

parallel distributed computer
SMART_READER_LITE
LIVE PREVIEW

Parallel & Distributed Computer Systems Chapter 01: Distributed - - PowerPoint PPT Presentation

Parallel & Distributed Computer Systems Chapter 01: Distributed Systems by Dr. Aymen AKREMI, Ph.D Email: amakremi@uqu.edu.sa Course Material Web site: http://www.amansystem.com/?c=people/akremi/DPS 1 Outline Defining distributed


slide-1
SLIDE 1

1

by Dr. Aymen AKREMI, Ph.D

Parallel & Distributed Computer Systems

Chapter 01: Distributed Systems

Email: amakremi@uqu.edu.sa Course Material Web site: http://www.amansystem.com/?c=people/akremi/DPS

slide-2
SLIDE 2

2

Outline

 Defining distributed system  Why distribution?  Examples of distributed systems  Distributed system characteristics  Middleware positioning  Goals and challenges of distributed systems  Type of distributed systems

slide-3
SLIDE 3

3

Definition of a Distributed System

A distributed system is a collection of independent computers that appears to its users as a single coherent system

  • r as a single system

 Features:

 No shared memory – message-based communication  Each runs its own local OS  Heterogeneity

 Ideal: to present a single-system image:

 The distributed system “looks like” a single computer rather than a

collection of separate computers.

slide-4
SLIDE 4

4

Why distributed systems

 Sharing of information and systems  Possibility to add component improves  Availability, reliability, fault tolerance, performance, scalability

slide-5
SLIDE 5

5

Examples of distributed systems(1)

 The internet:

 Net of nets  Global access to “everybody”

(data, service, other…)

 Enormous size (open ended)  No single authority  Hardware resources (reduce

costs)

 Data resources (shared usage of

information)

 Service resources (search engines,

computers-supported cooperative working)

 Service vs. server (node or

process)

slide-6
SLIDE 6

6

Examples of distributed systems(2)

 Mobile and ubiquitous computing:

 Portable devices

 Laptops  Handheld devices  Wearable devices  Devices embedded in applications

 Mobile computing  Location-aware computing  Ubiquitous computing, pervasive

computing

slide-7
SLIDE 7

7

Distributed systems characteristics

 To present a single-system image:

 Hide internal organization, communication details  Provide uniform interface

 Easily expandable

 Adding new computers is hidden from users

 Continuous availability

 Failures in one component can be covered by other components

 Partitioned or replicated data:

 Increased performance, reliability, fault tolerance

 No global Clock

 Nodes in networks have different and independent clock

 Supported by middleware

slide-8
SLIDE 8

8

Middleware positioning

“Middleware is a class of software technologies designed to help manage the complexity and heterogeneity inherent in distributed systems. It is defined as a layer of software above the operating system but below the application program that provides a common programming abstraction across a distributed system”

slide-9
SLIDE 9

9

Role of Middleware (MW) (1)

 In some early research systems: MW tried to provide the illusion

that a collection of separate machines was a single computer.

 E.g. NOW project: GLUNIX middleware

 Today:

 clustering software allows independent computers to work together

closely

 MW also supports seamless access to remote services, doesn’t try to

look like a general-purpose OS

 Examples of MW:

 CORBA (Common Object Request Broker Architecture)  DCOM (Distributed Component Object Management  RMI (Remote Method Invocation)  SOAP (Simple Object Access Protocol)

slide-10
SLIDE 10

10

Role of Middleware (MW) (2)

 All of the previous examples support communication across a

network:

 They provide protocols that allow a program running on one

kind of computer, using one kind of operating system, to call a program running on another computer with a different operating system

 The communicating programs must be running the same middleware.

slide-11
SLIDE 11

Goals and challenges of distributed systems

slide-12
SLIDE 12

12

Goals of distributed systems

1)

Resource Accessibility (sharing)

2)

Distribution Transparency

3)

Openness

4)

Scalability

5)

Security

6)

System design accessibility

slide-13
SLIDE 13

13

Resource sharing

 Support user access to remote resources (printers, data files, web

pages, CPU cycles) and the fair sharing of the resources

 Economics of sharing expensive resources  Performance enhancement – due to multiple processors; also due to

ease of collaboration and info exchange

 Groupware: tools to support collaboration

 Resource sharing introduces several challenges:

 Naming  Access control  Security  Availability  Mutual exclusion of users, fairness  Consistency in some cases

slide-14
SLIDE 14

14

Distribution transparency

 Software hides some of the details of the distribution

  • f system resources.

 Makes the system more user friendly.

 A distributed system that appears to its users &

applications to be a single computer system is said to be transparent.

 Users & apps should be able to access remote resources in the same

way they access local resources.

 The users should be unaware of where the services are located and also

the transferring from a local machine to a remote one should also be transparent.

 Transparency has several dimensions.

slide-15
SLIDE 15

15

Type of transparencies

slide-16
SLIDE 16

16

Challenges for transparencies

 Replication and migration cause need for ensuring consistency

and distributed decision-making

 Failure modes  Concurrency  heterogeneity

slide-17
SLIDE 17

17

Omission and arbitrary failures

slide-18
SLIDE 18

18

Timing failures

slide-19
SLIDE 19

19

Failure Handling

 More components => increased fault rate  Increased possibilities

 More redundancy => more possibilities for faults tolerance  No centralized control => no fatal failure

 Issues

 Detecting failures  Masking failures  Recovery from failures  T

  • lerating failures

 Redundancy

slide-20
SLIDE 20

20

Concurrency

 Concurrency: users and applications should be able to access

shared data or objects without interference between each other.

 Several simultaneous users=> integrity of data

 Mutual exclusion  Synchronization

 Replicated data: consistency of information?

 Update  Failure  Clock  User interface

 Partitioned data: how to determine the state of the system?  Order of messages?  There is no global clock!

slide-21
SLIDE 21

21

Heterogeneity

 Heterogeneity of

 Networks‘  Computer hardware  Operating systems  Programming language  Implementation of different developers

 Portability, interoperability  Mobile code, adaptability (applets, agents)  Middleware  Degree of transparency? Latency? Location based services?

slide-22
SLIDE 22

22

Openness

 An open distributed system “…offers services according to

standard rules that describe the syntax and semantics of those services.” In other words, the interfaces to the system are clearly specified and freely available.

 Compare to network protocols  Not proprietary

 Interface Definition/Description Languages (IDL): used

to describe the interfaces between software components, usually in a distributed system

 Definitions are language & machine independent  Support

communication between systems using different OS/programming languages; e.g. a C++ program running on Windows communicates with a Java program running on UNIX

 Communication is usually RPC-based.

slide-23
SLIDE 23

23

Examples of IDLs

 IDL: Interface Description Language

 The original

 WSDL: Web Services Description Language

 Provides machine-readable descriptions of the services

 OMG IDL: used for RPC in CORBA

 OMG – Object Management Group

 …

slide-24
SLIDE 24

24

Open systems support…

 Interoperability: the ability of two different systems or

applications to work together

 A process that needs a service should be able to talk to any process

that provides the service.

 Multiple implementations of the same service may be provided, as long

as the interface is maintained

 Portability: an application designed to run on one distributed

system can run on another system which implements the same interface.

 Extensibility: Easy to add new components, features

slide-25
SLIDE 25

25

Scalability(1)

 The system will remain effective when there is a significant

increase in:

 Number of resources  Number of users

 The architecture and the implementation must allow it  The algorithms must be efficient under the circumstances to be

expected

 Example: the internet

slide-26
SLIDE 26

26

Scalability (2)

 Controlling the cost of physical resources  Controlling performance loss  Preventing software resources running out  Avoiding performance bottlenecks  Mechanisms (implement functions)& Policies (how to use the

mechanisms)

 Scaling solutions

 Asynchronous communication, decreased messaging  Caching (all sorts of hierarchical memories: data is closer to the user =>

no wait/ assumes rather stable data!)

 Distribution i.e. partitioning of tasks or information (domains) (e.g.,

DNS)

slide-27
SLIDE 27

27

Security

 Security: confidentiality, integrity, availability  Vulnerable components

 Channels (links <-> end-to-end paths)

 Eavesdropping, Denial of service  Tampering, replying, masquerading

 Processes (clients, services, outsiders)

 Server: client’s identity, client’s server identity  Unauthorized access (insecure access model)  Unauthorized information flow (insecure flow model)

 Threats

 Information leakage  Integrity violation  Denial of service  Illegitimate usage

slide-28
SLIDE 28

28

Defeating Security Threats

 Techniques

 Cryptography  Authentication  Access control techniques

 Intranet: firewalls  Services, objects: access control lists, capabilities

 Policies

 Access control models  Information flow models

 Leads to: secure channels, secure processes, controlled access,

controlled flows

slide-29
SLIDE 29

29

Design Requirements

 Performance issues

 Responsiveness  Throughput  Load sharing, load balancing  Issue: algorithm vs. behavior

 Quality of service

 Correctness (in nondeterministic environments)  Reliability, availability, fault tolerance  Security  Performance  adaptability

slide-30
SLIDE 30

Type of distributed systems

slide-31
SLIDE 31

31

Type of distributed systems

 Distributed Computing Systems

 Clusters  Grids  Clouds

 Distributed Information Systems

 Transaction Processing Systems  Enterprise Application Integration

 Distributed Embedded Systems

 Home systems  Health care systems  Sensor networks

slide-32
SLIDE 32

32

Cluster Computing

 A collection of similar processors (PCs, workstations) running

the same operating system, connected by a high-speed LAN.

 Parallel computing capabilities using inexpensive PC hardware  Replace big parallel computers (MPPs)  High Performance Clusters (HPC)

 run large parallel programs  Scientific, military, engineering apps; e.g., weather modeling

 Load Balancing Clusters

 Front end processor distributes incoming requests  server farms (e.g., at banks or popular web site)

 High Availability Clusters (HA)

 Provide redundancy – back up systems  May be more fault tolerant than large mainframes

slide-33
SLIDE 33

33

Clusters – Beowulf model

 Linux-based  Master-slave paradigm

 One processor is the master; allocates tasks to other processors,

maintains batch queue of submitted jobs, handles interface to users

 Master has libraries to handle message-based communication or

  • ther features (the middleware).
slide-34
SLIDE 34

34

Grid Computing Systems

 Modeled loosely on the electrical grid.  Highly

heterogeneous with respect to hardware, software, networks, security policies, etc, and are not all in a central location.

 Grids support virtual organizations: a collaboration of users

who pool resources (servers, storage,databases) and share them

 Can handle workloads similar to those on supercomputers, but

grid computers connect

  • ver

a network (Internet?) and supercomputers’ CPUs connect to a high-speed internal bus/network

 Problems are broken up into parts and distributed across multiple

computers in the grid – less communication between parts than in clusters.

 Grid

software is concerned with managing sharing across administrative domains.

slide-35
SLIDE 35

35

A Proposed Architecture for Grid Systems

 Fabric layer: interfaces to local

resources at a specific site

 Connectivity layer: protocols to

support usage of multiple resources for a single application; e.g., access a remote resource or transfer data between resources; and protocols to provide security

 Resource layer manages a single

resource, using functions supplied by the connectivity layer

 Collective layer: resource

discovery, allocation, scheduling, etc.

 Applications: use the grid

resources

 The collective, connectivity and

resource layers together form the middleware layer for a grid An example of layered architecture for grid computing systems

slide-36
SLIDE 36

36

Cloud Computing

 Provides scalable services as a utility over the Internet.  Often built on a computer grid  Users buy services from the cloud

 Grid users may develop and run their own software

 Cluster/grid/cloud distinctions blur at the edges!

slide-37
SLIDE 37

37

Cluster, Grid, and Cloud computing

slide-38
SLIDE 38

38

Distributed Information Systems

 Systems to make a number of separate network applications interoperable

and build “enterprise-wide information systems”=> business oriented

 Transaction processing systems

 Provide a highly structured client-server approach for database applications  Transactions are the communication model  Obey the ACID properties:

 Atomic: all or nothing  Consistent: invariants are preserved  Isolated (serializable)  Durable: committed operations can’t be undone

 Enterprise application integration (EAI)

 Less structured than transaction-based systems  EA components communicate directly

 Enterprise applications are things like HR data, inventory programs, …  May use different OSs, different DBs but need to interoperate sometimes.

 Communication mechanisms to support this include CORBA, Remote Procedure

Call (RPC) and Remote Method Invocation (RMI)

slide-39
SLIDE 39

39

Distributed Pervasive Systems

 The first two types of systems are characterized by

their stability: nodes and network connections are more or less fixed

 This type of system is likely to incorporate small,

battery-powered, mobile devices

 Home systems  Electronic health care systems – patient monitoring  Sensor networks – data collection, surveillance

slide-40
SLIDE 40

40

Questions?

Parallel & Distributed Computer Systems