membangun web service client dan server dengan menggunakan (siti melissa futri_09071003012)

18
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 1

Upload: jayen-kecil

Post on 28-Jul-2015

650 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 2: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 3: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 4: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 5: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 6: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 7: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 8: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 9: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 10: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 11: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 12: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 13: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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

Page 14: Membangun Web Service Client Dan Server Dengan Menggunakan (Siti Melissa Futri_09071003012)

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