tugas sistem terdistribusi 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009....

15
Tugas Sistem Terdistribusi (TIF 304) “NAME SERVICE ” Oleh : Andono Satrio W (32508) Tegar Permana (32324) PRODI TEKNOLOGI INFORMASI JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA 2009

Upload: others

Post on 02-Aug-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Tugas Sistem Terdistribusi (TIF 304)

“NAME SERVICE ”

Oleh : Andono Satrio W (32508) Tegar Permana (32324)

PRODI TEKNOLOGI INFORMASI JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA

2009

Page 2: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

9.1 Pendahuluan

Dalam sistem terdistribusi, name service digunakan untuk menunjuk ke suatu sesumber yang beragam dan tersebar seperti komputer, layanan (services), file, remote object, use yang dapat memudahkan pengguna.

Contoh penamaan pada aplikasi sistem terdistribusi: – URL untuk mengakses suatu halaman web.

– Alamat e-mail utk komunikasi antar pemakai. Selain itu name service juga merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama. Kebutuhan akan penamaan juga memicu munculnya layanan penamaan (Naming Services) yang menyediakan mekanisme dan struktur penamaan objek itu sendiri. Contohnya DNS (Domain Name Service), X.500, COBRA, dan GNS.

9.1.1 Name Resolution, Binding, Attributes

• Name resolution: Nama ditranslasikan ke data ttg resource/object tsb. • Binding: Asosiasi antara nama & obyek. Dan biasanya nama diikat (bound) ke

attributes dari suatu obyek. • Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi • Attribute: nilai suatu object property.

Penguraian Naming Domains untuk mengakses resource dari URL

Page 3: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Didalam setiap name objek terdapat juga beberapa atribut yang merupakan properti suatu objek. Contoh :

ü DNS : memetakan dari nama ke atribut alamat IP host ü X.500 : memetakan suatu nama seseorang ke beberapa atribut, seperti email,

telepon, dsb. ü CORBA Naming Service yang memetakan nama remote objek ke remote object

reference. 9.2 Name Service and the Domain Name System Suatu name service dapat menyimpan kumpulan satu atau lebih kontek penamaan yaitu sehimpunan keterkaitan antara nama dan atribut objek, seperti user, komputer, services dan remote object. Yang dibutuhkan dari suatu Name Services adalah :

– penamaan unik yang standard – scalability – consistency – performance dan availability – mudah menyesuaikan terhadap perubahan – perlindungan kegagalan

Dalam rangka memenuhi kebutuhan tersebut, sebuah name server setidaknya dapat menerapkan mekanisme berikut :

o Partitioning ü Tidak ada satu name server yang dapat menyimpan seluruhnama dan

atribut untuk seluruh jaringan. ü Data nama dipartisi berdasarkan domain.

o Replication

ü Sebuah domain biasanya memiliki lebih dari satu name server ü Untuk meningkatkan availability dan performance

o Caching

ü Sebuah name server dapat melakukan mekanisme caching terhadap data nama dari name server lain

ü Hal ini dilakukan untuk mencegah operasi permintaan sama berulang-ulang

Page 4: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

9.2.1 Name Space Name Space adalah kumpulan nama sah yang dikenal oleh suatu layanan yang sesuai. Suatu nama dapat digambarkan dengan menggunakan generative grammar, seperti BNF (Backus-Naur Form). Contoh BNF untuk email

Berikut adalah beberapa karakter dari name space :

• memiliki struktur internal ü flat ü hirarki yang mempresentasikan posisi (contoh sistem berkas UNIX) ü hirarki yang mempresentasikan struktur organisasi (contoh Internet

Domain) • Karena hirarki, memiliki potensi tak terbatas • Suatu name space dapat diatur secara terdistribusi (naming domain) • Suatu name space dapat berupa gabungan dari beberapa nama space lain. Contoh

mount pada UNIX/Linux

Page 5: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

9.2.2 Name Resolution Yaitu diberikan nama obyek , temukan obyek tersebut. Simpan semua nama di setiap name server. Partisi basis data penamaan (naming database) dapat dilakukan berdasarkan:

• Algoritma: ü Tergantung dari nilai sebuah fungsi hash. ü Tidak tergantung pada struktur dan lokasi obyek.

• Sintaks: ü Contoh: telaga.cs.ui.ac.id.

• Atribut. ü Proxy dapat menyimpan pointer migrasi suatu obyek.

Name servers and navigation

Navigasi dan name servers di sini memiliki arti petunjuk pengaksesan nama data dari lebih dari satu name server untuk menyelesaikan suatu pemetaan nama (resolve a name). Yang didalamnya terdapat 3 metode,yaitu :

ü Iterative Navigation ü Non-recursive, server-controlled ü recursive, server-controlled

– Iterative Navigation

Iterative Navigation

Agent tetap memegang kendali proses resolusi sebuah nama. Server mengembalikan status resolusi dan alamat server yang harus dihubungi selanjutnya. Agent bekerja lebih keras dari cara pertama, dan perlu sedikit pintar.

Page 6: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Transitive Navigation

Transitive Navigation hampir sama dengan resolusi rekursif. Return address dari agent diteruskan oleh server, sehingga jika informasi lokasi obyek ditemukan, informasi tersebut langsung diteruskan ke agent. Kelebihan : berkurangnya pengiriman pesan, server tidak perlu menyimpan status on going resolution. Kekurangan: pengirim tidak menerima ACK.

– Non-recursive and Recursive server-controlled navigation

Non Recursive Server controlled

Page 7: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Recursive Server Controlled

Rekursif

Adalah aktifitas berpindah dari server ke server, shg nama selalu di-resolve dalam konteks yang baru. Multiple servers transparan bagi name agent. Agent tidak sibuk. Servers harus menyimpan return address untuk setiap outgoing lookup, dan secara keseluruhan bekerja keras.

Page 8: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

9.2.3 Domain Name System Domain Name System merupakan sebuah name service sebagai standard penamaan pada

Internet. Hal itu ditemukan oleh Mockapertis (1987) untuk menggantikan skema penamaan original, dimana semua hal dilakukan oleh satu central master file dan di download oleh FTP untuk semua computer yang membutuhkannya.

Database DNS diterapkan dengan sistem partitioning yang terbagi-bagi dalam suatu zone berdasar domainnya dan letak geografis. Top level organizational domain (biasa disebut generic domains) yang digunakan saat ini antara lain :

Com - organisasi komersial Edu - institusi pendidikan Gov - institusi pemerintahan Mil - organisasi militer Net - Network support center Org - Organisasi tertentu yang tidak disebutkan disini Int - organisasi internasional Us - United states Uk - United kingdom Id - Indonesian

DNS Name Server dan Implementasi BIND

Name server menggunakan basis data terdistribusi yang terdiri dari tuples <nama, lokasi, [atribut]>. Contoh atribut: jika resource adalah printer, maka atribut dapat menyatakan apakah obyek dapat melakukan pencetakan postcripts atau tidak.

Hal penting yang harus dimiliki: – Availability, – Resilience to failure, – Konsistensi, – Kecepatan menerima pengaruh perubahan name lists, – Kemudahan mengkompilasi list of objects (resources).

Pada tiap zone memiliki 2 name server yang menyediakan authoritative naming

information (replikasi). Suatu authoritative DNS Server ada 2 jenis :

• Primary server : – Mendapatkan data dengan membaca file di storage – Lebih dikenal dengan File Zone

• Secondary Server :

– Mendapatkan data dengan mereplikasikan data yang ada di primary server – Lebih dikenal dengan Transfer Zone

Page 9: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Selain itu DNS juga menerapkan mekanisme caching yang selalu menyimpan informasi

hasil resolve name yang sudah dilakukan. Contoh definisi zone dengan BIND pada file /etc/named.conf : zone "budsus.com" {

type master; file "budsus.db";

}; Biasanya pada BIND, database name zone disimpa pada direktori /var/named. Untuk mendefinisikan authoritative DNS server dapat diberikan data berikut pada file domain.db (contoh : budsus.com.db) @ IN SOA ns1.budsus.com. root.ns1.budsus.com. (

20020401000 ;serial number 7200 ;refresh - 2 jam 3600 ;Retry - 1 jam 43200 ;Expire - 12 jam 3600 ) ;Minimum - 1 hour

Page 10: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Beberapa tipe record pada DNS yang dikenal antara lain : Tipe record NS (Name Server)

IN NS ns1.budsus.com

Tipe record MX (Mail eXchange) IN MX 10 ns1.budsus.com

Tipe record A (Address) ns1 IN A 192.168.0.2

Tipe record PTR (Domain Name Pointer) 192.168.0.2 IN PTR www.budsus.com

CNAME (Canonical Name) www IN CNAME ns1.budsus.com

9.3 Directory and Discovery Services

Sebuah direktori merupakan sebuah database, yang pengelolaan informasinya di dasarkan pada atribut setiap item datanya. Informasi pada direktori lebih banyak akan dibaca daripada operasi update (add, modify, ataupun delete). Sehingga pada suatu directory service tidak menerapkan transaksi atau skema roll-back yang komplek seperti halnya yang kita temui pada database service.

Pengubahan informasi pada direktori terjadi pada semua atau beberapa atribut suatu item direktori. Dengan sifatnya yang sebagian besar diterapkan operasi pembacaan, maka suatu directory service akan menerapkan suatu model replikasi untuk dapat memberikan kehandalan yang lebih baik.

Suatu directory service akan menerapkan protokol LDAP (Lightweight Directory Access Protocol) dengan format atribut untuk tiap itemnya di dasarkan pada format standard X.500. LDAP disepakati dengan RFC 1777.

Secara prinsip struktur database pada directory service adalah hierarchy seperti yang ditunjukkan pada gambar di atas. Seperti pada struktur hirarki pada umumnya, pada suatu database directory service akan memiliki suatu item yang dijadikan sebagai root. Untuk sebuah titik root, secara umum ditunjukkan dengan suatu atribut dc (Domain Component), namun dapat juga langsung ditunjuk dengan atribut cn (Common Name) atau ou (Organization Unit) ataupun o (Organization). Kemudian pada titik daun (leaf) biasanya akan berisi suatu item denga atribut uid (User ID) ataupun cn. Berikut beberapa atribut untuk sebuah titik pada directory service (lihat RFC 2256) :

Page 11: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

● uid User id ● cn Common Name ● sn Surname ● l Location ● ou Organisational Unit ● o Organisation ● dc Domain Component ● st State ● c Country Lalu sekarang pertanyaannya adalah bagaimana caranya kita menunjuk ke suatu item dari

database directory service? Cara penunjukkan suatu item titik pada directory service sama seperti kita memperlakukan struktur hirarki DNS. Sebuah item titik pada directory service diberi suatu alamat baik secara relatif maupun absolut.

Untuk suatu alamat relatif sering disebut sebagai RDN (Relative Distinguish Name), sedangkan alamat yang absolut disebut sebagai DN (Distinguish Name). Pengalamatan ini disepakati dengan RFC 1779. Contoh pada gambar di atas DN untuk uid=jparker adalah “dn=uid=jparker, ou=People, dc=pisoftware, dc=com”.

Secara keseluruhan, sebuah item dapat diakses dari directory client dengan mematuhi aturan URI (Uniform Resource Identifier) seperti yang tertulis pada RFC 1959. Berikut beberapa contoh URI LDAP :

ð ldap://foo.bar.com/dc=bar,dc=com ð ldap://argle.bargle.com/dc=bar,dc=com??sub?uid=barney

Secara teknis, LDAP merupakan sebuah protokol untuk mengakses ke Directory Service

X-500. Pertama-tama, client mengakses gateway ke X-500. Gateway tersebut akan menjalankan LDAP di antara client dan gateway, sekaligus menjalankan Directory Access Protocol X-500 antara X-500 dan server. Karena LDAP merupakan jenis simpel dari DAP, maka LDAP menyediakan sebagian besar dari fungsi DAP dengan biaya yang jauh lebih rendah.

LDAP menggunakan model client server. Saat client terkoneksi ke server dan mengajukan LDAP request, server merespon dengan jawaban dan/atau dengan pointer ke arah mana client dapat mendapat tambahan informasi (khususnya ke server LDAP yang lain). Tidak masalah server LDAP yang mana yang merespon requst dari client, karena client tersebut akan mendapat informasi yang sama.

Page 12: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Jini discovery service Jini adalah teknologi dalam bidang jaringan komputer yang dipublikasikan secara resmi

oleh Sun Microsistem pada 25 Januari 1999. Ide dibalik teknologi ini diperoleh karena keterbatasan Java dalam sistem terdistribusi. Perbedaan Jini dengan teknologi yang digunakan untuk sistem terdistribusi lainnya adalah interface yang dapat dibuat tanpa harus menuliskan notasi standar interface yaitu Interface Definition Language (IDL). Meskipun Jini dikembangkan dengan menggunakan teknologi Java, namun pemrogram dapat menggunakan method dari kode native yang ditulis dengan bahasa pemrograman selain Java untuk aplikasi Jini client dan server.

Jini merupakan salah satu arsitektur sistem terdistribusi yang menggunakan sekumpulan antarmuka dan protocol yang sederhana. Jinni memungkinkan sebuah network yang menyediakan service dan network yang terhubung ke device secara spontan tergabung dalam sebuah grup obyek yang saling bekerja sama yang disebut federation. Federation merupakan sebuah grup obyek yang saling bekerja sama yang merupakan gabungan dari jaringan penyedia layanan dan jaringan yang terhubung keperalatan. Jini memiliki mekanisme self-healing yaitu proses pemulihan diri sendiri ketika sebuah atau beberapa alat dilepas dari federations. Konsep-konsep utama dalam arsitektur Jini antara lain :

1. Service Sebuah entitas yang berada dalam network dan menunggu untuk melakukan

fungsinya.

2. Federation Federation adalah sebuah sistem yang dinamis terdistribusi yang berisi devices dan

komponen-komponen software yang berada dalam satu network. 3. Lookup Service

Lookup Service berperan sebagai broker/trader/locator yang menghubungkan service dan client. Service yang ada di network dicari dan ditemukan olehnya. Lookup service memungkinkan registrasi, pengaksesan, pencarian dan penghapusan service. Dalam jaringan dapat dijalankan beberapa lookup service untuk menangani masalah jika sebuah lookup service mengalami crash.

Infrastruktur Jini :

1. Discovery Protocol Protokol yang memungkinkan client dan services menemukan lookup service dan

melakukan koneksi dengan lookup service pada network. Jenisnya ada 2 yaitu Unicast dan Multicast discovery.

2. Join Protocol

Join merupakan protocol yang memungkinkan service menjadi bagian dari federation dan meregister dirinya sebagai registered service dengan mempublikasikan sebuah service reference ke lookup service.

Page 13: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

3. Lookup Protocol Protokol yang memungkinkan client mencari lookup service untuk memperoleh

service yang dibutuhkannya.

9.4 Case Study of the Global Name Service Global name service (GNS) di desain dan diimplementasikan oleh Lampson dan muridnya di DEC System Research Center yang memberikan fasilitas untuk penempatan resource, alamat e-mail dan autentifikasi. Struktur dari name space mungkin berubah dalam kurun waktu tertentu untuk mengimbangi struktur keorganisasian. Servis tersebut harus mengakomodir perubahan nama baik individual, organisasi dan grup yang ditanganinya. GNS mengatur penamaan database yang berada dalam direktori dari sebuah “tree” yang memegang nama dan nilainya. Direktori diberi nama dengan beberapa nama bagian yang mengarah pada root, atau relative kepada direktori yang aktif, seperti penamaan pada sistem UNIX. Setiap direktori juga diberi integer yang menyajikan directory identifier (DI) yang unik. Nama didalam GNS mempunyai dua bagian yaitu <directory name, value name>. Bagian pertama menunjukan direktori dan yang kedua menunjukan nilai dari tree. Direktori dari tree dipartisi dan disimpan dalam beberapa server, dimana setiap partisi di replikasi pada beberapa server. Konsistensi tree harus dipertahankan, misalnya bila 2 user atau lebih memberikan nama file yang sama maka hanya akan ada 1 user yang berhasil menamai dengan nama tersebut (yang lebih cepat memberi nama).

Page 14: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

9.5 Case Study of the X.500 Directory Service International Telecomuncation Union (ITU) dan International Organization for

Standarization (ISO) pada tahun 1990 mengeluarkan standar untuk directory service yang diberi nama X.500. Ide dasar dari X.500 adalah untuk membangun sebuah sistim terdistribusi secara global yang dapat menawarkan pengaksesan informasi secara homogen dan komprehensif. Dalam X.500 terdefinisi Directory Access Protocol (DAP) yang dapat digunakan oleh klien untuk mengakses direktorinya. Secara umum X.500 bertujuan untuk memudahkan pencarian data yang tersusun secara hirarkis. Karena implementasi X.500 service protocol terlalu berat untuk desktop pada saat itu, pada tahun 1993, akademisi dari Universitas Michigan, dengan bantuan Konsorsium ISODE merancang dan membangun sebuah protocol yang dapat bekerja di atas TCP/IP. Hasilnya adalah Lightweight Directory Access Protocol (LDAP). Protokol ini dirancang untuk menyediakan akses ke direktori X.500 tanpa perlu memiliki sumber daya yang dibutuhkan untuk mengimplementasikan DAP.

Microsoft, sebuah perusahaan perangkat lunak, melihat layanan direktori ini sebagai komponen kritikal dalam sebuah sistem yang mencari dan mengirimkan informasi. Oleh karena itu, pada tahun 1996 Microsoft membuat implementasi layanan ini yang diberi nama Active Directory (MSAD) dan dirilis pertama kali bersamaan dengan penggunaan Windows 2000 yang kemudian ditingkatkan fungsionalitasnya pada Windows Server 2003 [WIK05]. MSAD men-support sejumlah standar dalam layanan ini antara lain sebagian dari DAP dan LDAP. CARA KERJA :

X.500 berbasiskan model client-server. Secara terminologi dari standar X.500, direktori kliennya disebut dengan Directory User Agent (DUA), dan untuk server disebut dengan Directory System Agent (DSA). Protokol yang mengatur interaksi antarad dua atau lebih DSA adalah Directory System Protocol (DSP), dan Directory Access Protocol (DAP) yang mengatur komunikasi antara DUA dan DSA. DAP melewati semua lapisan jaringan yang didefinisikan pada OSI. Klien mengakses directory dengan membangun suatu koneksi dengan server dengan mengeluarkan permintaan akses. Klien dapat menghubungi semua server dengan sebuah permintaan. Jika data yang dibutuhkan tidak terdapat pada segmen dari Directory Information Base (DIB) pada suatu server, maka server tadi akan mencarikannya pada server lain atau menyambungkan klien (redirecting) dengan server lain. Berikut ilustrasinya :

Page 15: TUGAS SISTEM TERDISTRIBUSI 32324-32508te.ugm.ac.id/~risanuri/distributed/ringk/bab09.pdf · 2009. 12. 31. · 9.1Pendahuluan Dalam sistem terdistribusi, name service digunakan untuk

Data yang ada disimpan di X.500 server menggunakan struktur data tree (yang diberi nama Directory Information Tree – DIT) dengan nodes yang diberi nama sebagai atribut pencarian. Menurut Coulouris, data tersebut diakses menggunakan dua jenis perintah, read dan search. Untuk read, klien sudah tahu pengenal data yang diinginkan (identifier) memakai nama absolut, sehingga DSA tinggal mengambil data yang diinginkan menggunakan navigasi DIT. Sementara pada search, klien hanya memberikan sebuah filter dan basis nama dan DSA diminta untuk mencari data pada DIT yang sesuai dengan filter yang diberikan.

Sedangkan cara kerja LDAP mirip dengan X.500, karena LDAP dapat dikatakan merupakan himpunan bagian dari X.500. LDAP menggunakan model client-server. Pemrosesan query dari klien adalah serupa dengan X.500. Untuk melakukan sebuah query, klien mengirimkan identifier data (disebut Relative Distinguished Name) yang ingin diambil nilai atribut-atributnya. Klien mengirimkan pesan itu di atas TCP, dan server mencoba mencarinya pada DIT yang tersimpan di server tersebut. Bila ditemukan maka hasilnya langsung diberikan ke klien, bila tidak maka hasilnya berupa sebuah pointer ke server lain yang menyimpan data yang dicari.