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:
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.
2. 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.
3. 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.
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
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://sonsums.blogspot.com/2015/04/komunikasi-dalam-sistem-terdistribusi.html
Tidak ada komentar:
Posting Komentar