Anda di halaman 1dari 10

Webservice & NuSoap

Nama Nim Kelas

: Taufiqurrahman : 09071003034 : Sistem Informasi 6B

UNIVERSITAS SRIWIJAYA FAKULTAS ILMU KOMPUTER TAHUN PELAJARAN 2009-2010 DAFTAR ISI

Cover.. 1 Daftar isi ............................ 2 Web Server & SOAP...3 Komponen komponen yang Terdapat Dalam Web Service............................................................................................... 3 Standard Web XML.4 Simple Object Access Protocol (SOAP) .4 Konsep Dasar SOAP...4 NuSOAP..5 Contoh Perograman SOAP..6 Daftar Pustaka....10

Webservice & NuSoap


Web Service merupakan suatu antarmuka yang menyediakan berbagai kumpulan operasi yang dapat diakses pada jaringan melalui pengiriman pesan Extensible Markup Language (XML) Standar industry untuk pengiriman pesan XML pada Web Service sekarang ini adalah dengan menggunakan Simple Object Access Protocol (SOAP). SOAP merupakan protokol komunikasi berbasis XML sederhana yang digunakan untuk pertukaran data terstruktur antar aplikasi dalam suatu jaringan. Sebuah Web Service digambarkan dengan bahasa XML yang telah distandarkan, disebut juga service description, yang berisi berbagai informasi yang dibutuhkan dalam kaitannya dengan layanan yang diberikan, termasuk format pesan (detail operasi), protokol yang digunakan dan lokasi Web Service. Web Services dapat dibentuk oleh interaksi antar tiga pihak yaitu: 1.Service provider, merupakan pemilik Web Service yang berfungsi menyediakan kumpulan operasi dari Web Service. 2.Service requestor, merupakan aplikasi yang bertindak sebagai klien dari Web Service yang mencari dan memulai interaksi terhadap layanan yang disediakan. 3.Service registry, merupakan tempat dimana Service provider mempublikasikan layanannya. Pada arsitektur Web Service, Service registry bersifat optional. Komponen komponen yang Terdapat Dalam Web Service Komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri. Standard standard web service adalah sebagai berikut : WSDL (Web Services Description Language) http://www.w3.org/TR/wsdl. Web Services Description Language adalah fromat XML yang diterbitkan untuk menerangkan web service. Deskripsi-deskripsi dari web service UDDI Universal Discovery, Description & Integration http://www.uddi.org/specification.html. UDDI merupakan skema dari XML. Arsitektur ini memungkinkan untuk konsumen dengan dukungan XML terintegrasi dengan aplikasi Web Service. Registry mengenai deskripsi servis SOAP Simple Object Access Protocol http://www.w3.org/TR/SOAP/ Protokol transport untuk berkomunikasi antar web service. Standard-standard lain: WSRP, WSIA, WSXL, dan lain-lain. Selain standard-standard Web Service, juga ada bagian-bagian Web Service (Web Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses berjalannya web service. Wire Protocols Aturan utama : menyediakan standard, channel komunikasi flexible. Aturan tambahan : menyediakan standard, representasi wire-level data yang flexible. 3

Keuntungan : interoperabilitas pada level terendah Deskripsi Aturan utama: menyediakan standard, jalan untuk menjabarkan apa dan bagaimana web service melakukan yang harus dilakukan dengan fleksibel. Keuntungan: interoperabilitas. Discovery Aturan utama: menyediakan standard, jalur untuk menemukan dimana web service di tempatkan dan bagaimana mencari informasi tambahan tentang apa yang dilakukan web service dengan fleksibel. Keuntungan: interoperabilitas, integrasi yang dinamis Perbedaan antara Web Service dan Web adalah web dibuat untuk interaksi antara program dan pengguna sedangkan Web Service dibuat untuk interaksi antara program dan program. Dengan adanya Web Service, sebuah aplikasi dapat dengan mudah dan cepat untuk diintegrasikan dengan aplikasi lainnya dan memiliki interoperabilitas yang tinggi karena menggunakan berbagai standard yang telah ada seperti HTTP, XML, dan SOAP. Pengguna Web Service dapat membangun aplikasinya masing-masing dengan memanfaatkan layanan yang disediakan oleh Web Service. Standard Web XML XML memungkinkan pengembang software untuk meng-expose sumber daya berharga pada bentuk yang memilki interoperabilitas tinggi, dimana sumber daya ini adalah semua tipe aplikasi atau pnyimpanan data yang digunakan oleh antar organisasi. Arsitektur XML Web services mendefinisikan mekanisme standard untuk menyediakan sumber daya melalui pengiriman pesan XML. Untuk mengakses sumber daya hanya dengan mentransmisikan pesan-pesan XML melalui protokol standard seperti TCP, HTTP, atau SMTP. Kata Web Service (singkatnya service) mengacu pada bagian kode yang mengimplementasikan interface XML menjadi sumber daya, dimana bisa jadi sulit diakses.

Simple Object Access Protocol (SOAP)


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 terdiri dari 3 bagian, yaitu : Envelope , suatu kerangka yang mendefinisikan apa yang ada dalam pesan dan bagaimana pesan harus diproses serta menunjukkan resipien dari message tersebut. Header , berisi informasi yang berhubungan dengan keamanan dan routing.Keberadaan Header dalam SOAP bersifat optional. Body , berisi data yang berhubungan dengan aplikasi tertentu yang sedang dipertukarkan. Data di-mark-up sebagai XML dan dimasukkan dalam format yang spesifik yang didefinisikan dalam XML Schema.

Standard SOAP yang dikembangkan oleh W3C versi terakhir adalah SOAP versi1.2 yang ditetapkan pada 24 Juni 2003.

NuSOAP 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. 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 5

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. Contoh Perograman SOAP 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>Selamat datang pada pemrograman web service..."; 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="Yadi Utama"; $result = $client->call('hello',array($param)); if (!empty($result)) echo $result; echo echo echo echo ?> '<h2>Request</h2>'; '<pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>'; '<h2>Response</h2>'; '<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 SOAP ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="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> <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 09:32:27 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:SOAP-ENV="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 Yadi Utama&lt;br&gt;Selamat datang pada pemrograman web service... </return> </ns1:helloResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

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>Selamat datang pada pemrograman web service..."; 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="Yadi Utama"; $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:

Daftar Pustaka
Yadi Utama.2010. Web Service PHP Dengan NuSOAP Toolkit http://forum.stiki.ac.id/viewtopic.php?f=8&t=870&start=0 . Mencoba webservice: PHP Nusoap, MYSql 5, Delphi 7.

10