Selasa, 18 Desember 2012

SOAP (Simple Object Access Protokol)

Materi Tugas Online pada Topik 6

Nama : AZHARI ; Nim : 201081169 ; Mata Kuliah : CIB-611 Perc.Sistem Berbasis Komponen

Dosen : Fransiskus Adikara, S.Kom, MMSi



SOAP ((Simple Object Access Protokol))

Pengertian dan Deskripsi detail dari SOAP (Simple Object Access Protokol)

Simple Object Access Protokol adalah Protokol komunikasi yang sering di gunakan dalam web services, yang menjembatani pertukaran data antara sejumlah aplikasi web yang di bangun dengan sistem dan platform yang berbeda.

Simple Object Access Protokol menggunakan XML yang merupakan bahasa markup multiplatform untuk memunculkan data kedalam bentuk yang dapat di terima dan di kenal oleh sistem secara keseluruhan. 

Simple Object Access Protokol memiliki format-format dari data yang di hubungkan antara platform yang saling bertukar sumber (data / informasi) dan pemanggilan Remote Procedure Call untuk menerima nilai return dari hasil eksekusi Remote Procedure Call untuk di komunikasikan antara client dan server dalam format XML.

Simple Object Access Protokol di gunakan pada aplikasi Enterprise untuk mengintegrasikan penggunaan yang lebih luas.

Simple Object Access Protokol memiliki kelebihan dengan mudah mengkonsumsi, rigit (lebih ketat), dalam checking harus mematuhi aturan penulisan dan membutuhkan tools pengembang.





API Flexibility & Simplicity
Membutuhkan spesifikasi khusus terhadap XML dan membutuhkan SOAP Toolkit untuk membentuk request dan menguraikan hasilnya (parsing).

Penggunaan Bandwidth
SOAP membutuhkan XML wrapper untuk setiap request dan response

Security
Memastikan dukungan web service agar mengirimkan remote procedure calls (RPC) melalui port standar HTTP, request akan menggunakan POST untuk mengkomunikasi dengan service yang di berikan tanpa melihat envelope SOAP (mengkonsumsi keduanya tidak disertakan pada pada firewall).

Type Handling
SOAP menyediakan aturan penulisan yang ketat dengan mempunyai sekumpulan tipe-tipe data, oleh karena itu menjamin bahwa return value (nilai kembali) akan tersedia secara langsung dalam tipe native melalui proses pada platform tertentu.

Kompleksitas Client-Side
SOAP API membutuhkan library client, membutuhkanpengenalan dan butuh kebiasaan.

Kompeksitas Server-Side
Banyak bahasa pemrograman membuat kompleksitas server side menjadi sangat mudah untuk menerangkan sebuah method melalui SOAP, lebih mudah untuk mengekspos seperangkat method menggunakan SOAP.

Caching
SOAP menggunakan POST dan membutuhkan request XMLkompleks untuk dibangun.
  

Keuntungan SOAP
  • Bahasa, Platform dan transport agnostic.
  • Dirancang untuk menangani lingkungan komputasi terdistribusi 
  • Merupakan standart yang berlaku untuk web service, sehingga mempunyai dukungan yang baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor.
  • Built-in error handling (faults).
  • Extensibility.

Kelemahan SOAP
  • Secara konsepsual lebih sulit, lebih "heavy-weight" dibanding REST.
  • Lebih "verbose" (membutuhkan lebih banyak pernyataan / kode program).
  • Sulit untuk di kembangkan, membutuhkan tools

SOAP (Simple Object Access Protokol) membutuhkan usaha implementasi yang lebih besar dan pengetahuan di sisi klien, dan sesungguhnya sebuah protokol komputasi terdistribusi berbasis XML, di mana REST cenderung masih sangat baru, desain berbasis web.


Mekanisme Kerja dan Contoh Penggunaan dari SOAP (Simple Object Access Protokol)

A. Sebuah pesan SOAP (Simple Object Access Protokol)  pada Envelope element yang mengidentifikasi dokument XML:
  1. Element bersifat opsional dan memberikan informasi header "Element Header".
  2. Element yang merespon informasi dan berisi panggilan "Element Body".
  3. Element Opsional yang berisi pesan kesalahan pada waktu proses "Fault Element"
B. Hal-hal pesan Soap dalam pengaturan penulisan sintaks SOAP ( Simple Object Access Protokol ) :
  1. Harus di tulis dalam bahasa XML.
  2. Selalu memiliki SOAP Envelope namespace.
  3. Selalu memiliki SOAP Encoding namespace.
  4. Harus selalu memiliki DTD Reference.
  5. Tidak boleh berisi XML Processing Intructions. 

C. Struktur Sintax SOAP ( Simple Object Access Protokol ) :




SOAP Envelope
Sebuah dokumen XML yang terdiri dari :
SOAP wajib amplop
SOAP header
SOAP wajib tubuh

Dokumen XML ini disebut sebagai sebuah pesan SOAP untuk sisa spesifikasi ini.
SOAP encodingStyle Atribut.
EncodingStyle SOAP atribut global dapat digunakan untuk menunjukkan aturan serialisasi yang digunakan dalam pesan SOAP. 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 pesan SOAP.
Contoh nilai sbb :
“http://schemas.xmlsoap.org/soap/encoding/”
“http://schemas.xmlsoap.org/soap/encoding/”
“http://my.host/encoding/restricted http://my.host/encoding/”

SOAP Header
SOAP memberikan mekanisme yang fleksibel untuk memperpanjang pesan dalam suatu desentralisasi dan cara modular tanpa pengetahuan antara pihak-pihak yang berkomunikasi.

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.

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.

Content-Length
Header Content-Length SOAP request dan response menjelaskan jumlah bytes body.


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.