Kamis, 16 Januari 2014

Implementasi dari Remote procedure call

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 dilakukan 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 paradigm 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, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.
RPC dirancang sebagai suatu metoda yang powerfull, cepat, efisien, dan aman untuk komunikasi dan sinkronisasi antara client dan server sehingga lebih mudah memungkinkan pertukaran data pada proses yang berbeda. Proses bisa berada di komputer yang sama, LAN atau Internet

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 socket, marshalling & unmarshalling.
  • Robust (Sempurna): Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.

Kekurangan RPC
  • Tidak fleksibel terhadap perubahan: hubungan anatara client dan server bersifat static
  • Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.

Protokol Message RPC

Protokol Message RPC didefinisikan dengan menggunakan deskripsi data eXternal Data Representation ( XDR ) yang meliputi struktur, enumerasi dan union. Pembahasan lebih
lanjut akan diterangkan pada bab berikutnya mengenai implementasi RPC.
Protokol Message ini membutuhkan faktor-faktor pendukung sebagai berikut:
1. Spesifikasi yang unik untuk tiap prosedur call
2. Respon message yang sesuai untuk tiap message yang diminta
3. Otentifikasi klien untuk tiap layanan dan sebaliknya
Protokol Message RPC memiliki dua ( 2 ) struktur yang berbeda, yaitu call message dan reply message. Tiap klien yang akan melakukan RPC pada suatu server di jaringan akan menerima balasan (reply) berupa hasil dari eksekusi prosedur tersebut. Dengan menggunakan spesifikasi yang unik untuk tiap prosedure remote, maka RPC dapat mencocokkan message balasan untuk tiap call message yang diminta klien.
Call Message
Tiap call message pada RPC mengandung nilai-nilai unsigned integer yang digunakan untuk mengidentifikasi prosedur remote yang diminta. Nilai-nilai ini adalah :
1. Nomor Program
2. Nomor Versi dari Program
3. Nomor Prosedur
Reply Message
Reply message yang dikirimkan oleh server jaringan bervariasi tergantung apakah call messages yang diminta klien diterima atau ditolak. Reply message mengandung informasi yang digunakan untuk membedakan kondisi-kondisi yang diminta sesuai dengan call messages. Informasi ini antara lain :
1.      RPM mengeksekusi call message dengan sukses
2.      Implementasi remote tidak sesuai dengan protokol yang digunakan. Versi yang lebih
rendah atau tinggi akan ditolak.
3.      Program remote tidak tersedia pada sistem remote
4.      Program remote tidak mendukung versi yang diminta klien
5.      Nomor prosedur yang diminta tidak ada.
Fitur dalam RPC
·         Batching Calls
Fitur Batching calls mengijinkan klien untuk mengirim message calls ke server dalam jumlah besar secara sequence ( berurutan ). Batching menggunakan protokol streaming byte seperti TCP / IP sebagai mediumnya. Pada saat melakukan batching, klien tidak menunggu server untuk memberikan reply terhadap tiap messages yang dikirim, begitu pula dengan server yang tidak pernah mengirimkan messages reply. Fitur inilah yang banyak digunakan klien, karena arsitektur RPC didesain agar pada tiap call message yang dikirimkan oleh klien harus ada proses menunggu balasan dari server. Oleh karena itu maka pihak klien harus dapat mengatasi error yang kemungkinan terjadi karena pihak klien tidak akan menerima peringatan apabila terjadi error pada message yang dikirim.
·         Broadcasting Calls
Fitur Broadcasting mengijinkan klien untuk mengirimkan paket data ke jaringan dan menunggu balasan dari network. FItur ini menggunakan protokol yang berbasiskan paket data seperti UDP/IP sebagai mediumnya. Broadcast RPC membutuhkan layanan port mapper RPC untuk mengimplementasikan fungsinya.
·         Callback Procedures
Fitur Callback Procedures mengijinkan server untuk bertindak sebagai klien dan melakukan RPC callback ke proses yang dijalankan oleh klien.
·         Menggunakan select Subrutin
Fitur ini akan memeriksa deskripsi dari suatu file dan messages dalam antrian untuk melihat apakah mereka siap untuk dibaca (diterima) atau ditulis (dikirim), atau mereka dalam kondisi ditahan sementara. Prosedur ini mengijinkan server untuk menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.
·         Otentifikasi RPC
Proses otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan klien pada RPC. Untuk setiap prosedur remote yang dilakukan protokol RPC menyediakan slot yang dipakai sebagai parameter otentifikasi yang berfungsi agar pemanggil (caller) dapat, memberikan identitasnya kepada server. Parameter otentifikasi ini dibuat di paket klien. Otentifikasi RPC terdiri atas beberapa bagian. Berikut ini adalah bagian-bagian pada otentifikasi RPC :
  1. Protokol Otentifikasi RPC
    Protokol Otentifikasi RPC disediakan sebagai bagian dari protokol RPC. Untuk setiap prosedur remote, semuanya diotentifikasi oleh paket RPC pada server. Parameter yang digunakan adalah respon verifier. Sedangkan pada pihak klien, setiap paket RPC diberikan parameter otentifikasi dan parameter yang digunakan adalah credential dan
    verifier.
  2. Otentifikasi NULL
    Otentifikasi NULL digunakan pada sistem dimana pemanggil (caller) RPC tidak mengetahui identitasnya sendiri dan server tidak membutuhkan identitas pemanggil.
  3. Otentifikasi UNIX
    Otentifikasi Unix digunakan pada prosedur remote di sistem UNIX. Jenis otentifikasi ini dibagi dua (2) yaitu otentifikasi pada sisi klien dan otentifiksi pada sisi server. Pada sisi klien, otentifikasi ini akan membuat otentifikasi handle dengan AIX permissions agar dapat berasosiasi dengan parameter credentials pada sistem UNIX. Sedangkan pada sisi server, server harus dapat menentukan tipe otentifikasi yang diberikan oleh pemanggil RPC. Penentuan dukungan terhadap tipe otentifikasi akan memberikan reply yang berbeda.
  4. Otentifikasi Data Encryption Standard ( DES )
    Otentifikasi DES membutuhkan keyserv daemon yang harus berjalan baik di sisi server maupun klien. Tiap pengguna pada sistem ini harus memiliki kunci public ( public key yang disahkan pada database kunci publik oleh Administrator jaringan tersebut.
  5. Protokol Otentifikasi DES
    Protokol Otentifikasi DES meliputi protokol penanganan DES pada proses otentifikasi RPC. Protokol ini mencakup 64-bit blok data DES yang terenkripsi dan menentukan panjang maksimum untuk user name pada jaringan yang digunakan.
  6. Enkripsi Diffie-Hellman
    Enkripsi Diffie-Hellman digunakan pada pembuatan kunci public pada otentifikasi DES dengan menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variable onstan, yaitu BASE dan MODULUS yang digunakan pada protokol otentifikasi DES. PC berhubungan hanya dengan proses otentifikasi, tidak dengan kontrol akses terhadap ervices/layanan individual yang diberikan. Tiap layanan mengimplementasikan eraturan mengenai kontrol akses masing-masing.
Prinsip Dasar RPC


Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan



Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam format transimisi. Langkah ini dinamakan marshalling. Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote). Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan (Stub adalah kode untuk mengkonversi parameter yang dipassing saat RPC berjalan)
Langkah-langkah dalam RPC 


1. Prosedur client memanggil client stub
2. Client stub membuat pesan dan memanggil OS client
3. OS client mengirim pesan ke OS server
4. OS server memberikan pesan ke server stub
5. Server stub meng-unpack parameter-parameter untuk memanggil server
6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub
7. Server stub mem-pack hasil tsb dan memanggil OS server
8. OS server mengirim pesan (hasil) ke OS client
9. OS client memberikan pesan tersebut ke client stub
10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke Client

http://deris.unsri.ac.id/materi/sist_terd/bab2-RPC.pdf

POST TEST RPC SISTEM TERDISTRIBUSI

Nama   : Rizki Diyantara
NPM   : 19112268
Kelas   : 5KA41


1. Jelaskan tentang sistem operasi terdistribusi !
Jawab :
 Sistem operasi terdistribusi adalah salah satu implementasi dari sistem terdistribusi, dimana
sekumpulan komputer dan prosesor yang heterogen terhubung dalam satu jaringan. Koleksi-koleksi
dari objek-objek ini secara tertutup bekerja secara bersama-sama untuk melakukan suatu tugas atau
pekerjaan tertentu

2. Sebutkan penerapan procedure RMI dan RPC !
Jawab :
A. RMI adalah sebuah tekhnik pemanggilan method remote yang lebih secara umum lebih baik dari RPC. RMI menggunakan paradigma pemrograman berorientasi obyek. 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.
contoh penerapan RMI adalah CORBA,Java RMI, Teamviewer,program aplikasi chat. dan mungkin cloud computing.
B. RPC adalah satu teknik komunikasi interproses yang memungkinkan perangkat lunak client dan server untuk berkomunikasi.
contoh penerapan RPC adalah Putty, SSH, samba FTPzilla.
 
3. Contoh dari penerapan hardware terdistribusi !
a)  printer
b) harddisk
c) CD Rom
d) Modem
e) Processor (penggunanan processor lebih dari 1 / server)
 

KUIS / TUGAS SISTEM TERDISTRIBUSI

Nama  : RIZKI DIYANTARA
 NPM  : 19112268
 Kelas  : 5KA41

Cari contoh dari pendistribusian komponen-komponen Hardware, Program, dan Procedure. Jelaskan!

Jawab:


1. Pendistribusian Komponen Hardware

Contoh:

  1. Hardisk 
  2. Merupakan piranti penyimpanan sekunder dimana data disimpan sebagai pulsa magnetik pada piringan metal yang berputar yang terintegrasi. Data disimpan dalam lingkaran konsentris yang disebut track. Tiap track dibagi dalam beberapa segment yang dikenal sebagai sector. Untuk melakukan operasi baca tulis data dari dan ke piringan, hard disk menggunakan head untuk melakukannya, yang berada disetiap piringan. Head inilah yang selanjut bergerak mencari sector-sector tertentu untuk dilakukan operasi terhadapnya. Waktu yang diperlukan untuk mencari sector disebut seek time. Setelah menemukan sector yang diinginkan, maka head akan berputar untuk mencari track. Waktu yang diperlukan untuk mencari track ini dinamakan latency.

  3. Printer 
  4. Merupakan alat yang menampilkan data dalam bentuk cetakan, baik berupa teks maupun gambar atau grafik di atas kertas. Printer biasanya terbagi atas beberapa bagian, yaitu picker sebagai alat mengambil kertas dari tray. Tray adalah tempat menaruh kertas. Tinta atau toner adalah alat pencetak sesungguhnya, karena ada sesuatu yang disebut tinta atau toner yang digunakan untuk menulis atau mencetak pada kertas. Perbedaan toner dan tinta adalah perbedaan sistem toner atau laser butuh pemanasan, sedangkan tinta atau inkjet tidak butuh pemanasan, hanya pembersihan atau cleaning pada print-head printer tersebut.

  5. Modem 
  6. Modem berasal dari singkatan MOdulator DEModulator. Modulator merupakan bagian yang mengubah sinyal informasi kedalam sinyal pembawa (carrier) dan siap untuk dikirimkan, sedangkan Demodulator adalah bagian yang memisahkan sinyal informasi (yang berisi data atau pesan) dari sinyal pembawa yang diterima sehingga informasi tersebut dapat diterima dengan baik. Modem merupakan penggabungan kedua-duanya, artinya modem adalah alat komunikasi dua arah. Setiap perangkat komunikasi jarak jauh dua-arah umumnya menggunakan bagian yang disebut "modem", seperti VSAT, Microwave Radio, dan lain sebagainya. Namun,pada umumnya istilah modem lebih dikenal sebagai Perangkat keras yang sering digunakan untuk komunikasi pada komputer. Data dari komputer yang berbentuk sinyal digital diberikan kepada modem untuk diubah menjadi sinyal analog. Sinyal analog tersebut dapat dikirimkan melalui beberapa media telekomunikasi seperti telepon dan radio. Setibanya di modem tujuan, sinyal analog tersebut diubah menjadi sinyal digital kembali dan dikirimkan kepada komputer. Terdapat dua jenis modem secara fisiknya, yaitu modem eksternal dan modem internal.

  7. CD-ROM 
  8. Merupakan akronim dari Compact Disc Read-Only Memory adalah sebuah piringan kompak dari jenis piringan optik (optical disc) yang dapat menyimpan data. Ukuran data yang dapat disimpan saat ini bisa mencapai 700MB atau 700 juta bit. CD-ROM bersifat read only (hanya dapat dibaca dan tidak dapat ditulisi). Untuk dapat membaca isi CD-ROM, alat utama yang diperlukan adalah CD Drive. Perkembangan CD-ROM terkini memungkinkan CD dapat ditulisi berulang kali (Re Write / RW) yang lebih dikenal dengan nama CD-RW.

  9. Scanner 
  10. Merupakan suatu alat yang digunakan untuk memindai suatu bentuk maupun sifat benda, seperti dokumen, foto, gelombang, suhu dan lain-lain. Hasil pemindaian itu pada umumnya akan ditransformasikan ke dalam komputer sebagai data digital. Terdapat beberapa jenis pemindai bergantung pada kegunaan dan cara kerjanya, antara lain:
    • Pemindai Gambar,
    • Pemindai barcode,
    • Pemindai sinar-X,
    • Pemindai Cek,
    • Pemindai Logam,
    • Pemindai Optical Mark Reader (OMR),
    • Pemindai 3 Dimensi.

2. Pendistribusian Komponen Program

Contoh:  

Sistem Operasi 

  1. Amoeba merupakan sistem berbasis mikro-kernel yang tangguh yang menjadikan banyak workstation personal menjadi satu sistem terdistribusi secara transparan. Sistem ini sudah banyak digunakan di kalangan akademik, industri, dan pemerintah selama sekitar 5 tahun.

  2. Angel didesain sebagai sistem operasi terdistribusi yang pararel, walaupun sekarang ditargetkan untuk PC dengan jaringan berkecepatan tinggi. Model komputasi ini memiliki manfaat ganda, yaitu memiliki biaya awal yang cukup murah dan juga biaya incremental yang rendah. Dengan memproses titik-titik di jaringan sebagai mesin single yang bersifat shared memory, menggunakan teknik distributed virtual shared memory (DVSM), sistem ini ditujukan baik bagi yang ingin meningkatkan performa dan menyediakan sistem yang portabel dan memiliki kegunaan yang tinggi pada setiap platform aplikasi.

  3. Chorus merupakan keluarga dari sistem operasi berbasis mikro-kernel untuk mengatasi kebutuhan komputasi terdistribusi tingkat tinggi di dalam bidang telekomunikasi, internetworking, sistem tambahan, realtime, sistem UNIX, supercomputing, dan kegunaan yang tinggi. Multiserver CHORUS/MiX merupakan implementasi dari UNIX yang memberi kebebasan untuk secara dinamis mengintegrasikan bagian-bagian dari fungsi standar di UNIX dan juga service dan aplikasi-aplikasi di dalamnya.

  4. Linux merupakan Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe Unix. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, kode sumber Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa saja. Nama “Linux” berasal dari nama pembuatnya, yang diperkenalkan tahun 1991 oleh Linus Torvalds. Sistemnya, peralatan sistem dan pustakanya umumnya berasal dari sistem operasi GNU, yang diumumkan tahun 1983 oleh Richard Stallman. Kontribusi GNU adalah dasar dari munculnya nama alternatif GNU/Linux.

3. Pendistribusian Komponen Procedure

Contoh:
  1. RMI (Remote Method Invocation) 
  2. Merupakan 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. Cara kerjanya adalah 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 tersebut. 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.

  3. RPC (Remote Procedure Call) 
  4. Merupakan suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh ( remote system ).Protokol RPC digunakan untuk membangun aplikasi klien-server yang terdistribusi. Cara kerjanya adalah 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.