Webservice, NuSoap, Php dan Mysql

Webservice, sebuah solusi untuk menyatukan perbedaan platform baik itu interface maupun database. Skenarionya begini saya memiliki 2 buah server, satu server A terletak di luar negeri, dan satu server B terletak di dalam negeri interface menggunakan web. Di masing-masing server ada data yang saling membutuhkan, tetapi untuk melakukan komunikasi langsung diantara server itu tidak memungkinkan.

Untuk mengintegrasikan data dari masing-masing server tersebut solusinya adalah webservice. Setelah seharian ngoprek webservice bertemu lah saya dengan nusoap. Tools ini mampu memenuhi kebutuhan sistem yang saya inginkan..

Konsep utama webservice sendiri adalah bagaimana suatu data atau informasi yang ada bisa berkomunikasi tanpa ada halangan baik itu platform interface maupun database, oke kita langsung ke praktek..

<?php
// function to get user data from database

function search_member($username,$passwd) {
global $start;
mysql_connect(“localhost”, “user”, “password”);
mysql_select_db(“database”);

$query = “select * from table_anggota where username=’$username’ and userpwd =’$passwd'”;
$result = mysql_query($query);

if($row=mysql_fetch_array($result)){

$memberData = array($row[‘member_firstname’],$row[‘member_lastname’]);
}else{
$memberData = ‘error’;
}

return $memberData;

} // end function

// include the SOAP classes
require_once(‘../lib/nusoap.php’); // sesuaikan dengan path library nusoap berada
// create the server object
$server = new soap_server;
// register the lookup service
$server->register(‘search_member’);
// send the result as a SOAP response over HTTP
$server->service($HTTP_RAW_POST_DATA);
?>

simpan file diatas menjadi server.php, kemudian kita siapkan satu file lagi.. untuk menjadi clientnya..

<?php
// include the SOAP classes
require_once(‘../lib/nusoap.php’);
// define parameter array
$params = array(‘username’=>$_GET[‘username’],’passwd’=> $_GET[‘passwd’]); // rubah menjadi POST
// define path to server application

$serverpath =’http://contohserverA.us/nusoap/test/server.php&#8217;;

//define method namespace
$namespace=”urn:xmethods-BNPriceCheck”;
// create client object
$client = new soap_client($serverpath);
// make the call
$catalog = $client->call(‘search_member’,$params,$namespace);
// otherwise output the result
print_r ($catalog);
// kill object
unset($client);
?>

Simpan file diatas menjadi client.php

Kemudian kita test file nya dengan http request

http://contohserverB.web.id/nusoap/test/client.php?username=user1&passwd=12345

teknik diatas digunakan hanya untuk melakukan test saja, karena data yg ditrasnfer sangat sensitif tidak dianjurkan seperti yg diatas menggunakan GET. Untuk menghindari tidakan yang tidak diinginkan, lebih baik menggunakan metode POST.

Jangan lupa untuk mengaktifkan library CURL, dan me non aktifkan SOAP library di apache supaya gak bentrok (edit php.ini)

Setelah test berhasil, tahap selanjutnya adalah memasang nusoap di masing-masing server.

Server A saya sisipkan nusoap dengan file server.php yang diatas, begitu juga dengan server B saya sisipkan juga nusoap dengan file client.php diatas.

hasilnya … taraa.. dengan sedikit improvisasi 2 data dari database yang berbeda bisa gabung dalam 1 aplikasi. ^_^ cheerz

12 thoughts on “Webservice, NuSoap, Php dan Mysql

    • klo beda server, beda lokasi, beda network datanya gak bisa realtime om.. klo pake webservice kita bisa integrasi bermacam-macam platform aplikasi, database dan jaringan.

      Kyak case diatas..
      Server 1 itu misal buat registrasi layanan lokasi servernya ada di us, Server 2 ada nya di indonesia, digunain utk aplikasi yang berbeda tapi membutuhkan data yang realtime dari server 1.

      webservice bisa jadi solusi om… ^_^

  1. Tanya: Saya pernah mencoba membaca data dari server lain (sama2 mysql) namun ada membutuhkan pemberian hak akses (grant) dari db yg akan dibaca, apakah dgn SOAP membutuhkan pemberian grant juga? Trims

  2. saya masih bingung sama cara testingnya, apakah antara web service di A maupun B harus d upload dlu k hosting atau bagaimana ya? mohon dijelaskan.

    • Gak harus diupload.. kalau jalan cuma di localhost ya test aja dari folder A ke folder B, seolah-olah berada di server yang berbeda.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s