dr. naglaa soliman e-mail: [email protected] [email protected]...
TRANSCRIPT
Dr. Naglaa Soliman
E-mail: [email protected]
Princess Nora Bint Abdulrahman UniversityCollege of computer and information
sciencesNetworks department
Distributed systems (NET 422)Distributed systems (NET 422)
ContentContent1. Characterization of distributed systems.2. System models.3. Inter-process communication (Internet protocols, external
data representation, client-servereur, group communication…).
4. Distributed objects and remote invocation (RPC, events and notifications, Java, RMI).
5. Distributed file systems (architecture, case study Sun Nfs).6. Name services (concepts, DNS, case study X.5000).7. P2P systems and middleware.8. Time and global state ( synchronization of physical and
logical clocks).9. Coordination and agreement.10. Replication (system model, fault-tolerant services).11. Web services (service description and IDL for web services,
case study: the grid…)
TextbooksTextbooks
• George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, ‘Distributed Systems. Concepts and Design’, Fifth Edition, 2012.
• Kenneth P.Birman, ‘Reliable Distributed systems: technologies, web services and applications’, Springer
• Andrew S.Tanenbaum, Marteen Van Steen, ‘Distributed Systems: Principles and paradigms’, second edition, 2006.
• Arno Puder, Kay Romer, Frank Pilttofer, ‘Distributed Systems Architecture: a middle approach’, Elsevier, 2006.
Part 1: Characterization of distributed system
Basic definitions
Challenges of distributed systems
Types of distributed systems
•What is a distributed system?The litterature presents various definitions of what a distributed system is.
Definition 1:A distributed system is a collection of independent computers that appears to its users as a single coherent system.•No assumptions are made concerning the type of computers: mainframe, sensor,…•Computers need to collaborate.•Each computer carries out its actions.
Caracterization of distribued systems
•Definition 2:A distributed system consists of hardware and software components located in a network of computers that communicate and coordinate their actions only by passing messages.
No shared memory – message-based communication
Characterization of distribued systems
Computer1Computer1
Computer 2Computer 2
Computer 3Computer 3 Computer 4Computer 4
Message1
Message2
Caracterization of distribued systems
Figure 1-1. A distributed system organized as middleware. The middleware layer runs on all machines, and offers a uniform interface to the system
•Basic terminology:
Program: a code we write to solve any problem.
Process: an instance of a program that is being executed.
Message: used to communicate between processes.
Protocol: a formal description of message format and rules that two processes must follow in order to exchange thoses messages.
Network: the infrastructure that links computers, servers, ..
Component: can be a process or any piece of hardware required to run a process and support communication between processes.
Characterization of distribued systems
•Why building distributed systems?
1.Support cooperative networking: users that are geographically seperated can work and play together: teleconference, e-mail, file transfer,…
2.Reliability: if a small percentage of machines break, the rest can remain intact and do useful work.
3.Mobility: users can move arround with their laptops.
Problems:
4.Designing and implementing distributed networks may be difficult.
5.The network may lose messages or become overloaded.
6.Security become a great concern for such systems.
Characterization of distribued systems
•Challenges of distributed systems:
1.Making resources accessible: make it easy for the users to access and share resources (printers, computers, files, web pages, …) in a controlled manner.
2.Transparency: hide the fact that processes and resources are physically distributed across multiple computers.•Access: hide differences in data representation and how a resource is accessed.•Location: hide where a resource is located.•Migration: hide that a resource may move to another location.
Caracterization of distribued systems
•Challenges of distributed systems:•Replication: hide that a resource is replicated.•Concurrency: hide that a resource may be shared by several users.•Failures: hide the failure and the recovery of a resource.
3.Scalability: a distributed system should operate effectively at many different scales, ranging from a small network to a big one.
4. Openess: determined by the degree to which new resources can be added and made available for use.
Caracterization of distribued systems
Caracterization of distribued systems
Challenge Solution
Transparency Middleware: software layer that provides a programming abstraction as well as masking heterogeneity.
Openess The first step in openness is publishing the documentation of software components and interfaces of the components to make them available to software developers.
Caracterization of distribued systems
Challenge Solution
Concurrency Concurrency can be achieved by standard techniques such as semaphores, which are used in most operating systems.
Failures Techniques for dealing with failures:1-Detecting failuresE.g. Checksums2- Masking failuresE.g. Retransmission of corrupt messages E.g. File redundancy3- Redundancy: at least two different routes between any two routers should be available.
14
General Examples of Distributed Systems
Internet Intranets Mobile networks
15
General Examples of Distributed Systems
The Internet The Internet is a vast interconnected
collection of computer networks of many different types.
Multimedia services are available in the Internet enabling users to access audio and video data including music, radio, TV channels, phone, and video conferencing.
(Figure 1)
16
General Examples of Distributed Systems
intranet
ISP
desktop computer:
backbone
satellite link
server:
%
network link:
%
%
%
Figure 1. A typical portion of the Internet
17
General Examples of Distributed Systems
Intranet An intranet is a portion of the Internet that
is separately administered and has a boundary that can be configured to enforce local security policies.
(Figure 2)
18
General Examples of Distributed Systems
Figure 2. A typical Interanet
the rest of
email server
Web server
Desktopcomputers
File server
router/firewall
print and other servers
other servers
Local areanetwork
email server
the Internet
19
General Examples of Distributed Systems
Mobile networks Technological advances in device
miniatorization and wireless networking have led increasingly to the integration of small and portable computing devices into distributed systems.
These devices include: Laptop computers
• Types of distributed systems:
1. Distributed computing systems: An important class of distributed systems is the one
used for high performance computing tasks.
The underlying hardware consists of a collection of similar workstations or personnal computers, closely connected by means of high local area network.
Each node runs the same operating system. Cluster computing is used for parallel programming
in which a single program is run on multiple machines.
Characteriation of distributed systems
Cluster computing:
Computer nodes are controlled and accessed by means of a single master node.
Master node: handles the allocation of nodes to a particular parallel program, maintains a batch queue of submitted jobs and provides an interface for users.
Characterization of distribued systems
Management application
Parallel libraries
Local operating system
Components of parallel application
Local operating system
Components of parallel application
Local operating system
High speed network
Master node Computer node Computer node
Master node runs the middleware needed for the execution of programs and management of the clusters.
An important part of this middleware is formed by the library for executing parallel programs.
A characteristic feature of such systems is homogeneity.
High degree of heterogeneity. No assumptions are made concerning hardware,
operating systems, security policies, etc.
Caracterization of distribued systems
Grid computing:
Resources fom different organizations are brought together to allow the collaboration of a group of people.
Much of the software for realizing grid computing evolves around providing access to ressources from different administrative domains.
2. Distributed information systems: Networked application simply consisted of a server
running that application (often including a database and making it available to remote programs).
Example: banking system.
Caracterization of distribued systems
• Distributed pervasive systems: Previous systems are largely characterized by their
stability: nodes are fixed and have a more or less permanent and high quality connection to a network.
Instability is the default behavior of pervasive systems: devices in these systems are often small, battery powered, mobile, and having only a wireless connection.
General lack of humain administrative control. Devices can be configured by their owners, but
otherwise they need to automatically discover their environment.
Characterization of distribued systems
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
Home System
• Built around one or more PCs, but can also include other electronic devices:– Automatic control of lighting, sprinkler
systems, alarm systems, etc.
Electronic Health Care Systems
Figure 1-12. Monitoring a person in a pervasive electronic health care system, using (a) a local hub or (b) a continuous wireless connection.
Sensor Networks
• A collection of geographically distributed nodes consisting of a comm. device, a power source, some kind of sensor, a small processor…
• Purpose: to collectively monitor sensory data (temperature, sound, moisture etc.,) and transmit the data to a base station
• “smart environment” – the nodes may do some rudimentary processing of the data in addition to their communication responsibilities.
Sensor Networks
Figure 1-13. Organizing a sensor network database, while storing and processing data (a) only at the operator’s site or …
Sensor Networks
Figure 1-13. Organizing a sensor network database, while storing and processing data … or (b) only at the sensors.
Characterization of distribued systems
How can an operator extract information for a sensor network?
Each sensor database is directly sent to the operator. In this case, sensors do not cooperate. So, network ressources and energy may be wasted.
The administrator can simply issying queries. The answer will be provided through collaboration.
Another solution consists to forward a query to all sensor nodes along a tree.