Kucingers's nest

Keyboard, Paper, and Bicycle

Mengenal nuSOAP part 1 : pengenalan

Assalamu’alaikum

SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data.

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 adalah protokol ringan yang ditujukan untuk pertukaran informasi struktur pada lingkup desentralisasi, dan terdistribusi. SOAP menggunakan teknologi XML utuk mendefinisikan rangka kerja pemesanan terekstrensi di mana menyediakan konstruksi pesan yang dapat dipertukarkan pada protokol berbeda. Rangka kerja dirancang bebas dari model pemrograman dan spesifikasi implementasi semantik.

Info diatas diambil dari wikipedia (thanx a lot)

Gampangnya SOAP itu protokol (tata cara bicara /bahasa) untuk program-program yang terpisah baik secara lokasi, maupun jenis platform. Jadi secara konsep SOAP itu dibuat untuk menyatukan berbagai macam bahasa pemrograman biar program2 itu bisa berbicara satu sama lain, dengan XML.

Jadi para programmer Bea Cukai itu nggak perlu belajar PHP untuk nerima data dari kita yang diwajibkan lapor data tersebut . Dan yang lebih penting, KITA nggak perlu belajar bahasa .NET yang seperti (no comment…). Untuk saling bertukar informasi (saat ini efektifnya baru kita yang kirim data, kita blom bisa pake data dari mereka, btw tolong konfirmasi lagi yah)

Beruntung buat kita (ya , saya , anda dan semua orang) udah ada library PHP yang cukup mudah untuk bermain-main dengan SOAP , kalau anda masih bilang menggunakan nuSOAP itu rumit, silahkan coba pake cara native, atau hard code sendiri , maka anda akan mengerti kenapa saya memilih NuSOAP (selain tekanan untuk cepat selesai tentunya J )

  • Persiapan

Sebelum menggunakan nusoap ada beberapa persiapan yang perlu dilakukan,

Aktifkan modul cURL dan non aktifkan modul php_soap pada instalasi PHP anda bila belum, karena pada beberapa installasi PHP curl tidak diaktifkan secara default (mis. XAMPP)

Caranya:

Cari dan buka file PHP.INI (untuk tiap2 instalasi bisa berbeda)

Lalu search and destroy, eh cari modul php_curl di daftar extension nya

seperti gini :

;extension=php_curl.dll

Dan hilangkan tanda titik-koma di depannya menjadi seperti ini:

extension=php_curl.dll

cari lagi modul php_soap

extension-=php_soap.dll

kali ini tambahkan tanda titik koma di depannya kalau belum ada

;extension=php_soap.dll

Kenapa mesti di otak-atik nih? Ngerepotin aja. hehehe kalau anda nanya kayak gitu, saya coba kasih jawaban:

· Karena Tpsonline menggunakan secure http (https) kita butuh curl untuk mengakomodasi nya, ini disimpulkan dari pengalaman saya ketika mencoba membuat web service di localhost, dan client di komputer yang sama. Semua berjalan lancar sampai saya develop klien tuk tpsonline. Dia error deh, setelah dirunut ternyata butuh curl

· Php_soap di non-aktifkan dengan alasan terjadinya ambiguitas nama fungsi dari nusoap, dengan php_soap. Sebenarnya hal ini dapat dihindari dengan menggunakan alias pada nama fungsi di nusoap.

Persiapan selesai, tinggal 1 lagi yang belum, download dulu paket nusoap disini http://sourceforge.net/projects/nusoap/, atau langsung ke http://downloads.sourceforge.net/nusoap/nusoap-0.7.3.zip?modtime=1194348059&big_mirror=0

  • contoh skrip

langsung masuk contoh skrip, gak biasa bahas-bahas teori gitu, hehehe. Kita coba buat coding basic menggunakan nuSOAP, kita akan buat server dan klien nya

pertama-tama kita akan buat server nya dulu, buat apa ada klien kalo nggak ada server J. Btw saya kurang imajinasi jadi bikinnya standar abiss

Server ini membuka sebuah metode SOAP tunggal yang akan mengambil nilai masukan berupa string, dan mengeluarkan hasil berup string pula. Mudah-mudahan komentar dalam kode akan mempermudah anda.

helloworld.php

<?php

// Ambil kode nusoap

require_once(‘nusoap.php’);

// buat instance server

$server = new soap_server;

// daftar kan metode yang bisa diakses

$server->register(‘hello’);

// buat fungsi dari yang berusan didaftarin

function hello($name) {

return ‘Hello, ‘ . $name;

}

// gunakan request untuk mencoba memanggil service yang dibuka

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ”;

$server->service($HTTP_RAW_POST_DATA);

?>

Sekarang untuk klien nya, pertama-tama yang perlu di perhatikan pada saat instansiasi soapclient harus ditulis URL lengkapnya (jangan ampe miss). Kedua-dua ketika memanggil service, parameter pertama adalah nama service. Dan nama service ini CASE-SENSITIVE. Yang terakhir (ketiga-tiga) parameter ke dua dari pemanggilan service adalah array dari parameter yang akan dilanjutkan ke metode dari web service.

<?php
// ambil kode nusoap
require_once('nusoap.php');
// buat instansiasi klien, perhatikan urlnya
$client = new soapclient('http://localhost/nusoap/helloworld.php');
// Panggil metode SOAP dengan parameter nama
$result = $client->call('hello', array('name' => 'Ibnu'));
// Tampilkan hasilnya
print_r($result);
?>
 Client di atas hanya berfungsi untuk menampilkan respon dari server,
tapi cukup tuk membantu kita kenal dengan SOAP, yayyyy!!

FYI tulisan ini dibuat berdasarkan manual yang saya buat tuk perusahaan
tercinta, dan mencomot dari sana sini. Thx for your support.

Wassalamu'alaikum

Daftar Pustaka


September 18, 2008 - Posted by | Kandang Koding | , , ,

9 Komentar »

  1. tulisan kamu oke, singkat dan jelas
    nah selanjutnya, tolong dibahas yang wsdl, terimakasih

    Komentar oleh tprdewi | November 19, 2008 | Balas

  2. Iya maaf dah 2 bulan gak di update, tunggu ya

    Komentar oleh kucingers | November 20, 2008 | Balas

  3. mas kok ga isa yachhh, saat aku panggil server nya ada error

    SOAP-ENV:Clientmethod ” not defined in service

    kenapa yachhh….. :-??

    Komentar oleh yo | Maret 4, 2009 | Balas

    • coba aja di periksa mas nama fungsi SOAPnya kadang hurufnya ada yang meleset, case sensitive gitu

      Komentar oleh ibnu triyono | Maret 30, 2009 | Balas

  4. Yo..sepertinya itu error karena methodnya ga ada

    Komentar oleh Ari | Maret 12, 2009 | Balas

  5. Mas, ini kan untuk setting di windows
    klo untuk setting di linux (ubuntu) gimana tu mas??

    mohon pencerahannya

    terima kasih

    Komentar oleh Gus Arik | April 27, 2009 | Balas

    • Sebelumnya kalo php_curl nya blom ada install dulu
      dengan perintah:
      sudo apt-get install php5-curl
      restart apache:
      sudo /etc/init.d/apache2 restart
      itu untuk enable php_curl nya, sedangkan untuk disable php_soap nya agak ribet
      bisa dilihat disini
      atau dengan cara ke 2. edit nusoap.php dan ganti nama class soapclient jadi yang lain
      misalnya soap_client, untuk kedua saran di atas saya sendiri belum pernah coba,
      baru pindah ke ubuntu dan belum ada proyek SOAP lagi

      Komentar oleh ibnu triyono | Mei 3, 2009 | Balas

  6. sebelumnya salam kenal

    Komentar oleh Gus Arik | April 27, 2009 | Balas

    • salam kenal juga🙂

      Komentar oleh ibnu triyono | Mei 3, 2009 | Balas


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: