Chapter 1 introduction

  • 434 views
Uploaded on

 

More in: Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
434
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
26
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Chapter 1 - Introduction
  • 2. 1.1 Introduction and Definition before the mid-80s, computers were very expensive (hundred of thousands or even millions of dollars) very slow (a few thousand instructions per second) not connected among themselves after the mid-80s: two major developments cheap and powerful microprocessor-based computers appeared computer networks LANs at speeds ranging from 10 to 1000 Mbps (now even 10Gbps) WANs at speed ranging from 64 Kbps to gigabits/sec consequence feasibility of using a large network of computers to work for the same application; this is in contrast to the old centralized systems where there was a single computer with its peripherals 2
  • 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 - computer (Tanenbaum & Van Steen) this definition has two aspects: 1. hardware: autonomous machines 2. software: a single system view for the users 3
  • 4. Other DefinitionsA distributed system is a system designed to support thedevelopment of applications and services which can exploit aphysical architecture consisting of multiple, autonomousprocessing elements that do not share primary memory butcooperate by sending asynchronous messages over acommunication network (Blair & Stefani)A distributed system is one that stops you getting any workdone when a machine you have never even heard of crashes(Leslie) 4
  • 5. Why Distributed? Resource and Data Sharing printers, databases, multimedia servers, ... Availability, Reliability the loss of some instances can be hidden Scalability, Extensibility the system grows with demand (e.g., extra servers) Performance huge power (CPU, memory, ...) available Inherent distribution, communication organizational distribution, e-mail, video 5
  • 6. Problems of Distribution Concurrency, Security clients must not disturb each other Privacy e.g., when building a preference profile such as using cookies unwanted communication such as spam Partial failure we often do not know where the error is (e.g., RPC) Location, Migration, Relocation, Replication clients must be able to find their servers Heterogeneity hardware, platforms, languages, management 6
  • 7. Characteristics of Distributed Systems differences between the computers and the ways they communicate are hidden from users users and applications can interact with a distributed system in a consistent and uniform way regardless of location distributed systems should be easy to expand and scale a distributed system is normally continuously available, even if there may be partial failures 7
  • 8. 1.2 Goals of a Distributed System to support heterogeneous computers and networks and to provide a single-system view, a distributed system is often organized by means of a layer of software called middleware that extends over multiple machines a distributed system organized as middleware; note that the middleware layer extends over multiple machines, and offers each application the same interface Ack: most diagrams in all slides are taken from the textbook 8
  • 9. a distributed system should easily connect users with resources (printers, computers, storage facilities, data, files, Web pages, ...) Some of the reasons economics: sharing resources such as printers and high-speed computers to collaborate and exchange information groupware: software for collaborative editing, teleconferencing, etc. e-commerce: buying and selling goods be transparent: hide the fact that the resources and processes are distributed across multiple computers be open be scalableTransparency in a Distributed System a distributed system that is able to present itself to users and applications as if it were only a single computer system is said to be transparent 9
  • 10. different forms of transparency in a distributed systemTransparency DescriptionAccess Hide differences in data representation (endianness, file naming, ...) and how a resource is accessedLocation Hide where a resource is physically located; where is http://www.prenhall.com/index.html? (naming)Migration Hide that a resource may move to another locationRelocation Hide that a resource may be moved to another location while in use; e.g., mobile users using their wireless laptops and moving from place to placeReplication Hide that a resource is replicated (for availability and performance); all replicas have the same nameConcurrency Hide that a resource may be shared by several competitive users; a resource must be left in a consistent state; through lockingFailure Hide the failure and recovery of a resource But trying to achieve all distribution transparency may be impossible or may not be a good idea 10
  • 11. Openness in a Distributed System a distributed system should be open we need well-defined interfaces interoperability components of different origin can communicate portability components work on different platforms another goal of an open distributed system is that it should be flexible and extensible; easy to configure the system out of different components; easy to add new components, replace existing ones; easier said than done an Open Distributed System is a system that offers services according to standard rules that describe the syntax and semantics of those services; e.g., protocols in networks standards - a necessity 11
  • 12. in distributed systems, such services are often specified through interfaces often described using an Interface Definition Language (IDL) specify only syntax: the names of the functions, types of parameters, return values, possible exceptions, ... semantics given in an informal way by means of natural languagesScalability in Distributed Systems a distributed system should be scalable; there are three dimensions size: adding more users and resources to the system geographically: users and resources may be far apart administratively: should be easy to manage even if it spans many administrative organizations but a scalable system may exhibit performance problems 12
  • 13. scalability problems leading to low performanceConcept Example Single server for all users-mostly forCentralized services security reasonsCentralized data A single on-line telephone book Doing routing based on completeCentralized algorithms information examples of scalability limitationsScaling Techniques: how to solve scaling problems the problem is mainly performance, and arises as a result of limitations in the capacity of servers and networks (for geographical scalability with high latency and mostly unreliable links) three possible solutions: hiding communication latencies, distribution, and replication 13
  • 14. a. Hide Communication Latencies try to avoid waiting for responses to remote service requests let the requester do other useful job i.e., construct requesting applications that use only asynchronous communication instead of synchronous communication; when a reply arrives the application is interrupted good for batch processing and parallel applications since independent tasks can be scheduled while another task is waiting for communication to complete or use multithreading for non-parallel programs hiding communication latencies is not in general applicable for interactive applications for interactive applications, try to reduce communication; move part of the job to the client to reduce communication; e.g. filling a form to access a database and checking the entries 14
  • 15. (a) a server checking the correctness of field entries (b) a client doing the jobe.g., checking the completeness of mandatory fields shipping code is now supported in Web applications using Java Applets and ActiveX controls (with some security 15 issues)
  • 16. b. Distribution means splitting a component into smaller parts and spreading those parts across the system e.g., DNS - Domain Name System (mlibsie@cs.aau.edu.et) divide the name space into nonoverlapping zones for details, see later in Chapter 5 - Naming an example of dividing the DNS name space into zones 16
  • 17. c. Replication replicate components across a distributed system to increase availability and for load balancing, leading to better performance replication is decided by the owner of a resource caching (a special form of replication) also reduces communication latency; decided by the user but, caching and replication may lead to consistency problems (see Chapter 7 - Consistency and Replication) 17
  • 18. Pitfalls when Developing Distributed Systems because of false assumptions made by first time developers (of distributed systems) which are related to the properties of distributed systems and do not occur in nondistributed applications The network is reliable (making it difficult to achieve failure transparency) The network is secure The network is homogeneous The topology does not change Latency is zero Bandwidth is infinite Transport cost is zero There is one administrator 18
  • 19. 1.3 Types of Distributed Systems Three types: distributed computing systems, distributed information systems, and distributed pervasive/embedded systems 1. Distributed Computing Systems Used for high-performance computing tasks two types: cluster computing and grid computing Cluster Computing a collection of similar workstations or PCs (homogeneous), closely connected by means of a high-speed LAN each node runs the same operating system used for parallel programming in which a single compute intensive program is run in parallel on multiple machines 19
  • 20. an example of a cluster computing systema master node runs a middleware (containing libraries forparallel programs) and controls other compute nodes; it allocates tasks provides an interface to users etc. 20
  • 21. Grid Computing “Resource sharing and coordinated problem solving in dynamic, multi-institutional virtual organizations” (Ian Foster) high degree of heterogeneity: no assumptions are made concerning hardware, operating systems, networks, administrative domains, security policies, etc. Globus is a software system for Grid Computing; read about the Globus Alliance at http://www.globus.org/2. Distributed Information Systems problem: many networked applications with a problem of interoperability at the lowest level: wrap a number of requests into a single larger request and have it executed as a distributed transaction; all or none of the requests would be executed how to let applications communicate directly with each other, i.e., Enterprise Application Integration (EAI) 21
  • 22. a. Transaction Processing Systems consider database applications special primitives are required to program transactions, supplied either by the underlying distributed system or by the language runtime system exact list of primitives depends on the type of application; procedure calls, ordinary statements, etc. can also be includedPrimitive DescriptionBEGIN_TRANSACTION Mark the start of a transaction Terminate the transaction and try toEND_TRANSACTION commit Kill the transaction and restore the oldABORT_TRANSACTION values Read data from a file, a table, orREAD otherwise Write data to a file, a table, orWRITE otherwise 22
  • 23. The Transaction Model the model for transactions comes from the world of business a supplier and a retailer negotiate on price delivery date quality etc. until the deal is concluded they can continue negotiating or one of them can terminate but once they have reached an agreement they are bound by law to carry out their part of the deal transactions between processes is similar with this scenario 23
  • 24. e.g., assume the following banking operation withdraw an amount x from account 1 deposit the amount x to account 2what happens if there is a problem after the first activity iscarried out?group the two operations into one transaction; either bothare carried out or neitherwe need a way to roll back when a transaction is notcompleted 24
  • 25. e.g. reserving a seat from Manchester to Lalibella through Heathrow and AA Bole airportsBEGIN_TRANSACTION BEGIN_TRANSACTION reserve Man → Heathrow; reserve Man → Heathrow; reserve Heathrow → Bole; reserve Heathrow → Bole; reserve Bole → Lalibella; reserve Bole → Lalibella full ⇒END_TRANSACTION ABORT_TRANSACTION (a) (b) (a) transaction to reserve three flights commits (b) transaction aborts when third flight is unavailable 25
  • 26. properties of transactions, often referred to as ACID1. Atomic: to the outside world, the transaction happens indivisibly; a transaction either happens completely or not at all; intermediate states are not seen by other processes2. Consistent: the transaction does not violate system invariants; e.g., in an internal transfer in a bank, the amount of money in the bank must be the same as it was before the transfer (the law of conservation of money); this may be violated for a brief period of time, but not seen to other processes3. Isolated or Serializable: concurrent transactions do not interfere with each other; if two or more transactions are running at the same time, the final result must look as though all transactions run sequentially in some order4. Durable: once a transaction commits, the changes are permanent; see later in Chapter 8 - Fault Tolerance 26
  • 27. Classification of Transactions a transaction could be flat, nested or distributed Flat Transaction consists of a series of operations that satisfy the ACID properties simple and widely used but with some limitations do not allow partial results to be committed or aborted i.e., atomicity is also partly a weakness in our airline reservation example, we may want to accept the first two reservations and find an alternative one for the last some transactions may take too much time 27
  • 28. Nested Transaction constructed from a number of subtransactions; it is logically decomposed into a hierarchy of subtransactions; the flight reservation can be split into three transactions, each accessing a different database the top-level transaction forks off children that run in parallel, on different machines; to gain performance or for programming simplicity each may also execute one or more subtransactions permanence (durability) applies only to the top-level transaction; commits by children should be undoneDistributed Transaction a flat transaction that operates on data that are distributed across multiple machines problem: separate algorithms are needed to handle the locking of data and committing the entire transaction; see later in Chapter 8 for distributed commit 28
  • 29. (a) a nested transaction(b) a distributed transaction 29
  • 30. b. Enterprise Application Integration how to integrate applications independent from their databases transaction systems rely on request/reply how can applications communicate with each other; by means of a middleware middleware as a communication facilitator in enterprise application integration 30
  • 31. there are different communication models RPC (Remote procedure Call) RMI (Remote Method Invocation) MOM (Message-Oriented Middleware) Stream-Oriented Communication Multicast Communication see later in Chapter 4 - Communication3. Distributed Pervasive Systems the distributed systems discussed so far are characterized by their stability; fixed nodes having high- quality connection to a network there are also mobile and embedded computing devices which are small, battery-powered, mobile, and with a wireless connection 31
  • 32. three requirements for pervasive applications embrace contextual changes: a device is aware that its environment (location, identities of nearby people and objects, time of the day, season, temperature, etc.) may change all the time, e.g., by changing its network access point; hence its operations and services must be adapted to the current context encourage ad hoc composition: devices are used in different ways by different users recognize sharing as the default: devices join a system to access or provide informationexamples of pervasive systems Home Systems that integrate consumer electronics Electronic Health Care Systems to monitor the well- being of individuals Sensor Networks read pages 26 - 30 32
  • 33. [ Diversion Different approaches to distribution - Lost in the forest of distribution Distributed system N autonomous computers (sites): n administrators, n data/control flows an interconnection network user view: one single (virtual) system (traditional) programmer view: client-server Parallel system 1 computer, n nodes: one administrator, one scheduler, one power source memory: it depends programmer view: one single machine executing parallel codes; various programming models (message passing, distributed shared memory, …) 33
  • 34. Cluster computing use of PCs interconnected by a (high performance) network as a parallel (cheap) machineNetwork computing from LAN (cluster) computing to WAN computing set of machines distributed over a MAN/WAN that are used to execute parallel loosely coupled codes depending on the infrastructure, network computing comes in many flavours: grid computing, P2P, Internet computing, etc.Grid computing “Resource sharing and coordinated problem solving in dynamic, multi-institutional virtual organizations” (Ian Foster)Peer-to-peer computing a site is both client and server 34
  • 35. application: mostly file sharing, but also others like Internet Telephony (Skype) 2 approaches: centralized management: Napster distributed management: Gnutella, Kazaa Internet Computing use of (idle) computers interconnected by Internet for processing large throughput applications programmer view: a single master, n servants Cloud Computing a general term for anything that involves delivering hosted services over the Internet a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction] 35