jueves, 14 de junio de 2012

Construya un WebService Con PHP. 2a Parte - SERVIDOR SOAP SENCILLO

Servidor SOAP en PHP 

Vamos a crear un servidor SOAP sencillo de aprender a utilizar las capacidades del servidor de base de PHP SOAP. En esta sección se le dará una idea de y te preparará para el resto del tutorial.

Creando un servidor 

Un servidor simple toma una solicitud SOAP y devuelve una respuesta. Crear una aplicación simple eco que tiene en una cadena y lo devuelve con la palabra ECHO clavada en el frente. Cree un archivo denominado simple_server.php, y definirlo como se muestra a continuación.

Listado 2. Un servidor SOAP sencillo
                    
<?php

function echoo($echo){
    return "ECHO: ".$echo;
}

$server = new SoapServer(null,
                         array('uri' => "urn://tyler/res"));
$server->addFunction('echoo');
$server->handle();

?>


El primer punto es la función echoo. Devuelve la cadena que se le pasa y ECHO agrega: al frente de la misma. Por otra parte, ver cómo el objeto SoapServer se crea en PHP. A continuación, agregue la función echoo a la lista de funciones que el servidor SOAP admite. Usted tiene que llamar a la función porque echoo eco es una palabra reservada en PHPsimilares a el comando de impresión. La última línea llama al método de la manija del objeto SoapServer, lo que permite el servidor para manejar la petición SOAP y devolver una respuesta, tal como se define en el método de echoo.


Mensajes SOAP 

Apuntando el navegador a su servidor SOAP en su estado actual provoca un error debido a la forma en que se envió la solicitud. Las necesidades de datos para ser enviados como datos POST puros a través de HTTP, como lo describe el faultstring.

Listado 3. Apuntando el navegador al servidor SOAP

                    
<SOAP-ENV:Envelope>
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>Bad Request. Can't find
                   HTTP_RAW_POST_DATA</faultstring>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Su servidor está vivo, pero sólo se puede acceder a él a través de un cliente SOAP u obtendrá errores de fallos, como se muestra arriba. Ahora que usted sabe el servidor SOAP está trabajando, usted puede moverse sobre la creación de un simple cliente.

Creación de un cliente: Formulario de Echo 

Un cliente le permite enviar los datos al servidor SOAP usando el protocolo correcto esperado. Puesto que todo lo que necesita es cualquier cadena a enviar al servidor SOAP para probarlo, vamos a crear un sencillo formulario con un cuadro de texto y un botón. Cree un archivo denominado simple_client.php y definirlo, como se muestra a continuación.

Listado 4. Creación de una forma simple

                    
<?php

$echo = $_GET['input'];

print "<h2>Echo Web Service</h2>";
print "<form action='simple_client.php' method='GET'/>";
print "<input name='input' value='$echo'/><br/>";
print "<input type='Submit' name='submit' value='GO'/>";
print "</form>";
...



Debido a la función de la aplicación, el método por el cual usted envía peticiones al servidor SOAP será a través de GET. Si la función tiene efectos secundarios, como la modificación de bases de datos o acceder al sistema, usted querría utilizar POST.

El primer código recupera el valor de la entrada de la matriz GET o URL. A continuación, se crea el formulario, con el campo de acción que es este mismo script PHP, simple_client.php, así que las peticiones de este formulario se envió a este mismo script PHP. Tenga en cuenta que hay dos etiquetas de entrada: el cuadro de texto donde puedes escribir el valor que ha devuelto desde el servidor SOAP y el botón GO. Una vista previa del formulario se muestra a continuación.

Figura 2. La forma Echo


Creación de un cliente: Haciendo la solicitud 

Una vez que se pulsa el botón, el texto en el cuadro de texto, se muestra más arriba, se envía al script PHP en la URL, la cual se puede extraer de la matriz de GET. Esto le permite comprobar que se envió una solicitud y procesarla. Continue definiendo el archivo simple_client.php, como se muestra a continuación.

Listado 5. Tramitación de las solicitudes y enviarlas al servidor SOAP

                    
...
print "</form>";

if($echo != ''){
    $client = new SoapClient(null, array(
      'location' => "http://localhost/soap/simple_server.php",
      'uri'      => "urn://tyler/req"));

    $result = $client->
        __soapCall("echoo",array($echo));

    print $result;
}
?>
                


Ahora bien, si $ echo tiene datos en él, es porque algo que se ha introducido en el cuadro de texto, y una solicitud fue hecha. Esto le permite iniciar la solicitud al servidor SOAP mediante la creación del objeto SoapClient. El cliente sabe a dónde enviar las solicitudes por la ubicación en la matriz de parámetros. Lo que el URI ofrece al paquete SOAP es un espacio de nombres, lo que es esencialmente es un contexto. Una vez que el SoapClient se inicializa, realiza la solicitud al servidor SOAP al llamar al método del cliente __soapCall con dos parámetros: el método en el servidor SOAP al que desea llamar y una matriz de parámetros. A continuación se muestra la respuesta enviada por el servidor SOAP debajo del botón GO, que se puede obtener una vista previa a continuación.

Figura 3. Mostrando la respuesta del servidor SOAP 

!Ahí lo tienen¡. Usted puede incluso ver el valor del cuadro de texto de entrada en la URL. Ahora que ha creado un servidor SOAP simple, vamos a crear uno más complejo que utiliza Apache Derby y varios servidores SOAP.

Traducido de: IBM developer works

Construya un WebService Con PHP. 1a Parte - GENERALIDADES Y CONFIGURACION

Información general y configuración.

Los servicios Web han sido un éxito desde hace algún tiempo, y la popularidad sigue creciendo. Pero ¿por qué? Es porque son la manera perfecta para integrar varias entidades en una sola, lo que permite un mejor flujo de información a la administración y los clientes.

PHP no está definitivamente atrás en esta área. Siendo uno de los idiomas de más rápido crecimiento, PHP demanda una gran cantidad de desarrolladores que requieren de esta tecnología, también. Echa un vistazo a la tecnología detrás de los servicios Web, SOAP, y cómo las bases de datos como el Derby de ayudar a habilitar un servicio Web más poderoso.

SOAP 

¿Qué significa de SOAP? Es sinónimo de Simple Object Access Protocol, y es esencialmente un estándar para el intercambio de datos basados ​​en XML a través de HTTP. En otras palabras: es la señal que va hacia abajo las líneas telefónicas si estuviera hablando con su amigo en el teléfono, pero en vez de usted y su amigo hablando por teléfono, va a ser clientes de vehículos en busca de los vehículos de sus sueños en una cadena de concesionarios de automóviles. Un ejemplo de un mensaje SOAP se muestra en el Listado 1.


Listado 1. Un mensaje SOAP

                    
<SOAP-ENV:Envelope>
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>Bad Request. Can't find
                   HTTP_RAW_POST_DATA</faultstring>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


usted verá esto otra vez más adelante, se muestra aquí para que usted pueda tener una idea de la tecnología. El cuerpo de la mayoría de los mensajes SOAP tiene datos similares a la avería se muestra aquí. A veces un encabezado se utiliza para mantener el cifrado y otros datos sensibles al contexto para la construcción SOAP que se envía. Además, los mensajes SOAP se envían como datos XML sin formato.

¿Cómo encaja con la base de datos?

Un servicio web difícilmente puede ser útil sin una base de datos. Puede utilizar una base de datos para almacenar información acerca de lo que un usuario particular haría: consultar o búsqueda durante una visita. La mayoría de los sistemas existentes de las grandes empresas tienen una amplia gama de bases de datos e información, por lo que el uso de base de datos es de vital importancia para un servicio Web exitoso - incluso para los sitios Web establecidos.

La información del sitio casi siempre se almacenan en una base de datos, y el acceso a dicha información se hace a través de un servicio Web se hace tan importante. Así que aprender a integrar su servicio Web PHP con una base de datos es de vital importancia, al igual que ocurre con la instalación de PHP básico. El desarrollo de PHP simplemente no es el desarrollo de PHP, sin una base de datos lista y a su entera disposición.

Ejemplo en PHP: La solicitud de concesión 

En este tutorial, podrás disfrutar de todo lo expresado anteriormente para el servicio Web, que le permite obtener un inicio en el desarrollo de su propio servicio Web con PHP. La aplicación que vamos a construir tiene una interfaz de usuario donde los usuarios pueden realizar consultas, como se muestra a continuación.

Figura 1. En busca del vehículo de sus sueños


Traducido de: IBM developer works

miércoles, 13 de junio de 2012

Construya un WebService Con PHP

Aprenda como crear aplicaciones Web integradas con SOAP

Resumen:

En los últimos años, los nuevos servicios Web han venido apareciendo en todo el Internet. ¿Y qué mejor lenguaje para construir su propio servicio web que PHP?. Con PHP, usted tiene la ventaja de un lenguaje de scripts, con el poder de conectarse a bases de datos, una curva de fácil desarrollo, que permite un desarrollo más rápido y tiempos de respuesta altos, gracias a las bibliotecas subyacentes compilados para el rendimiento.

Antes de Comenzar


Acerca de este tutorial 
Este tutorial es para los programadores de PHP que quieran subirse al carro de los servicios Web mediante la creación de un servicio web en PHP. Vas a crear un servicio Web mediante la creación de un servidor SOAP en PHP. El servicio web que creará será un servicio de búsqueda del vehículo que se lleva en las consultas basadas en la marca, modelo y año. El servicio web se consulta una base de datos interna y responder apropiadamente. Un cliente basado en Web también será codificado en PHP para comunicarse y consultar al servidor SOAP. Se crea una cadena de tres servidores SOAP en PHP. En realidad, cada uno de los tres servidores se localizan en tres localidades diferentes físicas o ciudades donde una cadena de concesionarios de automóviles, coexistiendo. El cliente entonces se hospedaría en un lugar donde los clientes de coches venía a visitar, entrar en las consultas de búsqueda para encontrar los vehículos de sus sueños. Las rutas de los clientes la consulta a cada uno de los tres servidores SOAP, lo que, a su vez, envían los resultados al cliente. Tras la recepción de cada respuesta, el cliente muestra los resultados de búsqueda para el usuario para el análisis.

Requisitos del sistema 
Las siguientes herramientas son necesarias para seguir adelante:

Servidor Web 
Cualquier sistema operativo y cualquier servidor web puede ser utilizado. Siéntase libre de utilizar Apache v2.x, o el servidor IBM HTTP, descarga de Apache o desde IBM.

PHP 
Debido al uso de los objetos de datos PHP, PHP V5.1 o posterior es necesario. Asegúrese de configurar la siguiente opción para incluir soporte para el Derby y las extensiones SOAP: - with-pdo-odbc = ibm-db2 / home/db2inst1/sqllib - enable-soap. Lea la sección Recursos para obtener información sobre la configuración de Apache o IBM HTTP Server con PHP.

Base de datos 
Este tutorial usa Apache Derby, que es de código abierto y ligero. Descargue también el IBM DB2 ® controlador Universal  y el cliente en tiempo de ejecución DB2 . Asegúrese de establecer el CLASSPATH adecuadamente siguiendo las instrucciones en cada página. Usted puede seguir el Linux ® o Windows ® las instrucciones para instalar y descargar el DB2 Run-Time Client. Lea la sección Recursos para obtener más información para ayudarle a obtener la configuración deseada.

IBM Cloudscape también se puede utilizar para este tutorial. Los detalles internos de la misma son los mismos que Derby, sin embargo, el controlador JDBC de DB2 Universal y otras cosas que son empaquetados en nubes, y es compatible con IBM. Descargar IBM Cloudscape V10.1 y el cliente DB2 Run-Time de IBM.

La tecnología Java 
Derby requiere la tecnología Java ™. Descarga de Sun Microsystems o desde IBM.