mondarmandir

Minggu, 16 Maret 2014

Komunikasi Dalam Sistem Terdistribusi

Komunikasi adalah suatu proses penyampaian (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.


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:
1. Low level Layers
Yang termasuk Low layers adalah lapisan-lapisan sebagi berikut:
  1. 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.
  2. 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.
  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.
2. 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:
  1. 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:
    1. Connection-oriented merupakan sistem yang akan berkomunikasi harus terlebih dulu saling mengetahui dan sepakat
    2. Reliable, tersedia mekanisme menjamin paket yang rusak atau hilang dikirim ulang
    3. Stream –oriented communication
    4. Membutuhkan sumberdaya komputasi dan jaringan lebih dari UDP
    5. 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:
      1. Connectionless, tidak memerlukan adanya saling mengetahui dan kesepakatan
      2. Unreliable datagram communication, tidak tersedianya mekanisme yang menjamin paket rusak atau dikirim ulang.
3. 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.
  1. 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.
  1. 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.


REMOTE PROCEDURE CALL
Remote Procedure Call (RPC) adalah suatu protokol yang mengijinkan suatu program komputer yang memproses atau menjalankan pada suatu komputer untuk mengakibatkan suatu subroutine pada komputer yang lain untuk dieksekusi, tanpa programmer harus menjelaskan dengan tegas pengkodean untuk interaksi ini. RPC lebih dikenal sebagai perintah secara jarak jauh (remote) atau suatu metode perintah yang dijalankan secara remote.
RPC merupakan suatu teknologi yang tepat untuk membangun aplikasi terdistribusi atau tersebar maupun client  server­­­­­­­. Prinsip kerjanya pada dasarnya sama seperti pemanggilan prosedur lokal sedemikian sehingga prosedur yang dipanggil tidak perlu ada di alamat yang sama dengan pemanggil prosedurnya. Dua proses yang sedang berkomunikasi tidak harus berada pada sistem yang sama, interaksi proses dapat terjadi pada beberapa sistem yang berbeda dengan suatu jaringan yang terhubung.
Dengan menggunakan RPC, para programmer khususnya dalam hal pemrosesan terdistribusi tidak harus mengetahui secara detail layer-layer yang ada pada jaringan sebagai media transportasi data. Independensi yang dimiliki oleh transpor RPC mengakibatkan aplikasi tidak tergantung pada layer pisik dan lojik dari mekanisme komunikasi data, sehingga memungkinkan aplikasi RPC dapat menggunakan berbagai macam media transpor. Hal tersebut menjadikan RPC sebagai teknologi pemrosesan terdistribusi yang handal dan mudah untuk diimplementasikan.
Operasi Dasar RPC
Untuk memahami bagaimana RPC bekerja, pertama kita harus memahami bagaimana cara kerja prosedur konvensional ( misalnya, mesin tunggal ) Contohya :
count = read(fd, buf, nbytes);
dimana fd adalah bilangan bulat, buf adalah karakter array, dan nbytes karakter selain integer.
Jika panggilan ini dibuat dari program utama, stack akan seperti ditunjukkan pada Gambar. 2-17 (a) sebelum panggilan tersebut. Untuk membuat panggilan, pemanggil mendorong parameter ke stack dalam rangka, yang terakhir pertama, seperti ditunjukkan pada Gambar. 2-17 (b). ( Alasan bahwa C compiler mendorong parameter dalam urutan terbalik ada hubungannya dengan printf-dengan demikian, printf selalu dapat menemukan parameter pertama, string format). Setelah membaca selesai berjalan, menempatkan nilai kembali dalam register, menghapus alamat pengirim, dan transfer control kembali ke pemanggil. Penelepon kemudian menghapus parameter dari stack, kembali ke keadaan semula, seperti ditunjukkan pada Gambar.2-17 (c).
 Beberapa hal yang perlu diperhatikan. Untuk satu, di C, parameter dapat memanggil -by- nilai atau panggilan oleh referensi. Sebuah parameter nilai, seperti fd atau nbytes, hanya disalin ke tumpukan seperti ditunjukkan pada Gambar. 2-17 (b). Untuk prosedur dipanggil, parameter nilai hanya sebuah variable local diinisialisasi. Prosedur disebut dapat memodifikasi, tetapi perubahan tersebut tidak mempengaruhi nilai asli di sisi menelepon.
Sebuah referensi parameter dalam C adalah pointer ke sebuah variable ( misalnya, alamat dari variable ), daripada nilai dari variabel. Dalam panggilan untuk membaca, parameter kedua adalah parameter array acuan karena melalui referensi di C. Sebenarnya didorong ke stack adalah alamat dari array karakter. Jika prosedur yang disebut menggunakan parameter ini untuk menyimpan sesuatu kedalam array karakter, itu tidak memodifikasi array dalam prosedur panggilan. Yang berbeda bisa mempengaruhi referensi antara panggilan nilai dengan dan panggilan by referensi ini cukup penting untuk RPC, seperti yang akan kita lihat.
Salah satu parameter lainnya yang lewat mekanisme juga ada, meskipun tidak digunakan dalam C. Hal ini disebut call-by-copy/restore. Ini terdiri dari memiliki variable disalin ke stack dengan penelepon, seperti dalam panggilan-nilai dengan-,dan kemudian disalin kembali setelah panggilan, Timpa nilai asli pemanggil. Dalamkondisi yang paling, ini mencapai efek yang sama sebagai panggilan-referensi oleh-,namun dalam beberapa situasi, seperti parameter yang sama yang beberapa kali hadir dalam daftar parameter, semantic berbeda.
Keputusan yang parameter passing mekanisme untuk menggunakan biasanya dibuat oleh para desainer bahasa dan merupakan milik tetap bahasa. Kadang-kadang tergantung pada jenis data yang berlalu. Dalam C, misalnya, integer dan tipe scalar lain selalu dilewatkan dengan nilai, sedangkan array selalu dikirimkan dengan referensi, sebagaimana telah kita lihat. Sebaliknya, programmer Pascal bisa memilih mekanisme yang mereka inginkan untuk setiap parameter. Standarnya adalah call-by-value, tapi programmer dapat memaksa call-by-reference dengan memasukkan kata kunci var sebelum parameter tertentu. Beberapa Ada ® compiler menggunakan copy/ restore dalam parameter, tapi yang lain menggunakan panggilan oleh referensi. Definisi bahasa izin baik pilihan, yang membuat sedikit semantic fuzzy.
Ide di balik RPC adalah untuk membuat panggilan prosedur remote melihat sebanyak mungkin seperti satu lokal. Dengan kata lain, kita ingin RPC harus transparan-prosedur panggilan tidak harus menyadari bahwa prosedur yang disebut adalah mengeksekusi pada mesin yang berbeda, atau sebaliknya. Misalkan program perlu membaca beberapa data dari file. Pemrogram menempatkan panggilan untuk membaca dalam kode untuk mendapatkan data. Dalam system (prosesor tunggal) tradisional, rutin membaca diekstraksi dari perpustakaan oleh linker dan dimasukkan ke dalam program objek. Ini adalah prosedur pendek, biasanya ditulis dalam bahasa assembly, yang menempatkan parameter dalam register dan kemudian mengeluarkan BACA system call dengan menjebak ke kernel. Pada dasarnya, prosedur membaca adalah semacam antarmuka antara kode pengguna dan system operasi.

Tidak ada komentar:

Posting Komentar