Protokol
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.
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.
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.
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.
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
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.
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.
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.
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.
Network Protocol
Middleware dan aplikasi terdistribusi di implementasikan
diatas protokol network.
Protocol diimplementasikan dalam beberapa lapisan (layer).
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.
Buffering
Digunakan untuk menyeimbangkan antara pengirim dan
penerima. Kalau bu¤er pada penerima penuh, maka segmen yang datang 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, makamekanisme kehandalan yang diinginkan di lakukan
pada layer aplikasi.
Komunikasi Request – Reply
Komunikasi antara proses dan objek pada sistem
terdistribusi dilakukan melalui message passing.
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.
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.
RPC dan RMI berada pada Middleware
RMI (Remote Method Invocation)
Berikut ilustrasi yang terjadi pada metode RMI :
Programmer pada client menulis :
server_id.service(values_to_server,result_arguments);
———————————————————————-
Pada sisi server mempunyai fungsi sebagai berikut :
public service(in type1 arg from client; out type2 arg
to_client)
{————};
Programmer pada client tidak mengetahui bahwa reply message
yang didapatkan berasal dari server yang dikirim melalui jaringan.
Komponen-komponen dalam RMI (gambar diatas):
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
hostobject 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 setelah menerima hasil dari server proxy
menggunakan metode unmarshal (membuka
bungkus) untuk kemudian diteruskan ke client (Object A)
Skeleton for object B
- Pada sisi server, terdapat object kerangka (skeleton)
yang berhubungan ke class, kalau object pada class
tersebut dapat diakses oleh
RMI.
– Skeletonmenerima pesan kemudianmelakukan unmarshal
danmeneruskan ke method object yang dituju.
Dan kemudianmenunggu 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 mengidentifikasi
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. Yang mengenerate class untuk proxy dan skeleton adalah
middleware. contoh : CORBA, Java RMI
Object A dan object B dipunyai oleh aplikasi (berada pada
Application Layer) Remote Reference Modul dan Communication modul dimiliki oleh
middleware. Proxy B dan Sekeleton B berada antara middleware dan aplikasi yang
di generate oleh middleware. 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 servermenerima 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 skeletonmeng-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 dalamsebuah pesan (marshalling)
danmeneruskan pesan yang sudah dibungkus ke modul komunikasi.
Modul komunikasimengrimkan pesan tersebut ke
clientmelalui 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).
Contoh RMI dengan menggunakan Java RMI :
Server object akan mencetak “Hello Ruddy” ke layar &
mengembalikan
pesan ke klien
Pada sisi server :
Server Method
import java.rmi.*;
public interface SimpleInterface extends Remote {
String printMessage(String name) throws RemoteException;
}
Server Object
import java.rmi.*;
import java.rmi.server.*;
public class SimpleServer extends UnicastRemoteObject
implements SimpleInterfac
public SimpleServer() throws RemoteException { super(); }
public String printMessage(String name) throws
RemoteException {
System.out.println(name);
return(Hello + name);
}
public static void main(String args[]) {
System.setSecurityManager(new RMISecurityManager());
try {
SimpleServer newServer = new SimpleServer();
System.out.println(SimpleServer attempting to
bind to the registry);
Naming.rebind(//ruddy.info:30010/SimpleServer,
newServer);
System.out.println(SimpleServer bound in the registry);
} catch(Exception e) {
System.out.println(SimpleServer error: + e.getMessage());
e.printStackTrace();
}}
}
Pada sisi client :
import java.rmi.*;
public class SimpleClient {
private static SImpleInterface server = null;
public static void main(String args[]) {
try {
server = (SimpleInterface)
Naming.lookup(//ruddy.info:30010/SimpleServer);
System.out.println(server.printMessage(Ruddy));
} catch(Exception e) {
System.out.println(SimpleClient error: + e.getMessage());
e.printStackTrace();
}}
}
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).
Remote Reference Module dan Communication Module berada
pada tatanan sistem operasi.
Konsep Objek
Terdistribusi dan Object Interface
Meskipun teknologi RPC ini relatif sudah memberikan
kenyamanan bagi developer namun seiring dengan perkembangannya, sistem ini
dinilai tidak efisien lagi. Dalam membuat aplikasi client server,
programmer masih harus membuat fungsi-fungsi yang sama untuk aplikasi yang
berbeda. Kadang kala kode program yang sama digunakan dengan melakukan copy
paste dan melakukan sedikit perubahan untuk menyesuaikan dengan aplikasi yang
baru dibuat. Jika ada perubahan, fungsi tersebut dalam masing-masing aplikasi
harus di update satu persatu lagi. Hal ini mengakibatkan perawatan program
menjadi susah dan fungsi-fungsi tersebut dapat menjadi tidak konsisten satu
sama lain.
CORBA
Common Object Request Broker Architecture (CORBA) merupakan
standar yang dikeluarkan oleh Object Management Group (OMG). Spesifikasi CORBA
ini berisi sebuah spesifikasi infrastruktur yang disebut Object Request
Broker (ORB) yang memungkinkan aplikasi klien untuk dapat berkomunikasi dengan
obyek secara remote. Spesifikasi ini meliputi antarmuka program, protokol
komunikasi dan model obyek atau layanan yang memungkinkan aplikasi yang ditulis
dengan berbagai macam bahasa pemrograman.
CORBA membungkus kode program yang dibuat dengan bahasa
pemrograman tertentu menjadi sebuah obyek yang ditambah dengan informasi
mengenai kemampuan kode program dan cara mengaksesnya. Obyek tersebut dapat
dipanggil oleh program lain melalui jaringan. CORBA menggunakan interface
definition languange (IDL) untuk menunjukkan interface atau antarmuka yang
dapat digunakan oleh program atau obyek lain. Dari IDL tersebut CORBA akan
memetakannya ke implementasi yang lebih spesifik dari masing-masing bahasa
pemrograman.
COM
Component Object Model (COM) adalah teknologi yang
diciptakan oleh Microsoft untuk memungkinkan komunikasi antaraplikasi.
Teknologi ini sudah disediakan untuk beberapa platform tetapi kebanyakan
digunakan untuk platform Windows. Teknologi ini sudah diperkenalkan oleh
microsoft pada tahun 1993 tetapi baru populer pada tahun 1997. Perkembangan
teknologi COM ini bermula dari teknologi OLE (Object Linking and Embedding)
yang dibuat untuk memungkinkan aplikasi dapat saling bertukar data.
DCOM
Pada tahun 1996 diperkenalkan Distributed Component Object
Model (DCOM) sebagai jawaban Microsoft atas CORBA. DCOM dibandingkan dengan COM
memiliki kelebihan mampu untuk terdistribusi dan berkomunikasi
antarkomponen melalui jaringan. DCOM dan CORBA saling berkompetisi untuk
menjadi standar dalam distribusi komponen melalui internet. Namun dibalik
kesulitan dalam hal keamanan, sebuah browser yang berjalan menggunakan
teknologi http sudah dapat menggantikan teknologi tsb.
RMI
Remote Method Invocation (RMI) adalah sebuah teknik
pemanggilan method remote yang lebih secara umum lebih baik daripada RPC. RMI
menggunakan paradigma pemrograman berorientasi obyek (Object Oriented
Programming). 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.
RMI menyediakan mekanisme dimana server dan client
berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam
ini seringkali disebut aplikasi objek terdistribusi
Langkah-Langkah Pembuatan
Program dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server
disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi
interface, seorang pemrogram dapat memberitahukan method apa yang dapat
dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan
dikirim sebagai tanggapan.
Definisi yang ada pada remote interface menentukan
karakteristik methods yang disediakan server yang dapat dilihat oleh client.
Client programmer harus dapat mengetahui methods apa yang disediakan server dan
bagaimana memanggilnya langsung dengan melihat ke remote interface. Client
mendapatkan referensi ke remote object melalui RMI registry.
Membangun suatu aplikasi terdistribusi menggunakan RMI
meliputi 6 langkah. Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan
remote interface
4. Mengkompilasi source files dan mem-buat stub and
skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client
Tidak ada komentar:
Posting Komentar