Type your search here:

Please Wait..

Selasa, 17 Desember 2013

PENGERTIAN DAN PENERAPAN SOAP (SIMPLE OBJECT ACCESS PROTOCOL) DALAM APLIKASI MULTITIER

Views:

 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 :







1 komentar:

  1. 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

luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com