Apa Itu SOAP ?
SOAP singkatan dari "Simple Object Access
Protocol", yang relatif baru
protokol untuk aplikasi terdistribusi yang dikembangkan oleh Microsoft,
IBM, DevelopMentor, dan UserLand. SOAP sangat "fleksibel" dan dapat
mendukung aplikasi yang berbeda; Namun, yang paling penting adalah untuk
memungkinkan panggilan prosedur remote (RPC) melalui HTTP menggunakan XML. SOAP
adalah berbasis XML objek protokol doa dan awalnya dikembangkan untuk aplikasi
terdistribusi untuk berkomunikasi melalui HTTP dan melalui firewall perusahaan
dan itu dimaksudkan untuk mengakses layanan, objek dan server dalam platform-independen. Spesifikasi SOAP asli (1,0)
menguraikan dua gol desain utama:
1 - Menyediakan doa protokol objek standar yang
dibangun pada standar Internet, menggunakan
HTTP sebagai transportasi dan XML untuk data encoding.
2 - Membuat protokol diperluas dan format payload yang
dapat berkembang [SOAP].
Sebuah spesifikasi 1,1 kemudian menyatakan: "Tujuan
desain utama untuk SOAP adalah kesederhanaan dan diperpanjang
". [MSFT]
Manfaat
SOAP :
- Menggunakan SOAP melalui HTTP mengijinkan kemudahan komunikasi melewati proxy dan firewall.
- SOAP cukup berguna untuk mengijinkan penggunaan dalam protocol transport yang berbeda.
- SOAP adalah independen protocol.
- SOAP adalah bahasa yang independent.
Kelemahan
SOAP :
- SOAP dapat menjadi lambat saat ditandingkan dengan teknologi middleware seperti CORBA.
- Kebanyakan penggunaan HTTP sebagai protokol transpor dilakukan dengan ketidaktahuan bagaimana operasi dapat dimodelkan dalam HTTP.
- Saat mempercayakan HTTP sebagai protokol transfer, sebuah firewall didesain hanya untuk mengijinkan web browsing menampilkan analisa lebih detail. Walaupun SOAP merupakan standar terbuka, tidak semua bahasa menyediakan layanan. JAVA, Delphi, .Net dan Flex menawarkan integrasi SOAP/ layanan IDE dengan sangat baik. Sedangkan Python dan PHP layanannya lebih lemah.
Ide Dibalik SOAP:
Dunia-wide-web berkembang dari situs Web yang hanya
melayani sampai Halaman Web ke dalam layanan Web dinamis yang interaktif
melakukan tugas-tugas yang melibatkan beberapa langkah dieksekusi atas nama
pengguna. Tugas-tugas ini mungkin memerlukan satu layanan Web untuk memanggil
layanan Web lain, mengkoordinasikan langkah-langkah lebih seperti program
perangkat lunak tradisional mengeksekusi perintah. Masalah hari ini adalah
bahwa mengintegrasikan dengan layanan lain dan menyentuh perangkat yang berbeda
tetap sulit, karena alat (seperti CORBA atau COM) dan konvensi umum untuk
interkoneksi mereka relatif sulit untuk mengelola. Apa Web kebutuhan adalah
cara yang umum untuk mengikat semua layanan bersama.
Secara historis, solusi untuk membuat semacam ini kaya
aplikasi-ke-komunikasi aplikasi telah mempekerjakan model objek seperti
Microsoft DCOM atau Internet Object Management Group Inter-ORB Protocol (IIOP)
yang merupakan bagian dari Broker Permintaan Obyek Umum Arsitektur (CORBA).
Namun teknologi ini memiliki beberapa keterbatasan ketika datang untuk
menciptakan layanan Web. Secara khusus, DCOM dan IIOP / CORBA adalah lingkungan
yang kaya, yang berarti bahwa implementasi dan aplikasi bahwa penggunaan mereka
cenderung kompleks dan simetris. Dengan kata lain, untuk membangun didistribusikan
aplikasi menggunakan mereka, kami biasanya memerlukan terdistribusi sama model
objek berjalan pada kedua ujung koneksi. Namun, Internet tidak menjamin apa jenis tertentu dari
perangkat lunak klien atau server sedang berjalan di ujung sambungan; sering
satu-satunya umum saluran komunikasi yang tersedia hanya HTTP-koneksi. Masalah
dengan HTTP saja bahwa hal ini terutama mekanisme untuk lewat file dari server
ke klien. Untuk membuat layanan Web yang lebih ambisius, itu diperlukan untuk
memperpanjang HTTP. SOAP tidak tepat: itu menambah satu set HTTP header
dan payload XML kaya untuk memungkinkan kompleks aplikasi-ke-aplikasi
komunikasi melalui Internet. [MSFT]
Gagasan utama
di balik SOAP adalah untuk:
Meningkatkan interoperabilitas Internet dan Mengintegrasikan
sistem bisnis berbagai DCOM dan CORBA dianggap sebagai terlalu kompleks
terutama pada sisi klien. SOAP akan lebih baik karena sederhana, mudah
digunakan di atas protokol komunikasi yang ada, berdasarkan pada XML dan
implementasi-independen.
SOAP adalah protokol yang sangat sederhana yang
merendahkan sebagian besar pekerjaan "nyata" untuk layanan mendasari
atau model komponen. Ini bukan pengganti COM atau Enterprise JavaBeans atau
bahkan komponen CORBA - itu hanya pembungkus teknologi untuk membuat layanan
tersebut lebih mudah diakses melalui Internet. [CNET] Karena SOAP
didasarkan pada XML, itu kompatibel dengan pemrograman banyak model dan
memungkinkan perusahaan untuk dengan mudah bertukar data satu sama lain selama Internet.
Dalam prakteknya, sebagian besar perusahaan membangun dan menjalankan campuran
aplikasi dan teknologi distribusi dibangun menggunakan COM, CORBA, Java RMI,
dan lainnya teknologi. Sebuah protokol yang memberikan kebebasan yang lebih
besar perusahaan dengan sistem hubungan baik secara internal dan di seluruh Net
dengan perusahaan lain diharapkan akan menyambut hangat. [CNET]
Tujuan SOAP :
- Menyediakan doa protokol objek standar yang dibangun di Internet Standar menggunakan HTTP sebagai transportasi & XML untuk data encoding.
- Membuat format protokol & muatan extensible yang dapat berkembang lebih waktu.
- Tidak ada koleksi terdistribusi sampah, jenis keselamatan atau versioning.
- Tidak ada dua arah komunikasi HTTP.
- Tidak ada pesan-kotak peduli atau pemrosesan pipa.
- Tidak Obyek dengan referensi.
- Tidak aktivasi Objek.
- SOAP bekerja pada Infrastruktur Internet yang ada. (Router, firewall, proxy server)
- Sebuah program hanya perlu tahu bagaimana memformat permintaan SOAP.
- Seorang pemrogram harus dapat mengimplementasikan SOAP dalam beberapa hari dalam bahasa pemrograman selama klien mengirimkan berlaku Permintaan SOAP.
- Biaya pelaksanaan SOAP akan menjadi harga kecil untuk membayar yang universal interoperabilitas.
Komunikasi dengan pesan SOAP :
- Aplikasi klien mengirimkan pesan meminta SOAP untuk aplikasi server disepanjang jaringan.
- Berdasarkan URL yang diminta , server mengidentifikasi web service dalam keadaan invoke.
- Web service membaca pesan yg diminta SOAP dan mengidentifikasi operasi yang ingin dijalankan. Operasi menyesuaikan ke method dari penanggung komponen, untuk di invoke ke langkah selanjutnya. Konversi form XML ke java terjadi saat parameter permintaan dari pesan SOAP di web service untuk invoked operasi.
- Web Service membaca pesan permintaan SOAP dan mengidentifikasi operasi yang dibutuhkan. Operasi ini akan melakukan korepodensi terhadap suatu metode dari komponen terakhir (back-end), yang kemudian akan panggil kemudian. Konversi dari XML ke java akan terjadi sebagai parameter permintaan atas pesan SOAP pada lapisan web service dalam operasi pemanggilan.
- Metode komponen back-end yang cocok akan diminta oleh parameter Java yang lalu akan dipanggil kembali.
- menjelang selesainya komponen back-end akan dikirim kembali sebagai respon web service serta kemudian akan dikonversi kembali menjadi bentuk XML dari bentuk java. Pemaketan tersebut dijadikan sebagai respon pesan SOAP.
- Web Service akan mengirim kembali respon pesan SOAP ke aplikasi Client yang melakukan pemanggilan web service.
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.
Pesan SOAP :
Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen
berikut:
- Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
- Elemen header yang berisi informasi header. Elemen ini bersifat opsional.
- Elemen body yang berisi panggilan dan merespon informasi.
- Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses. Elemen ini opsional.
Operasi-operasi pengiriman pesan SOAP dijalankan
dengan melibatkan paramater nama operasi yang diinginkan melalui method call().
Jika web service yang dituju menyediakan sebuah file WSDL, maka class
“soapclient” akan mengacu langsung pada URL file WSDL tersebut dan menggunakan
class “wsdl” untuk mem-parsing file WSDL dan mengekstrak seluruh datanya. Class
“wsdl” menyediakan method-method untuk mengekstrak data per-operasi dan
per-binding.
Class “soapclient” menggunakan data dari file WSDL
untuk menerjemahkan parameter-parameternya sekaligus menyusun SOAP
envelope ketika user mengeksekusi suatu pemanggilan service. Ketika pemanggilan
ini dieksekusi, class “soapclient” menggunakan “soap_transport_http” untuk
mengirim pesan SOAP request dan menerima pesan SOAP response. Selanjutnya pesan
SOAP response yang diterima di-parsing dengan menggunakan class “soap_parser” .
0 komentar:
Posting Komentar