Definisi :
Simple Object Access Protocol
(SOAP) adalah sebuah standarisasi dasar dari protokol komunikasi untuk saling
bertukar informasi terstruktur di antara aplikasi-aplikasi yang berjalan. SOAP
adalah sebuah aplikasi pesan XML yang sangat bergantung pada skema XML dan XML namespacesuntuk
mendifinisikannya. SOAP juga sangat bergantung dengan beberapa protokol layer lainnya seperti HTTP, JMS, RPC untuk
transmisi pesan.
SOAP sangat efektif untuk
berbabagai macam aplikasi multi tier untuk berkomunikasi lintas sistem operasi/platfrom
yang berbeda dengan teknologi dan bahasa pemrograman yang berbeda-beda pula.
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.
Peran
SOAP di dalam teknologi web service adalah sebagai protokol
pemaketan untuk pesan-pesan (messages) yang digunakan secara bersama
oleh aplikasi-aplikasi 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.
Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen 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.
Dengan
demikian, tidaklah terlalu mengherankan bila kemudian SOAP dianggap sebagai
solusi penyelamat untuk mengatasi berbagai masalah yang dihadapi oleh teknologi
– teknologi pendahulunya.
Contoh Struktur
utama dari SOAP
<xml
version ="1.0">
<soap:Envelope
xmlns: soap ="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3org/2001/12/soap-encoding">
<soap:Header>
....
</soap:Header>
<soap:body>
.......
<soap:vault>
...........
</soap:vault>
</soap:body>
</soap:envelope>
NuSOAP
Adalah library yang
digunakan untuk membangun web service berbasis SOAP yang
ditulis dengan menggunakan bahasa PHP. NuSOAP ditulis oleh Dietrich Ayala
dengan proyek awal bernama SOAPx4. Selanjutnya dia disewa NuSphere untuk terus
mengembangkan proyek tersebut dan diberi nama NuSOAP.
Dalam
membangun sebuah sistem aplikasi berbasis web service, dibutuhkan
dua komponen utama yaitu, server sebagai provider
entity dan client sebagai requester entity . Sebagai
contoh, di bawah ini terdapat dua listing program pada sisi server dan
sisi client. Sebagai contoh sederhana dalam
pengimplementasian sistem pembayaran mahasiswa yang akan di kembangkan dalam
project ini kita buat satu data base pada computer server misal dalam data base
kita buat sebagai berikut :
create
table 'mhs'(
'nim' int
(20),
'nama'
varchar (50),
'alamat'
varchar (100),
primary
key ('nim')
)
Lalu
masukan beberapa sample data sebagai isi dari data base seprti pada gambar
berikut :
Selanjutnya, script NuSOAP diletakkan di server A. Script ini nanti
diperlukan untuk melayani request yang dilakukan oleh server B.
Script pada server nya seperti berikut :
<?php
require_once('nusoap.php');
$server =
new soap_server;
//
registrasi method 'search'
$server->register('search');
// detail
method 'search' dengan parameter $key
function
search($key)
{
// koneksi
ke database
mysql_connect('localhost',
'root', '');
mysql_select_db('data_siswa');
// query
pencarian data mahasiswa
$query =
"SELECT * FROM mhs WHERE nim = '$key' OR nama LIKE '%$key%' OR alamat LIKE
'%$key%'";
$hasil =
mysql_query($query);
while
($data = mysql_fetch_array($hasil))
{
//
menyimpan data hasil pencarian dalam array
$result[]
= array('nim' => $data['nim'], 'nama' => $data['nama'], 'alamat' =>
$data['alamat']);
}
//
mereturn array hasil pencarian
return
$result;
}
$HTTP_RAW_POST_DATA
= isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
Lalu kita buat script interface nya pada
aplikasi web nya seperti berikut
<html>
<head>
<title>Contoh
NuSOAP Web Service </title>
</head>
<body>
<!--
form pencarian data -->
<form
method="post" action="test.php?op=search">
Keyword
Pencarian <input type="text" name="key"><input
type="submit" name="submit" value="Search">
</form>
<?php
// proses
pencarian data
if
(isset($_GET['op']))
{
if
($_GET['op'] == 'search')
{
require_once('lib/nusoap.php');
// baca
keyword pencarian dari form
$key =
$_POST['key'];
//
instansiasi obyek untuk class nusoap client, arahkan URL ke script server.php
di server A
$client =
new nusoap_client('http://localhost/nusoap/lib/server.php');
// proses
call method 'search' dengan parameter key di script server.php yang ada di
server A
$result =
$client->call('search', array('key' => $key));
// jika
data hasil pencarian ($result) ada, maka tampilkan
if
(is_array($result))
{
echo
"<table border='1'>";
echo
"<tr><th>NIM</th><th>NAMA</th><th>ALAMAT</th></tr>";
foreach($result
as $data)
{
echo
"<tr><td>".$data['nim']."</td><td>".$data['nama']."</td><td>".$data['alamat']."</td></tr>";
}
echo
"</table>";
//
menampilkan jumlah data hasil pencarian
echo
"<p>Ditemukan ".count($result)." data terkait kata kunci
'".$key."'</p>";
}
else echo
"<p>Data tidak ditemukan</p>";
}
}
?>
</body>
</html>
Maka
proses yang akan terjadi ialah :
permisi gan, saya ada sedikit tulisan mengenai protokol WebSocket yang saya terapkan kedalam beberapa bahasa pemrograman berikut: http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html ditunggu feedbacknya gan, semoga menambah wawasan bersama, terima kasih gan.. :D
BalasHapus