Anda di halaman 1dari 7

Praktikum 04

Web Service


TUJUAN
1. Mahasiswa mengetahui arsitektur dasar Web Service
2. Mahasiswa mengetahui kegunaan Web Service dan dapat membuat aplikasi Web
Service

DASAR TEORI
Web Service menyediakan cara standar interoperasi antara aplikasi perangkat lunak
yang berbeda, berjalan pada berbagai platform dan atau kerangka kerja. Web Service
Architecture (WSA) dimaksudkan untuk memberikan definisi umum dari Web Service, dan
menentukan tempatnya dalam kerangka layanan Web yang lebih besar untuk membimbing
masyarakat. Web Service Architecture (WSA) adalah arsitektur interoperabilitas
yang mengidentifikasi elemen-elemen global dari jaringan layanan Web global yang
diperlukan untuk menjamin interoperabilitas antara Web Service. WSA menyediakan model
konseptual dan konteks untuk layanan Web pemahaman dan hubungan antar komponen
model ini.
Web Service adalah sistem software yang dirancang untuk mendukung
interoperabilitas mesin-ke-mesin interaksi melalui jaringan. Ini memiliki antarmuka
yang dijelaskan dalam format mesin-processable (khusus WSDL). Sistem lain berinteraksi
dengan Web Service dalam cara yang ditentukan oleh deskripsi menggunakan
pesan SOAP, biasanya disampaikan menggunakan HTTP dengan serialisasi XML
dalam hubungannya dengan Web yang terkait standar.
Tujuan dari Web Service adalah untuk menyediakan beberapa fungsi atas nama
pemiliknya - seseorang atau organisasi, seperti bisnis atau individu. Entitas provider adalah
orang atau organisasi yang menyediakan agen yang tepat untuk melaksanakan layanan
tertentu. Sebuah entitas requester adalah orang atau organisasi yang ingin menggunakan
layanan Web badan penyedia. Ini akan menggunakan agen requester untuk bertukar pesan
dengan agen provider dari entitas provider.
Web service menggunakan format XML dalam melakukan pertukaran data, sehingga dapat
diakses oleh sistem lain walaupin berbeda platform, sistem operasi maupun berbeda bahasa
pemrograman. Ada beberapa pendekatan mengimplementasikan web service. Tiga yang paling
banyak digunakan adalah Representational State Transfer (REST), XML-RPC, dan SOAP

WSDL
WSDL adalah format data berbasis XML untuk menggambarkan Web service dan
bagaimana untuk mengaksesnya. Sehingga WSDL merupakan dokumen yang ditulis di XML,
dimana dokumen tersebut menggambarkan Web Service, yang memberikan
informasi tentang service dan operasi (methods). Struktur Dokumen WSDL Dokumen WSDL
menggambarkan web service dengan mengunakan elemen-elemen utama sebagai berikut:

Contoh dokumen WSDL:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>

Keterangan:
Dalam contoh ini unsur <portType> mendefinisikan "glossaryTerms" sebagai nama sebuah
port, dan "getTerm" sebagai nama dari suatu operasi.
Operasi "getTerm" memiliki pesan masukan disebut "getTermRequest" dan pesan
keluaran disebut "getTermResponse".
Unsur-unsur <message> menentukan bagian masing-masing pesan dan jenis data yang
terkait.
Dibandingkan dengan pemrograman tradisional, glossaryTerms adalah fungsi perpustakaan,
"getTerm" adalah fungsi dengan "getTermRequest" sebagai parameter input, dan
getTermResponse sebagai parameter output.

XML
XML merupakan basis metalanguage yang digunakan untuk membangun web service. XML
secara luas digunakan dalam pembangunan web service karena kamudahannya dalam
interaksi antara machine to machine communication serta mudah dipahami oleh manusia
pada umumnya.


SOAP
SOAP (Simple Object Access Protocol) merupakan sebuah protokol standar yang
digunakan untuk komunikasi data dalam web service. SOAP merupakan protokol yang
digunakan untuk mempertukarkan data atau informasi dalam format XML. SOAP dapat
dikatakan sebagai gabungan antara HTTP dengan XML karena SOAP umumnya
menggunakan protocol HTTP sebagai sarana transport datanya dan data akan dipertukarkan
ditulis dalam format XML. Karena SOAP mengunakan HTTP dan XML maka SOAP
memungkinkan pihak-pihak yang mempunyai platform, system operasi dan perangkat lunak
yang berbeda dapat saling mempertukarkan datanya.





NuSOAP adalah kumpulan library dalam bentuk PHP. PHP mempunyai kelebihan antara
lain, mudahnya diimplementasikan dalam sebuah server. Hampir semua server di dunia ini
mampu diimplementasikan dengan menggunakan sistem berbasis PHP.

ALAT DAN BAHAN
1. Borland Delphi 7
2. Apache Web Server
3. Database MySQL
4. Library NuSOAP

LANGKAH PERCOBAAN
Buat folder di webroot dan beri nama webservicesample
Copy library NuSOAP dan masukkan ke dalam folder tersebut dan pastikan
terdapatfile nusoap.php misal: /nusoap/lib/nusoap.php
Buka PHP Editor dan beri nama file server.php yang kemudian di simpan di
folderyang anda buat tadi.
Ketikkan source code yang ada di bawah ini ke dalam server.php

<?php
require_once('lib/nusoap.php');
//membuat server soap baru
$server = new nusoap_server();
//melakukan konfigurasi WSDL
$server -> configureWSDL('server_wsdl', 'urn:server_wsdl');
//membuat register methods
$server -> register('greeting',
array('name' => 'xsd:string'),
array('return' => 'xsd:string'),
'urn:server_wsdl',
'urn:server_wsdl#greeting',
'rpc',
'encoded',
'Hai....'
);
//nama metode
//parameter input
//parameter output
//namespace
//aksi soap
//style
//penggunaan
function greeting($name) {
return "Hello, " .$name;
}
//menggunakan request untuk menyisipi service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :'';
$server -> service($HTTP_RAW_POST_DATA);
exit();
?>

Simpan lagi file server.php, dan kemudian buka browser dan masukkan ke dalam
URL alamat folder dari file tersebut, misal: localhost/webservicesample/server.php

Klik WSDL (atau ketik di url: localhost/webservicesample/server.php?wsdl) maka
akan muncul gambar seperti di bawah

Klik function(methods) greeting maka akan muncul gambar seperti di bawah

Buat file dengan nama client.php pada folder yang masih sama dengan file server.php,
dan ketikkan listing program berikut:
<?php
require_once('nusoap/lib/nusoap.php');
//membuat instans client
$client = new nusoap_client('http://localhost/websrv/server.php', false);
$result = $client -> call('greeting', array('name' => 'Scott'));
print_r($result);
?>

Pastikan bahwa library nusoap.php dipanggil dengan benar, variabel client pada
obyek baru bentukan nusoap_client adalah file server.php yang ingin diambil
parameternya.
Perintah call('greeting',...) adalah memanggil nama function pada server.php
sedangkan call('...',array('name' => 'Scot')) adalah pemberian parameter
secaralangsung pada function di file server.php.
Untuk lebih jelas informasinya, file client.php bisa dimodifikasi sebagai berikut:
<?php // Pull in the NuSOAP code
require_once('nusoap.php');
// Create the client instance
$client = new nusoap_client('http://localhost/websrv/server.php', false);
// Check for an error
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
// At this point, you know the call that follows will fail
}
// Call the SOAP method
$result = $client->call('greeting', array('name' => 'Scott'));
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
// Display the request and response
echo '<h2>Request</h2>';
echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2>';
echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
// Display the debug messages
echo '<h2>Debug</h2>';
echo '<pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
?>