Anda di halaman 1dari 11

BAB V

KOMUNIKASI PADA SISTEM TERDISTRIBUSI

TIK :
Setelah mengikuti kuliah ini mahasiswa Dapat :
1. Memahami sistem komunikasi terdistribusi
2. Mengetahui prinsip-prinsip dan layer protokol serta metode komunikasi diantara
proses-proses yang terjadi pada sistem terdistribusi
3. Mengenal konsep RPC dan RMI
4. Mengeatahui konsep objek terdistribusi dan object interface

A. Materi
5.1. Pendahuluan
Pada bab ini akan dibahas bagaimana komunikasi antara object2 dalam sistem
terdistribusi, khusus nya dengan menggunakan RMI (Remod Method Invokation)
dan RPC (Remote Procedure Call). RMI dan RPC berbasiskan metode request
dan reply.

Gambar 5.1.
Model
komunikasi
dan
implementasi
layer

5.2. Protokol
Protokol
adalah
sebuah
aturan atau
standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi,
dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat
diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari
keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi
perangkat keras.
Dahulu, komunikasi antar komputer dari vendor yang berbeda adalah
sangat sulit dilakukan, karena mereka mengunakan protokol dan format
data yang berbeda-beda. Sehingga International Standards Organization
(ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open
System Interconnection (OSI), model yang mendefinisikan standar untuk
menghubungkan komputer-komputer dari vendor-vendor yang berbeda.
Model-OSI tersebut terbagi atas 7 layer.
Gambar 5.2. Model OSI
Layer-layer tersebut disusun sedemikian sehingga perubahan pada
satu layer tidak membutuhkan perubahan pada layer lain. Layer teratas
(5, 6 and 7) adalah lebih cerdas dibandingkan dengan layer yang lebih
rendah; Layer Application dapat menangani protocol dan format data yang
sama yang digunakan oleh layer lain, dan seterusnya. Jadi terdapat perbedaan
yang besar antara layer Physical dan layer Aplication.
Suatu permintaan, dihasilkan dari atas (contohnya Application Layer)
diteruskan keenam layer di bawahnya yang setiap layer memiliki tugasnya
masing - masing.
1. Physical Layer
Ini adalah layer yang paling sederhana berkaitan dengan electrical
(dan optical) koneksi antar peralatan. Data biner dikodekan dalam
bentuk yang dapat ditransmisi melalui media jaringan, sebagai contoh
kabel, transceiver dan konektor yang berkaitan dengan layer Physical.
Peralatan seperti repeater, hub dan network card adalah berada pada
layer ini.
2. Data-link Layer
Layer ini sedikit lebih "cerdas" dibandingkan dengan layer
physical, karena menyediakan transfer data yang lebih nyata. Sebagai
penghubung antara media network dan layer protocol yang lebih high-
level, layer data link bertanggung-jawab pada paket akhir dari data binari
yang berasal dari level yang lebih tinggi ke paket diskrit sebelum ke layer
physical. Akan mengirimkan frame (blok dari data) melalui suatu network..
Ethernet (802.2 & 802.3), Tokenbus (802.4) dan Tokenring (802.5)
adalah protocol pada layer Data-link.
3. Network Layer
Tugas utama dari layer network adalah menyediakan fungsi routing
sehingga paket dapat dikirim keluar dari segment network lokal ke suatu
tujuan yang berada pada suatu network lain. IP, Internet Protocol, umumnya
digunakan untuk tugas ini. Protocol lainnya seperti IPX, Internet Packet
eXchange. Perusahaan Novell telah memprogram protokol menjadi
beberapa, seperti SPX (Sequence Packet Exchange) & NCP (Netware
Core Protocol). Protokol ini telah dimasukkan ke sistem operasi Netware.
Beberaoa fungsi yang
mungkin dilakukan oleh Layer Network ;
• Membagi aliran data biner ke paket diskrit dengan panjang tertentu
• Mendeteksi Error
• Memperbaiki error dengan mengirim ulang paket yang rusak
• Mengendalikan aliran
4. Transport Layer
Layer transport data, menggunakan protocol seperti UDP, TCP
dan/atau SPX (Sequence Packet eXchange, yang satu ini digunakan oleh
NetWare, tetapi khusus untuk koneksi berorientasi IPX). Layer transport
adalah pusat dari mode-OSI. Layer ini menyediakan transfer yang reliable
dan transparan antara kedua titik akhir, layer ini juga menyediakan
multiplexing, kendali aliran dan pemeriksaan error serta memperbaikinya.
5. Session Layer
Layer Session, sesuai dengan namanya, sering disalah artikan sebagai
prosedur logon pada network dan berkaitan dengan keamanan. Layer
ini menyediakan layanan ke dua layer diatasnya, Melakukan koordinasi
komunikasi antara entiti layer yang diwakilinya. Beberapa protocol pada
layer ini: NETBIOS: suatu session interface dan protocol, dikembangkan
oleh IBM, yang menyediakan layanan ke layer presentation dan layer
application. NETBEUI, (NETBIOS Extended User Interface), suatu
pengembangan dari NETBIOS yang digunakan pada produk Microsoft
networking, seperti Windows NT dan LAN Manager. ADSP (AppleTalk Data
Stream Protocol). PAP (Printer Access Protocol), yang terdapat pada printer
Postscript untuk akses pada jaringan AppleTalk.
6. Presentation Layer
Layer presentation dari model OSI melakukan hanya suatu fungsi
tunggal: translasi dari berbagai tipe pada syntax sistem. Sebagai
contoh, suatu koneksi antara PC dan mainframe membutuhkan konversi
dari EBCDIC character-encoding format ke ASCII dan banyak faktor
yang perlu dipertimbangkan. Kompresi data (dan enkripsi yang mungkin)
ditangani oleh layer ini.
7. Application Layer
Layer ini adalah yang paling cerdas , gateway berada pada layer ini.
Gateway melakukan pekerjaan yang sama seperti sebuah router, tetapi
ada perbedaan diantara mereka. Layer Application adalah penghubung
utama antara aplikasi yang berjalan pada satu komputer dan resources
network yang membutuhkan akses padanya.
Gambar 5.3. Open Systems Interconnection (OSI) Reference Model

5.3. Network Protocol


Middleware dan aplikasi terdistribusi di implementasikan diatas protokol
network.Protocol diimplementasikan dalam beberapa lapisan (layer).

Gambar 5.4.
Network
Protocol

Midleware
merupakan
Sekumpulan
perangkat lunak
/ software aplikasi yang terdiri dari sekumpulan server yang memungkinkan
beberapa proses berjalan dalam satu computer atau lebih untuk saling bekerja
sama dan berinteraksi dalam suatu jaringan computer.
Tipe Midleware :
1. ORBS ( Object Request Brokers )
2. RPCS (Remote Protocol Control )
3. TPS ( Transaction Processing )
4. Moms ( Message Oriented Midleware )

Keterangan.
1. ORBS ( Object Request Brokers )
 Memungkinkan dari object – object yang merupakan bagian dari
suatu aplikasi lainnya dalam jaringan koputer yang beragam.
 Contoh : CORBA (Commont Object Request Broker )
RMI (Remote Machine Inovation )
2. RPCS (Remote Protocol Control )
 Memungkinkan logika dari aplikasi utk didistribusikan kedalam
suatu daringan computer dan dapat dieksekusi seperti mengeksekusi
aplikasi computer kedalam computer local.
5. TPS ( Transaction Processing )
 Untuk memonitoring pemberian pelayanan penghubung serta
mempermudah pembuatan aplikasi & memantau transaksi.
6. Moms ( Message Oriented Midleware )
 Pertukaran alat data dalam computer yang bias diimplementasikan
dalam berbagai aplikasi.

Layer protocol pada Internet


a. TCP dan UDP
TCP
TCP ( Transport Control Protocol) dan UDP (User Datagram Protocol)
adalah protokol transport yang berada di atas lapisan Internet Protocol (IP).
TCP adalah protocol yang handal, TCP dapat memastikan data yang
dikirimkan sampai ke tujuan begitu juga sebaliknya.
TCP menambahkan beberapa prosedur diatas layer internet protocol
untuk memastikan reliabilitas transport data :
• Sequencing
Pada setiap transmisi data (paket) diberi nomor urut. Sehingga pada
titik tujuan tidak ada segmen yang diterima sampai semua segmen
pada urutan bawah belum di terima.
• Flow Control
Pengirim tidak akan membanjiri penerima.Karena pengiriman
didasarkan pada periode acknowledgment yang di terima oleh pengirim
yang berasal dari penerima.
• Retrasnmission dan duplicate handling
Apabila segmen tidak mendapatkan acknowledge dari penerima
sampai waktu timeout yang ditentukan terlampaui maka pengirim akan
mengirim ulang. Berdasarkan nomor urut penerima data dapat
mendeteksi dan menolak kalau terjadi duplikasi.
• BuFering
Bufering digunakan untuk menyeimbangkan antara pengirim dan
penerima. Kalau bu¤er pada penerima penuh, maka segmen yang
dating akan putus, sehingga menyebabkan tidak ada acknowledge ke
pengirim dan pengirim akan melakukan transmot ulang.

• Checksum
Setiap segment membawa checksum. Apabila checksum segmen yang
di terima tidak sesuai maka paket data tersebut akan di drop (dan
kemudian akan di transmit ulang)

UDP
UDP tidak memberikan garansi seperti halnya yang di berikan oleh
TCP.
• UDP tidak memberikan garansi terhadap pengiriman data
Pada Internet Protocol paket data dapat drop karena suatu hal
contohnya jaringan yang rusak, UDP tidak mempunyai mekanisme
untuk menanggulangi hal tersebut.
• Kalau ingin menggunakan UDP sebagai protocol pengiriman yang
handal, maka mekanisme kehandalan yang diinginkan di lakukan pada
layer aplikasi.
b. Komunikasi Request – Reply
Komunikasi antara proses dan objek pada sistem terdistribusi dilakukan
melalui message passing.

Gambar 5.5. Komunikasi Request – Reply

Client melakukan :
1. Mengirim (request) pesan ke server
2. Menerima hasil (reply dari server)
Server melakukan :
1. Penerimaan pesan (request) dari client
2. Mengeksekusi permintaan dari client
3. Mengirim hasil (reply) ke client.

5.4. RPC dan RMI

Tujuan dari RPC dan RMI dibuat bagi programmer, agar computer yang
terdistribusi terlihat seperti computer yang terpusat. Dan berguna untuk melihat
sistem terdistribusi dari sisi pemrogramman.

Gambar 5.6.
RPC dan RMI
berada pada
Middleware
RMI (Remote
Method
Invocation)

Gambar
5.7. Ilustrasi

implementasi RMI

Komponen2 dalam RMI (dalam gambar):


•Object A (client) : meminta layanan
•Object B (server) : menghantarkan layanan
•Proxy for B
- Ketika object A mempunyai remote reference ke object B, maka
akan timbul objek Proxy B pada host object A. Proxy terbuat ketika
remote object reference digunakan pertama kali
- Proxy adalah perwakilan objek yang berada pada remote, dengan
kata lain ketika terjadi invokasi dari A ke B ditangani seolah-olah hanya
mengakses Proxy B.
- Ketika invokasi terjadi proxy menggunakan metode marshals untuk
membungkus pesan yang akan dikirim ke server. Dan setelahmenerima
hasil dari server proxy menggunakan metode unmarshal(membuka
bungkus) untuk kemudian diteruskan ke client (ObjectA)
•Skeleton for object B
- Pada sisi server, terdapat object kerangka (skeleton) yang
berhubungan ke class, kalau object pada class tersebut dapat diakses
oleh RMI.
- Skeleton menerima pesan kemudian melakukan unmarshal dan
meneruskan ke method object yang dituju. Dan kemudian menunggu
hasil dari object B dan kemudian membungkus hasil (unmarshal) dan
kemudian dikirimkan ke client (Objec A).
- Ada bagian dari skeleton B yang disebut dengan dispatcher.
dispatcher menerima request dari communication module, dan
kemudian mengidenti…kasi invokasi dan mengarahkan permintaan ke
corresponding method ( method pada skeleton yang berfungsi untuk
berkomunikasi dengan object).
•Communication Modul (Modul Komunikasi)
- Communication modul pada client atau server bertanggung jawab
dalam pertukaran pesan yang dilakukan melalui metode request dan
reply.
•Remote Reference Module
- Bagian ini bertugas untuk menterjemahkan antara referensi objek
lokal dan remote. Proses berkomunikasi antara mereka disimpan dalam
remote object table.

Langkah2 proses dengan RMI :


•Urutan pemanggilan pada object client mengaktifkan method pada proxy
yang akan berhubungan dengan invoked method (method yang ter-
invokasi) pada object B.
•Kemudian method yang ada pada proxy melakukan pembungkusan
argumen menjadi suatu pesan (marshalling) dan meneruskan ke modul
komunikasi.
•Berdasarkan pada remote reference yang didapat dari remote reference
modul,modul komunikasi memulai request dan reply protocol melalui
network.
•Modul komunikasi pada server menerima request dari client. Kemudian
berdasarkan referensi lokal yang diterima dari remote reference modul
maka akan mengaktifkan method untuk berkomunikasi dengan object pada
skeleton B (corresponding method).
•Method pada skeleton meng-ekstrak (unmarshalling) argumen pada pesan
yang di terima dan mengaktifkan corresponding method (method yang
berfungsi untuk melakukan komunikasi) pada object B (server).
•Setelah menerima hasil dari object B, method dari skeleton akan
membungkus hasil tersebut dalam sebuah pesan (marshalling) dan
meneruskan pesan yang sudah dibungkus ke modul komunikasi.
• Modul komunikasi mengrimkan pesan tersebut ke client melalui jaringan.
•Modul komunikasi pada client menerima hasil (reply) dari server dan
meneruskan ke corresponding method pada proxy.Kemudian proxy meng-
ektrak hasil (unmarshalling) dan meneruskan ke object A (client).

RPC (Remote Procedure Call)


Proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal Proxy dan
Skeleton, pada RPC dikenal dengan Stub (Client Stub dan Server Stub).

Gambar 5.8. Ilustrasi implementasi RPC

Remote Procedure Call (RPC) adalah sebuah metoda yang


memungkinkan kita untuk mengakses sebuah prosedur yang berada di
komputer lain. Untuk dapat melakukan ini sebuah komputer (server) harus
menyediakan layanan remote prosedur. Pendekatan yang dilakukan adalah,
sebuah server membuka socket, menunggu client yang meminta prosedur
yang disediakan oleh server.
RPC masih menggunakan cara primitive dalam pemrograman, yaitu
menggunakan paradigma procedural programming. Hal itu membuat kita
sulit ketika menyediakan banyak remote procedure.
RPC menggunakan soket untuk berkomunikasi dengan proses
lainnya. Pada sistem seperti SUN, RPC secara default sudah terinstall
kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi sistem.
Sehingga seorang administrator jaringan dapat mengakses sistemnya dan
mengelola sistemnya dari mana saja, selama sistemnya terhubung ke
jaringan.
Umumnya protokol RPC yang digunakan pada saat ini adalah DCOM
(Distributed Component Object Model). Saat ini ada alternatif protokol baru,
yakni SOAP (Simple Object Access Protocol), yang berdasarkan pada
teknologi XML.
Implementasi RPC
Sun Microsystems Open Network Computing (ONC) : RPC specification,
XDR
(eXternal Data Representation) standard, UDP atau TCP transport protocol.
Xerox Courier : RPC model, Data representation standard, XNS (Xerox
Network
Systems) SPP (Sequenced Packet Protocol) sbg transport protocol, Apollo
s Network Computing Architecture (NCA), RPC protocol, NDR (Network Data
Representation).
Kelebihan RPC
•Relatif mudah digunakan :
Pemanggilan remote procedure tidak jauh berbeda dibandingkan
pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi
pada software logic, tidak perlu memikirkan low level details seperti soket,
marshalling & unmarshalling.
•Robust (Sempurna):
Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan
mission-critical application yg memerlukan scalability, fault tolerance, &
reliability.

Kekurangan RPC
•Tidak fleksibel terhadap perubahan :
- Static relationship between client & server at run-time.
- Berdasarkan prosedural/structured programming yang sudah
ketinggalan jaman dibandingkan OOP.
•Kurangnya location transparency :
- Misalnya premrogram hanya boleh melakukan pass by value,
bukan pass by reference.
- Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).
- Komunikasi antara 1 klien & beberapa server memerlukan
beberapa koneksi yg terpisah.

Prinsip RPC dalam program client-server

Gambar 5.9. Prinsip RPC dalam Program Client – Server

Langkah-langkah dalam RPC


Gambar 5.10. Langkah – langkah dalam RPC

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

Contoh Implementasi RPC dengan SUN RPC


•Fungsi yg dipanggil client melalui RPC:
bin_date_1:
No arguments.
Result in long integer: waktu saat ini, dlm jumlah detik sejak 00:00:00 GMT,
January 1, 1970.
str_date_1
Mengkonversi hasil bin_date_1 menjadi readable ASCII sring.

•Berkas yg dibuat programmer:


Server procedure: date_proc.c
RPC specification file: date.x
Client main function: rdate.c
•date.x -> rpcgen ->
Server stub: date_svc.c
date.h
Client stub: date_clnt.c
•Generate executable client program:
cc o rdate rdate.c date_clnt.c lrpclib
•Generate executable server program:
cc o date_svc date_proc.c date_svc.c lrpclib

5.5. Object Remote


Pendekatan kedua yang akan kita bahas adalah Remote Method
Invocation (RMI), sebuah teknik pemanggilan method remote yang lebih secara
umum lebih baik daripada RPC. RMI menggunakan paradigma pemrograman
berorientasi obyek (OOP). Dengan RMI memungkinkan kita untuk mengirim
obyek sebagai parameter dari remote method. Dengan dibolehkannya program
java memanggil method pada remote obyek, RMI membuat pengguna dapat
mengembangkan aplikasi java yang terdistribusi pada jaringan
Untuk membuat remote method dapat diakses RMI
mengimplementasikan remote object menggukan stub dan skleton. Stub
bertindak sebagai proxy disisi client, yaitu yang menghubungkan client dengan
skleton yang berada disisi server. Stub yang ada disisi client bertanggung-
jawab untuk membungkus nama method yang akan diakses, dan
parameternya, hal ini biasa dikenal dengan marshalling. Stub mengirim paket
yang sudah dibungkus ini ke server dan akan di buka (unmarshalling) oleh
skleton. Skleton akan menerima hasil keluaran yang telah diproses oleh
method yang dituju, lalu akan kembali dibungkus (marshall) dan dikirim
kembali ke client yang akan diterima oleh stub dan kembali dibuka
paketnya (unmarshall).
Untuk membuat remote obyek kita harus mendefinisikan semua
method yang akan kita sediakan pada jaringan, setelah itu dapat
digunakan RMI compiler untuk membuat stub dan skleton. Setelah itu kita
harus mem-binding remote obyek yang kita sediakan kedalam sebuah RMI
registry. Setelah itu client dapat mengakses semua remote method yang telah
kita sediakan menggunkan stub yang telah dicompile menggunakan RMI
compiler terebut.

Akses ke Obyek Remote


Sekali obyek didaftarkan ke server, client dapat mengakses remote
object dengan menjalankan Naming.lookup() method. RMI menyediakan url
untuk pengaksesan ke remote obyek yaitu rmi://host/obyek, dimana host
adalah nama server tempat kita mendaftarkan remote obyek dan obyek
adalah parameter yang kita gunakan ketika kita memanggil method
Naming.rebind(). Client juga harus menginstall RMISecurityManager untuk
memastikan keamanan client ketika membuka soket ke jaringan.
Java memiliki sistem security yang baik sehingga user dapat lebih
nyaman dalam melakukan komunikasi pada jaringan. Selain itu java sudah
mendukung pemorograman berorientasi object, sehingga pengembangan
software berskala besar sangat dimungkinkan dilakukan oleh java. RMI
sendiri merupakan sistem terdistribusi yang dirancang oleh SUN pada
platfrom yang spesifik yaitu Java, apabila anda tertarik untuk mengembangkan
sistem terdistribusi yang lebih portable dapat digunakan CORBA
sebagai solusi alternatifnya.

B. Soal Latihan !
1. Mengapa komunikasi diperlukan ?
2. Sebutkan dan jelaskan lapisan layer ( Model OSI ) !
3. Apa yang dimaksud middleware? Sebutkan dan jelaskan tipe – tipe
middleware ?
4. Gambarkan dan jelaskan komunikasi Request - Reply ! Bagaimana client
dan server melakukan komunikasi ?
5. Apa yang dimaksud :
a. Remote Method Invocation
b. Remote Procedure Call
c. Transport Control Protocol
d. User Datagram Protocol

C. Tugas
Buatlah ringkasan atau resume tentang materi Komunikasi Sistem Terdistribusi
dengan ketentuan
1. Menggunakan kertas Folio Bergaris,
2. Penulisan harus rapi
3. Bila terjadi kesalahan penulisan minimalisir penggunaan tipe-x secara
berlebihan.
4. Ringkasan minimal 4 halaman, maksimal 5 halaman.

D. Referensi
1. Adang Suhendra, Kuliah Sistem Terdistribusi 1 & 2,
http://staffsite.gunadarma.ac.id/adang/index.php?stateid=files&xcat_id=0.6
2. Dharma Oetomo, Eddy Hartono, dkk, Konsep dan Aplikasi
Pemrograman Client Server dan Sistem Terdistribusi, Andy Offset,
Yogyakarta, 2006
3. Handayani Dwi Bekti, Diktat Kuliah Pengolahan Data Terdistribusi,
STMIK Sinar Nusantara, Surakarta, 2002.

Anda mungkin juga menyukai