soap dan restj
Post on 02-Jun-2018
224 Views
Preview:
TRANSCRIPT
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 1/16
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 2/16
* Message-based
* Standards-based
* Programming language independent
* Platform-neutral
Kapan Kita Gunakan Web Services
Web Services itu digunakan saat kita akan mentransformasi sebuat
bisnis logik / sebuah class dan object yang terpisah dalam 1 ruang lingkup
yang menjadi satu, sehingga tingkat keamanan dan security dapat di tangani
dengan baik. Selain itu Web Service juga lebih mudah dalam process
deploymentnya, karena tidak memerlukan registrasi khusus ke dalam sistem
operasi. Web Service cukup diupload ke Web Server dan siap diakses oleh
pihak-pihak yang telah diberikan otorisasi. Web Service berjalan di port 80
yang merupakan protokol standar HTTP, dengan demikian mengurangi
resiko terblokir oleh firewall. Kendala arsitektur COM/DCOM adalah
memerlukan konfigurasi khusus di sisi firewall, dan ini tidak perlu dilakukan
untuk mengakses Web Service.
Beberapa vendor luar negeri mulai berkolaborasi satu sama lain
dengan konsep web services , diantaranya : IBM, Microsoft , SUN , ORACLE
Diantaranya contoh web services yang sudah jadi dan dipakai adalah web
services keluaran Microsoft ( Microsoft Passport ) web services untuk user
name dan password yang sudah dipasang di web site Microsoft dan
HOTMAIL.
Tipe Web Service
Saat ini terdapat dua tipe dari web service, yaitu :
·
SOAP Based Service
·
Restful Based Service
Suatu webservice yang diimplementasikan menggunakan prinsip HTTP
dan REST (Representational State Transfer).
1.
SOAP Based Service
Layanan web service berbasis SOAP terdiri dari tiga element, yaitu :
a. SOAP (Simple Object Access Protocol)
SOAP (Simple Object Access Protocol) 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
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 3/16
komunikasi: Message envelope, Encoding, RPC call convention, dan
bagaimana menyatukan sebuah message didalam protokol transport. Soap
mempunyai tiga karakteristik, yaitu :
·
Extensibility
Security dan WS-routing adalah beberapa ekstension yang dapat
digunakan sebagai security web service yang masih dalam tahap
development.
·
Neutrality
SOAP dapat digunakan pada berbagai transport protocol seperti HTTP,
SMTP, TCP atau JMS (Java Messaging Service).
·
Independence
SOAP dapat diprogram pada berbagai bahasa pemograman.
Sebagai Contoh mengenai bagaimana prosedur SOAP dapat digunakan,
suatu pesan SOAP dapat dikirimkan ke suatu website yang mendukung web
service, seperti database harga real-estate, dengan parameter yang
diperlukan untuk pencarian. Site tersebut kemudian akan mengembalikan
dokumen dalam format XML dengan data hasi, contoh : harga, lokasi, fiturs.
Dengan data hasil yang berupa suatu standard yang dapat di parsing, data
tersebut kemudian dapat diintegrasikan secara langsung dengan website
atau aplikasi pihak ketiga.
SOAP Building Blocks
Sebuah pesan SOAP adalah suatu XML document yang terdiri dari beberapa
elemen berikut:
Suatu Envelope (Amplop) yang mengidentifikasi document xml sebagai sebuah pesan
SOAP
Elemen Header yang berisi informasi header.
Elemen Body yang berisi call and response information
Element Fault (Kesalahan) yang mengandung kesalahan dan informasi status
Semua elemen diatas dideklarasikan dalam suatu namespace default untuk SOAP
envelope :
http://www.w3.org/2001/12/soap-envelope
Dan namespace default untuk SOAP encoding dan tipe data adalah :
http://www.w3.org/2001/12/soap-encoding
SOAP Sintaks
Berikut adalah beberapa rules (peraturan) didalam membuat SOAP message
(Pesan) :
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 4/16
Sebuah pesan SOAP harus di encoding menggunakan XML
Sebuah pesan SOAP harus menggunakan SOAP Envelope Namespace
Sebuah pesan SOAP harus menggunakan SOAP encoding namespace
Sebuah pesan SOAP TIDAK harus berisi referensi DTD
Sebuah pesan SOAP TIDAK harus berisi XML Processing Instructions
Kelebihan SOAP
SOAP cukup fleksibel untuk memungkinkan penggunaan protokol transport yang
berbeda. Stack standar menggunakan HTTP sebagai protokol transport, tetapi protokol
lainnya seperti JMS dan SMTP juga bisa digunakan.
Karena terowongan Model SOAP baik di HTTP model get / respon, dapat dengan
mudah melalui firewall dan proxy, tanpa modifikasi protokol SOAP, dan dapat
menggunakan infrastruktur yang ada.
Kekurangan SOAP
Karena format XML yanb verbose, SOAP bisa jauh lebih lambat daripada teknologi
middleware bersaing seperti CORBA atau ICE. Hal Ini mungkin tidak menjadi masalah
ketika hanya pesan kecil dikirim. Untuk meningkatkan kinerja untuk kasus khusus dari
XML dengan objek biner tertanam, Transmisi Pesan Mekanisme Optimization
diperkenalkan.
Ketika mengandalkan HTTP sebagai protokol transport dan tidak menggunakan WS-
Addressing atau ESB, peran pihak yang saling berinteraksi tetap. Hanya satu pihak
(klien) dapat menggunakan layanan dari yang lain. Pengembang harus menggunakan
polling bukan pemberitahuan dalam kasus-kasus yang umum.
2. REST
REST masih cukup baru, sedangkan SOAP telah merevolusi RPC dan
lebih terbuka dibanding batasan-batasan yang ada di versi sebelumnya.
Terminologi
SOAP adalah Simple Object Access Protocol
HTTP berbasis API berarti API yang diekspos sebagai salah satu atau lebih HTTP URI
dan respon berupa XML/JSON. Skema respon dapat dikustomasi untuk setiap objek
REST pada sisi yang lain menambahkan sebuah elemen untuk menggunakan URI
standar, dan juga memberikan kepentingan kepada penggunaan HTTP (seperti
GET/POST/PUT, dsb.)
Meskipun beberapa tahun ini kita melihat perkembangan teknologi web
service, tetapi popularitas SOAP tetap tidak berkurang. Arsitektur
internet datag dengan argumen yang bagus untuk menekan soap di sisi
yang lain: ada metode yang lebih baik untuk membangun web service dalam
bentuk Representational State Transfer (REST).
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 5/16
REST lebih kepada filosofi lama, ketimbang sebuah teknologi yang baru.
Tetapi dalam kenyataannya datang kemudian dalam teknologi. Sedangkan
SOAP nampak seperti lompatan baru ke fase selanjutnya dalam
pengembangan internet dengan sekumpulan spesifikasi baru, filosofi REST
mendukung bahwa prinsip dan protokol yang sudah ada di Web cukup untuk
membuat web servide yang kuat (robust). Hal ini berarti bahwa developer
yang mengerti HTTP dan XML dapat mulai membangun web service tanpa
membutuhkan toolkit di belakang apa yang biasanya digunakan dalam
pengembangan aplikasi internet.
Dalam arsitektur REST, kunci resource diidentifikasi, dapat berupa entitas,
koleksi, atau yang lain dimana nampak lebih bernilai ketika memiliki URI
sendiri. Metode standar _ dalam kasus ini, cara kerja HTP, dipetakanke
semantik-semantik resource-specific. Semua resource
mengimplamentasikan interface yang seragam. Dimensi tipe konten, yang
mengijinkan representasi berbeda dari resource-resource ( dalam XML,
HTML, dan plain text), sebaik kemampuan links ke resource dalam
representasi resource. Pikirkan, misal GET pda /customer/4711 akan
mengembalikan dokumen yang mengandung link secara spesifik /order/xyz.
Saat ini dapat kita lihat sendiri bahwa banyak web service baru yang
dkembangkan menggunakan arsitektur REST dibandingkan dengan SOAP.
Mari kita lihat sekilas dan pahami poin-poin dasar apa itu REST.
Apakah REST web service itu?
REST pada dasarnya setiap URL unik adalah representasi dari beberapa
objek. Kita dapat memperoleh konten-konten objek tersebut menggunakan
HTTP GET, untuk menghapusnya, kita dapat menggunakan POST, PUT, atau
DELETE untuk memodifikasi objek (dalam praktiknya, kebanyakan service
menggunakan POST untuk ini).
Seberapa Populer kah REST itu?
Semua web service utma di internet sekarang menggunakan REST:
Twitter, Yahoo, termasuk Flickr, del.icio.us, pubsub, bloglines, technorati,
dan beberapa yang lain. eBay dan Amazon menggunakan baik REST maupun
SOAP.
Bagaimana dengan SOAP?
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 6/16
SOAP digunakan pada aplikasi-aplikasi Enterprise untuk
mengintegrasikan penggunaan yang lebih luas dan banyak aplikasi dan tren
yang lain adalah mengintegrasikan dengan legacy system (sistem lama yg
sudah ada sebelumnya). Dalam internet, Google konsisten dalam
mengimplementasikan web service mereka menggunakan SOAP, kecuali
Blogger yang menggunakan XML-RPC.
REST vs SOAP
Perusahaan-perusahaan yang menggunakan REST API belum banyak, API
yang mereka gunakan kebanyakan muncul baru-baru ini. Jadi REST
sesungguhnya adalah aturan untuk membuat web service. Tetapi, mari
perhatikan, gunakan konsep SOAP to wash and your REST when you tired .
Keuntungan utama web service REST yaitu:
o
lightweigt, tidak membutuhkan XML markup tambahan
o hasilnya dapat dibaca dengan mudah oleh manusia (human readable
result)
o mudah untuk dikembangkan, tidak membutuhkan toolkit
SOAP juga mempunyai beberapa kelebihan:
o
mudah untuk dikonsumsi (kadang-kadang)
o
rigid (lebih kaku/ketat), dalam type-checking, harus mematuhi aturan
penulisan
o
membutuhkan tools pengembangan
Keuntungan REST
o
bahasa dan platform agnostic
o
lebih sederhana/simpel untuk dikembangkan ketimbang SOAP
o
mudah dipelajari, tidak bergantung pada tools
o
ringkas, tidak membutuhkan layer pertukaran pesan (messaging)
tambahan
o
secara desain dan filosofi lebih dekat dengan web
Kelemahan REST
o
Mengasumsi model point-to-point komunikasi - tidak dapat digunakan
untuk lingkungan komputasi terdistribusi di mana pesan akan melalui satu
atau lebih perantara
o Kurangnya dukungan standar untuk keamanan, kebijakan, keandalan
pesan, dll, sehingga layanan yang mempunyai persyaratan lebih canggih
lebih sulit untuk dikembangkan ( dipecahkan sendiri )
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 7/16
o
Berkaitan dengan model transport HTTP
REST API
A..Pengertian dan Prinsip kerja
REST adalah salah satu jenis web service yang menerapkan konsep perpindahan antar state.
State disini dapat digambarkan seperti jika browser meminta suatu halaman web, maka serverakan
mengirimkan state halaman web yang sekarang ke browser. Bernavigasi melalui link-link yang
disediakan sama halnya dengan mengganti state dari halaman web. Begitu pula REST bekerja,
dengan bernavigasi melalui link-link HTTP untuk melakukan aktivitas tertentu, seakan-akan terjadiperpindahan state satu sama lain. Perintah HTTP yang bisa digunakan adalah fungsi GET, POST,
PUT atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML sederhana tanpa ada
protokol pemaketan data, sehingga informasi yang diterima lebih mudah dibaca dan diparsing disisi
client.
Dalam pengaplikasiannya, REST lebih banyak digunakan untuk web serviceyang berorientasi
pada resource. Maksud orientasi pada resource adalah orientasi yang menyediakan resource-
resource sebagai layanannya dan bukan kumpulan-kumpulan dari aktifitas yang mengolah resource
itu.Alasan mengapa REST tidak digunakan dalam skripsi ini karena orientasi pada resourcenya
itu,sedangkan aplikasi event calendar membutuhkan pemanggilan metode yang bisa dikerjakan
terhadap kumpulan resource event. Selain itu, karena standarnya yang kurang sehingga tidak begitu
cocok diterapkan dalam aplikasi yang membutuhkan kerjasama antar aplikasi lain, dimana standaryang baik akan sangat berguna karena berbicara dalam satu bahasa yang sama. Beberapa contoh
web service yang menggunakan REST adalah: Flickr API(Application ProgramInterface), YouTube
API, Amazon API.
Prinsip Kerja:
1. Download plugin JSON API dari http://wordpress.org/extend/plugins/json-api/ atau dari plugin menu
dashboard anda, setelah itu aktifkan plugin
tersebut.
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 8/16
Masuk ke menu Settings lalu klik JSON API, makan anda akan masuk ke halaman konfigurasinya.
Di sana Anda akan melihat controller dan penjelasannya, intinya adalah:
Posts controller, jika diaktifkan maka anda mengijinkan aplikasi client yang anda buatmelakukan posting content ke blog wordpress Anda.
Core controller, ini adalah metode-metode yang pasti dipakai oleh aplikasi client (sepertimenarik data post, page, dan category).
Respond controller, jika diaktifkan maka anda mengijinkan aplikasi client yang anda buatmelakukan post comment ke blog wordpress Anda
API base, adalah halaman yang diakses ketika requesting data dari controller-controller diatas.
3. Setelah diaktifkan sekarang saatnya kita coba, coba anda akses URL ini di browser
andahttp://dev.magikube.com/experiment/api/get_post/?post_id=6 (ini adalah url experiment server
saya ). Anda akan mendapatkan hasil seperti ini.
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 9/16
Gambar di atas adalah hasil data yang sama jika anda membuat “the loops” pada template, hanya
saja dalam format JSON. Untuk membandingkannya silahkan anda ketik <?php while(have_posts()):
the_posts(); print_r($post); endwhile; ?> pada salah satu file template wordpress anda, maka anda
akan mendapat hasil data yang sama.
B.Perkembangan
Meskipun beberapa tahun ini kita melihat perkembangan teknologi web service, tetapi
popularitas SOAP tetap tidak berkurang. Arsitektur internet datag dengan argumen yang
bagus untuk menekan soap di sisi yang lain: ada metode yang lebih baik untuk
membangun web service dalam bentuk Representational State Transfer (REST).
REST lebih kepada filosofi lama, ketimbang sebuah teknologi yang baru. Tetapi dalam
kenyataannya datang kemudian dalam teknologi. Sedangkan SOAP nampak seperti
lompatan baru ke fase selanjutnya dalam pengembangan internet dengan sekumpulan
spesifikasi baru, filosofi REST mendukung bahwa prinsip dan protokol yang sudah ada di
Web cukup untuk membuat web servide yang kuat (robust). Hal ini berarti bahwa developer
yang mengerti HTTP dan XML dapat mulai membangun web service tanpa membutuhkan
toolkit di belakang apa yang biasanya digunakan dalam pengembangan aplikasi
internet..Contoh
Dalam REST API terdapat 4 method, yaitu POST, GET, PUT, DELETE. Ini tentu sudah
merupakan pencerahan bagi para pembaca sekalian, karena REST menggunakan kata
kerja. Pendekatan yang lebih mudah untuk dimengeri adalah dengan melihat contoh
berikut :
URL : http://contoh.com/api/user/17
Anggaplah itu adalah URL untuk penggunakan REST API. Pada contoh diatas kita sudah
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 10/16
bisa melihat ada user dan id-nya. Mari kita lihat perbedaan untuk 4 method yang sudah
dijelaskan sebelumnya, POST, GET, PUT, DELETE.
POST : Untuk Menaruh User baru dengan ID 17
GET : Untuk mengambil data/informasi User dengan ID 17
PUT : Digunakan untuk melakukan update/merubah data User dengan ID 17
DELETE : Untuk menghapus User dengan ID 17
PENGERTIAN DAN PENERAPAN SOAP (SIMPLE OBJECT ACCESS
PROTOCOL) DALAM APLIKASI MULTITIER
Definisi :
Simple Object Access Protocol (SOAP) adalah sebuah standarisasi dasar dari protokol
komunikasi untuk saling bertukar informasi terstruktur di antara aplikasi-aplikasi yang
berjalan. SOAP adalah sebuah aplikasi pesan XML yang sangat bergantung pada skema
XML dan XML namespacesuntuk mendifinisikannya. SOAP juga sangat bergantung dengan
beberapa protokol layer lainnya seperti HTTP, JMS, RPC untuk transmisi pesan.
SOAP sangat efektif untuk berbabagai macam aplikasi multi tier untuk berkomunikasi lintas
sistem operasi/platfrom yang berbeda dengan teknologi dan bahasa pemrograman yang
berbeda-beda pula.
SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai vendor TI – 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.
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 11/16
Peran SOAP di dalam teknologi web service adalah sebagai protokol pemaketan untukpesan-pesan (messages) yang digunakan secara bersama oleh aplikasi-aplikasipenggunanya. Spesifikasi yang digunakan tidak lebih seperti sebuah amplop biasa berbasisXML untuk informasi yang ditransfer, serta sekumpulan aturan bagi translasi aplikasi dantipe-tipe data platform yang spesifik menjadi bentuk XML. Desain bentuk dari SOAPmembuatnya cocok untuk berbagai pertukaran pesan pada aplikasi.
Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut:
1. Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
2. Elemen header yang berisi informasi header . Elemen ini bersifat opsional.
3. Elemen body yang berisi panggilan dan merespon informasi.
4. Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses. Elemen ini opsional.
Dengan demikian, tidaklah terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi
penyelamat untuk mengatasi berbagai masalah yang dihadapi oleh teknologi – teknologi
pendahulunya.
Contoh Struktur utama dari SOAP
<xml version ="1.0">
<soap:Envelope xmlns: soap ="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3org/2001/12/soap-encoding">
<soap:Header>
....
</soap:Header>
<soap:body>
.......
<soap:vault>
...........
</soap:vault>
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 12/16
</soap:body>
</soap:envelope>
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 . Sebagai contoh sederhana dalam
pengimplementasian sistem pembayaran mahasiswa yang akan di kembangkan dalam
project ini kita buat satu data base pada computer server misal dalam data base kita buat
sebagai berikut :
create table 'mhs'(
'nim' int (20),
'nama' varchar (50),
'alamat' varchar (100),
primary key ('nim')
)
Lalu masukan beberapa sample data sebagai isi dari data base seprti pada gambar berikut :
Selanjutnya, script NuSOAP diletakkan di server A. Script ini nanti diperlukan untuk melayanirequest yang dilakukan oleh server B.
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 13/16
Script pada server nya seperti berikut :
<?php
require_once('nusoap.php');
$server = new soap_server;
// registrasi method 'search'
$server->register('search');
// detail method 'search' dengan parameter $key
function search($key)
{
// koneksi ke database
mysql_connect('localhost', 'root', '');
mysql_select_db('data_siswa');
// query pencarian data mahasiswa
$query = "SELECT * FROM mhs WHERE nim = '$key' OR nama LIKE '%$key%' OR alamat
LIKE '%$key%'";
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
// menyimpan data hasil pencarian dalam array
$result[] = array('nim' => $data['nim'], 'nama' => $data['nama'], 'alamat' => $data['alamat']);
}
// mereturn array hasil pencarian
return $result;
}
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 14/16
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ?
$HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
Lalu kita buat script interface nya pada aplikasi web nya seperti berikut
<html>
<head>
<title>Contoh NuSOAP Web Service </title>
</head>
<body>
<!-- form pencarian data -->
<form method="post" action="test.php?op=search">
Keyword Pencarian <input type="text" name="key"><input type="submit" name="submit"
value="Search">
</form>
<?php
// proses pencarian data
if (isset($_GET['op']))
{
if ($_GET['op'] == 'search')
{
require_once('lib/nusoap.php');
// baca keyword pencarian dari form
$key = $_POST['key'];
// instansiasi obyek untuk class nusoap client, arahkan URL ke script server.php di server A
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 15/16
$client = new nusoap_client('http://localhost/nusoap/lib/server.php');
// proses call method 'search' dengan parameter key di script server.php yang ada di server
A
$result = $client->call('search', array('key' => $key));
// jika data hasil pencarian ($result) ada, maka tampilkan
if (is_array($result))
{
echo "<table border='1'>";
echo "<tr><th>NIM</th><th>NAMA</th><th>ALAMAT</th></tr>";
foreach($result as $data)
{
echo
"<tr><td>".$data['nim']."</td><td>".$data['nama']."</td><td>".$data['alamat']."</td></tr>";
}
echo "</table>";
// menampilkan jumlah data hasil pencarian
echo "<p>Ditemukan ".count($result)." data terkait kata kunci '".$key."'</p>";
}
else echo "<p>Data tidak ditemukan</p>";
}
}
?>
</body>
</html>
8/10/2019 Soap Dan Restj
http://slidepdf.com/reader/full/soap-dan-restj 16/16
Maka proses yang akan terjadi ialah :
top related