1 / 22

Introducción a los Webservices

Introducción a los Webservices. Contenidos. Definición Protocolos que hacen posible la existencia de los Webservices Webservices en Java Ejemplo. Webservices.

kuniko
Download Presentation

Introducción a los Webservices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción a los Webservices

  2. Contenidos • Definición • Protocolos que hacen posible la existencia de los Webservices • Webservices en Java • Ejemplo

  3. Webservices • Los servicios Web proporcionan una manera de crear aplicaciones que pueden ser accedidas y utilizadas por diferentes clientes utilizando diferentes plataformas. • Permite invocar funciones de otras aplicaciones independientemente de cómo se hayan creado las aplicaciones • Permite integración de aplicaciones

  4. Webservices • Los Servicios Web son para los computadores, lo que las páginas Web para los humanos • Fortaleza de los WebServices – basados en estándares • Protocolos de comunicación • Formatos de representación de datos • Lenguajes descriptivos • Mecanismo de descubrimiento

  5. Protocolos y estándares • HTTP • XML • SOAP, XML-RPC • WSDL • UDDI

  6. Protocolos y Estándares • HTTP • Un esquema de direccionamiento comprensible. • Arquitectura Cliente-Servidor. • HTTP se asienta en el paradigma solicitud/respuesta. La comunicación se asienta sobre TCP/IP. El puerto por defecto es el 80, pero se pueden utilizar otros.

  7. Protocolos y Estándares • HTTP • Es un protocolo sin conexión y sin estado. • Después de que el servidor ha respondido la petición del cliente, se rompe la conexión entre ambos. • Está abierto a nuevos tipos de datos. • Cuando un servidor HTTP transmite información de vuelta a un cliente, incluye una cabecera que le indica al cliente sobre los tipos de datos que componen el documento.

  8. Protocolos y Estándares • XML (eXtended Markup Language) • Base de los servicios Web • Permite comunicación entre sistemas de forma estándar • Información con estructura • Utilizado ampliamente en la industria • Futuro estándar de estructuración de información

  9. Protocolos y Estándares • SOAP v/s XML-RPC • Invocación de procedimientos a través de protocolos estándar • XML-RPC . Unix Friendly • SOAP . Arquitectura .NET • Especifican todas las reglas necesarias para ubicar servicios Web XML, integrarlos en aplicaciones y establecer la comunicación entre ellos. • Incompatibles entre sí

  10. Protocolos y Estándares • SOAP v/s XML-RPC • Estandarizados por la W3C • SOAP lidera en desarrollos de Webservices • Google posee un servicio Web de búsqueda implementado con protocolo SOAP

  11. Protocolos y Estándares • SOAP • Protocolo de acceso a objetos simple • soporte completo y minucioso de todo tipo de servicios Web • Mas potente que XML-RPC • Incluye toda una arquitectura a su alrededor

  12. Protocolos y Estándares • WSDL y UDDI • El archivo WSDL, en formato XML, indica al sistema que consulte, qué servicios dispone • WSDL además da una referencia precisa sobre el servicio, para poder invocarlo usando los parámetros adecuados • UDDI es un Servicio Web en línea que se puede utilizar desde las aplicaciones para descubrir de forma dinámica otros servicios en línea

  13. Protocolos y Estándares • WSDL y UDDI Registro UDDI WSDL WSDL SOAP Cliente Servicio Web SOAP

  14. Webservices en Java • Apache Axis – Implementación de SOAP para Java y C++ • Continuación del proyecto Apache SOAP • Deploy de servicios en forma natural • Requiere un WebServer para operar (Apache Tomcat)

  15. Ejemplo deploy simple • Cálculo raíz cuadrada public class Raiz { public double raizCuadrada(String i1) { return Math.sqrt(Integer.parseInt(i1)); } } • Guardamos clase con extensión .jws en directorio de Axis

  16. Ejemplo deploy simple • XML SOAP generado <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <raizCuadradaResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/> <raizCuadradaReturn xsi:type="xsd:double">2.0</raizCuadradaReturn> </raizCuadradaResponse> </soapenv:Body> </soapenv:Envelope>

  17. Ejemplo deploy simple • Cliente que utiliza este Webservice String numero ="465"; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new URL("http://localhost:8080/axis/Raiz.jws")); call.setOperationName(new QName("http://soapinterop.org/", "RaizCuadrada")); Double returnValue = (Double)call.invoke(new Object[]{numero}); System.out.println("La raiz de "+numero +" es "+returnValue);

  18. Ejemplo deploy simple • Tipos de datos estandarizados • xsd:base64Binary byte[] • xsd:boolean boolean • xsd:byte byte • xsd:dateTime java.util.Calendar • xsd:decimal java.math.BigDecimal • xsd:double double • xsd:float float • xsd:hexBinary byte[] • xsd:int int • xsd:integer java.math.BigInteger • xsd:long long • xsd:short short • xsd:string java.lang.String • xsd:QName javax.xml.namespace.QName

  19. Deploy más elaborado • Ejemplo: Webservice que retorna una clase creada por nosotros public class Archivo implements Serializable { public String Nombre; public byte[] Datos; public Archivo(){} public void setNombre(String param_Nombre){ Nombre = param_Nombre;} public void setDatos(byte[] param_Datos){ Datos = param_Datos;} public byte[] getDatos() { return Datos; } public String getNombre(){ return Nombre;} }

  20. Deploy más elaborado • Archivo WSDD <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="EventosServidor" provider="java:RPC"> <parameter name="className" value="WS_EventosServidor"/> <parameter name="allowedMethods" value="*"/> <beanMapping qname="myNS:Archivo" xmlns:myNS="urn:BeanService" languageSpecificType="java:Archivo"/> </service> </deployment>

  21. Deploy más elaborado • Cliente Service service = new Service(); Call call = (Call)service.createCall(); QName archivoqn = new QName("urn:BeanService","Archivo"); call.setOperationName( "descargaEventos" ); call.registerTypeMapping(Archivo.class,archivoqn,new BeanSerializerFactory(Archivo.class,archivoqn),new BeanDeserializerFactory(Archivo.class,archivoqn),false); call.registerTypeMapping(Archivo.class,archivoqn,new BeanSerializerFactory(Archivo.class,archivoqn),new BeanDeserializerFactory(Archivo.class,archivoqn)); call.setTargetEndpointAddress(new URL("http://localhost:8080/axis/services/EventosServidor")); Archivo[] returnValue = (Archivo[])call.invoke(new Object[]{Fecha,Hora});

  22. Fin

More Related