Introduction To Distributed Computing

2y ago
7 Views
2 Downloads
428.63 KB
21 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Abram Andresen
Transcription

Introduction to DistributedComputingProf. Sanjeev SetiaDistributed Software SystemsCS 707Distributed Software Systems1About this Class Distributed systems are ubiquitous Focus: Fundamental concepts underlying distributedcomputing designing and writing moderate-sized distributedapplications Prerequisites: CS 571 (Operating Systems) CS 656 (Computer Networks) CS 706 (Concurrent Software)Distributed Software Systems21

What you will learn“I hear and I forget, I see and I remember, I doand I understand” – Chinese proverb Issues that arise in the development ofdistributed software Middleware technology Threads, sockets RPC, Java RMI/CORBA Javaspaces (JINI), SOAP/Web Services/.NET,Enterprise Javabeans Not discussed in class, but you can become more familiarwith these technologies byDistributed Software Systems3Logistics Grade: 60% projects, 40% exams Slides, assignments, reading material on classweb pagehttp://www.cs.gmu.edu/ setia/cs707/ Two small (2-3 week) programmingassignments one larger project (3-4 weeks) To be done individually Use any platform; all the necessary software willbe available on IT&E lab computersDistributed Software Systems42

Readings Textbook: “Distributed Systems: Principles andParadigms” - Tannenbaum & van Steen Some lectures based on Coulouris et al“Distributed Systems: Concepts & Design” Research literature Each lecture/chapter will be supplementedwith articles from the research literature Links on class web siteDistributed Software Systems5Schedule Introduction (today) Client-server application design Application-level protocols Sockets Communication RPC/RMI/CORBA NamingSynchronizationConsistency & ReplicationFault ToleranceDistributed Software Systems63

Example Distributed systemsInternetATM (bank) machinesIntranets/WorkgroupsComputing landscape will soon consist ofubiquitous network-connected devices “The network is the computer”Distributed Software Systems7Characteristics of DistributedSystems Concurrency No global clock Independent failuresDistributed Software Systems84

A typical portion of the Internetintranet ISP backbonesatellite linkdesktop computer:server:network link:Distributed Software Systems9A typical intranetemail serverDesktopcomputersprint and other serversLocal areanetworkWeb serveremail serverFile serverprintother serversthe rest ofthe Internetrouter/firewallDistributed Software Systems105

Portable and handheld devices ina distributed systemInternetHost intranetWAPgatewayWireless LANHome intranetMobilephonePrinterCameraLaptopHost siteDistributed Software Systems11Distributed applications Applications that consist of a set of processesthat are distributed across a network ofmachines and work together as an ensemble tosolve a common problem In the past, mostly “client-server” Resource management centralized at the server “Peer to Peer” computing represents amovement towards more “truly” distributedapplicationsDistributed Software Systems126

Web servers and web browsershttp://www.google.comlsearch?q kindbergwww.google.comBrowsersWeb .w3c.orgFile system .htmlProtocolsActivity.htmlDistributed Software Systems13Goals/Benefits Resource sharingScalabilityFault tolerance and availabilityPerformance Parallel computing can be considered asubset of distributed computingDistributed Software Systems147

Challenges(Differences fromLocal Computing) HeterogeneityLatencyRemote Memory vs Local MemorySynchronization Concurrent interactions the norm Partial failure Applications need to adapt gracefully in the face ofpartial failure Lamport once defined a distributed system as “Oneon which I cannot get any work done because somemachine I have never heard of has crashed”Distributed Software SystemsChallenges15cont’d Need for “openness” Open standards: key interfaces in software andcommunication protocols need to be standardized Security Denial of service attacks Mobile code Scalability TransparencyDistributed Software Systems168

Scalability Becoming increasingly important because of thechanging computing landscape Key to scalability: decentralized algorithms anddata structures No machine has complete information about thestate of the system Machines make decisions based on locally availableinformation Failure of one machine does not ruin the algorithm There is no implicit assumption that a global clockexistsDistributed Software Systems17Computers in the InternetDate1979, Dec.1989, July1999, July2003, Jan.ComputersWeb 5,424,956Distributed Software Systems189

Computers vs. Web serversin the InternetDate1993, July1995, July1997, July1999, July2001, July2003, JulyComputersWeb ,299,59242,298,3710.461225Distributed Software Systems19Scaling Techniques (1)1.4The difference between letting: (a) a server or (b)a clientcheck forms as they are being filledDistributed Software Systems2010

Scaling Techniques (2)1.5An example of dividing the DNS name space into zones.Distributed Software Systems21Transparency in Distributed SystemsAccess transparency: enables local and remote resources to be accessed usingidentical operations.Location transparency: enables resources to be accessed without knowledge of theirphysical or network location (for example, which building or IP address).Concurrency transparency: enables several processes to operate concurrently usingshared resources without interference between them.Replication transparency: enables multiple instances of resources to be used toincrease reliability and performance without knowledge of the replicas by users orapplication programmers.Failure transparency: enables the concealment of faults, allowing users andapplication programs to complete their tasks despite the failure of hardware orsoftware components.Mobility transparency: allows the movement of resources and clients within a systemwithout affecting the operation of users or programs.Performance transparency: allows the system to be reconfigured to improveperformance as loads vary.Scaling transparency: allows the system and applications to expand in scale withoutchange to the system structure or the application algorithms.Distributed Software Systems2211

Communication Patterns Client-server Group-oriented/Peer-to-Peer Applications that require reliability, scalability Function-shipping/Mobile Code/Agents Postscript, JavaDistributed Software Systems23Clients invoke individual rresultServerKey:Process:Distributed Software SystemsComputer:2412

A service provided by erDistributed Software Systems25Web proxy tributed Software Systems2613

A distributed application basedon peer processesPeer 2Peer 1ApplicationApplicationPeer 3SharableobjectsApplicationPeer 4ApplicationPeers 5 . NDistributed Software Systems27Web appletsa) client request results in the downloading of applet codeClientApplet codeWebserverb) client interacts with the appletClientAppletDistributed Software SystemsWebserver2814

Thin clients and compute serversCompute serverNetwork computer or PCApplicationProcessnetworkThinClientDistributed Software Systems29Spontaneous networking in ahotelMusicservicegatewayAlarmserviceInternetHotel stributed Software SystemsPDAGuestsdevices3015

Distributed Software: Goals Middleware handles heterogeneity Higher-level support Make distributed nature of application transparentto the user/programmer Remote Procedure Calls RPC Object orientation CORBA Higher-level support BUT expose remoteobjects, partial failure, etc. to the programmer JINI, Javaspaces ScalabilityDistributed Software Systems31Software and hardware servicelayers in distributed systemsApplications, servicesMiddlewareOperating systemPlatformComputer and network hardwareDistributed Software Systems3216

Fundamental/Abstract Models A fundamental model captures theessential ingredients that we need toconsider to understand and reason abouta system’s behavior Addresses the following questions What are the main entities in the system? How do they interact? What are the characteristics that affect theircollective and individual behavior?Distributed Software Systems33Fundamental/Abstract Models Three models Interaction model Reflects the assumptions about the processes and thecommunication channels in the distributed system Failure model Distinguish between the types of failures of the processesand the communication channels Security Model Assumptions about the principals and the adversaryDistributed Software Systems3417

Interaction Models Synchronous Distributed Systems: a system inwhich the following bounds are defined The time to execute each step of a process has an upper andlower bound Each message transmitted over a channel is received within aknown bounded delay Each process has a local clock whose drift rate from real time hasa known bound Asynchronous distributed system Each step of a process can take an arbitrary time Message delivery time is arbitrary Clock drift rates are arbitrary Some implications In a synchronous system, timeouts can be used to detect failures Impossible to detect failures or “reach agreement” in anasynchronous systemDistributed Software Systems35Processes and channelsprocess pprocess qsend mreceiveCommunication channelOutgoing message bufferDistributed Software SystemsIncoming message buffer3618

Omission and arbitrary failuresClass of failureFail-stopAffectsProcessDescriptionProcess halts and remains halted. Other processes maydetect this state.CrashProcess Process halts and remains halted. Other processes maynot be able to detect this state.OmissionChannel A message inserted in an outgoing message buffer neverarrives at the other end’s incoming message buffer.Send-omission Process A process completes a send, but the message is not putin its outgoing message buffer.Receive-omission Process A message is put in a process’s incoming messagebuffer, but that process does not receive it.ArbitraryProcess or Process/channel exhibits arbitrary behaviour: it may(Byzantine)channel send/transmit arbitrary messages at arbitrary times,commit omissions; a process may stop or take anincorrect step.Distributed Software Systems37Timing failuresClass of Failure rformanceChannelProcess’s local clock exceeds the bounds on itsrate of drift from real time.Process exceeds the bounds on the intervalbetween two steps.A message’s transmission takes longer than thestated bound.Distributed Software Systems3819

Objects and principalsAccess rightsObjectinvocationClientresultPrincipal (user)NetworkServerPrincipal (server)Distributed Software Systems39Secure channelsPrincipal BPrincipal AProcess pSecure channelDistributed Software SystemsProcess q4020

The enemy/adversaryCopy of mThe enemym’Process pmProcess qCommunication channelDistributed Software Systems41Readings Chapter 1 of textbook (Tannenbaum) Chapters 1, 2 of Coulouris, Kindberg,Dollimore (on reserve in library) “A Note on Distributed Computing” –Waldo, Wyant, Wollrath, Kendall Link on class web pageDistributed Software Systems4221

“Distributed Systems: Principles and Paradigms” - Tannenbaum & van Steen Some lectures based on Coulouris et al “Distributed Systems: Concepts & Design” Research literature Each lecture/chapter will be supplemented with articles from the research literature Links on class web site Distributed Software Systems 6 Schedule

Related Documents:

Cloud Computing J.B.I.E.T Page 5 Computing Paradigm Distinctions . The high-technology community has argued for many years about the precise definitions of centralized computing, parallel computing, distributed computing, and cloud computing. In general, distributed computing is the opposite of centralized computing.

Distributed Database Design Distributed Directory/Catalogue Mgmt Distributed Query Processing and Optimization Distributed Transaction Mgmt -Distributed Concurreny Control -Distributed Deadlock Mgmt -Distributed Recovery Mgmt influences query processing directory management distributed DB design reliability (log) concurrency control (lock)

Figure 1.2(a)&(b) Centralized computing, Distributed computing 1.3.1 The Strengths and Weaknesses of Distributed Computing The Strengths of distributed computing: The affordability of computers and availability of network access. Reliability: It is more reliable than a single system. If one machine from

distributed. Some authors consider cloud computing to be a form of utility computing or service computing. Ubiquitous computing refers to computing with pervasive devices at any place and time using wired or wireless communication. Internet computing is even broader and covers all computing paradigms over the Internet.

– Morgan Claypool series of monographs on Distributed Computing Theory – Conferences: Principles of Distributed Computing (PODC) Distributed Computing (DISC) This Week A quick introduction: – Two common distributed

In distributed computing we have multiple autonomous computers which seems to the user as single system. In distributed systems there is no shared memory and computers communicate with each other through message passing. In distributed computing a single task is divided among different computers. Difference between Parallel Computing and .

Keywords: Distributed Computing, Computing Systems, Evolution, Green Computing 1. Introduction Societal prosperity of the latter half of the 21st century has been underpinned by the Internet, formed by large-scale computing infrastructure composed of distributed systems which have accelerated economic, social and scientific advancement [1].

A distributed system is a collection of independent computers, interconnected via a network, capable of collaborating on a task. Distributed computing is computing . 1.2 Introduction of Distributed System High degree of scalability A distributed system is functionally equivalent to the systems of which it is composed. .