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.
1.
Protocol Layer
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.
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.
- 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:
- 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
- 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.
Apa yang membuat TCP begitu menarik dalam banyak kasus,
adalah bahwa hal itu tidak disesuaikan untuk mendukung jawaban perilaku
permintaan sinkron interaksi klien yang paling server. Dalam keadaan normal,
ketika pesan tidak tersesat, menggunakan TCP untuk interaksi client server
hasil seperti yang ditunjukkan pada gambar 2-4 (a). Pertama, klien memulai
setup sambungan, yang dilakukan dengan menggunakan tiga cara protokol jabat
tangan, ditampilkan sebagai tiga pesan pertama di gambar 2-4 (a). Protokol ini diperlukan
untuk kedua belah pihak untuk mencapai kesepakatan pada urutan penomoran untuk
paket yang akan dikirim melalui sambungan. Ketika koneksi telah dibentuk,
client mengirimkan permintaannya (pesan 4), langsung diikuti oleh paket
memberitahu server untuk menutup koneksi (pesan 5).
Gambar
2-4 (a) Pengoperasian normal TCP. (B) Transaksional TCP
Server merespon dengan segera mengakui bahwa ia menerima
permintaan klien, piggybacked dengan pengakuan bahwa koneksi akan clossed bawah
(pesan 6). Server kemudian melakukan pekerjaan yang diminta dan mengirimkan
jawaban kepada klien (pesan 7), diikuti dengan permintaan untuk melepaskan
koneksi juga (pesan 8). Klien hanya perlu merespon dengan pengakuan untuk
menyelesaikan komunikasi dengan server (pesan 9).
Jelas, banyak overhead dalam TCP berasal dari benar-benar
mengelola koneksi. Ketika TCP digunakan untuk interaksi client server, itu jauh
lebih murah untuk menggabungkan pengaturan koneksi dengan segera mengirimkan
permintaan, dan seperti bijaksana untuk menggabungkan mengirimkan jawaban
dengan menutup koneksi. Protokol yang dihasilkan disebut TCP untuk Transaksi,
disingkat T / TCP, dan esensi dari bagaimana ia beroperasi di bawah kondisi
normal ditunjukkan pada gambar 2-4 (b).
Apa yang terjadi dalam keadaan normal, adalah bahwa klien
mengirimkan pesan tunggal (ditampilkan sebagai pesan 1) yang berisi tiga
potongan informasi: permintaan untuk mengatur koneksi, permintaan layanan yang
sebenarnya, dan permintaan memberitahu server yang segera bisa merobek turun
koneksi sesudahnya.
Server merespon setelah ia dilayani permintaan yang
sebenarnya, sehingga dapat mengirim jawaban bersama dengan data yang diperlukan
untuk menerima koneksi, dan segera meminta rilis, ditampilkan sebagai pesan
pada Gambar 2. 2-4 (b). Sekali lagi, klien hanya perlu mengakui rilis final
dari koneksi (pesan 3).
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:
- 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.
- 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.
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.
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
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
Sumber:
http://penuhrahmatt.mdl2.com/mod/book/view.php?id=4&chapterid=2
http://damaraaaa.wordpress.com/2013/03/19/konsep-objek-terdistribusi-dan-object-interface/
http://penuhrahmatt.mdl2.com/mod/book/view.php?id=4&chapterid=2
http://damaraaaa.wordpress.com/2013/03/19/konsep-objek-terdistribusi-dan-object-interface/
No comments :
Post a Comment