Rabu, 01 Januari 2020

Web Serive berbasis SOAP (Simple Object Access Protocol)

Apa itu SOAP ? 


  SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data,

     SOAP bisa disebut juga sebagai aplikasi pesan dari sebuah XML yang sangat bergantung pada skema XML dan XML namespaces untuk mendefinisikannya.Dalam hal ini SOAP sangat bergantung pada protokol layer lainnya, seperti pada JMS, HTTP, dan RPC untuk transmisi pesan. SOAP hampir sama dengan dengan protokol XMLRP hanya saja pada SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client server. Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML.

Kelebihan SOAP
  1. Format yang sederhana dan dapat dikembangkan,
  2. Bisa dijalankan dimana saja tidak terbatas pada platform tertentu,
  3. Bisa menggunakan bahasa pemrograman apa saja,,
  4. Multi-protocol seperti HTTP, JMS, RPC, SMTP, dll.
  5. Dapat melewati firewalls sehingga mendukung model HTTP get / reponse, dan
  6. Tipe yang kuat dan melekat pada sebuah kontrak.

Kekurangan SOAP
  1. Walaupun sederhana, pesannya dapat panjang karena kebutuhannya untuk mengemasnya dalam bentuk SOAP envelope,
  2. Karena SOAP berbasis XML, dibutuhkan waktu untuk parsing XML tersebut karena harus di kedua pihak melakukannya (pengirim dan penerima pesan),
  3. Walaupun SOAP standart yang terbuka, tidak semua bahasa mendukung dengan baik. Yang terbaik untuk mendukung SOAP adalah JAVA, .Net, dan Flex, dan
  4. Sulit untuk dikembangkan, mebutuhkan tools .
Struktur SOAP
     Struktur Dokumen SOAP Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut:
  1. Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
  2. Header element yang berisi informasi header. 
  3. Body element yang berisi panggilan dan merespon informasi. 
  4. Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses.





SOAP Message 
   Bagian header menyimpan informasi yang berhubungan dengan cara memproses message ini. Di dalamnya termasuk informasi mengenai pengaturan pengiriman, autentikasi dan autorisasi, dan konteks transaksinya. Sedangkan bagian body menyimpan message yang akan di prosesnya. Sintaks XML apapun dapat dimasukan ke dalam bagian body.

Contoh SOAP Message
SOAP Transport
    SOAP merupakan protokol pemaketan data yang berada di atas layer network dan transport. Sebagai suatu protokol pemaketan data, SOAP menjadi fleksibel dalam penggunaan. Contohnya, sebuah web service SOAP berbasis Perl yaitu SOAP::Lite, mendukung pertukaran SOAP Message di beberapa protokol diantaranya HTTP, FTP, raw TCP, SMTP, POP3, MQSeries, dan Jabber.

SOAP melalui HTTP
       Protokol HTTP merupakan protokol yang paling digunakan dalam mengirimkan SOAP Message. SOAP mendeskripsikan model pertukaran message khusus untuk di HTTP. Dengan begitu cara ini cocok dengan model SOAP RPC (Request-Response) dikarenakan HTTP merupakan protokol bertipe request-response. Pesan SOAP Request di post ke server dengan HTTP Request, kemudian server menjawab dengan HTTP Response yang berisi pesan SOAP Response. 
Arsitektur SOAP
Pemrosesan 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.

Tidak ada komentar:

Posting Komentar

Web Service

Apa itu Web Service?   Web service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interoperabilitas dan interaksi an...