Membangun Web Service Menggunakan Nusoap Toolkit
-
Upload
bimo-adi-pradono -
Category
Documents
-
view
786 -
download
3
description
Transcript of 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
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;
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', '',
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.
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
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']
. '°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:
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()) {
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']
. '°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.
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