Kamis, 28 April 2016

RPC (Remote Procedure Call)

A. Latar Belakang

Suatu program dapat kita jalankan melalui perantara jaringan walaupun program tersebut tidak ada pada komputer kita. Dengan adanya sistem Remote Procedure Call (RPC) yang telah terintegrasi pada perangkat lunak sistem operasi. Dengan RPC ini suatu program dalam jaringan (komunikasi antar proses) dapat berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada remote system. Dengan RPC inilah semua komputer dalam jaringan dapat saling berkomunikasi/berbagi Resources yang ada pada setiap komputer dalam jaringan tersebut. Untuk mengetahui dan mengenal karakteristik dari RPC tersebut, maka kami menyusun makalah ini. Dan selain itu, kami menyusun makalah ini untuk memenuhi tugas yang diberikan oleh pembimbing mata kuliah Distributed System.

 

B. Pengertian RPC (Remote Procedure Call)

Gagasan tentang RPC (Remote Procedure Call) pertama kali ditemukan pada tahun 1976. Perusahaan yang pertama kali menggunakan RPC adalah Xerox pada tahun 1981. RPC di implementasikan pertama kali di sistem operasi Unix, Sun's RPC (sekarang disebut ONC RPC). ONC RPC masih banyak digunakan saat ini pada beberapa platform. Implementasi Unix yang lain digunakan oleh Apollo Computer Network Computing System (NCS). NCS kemudian digunakan sebagai dasar fondasi DCE/RPC di OSF Distributed Computing Environment (DCE). Satu dekade kemudian diadopsi oleh perusahaan Microsoft DCE/RP, Microsoft RPC (MSRPC) sebagai dasar mekanisme mereka, dan berjalan pada DCOM (Distributed Object Component Model). Sekitar waktu yang sama pertengahan tahun 90-an, Xerox PARC's ILU, dan Object Management Group CORBA, menawarkan paradigma RPC yang lain berdasarkan objek terdistribusi dengan mekanisme yang menggunakan metode warisan.

Remote Procedure Call adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengizinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). (Newmarch, 1995). RPC mengasumsikan keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun di atas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.

Protokol RPC mengizinkan pengguna untuk bekerja dengan prosedur remote sebagaimana bekerja dengan prosedur lokal. Prosedur panggilan remote didefinisikan melalui rutin yang terkandung di dalam protokol RPC. Tiap pesan dari panggilan akan disesuaikan dengan pesan balikan. Protokol RPC sendiri sebenarnya adalah suatu protokol untuk ”meneruskan pesan” yang mengimplementasikan protokol non-RPC lain seperti panggilan remote batching dan broadcasting. Protokol ini juga mendukung adanya prosedur callback dan select subroutine pada sisi server. (Spangler, 2004).

 

C. Client dan Server

Client adalah komputer atau proses yang mengakses suatu layanan, resources dari proses atau komputer pada suatu jaringan. Server adalah komputer yang menyediakan servis/layanan dan resources, dan yang mengimplementasikan servis jaringan. Tiap servis pada network adalah susunan dari program remote, dan tiap program remote mengimplementasi prosedur remote. Semua prosedur berikut parameternya dan hasilnya didokumentasi secara spesifik pada protokol suatu program.

Gambar Prinsip RPC pada Client-Server 

 

D. Fitur Dalam RPC

 

1. Batching Calls
Fitur Batching calls mengizinkan 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.


2. Broadcasting Calls
Fitur Broadcasting mengizinkan 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.


3. CallBack Procedures
Fitur Callback Procedures mengizinkan server untuk bertindak sebagai klien dan melakukan pemanggilan RPC kembali ke proses yang dijalankan oleh klien.


4. Select Subroutine
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 mengizinkan server untuk menginterupsi suatu aktivitas, memeriksa datanya, dan kemudian melanjutkan proses aktivitas tersebut.

 

E. Otentifikasi RPC

Proses otentifikasi adalah proses yang digunakan untuk mengidentifikasi server dan klien pada RPC. (Newmarch, 1995). 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 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 publik (public key) yang disahkan pada database kunci publik oleh Administrator jaringan tersebut.


4. 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.

 

5. Enkripsi Diffie-Hellman
Enkripsi Diffie-Hellman digunakan pada pembuatan kunci publik pada otentifikasi DES dengan menggunakan 192-bit kunci. Enkripsi ini memiliki dua buah variabel konstan, yaitu BASE dan MODULUS yang digunakan pada protokol otentifikasi DES.


RPC hanya berhubungan dengan proses otentifikasi, tidak dengan control akses terhadap servis/layanan individual yang diberikan. Tiap layanan mengimplementasikan peraturan mengenai kontrol akses masing-masing. Subsistem otentifikasi pada paket RPC bersifat open-ended, artinya beberapa otentifikasi dapat diasosiasikan pada RPC klien.

 

F. Implementasi RPC

 

1. Bahasa RPC
Bahasa RPC (RPC Language - RPCL) merupakan bahasa yang dikembangkan dari bahasa XDR. Bahasa RPC memiliki kemiripan dengan bahasa XDR namun dengan beberapa penambahan yaitu program definisi. Implementasi layanan protokol dan rutin menggunakan command rpcgen yang berkorespondensi dengan bahasa pemprograman C.  

 

2. Port Mapper
Port adalah kanal komunikasi diantara klien dan server. Port-port komunikasi ini dibedakan berdasarkan nomor yang dimilikinya dengan fungsi masing-masing. Namun nomor-nomor port ini, terutama yang memberikan layanan RPC, tidak diberikan pada jaringan transport. Jaringan transport hanya menyediakan layanan pemprosesan message di dalam jaringan. (Spangler, 2004)
Untuk mengatasi hal ini, maka program pada komputer klien harus mampu untuk mencari nomor port untuk tiap program di server yang hendak digunakan. Protokol port mapper adalah suatu layanan pada jaringan yang dapat mengatasi masalah ini. Protokol ini memberikan hak pada klien untuk mencari nomor port untuk semua program remote yang disediakan oleh server. Dengan demikian maka implementasi protokol ini pada suatu program port mapper akan memetakan tiap-tiap program RPC dan nomor versinya dengan nomor-nomor port yang spesifik.


a. Meregister Port
Port Mapper terletak pada nomor port 111 pada setiap mesin (host maupun server) dan merupakan satu-satunya layanan jaringan yang mempunyai port yang khusus dan tetap. Sedangkan untuk jenis layanan jaringan lainnya, nomor port-nya dapat statis atau berubah-ubah asalkan kesemuanya terdaftar pada TypeDef, pada bahasa ini memiliki syntax yang sama dengan typedef pada bahasa C. port mapper. Penempatan nomor port untuk tiap program remote ke dalam port mapper akan mengotomatisasi administrasi nomor-nomor port. Hasilnya akan disimpan dalam satu file dimana file ini akan diduplikat ke setiap klien. Sehingga akan terjadi proses pembaruan data (update) setiap kali ada program remote baru yang disediakan oleh jaringan. Salah satu cara alternatif agar sistem tidak harus selalu meng-update file mapper-nya adalah dengan menempatkan hasil pemetaan port program remote pada suatu file Network File System (NFS) yang di-sharing. Namun hal ini membawa masalah apabila server tidak dapat berfungsi, maka seluruh jaringan juga tidak dapat menggunakan fungsi ini.
Pemetaan port program yang disimpan pada suatu port mapper di server disebut dengan portmap. Port mapper ini akan dijalankan secara otomatis tiap kali mesin server dijalankan. Lalu baik program server maupun klien akan memanggil prosedur port mapper. Kemudian sebagai bagian dari proses inisialisasi, program server akan memanggil port mapper pada host untuk membuat entri pada portmap. Setelah itu, program server akan meng-update entri pada portmap, sedangkan program klien akan memanggil query dari entri portmap ini. Untuk mencari nomor port yang diinginkan, program klien kemudian mengirimkan RPC call message ke port mapper pada server. Apabila proses ini berhasil (server mendukung remote program yang diminta), port mapper server akan mengirimkan nomor port yang sesuai pada RPC reply message. Kemudian proses remote dapat dilakukan dengan menggunakan nomor port tersebut. Proses ini akan selalu dijalankan setiap kali ada permintaan remoteprogram dari klien ke server. Namun untuk meminimalisasi
pemanggilan port mapper, pada sisi klien disediakan cache untuk menyimpan nomor-nomor port yang sering digunakan.


b. Prosedur Port Mapper
Program port mapper mendukung dua protokol, yaitu UDP dan TCP/IP. Program ini terhubung pada port 111 untuk kedua protokol ini. Berikut ini adalah prosedur-prosedur yang digunakan program port mapper pada kedua protokol ini:

  • NULL

Prosedur ini tidak berfungsi, prosedur ini tidak memberikan parameter dan juga tidak memberikan hasil.

  • SET

Prosedur ini akan meregister program pada port mapper dengan memberikan parameter sebagai berikut: program number (prog), version number (vers), transport protocol number (prot), dan nomor port yang diminta untuk layanan ini. Hasil dari prosedur ini berupa Boolean True atau False yang mengindikasikan sukses tidaknya proses mapping.

  • UNSET

Prosedur ini digunakan untuk me-unregister program pada port mapping jika program remote tidak lagi digunakan. Parameter yang dibawa sama dengan prosedur SET dikurangi nomor protokol dan nomor port.

  • GETPORT

Prosedur ini memberikan parameter berupa nomor program (prog), version number (vers), dan transport protocol number (prot) untuk mendapatkan hasil berupa nomor port untuk program yang diminta.

  • DUMP

Prosedur ini akan mencatat semua entri dalam database port mapper. Prosedur ini tidak membutuhkan parameter dan memberikan hasil berupa (prog), (prot), (vers), dan nomor port.

  • CALLIT

Prosedur ini digunakan untuk memanggil suatu program remote lain padamesin yang sama tanpa harus mengetahui nomor port dari program yang diminta.


3. Lapisan RPC
Bagian antar-muka (interface) dari RPC dibagi menjadi 3 lapisan/bagian (layer) yaitu:


a. Lapisan Tertinggi (Highest Layer)

Lapisan ini merupakan lapisan yang bersentuhan langsung dengan sistem operasi, mesin dan jaringan tempat RPC berjalan. Layer ini umumnya banyak digunakan pada pembuatan dan pemprograman RPC karena penggunaan layer ini sama saja dengan penggunaan RPC. Banyak servis/layanan pada layer ini yang berhubungan langsung dengan informasi yang banyak dibutuhkan.


b. Lapisan Menengah (Intermediate Layer)

Lapisan ini merupakan implementasi dari RPC sesungguhnya. Pada layer ini, seorang user tidak harus berhubungan dengan soket, sistem operasi atau implementasi lo-level lainnya. Pada layer ini, seorang user hanya melakukan proses remote pada suatu mesin. Layer ini merupakan layer yang digunakan untuk semua program RPC.


c. Lapisan Terendah (Lowest Layer)

Lapisan ini merupakan lapisan yang mengatur tentang soket dan sistem call. Lapisan ini tidak memberikan data dan servis secara detail untuk dapatdigunakan. Umumnya program yang dibuat untuk lapisan ini merupakan program yang paling efisien. Permasalahan yang timbul pada sistem ini berkaitan dengan penyesuaian implementasi RPC untuk sistem operasi yang berbeda.


4. Model dan Cara Kerja RPC

Prosedur call umumnya berkaitan dengan penggunaan stack, penyimpanan parameter yang diterima dalam stack tersebut dan pengalokasian ruang untuk lokal variabel. Namun selain itu ada yang disebut dengan Prosedur Call remote, yang berarti pelaksanaan proses diatas namun pada suatu sistem lain yang berhubungan melalui suatu jaringan. Sistem prosedur remote ini memiliki cara kerja yang sedikit banyak mirip, namun berbeda dengan prosedur call biasa. Berikut adalah gambar cara kerja dari RPC.

                                                        

                                                  Gambar Cara Kerja RPC

Tiap prosedur yang dipanggil dalam RPC, harus berkoneksi dengan server remote de-ngan 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. (Newmarch, 1995).
Server harus membaca tiap parameter yang diberikan, kemudian memberikan prosedur lokal yang sesuai dengan permintaan dan parameter. Kemudian setelah eksekusi, server harus mengirimkan hasil kepada pihak pemanggil proses.

                                         Gambar Remote Procedure Call Flow


Diagram diatas memberikan gambaran mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang akan menjelaskan secara rinci mengenai proses yang terjadi pada klien dan server dalam eksekusi suatu prosedur RPC.

Gambar Proses RPC 

Penjelasan:

 

  1. Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut sebagai marshalling.

  2. Fungsi Network pada O/S (Operating System - Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.

  3. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-oriented.

  4. Stub pada sisi server akan melakukan proses unmarshals pada paket yangdikirim oleh network.

  5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.

  6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server.

  7. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan (hasilnya) kembali ke jaringan.

  8. Message ini akan dikirim kembali ke klien.

  9. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.

  10. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.

G. Kelemahan dan Pencegahan Eksploitasi RPC

Tujuan utama penggunaan protokol RPC adalah untuk mempermudah komunikasi dalam pembangunan aplikasi klien-server yang terdistribusi. Namun dalam perkembangannya, seiring dengan perkembangan sistem operasi, protokol ini banyak disalahgunakan. Hal ini terkait dengan kelemahan protokol ini yang dimanfaatkan oleh
pihak-pihak tertentu untuk mendapatkan keuntungan atau sekedar untuk mengacaukan sistem yang berlaku. Tindakan ini disebut juga dengan eksploitasi RPC.


1. Kelemahan RPC pada Sistem Operasi Windows

Sistem operasi Microsoft Windows adalah salah satu sistem operasi yang mendukung protokol RPC. Sebagai sistem operasi yang paling banyak digunakan di seluruh dunia baik untuk PC Desktop maupun server, sistem operasi Windows menjadi salah satu sistem operasi yang banyak dijadikan target mulai dari serangan virus, worm, sampai trojan. Protokol RPC juga tidak luput menjadi sasaran serangan oleh pihak yang tidak bertanggung jawab.
Alasan penyerangan pada protokol ini disebabkan karena kemudahan ketergantungan sistem operasi Windows pada servis/layanan RPC. Banyak layanan pada sistem operasi ini yang didesain untuk bergantung pada layanan RPC, baik digunakan maupun tidak. Pengguna sistem operasi ini tidak dapat mengdisfungsikan layanan RPC. Pengguna bisa saja menggunakan firewall untuk memblok port RPC, namun karena sistem operasi Windows terlalu bergantung pada mekanisme RPC sebagai fungsi dasarnya maka hal ini kadang-kadang tidak berhasil. Bahkan sebagai studi kasus, pada sistem operasi Windows Server 2003 terdapat kelemahan pada fungsi RPC itu sendiri.
Kelemahan protokol RPC pada sistem operasi ini terletak pada fungsi RPC yang berhubungan dengan pertukaran message melalui protokol TCP/IP. Hal ini mempengaruhi bagian antar-muka Distributed Component Object Model (DCOM) yang berhubungan dengan RPC, yang akan mendengarkan (listen) port-port RPC yang tersedia. DCOM adalah protokol yang berfungsi untuk mengaktifkan komponen pada perangkat lunak (software) agar dapat berkomunikasi langsung dengan jaringan. Protokol ini didesain untuk penggunaan
jaringan multi transport termasuk protocol Internet misalnya HTTP. RPC melalui HTTP v1 (pada sistem operasi WIndows NT 4.0, Windows 2000) dan v2 (Windows XP, Windows Server 2003) mempunyai suatu fitur baru yaitu mendukung protokol transportasi RPC yang mengijinkan RPC untuk beroperasi melalui port TCP 80 dan 443. Hal ini menyebabkan komunikasi antara klien dan server dapat dilakukan walaupun dalam pengawasan server proxy dan firewall. COM Internet Services (COM) mengijinkan DCOM untuk melakukan RPC melalui HTTP untuk komunikasi DCOM klien dan DCOM server.
Port Portmap 111 adalah nomor port yang paling banyak diakses, namun umumnya nomor port ini telah difilter oleh firewall. Kecenderungan lain berpindah pada nomor port lain yang dapat digunakan untuk mengirim pesan tertentu yang telah dimanipulasi, seperti port 135, 139, 445, 593 pada remote komputer. Melalui port-port ini maka seorang user dapat melakukan permintaan yang dapat mengekploitasi dengan menjalankan kode dengan hak sistem lokal. Berikut ini tabel protokol yang sering dimanfaatkan pada ekploitasi RPC:
Tabel Port dan Protokol yang umum dieksploitasi


Urutan Protokol yang digunakan oleh Endpoint Mapper
Urutan Protokol yang digunakan oleh Endpoint Mapper
Port TCP atau UDP
ncacn ip tcp
TCP/135
ncacn ip udp
UDP/135
ncacn np pipe emapper
TCP/139 dan TCP/445
ncacn http

TCP/593

ncacn http dengan servis COM Internet aktif

TCP/180


Masalah ini semuanya disebabkan oleh kelemahan pada servis RPCSS. Servis ini berhubungan dengan aktivasi DCOM. Kegagalan terjadi pada penanganan messages yang salah sehingga mempengaruhi aktivasi DCOM yang mendengarkan port UDP 135, 137, 138, 445 dan port TCP 135, 139, 445, 593. Ditambah port 80 dan 443 (CIS atau RPC over HTTP) jika diaktifkan. Dengan kesalahan ini, maka seorang klien dapat menggunakan kegagalan ini untuk mengeksekusi kode yang dapat dijalankan pada server.


2. Pencegahan Eksploitasi RPC
Pentingnya nilai informasi yang terkandung dalam suatu server atau sebuah computer pribadi mengharuskan penggunanya baik user atau Administrator harus melakukan tindakan preventif guna menghindari adanya kebocoran informasi ini. RPC sendiri adalah suatu layanan yang vital dan ada di dalam setiap sistem operasi, khususnya sistem operasi Microsoft Windows yang bergantung pada jenis layanan ini. Oleh karena itu menghilangkan layanan RPC pada sistem operasi terasa lebih susah ketimbang dilakukan pengawasan ekstra terhadap layanan ini. Berikut ini adalah beberapa cara yang dapat digunakan untuk melakukan hal ini (Microsoft, 2003):


  • Memblokir port 135, 137, 138 dan 445 pada UDP dan port 135, 149, 445, dan 593   pada TCP melalui Firewall. Disfungsikan COM Internet Services (CIS) dan RPC melalui HTTP yang menggunakan port 80 dan 443 terutama pada jaringan remote yang menggunakan VPN (Virtual Private Network) atau sejenisnya.

  • Gunakan personal Firewall seperti Internet Connection Firewall.

  • Blokir semua port sering diekploitasi dengan menggunakan filter IPSEC.

  • Disfungsikan fitur DCOM pada setiap komputer atau server.

  • Khusus sistem operasi buatan Microsoft, selalu update security patch untuk meningkatkan keamanan sistem operasi tersebut.


H. Distributed Component Object Model (DCOM)

Distributed Component Object Model adalah protokol yang berfungsi untuk mengaktifkan komponen pada perangkat lunak (software) agar dapat berkomunikasi langsung dengan jaringan. (Spangler, 2004). Tujuan DCOM adalah agar komponen yang telah dibuat dapat diregister di suatu komputer dan di akses oleh banyak komputer lain. Protokol yang digunakan oleh DCOM dapat meliputi:

  • Protokol TCP/IP

  • Protokol UDP/IP

  • Protokol HTTP

  • Protokol RPC


Secara umum DCOM menerapkan sistem Klien-Server sehingga terdapat istilah DCOM klien dan DCOM server. Cara kerja DCOM yang menggunakan Remote Procedure Call dimana Object diletakkan di dalam Back-End (Server) dalam bentuk file Dll (Dynamic Linking Library) dan klien akan mengakses objek tersebut melalaui media jaringan yang ada.


1. Arsitektur DCOM
DCOM merupakan ektensi dari Component Object Model (COM). Pada COM kita melihat bagaimana suatu komponen client saling berinteraksi. Interaksi ini dapat didefinisikan sebagai hubungan secara langsung antara komponen (COM Server) dan COM Client. Aplikasi client memanggil method yang ada di komponen COM tanpa
perantara apapun dan terjadi dalam suatu proses baik pada aplikasi client maupun komponen itu sendiri.
Sedangkan pada sistem operasi yang baru proses akan dilindungi dari gangguan proses yang lain sehingga aplikasi client tidak akan langsung
mamanggil komponen tetapi melalui interproses yang disediakan oleh sistem operasi. Ketika client dan server pada tempat yang berbeda, DCOM akan menggantikan local interproses yang berkomunikasi dengan sebuah jaringan protokol. Melalui protocol DCOM ini, aplikasi client dapat mengakses DCOM server. DCOM juga menyembunyikan lokasi suatu komponen sehingga aplikasi tinggal langsungmemanggil method yang ada di komponen DCOM. Lokasi DCOM yang independen inilah yang membuat penyederhanaan pada penerapan sistem distribusi suatu komponen dan juga meningkatkan performance.
Bayangkan kita mempunyai komponen yang banyak dan kemudian dilakukan distribusi ke jaringan LAN, maka hal ini akan meningkatkan laju trafik jaringan sehingga komunikasi data pada jaringan LAN ini akan jauh lebih lambat. Dengan adanya DCOM maka semua komponen didistribusikan dalam suatu protokol DCOM dan proses yang sama. Ketika suatu aplikasi mengakses komponen melalui DCOM maka DCOM akan melakukan proses validasi komponen, tujuanya untuk mengakses apakah komponen yang dipanggil ini ada didalam DCOM.

Gambar Arsitektur DCOM


2. Cara Kerja Remote DCOM
Salah satu kegunaan DCOM adalah distribusi dan remoting suatu objek ke komponen lain dalam suatu jaringan komputer. Ketika akan membuat suatu komponen COM dan komponen yang akan diakses banyak komputer dalam waktu bersamaan, maka harus dilakukan sistem distribusi untuk objek yang dibuat dan akan dilakukan load balancing karena banyaknya objek akses data dari komputer lain. Dengan DCOM ini, maka didapatkan solusi untuk masalah sistem distribusi. Aplikasi dikatakan berbasis sistem remoting apabila aplikasi itu mengakses suatu objek yang dapat berupa data, suara, informasi dan sebagainya dari suatu komputer yang ada dalam suatu jaringan tertentu. Dalam kasus ini DCOM client akan berfungsi sebagai remoter yaitu objek yang melakukan remote ke computer server melalui DCOM Server.
Jika diperhatikan, maka akan terlihat bahwa komunikasi antara computer dilakukan melalui DCOM. Misalkan komputer A meminta data dari database, maka komputer A akan meminta data melalui objek yang ada di DCOM Client. Kemudian DCOM Client akan melakukan validasi mengenai komponen objek yang dieksekusi, jika ditemukan objek yang meminta, maka DCOM Client akan mengecek sumber objek berasal sebagai contohnya sumber objek berasal dari
komputer server S, maka DCOM Client akan melakukan remoting ke komputer S melalui DCOM Server yang dimilikinya. DCOM Server akan mengecek kepemilikannya yang dimilki oleh komputer A. Jika komputer A mempunyai hak akses maka DCOM Server akan mengeksekusi sesuai permintaan komputer A dan hasilnya dikembalikan ke DCOM Client. Proses ini akan sama untuk setiap komputer yang ingin melakukan remoting melalui DCOM. Berikut gambaran arsitekturnya hubungan antara DCOM Server, DCOM Client dan Server Database.


Kesimpulan

Remote Procedure Call adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu computer pada Remote System. RPC memiliki beberapa fitur diantaranya adalah mengirim message calls ke server dalam jumlah besar secara berurutan, mengirim paket data ke jaringan dan menunggu balasan dari Networks, mengijinkan server untuk bertindak sebagai klien, dan memeriksa deskripsi dari suatu file dan messages dalam antrian.
Didalam RPC terdapat proses otentifikasi yang digunakan untuk mengidentifikasi server dan kliennya. Teknologi RPC pun memiliki kelemahan pada suatu sistem operasi yang terletak pada fungsi RPC yang berhubungan dengan pertukaran message melalui protokol TCP/IP. Hal ini mempengaruhi bagian antar-muka Distributed Component Object Model (DCOM) yang berhubungan dengan RPC, yang akan mendengarkan (listen) port-port RPC yang tersedia. Untuk mencegah hal ini terjadi sistem operasi harus memiliki keamanan yang baik dan update. Salah satu caranya adalah dengan mengaktifkan fasilitas Firewall.

Tidak ada komentar:

Posting Komentar