Professional Documents
Culture Documents
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
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.
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<br>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;
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