18
Artikel Membangun Web Service dan Client Service dengan menggunakan NuSOAP Disusun Oleh : Ovi Dyantina (09071003028) Sistem Informasi 6B Fakultas Ilmu Komputer

09071003028 Artikel NuSOAP

Embed Size (px)

Citation preview

Page 1: 09071003028 Artikel NuSOAP

Artikel Membangun Web Service dan Client Service

dengan menggunakan NuSOAP

Disusun Oleh :

Ovi Dyantina (09071003028)

Sistem Informasi 6B

Fakultas Ilmu Komputer

Universitas Sriwijaya

2009/2010

Page 2: 09071003028 Artikel NuSOAP

Daftar Isi

Daftar Isi ............................................................................................................................ i

Web Service ....................................................................................................................... 1

SOAP (Simple Object Acess Protocol) .............................................................................. 1

NuSOAP ............................................................................................................................ 9

Contoh Pemrograman SOAP Client-Server .................................................................... 11

Page 3: 09071003028 Artikel NuSOAP

Web Service

Web service adalah sebuah sofware aplikasi yang tidak terpengaruh oleh platform, ia akan menyediakan method-method yang dapat diakses oleh network. Ia juga akan menggunakan XML untuk pertukaran data, khususnya pada dua entities bisnis yang berbeda.

Beberapa karakteristik dari web service adalah:- Message-based- Standards-based- Programming language independent- Platform-neutral

Beberapa key standard didalam web service adalah: XML, SOAP, WSDL and

UDDI.

SOAP (Simple Object Access Protocol)

SOAP adalah sebuah XML-based mark-up language untuk pergantian pesan

diantara aplikasi-aplikasi. SOAP berguna seperti sebuah amplop yang digunakan untuk

pertukaran data object didalam network. SOAP mendefinisikan empat aspek didalam

komunikasi: Message envelope, Encoding, RPC call convention, dan bagaimana

menyatukan sebuah message didalam protokol transport.

SOAP menspesifikan secara jelas bagaimana cara untuk meng-encode header

HTTP dan file XML sehingga program pada suatu komputer dapat memanggil program

pada pada komputer lain dan mengirimkan informasi, dan bagaimana program yang

dipanggil memberikan tanggapan. SOAP memiliki tiga bagian, yaitu :

1. SOAP Envelope, yang mendefinisikan dokumen XML sebagai pesan SOAP. Element

Envelope merupakan element root yang dapat menggunakan identifier namespace

dari http://schemas.xmlsoap.org/soap/envelope/. Struktur dasar SOAP Envelope

kurang lebih seperti berikut:

<?xml version="1.0"?><soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> ...Pesan informasi, bisa mengandung

Page 4: 09071003028 Artikel NuSOAP

element Header dan harusterdapat element Body ...</soap:envelope>

2. Aturan encoding SOAP, yang mendefinisikan mekanisme serialisasi pesan SOAP.

Pesan SOAP yang menggunakan aturan serialisasi itu harus mendeklarasikan atribut

encodingStyle dengan nilainya berisi URI

http://schemas.xmlsoap.org/soap/encoding/.

3. SOAP RPC, yaitu bagaimana SOAP dapat digunakan seperti halnya XML-RPC.

Dalam SOAP sebenarnya dikenal 2 tipe aplikasi, yaitu RPC dan EDI (Electronic

Document Exchange). SOAP RPC (atau lebih dikenal sebagai “RPC-style” SOAP)

menggunakan pesan SOAP sebagai representasi nama prosedur berserta opsional

parameternya dan nilai balik dari prosedur. SOAP EDI (atau dikenal sebagai

“document-style” SOAP) merupakan pesan SOAP yang merepresentasikan transaksi

bisnis seperti order pembelian, pembayaran pajak atau dokumen sejenis lainnya.

Gambar. Skema proses menggunakan RPC

Pesan SOAP

Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen

berikut:

Page 5: 09071003028 Artikel NuSOAP

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

Page 6: 09071003028 Artikel NuSOAP

Pemrograman SOAP Client-Server

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 dansisi client.

Berikut contoh implementasi NuSOAP pada sisi server:

Kode Program File server.php

Berikut implementasi NuSOAP untuk sisi klien:

Kode Program File client.php

Page 7: 09071003028 Artikel NuSOAP

Berikut ini tampilan di web browser dari web service yang dijalankan antar dua file server.php dan client.php tersebut:

Tampilan Web Service sederhana dengan PHP:

Listing Program

$client = new soapclient(‘https://222.124.145.222/tps/service.asmx?WSDL’, true);

$result = $client->call($service_name, array(‘fStream’=>$xml_data,’Username’ =>

$service_username, ‘Password’=>$service_password));

//ini adalah hasilnya

$hasil = $result['CoCoCont_TesResult'];

print_r($result);

$sql_change = “UPDATE `tps_cococont_header` SET `SENT` = ’1′ WHERE

`REF_NUMBER` = ‘$ref_num’ “;

$rs_change = $db_int->execute($sql_change);

if($result){

Page 8: 09071003028 Artikel NuSOAP

//common::alert_to(“Pengiriman data dengan Ref Number $ref_num Berhasil”,

“index.php?module=xmlGenerator&action=listKirimKontainer”);

switch($hasil){

case “Proses berhasil”:

$sql_change = “UPDATE `tps_cococont_header` SET `SENT` = ’1′ WHERE

`REF_NUMBER` = ‘$ref_num’ “;

$rs_change = $db_int->execute($sql_change);

echo “berhasil”;

break;

case “User Tidak Dikenal !!”:

break;

case “Validasi data XML anda tidak benar”:

Result

kontainer_xml_template.xml

xml version=”1.0″ encoding=”UTF-8″ ?>

- <DOCUMENT xmlns=”cococont.xsd“>

- <COCOCONT>

- <HEADER>

<KD_DOK>{$kd_dok}<!–KD_DOK>

Page 9: 09071003028 Artikel NuSOAP

<KD_TPS>{$kd_tps}<!–KD_TPS>

<NM_ANGKUT>{$nm_angkut}<!–NM_ANGKUT>

<NO_VOY_FLIGHT>{$no_voy_flight}<!–NO_VOY_FLIGHT>

<CALL_SIGN>{$call_sign}<!–CALL_SIGN>

<TGL_TIBA>{$tgl_tiba}<!–TGL_TIBA>

<KD_GUDANG>{$kd_gudang}<!–KD_GUDANG>

<REF_NUMBER>{$ref_number}<!–REF_NUMBER>

<!–HEADER>

- <DETIL>

{section name=list loop=$item}

- <CONT>

<NO_CONT>{$item[list].no_cont}<!–NO_CONT>

<UK_CONT>{$item[list].uk_cont}<!–UK_CONT>

<NO_SEGEL>{$item[list].no_segel}<!–NO_SEGEL>

<JNS_CONT>{$item[list].jns_cont}<!–JNS_CONT>

<NO_BL_AWB />

<TGL_BL_AWB />

<NO_MASTER_BL_AWB />

<TGL_MASTER_BL_AWB />

Page 10: 09071003028 Artikel NuSOAP

<ID_CONSIGNEE />

<CONSIGNEE />

<BRUTO>{$item[list].bruto}<!–BRUTO>

<NO_BC11 />

<TGL_BC11 />

<NO_POS_BC11 />

<KD_TIMBUN>{$item[list].kd_timbun}<!–KD_TIMBUN>

<KD_DOK_INOUT />

<NO_DOK_INOUT />

<TGL_DOK_INOUT />

<WK_INOUT>{$item[list].wk_inout}<!–WK_INOUT>

<KD_SAR_ANGKUT_INOUT>{$item[list].kd_sar_angkut}<!–

KD_SAR_ANGKUT_INOUT>

<NO_POL />

<FL_CONT_KOSONG>{$item[list].fl_cont_kosong}<!–FL_CONT_KOSONG>

<ISO_CODE>{$item[list].iso_code}<!–ISO_CODE>

<PEL_MUAT>{$item[list].pel_muat}<!–PEL_MUAT>

<PEL_TRANSIT>{$item[list].pel_transit}<!–PEL_TRANSIT>

<PEL_BONGKAR>{$item[list].pel_bongkar}<!–PEL_BONGKAR>

Page 11: 09071003028 Artikel NuSOAP

<GUDANG_TUJUAN>{$item[list].gudang_tujuan}<!–GUDANG_TUJUAN>

<!–CONT>

{/section}

<!–DETIL>

<!–COCOCONT>

<!–DOCUMENT>

NuSOAP

NuSOAP adalah sebuah kumpulan class-class PHP yang memungkinkan user

untuk mengirim dan menerima pesan SOAP melalui protokol HTTP. Salah satu

keuntungan dari NuSOAP adalah penggunaannya tidak membutuhkan registrasi khusus

ke Sistem Operasi maupun web server karena NuSOAP bukan merupakan PHP

extension. 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

URL file WSDL tersebut dan menggunakan class “wsdl” untuk mem-parsing file WSDL

Page 12: 09071003028 Artikel NuSOAP

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

Instalasi dan Konfigurasi NuSOAP

Instalasi dan konfigurasi NuSOAP dapat dilakukan dengan tahapan 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’)

Page 13: 09071003028 Artikel NuSOAP

Contoh Pemrograman NuSOAP

Berikut ini merupakan hasil capture dari sebuah aplikasi zodiak menggunakan

web service yang dikembangkan menggunakan NuSOAP

ga

mbar. Aplikasi server dari web service zodiak

Gambar. Aplikasi client dari web service zodiac