Home > Teknologi Informasi > Pengantar XMLRPC

Pengantar XMLRPC

Pengertian XMLRPC menurut http://www.xmlrpc.com adalah suatu spesifikasi dan set implementasi yang mengijinkan perangkat lunak yang sistem operasi terpisah, berjalan di lingkungan yang berbeda untuk membuat procedure call di internet.

XMLRPC menggunakan HTTP sebagai transport dan XML sebagai encoding. XMLRPC dirancang sesederhana mungkin namun dapat mentransmisikan, memproses dan mengirim balik struktur data yang kompleks.

Dalam spesifikasinya, XMLRPC didefinisikan sebagai suatu protokol pemanggilan prosedur secara remote yang bekerja di lingkungan internet. suatu pesan XMLRPC adalah suatu request HTTP-POST. Body dari request adalah XML. Suatu prosedur mengirimkan pesan ke server dan nilai balikannya juga terformat sebagai XML. Parameter prosedur dapat berupa skalar, angka, string, tanggal dan seterusnya. Dapat pula berupa complex record maupun list structure.

Berikut adalah contoh request XMLRPC :

POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com
Content-Type: text/xml
Content-length: 181

<?xml version=”1.0″?>
<methodCall>
<methodName>
examples.getStateName</methodCall>
<params>
<param>
<value><string>Hello Server !</string></value>
</param>
</params>
</methodCall> 

yang perlu diperhatikan :

  • semua request XMLRPC secara default dikirimkan dengan method POST dan pasti di atas HTTP/1.0,
  • bila server yang dituju tidak hanya menangani pemanggilan XMLRPC saja maka format URI-nya harus dituliskan /RPC2 yang akan memberitahukan server untuk mengarahkan request tersebut ke RPC2 responder,
  • bila server hanya menangani pemanggilan XMPRPC saja maka URI ini boleh dikosongkan atau hanya berupa slash (karakter garis miring ke kanan),
  • User-Agent dan Host harus dituliskan,
  • Content-Type adalah text/xml,
  • Content-Length harus dituliskan dan harus benar,
  • versi XML yang digunakan adalah 1.0,
  • dalam sekali pengiriman request XMLRPC hanya dijinkan mengirim satu <methodCall>,
  • sebuah <methodCall> dipanggil berdasarkan namanya yang ditulis dalam tag <methodName> yang merupakan suatu string. String ini hanya boleh mengandung karakter-karakter indentifier yaitu : huruf besar dan kecil (A-z), karakter angka (0-9), karakter garis bawah (underscore), titik, colon dan slash,
  • jika pemanggil prosedur memiliki parameter maka <methodCall> harus mengandung sebuah sub-items <params>. Sebuah <params> dapat terdiri dari beberapa <param> yang masing-masing memiliki sebuah nilai <value>,
  • Tipe data yang dikirimkan ditulis dalam bentuk tag dengan penjelasan masing-masing tipe data seperti berikut ini :
  • <i4> atau <int> adalah 4 byte signed integer,
  • <bolean> adalah tipe data bolean, 1 untuk true dan 0 untuk false,
  • <string> yang tentu anda sudah tahu yaitu tipe data string,
  • <double> yaitu double-precision signed floating point number,
  • <dateTime.iso8601> adalah tipe data date/time,
  • <base64> adalah base64-encoded binary.

Berikut adalah contoh response dari server :

HTTP/1.1 200 OK
Connection: Close
Content-Length: 158
Content-Type: text/xml
Date: Fri, 12 Jan 2007 14:30:32 GMT
Server: UserLand Frontier/5.1.2-WinNt

<?xml version=”1.0″?>
<methodResponse>
<params>
<param>
<value><string>Hello Client !</string></value>
</param>
</params>
</methodResponse>

yang perlu diperhatikan :

  • Kecuali ada lower-level error selalu dikembalikan 200 OK,
  • Content-Type adalah text/xml,
  • Content-Length harus ada dan harus benar,
  • Body dari response adalah sebuah struktur XML tunggal <methodResponse>,
  • sebuah <methodeResponse> hanya mengandung sebuah <params> yang mengandung sebuah <param> dengan sebuah <value>,
  • tipe data dari <value> mungkin berupa <struct>, <int> ataupun <string>.

Pengantar RPC (Remote Procedure Call)

RPC merupakan suatu teknik untuk mendistribusikan secara konstruktif aplikasi berbasis client-server. Sebelum membahas RPC lebih mendalam, akan sedikit diulas perihal client-server. Kebanyakan dari kita menganggap bahwa client-server mengandung pengertian bahwa ada program yang dijalankan di komputer server yang dapat memberikan layanan atas request oleh program yang dijalankan di komputer client yang beda dengan komputer server namun saling terhubung dengan media/link, tata cara jalur komunikasi /protokol, port dan tata cara/aturan pemanggilan  tertentu. Asumsi ini sama sekali tidak salah. Tata cara/aturan pemanggilan inilah yang bisa dikatakan sebagai RPC.

Namun demikian sebenarnya RPC dikembangkan  dari pemanggilan  prosedur lokal/konvensional pada satu sistem komputer yang biasa disebut sebagai Procedure Call saja. Procedure Call sendiri adalah suatu mekanisme pemanggilan/penanganan antar proses dalam satu sistem komputer.

Jadi diperlukan ruang pengalamatan yang sama (the same address space) agar dimungkinkan pemanggilan suatu prosedur. Dua proses mungkin saja berjalan dalam satu sistem yang sama namun bisa juga berada pada sistem yang berbeda yang terhubung melalui network seperti asumsi diatas.

Dengan RPC, para programmer aplikasi terdistribusi dapat menghindarkan diri dari kerumitan antar muka/interface pada network. Kebebasan transport dari suatu RPC dapat melindungi aplikasi dari elemen-elemen fisk dan logik atas mekanisme komunikasi dan mengijinkan aplikasi menggunakan variasi sistem transport. RPC membuat model client/server menjadi powerful dan mudah diprogram.

Pada bab implementasi, nantinya akan kita buat program yang dapat melakukan pemanggilan prosedur lokal maupun yang memiliki kemampuan Remote Procedure Call dengan bahasa pemrograman Delphi.

Adapun tujuan akhirnya adalah membuat program yang bisa menerapkan sistem komputasi client-server dengan Remote Procedure Call dimana data yang dipertukarkan terformat sebagai dokumen XML. Hal inilah yang dikenal sebagai XMLRPC.

Categories: Teknologi Informasi
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: