Communication pada Sistem Terdistribusi

Interprocess communication atau komunikasi antar proses adalah inti dari sistem terdistribusi dan komunikasi antar proses-proses pada sistem sistem komputer yang berbeda dapat terjadi jika sistem-sistem tersebut terhubung dalam suatu jaringan. Komunikasi antar komputer diatur oleh aturan yang disebut protokol komunikasi. Beragamnya pembuat perangkat keras dan aplikasi komunikasi menghasilkan produk-produk yang tidak saling kompatibel sehingga mempersulit upaya komunikasi.

Dasar-dasar Komunikasi Jaringan

Layered Protocols

Interprocess communication atau komunikasi antarproses adalah inti dari sistem terdistribusi dan komunikasi antar proses-proses pada sistemsistem komputer yang berbeda dapat terjadi jika sistem sistem tersebut terhubung dalam suatu jaringan. Komunikasi antar komputer diatur oleh
aturan yang disebut protokol komunikasi. Beragamnya pembuat perangkat keras dan aplikasi komunikasi menghasilkan produk-produk yang tidak saling kompatibel sehingga mempersulit upaya komunikasi. Sebuah standar protokol kemudian dibuat oleh ISO (International Standard Organization) untuk mengatasi hal tersebut. Standar tersebut dikenal sebagai OSI (Open System Interconnection) model dengan aristektur sebagai berikut
Communication pada OSI Layer

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 diakses oleh lapisan yang ada di atas atau di bawahnya. Hal tersebut dimaksudkan untuk memberi kemudahan kepada para pembuat perangkat keras dan perangkat lunak komunikasi dalam mengembangkan berbagai protokol yang berbeda sesuai kebutuhan namun dapat saling kompatibel dengan syarat produk mereka mengikuti standar yang telah ditentukan dalam OSI. Lapisan-lapisan (Layer) protokol tersebut dapat digolongkan lebih jauh menjadi:  
  1. Low-level Layers
  2. Transport Layer
  3. Application Layer
  4. Middleware Layer  
Communication pada OSI Layer

Low-level Layers

Yang termasuk low-level Layer adalah lapisan-lapisan sebagai berikut:
  1. Physical Layer berisi spesifikasi dan implementasi dari bit-bit dan proses transmisi dari pengirim ke penerima.
  2. proses transmisi dari pengirim ke penerima. Data link Layer: bertanggung jawab mengurusi pengubahan bit-bit data menjadi frame untuk mengatasi error dan mengatur arus
  3. pengiriman pengiriman frame (flow controlNetwork Layer mengatur bagaimana paket-paket diarahkan agar mencapai tujuannya berdasarkan alamat lojik

Transport Layer

Lapisan ini adalah lapisan sebenarnya yang memberikan fasilitas komunikasi bagi kebanyakan sistem tersebar. Pada lapisan ini ada dua macam protokol yang serimg digunakan, yaitu:

TCP (Transport Control Protocol) dengan karakteristik sebagai berikut:
  1. connection-orientedsistem-sistem yang akan berkomunikasi harus terlebih dulu saling mengetahui dan sepakat.  
  2. reliabletersedia mekanisme yang menjamin paket yang rusak atau hilang dikirim ulang.
  3. stream-oriented communication.
  4. membutuhkan sumber daya komputasi dan jaringan lebih besar dari UDP.
UDP (User Datagram Protocol) dengan karakteristik sebagai berikut:
  1. connectionless, tidak memerlukan adanya saling mengetahui dan kesepakatan.
  2. unreliable (best-effort) datagram communication, tidak tersedia mekanisme yang menjamin paket yang rusak atau hilang dikirim ulang.
  3. membutuhkan sumber daya komputasi dan jaringan lebih kecil dari TCP. 

Middleware Layer

Lapisan adalah lapisan yang dibuat untuk menyediakan layananlayanan dan protokol-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 berkomunkasi. Middleware juga memberikan fasilitas marshaling, yaitu proses pengubahan data dalam komunikasi antar proses menjadi bentuk yang siap dikirimkan melalui jaringan sehingga dapat tetap konsisten ketika sampai di sisi penerima, dan proses kebalikannya, unmarshaling 
 
Communication pada OSI Layer

Protokol-protokol lain yang tersedia dalam sebuah Middleware biasanya
meliputi:
1. 
Protokol naming yang menangani masalah pemberian nama dan pencarian lokasi nama.
2. 
Protokol keamanan yang berfungsi mengamankan komunikasi yang bersifat penting dan rahasia. 

Fungsi utama dari Middleware Layer adalah membuat kerumitan komunikasi antar proses di sistem yang berbeda menjadi transparan seolah-olah komunikasi hanya terjadi secara lokal. Layanan penting lainnya adalah mekanisme perluasan/penambahan ukuran sistem atau lebih dikenal sebagai scaling mechanism. Fasilitas ini menyediakan dukungan untuk proses replikasi dan caching (penyimpanan sementara 

Jenis-jenis Komunikasi dalam Middleware

Berdasarkan sifat-sifatnya komunikasi dalam sistem tersebar melalui Middleware dapat digolongkan menjadi:
1. 
Transient versus persistent,
2. Asynchrounous versus Synchronous

Pada persistent communication sebuah pesan yang dikirim akan disimpan dalam tempat penyimpanan sementara selama pesan tersebut belum diterima oleh sistem tujuan sedangkan pada transient communication pesan segera dibuang oleh sistem komunikasi perantara ketika tidak dapat dikirimkan ke tujuan berikutnya. Pada aSynchronous communication pengirim dapat langsung mengirimkan pesan berikutnya ketika pesan terdahulu belum sampai di sisi penerima sedangkan Synchronous communication mensyaratkan pesan terdahulu diterima sebelum pesan berikutnya dapat dikirimkan. Pengiriman pesan berikutnya dapat ditunda pada tiga titik berikut:
  1. sampai Middleware menyatakan akan melayani permintaan pengiriman pesan ketika diminta oleh pengirim,
    sampai pesan sebelumnya terkirimkan ke penerima, atau 
  2. sampai pesan sebelumnya terkirimkan ke penerima, atau sampai penerima pesan memberikan respon terhadap pesan yang dikirimkan 
  3. Remote Procedure Call (RPC)
Banyak sistem tersebar dibuat berdasarkan pertukaran pesan antarproses secara eksplisit namun prosedur send dan receive yang biasa digunakan tidak menyediakan fasilitas untuk menyembunyikan kerumitan proses komunikasi antar proses pada sistem tersebar. Hal ini berakibat pada kerumitan mengembangkan aplikasi sistem tersebar bagi para pengembang aplikasi. Untuk menyembunyikan kerumitan ini dibuatlah konsep Remote Procedure Calling atau RPC sedemikian sehingga sebuah proses pada suatu mesin dapat memanggil prosedur yang berada di mesin lainnya. Pada saat memanggil prosedur pada mesin lain proses yang memanggil akan ditunda eksekusinya hingga mendapatkan balasan hasil eksekusi dari mesin lawannya. Pesan dapat dikirimkan sebagai nama dan parameter prosedur kemudian kembali diterima sebagai keluaran prosedur.

Operasi Dasar RPC

Pada RPC komputer yang memanggil remote procedure berstatus sebagai client sedangkan yang menyediakan prosedur yang dipanggil berstatus sebagai server. Berikut ini adalah rangkaian kejadian ketika sebuah remote procedure
call terjadi:
  1. Aplikasi yang berada di client memanggil prosedur yang disediakan oleh server.
  2. Nama prosedur yang dipanggil dan parameter masukannya (jika diperlukan) sebelum dikirimkan melalui jaringan komputer terlebih  dahulu diubah menjadi format yang sesuai untuk pengiriman melalui jaringan atau lebih dikenal sebagai proses marshalling. Proses marshalling ini dilakukan oleh suatu perangkat lunak yang dikenal sebagai client stub.
  3. Client stub kemudian memanggil prosedur mengirim paket melalui jaringan yang disediakan dan menjadi tanggung jawab sistem operasi client.
  4. Sistem operasi client mengolah pesan dari client stub dan menjadi paket jaringan dan dikirimkan ke komputer server
  5. Di sisi server pesan diterima oleh sistem operasi dan diberikan kepada server stub yang melakukan proses kebalikan dari marshalling yaitu unmarshalling. Proses unmarshalling mengubah pesan dari client stub menjadi bentuk awal berupa panggilan untuk prosedur tertentu dengan parameter masukannya.
  6. Server akan memanggil prosedur yang diinginkan dengan parameter masukan yang diterima dari  server stub  kemudian mengembalikan hasil pemanggilan prosedur kepada server stub. 
    melakukan marshalling pesan berisi hasil dari prosedur yang dipanggil, kemudian memanggil layanan pengiriman data dari sistem operasi server.
  7. Server stub melakukan marshalling pesan berisi hasil dari prosedur yang dipanggil, kemudian memanggil layanan pengiriman data dari sistem operasi server.  
  8. Sistem operasi server mengolah pesan dari server stub menjadi paket jaringan dan dikirimkan ke komputer
  9. Sistem operasi server mengolah pesan dari server stub menjadi paket jaringan dan dikirimkan ke komputer client.
  10. Client stub melakukan unmarshalling dan memberikan hasil pemanggilan prosedur kepada yang aplikasi yang melakukan RPC
basic rpc


RPC: Parameter Passing

Pada saat nama prosedur dan parameter masukan diubah menjadi pesan ada
beberapa hal yang perlu diperhatikan, yaitu:
  1. Client dan server sangat mungkin memiliki cara pembacaan data dengan urutan yang berbeda (little endian dan big endian).
  2. Jika terjadi proses encoding maka client dan server harus sepakat mengenai encoding yang digunakan.
  3. Representasi tipe data dasar seperti integer, float, dan string dalam bentuk biner dapat berbeda-beda antar komputer dan bahasapemrograman.
  4. Representasi tipe data kompleks seperti array, union, objek, dan sebagainya ke dalam bentuk biner juga dapat berbeda-beda.Untuk menyelesaikan masalah-masalah tersebut client dan server harus mengubah pesan menjadi format representasi data yang tidak bergantung mesin maupun bahasa pemrograman.

ASynchronous RPC

Pada umumnya proses yang melakukan remote procedure call akan berhenti sementara hingga mendapat hasil dari sisi server. Proses-proses tertentu seperti: memulai layanan di komputer lain, menransfer uang ke rekening lain, melakukan entri data pada basis data tidak perlu menunggu hasil tertentu dan dapat melanjutkan eksekusi intruksi berikutnya. 

RPC asinkron (aSynchronous RPC) adalah teknik sedemikian sehingga proses yang memanggil remote procedure tidak menunggu hasil dari sisi server untuk melanjutkan mengeksekusi instruksi berikutnya. Pada RPC asinkron server langsung memberikan balasan ketika pesan dari client diterima tanp  memproses pesan terlebih dahulu dan begitu balasan dari server diterima client segera melanjutkan eksekusi instruksi berikutnya. 

Pada kasus lain sebuah server dapat saja membutuhkan waktu untuk menjalankan prosedur yang dipanggil oleh client.  Contohnya adalah permintaan melakukan pencarian data tertentu pada server yang dapat membutuhkan waktu cukup lama. Client tidak perlu menghabiskan waktu dengan menunggu jawaban hasil pencarian melainkan dapat langsung melanjutkan eksekusi instruksi selanjutnya. Pada saat jawaban sudah selesai disusun oleh server dan dikirimkan ke client proses yang memanggil prosedur pencarian akan diinterupsi agar mengetahui bahwa jawaban dari server telah datang dan dapat mengolah jawaban tersebut sesuai kebutuhannya. Teknik ini dikenal sebagai deferred Synchronous RPC

RPC pada Tataran Praktis: DCE

DCE atau Distributed Computer Environment adalah sebuah Middleware yang berfungsi untuk menjadi sebuah lapisan yang menyembunyikan kerumitan lapisan sistem operasi dan lapisan komunikasi jaringan dalam RPC. DCE awalnya dikembangkan untuk sistem operasi UNIX namun saat ini telah dibuat agar dapat dijalankan di berbagai sistem operasi terkenal termasuk Windows dan VMS. 

Model pemrograman dalam lingkungan DCE adalah client-server. Proses milik pengguna bertindak sebagai client yang mengakses layanan jarak jauh yang disediakan oleh server. Beberapa layanan berasal dari sistem DCE itu sendiri tetapi lainnya adalah milik aplikasi-aplikasi di server yang dibuat oleh pemrogram aplikasi-aplikasi tersebut menggunakan fasilitas DCE. Semua komunikasi antara client dan server dilakukan melalui remote procedure call. 

Sebuah sistem DCE terdiri dari beberapa komponen termasuk bahasa-bahasa pemrograman, pustaka-pustaka, daemon-daemon, program-program utilitas, dan lain-lain. Untuk memungkinkan client dan server mengerti satu sama lain digunakan sebuah definisi interface (antarmuka) yang disebut IDL atau Interface Definition LanguageFile IDL digunakan untuk menempatkan deklarasi prosedur dalam format yang mirip dengan ANSI C termasuk definisi tipe-tipe data, deklarasi konstanta, dan informasi lainnya yang dibutuhkan untuk melakukan marshalling pada parameter dan unmarshalling untuk hasil prosedur, Pembuat aplikasi juga dapat menuliskan komentar mengenai prosedur yang dideklarasikan dalam IDL. 

Sebuah aplikasi client server dalam sistem DCE dibuat dengan urutan sebagai berikut:
  1. Memanggil sebuah aplikasi bernama uuidgen yang akan membuat sebuah purwarupa (prototype) dari sebuah file IDL berisi sebuah identitas untuk interface prosedur yang dijamin tidak akan sama dengan interface lain yang dibuat dengan uuidgen yang sama. Identitas tersebut terjamin dikarenakan dalam pembuatannya waktu dan lokasi menjadi parameter yang diperhitungkan. Identitas tersebut terdiri dari sebuah bilangan biner 128 bit tertulis sebagai rentetan karakter ASCII atau dalam bentuk heksadesimal.
  2. Mengisi nama prosedur dan parameter-parameternya dalam file IDL yang telah dibuat
  3. Mengkompilasi file IDL dengan IDL compiler yang menghasilkan: Sebuah file header (contoh: interface.h dalam bahasa C),Stub untuk client , Stub untuk server.
  4. Menulis kode sumber aplikasi di client dan server dan mengkompilasi keduanya. Hasil kompilasi ditautkan (linked) dengan stub dan menghasilkan binary executeable. 
 Setelah pembuatan aplikasi selesai client dapat mengakses layanan dari server dengan ketentuan dan urutan sebagai berikut:

  1. Layanan di server tersebut harus mendapatkan nomor port tertentu agar dapat sistem operasi pada server dapat membedakannya dari proses-proses lain yang menjadi tujuan pesan-pesan yang datang. Pasangan layanan dan nomor agar dapat sistem operasi pada server dapat membedakannya dari proses-proses lain yang menjadi tujuan pesan-pesan yang datang. Pasangan layanan dan nomor portnya disimpan dalam sebuah tabel oleh DCE daemon.
  2. Layanan didaftarkan pada sebuah layanan pencarian seperti directory serviceservice yang dapat dijangkau client.
  3. Client yang akan melakukan RPC terlebih dahulu mencari alamat dari server yang memiliki nama prosedur yang dipanggil melalui directory service di mana server mendaftarkan layanannya.
  4. Client yang menghubungi server yang telah diketahui alamatnya dan menanyakan kepada DCE daemon port yang sesuai dengan layanan yang diminta.
  5. Setelah nomor port diketahui barulah client melakukan RPC.

Message-Oriented Communication

Tidak semua komunikasi antarsistem berlangsung dengan sifat sinkron dan persistent seperti pada RPC. Ada kalanya sistem tidak dapat memastikan apakah server tujuan akan menerima pesan dan hasil akan segera diterima dalam orde milidetik melainkan dapat menunggu hingga orde menit. Untuk komunikasi dengan sifat seperti ini lebih sering digunakan komunikasi yang berorientasi pesan menggunakan message-queueing atau dikenal sebagai System message oriented Middleware. Pada komunikasi jenis ini pesan yang dikirimkan akan dimasukkan dalam antrian (queue) tertentu sebelum mencapai server tujuan. 

Aspek yang harus diperhatikan dalam komunikasi jenis ini adalah bahwa pada umumnya pengirim pesan hanya diberikan jaminan pesan yang dikirimkan akan disimpan dalam antiran penerima. Tidak ada jaminan bahwa pesan akan dibaca. Sifat seperti ini menjadikan prosedur primitif yang harus disediakan menjadi sederhana meliputi:
  1.  Put: untuk memasukkan pesan ke antrian tertentu,
  2. Get: untuk mengambil pesan dari antrian tertentu dengan memblok proses hingga antrian tidak kosong dan mengambil pesan di awal antrian,
  3. Poll: untuk memeriksa antrian tertentu untuk mendapatkan pesan dengan tidak memblok proses dan mengambil pesan di awal antrian
  4. Notify: untuk memasang sebuah handler dalam antrian yang akan dieksekusi ketika sebuah pesan dimasukkan ke dalam antrian tersebut. 
Antrian-antrian dalam sistem tersebar tidak berada pada satu lokasi saja tetapi tersebar di beberapa lokasi dalam jaringan. Untuk dapat menyampaikan suatu pesan message queuing System haruslah memiliki informasi berisi pemetaan antrian dengan lokasi jaringannya atau dikenal sebagai queue names. Antrian-antrian yang ada diatur oleh queue manager yang berinteraksi langsung dengan aplikasi yang mengirimkan atau menerima pesan. Queue manager yang bertugas melakukan routing terhadap pesan dalam jaringan disebut sebagai relay 

Message Broker

Salah satu masalah dalam pertukaran pesan adalah perbedaan format pesan yang mungkin di antara aplikasi-aplikasi yang bergabung dalam sebuah message queuing System. Untuk mengatasinya digunakan suatu utilitas tambahan yang dikenal sebagai message brokerMessage broker bertindak sebagai gateway yang bekerja di lapisan aplikasi untuk menangani perbedaan format pesan. Pada umumnya message broker adalah sebuah aplikasi tambahan yang bersifat opsional sehingga tidak bisa dianggap sebagai bagian integral dari sebuah queuing System. 

Stream-Oriented Communication 

Pada bagian sebelumnya komunikasi yang dibahas masih terbatas padapertukaran informasi yang bersifat independen dan berupa unit-unit lengkap. Pada komunikasi jenis ini kebenaran (correctness) informasi tidak terpengaruh ketika sistem bekerja terlalu lambat atau terlalu cepat. Terdapat bentuk komunikasi lain yang sedimikian sehingga pengaturan waktu sangat berpengaruh terhadap kebenaran informasi. Contohnya adalah pada pengiriman informasi berupa suara atau audio. Jika sampling dilakukan dengan pulse code modulation dan dilakukan pada frekuensi 44100 Hz maka untuk menghasilkan suara yang serupa di sisi penerima tidak hanya paket-paket berisi data sampling diterima dengan urutan yang benar tetapi dengan jeda penerimaan antar paket yang sama dengan frekuensi sampling yaitu 1/44100 detik.

Data stream

Data stream atau aliran data adalah rangkaian unit-unit data yang dapat disampaikan secara diskrit (dalam paket-paket) maupun kontinyu (aliran tidak terputus/terbagi-bagi). Pengaturan waktu sangat penting ketika aliran data dikirimkan secara kontinyu. Untuk memberi perlakuan yang sesuai
berdasarkan pengaturan waktu transmisi data dapat dibedakan menjadi beberapa jenis, yaitu:
  1. Transmisi asinkron (aSynchronous transmission  Pada transmisi jenis ini data dalam stream dialirkan secara berurutan tetapi tidak ada batas waktu kapan transmisi data berlangsung. Transmisi ini biasanya berlaku pada pengiriman data yang bersifat diskrit seperti file atau pesan.
  2. Transmisi sinkron (Synchronous transmission) Kebalikan dari transmisi asinkron transmisi jenis ini memiliki batas waktu maksimum jeda pengiriman dari ujung ke ujung untuk setiap unit aliran data. Pada transmisi ini tidak penting apakah data dikirimkan lebih cepat dari batas maksimum jeda. Contoh aplikasinya adalah pada sensor suhu yang mengirimkan sampling suhu kepada suatu pengendali. Data sampling yang tiba lebih cepat dari batas maksimum tidak memberikan pengaruh apapun terhadap pekerjaan pengendali.
  3. Transmisi isokron (isochronous transmission). Pada transmisi jenis ini terdapat batas maksimum dan minimum jeda pengiriman dari ujung ke ujung atau yang dikenal sebagai jitter. Transmisi ini berlaku pada pengiriman data audio, video dan multimedia. Berdasarkan bentuknya aliran data dapat berbentuk sederhana atau kompleks. Sebuah aliran data dikatakan kompleks jika di dalamnya terdapat beberapa aliran data yang lebih sederhana atau dikenal sebagai substream. Contoh dari aliran data kompleks adalah aliran data video di mana di dalamnya terdapat dua aliran data sederhana yaitu aliran data gambar dan aliran data suara.

Quality of Service

Kebutuhan akan pengaturan waktu dan kebutuhan nonfungsional lainnya biasanya diterjemahkan menjadi kebutuhan Quality of Service atau QoS. Kebutuhan-kebutuhan ini menjelaskan apa yang dibutuhkan oleh sistem dan jaringan yang menjadi basis dari sebuah sistem tersebar agar aliran pengiriman data dapat berlangsung sesuai dengan kebutuhan pengguna. QoS untuk pengiriman data kontinyu biasanya menekankan pada kesesuaian dengan batasan jeda, keterurutan, ukuran/besar, dan kehandalan. Dari sisi aplikasi QoS terdiri dari beberapa property, seperti:
  1. Laju pengiriman bit (bit rate),
  2. Jeda maksimum hingga sebuah sesi bisa terbentuk (aplikasi siap mengirimkan data),
  3. Jeda maksimum pengiriman dari ujung ke ujung (end-to-end),
  4. Variasi jeda (jitter) maksimum,
  5. Jeda round trip.

Menegakkan QoS

Agar sistem dan jaringan yang menjadi basis sistem terdistribusi dapat menjaga keterpenuhan QoS ada beberapa teknik yang diterapkan. Teknik pertam  dilakukan di lapisan jaringan di mana data yang dikirimkan dapat diberi label yang menandakan tingkat prioritas data tersebut untuk didahulukan atau ditunda. Label-label tersebut antara lain:
  1. Expedited forwarding yang menandakan data tersebut memiliki prioritas paling tinggi untuk diproses dan dikirimkan oleh router.
  2. Assured forwarding yang lebih rendah dari expedited forwarding namun terbagi menjadi empat kelas tingkatan untuk memberikan keleluasaan lebih dalam menentukan tingkat prioritas data.
Teknik ke-dua adalah dengan membuat tempat penyimpanan sementara atau buffer untuk paket-paket data yang diterima sebelum diproses. Teknik ini berguna untuk mengurangi variasi jeda atau jitter. Paket-paket yang diterima disimpan sementara dalam buffer untuk kemudian oleh proses yang membutuhkan diambil ketika dibutuhkan. Kekurangannya adalah jika ada terdapat paket data yang benar-benar terlambat maka dapat terjadi kasus di mana proses tidak dapat menemukan paket yang terlambat dalam buffer sehingga pemrosesan menjadi terhambat. 

Teknik ke-tiga adalah untuk menangani paket data yang tertunda atau hilang maka harus dibuat sebuah forward error correction (FEC) di sisi penerima. FEC yang banyak digunakan adalah dengan membuat sebuah teknik untuk memproses dengan benar sejumlah data yang diterima dari keseluruhan data yang seharusnya diterima sehingga kehilangan sebagian data tidak mempengaruhi kebenaran data-data yang telah diterima.

Salah satu masalah lain adalah jika sebuah paket data berisi beberapa sub data (seperti pada data video yang berisi gambar dan suara) hilang maka penerima akan mengalami gap yang cukup mengganggu ketika memproses dan menampilkan data tersebut. Untuk mengatasi masalah tersebut pemaketan data dapat dibuat tidak terurut seperti pada gambar di bawah ini sehingg ketika paket data tertentu hilang gap akan tersebar dibeberapa lokasi dan menjadi lebih tidak tampak di sisi penerima.

Multicast Communication

Salah satu isu penting dari komunikasi adalah bagaimana menyampaikaninformasi ke beberapa penerima secara bersamaan atau lebih dikenal sebagaimulticastingMutlicasting dapat dilakukan di lapisan network dengan membentukjalur-jalur khusus tetapi akan membutuhkan sumber daya yang besar danterkadang membutuhkan penanganan dari manusia.Dengan berkembangnya teknologi peer-to-peer dan manajemen lapisanpengganti terstruktur penentuan jalur penyebaran data dapat menjadi lebih mudah dengan dilakukan di lapisan aplikasi. Cara lainnya adalalh denganmeniadakan kebutuhan jalur khusus dengan teknik penyebaran gosip (gossiping).

 Application Level Multicasting

Ide dasarnya adalah dengan membentuk sebuah lapisan baru di tingkat aplikasi yang mengorganisasi simpul-simpul penerima informasi menjadi suatu jaringan maya. Sebagai catatan router tidak akan diikutkan (transparan) dalam jaringa  baru ini. Yang perlu diperhatikan adalah bentuk/struktur jaringan baru yang dibuat. Ada dua pendekatan dalam pembentukan struktur jaringan baru ini, yaitu struktur pohon (tree) dan jaringan mesh. Pada struktur pohon Pada struktur mesh satu simpul jaringan terkoneksi dengan beberapa simpul tetangganya dan jika satu koneksi antarsimpul terputus maka suatu simpul dapat mencari rute melalui simpul lain untuk mencapai simpul yang koneksinya terputus dengannya.

Gossiping

Gossiping dikembangkan berdasarkan pengamatan pada penyebaran penyakit atau dikenal dengan epidemic behavior. Idenya adalah bagaimana menyebarkan informasi pada sejumlah besar simpul menggunakan hanya informasi lokal tanpa mengetahui banyak mengenai kondisi jaringan sehingga tidak terdapat pusat pengendalian penyebaran informasi. Pada teknik ini simpul yang menjadi bagian dari sistem tersebar dikatakan terinfeksi jika memiliki informasi dan berkenan menyebarkannya pada simpul lain. Simpul yang belum mendapatkan informasi disebut sebagai susceptible atau berpotensi

Simpul yang tidak berkenan menerima informasi disebut sebagai simpul yang dihilangkan (removed). Perlu dicatat bahwa simpulsimpul diasumsikan dapat membedakan informasi baru dengan informasi lama. Hal ini dapat dicapai dengan memberikan keterangan waktu dan versi kepada informasi yang disebarkan. Model penyebaran yang terkenal adalah model anti-entropy. Pada model ini sebuah simpul P memilih simpul Q secara acak dan kemudian bertukar informasi dengan simpul Q. Ada tiga pendekatan dalam bertukar informasi antara P dan Q, yaitu:
  1. P hanya memberikan informasi baru secara sepihak kepada Q,
  2. P hanya mengambil informasi baru dari Q,
  3. P dan Q saling mengirimkan informasi baru.
Cara pertama diketahui merupakan pilihan yang buruk apabila yang terjadi adalah penyebaran informasi pembaruan (update) secara cepat. Hal ini terjadi karena pada sistem tersebar yang murni hanya menggunakan cara pertama hanya simpul yang terinfeksi yang boleh menyebarkan update dan simpul terinfeksi tersebut belum tentu memilih simpul berpotensi. Akibatnya dapat terjadi kasus di mana simpul berpotensi tidak akan mendapatkan update dalam jangka waktu yang cukup lama. 

Salah satu varian dari teknik penyebaran ini disebut rumor spReading atau gossiping. Jika simpul P baru saja diperbarui untuk informasi tertentu maka simpul P akan menghubungi simpul Q untuk mencoba memberikan updat  secara sepihak kepada Q. Jika simpul Q sudah diperbarui oleh simpul lain maka P tidak akan menyebarkannya pada simpul lain. 

Gossiping terbukti sebagai teknik yang paling efisien dalam menyebarkan informasi dengan penerima skala besar secara cepat namun teknik ini memiliki masalah dalam menyebarkan penghapusan informasi tertentu. Hal ini dikarenakan jika informasi dihapus maka ketika simpul menerima informasi yang lebih tua versi atau usianya maka informasi tersebut tidak dianggap kadaluwarsa dan dianggap sebagai informasi yang belum dimiliki. Untuk mengatasi hal ini maka digunakanlah trik dengan menganggap penghapusan sebagai update biasa sehingga informasi lama tetap dianggap kadaluwarsa. Informasi update untuk penghapusan dikenal sebagai death certificate

Masalahnya adalah bagaimana menghilangkan death certificate. Untuk mengatasinya maka setiap informasi harus memiliki batas waktu hidup tertentu dalam jaringan. Ketika masa hidup informasi telah habis maka informasi tersebut akan dihapus. Death certificate akan diberi usia paling lama sehingga tidak ada informasi kadaluwarsa yang datang pada suatu simpul ketika death certificate sudah tidak dihapus dari jaringan.

Posting Komentar untuk "Communication pada Sistem Terdistribusi"