blog how to, blog trick, blog tips, tutorial blog, blog hack

Selasa, Januari 05, 2010

Web Service

WEB SERVICE SOAP, WSDL, DAN PEAR

Web Service adalah desain suatu sistem yang memungkinkan suatu mesin untuk berinteraksi denganmesin lain dalam suatu jaringan. Web Service biasanya digunakan sebagai API (Applicaton Programming Interface) pada suatu aplikasi yang bekerja di jaringan internet. Bahkan Web Service sering disebut sebagai Web API.


1. SIMPLE OBJECT ACCESS PROTOCOL ( SOAP )
Awalnya SOAP adalah kependekan dari "Simple Object Access Protocol". Tapi kemudian oleh W3C singkatan tersebut dihapus sehingga sekarang SOAP bukan singkatan dari apapun. Kini pengertian SOAP adalah protokol untuk pertukaran message berformat XML. Sebuah client web service mengirim request berbentuk XML kepada provider web service. Provider mem-parsing request tersebut, menjalankan service, dan mengirim response kembali ke client juga dalam bentuk XML. Baik request dan response tersebut keduanya menggunakan protokol SOAP. SOAP menjadi sangat mudah diterima oleh berbagai pihak, terutama oleh berbagai vendor IT. Dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada sebelumnya dan sudah banyak digunakan. Misalnya untuk protokol transport, yang paling banyak digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak diragukan lagi manfaat dan perannya di dalam pertukaran data.
SOAP menspesifikan secara jelas bagaimana cara untuk meng-encode header HHTP 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.
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.

Manfaat SOAP
• Menggunakan SOAP melalui HTTP mengijinkan kemudahan komunikasi melewati proxy dan firewall
• SOAP cukup berguna untuk mengijinkan penggunaan dalam protocol transport yang berbeda.
• SOAP adalah independen protocol.
• SOAP adalah bahasa yang independent.

Kelemahan SOAP
• SOAP dapat menjadi lambat saat ditandingkan dengan teknologi middleware seperti CORBA.
• Kebanyakan penggunaan HTTP sebagai protokol transpor dilakukan dengan ketidaktahuan bagaimana operasi dapat dimodelkan dalam HTTP.
• Saat mempercayakan HTTP sebagai protokol transfer, sebuah firewall didesain hanya untuk mengijinkan web browsing menampilkan analisa lebih detail.

Walaupun SOAP merupakan standar terbuka, tidak semua bahasa menyediakan layanan. JAVA, Delphi, .Net dan Flex menawarkan integrasi SOAP/ layanan IDE dengan sangat baik. Sedangkan Python dan PHP layanannya lebih lemah.

Struktur utama pesan SOAP:

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 . Sebagai contoh, di bawah ini terdapat dua listing program pada sisi server dan sisi client. Berikut contoh implementasi NuSOAP pada sisi server:

Kode Program File server.php
register(’hello’);
function hello($name) {
return ‘Hello, ‘ . $name;
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :
”;
$server->service($HTTP_RAW_POST_DATA);
?>
Berikut implementasi NuSOAP untuk sisi klien:
Kode Program File client.php
call(’hello’, array(’name’ => $_GET['name']));
echo $result;
?>

WSDL
Web Services merupakan salah satu bentuk implementasi dari arsitektur model aplikasi N-Tier yang berorientasi layanan. Perbedaan Web Services dengan pendekatan N-Tier lainnya adalah dari segi infrastruktur dan dokumen yang digunakan sebagai format pertukaran data. Dalam implementasinya, Web Services tidak mempunyai tampilan, karena Web Services termasuk dalam Business- Service tier. Artinya didalam Web Services hanya tersedia fungsi-fungsiyang nantinya dapat digunakan oleh aplikasi lainnya Web Services menggunakan XML sebagai format dokumen dalam melakukan pertukaran datanya. Karena XML merupakan suatu format dokumen yang berbasis teks, maka Web Services memungkinkan berlangsungnya komunikasi antar aplikasi yang berbeda dengan platform yang berbeda pula. Web Services dapat diimplementasikan dalam berbagai jenis platform dengan menggunakan bahasa pemrograman apa pun, dan bisa digunakan oleh berbagai aplikasiyang menggunakan bahasa pemrograman apapun dengan platform apapun juga. Selama aplikasi tersebut dapat berkomunikasi dengan Web Services menggunakan protokol-protokol komunikasi. Termasuk HTTP, XML,SOAP, UDDI (Universal Description Discovery and Integration), dan WSDL (Web Services Description Language).

XML Web Services dapat digunakan secara internal oleh suatu aplikasi atau secara external. Digunakan secara external di sini maksudnya yaitu XML Web Services terdapat pada internet dan digunakan oleh berbagai macam aplikasi. XML Web Services mudah diakses melalui interface standar dan XML Web Services juga mengijinkan bermacam-macam sistem untuk bekerja bersama-sama dalam sebuah pekerjaan. Web Services memiliki blok bangunan sebagai berikut :
1. Menggunakan UDDI dan DISCO sebagai sarana pencarian service
2. Menggunakan WSDL dan XML Schema sebagai sarana untuk menjelaskan informasi yang memadai kepada client tentang spesifikasi Web Services itu sendiri. Biasanya disertai dengan contoh penggunaannya bila parameter yang diperlukan hanya berupa tipe data primitif.
3. Format pesan yang digunakan sebagai sarana komunikasi Web Services dengan client maupun service lainnya didefinisikan dengan SOAP
4. Pengkodean pesan yang digunakan Web Services adalah dalam format XML
5. Transportasi pesan menggunakan protokol standar, yaitu HTTP, SMTP, dan lain-lainnya. Berikut gambaran sederhana konsep Web Services serta keterhubungan antara Web Services dengan aplikasiclient maupun server


2. WEB SERVICE DESCRIPTION LANGUAGE (WSDL)

WSDL merupakan bahasa standard yang menyediakan mekanisme untuk mendeskripsikan Service yang disediakan oleh sistem (Web Service), lokasi keberadaan service tersebut dan bagaimana cara memperolehnya, secara terstruktur dalam format XML. WSDL dapat dianalogikan sebagai IDL (interface definition language) dalam CORBA dan COM. Service dideskripsikan sebagai koleksidari entry-point atau port komunikasi. WSDL mendeskripsikan service dengan menggunakan elemen sebagai berikut :
1. Type, yaitu tipe data yang digunakan sebagai argumen dan return type
2. Message, digunakan untuk merepresentasikan definisi data yang ditransmisikan.
3. Port type, merupakan Sekumpulan operasi yang didukung oleh satu atau lebih endpoint.
4. Binding, digunakan untuk mendefinisikan protokol dan format pertukaran data untuk operasi yang didefinisikan oleh Port type.
5. Port, digunakan untuk menspesifikasikan end-point yang digunakan untuk binding.
6. Service, merupakan koleksi endpoint yang berkaitan yang disediakan oleh Web Service.
7. Operation, digunakan untuk mendefinisikan kemampuan yang didukung oleh servis tertentu.


Integrasi Berbagai Referensi Web Service Secara Dinamis
Pada penggunaan aplikasi Visual Studio 2005, untuk mereferensikan Web Service ke dalam suatu aplikasi yang dibuat, diperlukan penambahan referensi web service ke dalam editor aplikasi yang dibuat, kemudian memanggil berbagai method secara statis, cara ini tidak bisa dibilang efektif, mengingat bahwa pembuat aplikasi harus berulang kali melakukan kompilasi terhadap aplikasiyang dibuat sesuai dengan referensi Web Service yang ditambah atau dikurangi. Untuk mengatasi masalah tersebut, pembuat aplikasi memerlukan penggunaan fungsi WebRequest dan WSDL dari aplikasi Web Service yang akan digunakan. Kemudian WebRequest akan mengembalikan suatu objek stream yang kemudian akan dibaca oleh class ServiceDescription yang selanjutnya akan dibuatkan proxy class untuk memanggil dan menggunakan method yang ada pada referensi Web Service berdasarkan WSDL yang digunakan oleh WebRequest. Salah satu contoh penggunaan WebRequest dapat dilihat pada potongan kode di bawah ini:
Kemudian, dalam menangani penggunaan berbagai Web Service sekaligus, pembuat aplikasi memerlukan berbagai WSDL dari Web Service referensi yang akan digunakan kemudian melakukan penggunaan WebRequest sesuai kebutuhan.

3. PHP EXTENSION AND APPLICATION REPOSITORY (PEAR)
Suatu repositori kode sumber program PHP yang merupakan koleksi class, fungsi yang berkualitas, terdokumentasi, dan berfungsi dengan baik yang dapat digunakan oleh programmer-programmer PHP dalam development.
Proyek PEAR dirintis pada tahun 1999 oleh Stig Bakken untuk menyediakan suatu pustaka perangkat lunak terstruktur, memelihara sistem distribusi kode dan mengelola paket kode, serta mempromosikan gaya pembuatan kode standar. Setiap paket PEAR merupakan suatu proyek independen di bawah naungan PEAR yang masing-masing memiliki tim pengembang, pengontrol versi, serta dokumentasinya sendiri.
Koleksi class PEAR yang paling dikenal adalah PEAR:DB yaitu class yang dapat digunakan untuk melakukan koneksi dan pengolahan database. Merupakan class abstraksi database sehingga apabila kita melakukan perubahan server database maka kita hanya perlu mengganti connection string/string koneksi yang digunakan.
Konsep ini serupa dengan ADO, JDBC, maupun ADO.NET yang memungkinkan kita hanya mengubah koneksi string untuk berpindah database server. Jadi apabila ingin melakukan development dengan MySQL lalu untuk produksi/server final, gunakan PostgreSQL bukan menjadi masalah lagi. Selain PEAR:DB, akan didapatkan koleksi class untuk melakukan caching, template, HTML, dsb. Di dalam PEAR terdapat juga PECL : PHP Extension Code Library (PECL)

Fungsi PEAR Adalah:
- library terstruktur dari kode open souce untuk pengguna PHP
- Style standar untuk penulisan kode dalam PHP
- PHP Foundation Classes (PFC), koleksi Class yang menjadi bagian dari distribusi PHP yang dijamin kestabilannya
- PHP Extension Code Library (PECL), fungsi ekstensi dari bahasa C yang menjadi bagian dari PEAR
- Situs web, mailling list dan komunitas yang mendukung PEAR.
Contoh kode lengkapnya seperti ini:

‘mysql’,
‘hostspec’ => ‘localhost’,
‘database’ => ‘test_db’,
‘username’ => ‘test_user’,
‘password’ => ‘test_password’
);
$dbh = DB::connect($dsn);
$stmt = “SELECT id, name FROM examples ORDER BY id”;
$result = $dbh->simpleQuery($stmt, DB_FETCHMODE_ASSOC);
if ($dbh->numRows($result) > 0) {
$data = (object) $dbh->fetchRow($result, DB_FETCHMODE_ASSOC);
echo “id => $data->id\n”;
echo “name => $data->name\n”;
}
?>

0 komentar:

 
Powered By Blogger

© Black Newspaper Copyright by [ C ] [ H ] [ A ] [ N ] [ D ] [ R ] [ A ] | Template by Blogger Templates | Blog Trick at Blog-HowToTricks