



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An introduction to a university course on distributed software development, focusing on the distributed system dns. It covers the class structure, requirements, and the concept of distributed systems. The document then delves into dns, explaining its role, how it works from the client's perspective, and its benefits as a distributed system. Students will learn about issues it solves, such as heterogeneity, openness, scalability, and handling failure.
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




Chris Brooks
Department of Computer Science
University of San Francisco
Department of Computer Science — University of San Francisco – p. 1/
??
Combination of lectures and labs^ ◦
Labs (many Tuesdays): hands-on exposure to a piece ofWeb technology. ◦ Lectures (Thursdays): problems, principles and algorithmsrelated to large-scale distributed systems.
Department of Computer Science — University of San Francisco – p. 2/
??
Work:^ ◦
8 labs - 1 week turnaround. ◦ Midterm and final ◦ Two projects:^ •
P2P client • Extension of your choosing.
Department of Computer Science — University of San Fra
Class participation is very important.^ ◦
Attendance is required ◦ Active participation is encouraged (and rewarded!)
Department of Computer Science — University of San Francisco – p. 4/
??
Texts:^ ◦
Singh & Huhns: Service-Oriented Computing. ◦ You will also need access to technical resources regardingXML, XSLT, CSS, RDF, SOAP and REST.
I recommend subscribing to O’Reilly’s Safari service. ◦^
I will also provide you with handouts for some lecture topics. ◦^
I will expect you to do the reading before class.
Department of Computer Science — University of San Francisco – p. 5/
??
Languages:
-^
You may use any language that “makes sense” for thelab/project.^ ◦
I will present examples in Python and/or Java. ◦ If you want to use something esoteric (not Python, Java,C/C++, Perl, or C#) please talk to me first. ◦ I recommend choosing a language that has good supportfor XML parsing.
Department of Computer Science — University of San Fra
(Couloris) “A distributed system is one in which hardware orsoftware components communicate or coordinate their actionsonly by passing messages.”
-^
This covers everything from a parallel computer to the Internet.
Department of Computer Science — University of San Francisco – p. 7/
??
So how is this class different from Pacheco’s or Benson’s?
-^
Different set of challenges:^ ◦
Heterogeneity ◦ Openness ◦ Scalability ◦ Failure models ◦ Degree of parallelism
Department of Computer Science — University of San Francisco – p. 8/
??
Parallel computing typically works with the following sorts ofsystems:^ ◦
Shared clock ◦ Low latency/fast communication ◦ Single owner ◦ Homogenous systems ◦ Tightly coupled
-^
Prof. Pacheco’s class addresses systems with thesecharacteristics.
Department of Computer Science — University of San Fra
Prof. Benson’s class relaxes these assumptions somewhat.^ ◦
Systems may not be homogenous ◦ Communication still fast/low latency ◦ Limited autonomy ◦ Less tightly coupled.
Department of Computer Science — University of San Francisco – p. 10/
??
This class will look at systems on the other end of the spectrum^ ◦
Widely distributed - high latency communication ◦ Autonomous, heterogenous components ◦ No shared clock ◦ Very large scale ◦ Discovery may be a problem
-^
The Web is a classic example of this sort of system (but not theonly one)
Department of Computer Science — University of San Francisco – p. 11/
??
The definition Couloris provides leads to the following problemsthat must be considered:^ ◦
Concurrency - work is happening on multiple computerssimultaneously and must be coordinated. ◦ No global clock. ◦ Independent failures, both network and computer.
-^
We’ll spend a lot of time discussing these problems.
Department of Computer Science — University of San Fran
DNS is a distributed, hierarchical database.
-^
Large number of servers worldwide.
-^
No database contains all DNS entries.
-^
DNS servers are divided into three classes:^ ◦
Root servers ◦ top-level domain servers ◦ authoritative servers.
Department of Computer Science — University of San Francisco – p. 19/
??
Returning to our from-the-client-perspective:1. The client contacts a root server.2. This returns the addresses of TLD servers3. The root server contacts a TLD server (for example, for the
.com domain)
cs.usfca.edu (for example).
of nexus.cs.usfca.edu
Department of Computer Science — University of San Francisco – p. 20/
??
Often, the authoritative DNS server will not have the addressesfor all hosts in an organization.
-^
Instead, local DNS servers will manage the names forsubsections of the network.
-^
This is typically the program that acts as a proxy for the client.
-^
DNS servers also typically cache much of this information so asto avoid resending requests for common lookups.
Department of Computer Science — University of San Fran
What issues does this particular design of DNS solve?
Department of Computer Science — University of San Francisco – p. 22/
??
What issues does this particular design of DNS solve?^ ◦
Heterogeneity: It will work with computers using differentoperating systems, languages, hardware, network interfacesor platforms.
Department of Computer Science — University of San Francisco – p. 23/
??
What issues does this particular design of DNS solve?^ ◦
Openness - Can new additions, changes, or improvementsbe made to the system? ◦ Are the system and its interfaces publically described? ◦ DNS (and most internet systems and protocols) arepublically described in a set of RFCs.
Department of Computer Science — University of San Fran
What issues does this particular design of DNS solve?^ ◦
Openness - Can new additions, changes, or improvementsbe made to the system?
-^
Open systems can typically be constructed fromheterogeneous components, as long as thevendors/implementors conform to a published standard.
-^
This makes it easier to extend a service or add new services ontop of existing ones.^ ◦
For example, TCP was added on top of IP.
Department of Computer Science — University of San Francisco – p. 25/
??
What issues does this particular design of DNS solve?^ ◦
Redundancy - In DNS, every address is stored in at leasttwo servers. If one server fails, others can be queried.
Department of Computer Science — University of San Francisco – p. 26/
??
What issues does this particular design of DNS solve?^ ◦
Concurrency: Many requests can happen simultaneously. ◦ No bottleneck waiting for queries to resolve. ◦ The resource (lookup tables) is distributed across a largenumber of hosts. ◦ The system is able to operate consistently in a concurrentenvironment.^ •
This is easier said than done.
Department of Computer Science — University of San Fran
What issues does this particular design of DNS solve?^ ◦
Transparency - The separation of components is hiddenfrom the user. ◦ No need for a user to know about root or TLD servers. ◦ As in OO design, transparency makes development easierfor clients.
Department of Computer Science — University of San Francisco – p. 28/
??
What issues does this particular design of DNS solve?^ ◦
Scalability - As we add machines, resources, or users to thesystem, how quickly does performance degrade? ◦ How do costs change as more resources or machines areadded? ◦ Will resources ever run out? ◦ Are ther bottlenecks in the system?
-^
DNS provides a scalable way to do hostname resolution.
Department of Computer Science — University of San Francisco – p. 29/
??
What issues does this particular design of DNS solve?^ ◦
Handling failure. This includes both detecting andrecovering from failure. ◦ This might also include proceeding in the face of failuresthat are suspected, but can’t be detected.
-^
DNS is able to recover from or tolerate failure in the sense that,if one local DNS server fails, hosts on other parts of the Internetcan still be resolved.
Department of Computer Science — University of San Fran