membangun web service client dan server dengan menggunakan (siti melissa futri_09071003012)
TRANSCRIPT
Tugas Sistem Informasi Berbasis Web
Membangun Web Service Client dan Server dengan
Menggunakan
NuSOAP Service
Nama : Siti Melissa Futri
Nim : 09071003012
Kelas : Sistem Informasi 6B
Fakultas Ilmu Komputer
Universitas Sriwijaya
1
Tugas Sistem Informasi Berbasis Web
DAFTAR ISI
Daftar Isi…………………………………………………………………………………….2
Pendahuluan…………………………………………………………………………………3
Web Service…………………………………………………….………………………….. 3
XML…..…………………………………………………………………………………… 3
SOAP dan NuSOAP………………………………………………………………………. 4
Daftar Pustaka……………………………………………………………………………...14
2
Tugas Sistem Informasi Berbasis Web
Membangun Web Service Client dan Server dengan Menggunakan NuSOAP
Service
PENDAHULUAN
Konsep teknologi Web Service muncul untuk mendukung sistem terdistribusi yang
berjalan pada infrastruktur yang berbeda. SOAP (Simple Object Application Protocol) yang
merupakan kombinasi dari XML (eXtensible Markup Language) yang dikirimkan melalui
HTTP (HyperText Transport Protocol).
Dengan adanya kombinasi antara XML dan HTTP, web service yang berbasiskan
XML sangat mungkin untuk diimplementasikan sehingga menjanjikan banyak kemudahan
dan perbaikan dalam mendukung integrasi berbagai platform system dan aplikasi, baik
melalui infrastruktur intranet maupun internet/ekstranet.
WEB SERVICE
Web service merupakan salah satu sistem perangkat lunak yang
menginteroperabilitaskan berbagai sistem lainnya pada jaringan internet. Dengan adanya web
service, sebuah sistem web dapat berbagi informasi maupun fungsionalitas (remote procedure
call) dari setiap sistem dalam hubungan server dan client.
Konsep utama web service adalah bagaimana suatu data/informasi yang ada bias
berkomunikasi tanpa ada halangan yang merintang baik dari segi platform maupun database.
Kita harus memiliki file di sisi server yang mengakses server bersangkutan dan file di sisi
client yang akan menjalankan perintah-perintah atau service yang telah di daftarkan di sisi
server. Kelemahan web service pada umumnya terletak pada keamanan pertukaran data.
XML
XML merupakan dasar terbentuknya web service yang digunakan untuk
mendeskripsikan data. Pada level paling detail web service secara keseluruhan dibentuk
3
Tugas Sistem Informasi Berbasis Web
diatas XML. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan
komunikasi aplikasi eksternal dengan partner luaran. Dengan standarisasi XML, aplikasi-
aplikasi yang berbeda dapat dengan mudah berkomunikasi antar satu dengan yang lain.
SOAP
SOAP singkatan dari Simple Object Access Protocol. SOAP adalah protokol untuk
pertukaran informasi dengan desentralisasi dan terdistribusi. SOAP dibangun dengan
menggunakan protokol komunikasi HTTP. Karena HTTP didukung oleh semua browser dan
server, maka SOAP dapat berkomunikasi dengan berbagai aplikasi meskipun terdapat
perbedaan sistem operasi, teknologi, dan bahasa pemrogramannya.
Peran SOAP di dalam teknologi web service adalah sebagai protokol pemaketan
untuk pesan-pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasi
penggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasis
XML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dan
tipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAP
membuatnya cocok untuk berbagai pertukaran pesan pada aplikasi.
SOAP Syntax Rules
· A SOAP message MUST be encoded using XML
· A SOAP message MUST use the SOAP Envelope namespace
· A SOAP message MUST use the SOAP Encoding namespace
· A SOAP message must NOT contain a DTD reference
· A SOAP message must NOT contain XML Processing Instructions
Pesan SOAP
Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut:
1. Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
2. Elemen header yang berisi informasi header. Elemen ini bersifat opsional.
3. Elemen body yang berisi panggilan dan merespon informasi.
4
Tugas Sistem Informasi Berbasis Web
4. Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses. Elemen ini
opsional.
Berikut struktur utama pesan SOAP:
NuSOAP adalah sebuah kumpulan class-class PHP yang memungkinkan user untuk mengirim
dan menerima pesan SOAP melalui protokol HTTP. NuSOAP didistribusikan oleh NuSphere
Corporation (http://www.nusphere.com) sebagai open source toolkit di bawah lisensi GNU LGPL.
Salah satu keuntungan dari NuSOAP adalah bahwa NuSOAP bukan merupakan PHP
extension, sehingga penggunaannya tidak membutuhkan registrasi khusus ke Sistem Operasi
maupun web server. NuSOAP ditulis dalam kode PHP murni sehingga semua developer web dapat
mengunakan tool ini tanpa tergantung pada jenis web server yang digunakan.
NuSOAP merupakan toolkit web service berbasis komponen. NuSOAP memiliki sebuah class
dasar yang menyediakan method seperti serialisasi variabel dan pemaketan SOAP-Envelope.
Interaksi web service dilakukan dengan class client yang disebut dengan class “soapclient” dan class
server yang disebut dengan class “soap_server”. Class-class ini mengizinkan user untuk melakukan
proses pengiriman dan penerimaan pesan-pesan SOAP dengan bantuan beberapa class-class
pendukung lainnya untuk melengkapi proses tersebut.
5
Tugas Sistem Informasi Berbasis Web
Operasi-operasi pengiriman pesan SOAP dijalankan dengan melibatkan paramater nama
operasi yang diinginkan melalui method call(). Jika web service yang dituju menyediakan sebuah file
WSDL, maka class “soapclient” akan mengacu langsung pada URL file WSDL tersebut dan
menggunakan class “wsdl” untuk mem-parsing file WSDL dan mengekstrak seluruh datanya. Class
“wsdl” menyediakan method-method untuk mengekstrak data per-operasi dan per-binding.
Class “soapclient” menggunakan data dari file WSDL untuk menerjemahkan parameter-
parameternya sekaligus menyusun SOAP envelope ketika user mengeksekusi suatu pemanggilan
service. Ketika pemanggilan ini dieksekusi, class “soapclient” menggunakan “soap_transport_http”
untuk mengirim pesan SOAP request dan menerima pesan SOAP response. Selanjutnya pesan SOAP
response yang diterima di-parsing dengan menggunakan class “soap_parser” .
Berikut ini adalah diagram proses web service dengan menggunakan NuSOAP:
Gambar Diagram proses web service dengan NuSOAP
Jika webservice yang dituju menyediakan file WSDL, pemanggilan service dilakukan dengan
mengeksekusi method call pada class “soapclient” dengan melibatkan parameter argumen yang
disediakan oleh file WSDL.
Instalasi dan konfigurasi NuSOAP dapat dilakukan dengan beberapa tahap berikut:
Download file dari situs http://dietrich.ganx4.com/nusoap/.
Ekstrak file zip
Copy file nusoap.php ke lokasi direktori tertentu
Lakukan include class dalam kode PHP:
6
Tugas Sistem Informasi Berbasis Web
require_once(‘nusoap.php’)
Dalam membangun sebuah sistem aplikasi berbasis web service, dibutuhkan dua komponen
utama yaitu, server sebagai provider entity dan client sebagai requester entity . Sebagai
contoh, di bawah ini terdapat dua listing program pada sisi server dan sisi client. Berikut
contoh implementasi NuSOAP pada sisi server:
Kode Program File server.php
<?php
require_once(‘nusoap.php’);
$server = new soap_server;
$server->register(‘hello’);
function hello($name) {
return ‘Hello, ‘ . $name;
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ?
$HTTP_RAW_POST_DATA :
”;
$server->service($HTTP_RAW_POST_DATA);
?>
Berikut implementasi NuSOAP untuk sisi klien:
Kode Program File client.php
<?php
require_once(‘nusoap.php’);
$client = new soapclient(‘http://localhost/soap/server.php’);
$result = $client->call(‘hello’, array(‘name’ => $_GET['name']));
echo $result;
?>
Berikut ini tampilan di web browser dari web service yang dijalankan antar dua file
server.php dan client.php tersebut:
7
Tugas Sistem Informasi Berbasis Web
Tampilan Web Service sederhana dengan PHP
Berikut merupakan salah satu contoh dari pesan SOAP (SOAP Message):
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body SOAPENV:
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<taxCalc xmlns="urn:soap-whytewolf-ca:taxcalc" id="o0" SOAP-ENC:root="1">
<rate xmlns="" xsi:type="xsd:string">7</rate>
<sub xmlns="" xsi:type="xsd:string">856</sub>
</taxCalc>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Pengembangan Web Service Untuk Aplikasi Zodiak
Web Service yang akan dikembangkan menggunakan NuSOAP API (Application
Programming Interface). Anda dapat memperoleh API tersebut pada situs
http://deitrich.ganx4.com/nusoap/.
Menggunakan database MySQL 5 (http://www.mysql.com) sebagai media penyimpanan data
8
Tugas Sistem Informasi Berbasis Web
zodiak. Sedangkan Web Server yang digunakan adalah Apache 2 (http://www.apache.org).
1. Menyiapkan database yang akan digunakan
Sebelum menulis kode program untuk aplikasi server, terlebih dahulu Anda siapkan database
yang akan digunakan, yaitu data mengenai zodiak.
mysql> CREATE DATABASE zodiak;
mysql> CREATE TABLE ramalan (nama_zodiak VARCHAR(20) PRIMARY KEY, tanggal
VARCHAR(30) NOT NULL, ramalan VARCHAR(255) NOT NULL, keuangan
VARCHAR(255)
NOT NULL, kesehatan VARCHAR(255) NOT NULL, angka_keberuntungan INT NOT
NULL);
2. Menulis kode program untuk aplikasi server
Setelah Anda membuat database ‘zodiak’, langkah selanjutnya yaitu membuat kode program
untuk
aplikasi server dari Web Service.
<?
require_once('nusoap.php');
$ns = "http://localhost:8084/";
$server = new soap_server;
$server->configureWSDL('RamalanZodiak', $ns);
$server->wsdl->schemaTargetNamespace = $ns;
$server->register('RamalanZodiak', array('nama_zodiak' => 'xsd:string'),
array('return'=>'xsd:string'), $ns);
function RamalanZodiak($nama_zodiak) {
if (!$nama_zodiak) {
return new soap_fault('Client', '', 'Harus ada nilainya!', '');
}
if ($conn = mysql_connect("host", "user", "password")) {
if ($db = mysql_select_db("zodiak")) {
$result = mysql_query("SELECT * FROM ramalan WHERE
nama_zodiak = '$nama_zodiak'");
while ($row = mysql_fetch_array($result)) {
9
Tugas Sistem Informasi Berbasis Web
$zodiak = $row["nama_zodiak"];
$tanggal = $row["tanggal"];
$ramalan = $row["ramalan"];
$keuangan = $row["keuangan"];
$kesehatan = $row["kesehatan"];
$angka_keberuntungan = $row["angka_keberuntungan"];
}
} else {
return new soap_fault('Database Server', '', 'Koneksi ke
database gagal!', '');
}
} else {
return new soap_fault('Database Server', '', 'Koneksi ke database
gagal!', '');
}
return "<b>Zodiak: </b>$zodiak<br>
<b>Tanggal: </b>$tanggal<br>
<b>Ramalan: </b>$ramalan<br>
<b>Keuangan: </b>$keuangan<br>
<b>Kesehatan: </b>$kesehatan<br>
<b>Angka Keberuntungan: </b>$angka_keberuntungan";
}
$server->service($HTTP_RAW_POST_DATA);
exit();
?>
Untuk memastikan apakah aplikasi server yang telah dibangun dapat berjalan dengan baik
atau tidak, ada baiknya kalau Anda melakukan pengetesan terlebih dahulu sebelum Anda
menulis kode program untuk aplikasi client dari Web Service.
10
Tugas Sistem Informasi Berbasis Web
Gambar 1. Aplikasi Server dari Web Service Zodiak
Jika pengetesan yang Anda lakukan berhasil, maka pada browser Anda akan tampil seperti
gambar di atas. Anda dapat melihat deskripsi dari Web Service yang Anda bangun dengan
memilih menu WSDL pada bagian kiri atas. Tampilan dari deskripsi Web Service Zodiak
adalah sebagai berikut:
11
Tugas Sistem Informasi Berbasis Web
Gambar 2. WSDL dari Web Service Zodiak
3. Menulis kode program untuk aplikasi client
Langkah berikutnya adalah menulis kode program untuk aplikasi client. Aplikasi client akan
melakukan permintaan layanan pada server Web Service, dan akan menerima nilai yang
dikembalikan oleh server Web Service.
<?
require_once('nusoap.php');
$param = array('nama_zodiak' => $nama_zodiak);
$client = new
soapclient('http://localhost:8084/secangkirkopipanas/zodiak_webservice/serv
er.php');
$response = $client->call('RamalanZodiak', $param);
if ($client->fault) {
echo "FAULT:<br>";
echo "Code: { $client->faultcode }<br>";
echo "String: { $client->faultstring }";
12
Tugas Sistem Informasi Berbasis Web
} else {
echo $response;
}
$client=new soapclient($wsdl, 'wsdl');
$wsdl="http://localhost:8084/secangkirkopipanas/zodiak_webservice/server.ph
p?wsdl";
echo $response = $client->call('RamalanZodiak', $param);
?>
Untuk memastikan apakah aplikasi client yang telah dibangun dapat berjalan dengan baik
atau tidak,lakukan pengetesan pada aplikasi client. URL dari aplikasi client ditambahkan
parameter ‘nama_zodiak’.
http://localhost:8084/secangkirkopipanas/zodiak_webservice/client.php?nama_zodiak=libra
Jika berhasil, maka Anda akan mendapat tampilan browser seperti gambar berikut:
Gambar 3. Aplikasi Client dari Web Service Zodiak
Aplikasi zodiak menggunakan PHP Web Service yang baru saja Anda bangun, dapat
dikembangkan
sesuai dengan kebutuhan Anda. Selain itu, Anda juga dapat mengkolaborasikan Web Service
zodiak ini dengan aplikasi pada mobile phone menggunakan J2ME atau dengan aplikasi pada
PDA menggunakan Microsoft .NET.
13
Tugas Sistem Informasi Berbasis Web
DAFTAR PUSTAKA
Haryanto, Robertus Lilik. 2006. Aplikasi Zodiak Menggunakan PHP Web Service. Kuliah
Umum IlmuKomputer.Com
www.google.com
14