Distributed Systems: A Deep Dive into DNS as an Example, Study notes of Software Engineering

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

Pre 2010

Uploaded on 07/30/2009

koofers-user-qbs
koofers-user-qbs 🇺🇸

9 documents

1 / 6

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Distributed Software Development
Introduction
Chris Brooks
Department of Computer Science
University of San Francisco
Departmentof Computer Science University of San Francisco p. 1/??
1-2: Class structure
Combination of lectures and labs
Labs (many Tuesdays): hands-on exposure to a piece of
Web technology.
Lectures (Thursdays): problems, principles and algorithms
related to large-scale distributed systems.
Departmentof Computer Science University of San Francisco p. 2/??
1-3: Class structure
Work:
8 labs - 1 week turnaround.
Midterm and final
Twoprojects:
P2P client
Extension of your choosing.
Departmentof Computer Science University of San Francisco
1-4: Course Policy
Class participation is very important.
Attendance is required
Active participation is encouraged (and rewarded!)
Departmentof Computer Science University of San Francisco p. 4/??
1-5: Course Policy
Texts:
Singh & Huhns: Service-Oriented Computing.
Youwill also need access to technical resources regarding
XML, 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.
Departmentof Computer Science University of San Francisco p. 5/??
1-6: Course Policy
Languages:
Youmay use any language that “makes sense” for the
lab/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 support
for XML parsing.
Departmentof Computer Science University of San Francisco
pf3
pf4
pf5

Partial preview of the text

Download Distributed Systems: A Deep Dive into DNS as an Example and more Study notes Software Engineering in PDF only on Docsity!

Distributed Software Development

Introduction

Chris Brooks

Department of Computer Science

University of San Francisco

Department of Computer Science — University of San Francisco – p. 1/

??

Class structure

•^

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/

??

Class structure

•^

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

Course Policy

•^

Class participation is very important.^ ◦

Attendance is required ◦ Active participation is encouraged (and rewarded!)

Department of Computer Science — University of San Francisco – p. 4/

??

Course Policy

•^

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/

??

Course Policy

•^

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

What is a distributed system?

•^

(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/

??

What is a distributed system?

•^

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/

??

Tightly-coupled systems

•^

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

Middle ground

•^

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

•^

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/

??

Issues in distributed systems

•^

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

How DNS actually works

•^

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/

??

DNS from the client side, redux

•^

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)

  1. This returns the address of an authoritative server at

cs.usfca.edu (for example).

  1. The client then queries this server to find out the IP address

of nexus.cs.usfca.edu

Department of Computer Science — University of San Francisco – p. 20/

??

Local DNS servers

•^

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

DNS as a distributed system

•^

What issues does this particular design of DNS solve?

Department of Computer Science — University of San Francisco – p. 22/

??

DNS as a distributed system

•^

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/

??

DNS as a distributed system

•^

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

DNS as a distributed system

•^

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/

??

DNS as a distributed system

•^

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/

??

DNS as a distributed system

•^

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

DNS as a distributed system

•^

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/

??

DNS as a distributed system

•^

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/

??

DNS as a distributed system

•^

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