web services

21
Con PHP Tec. Henry Astudillo Ramírez [email protected]

Upload: henry-astudillo-ramirez

Post on 14-Jun-2015

2.753 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Web Services

Con PHP

Tec. Henry Astudillo Ramí[email protected]

Page 2: Web Services

Sistema de software diseñado para soportar la interoperabilidad máquina - máquina a través de una red. Este tiene una interfaz descripta en un formato que puede ser procesado por una máquina. Otros sistemas interactúan con el Web service utilizando mensajes SOAP los cuales se encuentran establecidos previamente.

Page 3: Web Services

Estos servicios proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario.

Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinación para realizar operaciones complejas, es necesaria una arquitectura de referencia estándar.

Page 4: Web Services
Page 5: Web Services

Independencia del lenguaje y de la plataforma, separación de especificación de la implementación.

Interoperabilidad Modularidad y Reusabilidad de servicios. Escalabilidad

Page 6: Web Services

Web Services Protocol Stack XML SOAP WSDL UDDI WS-Security

Page 7: Web Services

La Pila de protocolos para Servicios Web es una colección de protocolos para redes de Computadores que son utilizados para definir, localizar, implementar y hacer que un Servicio Web interactúe con otro.

La Pila de Protocolos para servicios esta comprendida principalmente por cuatro áreas:◦ Servicio de Transporte: responsable del transporte de mensajes entre las

Aplicaciones de red y los protocolos en los cuales se incluyen protocolos tales como HTTP, SMTP, FTP, así como también el Blocks Extensible Exchange Protocol (BEEP).

◦ Mensajería XML: responsable por la codificación de mensajes en un formato común XML así que ellos puedan ser entendidos en cualquier extremo de una conexión de red. Actualmente, esta área incluye protocolos tales como XML-RPC, SOAP y REST.

◦ Descripción del Servicio: usado para describir la interface pública de un Servicio Web especifico. El formato de interface Web Services Description Language - WSDL es típicamente usado para este propósito.

◦ Descubrimiento de servicios: centraliza servicios en un registro común tal que los servicios Web de la red puedan publicar su localización y descripción, y hace que sea fácil descubrir que servicios están disponibles en la red. Actualmente, la API Universal Description Discovery and Integration - UDDI se utiliza normalmente para el descubrimiento de servicios.

Page 8: Web Services

XML, sigla en inglés de Extensible Markup Language («lenguaje de marcas extensible»). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos. Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.

XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.

Page 9: Web Services

Es un protocolo de comunicación, el cual permite la comunicación entre aplicaciones a través de mensajes por medio de Internet. Es independiente de la plataforma, y del lenguaje. Esta basado en XML y es la base principal de los Web Services. Los mensajes SOAP son documento XML propiamente dicho, pero esto lo veremos más adelante cuando veamos un ejemplo de un mensaje SOAP.

SOAP es un marco extensible y descentralizado que permite trabajar sobre múltiples pilas de protocolos de redes informáticas. Los procedimientos de llamadas remotas pueden ser modelados en la forma de varios mensajes SOAP interactuando entre sí.

SOAP funciona sobre cualquier protocolo de Internet, generalmente HTTP, que es el único homologado por el W3C.

Page 10: Web Services
Page 11: Web Services

WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje.

WSDL se usa a menudo en combinación con SOAP y XML Schema. Un programa cliente que se conecta a un servicio web puede leer el WSDL para determinar que funciones están disponibles en el servidor. Los tipos de datos especiales se incluyen en el archivo WSDL en forma de XML Schema. El cliente puede usar SOAP para hacer la llamada a una de las funciones listadas en el WSDL.

Page 12: Web Services
Page 13: Web Services

UDDI es uno de los estándares básicos de los servicios Web cuyo objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catálogo de registros.

Es un modelo de directorios para Web Services. Es una especificación para mantener directorios estandarizados de información acerca de los Web Services, sus capacidades, ubicación, y requerimientos en un formato reconocido universalmente.

Es un lugar en el cual podemos buscar cuales son los Servicios web disponibles, una especie de directorio en el cual podemos encontrar los Web Services publicados y publicar los Web Services que desarrollemos.

Page 14: Web Services
Page 15: Web Services

Protocolo de comunicaciones que suministra un medio para aplicar seguridad a los Servicios Web.

Originalmente desarrollado por IBM, Microsoft, y VeriSign, el protocolo es ahora llamado oficialmente WSS y está desarrollado por un comité en Oasis-Open.

El protocolo contiene especificaciones sobre como debe garantizarse la integridad y seguridad en mensajería de Servicios Web.

La Integridad de datos y confidencialidad pueden garantizarse sobre Servicios Web a través del uso de la Transport Layer Security (TLS).

WS-Security incorpora características de seguridad en el encabezado de un mensaje SOAP, trabajando en la capa aplicación. Así asegura seguridad extremo a extremo.

Page 16: Web Services

Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.

Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.

Al apoyarse en HTTP, los servicios Web pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado.

Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.

Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar y abiertos.

Page 17: Web Services

NuSOAP es un kit de herramientas (ToolKit) para desarrollar Web Services bajo el lenguaje PHP. Está compuesto por una serie de clases que hacen mucho más fácil el desarrollo de Web Services. Provee soporte para el desarrollo de clientes (aquellos que consumen los Web Services) y de servidores (aquellos que los proveen). NuSOAP está basado en SOAP 1.1, WSDL 1.1 y HTTP 1.0/1.1

NuSOAP no es el único, existen otros, pero es uno de los que están en una fase de desarrollo mucho más avanzada. Sin ir más lejos, PHP a partir de su versión 5 comienza a dar soporte para SOAP.

Page 18: Web Services

Datos del clima. Este Web Service tiene 9 métodos que podemos utilizar (todos ellos se encuentran definidos en el archivo WSDL que se encuentra en http://live.capescience.com/wsdl/GlobalWeather.wsdl.

Los métodos son: getStation(), isValidCode(), listCountries(), searchByCode(), searchByCountry(), searchByLocation(), searchByName(), searchByRegion(), getWeatherReport().

Ejemplo: ◦ seleccionarLocalidad.php: el cual nos permitirá seleccionar

una localidad dado un país (el país esta dado por el valor de la variable $sPais). Este archivo PHP utiliza el método del Web Service searchByCountry()

◦ mostrarPronostico.php: el cual mostrara el pronóstico para la localidad seleccionada. Este archivo PHP utiliza el método del Web Service getWeatherReport().

Page 19: Web Services

1 - Lo primero es obtener la libreria NuSoap.php

2 - Luego procedemos a incluir la libreria en nuesto archivo php y crear el objeto soap_server de la siguiente manerarequire_once('nusoap.php');$server = new soap_server;

3 - Luego procedemos a implementar las funcionalidades de nuestro web service en este caso nuestro web service implementara su funcionalidad con funciones function calcIVA ( $monto ) {return $monto * 1.15;}

4 - Luego de implementar la funcionalidad de nuestro web server procedemos a crear un objeto soap_server de la siguiente manera$server = new soap_server;

5 - Luego vamos a crear nuesto namespace este va a ser usado al momento de configurar el WSDL$ns="http://www.myurl.com/services/appSvrs";

Page 20: Web Services

6 - Luego procedemos a configurar el WSDL de nuestro web server$server->configurewsdl('ApplicationServices',$ns);$server->wsdl->schematargetnamespace=$ns;

7 - Despues procedemos a registrar todas las funciones creadas en el paso 3$server->register('calcIVA',array('monto' => 'xsd:int' ),array('return' => 'xsd:int'),$ns);

8 - Por ultimo mandamos llamar al lisener del web service y terminamos el procesamientoif (isset($HTTP_RAW_POST_DATA)) { $input = $HTTP_RAW_POST_DATA; } else { $input = implode("\r\n", file('php://input')); }

$server->service($input);exit;

Page 21: Web Services

Los Web Services brindan gran funcionalidad y posibilidad de realizar cambios y mejorar nuestras aplicaciones.

Un mismo web service puede ser consumido tanto por aplicaciones que se ejecutan en un servidor y entregan código HTML al cliente, como por aplicaciones que corren directamente en la máquina del cliente.