sisbar 1-4 nur aini

48
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

Upload: spyji99

Post on 07-Apr-2015

182 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

Sistem Tersebar_Modul 01_Pendahuluan 2

1.2 Struktur system terdistribusi

Page 3: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

Sistem Terdistribusi_Modul03_Process 6

The main part of an adapter that implements a thread-per-object policy.

Page 34: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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: Sisbar 1-4 Nur Aini

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.