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
- Format yang sederhana dan dapat dikembangkan,
- Bisa dijalankan dimana saja tidak terbatas pada platform tertentu,
- Bisa menggunakan bahasa pemrograman apa saja,,
- Multi-protocol seperti HTTP, JMS, RPC, SMTP, dll.
- Dapat melewati firewalls sehingga mendukung model HTTP get / reponse, dan
- Tipe yang kuat dan melekat pada sebuah kontrak.
Kekurangan SOAP
- Walaupun sederhana, pesannya dapat panjang karena kebutuhannya untuk mengemasnya dalam bentuk SOAP envelope,
- Karena SOAP berbasis XML, dibutuhkan waktu untuk parsing XML tersebut karena harus di kedua pihak melakukannya (pengirim dan penerima pesan),
- Walaupun SOAP standart yang terbuka, tidak semua bahasa mendukung dengan baik. Yang terbaik untuk mendukung SOAP adalah JAVA, .Net, dan Flex, dan
- Sulit untuk dikembangkan, mebutuhkan tools .
Struktur SOAP
Struktur Dokumen SOAP Sebuah pesan SOAP adalah sebuah dokumen
XML yang berisi elemen-elemen berikut:
- Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
- Header element yang berisi informasi header.
- Body element yang berisi panggilan dan merespon informasi.
- 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.
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.
Contoh Penerapan SOAP pada Java
Dokumentasi SOAP
0 komentar:
Posting Komentar