BAB I
PENDAHULUAN
Komunikasi adalah suatu proses penyampaian informasi (pesan,
ide, gagasan) dari satu pihak kepada pihak lain. Pada umumnya, komunikasi
dilakukan secara lisan atau verbal yang dapat dimengerti oleh kedua belah
pihak. Dimana proses komunikasi dapat dilakukan kepada orang, kelompok,
organisasi dan masyarakat menciptakan, dan menggunakan informasi agar terhubung
dengan lingkungan dan orang lain. Komunikasi memiliki komponen-komponen yang
menjadikan komunikasi berjalan dengan baik, komponen tersebut yaitu:
- Pengirim atau komunikator (sender) adalah pihak yang mengirimkan pesan kepada pihak lain.
- Pesan (message) adalah isi atau maksud yang akan disampaikan oleh satu pihak kepada pihak lain.
- Saluran (channel) adalah media dimana pesan disampaikan kepada komunikan. dalam komunikasi antar-pribadi (tatap muka) saluran dapat berupa udara yang mengalirkan getaran nada/suara.
- Penerima atau komunikate (receiver) adalah pihak yang menerima pesan dari pihak lain
- Umpan balik (feedback) adalah tanggapan dari penerimaan pesan atas isi pesan yang disampaikannya.
Interproses komunikasi adalah
jantung dari semua sistem terdistribusi. Tidak masuk akal untuk
mempelajari sistem terdistribusi tanpa hati-hati dengan cara bahwa
proses pada mesin yang berbeda dapat saling bertukar informasi Komunikasi
dalam sistem terdistribusi selalu didasarkan pada pesan tingkat rendah yang
lewat seperti yang ditawarkan oleh jaringan yang mendasarinya. Sistem
terdistribusi modern biasanya terdiri dari ribuan atau bahkan jutaan proses
yang tersebar di seluruh jaringan internet.
Dalam pembahasan kali ini, kita
mulai dengan membahas aturan bahwa proses berkomunikasi harus ada yang dikenal
sebagai protokol, dan cocencrate. Pada penataan tersebut protokol dalam bentuk
lapisan. Dari tampilan diempat luas dan model yang digunakan untuk komunikasi
terbagi atas: prosedur panggilan jarak jauh (RMC), remote metode doa (RMI),
pesan middleware berorientasi (MOM) dan streams.
Model pertama untuk komunikasi dalam
sistem terdistribusi adalah panggilan prosedur remote (RPC). Sebuah RPC
bertujuan menyembunyikan sebagian besar seluk-beluk pesan lewat, dan sangat
ideal untuk aplikasi client-server. perbaikan untuk model RPC datang dalam
bentuk doa metode remote (RMIs), yang didasarkan pada gagasan obyek
terdistribusi. RPC dan RMIs dibahas dalam bagian terpisah.
Pesan-berorientasi middleware (MOM) adalah disebut juga sebagai suatu message-queuing
sistem, suatu kerangka pesan, atau sekedar messaging sistem. MOM
dapat membentuk suatu lapisan middleware yang penting untuk aplikasi perusahaan
melalui Internet. MOM dapat menerbitkan dan mendaftar model, suatu klien dapat
mendaftarkan sebagai penerbit atau seorang langganan dari pesan. Pesan
dikirimkan hanya untuk tujuan yang relevan dan hanya sekali, dengan berbagai
metoda komunikasi yang mencakup komunikasi one-to-many atau many-to-many.
Sumber data dan tujuan dapat decoupled di bawah model tersebut.
BAB II
PEMBAHASAN
Protokol merupakan sebuah rule,
prosedur dan pengaturan sejumlah operasi peralatan komunikasi data, dalam
komunikasi data, aturan-aturan meliputi cara membuka hubungan, mengirim paket
data, menginformasi jumlah data yang diterima, dan meneruskan pengiriman data.
Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi
dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi
perangkat keras.
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 waktu itu, komunikasi antar komputer dari vendor yang berbeda adalah
sangat sulit dilakukan, karena 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 layer-layer,
yaitu:
- Physical Layer
- Data Link
- Network
- Transport
- Session
- Presentation
Prinsip dalam membuat protokol ada
tiga hal yang harus dipertimbangkan, yaitu efektivitas, kehandalan, dan
Kemampuan dalam kondisi gagal di network. Protokol distandarisasi oleh beberapa
organisasi yaitu IETF, ETSI, ITU, dan ANSI. Tugas yang biasanya dilakukan oleh
sebuah protokol dalam sebuah jaringan diantaranya adalah :
- Melakukan deteksi adanya koneksi fisik atau ada tidaknya komputer / mesin lainnya.
- Melakukan metode “jabat-tangan” (handshaking).
- Negosiasi berbagai macam karakteristik hubungan.
- Bagaimana mengawali dan mengakhiri suatu pesan.
- Bagaimana format pesan yang digunakan.
- Yang harus dilakukan saat terjadi kerusakan pesan atau pesan yang tidak sempurna.
- Mendeteksi rugi-rugi pada hubungan jaringan dan langkah-langkah yang dilakukan selanjutnya.
- Mengakhiri suatu koneksi.
Dalam Model OSI terdapat 7 layer
dimana masing-masing layer mempunyai jenis protokol sesuai dengan
peruntukannya. Sebuah standar protokol yang dikenal sebagai OSI (Open System
Interconection) model dengan aisitrktur sebagai berikut. Arsitektur OSI dibuat
berlapis-lapis dengan fungsi yang berbeda pada setiap lapisannya. Lapisan yang
lebih tinggi menyembunyikan kerumitan dari operasi di lapisan yang lebih rendah
dan suatu lapisan hanya dapat di akses oleh lapisan yang ada di atasnya atau di
bawahnya.Hal tersebut di maksudkan untuk memberi kemudahankepada para pembuat
perangkat keras dan perangkat lunak komunikasi dalam mengembangkan berbagai
protokol yang berbeda sesuai kebutuhan. Namun tetap mereka harus mematuhi
standar yang telah di berikan OSI.
Lapisan layer protokol tersebut dapat di golongkan lebih
jauh menjadi:
- Low level Layers
- Transport Layers
- Higher Level Layer
a. Low level Layers
Yang termasuk Low layers adalah lapisan-lapisan sebagi
berikut:
- Physical Layer: Spesifikasi dan implementasi dari bit-bit dan proses transmisi dari pengirim ke penerima. Berfungsi untuk mendefinisikan media transmisi jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan (seperti halnya Ethernet atau Token Ring), topologi jaringan dan pengkabelan. Selain itu, level ini juga mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio.
- Data Link Layer: Bertanggung jawab mengurusi perubahan bit=bit data menjadi frame untuk mengatasi error dan penontrolan pengiriman frame. Befungsi untuk menentukan bagaimana bit-bit data dikelompokkan menjadi format yang disebut sebagai frame. Data link layer melakukan tugasnya dengan meletakkan pola bit khusus pada awal dan akhir dari setiap frame untuk menandai mereka, serta komputasi checksum dengan menjumlahkan semua byte dalam bingkai dengan cara tertentu.
Ketika frame tiba, penerima recomputes
checksum dari data dan membandingkan hasilnya dengan checksum mengikuti frame.
Jika setuju, frame dianggap benar dan diterima. Jika mereka tidak setuju,
penerima meminta pengirim untuk retrasmit itu. Frame ditugaskan nomor urut (di
header), sehingga semua orang dapat memberitahukan yang mana.
3.
Network Layer: Mengatur bagaimana
paket-paket di arahkan berdasarkan alamat logik. lapisan bertanggung jawab
untuk menerjemahkan alamat logis jaringan ke alamat fisik jaringan. Berfungsi
untuk mendefinisikan alamat-alamat IP, membuat header untuk paket-paket,
dan kemudian melakukan routing melalui internetworking dengan
menggunakan router dan switch layer. Lapisan ini juga member identitas alamat,
jalur perjalanan pengiriman data, dan mengatur masalah jaringan misalnya
pengiriman paket-paket data.
Saat ini, mungkin protokol jaringan
yang paling banyak digunakan adalah IP connectionless (Internet Protocol), yang
merupakan bagian dari protokol internet. Sebuah paket IP dapat dikirim tanpa
pengaturan apapun. Setiap paket IP diarahkan ke tujuan yang independen dari
semua orang lain. Tidak ada jalur internal dipilih dan diingat.
b. Transport Layers
Merupakan lapisan yang memberi
fasilitas komunikasi bagi kebanyakan sistem tersebar. Berfungsi untuk memecah
data ke dalam paket-paket data serta memberikan nomor urut ke paket-paket
tersebut sehingga dapat disusun kembali pada sisi tujuan setelah diterima.
Selain itu, pada level ini juga membuat sebuah tanda bahwa paket diterima
dengan sukses (acknowledgement), dan mentransmisikan ulang terhadap paket-paket
yang hilang di tengah jalan.
Pada lapisan ini terdapat dua macam protokol yang sering
digunakan, yaitu:
- Transport Control Protocol (TCP) adalah protocol yang connection-oriented, yang berarti komunikasi yang melewatinya membutuhkan handshaking untuk mengatur koneksi end-to-end. Koneksi dapat dibuat dari client ke server, dan kemudian banyak data dapat dikirimkan melalui konesi itu. TCP memiliki karakteristik sebagai berikut:
a.
Connection-oriented merupakan sistem
yang akan berkomunikasi harus terlebih dulu saling mengetahui dan sepakat
- Reliable, tersedia mekanisme menjamin paket yang rusak atau hilang dikirim ulang
- Stream –oriented communication
- Membutuhkan sumberdaya komputasi dan jaringan lebih dari UDP
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 akanmembanjiri
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 bufer 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)
2.
User Datagram Protocol (UDP) adalah
protocol connectionless message-based yang lebih sederhana. Di protocol
connectionless, tidak ada usaha yang dibuat untuk koneksi end-to-end. Koumikasi
dicapai dengan mengirimkan informasi satu arah, dari source ke destination
tanpa mengecek untuk melihat apakah tujuan masih ada, atau apakah koneksi
disiapkan untuk menerima informasi. Paket UDP melewati jaringan dalam unit-unit
yang berdiri sendiri. UDP memiliki karakteristik sebagai berikut:
·
Connectionless, tidak memerlukan
adanya saling mengetahui dan kesepakatan
·
Unreliable datagram communication,
tidak tersedianya mekanisme yang menjamin paket rusak atau dikirim ulang.
Manfaat TCP dibandingkan dengan UDP
adalah bahwa ia bekerja andal melalui jaringan apapun. Kelemahan yang jelas
adalah bahwa TCP memperkenalkan overhead yang jauh lebih, terutama dibandingkan
dengan kasus-kasus di mana jaringan yang mendasarinya sangat handal, seperti
dalam sistem area lokal. Ketika kinerja dan kehandalan yang dipertaruhkan,
solusi alternatif selalu untuk menggunakan UDP, dan mengkombinasikannya dengan
kesalahan tambahan dan kontrol aliran yang dioptimalkan untuk aplikasi
tertentu. Kelemahan dari pendekatan ini adalah bahwa pekerjaan pembangunan
banyak ekstra perlu dilakukan, tetapi juga bahwa solusi proprietary diperkenalkan,
yang mempengaruhi keterbukaan sistem.
c.
Higher Level Layer
Di atas lapisan transport. OSI
membedakan tiga lapisan tambahan. Dalam prakteknya, hanya lapisan aplikasi yang
pernah digunakan. Bahkan, di suite internet protocol, segala sesuatu di atas
lapisan transport dikelompokkan bersama-sama. Dalam menghadapi sistem
middleware, akan kita lihat dalam bagian ini bahwa baik OSI maupun pendekatan
internet benar-benar tepat. Dalam Higher Level Layer ini terbagi menjadi tiga
lapisan tambahan yaitu:
1.
Sesi dan Presentasi Protokol
Lapisan sesi dasarnya merupakan
versi yang disempurnakan dari lapisan transport. Menyediakan kontrol dialog,
untuk melacak pihak mana saat berbicara, dan menyediakan fasilitas
sinkronisasi. Sehingga jika terjadi kecelakaan, yang terakhir ini berguna untuk
memungkinkan pengguna memasukkan pos-pos pemeriksaan dalam transfer yang
panjang. Hal ini diperlukan untuk kembali hanya untuk pos pemeriksaan terakhir,
daripada semua jalan kembali ke awal. Dalam prakteknya, beberapa aplikasi
tertarik dalam lapisan sesi dan jarang didukung. Hal ini tidak hadir dalam
acara suite protokol Internet.
Berbeda dengan lapisan bawah, yang
prihatin dengan mendapatkan bit dari pengirim ke penerima andal dan efisien,
lapisan presentasi berkaitan dengan arti dari bit. Pesan yang paling tidak
terdiri dari string bit acak, tetapi informasi lebih terstruktur seperti nama
orang, alamat, jumlah uang, dan sebagainya. Pada lapisan presentasi adalah
mungkin untuk menentukan catatan yang berisi bidang-bidang seperti ini dan
kemudian memiliki Sener memberitahukan penerima bahwa pesan berisi catatan
tertentu dalam format tertentu. Hal ini memudahkan untuk mesin dengan
representasi internal yang berbeda untuk berkomunikasi.
- Protocol Application
Menyediakan layanan untuk aplikasi
misalnya transfer file, email, akses suatu komputer atau layanan. Lapisan
aplikasi OSI awalnya dimaksudkan untuk menampung koleksi aplikasi jaringan
standar seperti untuk surat elektronik, transfer file, dan emulasi terminal.
Sampai saat ini telah menjadi wadah untuk semua aplikasi dan protokol yang
dalam satu cara atau yang lain tidak masuk ke dalam salah satu lapisan yang
mendasarinya. Dari perspektif model referensi OSI, hampir semua sistem
terdistribusi hanya aplikasi.
Ada juga banyak tujuan umum protokol
yang berguna untuk banyak aplikasi, tetapi yang tidak dapat dikualifikasikan
sebagai protokol transport. Dalam banyak kasus, protokol seperti jatuh ke dalam
kategori protokol middleware, yang akan kita bahas selanjutnya.
2.
Middleware Protocol
Middleware adalah sebuah aplikasi
yang logis tinggal di lapisan aplikasi, tetapi yang mengandung banyak tujuan
umum protokol yang menjamin lapisan mereka sendiri, independen lainnya,
aplikasi yang lebih spesifik. Perbedaan dapat dibuat antara tingkat tinggi
protokol komunikasi dan protokol untuk membangun layanan middleware berbagai.
Dibuat untuk menyediakan layanan
layanan protokol yang seragam dan dapat digunakan oleh aplikasi-aplikasi yang
berbeda-beda. Pada lapisan ini terdapat sekumpulan protokol komunikasi yang
beragam yang memungkinkan berbagai macam aplikasi dapat berkomunikasi.
Middleware juga memberi fasilitas marshalling dimana terdapat proses pengubahan
data dalam komunikasi antar proses menjadi bentuk yang siap dikirim melalui
jaringan sehingga dapat tetap konsisten sampai di si penerima data dan
kebalikannya.
Middleware komunikasi protokol
mendukung tingkat tinggi layanan komunikasi. Misalnya, di bagian dua berikutnya
kita akan membahas protokol yang memungkinkan proses untuk memanggil prosedur
atau invok obyek pada mesin remote dengan cara yang sangat transparan. Demikian
juga, ada layanan komunikasi tingkat tinggi untuk menetapkan dan sinkronisasi
aliran untuk mentransfer data real-time, seperti yang diperlukan untuk aplikasi
multimedia. Sebagai contoh terakhir, beberapa sistem middleware menawarkan
layanan multicast handal yang skala untuk ribuan penerima tersebar di wide area
network.
Beberapa protokol komunikasi
middleware yang sama bisa juga termasuk dalam lapisan transport, tapi mungkin
ada alasan spesifik untuk menjaga mereka pada tingkat yang lebih tinggi.
Misalnya, multicasting layanan yang handal Taht skalabilitas jaminan dapat
diimplementasikan hanya jika persyaratan aplikasi diperhitungkan. Akibatnya,
sistem middleware mungkin menawarkan yang berbeda (merdu) protokol,
masing-masing pada gilirannya diimplementasikan dengan menggunakan protokol
transport yang berbeda, tapi mungkin menawarkan antarmuka tunggal.
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.
Object-oriented
Middleware
·
Common Object Request Broker
Architecture (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.
·
Component Object Model (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.
·
Distributed Component Object Model
(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.
Komunikasi
Request dan Reply
Komunikasi antara proses dan objek dalam system
terdistribusi dilakukan melalui massage passing.
Client melakukan :
1.
Mengirim (request) pesan ke server
2.
Menerima hasil (reply dari server)
Server melakukan
1.
Peneriamaan pesan (request) dari
client
2.
Mengeksekusi permintaan dari client
3.
Mengirim hasil (reply) ke client
Remote Procedure Call (RPC)
I.1. Definisi RPC
Remote Procedure Call (RPC) adalah
sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang
berada di komputer lain. Untuk dapat melakukan ini sebuah server harus
menyediakan layanan remote procedure. Pendekatan yang dilakuan adalah sebuah
server membuka socket, lalu menunggu client yang meminta prosedur yang
disediakan oleh server. Bila client tidak tahu harus menghubungi port yang
mana, client bisa me- request kepada sebuah matchmaker pada sebuah RPC port
yang tetap. Matchmaker akan memberikan port apa yang digunakan oleh prosedur
yang diminta client.
RPC masih menggunakan cara primitif
dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu
membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan
socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC
secara default sudah ter- install kedalam sistemnya.
I.2.
Implementasi RPC
Untuk 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 Ilustrasi Implementasi RPC
Remote Reference Modul dan
Communication Modul berada pada tatanan sistem operasi.
Contoh implementasi adalah 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).
I.3.
Cara Kerja RPC
Tiap
prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan
server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu
balasan dari server dan melakukan proses kemudian selesai. Proses di atas
disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server
adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur
tertentu.
Diagram diatas memberikan gambaran
mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang
akan menjelaskan secara rinci mengenai proses yang terjadipada klien dan server
dalam eksekusi suatu prosedur RPC :
penjelasan dari diagram diatas :
1. Klien memanggil prosedur stub
lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan
dikirim ke jaringan. Proses ini disebut sebagai marshalling.
2. Fungsi Network pada O/S
(Operating system – Sistem Operasi) akan dipanggil oleh stub untuk mengirim
suatu message.
3. Kemudian Kernel ini akan mengirim
message ke sistem remote. Kondisi ini dapat berupa connectionless atau
connection-oriented.
4. Stub pada sisi server akan
melakukan proses unmarshals pada paket yang dikirim pada network.
5. Stub pada server kemudian
mengeksekusi prosedur panggilan lokal.
6. Jika eksekusi prosedur ini telah
selesai, maka eksekusi diberikan kembali ke stub pada server.
7. Stub server akan melakukan proses
marshals lagi dan mengirimkan message nilai balikan ( hasilnya ) kembali ke
jaringan.
8. Message ini akan dikirim kembali
ke klien.
9. Stub klien akan membaca message
ini dengan menggunakan fungsi pada jaringan.
10. Proses unmarshalled kemudian
dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian
diproses pada proses lokal.
Proses diatas akan dilakukan
berulang-ulang ( rekursif ) dalam pengeksekusian RPC dalam suatu remote sistem.
Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah
menggunakan putty untuk melakukan SSH.
I.4.
Kelebihan dan Kekurangan pada RPC
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 dan unmarshalling.
- Robust (Sempurna)
- Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yang memerlukan scalability, fault tolerance, dan reliability.
Kelemahan RPC
- Tidak fleksibel terhadap perubahan
- Static relationship between client & server at run-time.
- Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan Object Oriented Proggraming
- 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 yang terpisah.
REMOTE METHOD INVOCATION (RMI)
II.1.
Definisi RMI
RMI adalah perluasan dari local
method invocation yang memungkinkan sebuah objek yang hidup dalam satu proses
untuk memohon method objek yang berada di proses lain. (George Coulouris hal
166).
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.
Aplikasi RMI seringkali terdiri dari
dua program terpisah yaitu server dan client. Aplikasi server semacam ini biasanya
membuat beberapa objek remote, menyediakan referensi terhadap objek-objek
tersebut sehingga dapat diakses, serta menunggu client memanggil method dari
objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke
satu atau lebih objek remote di server dan menjalankan method dari objek
tersebut.
RMI menyediakan mekanisme dimana
server dan client berkomunikasi dan memberikan informasi secara timbal balik.
Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi.
II.2.
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
II.3.
Implementasi RMI
Remote Modul Reference Remot
referensi modul bertanggung jawab untuk menerjemahkan antara local dan
referensi remote objek dan untuk menciptakan referensi remot objek. Untuk
mendukung tugasnya ini, referensi modul remote dalam setiap proses memiliki
tabel remote objek yang mencatat korespondensi antara objek lokal referensi
dalam proses dan referensi remote objek (dimana system-wide) (George Coulouris
dkk, hal 176)
Tindakan remote referensi modul
adalah sebagai berikut:
Ketika remote objek untuk diteruskan
sebagai argumen atau hasil untuk pertama kalinya, modul referensi remot modul
diminta untuk membuat referensi objek remote, yang menambahkan tabel.
Ketika referensi objek remote tiba
dalam permintaan atau membalas pesan, remote modul referensi diminta untuk
menyesuaikan referensi obyek lokal, yang mungkin mengacu baik pada proxy atau
ke objek remot. Dalam hal objek remote referensi tidak ada dalam tabel, menciptakan
perangkat lunak RMI proxy baru dan meminta remote referensi modul untuk
menambahkannya ke tabel.
Software RMI ini terdiri dari suatu
lapisan perangkat lunak antara application level objek dan komunikasi dan
reeferensi remot modul. Peran middleware objek adalah sebagai berikut:
- Proxy: Peran proxy adalah untuk membuat permohonan metoderemot transparan untuk klien dengan bertingkah seperti objek lokal ke invoker, tetapi selain melaksanakan suatu permintaan ini akan diteruskan sebuah pesan ke objek remote. Itu menyembunyikan rincian remot objek referensi, yang menyusun argumen, menguraikan hasil dan pengiriman dan penerimaan pesan dari klien.
- Operator/Dispatcher : Sebuah server memiliki satu operator dan kerangka untuk masing-masing mewakili kelas remote objek. Dalam contoh kita, server memiliki operator dan kerangka untuk kelas remot objek B. operator menerima pesan permintaan dari modul komunikasi. Ia menggunakan methodId untuk memilih metode yang tepat dalam kerangka kemudian menyampaikan pesan permintaan. Operator dan proxy menggunakan sama alokasi methodld terhadap metode antarmuka remote.
- Skeleton: Kelas jauh objek memiliki kerangka, yang mengimplementasikan metode dalam antarmuka remote. Mereka dilaksanakan cukup berbeda dari metode-metode di objek remote. Sebuah metode menguraikan kerangka argumen dalam pesan permintaan dan memanggil metode yang sesuai dalam objek remote.
Contoh implementasi dari RMI di antaranya
:
Perusahaan programming Avitek yang
berlokasi di Amerika Serikat, membuat program sistem accounting untuk intranet
yang memungkinkan klien untuk meng-update dan mengubah data dengan mudah.
Tujuan dari proyek ini adalah untuk membuat dan mendukung pembuatan dari bukti
nyata untuk konsep penggunaan Java yang dikombinasikan dengan database.
Perusahaan CEAS Consulting yang
menyediakan jasa custom re-engineering dan otomasi proses untuk
perusahaan-perusahaan manufakturing dan teknik, telah membuat program sistem
terdistribusi untuk klien mereka. Gambaran program mereka adalah seperti
berikut :
II.4.
Cara Kerja RMI
Dalam model ini, sebuah proses
memanggil method dari objek yang terletak pada suatu host/computer remote.
Dalam paradigma ini, penyedia layanan mendaftarkan dirinya dengan server
direktori pada jaringan. Proses yang menginginkan suatu layanan mengontak
server direktori saat runtime, jika layanan tersedia, maka referensi ke layanan
akan diberikan. Dengan menggunakan referensi ini, proses dapat berinteraksi
dengan layanan tsb. Paradigma ini ekstensi penting dari paradigma RPC.
Perbedaannya adalah objek yang memberikan layanan didaftarkan (diregister) ke
suatu layanan direktori global, sehingga memungkinkan untuk ditemukan dan
diakses oleh aplikasi yang meminta layanan tersebut.
Contoh aplikasi untuk meremote pada
teknik RMI (Remote Method Invocation) menggunakan teamviewer untuk meremote
computer lain.
Teamviewer adalah suatu program yang
cukup sederhana dan sangat mudah digunakan untuk beberapa keperluan terutama
melakukan akses PC secara remote melalui internet.
II.5.
Cara Meremote RMI
Tampilan utama TeamViewer, jika
sudah tampil (Ready to connect (secure connection)) maka sudah siap melakukan
koneksi ke PC lain, kemudian masukan ID PC klien jika koneksi berhasil maka
akan muncul kotak “Password”, isi password teamviewer PC yang akan anda remote.
Jika berhasil maka akan tampil desktop PC yang diremote tersebut. Jika ingin
melakukan File Transfer, maka pilih “File Transfer” pada bagian pilihan yang
terlihat dibawah kotak ID, kemudian klik “Connect to partner”.
Jika ingin menggunakan password dan
ID yang tetap maka cukup tempatkan kursor mouse pada bagian kotak password,
maka akan tampil seperti gambar diatas, pilih “Set user definied password”
kemudian masukan password yang anda inginkan. Hasilnya Setelah kita melakukan
setting pada teamviewer dan setelah login dan memasukkan password tujuan dengan
benar maka kita bisa mengakses computer yang kita remote secara penuh.
II.6.
Keuntungan dan Kekurangan RMI
Keuntngan RMI
·
Salahsatu keuntungan RMI adalah kemampuan untuk download
zytecodes (code) dari suatu object’s class, jika class tsb tidak terdefinisikan
di VM-nya penerima.
·
Type-type dan metode-metode object (class), yang terletak
dalam satu VM, dapat dikirim ke VM yang lain, yang mungkin saja remote.
·
Sifat-sifat object yang terkirim ini tidak berubah sama
sekali
Kelemahan RMI:
proses pembukaan socket yang
kadang-kadang tidak dapat diimplementasikan lewat jaringan internet, tapi hal
ini bisa diatasi dengan menggunakan Spring HttpInvoker, sama persis dengan RMI
tapi lewat protokol HTTP.
BAB III
PENUTUP
Komunikasi adalah suatu proses
penyampaian informasi (pesan, ide, gagasan) dari satu pihak kepada pihak lain.
Pada umumnya, komunikasi dilakukan secara lisan atau verbal yang dapat
dimengerti oleh kedua belah pihak. Dimana proses komunikasi dapat dilakukan
kepada orang, kelompok, organisasi dan masyarakat menciptakan, dan menggunakan
informasi agar terhubung dengan lingkungan dan orang lain.
Protokol merupakan sebuah rule,
prosedur dan pengaturan sejumlah operasi peralatan komunikasi data, dalam
komunikasi data, aturan-aturan meliputi cara membuka hubungan, mengirim paket
data, menginformasi jumlah data yang diterima, dan meneruskan pengiriman data.
Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi
dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi
perangkat keras. 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.
Lapisan layer protokol tersebut dapat di golongkan lebih
jauh menjadi:
- Low level Layers
- Transport Layers
- Higher Level Layer
Transport
Control Protocol (TCP) adalah protocol yang connection-oriented, yang berarti
komunikasi yang melewatinya membutuhkan handshaking untuk mengatur koneksi
end-to-end.
User
Datagram Protocol (UDP) adalah protocol connectionless message-based yang lebih
sederhana. Di protocol connectionless, tidak ada usaha yang dibuat untuk
koneksi end-to-end.
Protocol
Application enyediakan layanan untuk aplikasi misalnya transfer file, email,
akses suatu komputer atau layanan. Lapisan aplikasi OSI awalnya dimaksudkan
untuk menampung koleksi aplikasi jaringan standar seperti untuk surat
elektronik, transfer file, dan emulasi terminal. Sampai saat ini telah menjadi
wadah untuk semua aplikasi dan protokol yang dalam satu cara atau yang lain
tidak masuk ke dalam salah satu lapisan yang mendasarinya. Dari perspektif
model referensi OSI, hampir semua sistem terdistribusi hanya aplikasi.
Middleware adalah sebuah aplikasi
yang logis tinggal di lapisan aplikasi, tetapi yang mengandung banyak tujuan
umum protokol yang menjamin lapisan mereka sendiri, independen lainnya,
aplikasi yang lebih spesifik. Perbedaan dapat dibuat antara tingkat tinggi
protokol komunikasi dan protokol untuk membangun layanan middleware berbagai.
Remote
Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk
mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan
ini sebuah server harus menyediakan layanan remote procedure.
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.
DAFTAR
PUSTAKA
Rahmat. 2013. ”Komunikasi dalam system terdistribusi”
http://penuhrahmatt.mdl2.com. Diunduh 6 Mei 2015.
Damara. 2013. “Konsep objek terdistribusi dan objek interface”.
Damara. 2013. “Konsep objek terdistribusi dan objek interface”.
http://damaraaaa.wordpress.com.
Di unduh 7 Mei 2015.
Mbahsecond.2013.”
pengertian dan cara kerja RPC dan RMI”
http://mbahsecond.blogspot.com.
Diunduh 9 Mei 2015.