1
Parallel & Distributed Computer Systems Chapter 01: Distributed - - PowerPoint PPT Presentation
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
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
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.
4
Why distributed systems
Sharing of information and systems Possibility to add component improves Availability, reliability, fault tolerance, performance, scalability
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)
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
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
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”
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)
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.
Goals and challenges of distributed systems
12
Goals of distributed systems
1)
Resource Accessibility (sharing)
2)
Distribution Transparency
3)
Openness
4)
Scalability
5)
Security
6)
System design accessibility
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
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.
15
Type of transparencies
16
Challenges for transparencies
Replication and migration cause need for ensuring consistency
and distributed decision-making
Failure modes Concurrency heterogeneity
17
Omission and arbitrary failures
18
Timing failures
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
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!
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?
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.
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
…
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
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
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)
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
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
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
Type of distributed systems
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
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
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).
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.
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
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!
37
Cluster, Grid, and Cloud computing
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)
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
40