Sabtu, 29 Oktober 2011

Simple Object Access Protocol (SOAP)

Apa itu SOAP?

SOAP adalah singkatan dari Simple Object Access Protocol, merupakan sebuah protokol komunikasi client server yang mengirim dan menerima informasi "di atas HTTP". Data yang dikirim dan diterima dalam format XML. SOAP hampir sama dengan protokol XMLRP, hanya saja SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client-server. 

Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML. SOAP merupakan mekanisme lain yang memungkinkan penggunaan remote procedure call. SOAP bersifat netral platform, netral bahasa dan tidak bergantung pada suatu objek model. Sehingga SOAP-enabled distributed application dapat menjangkau beragam operating sistem, dimana terdiri dari objek yang berasal dari vendor yang berbeda, ditulis pada bahasa yang berbeda, dan didasarkan pada objek model yang berbeda. 

SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai vendor TI – dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak digunakan. Misalnya untuk protokol transport, yang paling banyak digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data. Dengan demikian, tidaklah terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi penyelamat untuk mengatasi berbagai masalah yang dihadapi oleh teknologi – teknologi pendahulunya.

Arsitektur SOAP
Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body (required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut diproses. Hal ini meliputi pe-routingan dan delivery setting, authentication atau authorization assertions, and transaction contexts. Body berisi pesan sebenarnya yang dikirim dan diproses. Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam pesan body.

Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi sebanyak mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen Body ditentukan dalam suatu cara dimana dapat berisi valid dan wellformed XML yang telah dibatasi oleh suatu namespace (qualified).


Jika sebuah Envelope berisi elemen Header, harus berisi tidak lebih dari satu, dan harus tampak pada first child dari Envelope, sebelum elemen Body. Header dapat berisi valid, well-formed, dan dibatasi dengan namespace XML dimana hendak dimasukkan oleh pencipta pesan SOAP.

Setiap elemen yang berada dalam Header disebut blok header. Tujuan dari blok header adalah untuk memberitahukan infomasi yang berhubungan dengan  pemrosesan pesan SOAP.
Berikut gambar posisi SOAP dalam aplikasi dan contoh struktur pesan SOAP :

SOAP anatomi call

Contoh struktur pesan SOAP

Aturan SOAP
Ada beberapa aturan yang diberlakukan pada SOAP, yakni :
  1.  SOAP Envelope menggunakan namespace
  2. Default namespace untuk SOAP encoding dan data types
  3. SOAP’s Syntax Rules:
    SOAP harus dibuat dengan menggunakan sintaks XML
    SOAP harus menggunakan SOAP Envelope namespace
    SOAP harus menggunakan SOAP Encoding namespace
    SOAP tidak boleh mengandung DTD
  4. SOAP tidak boleh mengadung XML Processing Instruction

Kelebihan & Kekurangan SOAP

Adapun kelebihan SOAP dapat diuraikan sebagai berikut :
  1. Menggunakan HTTP yang telah digunakan secara luas
  2. Bersifat fleksible, mudah dikembangkan, karena berbasis XML
  3. Data in string message
Selain kelebihan, SOAP memilki beberapa kekurangan, di antaranya :
  1. Parsing paket SOAP dan pemetaannya ke obyek mengurangi kinerja
  2. Tidak menerapkan keamanan khusus, karena merupakan "wire protocol" yang bergantung pada HTTP
*** Dari berbagai sumber

    2 komentar:

    1. ada sample projectnya yg simple nggk mba'e.

      BalasHapus
    2. bisa di terapkan jika di masukkan ke server mbak fitri??
      berbentuk txt atau xml?

      trimakasih

      BalasHapus