Senin, 18 Maret 2013

Remote Procedure Call (RPC)


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 dilakuan 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 dimintaclient.
RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma 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.
Umumnya protokol RPC yang digunakan pada saat ini adalah DCOM (Distributed Component Object Model). Saat ini ada alternatif protokol baru, yakni SOAP (Simple Object Access Protocol), yang berdasarkan pada teknologi XML.
Implementasi RPC
Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR (eXternal Data Representation) standard, UDP atau TCP transport protocol.
Xerox Courier : RPC model, Data representation standard, XNS (Xerox Network Systems) SPP (Sequenced Packet Protocol) sebagai transport protocol, Apollo’s Network Computing Architecture (NCA), RPC protocol, NDR (Network Data Representation).
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 soket, 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
- Static relationship between client & server at run-time.
- Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
· Kurangnya location transparency
- Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.
- Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).
- Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yg terpisah.
Prinsip RPC dalam program clien-server
untitled
Langkah-langkah dalam RPC
untitled1
1. Client procedure memanggil client stub secara normal
2. Client stub membuat pesan, memanggil local OS
3. Clients OS mengirim pesan ke remote OS
4. Remote OS member pesan ke server stub
5. Server stub membuka parameters, memanggil server
6. Server bekerja, mengembalikan hasil ke stub
7. Server stub mengepak itu kedalam pesan, memanggil local OS
8. Server OS mengirim pesan ke client OS
9. Client OS member pesan client stub
10. Stub membuka hasil, mengembalikan ke client

Contoh Implementasi RPC dengan SUN RPC
· Fungsi yg dipanggil client melalui RPC:
- bin_date_1:
No arguments.
Result in long integer: waktu saat ini, dlm jumlah detik sejak 00:00:00 GMT, January 1, 1970.
- str_date_1
Mengkonversi hasil bin_date_1 menjadi readable ASCII sring.
· Berkas yg dibuat programmer:
- Server procedure: date_proc.c
- RPC specification file: date.x
- Client main function: rdate.c
· date.x -> rpcgen ->
- Server stub: date_svc.c
- date.h
- Client stub: date_clnt.c
· Generate executable client program:
- cc o rdate rdate.c date_clnt.c lrpclib
· Generate executable server program:
- cc o date_svc date_proc.c date_svc.c lrpclib

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s06.html
http://viyan.staff.gunadarma.ac.id/Downloads/files/11848/2_Komunikasi.pdf
http://dagger24.blogspot.com/2010/03/remote-procedure-call-rpc.html

Remote Procedure Call (RPC)


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 dilakuan 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 dimintaclient.
RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma 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.
Umumnya protokol RPC yang digunakan pada saat ini adalah DCOM (Distributed Component Object Model). Saat ini ada alternatif protokol baru, yakni SOAP (Simple Object Access Protocol), yang berdasarkan pada teknologi XML.
Implementasi RPC
Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR (eXternal Data Representation) standard, UDP atau TCP transport protocol.
Xerox Courier : RPC model, Data representation standard, XNS (Xerox Network Systems) SPP (Sequenced Packet Protocol) sebagai transport protocol, Apollo’s Network Computing Architecture (NCA), RPC protocol, NDR (Network Data Representation).
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 soket, 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
- Static relationship between client & server at run-time.
- Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.
· Kurangnya location transparency
- Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference.
- Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time).
- Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yg terpisah.
Prinsip RPC dalam program clien-server
untitled
Langkah-langkah dalam RPC
untitled1
1. Client procedure memanggil client stub secara normal
2. Client stub membuat pesan, memanggil local OS
3. Clients OS mengirim pesan ke remote OS
4. Remote OS member pesan ke server stub
5. Server stub membuka parameters, memanggil server
6. Server bekerja, mengembalikan hasil ke stub
7. Server stub mengepak itu kedalam pesan, memanggil local OS
8. Server OS mengirim pesan ke client OS
9. Client OS member pesan client stub
10. Stub membuka hasil, mengembalikan ke client

Contoh Implementasi RPC dengan SUN RPC
· Fungsi yg dipanggil client melalui RPC:
- bin_date_1:
No arguments.
Result in long integer: waktu saat ini, dlm jumlah detik sejak 00:00:00 GMT, January 1, 1970.
- str_date_1
Mengkonversi hasil bin_date_1 menjadi readable ASCII sring.
· Berkas yg dibuat programmer:
- Server procedure: date_proc.c
- RPC specification file: date.x
- Client main function: rdate.c
· date.x -> rpcgen ->
- Server stub: date_svc.c
- date.h
- Client stub: date_clnt.c
· Generate executable client program:
- cc o rdate rdate.c date_clnt.c lrpclib
· Generate executable server program:
- cc o date_svc date_proc.c date_svc.c lrpclib

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s06.html
http://viyan.staff.gunadarma.ac.id/Downloads/files/11848/2_Komunikasi.pdf
http://dagger24.blogspot.com/2010/03/remote-procedure-call-rpc.html

Sabtu, 09 Maret 2013

Model Sistem Terdistribusi


Definisi Sistem Terdistribusi :
Sistem terdistribusi adalah sebuah sistem yang terdiri dari beberapa komponen software atau hardware yang independent yang berkomunikasi dan berkoordinasi melalui message parsing baek sinkron maupun asinkron yang telihat satu kesatuan dan dirancang untuk menghasilkan fasilitas komputasi terintegrasi.

Contoh Sistem Terdistribusi :
  • Internet, global jaringan interkoneksi computer yang berkomunikasi melalui IP (Internet Protocol) Protocol.
  • Intranet, jaringan teradministrasi terpisah dengan batasan pada kebijakan keamanan local.
  • Mobile dan komputasi diberbagai tempat, laptops, PDA, mobile phone,printers, peraltan rumah, dll.
  • World Wide Web (www), sistem untuk publikasi dan akses sumber daya dan layanan melalui Internet.
  • Workstation network.
  • Automatic banking (mesin teler) system.
  • Automotive system(sistem distribusi real-time).

Model-model sistem terdistribusi adalah sebagai berikut:

Model Client Server
Sistem client-server mempunyai satu atau lebih proses client dan satu atau lebih proses server, dan sebuah proses client dapat mengirim query ke sembarang proses server. Client bertanggung jawab pada antar muka untuk user, sedangkan server mengatur data dan mengeksekusi transaksi. Sehingga suatu proses client berjalan pada sebuah personal computer dan mengirim query ke sebuah server yang berjalan pada mainframe.
Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang relatif sederhana karena pembagian fungsi yang baik dan karena server tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga, pemakai dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih mudah dibandingkan antar muka pada server yang tidak user-friendly. perlu diingat batasan antara client dan server dan untuk menjaga komunikasi antara keduanya yang berorientasi himpunan. Khususnya membuka kursor dan mengambil tupel pada satu waktu membangkitkan beberapa pesan dan dapat diabaikan.
  • Client:
           - Proses akses data
           - Melakukan operasi pada komputer lain
  • Server:
           - Proses mengatur data
           - Proses mengatur resources
           - Proses komputasi
  • Interaksi:
           - Invocation/result


Model Multiple Server
  • Service disediakan oleh beberapa server
Contoh: Sebuah situs yang jalankan dibeberapa server
  • Server menggunakan replikasi atau database terdistribusi

Model Proxy Server
Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur oleh server lain. Biasa nya proxy server di pakai untuk menyimpan hasil copy web resources. Ketika client melakukan request ke server, hal yang pertama dilakukan adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada proxy server. Proxy server dapat diletakkan pada setiap client atau dapat di pakai bersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity dengan mencegah frekwensi akses ke server.
  • Proxy server membuat duplikasi beberapa server yang diakses oleh client
  • Caching :
            - Penyimpanan lokal untuk item yang sering diakses
            - Meningkatkan kinerja
            - Mengurangi beban pada server
Contoh:
Searching satu topik namun dilakukan dua kali maka searching terakhir memiliki waktu yang lebih kecil

Model Peer To Peer
Bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server. Sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer. Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan. Peer-to-peer merupakan model yang paling general dan fleksible.

Model Mobile Code
  • Kode yang berpindah dan dijalankan pada pc yang berbeda
  • Contoh: Applet

Model Mobile Agent
  • Sebuah program yang berpindah dari satu komputer ke komputer yang lain
  • Melakukan perkerjaan otomatis
Contoh:
  • Untuk install dan pemeliharan software pada komputer sebuah organisasi

Karakteristik Sistem Terdistribusi
Karakteristik sistem terdistribusi adalah sebagai berikut :
  1. Concurrency of components.  Pengaksesan suatu komponen/sumber daya (segala hal yang dapat digunakan bersama dalam jaringan komputer, meliputi H/W dan S/W) secara bersamaan. Contoh: Beberapa pemakai browsermengakses halaman web secara bersamaan
  2. No global clock.  Hal ini menyebabkan kesulitan dalam mensinkronkan waktu seluruh komputer/perangkat yang terlibat. Dapat berpengaruh pada pengiriman pesan/data, seperti saat beberapa proses berebut ingin masuk kecritical session.
  3. Independent failures of components.  Setiap komponen/perangkat dapat mengalami kegagalan namun komponen/perangkat lain tetap berjalan dengan baik.

sumber : http://msdfreeks.blogspot.com/2012/10/sistem-terdistribusi.html