Example: barber

Introduction to Distributed Computing

1 Distributed Software Systems1 Introduction to DistributedComputingProf. Sanjeev SetiaDistributed Software SystemsCS 707 Distributed Software Systems2 About 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)2 Distributed Software Systems3 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 Systems4 Logistics Grade: 60% projects, 40% exams Slides, assignments, reading material on classweb ~setia/cs707/ Two small (2-3 week) programmingassignments + one larger project (3-4 weeks) To be done individually Use any platfor

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 Introduction (today) Client-server application design Application-level protocols Sockets Communication RPC/RMI/CORBA

Tags:

  Lecture, Computing, System, Communication, Distributed, Distributed computing, Distributed system

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Introduction to Distributed Computing

1 1 Distributed Software Systems1 Introduction to DistributedComputingProf. Sanjeev SetiaDistributed Software SystemsCS 707 Distributed Software Systems2 About 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)2 Distributed Software Systems3 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 Systems4 Logistics Grade: 60% projects, 40% exams Slides, assignments, reading material on classweb ~setia/cs707/ Two small (2-3 week) programmingassignments + one larger project (3-4 weeks) To be done individually Use any platform.

2 All the necessary software willbe available on IT&E lab computers3 Distributed Software Systems5 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 Systems6 Schedule Introduction (today) Client-server application design Application-level protocols Sockets communication RPC/RMI/CORBA Naming Synchronization Consistency & Replication Fault Tolerance4 Distributed Software Systems7 Example Distributed systems Internet ATM (bank) machines Intranets/Workgroups Computing landscape will soon consist ofubiquitous network-connected devices The network is the computer Distributed Software Systems8 Characteristics of DistributedSystems Concurrency No global clock Independent failures5 Distributed Software Systems9intranetISPdesktop computer:backbonesatellite linkserver: network link.

3 A typical portion of the InternetDistributed Software Systems10A typical intranetthe rest of email serverWeb serverDesktopcomputersFile serverrouter/firewallprint and other serversother serversprintLocal areanetworkemail serverthe Internet6 Distributed Software Systems11 Portable and handheld devices ina Distributed systemLaptopMobilePrinterCameraInternetH ost intranetHome intranetWAP Wireless LANphonegatewayHost siteDistributed Software Systems12 Distributed 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 distributedapplications7 Distributed Software Systems13 Web servers and web browsersInternetBrowsersWeb system Software Systems14 Goals/Benefits Resource sharing Scalability Fault tolerance and availability Performance Parallel Computing can be considered asubset of Distributed computing8 Distributed Software Systems15 Challenges(Differences fromLocal Computing )

4 Heterogeneity Latency Remote Memory vs Local Memory Synchronization 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 Systems16 Challengescont d Need for openness Open standards: key interfaces in software andcommunication protocols need to be standardized Security Denial of service attacks Mobile code Scalability Transparency9 Distributed Software Systems17 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 Systems18 Computers in the InternetDateComputersWeb servers1979, , July130,00001999, July56,218,0005,560,8662003, ,638,29735,424,95610 Distributed Software Systems19 Computers vs.

5 Web serversin the InternetDateComputersWeb serversPercentage1993, July1,776, , July6,642,00023, , July19,540,0001,203,09661999, July56,218,0006,598,697122001, July125,888,19731,299,5922542,298,371200 3, JulyDistributed Software difference between letting: (a) a server or (b)a clientcheck forms as they are being filledScaling Techniques (1)11 Distributed Software Systems21 Scaling Techniques (2) example of dividing the DNS name space into Software Systems22 Transparency in Distributed SystemsAccess transparency: enables local and remote resources to be accessed usingidentical transparency: enables resources to be accessed without knowledge of theirphysical or network location (for example, which building or IP address).

6 Concurrency transparency: enables several processes to operate concurrently usingshared resources without interference between transparency: enables multiple instances of resources to be used toincrease reliability and performance without knowledge of the replicas by users orapplication transparency: enables the concealment of faults, allowing users andapplication programs to complete their tasks despite the failure of hardware orsoftware transparency: allows the movement of resources and clients within a systemwithout affecting the operation of users or transparency: allows the system to be reconfigured to improveperformance as loads transparency: allows the system and applications to expand in scale withoutchange to the system structure or the application Software Systems23 communication Patterns Client-server Group-oriented/Peer-to-Peer Applications that require reliability, scalability Function-shipping/Mobile Code/Agents Postscript, JavaDistributed Software Systems24 Clients invoke individual serversServerClientClientinvocationresul tServerinvocationresultProcess:Key:Compu ter.

7 13 Distributed Software Systems25A service provided by multipleserversServerServerServerService ClientClientDistributed Software Systems26 Web proxy serverClientProxyWeb serverWeb serverserverClient14 Distributed Software Systems27A Distributed application basedon peer processesApplicationApplicationApplicati onPeer 1 Peer 2 Peer 3 Peers 5 .. NSharableobjectsApplicationPeer 4 Distributed Software Systems28 Web appletsa) client request results in the downloading of applet code Web serverClientWeb serverAppletApplet codeClientb) client interacts with the applet 15 Distributed Software Systems29 Thin clients and compute serversThinClientApplicationProcessNetwo rk computer or PCCompute servernetworkDistributed Software Systems30 Spontaneous networking in ahotelInternetgatewayPDAserviceMusic service serviceDiscoveryAlarmCameraGuestsdevices LaptopTV/PC Hotel wirelessnetwork16 Distributed Software Systems31 Distributed Software.

8 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 Systems32 Software and hardware servicelayers in Distributed systemsApplications, servicesComputer and network hardwarePlatformOperating system Middleware17 Distributed Software Systems33 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 ?

9 How do they interact? What are the characteristics that affect theircollective and individual behavior? Distributed Software Systems34 Fundamental/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 adversary18 Distributed Software Systems35 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 .

10 Timeouts can be used to detect failures Impossible to detect failures or reach agreement in anasynchronous systemDistributed Software Systems36 Processes and channelsprocess pprocess qCommunication channelsendOutgoing message bufferIncoming message bufferreceivem19 Distributed Software Systems37 Omission and arbitrary failuresClass of failureAffectsDescriptionFail-stopProces sProcess halts and remains halted. Other processes maydetect this halts and remains halted. Other processes maynot be able to detect this message inserted in an outgoing message buffer neverarrives at the other end s incoming message process completes a send, but the message is not putin its outgoing message message is put in a process s incoming messagebuffer, but that process does not receive (Byzantine)Process orchannelProcess/channel exhibits arbitrary behaviour: it maysend/transmit arbitrary messages at arbitrary times,commit omissions.


Related search queries