TUGAS ONLINE 2 : SOAP PERANCANGAN SISTEM BERBASIS KOMPONEN
NURMIGIANTI 2012 81 030
JURUSAN TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS ESA UNGGUL 2014
I.
Pendahuluan SOAP (Simple Object Access Protocol) merupakan istilah standar yang digunakan untuk pertukaran data berbasis XML melalui sebuah jaringan computer atau pada suatu system operasi untuk dapat berkomunikasi dengan program yang ada pada OS yang sama maupun berbeda menggunakan protocol HTTP dan XML sebagai mekanisme pertukaran data. SOAP menjelaskan bagaimana cara untuk mengencode header HTTP dan file XML sehingga program pada suatu computer dapat memanggil program pada computer lain dan mengirimkan informasi dan bagaiamana program yang di panggil memberikan tanggapan. SOAP sendiri merupakan sebuah protocol atau kumpulan aturan yang ditujukan untuk pertukaran informasi secara terstruktur dalam lingkup desentralisasi dan terdistribusi. SOAP menggunakan tekhnologi XML untuk mendifinisikan rangka kerja pemesanan terekstensi dimana menyediakan konstruksi pesan yang dapat dipertukarkan pada protocol berbeda. Rangka kerja dirancang bebas dari model pemrograman dan spesifikasi implementasi semantic. Pada makalah kali ini kami akan membahas mengenai SOAP ini.
II.
Pembahasan 2.2.1. Simple Object Access Protocol (SOAP) SOAP merupakan protokol baru yang sedang dikembangkan sebagai sebuah standar industri. Tujuan dari SOAP adalah untuk memungkinkan sebuah cara yang standar dalam pertukaran informasi yang bersifat tekstual di antara client-client dan aplikasi –aplikasi yang berjalan di internet. SOAP menyediakan sebuah method yang standar dalam melakukan encoding data ke dalam format yang bersifat portable, walaupun pada dasarnya spesifikasi SOAP 1.0 hanya mengizinkan transmisi melalui protokol HTTP, akan tetapi sejak SOAP 1.1 protokol-protokol transportasi lainnya juga diddukung oleh FTP dan SMTP. SOAP merupakan protokol sederhana, tidak diperlukan sebuah upaya yang besar pada pihak pengirim maupun penerima untuk dapat berkomunikasi dengan menggunakan protokol ini. Karena SOAP menggunakan XML sebagai data endcoding format, maka setiap sistem yang mampu melakukan parsing XML mampu berkomunikasi melalui SOAP.
Setiap pesan SOAP adalah sebuah dokumen XML. Dokumen XML ini memiliki sebuah element root tunggal yaitu sebuah SOAP envelope. Di dalam envelope inilah data-data yang relevan dengan pesan disimpan. Peran SOAP di dalam teknologi web service adalah sebagai protokol pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama oleh aplikasiaplikasi penggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasis XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan tipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi. a.
SOAP Syntax Rules · A SOAP message MUST be encoded using XML · A SOAP message MUST use the SOAP Envelope namespace · A SOAP message MUST use the SOAP Encoding namespace · A SOAP message must NOT contain a DTD reference · A SOAP message must NOT contain XML Processing Instructions.
b.
Pesan SOAP Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemenelemen berikut: 1) Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP. 2) Elemen header yang berisi informasi header. Elemen ini bersifat opsional. 3) Elemen body yang berisi panggilan dan merespon informasi. 4) Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses. Elemen ini opsional.
Berikut struktur utama pesan SOAP:
Gambar 5.1.2.3.4 Struktur Utama Pesan SOAP NuSOAP adalah sebuah kumpulan class-class PHP yang memungkinkan user untuk mengirim dan menerima pesan SOAP melalui protokol HTTP. NuSOAP didistribusikan oleh NuSphere Corporation (http://www.nusphere.com) sebagai open source toolkit di bawah lisensi GNU LGPL. Salah satu keuntungan dari NuSOAP adalah bahwa NuSOAP bukan merupakan PHP extension, sehingga penggunaannya tidak membutuhkan registrasi khusus ke Sistem Operasi maupun web server. NuSOAP ditulis dalam kode PHP murni sehingga semua developer web dapat mengunakan tool ini tanpa tergantung pada jenis web server yang digunakan. NuSOAP merupakan toolkit web service berbasis komponen. NuSOAP memiliki sebuah class dasar yang menyediakan method seperti serialisasi variabel dan pemaketan SOAP-Envelope. Interaksi web service dilakukan dengan class client yang disebut dengan class “soapclient” dan class server yang disebut dengan class “soap_server”. Class-class ini mengizinkan user untuk melakukan proses pengiriman dan penerimaan pesan-pesan SOAP dengan bantuan beberapa classclass pendukung lainnya untuk melengkapi proses tersebut. 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 methodmethod 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”. Berikut ini adalah diagram proses web service dengan menggunakan NuSOAP:
Gambar : Diagram proses web service dengan NuSOAP Jika web service yang dituju menyediakan file WSDL, pemanggilan service dilakukan dengan mengeksekusi method call pada class “soapclient” dengan melibatkan parameter argumen yang disediakan oleh file WSDL. Penjelasan Struktur Sintax SOAP :
SOAP Envelope Sebuah pesan SOAP adalah sebuah dokumen XML yang terdiri dari SOAP wajib amplop, opsional SOAP header, dan SOAP wajib tubuh. Dokumen XML ini disebut sebagai sebuah pesan SOAP untuk sisa spesifikasi ini. Namespace pengidentifikasi untuk elemen dan atribut yang didefinisikan dalam bagian ini adalah “http://schemas.xmlsoap.org/soap/envelope/”.
SOAP encodingStyle Atribut EncodingStyle SOAP atribut global dapat digunakan untuk menunjukkan aturan serialisasi digunakan dalam pesan SOAP. MUNGKIN atribut ini muncul di setiap elemen, dan elemen scoped dengan isi dan semua elemen anak sendiri tidak mengandung atribut seperti itu, banyak sebagai deklarasi namespace XML adalah scoped. Tidak ada standar pengkodean
yang ditetapkan untuk sebuah Contoh nilai sbb : “http://schemas.xmlsoap.org/soap/encoding/” “http://schemas.xmlsoap.org/soap/encoding/” “http://my.host/encoding/restricted http://my.host/encoding/
pesan
SOAP.
SOAP Header SOAP memberikan mekanisme yang fleksibel untuk memperpanjang pesan dalam suatu desentralisasi dan cara modular tanpa pengetahuan antara pihak-pihak yang berkomunikasi. Contoh-contoh khas ekstensi yang dapat diterapkan sebagai entri header otentikasi, pengelolaan transaksi, pembayaran dll. Elemen Header dikodekan sebagai anak langsung pertama elemen dari elemen XML SOAP Envelope. Semua anak langsung unsur unsur Header disebut header entri.
SOAP Aktor Sebuah pesan SOAP perjalanan dari originator ke tujuan akhir, yang berpotensi dengan melewati serangkaian SOAP pesan perantara di sepanjang jalan. Sebuah SOAP perantara adalah sebuah aplikasi yang mampu baik penerimaan dan penerusan pesan SOAP. Keduanya perantara serta tujuan akhir diidentifikasi oleh URI.
SOAP mustUnderstand Atribut Must Understand SOAP atribut global dapat digunakan untuk menunjukkan apakah sebuah header entri adalah wajib atau opsional bagi penerima untuk diproses. Penerima entri header didefinisikan oleh aktor SOAP atribut. Nilai atribut mustUnderstand baik “1″ atau “0″. Tidak adanya SOAP atribut mustUnderstand semantik setara dengan kehadirannya dengan nilai “0″.
Body SOAP Elemen Tubuh SOAP menyediakan mekanisme sederhana untuk bertukar informasi wajib ditujukan untuk penerima akhir pesan. Khas menggunakan elemen Tubuh termasuk menyusun RPC panggilan dan pelaporan kesalahan.
SOAP Fault SOAP Fault elemen yang digunakan untuk membawa kesalahan dan / atau informasi status dalam pesan SOAP. Jika ada elemen Patahan SOAP HARUS muncul sebagai tubuh TIDAK HARUS masuk dan muncul lebih dari sekali dalam elemen Badan.
SOAP HTTP Binding Seperti yg dijelaskan sebelumnya, mekanisme kerja SOAP merupakan gabungan dari HTTP dan XML. Sehingga method yg digunakan SOAP adalah HTTP request / response yg memenuhi standar peraturan encoding SOAP. Sebuah SOAP request dapat berupa HTTP POST atau HTTP GET request. HTTP POST request paling tidak terdapat dua macam HTTP headers, yaitu ‘Content-Type’ dan ‘Content-Length’. Content-Type Header Content-Type SOAP mendefinisikan MIME type dari pesan dan character encoding (bersifat opsional) yg digunakan dalam XML body dari sebuah request dan response. MIME type dapat dilihat padahttp://en.wikipedia.org/wiki/Internet_media_type. Content-Length Header Content-Length SOAP request dan response menjelaskan jumlah bytes body. Contoh Penggunaan SOAP Berikut adalah sebuah contoh SOAP, GetStockPrice request dikirim ke server. Request tersebut memiliki parameter ‘StockName’ dan ‘Price’ yg akan dibalas dari permintaan tersebut.
Penjelesan dari Contoh diatas : Elemen ‘Envelope’ SOAP Elemen ‘Envelope’ yg harus tercantum dalam SOAP adalah elemen utama dari sebuah pesan SOAP. Elemen inilah yg mendefinisikan dokumen XML sebagai pesan SOAP. Dari contoh di atas adalah Element Tag <soap:Envelope xmlns:soap… > Elemen ‘Body’ SOAP Elemen ini berisi data pesan SOAP yg ditujukan kepada penerima, elemen ini harus ada pada setiap pesan SOAP. Anak elemen dari elemen ini harus sesuai standar XML namespace. Dari contoh di atas adalah Element Tag <soap:Body> dan terdapat SOAP Body “request” yaitu berupa element Tag <m:GetStockPrice>.
Nama tag ‘GetStockPrice’ adalah sebuah fungsi yang akan dipanggil atau dijalankan, dengan melewati satu parameter yaitu “IBM”. Contoh Hasil Balasan
Element SOAP Body ‘Response’ adalah Element Tag <m:GetStockPriceResponse> berisi hasil dari request sebelumnya yaitu dari fungsi ‘GetStockPrice’ dengan parameter “IBM” adalah senilai 34.5. Keuntungan SOAP : bahasa, platform, dan transport agnostic dirancang untuk menangani lingkungan komputasi terdistribusi merupakan standar yang berlaku untuk web servis, sehingga mempunyai dukungan yang lebih baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor built-in error handling (faults) extensibility Kelemahan SOAP : secara konseptual lebih sulit, lebih "heavy-weight" dibanding REST lebih "verbose" (membutuhkan lebih banyak pernyataan/kode program) sulit untuk dikembangkan, mebutuhkan tools
III.
Kesimpulan SOAP merupakan singkatan dari Simple Object Access Protocol, yaitu sebuah protocol yang dibuat untuk digunakan dalam pertukaran informasi terstruktur dalam implementasi dari sebuah web service dalam jaringan computer. SOAP erat kaitannya dengan XML sebagai format message yang digunakan dalam berkomunikasi dan biasanya bekerja berdasarkan protocol yang ada pada Application Layer, dan berhubungan dengan HTTP dan SMTP untuk pertukaran informasi dan transmisinya. Dan juga dapat dibaca oleh mata manusia karena terdapat fasilitas error detection serta tidak memiliki masalah interoperabilitas
antar OS namun memiliki kekurangan yaitu kecepatan pemrosesan yang lebih lambat dan rumit. Secara garis besar dibangun berdasarkan konsep XML, karena lebih banyak digunakan oleh perusahaan besar dan banyak digunakan pada pengembangan aplikasi-aplikasi berbasis open source.
Sumber : http://ueu200981149.student.esaunggul.ac.id/files/2012/11/Definisi-SOAP.pdf