Membangun Web Service Menggunakan Nusoap Toolkit

10
 www.digizoneku.com  MEMBANGUN WEB SERVICE MENGGUNAKAN NuSOAP TOOLKIT LAPORAN TUGAS MATA KULIAH INTEROPERABILI TAS  Disusun ol eh: Ivan Aditya ( 30343 ) Yudha Agung Pribadi ( 30403 ) Bobby Kurniawan ( 30557 ) Anton Wisnu Prabowo ( 30771 ) Arida Hirawan ( 31090 ) JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA 2007

description

MEMBANGUN WEB SERVICE MENGGUNAKAN NuSOAP TOOLKITLAPORAN TUGAS MATA KULIAH INTEROPERABILITASDisusun oleh:Ivan Aditya Yudha Agung Pribadi Bobby Kurniawan Anton Wisnu Prabowo Arida HirawanN.B- Info cara mencegah dan mengobati berbagai penyakit (www.herbanesia.com)- info cara tambah tinggi badan, max usia 35th (www.smarttaller.com)- info cara turun berat badan (www.dietsehat911.com)- layanan internet cepat tanpa batas, tanpa quota, full speed 24/7 (www.digizoneku.com)- agen pulsa murah all operator (www.digizonecell.com) ( 30343 ) ( 30403 ) ( 30557 ) ( 30771 ) ( 31090 )JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA 2007www.digizoneku.comNuSOAP ToolkitPHP ( sampai saat ini ) belum mempunyai ekstensi untuk SOAP, tetapi ada beberapa toolkit yang mendukung fungsi itu. NuSOAP merupakan salah satu toolkit y

Transcript of Membangun Web Service Menggunakan Nusoap Toolkit

Page 1: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

MEMBANGUN WEB SERVICE MENGGUNAKAN

NuSOAP TOOLKIT

LAPORAN TUGAS MATA KULIAH INTEROPERABILITAS

 Disusun oleh:

Ivan Aditya ( 30343 )

Yudha Agung Pribadi ( 30403 )

Bobby Kurniawan ( 30557 )

Anton Wisnu Prabowo ( 30771 )

Arida Hirawan ( 31090 )

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK 

UNIVERSITAS GADJAH MADA

2007

Page 2: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

NuSOAP Toolkit

PHP ( sampai saat ini ) belum mempunyai ekstensi untuk SOAP, tetapi ada beberapatoolkit yang mendukung fungsi itu. NuSOAP merupakan salah satu toolkit yang menyediakanAPI untuk membangun suatu web service dengan menggunakan SOAP. Selain itu juga adatool kit yang lain seperti PEAR:SOAP. Versi terbaru NuSOAP sampai saat ini adalah versi0.6.4, yang menyediakan API untuk membuat aplikasi server/client SOAP dan jugamenyediakan fitur seperti WDSL, membangun proxy class, menggunakan SSL,menggunakan HTTP proxy, autentifikasi HTTP.

Permasalahan yang kita jadikan contoh adalah sebuah departemen pada pemerintahyang bertugas memantau cuaca, ingin agar data hasil pemantauan mereka, dapat diakses oleh

 publik. Langkah-langkah yang kita lakukan adalah sebagai berikut:

Menyiapkan Database

CREATE TABLE current_data (id int(10) unsigned NOT NULL auto_increment,city varchar(20) default NULL,degrees float NOT NULL default '0',forecast varchar(255) default NULL,PRIMARY KEY (id),UNIQUE KEY city (city),KEY city_2 (city)

) TYPE=MyISAM;

Page 3: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

INSERT INTO current_data VALUES (1, 'Chicago', '5', 'Partly cloudy.');INSERT INTO current_data VALUES (2, 'London', '15', 'Sun along with patchyclouds.');

Membuat SOAP Server

<?php

require('inc/nusoap.php');

$l_oServer = new soap_server();

$l_oServer->debug_flag=false;

$l_oServer->configureWSDL('Weather', 'http://weather.org/Weather');

$l_oServer->wsdl->schemaTargetNamespace = 'http://weather.org/Weather';

$l_oServer->wsdl->addComplexType(

'WeatherData',

'complexType',

'struct',

'all',

'',

array(

'degrees' => array('name'=>'degrees', 'type'=>'xsd:string'),

'forecast' => array('name'=>'forecast', 'type'=>'xsd:string')));

$l_oServer->register('getWeather', array(

'city' => 'xsd:string'),

array('return'=>'tns:WeatherData'),

'http://weather.org/Weather');

function getWeather ($a_stInput) {

if (is_string($a_stInput)) {

$l_oDBlink = @mysql_connect(

'localhost', 'root', 'password');

$l_oDBresult = @mysql_db_query(

'weather',

'SELECT degrees, forecast FROM current_data WHERE city = LCASE("' . mysql_escape_string((string)$a_stInput) . '") LIMIT 1');

if (!$l_oDBresult) {

return new soap_fault('Server', '', 'Internal server error.');

}if (!mysql_num_rows($l_oDBresult)) {

return new soap_fault('Server', '',

Page 4: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

'Service contains data only for a few cities.');

}

mysql_close($l_oDBlink);

return mysql_fetch_array($l_oDBresult, MYSQL_ASSOC);

}

else {

return new soap_fault('Client', '', 'Service requires a string parameter.');

}}

$l_oServer->service($HTTP_RAW_POST_DATA);

?>

Adapun penjelasannya adalah sebagai berikut. Pertama, kita meng-include NuSOAPtoolkit terlebih dahaulu. Untuk server kita perlu membuat obyek “soap server”. Kita tidak memerlukan pesan debug, jadi pesan itu dinonaktifkan ( diberi nilai false ). Pada baris 15, fileWSDL mulai di-generate. File tersebut mendeskripsikan web service dan cara mengaksesweb service itu. Kemudian kita menggunakan WSDL untuk membuat suatu “proxy class”.Untuk itu kita mengkonfigurasi target namespace dan membuat complextype sederhana, yangmana menjadi data kembalian bagi kita.

Selanjutnya kita meregister method “getWeather”, agar bisa dipanggil oleh client, dan  juga mendefinisikan complexType (WeatherData) untuk mendapatkan nilai balik. Pada fungsi

“getWeather” selanjutnya akan ditentukan parameter sehingga akan muncul pesan soap_fault  bila salah satu parameter tidak dipenuhi. Pada baris paling bawah ada sintak $HTTP_RAW_POST_DATA yang di-set hanya ketika tipe data tidak diketahui. Dengandemikianweb service ini siap dipakai.

Page 5: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

Membuat SOAP Client

Page 6: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

<?php

if ((string)$_GET['action'] == 'get_data') {

require('inc/nusoap.php');

$l_aParam = array((string)$_POST['city']);

$l_oClient = new soapclient('http://somewhere.org/soap/server.php');

$l_stResult = $l_oClient->call('getWeather', $l_aParam);

if (!$l_oClient->getError()) {

print '<h1>Current data for: ' . $l_aParam[0]. ':</h1><ul><li>DEGREES: ' . $l_stResult['degrees']

. '&deg;C</li><li>FORECAST: ' . $l_stResult['forecast']

. '</li></ul>';

}

else {

echo '<h1>Error: ' . $l_oClient->getError() . '</h1>';

}

}

print '

<form name="input" action="'.$_SERVER['PHP_SELF'].'?action=get_data" method="POST">

Your city: <input type="text" name="city">

<input type="submit" value="Search">

</form>

';

?>

Jika suatu data telah terkirim, kita kemudian meng-include NuSOAP toolkit. Pertamakita meletakkan parameter string ke dalam array, sehingga kita dapat menggunakannya untuk memanggil method. Untuk client kita membuat objek “soapclient” pada baris ke 14. Melaluiclient kita dapat memanggil webmethod “getWeather” dan melalui parameter yang ada ( padadata dalam array ).

SOAP Client Using WSDLSelanjutnya kita akan membuat SOAP Client menggunakan WSDL sebagai

 perbandingan:

Page 7: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

SOAP Client Menggunakan WSDL

<?php

if ((string)$_GET['action'] == 'get_data') {

require('inc/nusoap.php');

$l_oClient = new soapclient(

'http://somewhere.org/soap/weather.wsdl', 'wsdl');

$l_oProxy = $l_oClient->getProxy();$l_stResult = $l_oProxy->getWeather((string)$_POST['city']);

if (!$l_oClient->getError()) {

Page 8: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com 

print '<h1>>Current data for: ' . (string)$_POST['city']

. ':</h1><ul><li>DEGREES: ' . $l_stResult['degrees']

. '&deg;C</li><li>FORECAST: ' . $l_stResult['forecast']

. '</li></ul>';

}

else {

echo '<h1>Napaka: ' . $l_oClient->getError() . '</h1>';}

}

print '

<form name="input" action="'.$_SERVER['PHP_SELF'].'?action=get_data" method="POST">

Your city: <input type="text" name="city">

<input type="submit" value="Search">

</form>

';

?>

Melalui contoh di atas dapat dilihat beberapa hal. Ketika kita membuat objek “soapclient” ,kita dapat melewatkan URL ke proxy class; secara sederhana kita memanggil

method “getProxy”. Setelah semua method pada web service kita dapatkan pada proxy classkita, maka kita akan dapat mengakses method “getWeather” secara “local”, yang mana

 berfungsi mengirim dan mengembalikan data dari web service. Dan terakhir, kita melakukanerror checking untuk client.

Page 9: Membangun Web Service Menggunakan Nusoap Toolkit

5/11/2018 Membangun Web Service Menggunakan Nusoap Toolkit - slidepdf.com

http://slidepdf.com/reader/full/membangun-web-service-menggunakan-nusoap-toolkit

www.digizoneku.com