Page 1
Sistem Tersebar_Modul 01_Pendahuluan 1
Modul 01
Pendahuluan
Pengguna tidak sadar akan multiplisitas perangkat. Akses terhadap sumber
daya jarak jauh sama dengan sumber daya lokal.
• Remote loging ke dalam perangkat jarak jauh yang sesuai.
• Migrasi Data dengan memindahkan seluruh data atau hanya mentransfer file
yang diperlukan untuk task langsung.
• Computation Migration, memindahkan komputasi bukannya data, melalui sistem.
Process Migration: Mengeksekusi seluruh proses arat bagian daripadanya pada
situs/tempat yang berbeda.
1. Load balancing
2. Computation Speedup
3. Hardware preference
4. Software Preference
5. Data Access
1.1 Definisi Sistem Terdistribusi
Sistem terdistribusi adalah sekumpulan prosesor yang tidak saling berbagi
memori atau clock dan terhubung melalui jaringan komunikasi yang bervariasi, yaitu
melalui Local Area Network ataupun melalui Wide Area Network. Prosesor dalam
sistem terdistribusi bervariasi, dapat berupa small microprocessor, workstation,
minicomputer, dan lain sebagainya.
A collection of independent computers that appears to its users as a single
coherent system. A distributed system organized as middleware. Note that the
middleware layer extends over multiple machines
Page 2
Sistem Tersebar_Modul 01_Pendahuluan 2
1.2 Struktur system terdistribusi
Page 3
Sistem Tersebar_Modul 01_Pendahuluan 3
Karakteristik sistem terdistribusi
1. Concurrency of components.
Pengakasesan suatu komponen/ sumber daya (segala hal yang dapat
digunakan bersama dalam jaringan computer, meliputi H/W dan S/W) secara
bersamaan. Contoh: beberapa pemakai browser mengakses halaman web
secara bersamaan
2. No global clock.
Hal ini menyebabkan kesulitan dalam mensinkronkan waktu seluruh
komputer/perangkat yang terlibat. Dapat berpengaruh pada pengiriman
pesan/data, seperti saat beberapa proses berebut ingin masuk critical section.
3. Independent failures of components.
Setiap komponen/perangkat dapat mengalami kegagalan namun
komponen/perangkat lain tetap berjalan dengan baik.
Ada empat alasan utama untuk membangun sistem terdistribusi, yaitu:
1. Resource Sharing.
Dalam system terdistribusi, situs-situs yang berbeda saling terhubung satu
sama lain melalui jaringan sehingga situs yang satu dapat mengakses dan
menggunakan sumber daya yang terdapat dalam situs lain. Misalnya, user di
situs A dapat menggunakan laser print yang dimiliki situs B dan sebaliknya user
di situs B dapat mengakses file yang terdapat di situs A.
2. Computation Speedup.
Apabila sebuah komputasi dapat dipartisi menjadi beberapa subkomputasi
yang berjalan bersamaan, maka system terdistribusi akan mendistribusikan
subkomputasi tersebut ke situs-situs dalam system. Dengan demikian, hal ini
meningkatkan kecepatan komputasi.
3. Reliability.
Dalam system terdistribusi, apabila sebuah situs mengalami kegagalan, maka
situs yang tersisa dapat melanjutkan operasi yang sedang berjalan. Hal ini
menyebabkan reliabilitas system menjadi lebih baik.
4. Communication
Ketika banyak situs saling terhubung melalui jaringan komunikasi, user dari
situs-situs yang berbeda mempunyai kesempatan untuk dapat bertukar
informasi.
Page 4
Sistem Tersebar_Modul 01_Pendahuluan 4
Tantangan-tantangan yang harus dipenuhi oleh sebuah system terdistribusi
1. Keheterogenan perangkat/multiplisitas perangkat.
Suatu system terdistribusi dapat dibangun dari berbagai macam perangkat
yang berbeda, baik system operasi, H/W maupun S/W.
2. Keterbukaan
Setiap perangkat memilki antarmuka (interface) yang di publish ke komponen
lain. Perlu integrasi berbagai komponen dibuat oleh programmer atau vendor
yang berbeda.
3. Keamanan
Shared resources dan transmisi informasi / data perlu dilengkapi dengan
enkripsi.
4. Penanganan kegagalan
Setiap perangkat dapat mengalami kegagalan secara independent. Namun
perangkat lain harus tetap berjalan dengan baik.
5. Concurrency of components
Pengaksesan suatu komponen/ sumber daya secara bersamaan oleh banyak
pemakai
6. Transparansi
Bagi pemakai, keberadaan berbagai perangkat (multiplisitas perangkat) dalam
system terdistribusi tampak sebagai satu system saja.
1.3 Transparansi dalam system terdistribusi
Transparency Description
Access Hide differences in data representation and how a resource is
accessed
Location Hide where a resource is located
Migration Hide that a resource may move to another location
Relocation Hide that a resource may be moved to another location while in use
Replication Hide that a resource may be shared by several competitive users
Concurrency Hide that a resource may be shared by several competitive users
Failure Hide the failure and recovery of a resource
Persistence Hide whether a (software) resource is in memory or on disk
Page 5
Sistem Tersebar_Modul 01_Pendahuluan 5
1.4 Sistem operasi terdistribusi
Dalam sistem operasi terdistribusi, user mengakses sumber daya jarak jauh
(remote resources) sama halnya dengan mengakses sumber daya lokal (local
resources). Migrasi data dan proses dari satu situs ke situs yang lain dikontrol oleh
sistem operasi terdistribusi
Berikut ini adalah fitur-fitur yang didukung oleh system operasi terdistribusi:
1. Data Migration
Misalnya, user di situs A ingin mengakses data di situs B. maka, transfer data dapat
dilakukan melalui dua cara, yaitu dengan mentransfer keseluruhan data atau
mentransfer sebagian data yang dibutuhkan untuk immediate task.
2. Computation Migration.
Terkadang, kita ingin mentransfer komputasi, bukan data. Pendekatan ini yang
disebut dengan computation migration.
3. Process Migration
Ketika sebuah proses dieksekusi. Proses tersebut tidak selalu dieksekusi di
situs dimana ia pertama kali diinisiasi. Keseluruhan proses, atau sebagian
daripadanya, dapat saja dieksekusi pada situs yang berbeda. Hal ini dilakukan
karena beberapa alasan, antara lain:
Page 6
Sistem Tersebar_Modul 01_Pendahuluan 6
• Load Balancing
• Computation speedup
• Process turnaround time
• Hardware preference
Proses mungkin mempunyai karakteristik tertentu yang menyebabkan proses
tersebut lebih cocok dieksekusi di prosesor lain. Misalnya, proses inverse
matriks, lebih cocok dilakukan di array processor daripada di microprocessor
software preference.
Proses membutuhkan software yang tersedia di situs lain, dimana software
tersebut tidak dapat dipindahkan atau lebih murah untuk melakukan migrasi
prosses daripada software data access.
1.5 Dua tipe jaringan yang dipakai dalam system terdistribusi
LAN = di rancang untuk mencakup area yang kecil.
WAN = menghubungkan situs-situs yang terpisah secara geografi
Aplikasi
1. Transmisi dari sebuah paket network antar host dalam sebuah jaringan ethernet.
2. Setiap host mempunyai sebuah IP unik dan sebuah alamat ethernet yang
berkorespondensi
3. Komunikasi membutuhkan alamat keduanya.
4. DNS yang dapat digunakan untuk mendapatkan alamat IP.
Sistem berkas
Sebuah implementasi dari model klasik time sharing dari sebuah sistem file, dimana
banyak user
dapat berbagi file dan penyimpanan resource.
Struktur sistem berkas
1. Servis: Software entity yang berjalan pada sebuah atau lebih hardware dan
menyediakan sebuah tipe fungsi partikular pada client yang tidak dikenal
2. Server: Software servis yang berjalan pada sebuah mesin
3. Client: Proses yang dapat mengivoke sebuah servis mengunakan set operasi
yang membentuk client interfacenya
Page 7
Sistem Tersebar_Modul 01_Pendahuluan 7
Replikasi
1. Replika dari file yang sama di dalam mesin yang failure-independent
2. Memperbaiki ketersediaan dan dapat mempersingkat waktu servis
3. Schema penamaan memetakan sebuah nama file yang di replikasi pada sebuah
replika yang partikulir.
4. Update, sebuah update terhadap replika apapun harus direfleksikan pada replika
lainnya.
Asumsi
Sistem terdiri dari n proses, tiap proses berada di dalam processor yang berbeda
Setiap proses
mempunyai critical section yang membutuhkan mutual exclusion
Requirement
Jika sebuah proses sedang mengeksekusi critical section, maka tidak ada proses
lain yang
mengeksekusi critical sectionnya. Terdapat dua pendekatan yaitu:
1. Centralized Approach.
o Satu dari proses dalam sistem dipilih untuk mengkoordinasikan entry
terhadap critical section.
o Sebuah proses yang ingin memasuki critical section meminta coordinator
dengan mengirimkan pesan.
o Koordinator memutuskan proses mana yang dapat memasuki critical section,
dengan mengirimkan pesan balasan.
o Ketika sebuah proses menerima pesan dari koordinator maka ia memasuki
critical section.
o Setelah mengakhiri critical sectionnya, sebuah proses mengirimkan pesan
lagi kepada koordinator. Lalu keluar dari C. S.
2. Fully Distributed Approach.
• Ketika sebuah proses ingin memasuki critical sectionya, ia membangkitkan
sebuah timestamp
• baru dan mengirimkan pesan permohonan kepada seluruh proses lain.
• Ketika proses menerima pesan permohonan, ia dapat langsung membalas
atau mengirim reply
• back.
Page 8
Sistem Tersebar_Modul 01_Pendahuluan 8
• Ketika pesan tersebut menerima reply dari seluruh proese lain, ia dapat
memasuki critical
• section.
• Ketika ia mengakhiri C.S. proses mengirimkan reply message.
Page 9
Sistem Terdistribusi_Modul02_Communication 1
Modul 02
Communication
Layered Protocols
Layers, interfaces, and protocols in the OSI model.
A typical message as it appears on the network.
Page 10
Sistem Terdistribusi_Modul02_Communication 2
Data Link Layer
Discussion between a receiver and a sender in the data link layer.
Client-Server TCP
(a) Normal operation of TCP. (b)Transactional TCP.
Page 11
Sistem Terdistribusi_Modul02_Communication 3
Middleware Protocols
An
adapted reference model for networked communication.
Conventional Procedure Call
a) Parameter passing in a local procedure call: the stack before the call to read
b) The stack while the called procedure is active
Page 12
Sistem Terdistribusi_Modul02_Communication 4
Client and Server Stubs
Principle of RPC between a client and server program.
Steps of a Remote Procedure Call
1. Client procedure calls client stub in normal way
2. Client stub builds message, calls local OS
3. Client's OS sends message to remote OS
4. Remote OS gives message to server stub
5. Server stub unpacks parameters, calls server
6. Server does work, returns result to the stub
7. Server stub packs it in message, calls local OS
8. Server's OS sends message to client's OS
9. Client's OS gives message to client stub
10. Stub unpacks result, returns to client
Passing Value Parameters
Steps involved in doing remote computation through RPC
Page 13
Sistem Terdistribusi_Modul02_Communication 5
a) Original message on the Pentium
b) The message after receipt on the SPARC
c) The message after being inverted. The little numbers in boxes indicate the
address of each byte
Parameter Specification and Stub Generation
a) A procedure
b) The corresponding message
Doors
The principle of using doors as IPC mechanism.
Page 14
Sistem Terdistribusi_Modul02_Communication 6
Asynchronous RPC
a) The interconnection between client and server in a traditional RPC
b) The interaction using asynchronous RPC
A client and server interacting through two asynchronous RPCs
Page 15
Sistem Terdistribusi_Modul02_Communication 7
Writing a Client and a Server
The steps in writing a client and a server in DCE RPC
Binding a Client to a Server
Page 16
Sistem Terdistribusi_Modul02_Communication 8
Client-to-server binding in DCE.
Distributed Objects
Common organization of a remote object with client-side proxy.
Binding a Client to an Object
Distr_object* obj_ref; //Declare a systemwide object reference
obj_ref = …; // Initialize the reference to a distributed object
obj_ref-> do_something(); // Implicitly bind and invoke a method
(a)
Distr_object objPref; //Declare a systemwide object reference
Local_object* obj_ptr; //Declare a pointer to local objects
obj_ref = …; //Initialize the reference to a distributed object
obj_ptr = bind(obj_ref); //Explicitly bind and obtain a pointer to the local
Page 17
Sistem Terdistribusi_Modul02_Communication 9
proxy
obj_ptr -> do_something(); //Invoke a method on the local proxy
(b)
a) An example with implicit binding using only global references
b) An example with explicit binding using global and local references
Parameter Passing
The situation when passing an object by reference or by value.
The DCE Distributed-Object Model
a) Distributed dynamic objects in DCE.
b) Distributed named objects
Page 18
Sistem Terdistribusi_Modul02_Communication 10
Persistence and Synchronicity in Communication
General organization of a communication system in which hosts are connected
through a network
Persistent communication of letters back in the days of the Pony Express.
Page 19
Sistem Terdistribusi_Modul02_Communication 11
a) Persistent asynchronous communication
b) Persistent synchronous communication
c) Transient asynchronous communication
d) Receipt-based transient synchronous communication
e) Delivery-based transient synchronous communication at message delivery
f) Response-based transient synchronous communication
Page 20
Sistem Terdistribusi_Modul02_Communication 12
Berkeley Sockets
Primitive Meaning
Socket Create a new communication endpoint
Bind Attach a local address to a socket
Listen Announce willingness to accept
connections
Accept Block caller until a connection request
arrives
Connect Actively attempt to establish a connection
Send Send some data over the connection
Receive Receive some data over the connection
Close Release the connection
Socket primitives for TCP/IP.
Connection-oriented communication pattern using sockets
The Message-Passing Interface (MPI)
Primitive Meaning
MPI_bsend Append outgoing message to a local send buffer
MPI_send Send a message and wait until copied to local or remote
buffer
MPI_ssend Send a message and wait until receipt starts
Page 21
Sistem Terdistribusi_Modul02_Communication 13
MPI_sendrecv Send a message and wait for reply
MPI_isend Pass reference to outgoing message, and continue
MPI_issend Pass reference to outgoing message, and wait until
receipt starts
MPI_recv Receive a message; block if there are none
MPI_irecv Check if there is an incoming message, but do not block
Some of the most intuitive message-passing primitives of MPI.
Message-Queuing Model
Four combinations for loosely-coupled communications using queues.
Basic interface to a queue in a message-queuing system.
Primitive Meaning
Put Append a message to a specified queue
Get Block until the specified queue is nonempty, and remove the
first message
Poll Check a specified queue for messages, and remove the first.
Never block.
Page 22
Sistem Terdistribusi_Modul02_Communication 14
Notify Install a handler to be called when a message is put into the
specified queue.
General Architecture of a Message-Queuing System
The relationship between queue-level addressing and network-level addressing.
The general organization of a message-queuing system with routers.
Page 23
Sistem Terdistribusi_Modul02_Communication 15
Message Brokers
The general organization of a message broker in a message-queuing system.
Example: IBM MQSeries
General organization of IBM's MQSeries message-queuing system.
Channels
Some attributes associated with message channel agents.
Attribute Description
Transport type Determines the transport protocol to be used
Page 24
Sistem Terdistribusi_Modul02_Communication 16
FIFO delivery Indicates that messages are to be delivered in the order they
are sent
Message
length Maximum length of a single message
Setup retry
count
Specifies maximum number of retries to start up the remote
MCA
Delivery retries Maximum times MCA will try to put received message into
queue
Message Transfer
The general organization of an MQSeries queuing network using routing tables and
aliases.
Primitives available in an IBM MQSeries MQI
Primitive Description
MQopen Open a (possibly remote) queue
MQclose Close a queue
MQput Put a message into an opened queue
MQget Get a message from a (local) queue
Page 25
Sistem Terdistribusi_Modul02_Communication 17
Data Stream
Setting up a stream between two processes across a network.
Setting up a stream directly between two devices.
An example of multicasting a stream to several receivers.
Page 26
Sistem Terdistribusi_Modul02_Communication 18
Specifying QoS
A flow specification.
Characteristics of the Input Service Required
� maximum data unit size (bytes)
� Token bucket rate (bytes/sec)
� Toke bucket size (bytes)
� Maximum transmission rate
(bytes/sec)
� Loss sensitivity (bytes)
� Loss interval (µsec)
� Burst loss sensitivity (data units)
� Minimum delay noticed (µsec)
� Maximum delay variation (µsec)
� Quality of guarantee
The principle of a token bucket algorithm.
Setting Up a Stream
The basic organization of RSVP for resource reservation in a distributed system.
Page 27
Sistem Terdistribusi_Modul02_Communication 19
Synchronization Mechanisms
The principle of explicit synchronization on the level data units.
The principle of synchronization as supported by high-level interfaces.
Page 28
Sistem Terdistribusi_Modul03_Process 1
Modul 03
Process
Thread Usage in Nondistributed Systems
Context switching as the result of IPC
Combining kernel-level lightweight processes and user-level threads.
Page 29
Sistem Terdistribusi_Modul03_Process 2
Multithreaded Servers
A multithreaded server organized in a dispatcher/worker model.
Three ways to construct a server
Model Characteristics
Threads Parallelism, blocking system calls
Single-threaded process No parallelism, blocking system calls
Finite-state machine Parallelism, nonblocking system calls
The X-Window System
The basic organization of the X Window System
Page 30
Sistem Terdistribusi_Modul03_Process 3
Client-Side Software for Distribution Transparency
A possible approach to transparent replication of a remote object using a client-side
solution
Servers: General Design Issues
Page 31
Sistem Terdistribusi_Modul03_Process 4
a) Client-to-server binding using a daemon as in DCE
b) Client-to-server binding using a superserver as in UNIX
Object Adapter
Organization of an object server supporting different activation policies.
The header.h file used by the adapter and any program that calls an adapter
/* Definitions needed by caller of adapter and adapter */
#define TRUE
#define MAX_DATA 65536
/* Definition of general message format */
struct message {
long source /* senders identity */
long object_id; /* identifier for the requested object */
long method_id; /* identifier for the requested method */
unsigned size; /* total bytes in list of parameters */
char **data; /* parameters as sequence of bytes */
};
Page 32
Sistem Terdistribusi_Modul03_Process 5
/* General definition of operation to be called at skeleton of object */
typedef void (*METHOD_CALL)(unsigned, char* unsigned*, char**);
long register_object (METHOD_CALL call); /* register an object */
void unrigester_object (long object)id); /* unrigester an object */
void invoke_adapter (message *request); /* call the adapter */
The thread.h file used by the adapter for using threads.
typedef struct thread THREAD; /* hidden definition of a thread */
thread *CREATE_THREAD (void (*body)(long tid), long thread_id);
/* Create a thread by giving a pointer to a function that defines the actual */
/* behavior of the thread, along with a thread identifier */
void get_msg (unsigned *size, char **data);
void put_msg(THREAD *receiver, unsigned size, char **data);
/* Calling get_msg blocks the thread until of a message has been put into its */
/* associated buffer. Putting a message in a thread's buffer is a nonblocking */
/* operation. */
Reasons for Migrating Code
The principle of dynamically configuring a client to communicate to a server. The client
first fetches the necessary software, and then invokes the server.
Page 33
Sistem Terdistribusi_Modul03_Process 6
The main part of an adapter that implements a thread-per-object policy.
Page 34
Sistem Terdistribusi_Modul03_Process 7
Models for Code Migration
Alternatives for code migration.
Migration and Local Resources
Actions to be taken with respect to the references to local resources when migrating
code to another machine.
Unattached Fastened Fixed
By identifier
By value
By type
MV (or GR)
CP ( or MV, GR)
RB (or GR, CP)
GR (or MV)
GR (or CP)
RB (or GR, CP)
GR
GR
RB (or GR)
Resource-to machine binding
Process-to-resource binding
Page 35
Sistem Terdistribusi_Modul03_Process 8
Migration in Heterogeneous Systems
The principle of maintaining a migration stack to support migration of an execution
segment in a heterogeneous environment
Overview of Code Migration in D'Agents
A simple example of a Tel agent in D'Agents submitting a script to a remote machine
(adapted from [gray.r95])
proc factorial n { if ($n ≤ 1) { return 1; } # fac(1) = 1 expr $n * [ factorial [expr $n – 1] ] # fac(n) = n * fac(n – 1) } set number … # tells which factorial to compute set machine … # identify the target machine agent_submit $machine –procs factorial –vars number –script {factorial $number } agent_receive … # receive the results (left unspecified for simplicity)
Page 36
Sistem Terdistribusi_Modul03_Process 9
An example of a Tel agent in D'Agents migrating to different machines where it executes
the UNIX who command (adapted from [gray.r95])
all_users $machines
proc all_users machines {
set list "" # Create an initially empty list
foreach m $machines { # Consider all hosts in the set of given machines
agent_jump $m # Jump to each host
set users [exec who] # Execute the who command
append list $users # Append the results to the list
}
return $list # Return the complete list when done
}
set machines … # Initialize the set of machines to jump to
set this_machine # Set to the host that starts the agent
# Create a migrating agent by submitting the script to this machine, from where
# it will jump to all the others in $machines.
agent_submit $this_machine –procs all_users
-vars machines
-script { all_users $machines }
agent_receive … #receive the results (left unspecified for simplicity)
Implementation Issues
The architecture of the D'Agents system
Page 37
Sistem Terdistribusi_Modul03_Process 10
The parts comprising the state of an agent in D'Agents.
Status Description
Global interpreter variables Variables needed by the interpreter of an agent
Global system variables Return codes, error codes, error strings, etc.
Global program variables User-defined global variables in a program
Procedure definitions Definitions of scripts to be executed by an agent
Stack of commands Stack of commands currently being executed
Stack of call frames Stack of activation records, one for each running
command
Software Agents in Distributed Systems
Some important properties by which different types of agents can be distinguished.
Property
Common
to all
agents?
Description
Autonomous Yes Can act on its own
Reactive Yes Responds timely to changes in its
environment
Proactive Yes Initiates actions that affects its
environment
Communicative Yes Can exchange information with users and
other agents
Continuous No Has a relatively long lifespan
Mobile No Can migrate from one site to another
Adaptive No Capable of learning
Agent Technology
The general model of an agent platform (adapted from [fipa98-mgt]).
Page 38
Sistem Terdistribusi_Modul03_Process 11
Agent Communication Languages
Examples of different message types in the FIPA ACL [fipa98-acl], giving the purpose of
a message, along with the description of the actual message content.
Message purpose Description Message
Content
INFORM Inform that a given proposition is true Proposition
QUERY-IF Query whether a given proposition is
true Proposition
QUERY-REF Query for a give object Expression
CFP Ask for a proposal Proposal
specifics
PROPOSE Provide a proposal Proposal
ACCEPT-PROPOSAL Tell that a given proposal is accepted Proposal ID
REJECT-PROPOSAL Tell that a given proposal is rejected Proposal ID
REQUEST Request that an action be performed Action
specification
SUBSCRIBE Subscribe to an information source Reference to
source
Page 39
Sistem Terdistribusi_Modul03_Process 12
A simple example of a FIPA ACL message sent between two agents using Prolog to
express genealogy information.
Field Value
Purpose INFORM
Sender max@http://fanclub-beatrix.royalty-spotters.nl:7239
Receiver elke@iiop://royalty-watcher.uk:5623
Language Prolog
Ontology genealogy
Content female(beatrix),parent(beatrix,juliana,bernhard)
Page 40
Sistem Terdistribusi_Modul04_Naming(1) 1
Modul 04
Naming (1)
Name Spaces
A general naming graph with a single root node.
The general organization of the UNIX file system implementation on a logical disk of
contiguous disk blocks.
Page 41
Sistem Terdistribusi_Modul04_Naming(1) 2
Linking and Mounting
The concept of a symbolic link explained in a naming graph.
Mounting remote name spaces through a specific process protocol.
Page 42
Sistem Terdistribusi_Modul04_Naming(1) 3
Organization of the DEC Global Name Service
Name Space Distribution
An example partitioning of the DNS name space, including Internet-accessible files, into
three layers.
Page 43
Sistem Terdistribusi_Modul04_Naming(1) 4
A comparison between name servers for implementing nodes from a large-scale name
space partitioned into a global layer, as an administrational layer, and a managerial
layer.
Item Global Administrational Managerial
Geographical scale of network Worldwide Organization Department
Total number of nodes Few Many Vast
numbers
Responsiveness to lookups Seconds Milliseconds Immediate
Update propagation Lazy Immediate Immediate
Number of replicas Many None or few None
Is client-side caching applied? Yes Yes Sometimes
Implementation of Name Resolution
The principle of iterative name resolution.
Page 44
Sistem Terdistribusi_Modul04_Naming(1) 5
The principle of recursive name resolution.
Recursive name resolution of <nl, vu, cs, ftp>. Name servers cache intermediate results
for subsequent lookups.
Server for
node
Should
resolve Looks up
Passes to
child
Receives
and caches
Returns to
requester
cs <ftp> #<ftp> -- -- #<ftp>
vu <cs,ftp> #<cs> <ftp> #<ftp> #<cs>
#<cs, ftp>
ni <vu,cs,ftp> #<vu> <cs,ftp> #<cs>
#<cs,ftp>
#<vu>
#<vu,cs>
#<vu,cs,ftp>
root <ni,vu,cs,ftp> #<nl> <vu,cs,ftp> #<vu>
#<vu,cs>
#<vu,cs,ftp>
#<nl>
#<nl,vu>
#<nl,vu,cs>
#<nl,vu,cs,ftp>
The comparison between recursive and iterative name resolution with respect to
communication costs.
Page 45
Sistem Terdistribusi_Modul04_Naming(1) 6
The DNS Name Space
The most important types of resource records forming the contents of nodes in the DNS
name space.
Type of
record
Associated
entity Description
SOA Zone Holds information on the represented zone
A Host Contains an IP address of the host this node represents
MX Domain Refers to a mail server to handle mail addressed to this node
SRV Domain Refers to a server handling a specific service
NS Zone Refers to a name server that implements the represented zone
CNAME Node Symbolic link with the primary name of the represented node
PTR Host Contains the canonical name of a host
HINFO Host Holds information on the host this node represents
TXT Any kind Contains any entity-specific information considered useful
Page 46
Sistem Terdistribusi_Modul04_Naming(1) 7
DNS Implementation
An excerpt from the DNS database for the zone cs.vu.nl
Part of the description for the vu.nl domain which contains the cs.vu.nl domain.
Name Record type Record value
cs.vu.nl NIS solo.cs.vu.nl
solo.cs.vu.nl A 130.37.21.1
Page 47
Sistem Terdistribusi_Modul04_Naming(1) 8
The X.500 Name Space
A simple example of a X.500 directory entry using X.500 naming conventions.
Attribute Abbr. Value
Country C NL
Locality L Amsterdam
Organization L Vrije Universiteit
OrganizationalUnit OU Math. & Comp. Sc.
CommonName CN Main server
Mail_Servers -- 130.37.24.6, 192.31.231,192.31.231.66
FTP_Server -- 130.37.21.11
WWW_Server -- 130.37.21.11
Part of the directory information tree.
Page 48
Sistem Terdistribusi_Modul04_Naming(1) 9
Two directory entries having Host_Name as RDN.
Attribute Value Attribute Value
Country NL Country NL
Locality Amsterdam Locality Amsterdam
Organization Vrije Universiteit Organization Vrije Universiteit
OrganizationalUnit Math. & Comp.
Sc. OrganizationalUnit
Math. & Comp.
Sc.
CommonName Main server CommonName Main server
Host_Name star Host_Name zephyr
Host_Address 192.31.231.42 Host_Address 192.31.231.66
Naming versus Locating Entities
a) Direct, single level mapping between names and addresses.
b) T-level mapping using identities.