Selasa, 19 November 2013

RPC (Remote Procedur Call), SOAP (Simple Object Access Protocol), dan REST (REpresentational State Transfer)


Web Services adalah software sistem design yang memungkinkan untuk INTEROPERABILITY  aplikasi antara komputer satu dengan lainnya melalui jaringan via HTTP. Dengan web services, aplikasi di satu komputer memanggil method ( method-method ) di aplikasi lain, di komputer yang berbeda, dengan bahasa Pemrograman yang bisa berbeda. Misalkan kita di sisi server membuat web services menggunakan .NET, di sisi client kita tidak perlu mempunyai .NET. Nah, bagaimana komunikasinya ? Web Service mengeluarkan output berformat XML yang disebuat WSDL ( Web Service Description Language).  Nah, file XML ini yang dikonsumsi oleh client dan didapatlah output.

Remote Procedure Call (RPC)
Sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat melakukan ini sebuah  server harus menyediakan layanan  remote procedure.Pendekatan yang dilakuan adalah sebuah  server membuka  socket, lalu menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu haruS menghubungi  port yang mana,  client bisa me-request kepada sebuah  matchmaker pada sebuah RPC  port yang tetap.  Matchmaker akan memberikan  port apa yang digunakan oleh prosedur yang diminta client.
RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak  remote procedure. RPC menggunakan  socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam sistemnya, biasanya RPC  ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

Kelebihan RPC
-           Relatif mudah digunakan :
Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan procedure.  Sehingga pemrogram  dapat berkonsentrasi pada software logic, tidak perlu memikirkan low  level details seperti  socket, marshalling &  unmarshalling.
-          Robust (Sempurna):
Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission- critical application yg memerlukan  scalability, fault tolerance, & reliability.


Kekurangan RPC
-          Tidak fleksibel terhadap perubahan:
-          Static relationship between client & server at run-time.
-          Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.

Simple Object Access Protocol (SOAP)
Singkatan dari Simple Object Access Protocol, merupakan sebuah protokol komunikasi client server yang mengirim dan menerima informasi "di atas HTTP". Data yang dikirim dan diterima dalam format XML. SOAP hampir sama dengan protokol XMLRP, hanya saja SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client-server.
SOAP bisa dikatakan sebagai implementasi web service yang lebih mapan, dengan memakai beberapa standarisasi dari W3C, sehingga mempunyai interopability yang lebih tinggi. Permasalahan awal dari perkembangan SOAP web service adalah pembuatan program di bagian client dan server yang bisa dikatakan cukup sulit. Tapi dengan bantuan tools dari beberapa developer, seperti Visual Studio, membuat sebuah SOAP web service menjadi lebih gampang, sehingga sangat membatu dalam pembuatan dan pengembangan.
Beda halnya dengan REST, SOAP web service lebih menekankan pada akses objek secara sederhana dibandingkan dengan transfer objek yang diwakili oleh sebuah URL. Sehingga bahasa pemrograman terlihat lebih nyata dengan SOAP web service. Yang mana sekema ataupun kontrak dari objek digambarkan secara jelas oleh WSDL dalam format XML schema.
 Adapun spesifikasi kelebihan dan kekurangan dari SOAP web service adalah sebagai berikut :
-          Pesan (message) dipaket dalam standarisasi SOAP envelope. Yang mana pada header paket bisa disisipi dengan otentikasi dan pengamanan yang dibuat sendiri.
-          Tidak hanya bisa memakai protokol HTTP tapi juga bisa juga berjalan di SMPT atau MIME.
-          Cara akses dan manipulasi data tergantung web service.
-          Pengamanan dan Autentikasi data dilakukan sepenuhnya oleh aplikasi di server.
-          Metode dan struktur kelas, secara formal digambarkan oleh WSDL dalam sekema XML.
-          Karena pembuatan dan pengembangan SOAP web service cukup memakan biaya maka hingga saat ini masih sedikit perusahan-perusahaan yang memakai SOAP web service.

 Beberapa contoh SOAP web service adalah Google API, Yahoo! API, del.icio.us


REpresentational State Transfer (REST )
Salah satu jenis web service sederhana. Sesuai dengan namanya, dalam REST setiap URL yang tersedia mewakili sebuah atau beberapa objek. Karena REST adalah tipe web service yang paling sederhana maka hanya bisa diakses dengan protokol HTTP, dengan fungsi GET, POST, PUT atau DELETE.
Adapun spesifikasi kelebihan dan kekurang REST adalah sebagai berikut :
-          Pesan (message) diwakili oleh xml sederhana tanpa ada protokol pemaketan data seperti halnya SOAP. Sehingga informasi yang diterima lebih mudah dibaca dan diparsing di sisi client.
-          Pada sisi server tidak diperlukan program untuk melayani setiap permintaan atau manipulasi data dari client.
-          Pengamanan data sepenuhnya diserahkan pada protokol HTTP.
-          Untuk proses akses data dilakukan dengan memakai verb HTTP seperti GET, POST, PUT dan DELETE.
-          Tidak ada fungsi atau metode formal yang bisa diwakili oleh kontrak sebuah interface. Sehingga
-          Dalam pengaplikasiannya REST lebih banyak digunakan karena sifatnya yang sederhana dan lebih mudah dalam pembuatan maupun pengembangannya.
RESTful web service atau juga dikenal dengan nama RESTful Web API merupakan sebuah web service yang di implemantasikan dengan menggunakan http dengan menggunakan prinsip-prinsip REST. Service yang digunakan menggunakan method milik http antara lain GET, PUT, POST or DELETE.

<?php
  print_r($_SERVER);
?>

[REQUEST_METHOD] => GET

Untuk penggunaan method GET, POST, PUT, atau DELETE bisa sesuai kebutuhan.
GET: bisa digunakan apabila request ke server merupakan data yang sedikit. Karena GET ada keterbatasan data. Contoh pengguanan URL di browser
POST: bisa di gunakan apabila pengiriman data dengan data yang banyak. Contoh: data yang ada di form dengan method post.
PUT: bisa di gunakan untuk pengiriman file melalui service. Contoh: upload file
DELETE: Untuk yang satu ini sangat jarang digunakan. Karena terkadang bisa di wakili oleh GET. Tapi, ada baiknya digunakan untuk proses penghapusan di data diserver.
Untuk hasil response dari server, RESTful dapat mengeluarkan data berupa json, xml dan text format. Sehingga penggunaannya sesuai kesepakatan. Apakah akan menggunakan xml, json atau text sebagai pesan yang di kirim kan.

Beberapa contoh web service REST yang dipakai oleh website-website terkenal adalah: Flickr API, YouTube API, Amazon API, Webjay API.

Contoh program sederhana mengenai penggunaan RPC, SOAP dan REST
RPC
SOAP
Controller.PHP
Buat SOAP.PHP

Hasil :
Kalau berhasil, maka akan menampilkan angka 52 , karena kita memanggil function penambahan_data dengan input parameter 45 dan 7.

Selasa, 22 Oktober 2013

Encode & Decode PHP Facebook

Apa itu JSON?




JSON (JavaScript Object Notation) adalah Standar terbuka berbasis text yang ringan dan dirancang untuk pertukaran data yang bersifat human-readable. JSON berasal dari bahasa pemrograman javascript untuk mempresentasikan struktur data sederhana dan array asosiatif yang disebut dengan object. Walaupun hubungannya dengan javascript nyatanya JSON adalah independen dengan parser yang tersedia untuk hampir semua bahasa pemrograman. Pada Pembahasan akan dibahas JSON dengan bahasa pemrograman PHP.


JSON merupakan bagian dari bahasa pemrograman JavaScript (Standard ECMA-262 3rd Edition – December 1999). JSON merupakan format teks yang sepenuhnya independen tetapi menggunakan konvensi yang familiar dengan bahasa pemrograman dari keluarga-C, termasuk C, C++, C#, Java, JavaScript, Perl, Python, dan sebagainya. Kelebihan inilah yang membuat JSON menjadi sebuah bahasa data-interchange yang ideal.


JSON dibangun dalam dua struktur:
1. Beberapa pasangan dari nama/nilai. Dalam beberapa bahasa perograman biasa disebut dengan istilah object, record, struct, tabel hash, key list atau associative array.
2. Nilai-nilai yang terusun secara ordered list. Biasa disebut dengan array, vector, list atau daftar dalam bahasa pemrograman.


Format data JSON mempunyai aturan sebagai berikut:

Object adalah satu set nama/nilai yang tidak terurut (An object is an unordered set of name/value pairs). Penulisan object dimulai dengan tanda { (left brace) dan diakhiri dengan tanda } (right brace). Setiap nama diikuti oleh tanda : (colon) dan pasangan nama/nilai dipisahkan dengan tanda , (comma).




Array adalah sekumpulan nilai yang teratur (An array is an ordered collection of values). Penulisan sebuah array dimulai dengan tanda [ (left bracket) dan diakhiri dengan tanda ] (right bracket). Nilai dipisahkan menggunakan tanda , (comma).




Nilai bisa berupa string dalam tanda kutip, atau number (angka), TRUE atau FALSE atau NULL, sebuah object atau sebuah array. Struktur ini dapat ditulis menggunakan metode bersarang.

String adalah rangkaian atau urutan karakter unicode yang berada dalam tanda kutip, bisa juga hanya berisi karakter kosong, menggunakan tanda \ (backslash) untuk escape. Karakter di representasikan sebagai string tunggal. Tipe data string pada JSON sangat mirip dengan definisi pada bahasa C atau Java.


Number sangat mirip dengan definisi pada bahasa C atau Java, hanya saja tipe bilangan oktal dan heksa desimal tidak digunakan.


Ruang kosong (Whitespace) dapat diselipkan diantara pasangan atau token apa saja. Kecuali detail encoding, yang secara jelas akan berfungsi untuk menjelaskan bahasa yang digunakan. JSON sangat berguna saat kita sering melakukan pertukaran data pada sebuah aplikasi.



Contoh nyata adalah penggunaan tabulasi menggunakan JqGrid, yang merupakan salah satu plugin jQuery untuk menampilkan data dalam bentuk spreadsheet. Plugin ini juga mendukung format JSON, selain format XML.


Json Pada PHP?



Funsi json pada php ada 2 yaitu
1. json_encode : untuk merubah array ke bentuk json.
2. json_decode : sebaliknya dari bentuk json ke array

Contoh untuk dapat mengethaui detail akun Facebook.

Langkah awal, kita Login terlebih dahulu pada akun Facebook kita masing – masing. Selanjutnya buka Tab / Tautan baru.
Kemudian ketik URL berikut : https://graph.facebook.com/luckyz.pratamaz (sesuai dengan Username akun Facebook kita masing – masing). Maka secara otomatis akan muncul secara detail akun Facebook kita.
Contoh penerapan fungsi Json_decode pada data array yang terdapat pada Id akun Facebook.




Selanjutnya membuat DecodeFacebook3.PHP dengan mengunakan applikasi Java source code berikut.




 Kemudian setelah dijalankan pada localhost, maka hasil akan seperti pada gambar berikut.