La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Alberto Pedroso García - Junio/2004 Victor Ricardo Díaz – Junio/2007 Web Services.

Presentaciones similares


Presentación del tema: "Alberto Pedroso García - Junio/2004 Victor Ricardo Díaz – Junio/2007 Web Services."— Transcripción de la presentación:

1 Alberto Pedroso García - Junio/2004 Victor Ricardo Díaz – Junio/2007 Web Services

2 Es un framework para la creación de servicios para los usuarios a través del WWW. Son aplicaciones de software que pueden ser descubiertas, descritas y accedidas basadas en XML y en los protocolos estándar de la Web en las intranet, extranet y en internet. Web Service

3 Forma estandarizada de integrar aplicaciones Web usando los estándares abiertos XML, SOAP, WSDL y UDDI sobre un protocolo de Internet. XML se usa para codificar la información, SOAP se usa para transferir la información, WSDL se usa para describir los servicios disponibles, UDDI se usa para listar los servicios disponibles. Los Web Services permiten que diferentes aplicaciones en diferentes plataformas se comuniquen usando XML.

4 Web Service Capas básicas de los webservices Descubrir (registrosUDDI, ebXML) Describir (WSDL) Acceder (SOAP) XML CAPA DE COMUNICACION (HTTP, SMTP, y otros protocolos)

5 Escenario común para estas tecnologías Aplicación Cliente Registro UDDI 1. Descubre el webservices WSDL Para Webservices A 2. Ver descripción de llamada a cada webservices Webservices A 3. Acceder al webservices con SOAP 4. Recibir mensaje de respuesta SOAP

6 Web Service & MVC Separar la lógica de negocio de la presentación es comúnmente conocido en la ingeniería de software como el paradigma Modelo – Vista – Controlador (MVC). Los webservices soportan este paradigma como se muestra en la sgte figura: Aplicación cliente webservices Controlador Modelo Vista Estilo interfaz Usuario Facilidades de comunicación entre vista y el modelo Proporciona la lógica de negocio

7 Web Service & Inteloperación Para inteloperar con varias compañías y aplicaciones en el negocio, se necesita un lenguaje común y un medio para resolver este problema en un ambiente dinámico. Los webservices proporcionan este medio.

8 SOAP SOAP (Simple Object Access Protocol) es un protocolo basado en XML usado para codificar la información en los mensajes de solicitud y respuesta en un Web Service antes de ser enviados por la red. Los mensajes SOAP son independientes de cualquier sistema operativo o protocolo y pueden ser transportados usando una diversidad de protocolos de Internet como SMTP y HTTP.

9 WSDL WSDL (Web Services Description Language) es un lenguaje basado en XML usado para describir las posibilidades que ofrece un servicio Web. Fue desarrollado de manera conjunta por Microsoft e IBM.

10 UDDI UDDI (Universal Description, Discovery and Integration) es un directorio distribuido basado en Web que permite dar a conocer los Web Services para que puedan ser descubiertos.

11 HTTP El Hypertext Transfer Protocol (HTTP) es un protocolo para sistemas de información de hipertextos distribuidos. Es un protocolo genérico y sin estados que puede ser usado para varias tareas que van más allá de su uso para hipertexto. Cada solicitud de un cliente HTTP (navegador) y cada respuesta de un servidor tienen 3 partes: la línea de solicitud o respuesta, el encabezamiento, el cuerpo.

12 HTTP El Hypertext Transfer Protocol (HTTP) es un protocolo para sistemas de información de hipertextos distribuidos. Es un protocolo genérico y sin estados que puede ser usado para varias tareas que van más allá de su uso para hipertexto. Cada solicitud de un cliente HTTP (navegador) y cada respuesta de un servidor tienen 3 partes: la línea de solicitud o respuesta, el encabezamiento, el cuerpo.

13 Solicitud del cliente... El cliente inicia la transacción de una página Web conectándose a un servidor HTTP por el puerto designado (80 por defecto) y envía una solicitud especificando un comando HTTP llamado método, seguido por la dirección de un documento y un número de versión de HTTP. Método URI Protocolo GET /index.htm HTTP/1.0 En el ejemplo anterior se usa el método GET para solicitar el documento /index.htm usando la versión 1.0 del protocolo.

14 Solicitud del cliente... Luego el cliente envía información de encabezamiento opcional al servidor indicándole su configuración y los formatos de documentos que aceptará. Toda la información del encabezamiento se envía línea a línea, cada una con un nombre y un valor de la forma: Palabra: Valor Por ejemplo, User Agent: Lynx/2.4 libwww/5.1k Accept: image/gif, image/jpeg, */* Todas estas líneas son terminadas con \r\n. El cliente envía una línea en blanco para terminar el encabezamiento.

15 ...Solicitud del cliente Finalmente, después de enviar la solicitud y los encabezamientos, el cliente puede enviar datos adicionales. Estos datos son principalmente usados por programas CGIs que usan el método POST. Se termina la solicitud con otra línea en blanco.

16 Métodos de Solicitud OPTIONS – Se usa para interrogar a un servidor acerca de las capacidades que brinda, GET – Pide al servidor que devuelva el cuerpo del documento identificado en el URI, READ – Sirve para chequear si un documento ha sido actualizado desde la última solicitud, POST – Se usa para transferir un bloque de datos al servidor, PUT – Similar a subir un archivo con FTP al servidor, DELETE – Borra un documento del servidor, TRACE – Rastrea el camino de la solicitud a través de firewalls y servidores proxy.

17 Respuesta del Servidor... La respuesta del servidor tiene primero la línea de estado que contiene tres campos: la versión HTTP, el código de estado y la descripción del código de estado, en el siguiente formato: Protocolo Código de Estado Descripción HTTP/ OK Esto indica que el servidor usa la versión 1.0 de HTTP en su respuesta. Un código de estado de 200 significa que la solicitud del cliente fue respondida de manera exitosa. Después el servidor envía un encabezado al cliente acerca de sí mismo y del documento solicitado.

18 ...Respuesta del Servidor Toda la información del encabezamiento se envía línea a línea, en el formato Palabra Clave: Valor. Por ejemplo, HTTP/ OK Date: Wed, 19 May :20:56 GMT Server: Apache/1.3.6 (Unix) PHP/ Si la solicitud del cliente es válida, se envía la información solicitada. Esta información puede ser una copia de un archivo o la respuesta de un programa CGI.

19 NuSOAP Conjunto de clases PHP que permiten a los usuarios enviar y recibir mensajes SOAP usando HTTP. Antiguamente conocido como SOAPx4, es distribuido por NuSphere Corporation (http://www.nusphere.com) y ha sido usado como núcleo de varios paquetes de Web Services, incluyendo PEAR-SOAP.http://www.nusphere.com Uno de los beneficios de NuSOAP es que no es una extensión de PHP sino que está escrito en PHP.

20 Arquitectura... NuSOAP emplea una clase base que brinda métodos para serialización de variables y envelopes, información de espacios de nombres y mapeo de diferentes tipos a diferentes espacios de nombres. La interacción con un servicio Web se logra usando un cliente de alto nivel llamado soapclient. Las operaciones SOAP se ejecutan pasando el nombre de la operación que queremos ejecutar al método call().

21 Arquitectura... Si el servicio que vamos a utilizar tiene un archivo WSDL asociado, la clase soapclient toma como argumento el URL del archivo en su constructor y usa la clase wsdl para analizar el archivo WSDL y extraer todos los datos. La clase soapclient usa estos datos para codificar los parámetros y crear el SOAP envelope cuando el usuario ejecuta una llamada al servicio. Cuando se ejecuta la llamada, la clase soapclient usa a la clase soap_transport_http para enviar el mensaje saliente y recibir el mensaje entrante. Este es analizado por la clase soap_parser

22 Arquitectura...

23 ...Arquitectura Si el servicio que vamos a utilizar no tiene un archivo WSDL asociado, entonces el proceso es diferente. Al constructor de la clase soapclient se le pasa el URL del servicio. El llamado se hace con el método call, pero los detalles que eran proporcionados por el archivo WSDL deben pasarse ahora como argumentos. Los parámetros que sean tipos propietarios pueden representarse usando la clase soapval que permite a los usuarios adaptar la serialización de un parámetro.

24 Instalación y Configuración Descargue los archivos de Extraiga el archivo nusoap.php de su zip, Copie la clase en un directorio, Incluya la clase en su script. El camino puede ser relativo o absoluto: include_once(nusoap.php)

25 Ejemplo de Cliente PHP Soap...

26 ...Ejemplo de Cliente PHP Soap // Llamamos al servicio que queremos usar en el servidor // pasándole los parámetros necesarios y recibimos la respuesta $resultado = $cliente->call('repiteCadena',$parametros); // NuSOAP ofrece detección de errores con el método getError() if (!$error = $cliente->getError()) echo "Resultado: ".$resultado; else echo "ERROR:".$error; ?>

27 Ejemplo de Servidor PHP Soap... register('repiteCadena'); // Pasamos los datos de entrada al método service, que procesa // la solicitud, llama a la función apropiada, y luego formula la // respuesta $servidor->service($HTTP_RAW_POST_DATA);

28 ...Ejemplo de Servidor PHP Soap // Servicio function repiteCadena($cadena) { if (is_string($cadena)) return $cadena; else return new soap_fault('Client','','El parámetro debe ser una cadena de caracteres'); } ?>

29 Manejo de Errores La clase soap_fault proporciona una forma de especificar errores y devolverlos cuando trabajamos con NuSOAP. Los argumentos pasados a su constructor son los siguientes: faultcode – Valores disponibles Client y Server. Los errores Client indican que el mensaje no contenía la información requerida para que la operación fuera exitosa. Los errores Server indican problemas de procesamiento en el servidor. faultactor – No es totalmente funcional y puede dejarse vacía. faultstring – Mensaje de error. faultdetail – Detalles del error en XML relacionados con el elemento BODY del mensaje SOAP.

30 Creación de Tipos Complejos SOAP permite que los usuarios definan sus propios tipos en la especificación. NuSOAP brinda la clase soapval para definir tipos. Ejemplo: $param = new soapval(,double,2.3433); El parámetro sería serializado de la siguiente forma:

31 Fuentes The Semantic Web por: Michael C. Daconta Leo J. Obrst Kevin T. Smith


Descargar ppt "Alberto Pedroso García - Junio/2004 Victor Ricardo Díaz – Junio/2007 Web Services."

Presentaciones similares


Anuncios Google