Anda di halaman 1dari 10

MEMBANGUN WEB SERVICE DAN WEB CLIENT SERVICE DENGAN MENGGUNAKAN NUSOAP

Nama Nim Kelas

: Van Rodiansyah : 09071003018 : Sistem Informasi 6B

UNIVERSITAS SRIWIJAYA FAKULTAS ILMU KOMPUTER TAHUN PELAJARAN 2009-2010

DAFTAR ISI
Cover.. 1 Daftar isi ............................ 2 Konsep Dasar SOAP... 3 Pesan SOAP.... 3 SOAP Syntax Rules.4 NuSOAP..4 1. Instalasi dan Konfigurasi NuSOAP.5 2. Pemrograman SOAP Client-Server.5 Referensi....10

Konsep Dasar 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. Pesan SOAP Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut: Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP. Elemen header yang berisi informasi header. Elemen ini bersifat opsional. Elemen body yang berisi panggilan dan merespon informasi. Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses. Elemen ini opsional. Berikut struktur utama pesan SOAP:

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

NuSOAP NuSOAP adalah library yang digunakan untuk membangun web service berbasis SOAP yang ditulis dengan menggunakan bahasa PHP. NuSOAP ditulis oleh Dietrich Ayala dengan proyek awal bernama SOAPx4. Selanjutnya dia disewa NuSphere untuk terus mengembangkan proyek tersebut dan diberi nama NuSOAP. Dalam membangun sebuah sistem aplikasi berbasis web service, dibutuhkan dua komponen utama yaitu, server sebagai provider entity dan client sebagai requester entity NuSOAP adalah sebuah kumpulan class-class PHP yang memungkinkan user untuk mengirim dan menerima pesan SOAP melalui protokol HTTP. NuSOAP didistribusikan oleh NuSphere Corporation 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 SOAPEnvelope. 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. 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 peroperasi dan per-binding. Class soapclient menggunakan data dari file WSDL untuk menerjemahkan parameterparameternya 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. 1. Instalasi dan Konfigurasi NuSOAP 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: require_once(nusoap.php) 2. Pemrograman SOAP Client-Server Setelah melakukan instalasi NuSOAP, kita akan mencoba sebuah pemrograman web service SOAP client-server sederhana yang menyediakan sebuah service untuk mencetak sebuah string ke browser client. Sebagai contoh, kita akan membuat 2 aplikasi sederhana, yaitu aplikasi server (echoStringServer.php) dan aplikasi client (echoStringClient.php).

EchoStringServer.php

<?php require_once('nusoap.php'); $server = new soap_server(); $server->register('hello'); function hello($param) { $return_value = "Hallo $param<br>Ini Merupakan Contoh Web Service dan Web Client"; return $return_value; } $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?> echoStringClient.php <?php require_once('nusoap.php'); $client = new soapclient('http://localhost/soap/contoh/echoStringServer.php'); $param="Van Rodiansyah"; $result = $client->call('hello',array($param)); if (!empty($result)) echo $result; echo '<h2>Request</h2>'; echo '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; echo '<h2>Response</h2>'; echo '<pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>'; ?> Berikut ini adalah pesan SOAP Request dan SOAP Response yang dihasilkan pada contoh di atas: SOAP Request: POST /soap/contoh/echoStringServer.php HTTP/1.0 Host: localhost User-Agent: NuSOAP/0.7.2 (1.95) Content-Type: text/xml; charset=ISO-8859-1 ?

SOAPAction: "" Content-Length: 519 <?xml version="1.0" encoding="ISO-8859-1"?> <SOAP-ENV:Envelope ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns6545:hello xmlns:ns6545="http://tempuri.org"> <__numeric_0 xsi:type="xsd:string">Yadi Utama</__numeric_0> </ns6545:hello> </SOAP-ENV:Body> </SOAP-ENV:Envelope> SOAP Response: HTTP/1.1 200 OK Date: Thu, 25 May 2010 10:23:37 GMT Server: Apache/1.3.23 (Win32) X-Powered-By: PHP/4.1.1 X-SOAP-Server: NuSOAP/0.7.2 (1.95) Content-Length: 578 Connection: close Content-Type: text/xml; charset=ISO-8859-1 <?xml version="1.0" encoding="ISO-8859-1"?> <SOAP-ENV:Envelope SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:helloResponse xmlns:ns1="http://tempuri.org"> <return xsi:type="xsd:string"> Hallo Van Rodiansyah&lt;br&gt;Ini Merupakan Percobaan Web Service dan Web Client </return> </ns1:helloResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> SOAP xmlns:SOAPxmlns:SOAP-

Pada contoh program di atas, aplikasi server (echoStringServer.php) menyediakan service dengan nama operasi hello, kemudian melakukan registrasi operasi ke aplikasi server: $server->register('hello'); Setelah itu aplikasi server menyediakan sebuah method hello dengan parameter $param yang berfungsi untuk menerima input yang dikirimkan oleh client. Parameter ini kemudian digabung ke dalam sebuah variabel string $return_value untuk kemudian dikirim ke client: function hello($param) { $return_value = "Hallo $param<br>.."; return $return_value; } $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?

Kemudian, aplikasi client (echoStringClient.php) menunjuk ke sebuah URL yang menyediakan service: $client = new soapclient('http://localhost/soap/contoh/echoStringServer.php'); Perhatikan di sini, aplikasi client merujuk pada URL aplikasi server yang menyediakan service (echoStringServer.php). Kemudian aplikasi client melakukan pemanggilan layanan dengan mengeksekusi method call dengan paramater nama operasi dan input operasi $param. Hasil response yang diterima kemudian dicetak ke layar bowser: $param="Van Rodiansyah"; $result = $client->call('hello',array($param)); if (!empty($result)) echo $result; Apabila contoh di atas dijalankan di browser, maka akan tampak hasil tampilan berikut ini: Gambar Web service client yang dijalankan pada browser

REFERENSI http://google.com http://unsri.ac.id Utama,Yadi. 2010. Web Service PHP Dengan NuSOAP Toolkit .