Una de las ideas más importantes en la creación de sitios Web escalables es descomponer nuestros programas en servicios Web modulares. Nuestras páginas web no leerán más una base de datos directamente, procesarán la lógica del negocio y desplegarán HTML. En su lugar subdividiremos nuestras páginas en secciones múltiples, y desplegaremos cada sección llamando diferentes servicios Web. De esta manera podremos distribuir la carga de CPU en varios servidores.
XML-RPC es una especificación y un conjunto de implementaciones que permiten que el software corra en diferentes sistemas operativos, corriendo en ambientes diferentes para hacer llamadas a procedimientos sobre Internet. Son llamadas a procedimientos remotos utilizando HTTP como el transporte y XML como la codificación. Está diseñado para ser tan simple como sea posible, mientras permite complejas estructuras de datos ser transmitidas, procesadas y regresadas.
Cree en su public_html una página llamada matematica.php que tendrá un servidor XML-RPC. En ese servidor XML-RPC implemente la función matematica.factorial (no hace falta que la haga recursiva). Luego cree una(s) página(s) que despliega(n) un diálogo que pide un número para calcular el factorial. Por último, se crea un cliente XML-RPC que llama a matematica.factorial en el servidor XML-RPC desde la página.
Actualmente en Titanic se encuentran disponibles dos implementaciones de XML-RPC. Una está disponible como biblioteca PHP (include) y la otra es la extensión experimental que viene incluida en PHP.
Si utiliza la biblioteca (como en los ejemplos de las filminas), puede ayudarse con las siguientes referencias:
XML - RPC Client
XML-RPC for PHP
Si utiliza la extensión experimental, puede ayudarse con las siguientes referencias:
xmlrpc-epi-php
Using XML-RPC with PHP
PHP: XML-RPC
También puede utilizar las siguientes referencias de cultura general:
Web Services: XML-RPC, SOAP, sobre PHP, Perl, y otros conceptos
Build your own Web Service with PHP and XML-RPC