implementasi web service dengan soap menggunakan nusoap

webservis
http://blog.rosihanari.net/membuat-web-service-sederhana-studi-kasus-proses-login/
http://blog.rosihanari.net/implementasi-web-service-dengan-soap-menggunakan-nusoap-bag-1/
http://blog.rosihanari.net/implementasi-web-service-dengan-soap-menggunakan-nusoap-bag-2/



Beberapa waktu yang lalu pembahasan mengenai web servicepernah saya tulis di blog tutorial ini. Dalam artikel tersebut dicontohkan secara sederhana bagaimana cara kerja web service yang digunakan untuk integrasi (pertukaran informasi) antara beberapa buah sistem. Akan tetapi dalam penerapannya, web service sendiri sudah ada protokol standard yang biasa digunakan yaitu SOAP (Simple Object Access Protocol) atau WSDL (Web Service Definition Language). SOAP dan WSDL, oleh wikipedia dijelaskan bahwa keduanya sama-sama menggunakan XML sebagai format pertukaran informasi/komunikasi antar sistem melalui HTTP atau SMTP.
Adapun struktur XML dalam SOAP selama proses transaksi antar sistem baik dalam proses call/request maupun response dalam web service, digambarkan pada gambar berikut ini:
Struktur XML SOAP
Untuk mengimplementasikan web service dengan menggunakan SOAP saat ini adalah mudah, karena kita bisa menggunakan NuSOAP. NuSOAP, yang dibuat oleh NuSphere dan Dietrich Ayala ini, merupakan kumpulan class yang khusus digunakan untuk mengimplementasikan web server baik menggunakan protokol SOAP maupun WSDL. Namun dalam pembahasan kali ini sementara hanya akan dibahas khusus implementasi SOAP nya saja. Anda bisa mengunduh NuSOAP ini di sourceforge. Setelah Anda unduh, dan diekstrak filenya, Anda akan mendapatkan sebuah folder bernama /lib. Di dalam folder /lib inilah kumpulan-kumpulan class ini tersimpan dan kita tinggal memanfaatkannya saja.
OK, dalam artikel ini saya akan contohkan implementasi SOAP dengan NuSOAP pada studi kasus sederhana yaitu untuk operasi aritmatika. Adapun gambaran contohnya sebagai berikut. Di komputer A, dalam hal ini bertindak sebagai client akan dibuat sebuah script untuk menjumlahkan dua bilangan. Namun untuk mendapatkan hasil penjumlahannya, komputer A ini akan meminta bantuan komputer B. Dengan demikian komputer A ini nantinya akan melakukan call/request ke komputer B untuk menjumlahkan 2 bilangan, lalu komputer B yang bertindak sebagai server ini menghasilkan response berupa hasil penjumlahannya. Hasil response ini kemudian dibaca oleh komputer A, lalu ditampilkan hasilnya di komputer A.
Bagaimana cara mengimplementasikan kasus di atas? Ini dia caranya. Pertama, pastikan Anda sudah mendownload NuSOAP nya untuk mendapatkan folder /lib nya. Selanjutnya folder /lib ini sama-sama diletakkan di komputer A maupun komputer B. Nah.. selanjutnya, kita siapkan script PHP di komputer B yang nantinya berfungsi untuk menangkap call dari komputer A dan selanjutnya memberikan response. Ini dia scriptnya:
server.php
01.<?php
02. 
03.// mengincludekan file berisi class nusoap
04.require_once('lib/nusoap.php');
05.// instansiasi class soap untuk server
06.$server new soap_server;
07.// meregistrasi 'method' untuk proses penjumlahan dengan nama 'jumlahkan'
08.$server->register('jumlahkan');
09. 
10.// detil isi method 'jumlahkan'
11.function jumlahkan($x$y) {
12.return $x $y;
13.}
14. 
15.// memberikan response service
16.$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :'';
17.$server->service($HTTP_RAW_POST_DATA);
18.?>
Keterangan:
Setiap method yang dibuat, nama method harus diregisterkan dengan perintah
1.$server->register('nama method');
Langkah berikutnya, kita tulis script yang nantinya diletakkan di komputer A di sisi client.
client.php
01.<?php
02. 
03.require_once('lib/nusoap.php');
04. 
05.// dua bilangan yang akan dijumlahkan
06.$bil1 = 10;
07.$bil2 = 25;
08. 
09.// instansiasi obyek untuk class nusoap client
10.$client new nusoap_client('http://nomor_ip_komputerB/../server.php');
11.// proses call method 'jumlahkan' di script server.php yang ada di komputer B
12.$result $client->call('jumlahkan'array('x' => $bil1'y' => $bil2));
13. 
14.echo "<p>Hasil penjumlahan ".$bil1." dan ".$bil2." adalah ".$result."</p>";
15. 
16.?>
Jika script client.php ini dijalankan di komputer client (dalam hal ini komputer A), maka akan menghasilkan output sbb:
 photo img-soap-01_zps16590b86.jpg
Anda bisa mengimplementasikan NuSOAP ini dengan komputer di rumah (localhost) sebagai client dan server hosting. Jadi Anda upload script server.php nya ke hosting dan juga folder /lib nya. Sedangkan script client.php Anda simpan di localhost. Kemudian pada proses instansiasi
1.$client new nusoap_client('http://nomor_ip_komputerB/../server.php');
Anda tinggal tentukan URL nya yang diarahkan ke script server.php di server hosting.
Kemudian bagaimana jika, dalam script server.php nya ingin dibuat lebih dari satu method, ya cukup buat saja beberapa method yang diinginkan dan jangan lupa registerkan. Contoh:
server.php
01.<?php
02. 
03.// mengincludekan file berisi class nusoap
04.require_once('lib/nusoap.php');
05.// instansiasi class soap untuk server
06.$server new soap_server;
07.// meregistrasi 'method' untuk proses penjumlahan dengan nama 'jumlahkan' dan 'kurangi'
08.$server->register('jumlahkan');
09.$server->register('kurangi');
10. 
11.// detil isi method 'jumlahkan'
12.function jumlahkan($x$y) {
13.return $x $y;
14.}
15. 
16.// detil isi method 'kurangi'
17.function kurangi($x$y) {
18.return $x $y;
19.}
20. 
21.// memberikan response service
22.$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :'';
23.$server->service($HTTP_RAW_POST_DATA);
24.?>
dan berikut ini contoh script client.php nya.
client.php
01.<?php
02. 
03.require_once('lib/nusoap.php');
04. 
05.// dua bilangan yang akan dijumlahkan atau dikurangi
06.$bil1 = 10;
07.$bil2 = 25;
08. 
09.// instansiasi obyek untuk class nusoap client
10.$client new nusoap_client('http://nomor_ip_komputerB/../server.php');
11.// proses call method 'jumlahkan' di script server.php yang ada di komputer B
12.$result $client->call('jumlahkan'array('x' => $bil1'y' => $bil2));
13.echo "<p>Hasil penjumlahan ".$bil1." dan ".$bil2." adalah ".$result."</p>";
14. 
15.// proses call method 'kurangi' di script server.php yang ada di komputer B
16.$result $client->call('kurangi'array('x' => $bil1'y' => $bil2));
17.echo "<p>Hasil pengurangan ".$bil1." dan ".$bil2." adalah ".$result."</p>";
18. 
19.?>
Jika Anda penasaran bagaimana format XML yang dikirim ke server pada proses call/request untuk kasus di atas, Anda bisa tambahkan dengan perintah
1.$client->request;
Contoh:
client.php
01.<?php
02. 
03.require_once('lib/nusoap.php');
04. 
05.// dua bilangan yang akan dijumlahkan atau dikurangi
06.$bil1 = 10;
07.$bil2 = 25;
08. 
09.// instansiasi obyek untuk class nusoap client
10.$client new nusoap_client('http://rosihanari.net/nusoap/server.php');
11.// proses call method 'jumlahkan' di script server.php yang ada di komputer B
12.$result $client->call('jumlahkan'array('x' => $bil1'y' => $bil2));
13. 
14.// menampilkan format XML dalam proses call/request
15.echo $client->request;
16. 
17.?>
Setelah Anda jalankan script client.php di atas, kemudian melihat sourcenya di browser maka Anda akan dapatkan format XML SOAP nya sbb:
 photo img-soap-02_zps2c48c390.jpg
Demikian juga apabila Anda ingin melihat format XML response yang dikirimkan oleh server, yaitu dengan menambahkan perintah:
1.$client->response;
Contoh:
client.php
01.<?php
02. 
03.require_once('lib/nusoap.php');
04. 
05.// dua bilangan yang akan dijumlahkan atau dikurangi
06.$bil1 = 10;
07.$bil2 = 25;
08. 
09.// instansiasi obyek untuk class nusoap client
10.$client new nusoap_client('http://rosihanari.net/nusoap/server.php');
11.// proses call method 'jumlahkan' di script server.php yang ada di komputer B
12.$result $client->call('jumlahkan'array('x' => $bil1'y' => $bil2));
13. 
14.// menampilkan format XML hasil response
15.echo $client->response;
16. 
17.?>
dan bentuk format XML response dari server adalah sbb:
 photo img-soap-03_zpsdaf84431.jpg
Mudah dan menarik bukan SOAP nya? Insya Allah untuk artikel mendatang akan saya paparkan studi kasus implementasi SOAP dengan NuSOAP yang return value dari method nya berupada data array/multiple data. Biasanya kasus ini diterapkan untuk proses lookup data yang ada di server.

Subscribe to receive free email updates:

0 Response to "implementasi web service dengan soap menggunakan nusoap"

Post a Comment