Proses pembuatan webservis

Pertama kita buat script untuk web service yang nantinya diletakkan di sistem A. Script ini nanti berfungsi untuk menangkap atau membaca GET request berupa data username dan password dari sistem lain, memproses validitasnya dan akhirnya mengenerate response dalam bentuk XML.

Sebelum kita buat scriptnya, kita ambil contoh struktur tabel username yang ada di sistem A adalah sbb:

CREATE TABLE `user` (

  `username` varchar(20),

  `password` varchar(20),

  PRIMARY KEY  (`username`)

)

 

dan berikut ini beberapa sampel datanya

INSERT INTO `user` VALUES ('user1', 'password1');
INSERT INTO `user` VALUES ('user2', 'password2');

 

Dalam sampel data username di atas, sengaja saya tidak enkrip passwordnya supaya terlihat oleh Anda ketika uji coba proses loginnya. Namun dalam implementasi yang sesungguhnya, sebaiknya dienkripsi ya…

Nah, kita bisa mulai membuat scriptnya sekarang.

service.php

<?php
 
// koneksi ke database di sistem A
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
 
// membaca username dari GET request
$user = $_GET['username'];
// membaca password dari GET request
$pass = $_GET['password'];
 
// membaca data password user berdasar usernamenya
$query = "SELECT * FROM user WHERE username = '$user'";
$hasil = mysql_query($query);
$data  = mysql_fetch_array($hasil);
$password = $data['password'];
 
// mencocokkan password user dari db dan dari GET request
// jika cocok, maka responnya TRUE, jika tidak cocok responnya FALSE
if ($pass == $password) $response = "TRUE";
else $response = "FALSE";
 
// membuat header dokumen XML
header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";
 
// membuat tag data respon pada dokumen XML
echo "<data>";
echo "<response>".$response."</response>";
echo "</data>";
?>

 

 

Berikut ini adalah tampilan dokumen XML sebagai respon dari sistem A jika kita berikan GET request melalui URL

http://sistem-a/service.php?username=user1&password=xxxxx

Sedangkan berikut ini tampilan jika diberikan GET request melalui URL

http://sistem-a/service.php?username=user1&password=password1

 

Nah… selanjutnya, kita buat script di sistem B untuk proses login termasuk form loginnya.

index.html

<h1>Form Login</h1>
 
<form method="post" action="login.php">
<table>
  <tr><td>Username</td><td><input type="text" name="username"></td></tr>
  <tr><td>Password</td><td><input type="password" name="password"></td></tr>
  <tr><td></td><td><input type="submit" name="submit" value="Submit"></td></tr>
</form>

 

login.php

<?php
 
// membaca username dari form login
$username = $_POST['username'];
// membaca password dari form login
$password = $_POST['password'];
 
// membuat URL GET request ke sistem A
$url = "http://sistem-a/service.php?username=".$username."&password=".$password; 
 
// mengirim GET request ke sistem A dan membaca respon XML dari sistem A
$bacaxml = simplexml_load_file($url);
 
// membaca data XML hasil dari respon sistem A
foreach($bacaxml->response as $respon)
{
  // jika responnya TRUE maka login sukses
  // jika FALSE maka login gagal
  if ($respon == "TRUE") echo "Login Sukses";
  else if ($respon == "FALSE") echo "Login Gagal";
 
?>

Keterangan:
Untuk membaca dan memparsing data XML yang diterima dari sistem A kita bisa menggunakan function 
simplexml_load_file().

Wah.. lantas cara mencoba script di atas bagaimana ya? kan ada dua 2 sistem yang berbeda tuh? jangan khawatir, Anda dapat mencoba script di atas melalui localhost (PC lokal) dan hosting. Kita misalkan localhost adalah sistem B nya dan hostingnya adalah sistem A nya. Jadi, Anda buat database user dan script service.php nya di hosting, dan script form loginnya di localhost. Selanjutnya Anda tinggal mengubah URL web servicenya saja ke URL hosting Anda.

Nah… mudah bukan membuatnya??

Ups… tunggu dulu, sistem di atas sebenarnya sudah berjalan, namun.. apakah tidak rawan bila menggunakan GET request seperti di atas. Artinya bisa saja ada sistem lain katakanlah C yang sebenarnya tidak berhak mengakses web service ke sistem A yang menggunakan service tersebut untuk sistem loginnya. Nah.. dengan demikian kita perlu memproteksi GET request tersebut. Caranya bagaimana? ya… kita bisa gunakan kode API. Kode API ini diberikan oleh sistem A kepada sistem B atau sistem yang berhak mengakses web servicenya. Kode API berfungsi sebagai password dalam melakukan GET request. Jika kode API yang dikirim melalui GET request oleh suatu sistem tidak dikenal oleh sistem A berarti sistem tersebut tidak berhak mengakses web servicenya.

OK… untuk mengimplementasikan kode API sebagai pengaman GET request dalam web service, kita sedikit modifikasi script di atas, baik di script service.php (di sistem A) maupun di login.php nya (di sistem B). Dalam contoh ini, misalkan kode API yang diberikan kepada sistem B oleh sistem A ini berbentuk string '1234′. Maka script service.php nya adalah

 

service.php

<?php
 
// koneksi ke database di sistem A
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
 
// membaca username dari GET request
$user = $_GET['username'];
// membaca password dari GET request
$pass = $_GET['password'];
// membaca kode API dari GET request
$api = $_GET['api'];
 
// jika kode API nya '1234' maka lakukan proses validasi username dan password
// jika kode API nya salah, maka proses validasi tidak dilakukan (diberikan respon "FALSE")
if ($api == "1234")
{
   // membaca data password user berdasar usernamenya
   $query = "SELECT * FROM user WHERE username = '$user'";
   $hasil = mysql_query($query);
   $data  = mysql_fetch_array($hasil);
   $password = $data['password'];
 
   // mencocokkan password user dari db dan dari GET request
   // jika cocok, maka responnya TRUE, jika tidak cocok responnya FALSE
   if ($pass == $password) $response = "TRUE";
   else $response = "FALSE";
}
else $response = "FALSE";
 
// membuat header dokumen XML
header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";
 
// membuat tag data respon pada dokumen XML
echo "<data>";
echo "<response>".$response."</response>";
echo "</data>";
?>

 

 

Selanjutnya di sistem B, script login.php nya perlu kita ubah parameter GET requestnya

login.php

<?php
 
// membaca username dari form login
$username = $_POST['username'];
// membaca password dari form login
$password = $_POST['password'];
 
// membuat URL GET request ke sistem A
$url = "http://sistem-a/service.php?username=".$username."&password=".$password."&api=1234"; 
 
// mengirim GET request ke sistem A dan membaca respon XML dari sistem A
$bacaxml = simplexml_load_file($url);
 
// membaca data XML hasil dari respon sistem A
foreach($bacaxml->response as $respon)
{
  // jika responnya TRUE maka login sukses
  // jika FALSE maka login gagal
  if ($respon == "TRUE") echo "Login Sukses";
  else if ($respon == "FALSE") echo "Login Gagal";
 
?>

OK, that's it.. cara pengaplikasian kode API dalam web service.

Semua tulisan dan scrip ini bukan saya yang membuat saya hanya mengambil dari

http://blog.rosihanari.net/membuat-web-service-sederhana-studi-kasus-proses-login/

silahkan kunjungi halaman diatas untuk lebih jelasnya dan berkonsultasilah pada beliau pemilik script ini.


Pengertian tentang web service dan web server

Web Service

 

Web service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu. Secara umum, web service dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada umumnya. Namun yang membedakan web service dengan web pada umumnya adalah interaksi yang diberikan oleh web service. Berbeda dengan URL web pada umumnya, URL web service hanya menggandung kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna membangun sebuah fungsi-fungsi tertentu dari aplikasi.

Web service dapat diartikan juga sebuah metode pertukaran data, tanpa memperhatikan dimana sebuah database ditanamkan, dibuat dalam bahasa apa, sebuah aplikasi yang mengkonsumsi data, dan di platform apa sebuah data itu dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web service mampu menjadi sebuah jembatan penghubung antara berbagai sistem yang ada.

Menurut W3C Web services Architecture Working Group pengertian Web service adalah sebuah sistem software yang di desain untuk mendukung interoperabilitas interaksi mesin ke mesin melalui sebuah jaringan. Interfaceweb service dideskripsikan dengan menggunakan format yang mampu diproses oleh mesin (khususnya WSDL). Sistem lain yang akan berinteraksi dengan web service hanya memerlukan SOAP, yang biasanya disampaikan dengan HTTP dan XML sehingga mempunyai korelasi dengan standar Web (Web Services Architecture Working Group, 2004).

Web pada umumnya digunakan untuk melakukan respon dan request yang dilakukan antara client dan server. Sebagai contoh, seorang pengguna layanan web tertentu mengetikan alamat url web untuk membentuk sebuah request. Request akan sampai pada server, diolah dan kemudian disajikan dalam bentuk sebuah respon. Dengan singkat kata terjadilah hubungan client-server secara sederhana.
Sedangkan pada web service hubungan antara client dan server tidak terjadi secara langsung. Hubungan antara client dan server dijembatani oleh file web service dalam format tertentu. Sehingga akses terhadap database akan ditanggani tidak secara langsung oleh server, melainkan melalui perantara yang disebut sebagai web service. Peran dari web service ini akan mempermudah distribusi sekaligus integrasi database yang tersebar di beberapa server sekaligus.

 

Web Server

 

Dalam kemajuan teknologi zaman sekarang, jaringan internet sangat dibutuhkan oleh masyarakat pada umumnya. Jika bicara tentang internet, tentu tidak akan bisa lepas yang namanya web server. Sebagian orang mungkin mengetahui istilah web server, akan tetapi tidak sedikit juga orang yang belum tahu mengenai Pengertian Web Server ini. Secara umum dapat disimpulkan bahwa Pengertian Web Server adalah sebuah layanan internet yang telah disediakan oleh komputer.

Dalam memasukkan web yang telah dirancang dalam internet, maka terlebih dahulu memiliki ruangan dalam internet dan ruangan inilah disediakan oleh server. Selain itu juga, Pengertian Web server merupakan sebuah perangkat komputer yang digunakan untuk mengakses segala jenis file yang terdapat pada halaman web melalui HTTP/HTTPS dengan menggunakan aplikasi atau program tertentu (dikenal dengan nama web browser) dan mengirimkan kembali hasil permintaannya dalam bentuk halaman – halaman web yang berbentuk dokumen HTML.

Dalam Pengertian Web server, terdapat jenis-jenis paket software yang digunakan di internet yaitu :

   - Microsoft Windows Server 2003 Internet Information Services
   - Apache Tomcat
   - Xitami Web Server
   - Zeus Web Server
   - Lighttpd
   - Sun Java System Web Server
   - Apache Web Server

Dalam Pengertian Web Server, terdapat beberapa syarat yang perlu diperhatikan agar sebuah web server ini bisa berfungsi dengan baik dan berjalan sempurna yaitu :

   - Mempunyai RAM yang kapasitas sangat besar
   - Memiliki kecepatan akses yang sangat tinggi
   - Mempunyai alamat internal yang tidak berubah (bersifat permanen)
   - Memiliki hardisk yang berkapasitas cukup besar

Ada tiga macam log yang harus diperhatikan dalam memonitor kegiatan web server yaitu sebagai berikut :

   1. Access log adalah file yang berfungsi untuk mencatat semua akses yang dilakukan terhadap web server. Selain itu, data yang diambil dari file ini kemudian diproses menjadi data statistik yang mudah dibaca dan dimengerti orang.

   2. Server log adalah file yang berfungsi untuk mencatat kejadian-kejadian tertentu pada web server. Tetapi, file ini hanya diperiksa jika ternyata webserver ini terjadi kesalahan. Selain itu, server log merupakan logging yang dilakukan oleh server dalam pencatatan file/messages/log.

   3. Error log adalah file yang berfungsi untuk mencatat setiap kesalahan yang terjadi pada web server, apakah kesalahan terjadi pada file konfigurasi yang berupa kesalahan pada pembuatan webnya. File ini merupakan pesan-pesan kesalahan dan pemberitahuan pengoperasian httpdnya. Dengan melihat error.log, maka akan diketahui bahwa web mengalami kesalahan pada waktu pembuatan.

Kegunaan yang utama pada Pengertian Web server ini adalah mentransfer berkas atas permintaan pengguna melalui protokol komunikasi (HTTP) yang telah ditentukan. Selain itu, web server berfungsi untuk mentransfer seluruh berkas/file dalam sebuah halaman web yang saling terkait misalnya di dalamnya terdapat teks, video, gambar dan lainnya. Pengguna pada web browser, biasanya meminta layanan atas halaman web atau berkas yang terdapat pada sebuah server web, kemudian server sebagai manajer layanan tersebut akan mengirimkan kembali halaman dan berkas-berkas pendukung yang dibutuhkan. Apabila halaman/berkas yang diminta tidak tersedia, maka permintaan tersebut akan ditolak.

Fitur-fitur yang ditawarkan dalam Pengertian Web server, yaitu :

   1. HTTP
   2. Logging
   3. Virtual Hosting
   4. Pengatur Bandwith
   5. Otentifikasi
   6. Kompresi Konten
   7. Dukungan HTTPS

Salah satu software web server gratisan (freeware) yang mempunyai dukungan teknis dari pembuatnya dan dilengkapi dengan dokumentasi dinamakan Web server Apache. Pengertian Web server ini mempunyai kelebihan yaitu antara lain :

   - Mampu beroperasi pada berbagai platform sistem operasi.
   - Mempunyai satu file konfigurasi sehingga mudah mengkonfigurasi.
   - Mudah dalam proses instalasi apabila dibandingkan dengan web server lainnya.
   -Mudah dalam menambahkan periferal lainnya ke dalam platform web server.

Ciri khas dari web server Apache ini adalah sebagai berikut :

   - Server Apache dapat berkomunikasi otomatis dengan client browsernya untuk menunjukkan yang tampilan terbaik.
   - Apache menyediakan feature untuk multihomed dan virtual server.
   - Apache mampu dikompilasi sesuai dengan spesifikasi HTTP yang sekarang.
   - Dapat dijadikan sebagai pengganti bagi NCSA web server.
   - Apache mempunyai level-level pengamanan.
   - Memiliki dukungan teknis melalui web.
   - Memiliki kompatibilitas platform yang tinggi.
   - Mendukung adanya third party berupa modul-modul tambahan.



 

 

 


Sumber :
http://isma-ismi.com/pengertian-web-server.html
https://draft.blogger.com/saptafina13.blogspot.com/2013/04/pengertian-web-service.html