SOAP stands for Simple Object Access Protocol and is, as its name implies, a protocol for accessing objects or in other words, a standard that defines how a possibly remote object can be communicated with. XML-RPC, with RPC standing for Remote Procedure Call, is a protocol to call remote procedures using XML. REST stands for REpresentational State Transfer and is an HTTP alternative to Web Service standards, based on the idea that the extra layer of these standards is obsolete because the HTTP protocol is able to handle similar purposes. Wikipedia.org has loads of info.

You say you want to implement a Service Oriented Architecture. The reasons you have to do this define what type of standard(s) you should use, if any at all. Remember that if you only need to access your services through browser based clients (e.g. a website) that there is very little use in implementing any of the above mentioned standards and protocols. If you need your services to be accessible by a variety of clients you do need to explore web service standards (and stop reading on).

A little more specific in the direction of services in PHP accessed by browser based clients (assuming you need that), without using web service standards. In general most web developers need a lightweight protocol to access services, methods and functions through JavaScript. For this I use the JavaScript Object Notation (JSON, check json.org).

As a very simple example a service that appends an exclamation mark to all parameters you send and alerts them on success. I assume you use JavaScript, the json.org JavaScript library and created an XmlHttpRequest instance by the name of xhr (check w3schools.com if you need help initializing one or use a third party library such as Prototype):

CLIENT SIDE:

//index.html
<script>
function callBack() {
   var response = JSON.parse(xhr.responseText);
   for (x in response)
      alert(x + ' = ' + response[x]);
}

var params = {i: 'need', to: 'use', services:'now'};
var parsed = JSON.stringify(params);
xhr.onreadystatechange = function() {
   if (xhr.readyState == 4)
       callBack();
};
xhr.open ("GET", "service.php?params=" + params, true);
xhr.send (null);
</script>

SERVER SIDE:

//service.php
<?php
   require_once(myservice.php);
   if (!empty($_REQUEST['params']))
echo json_encode(MyService::do_call(json_decode($_REQUEST['params'])));
?>

//myservice.php
<?php
class MyService {
   function doCall($params) {
      foreach ($params as $key => $value)
         $params [$key] .= '!';
      return $params;
   }
}
?>



$P$ $T$ wrote:
Hi,
Sorry this may not be related to php-db list. I do not have much
knowledge about webservices but would like to know, which is better
way of implementing webservices with PHP-MySQL

XML-RPC, SOAP, or REST

And why? What are the parameters that we should be looking for before
deciding on mechanism?

Thanks,
Pravin


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to