SOA y WebServicesSpring Tours UPeU 2009José Luis Gutiérrez
Agenda¿Que son los web services?
Arquitectura
Estandares
Java y los web services
Beneficios de los web services
Service Oriented Architecture (SOA)
Apache Axis
Arquitectura y forma de trabajo de Apache Axis.
Facilidades de Spring Framework para servicios Web.Definiciones SimplesUn servicio web es un componente programable que proporciona un servicio y es accesible por Internet.Los servicios web pueden funcionar de manera independiente o pueden estar conectados entre sí para proporcionar una funcionalidad mayor.“Un sistema de Software identificado por una URI, cuya interfaz pública y enlaces son definidos y descritos utilizando XML. Su definición puede ser descubierta por otros sistemas de software, quienes posteriormente pueden interactuar con el servicio web según la forma especificada por su definición, utilizando mensajes basados en XML transportados por protocolos de Internet”Web Services ¿Qué son?
Arquitectura
WSDLEs un lenguaje basado en XML que describe servicio como una colección de operaciones accesibles a través de mensajes.Define detalles de interfaces y mecanismos de interacción del servicio, protocolos enlace y servicios de la red.SOAPProtocolo para intercambio de información en un ambiente descentralizado y distribuido, el cual permite la comunicación entre varias aplicaciones.La comunicación se realiza vía formato de intercambio de mensajes XML, incluyendo requisitos de llamada de parámetros y resultados.UDDILa especificación UDDI es un esfuerzo común para definir y crear un registro de servicio estándar, el cual puede ser accedido por clientes puede ser alojar todos los servicios que se necesiten.Tecnologías Estándar
¿Cómo Funciona?
Beneficios de web servicesLos 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. Las especificaciones son gestionadas por una organización abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entre aplicaciones.Es el futuro de la aplicaciones
Service Oriented Architecture (SOA)Roles:proveedor del servicio: ofrece un servicio y publica su definición en un registro junto con una descripciónconsumidor del servicio: localiza e invoca el servicioregistro o agencia de descubrimiento: ofrece un servicio de información sobre la definición y descripción de servicios disponiblesCaracterísticas de SOA:sistema es una colección de servicios débilmente acopladoscomunicación con el servicio por protocolos estándaresmecanismo común para la representación e intercambiolenguaje de meta-datos para describir los servicios ofrecidosmecanismo para registrar y localizar los serviciosMismo servicio, distintas calidades de servicio (QoS)distinto proveedor, descripción habla de distintos requisitos técnicosdisponibilidad, prestaciones, escalabilidad, seguridad,…Visión del consumidor:concierne únicamente la funcionalidad y la QoS
Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)
Partes de la arquitecturaDescripción de los servicios: WSDLRegistro y búsqueda de servicios: UDDIUso de los servicios: SOAP, HTTP, MIME
Descripción del servicioWSDL (Web Services Description Language)es una especificación que define cómo describir servicios Web usando una gramática XML.utiliza XML y XML SchemaEl documento WSDL representa un contrato entre el proveedor y el usuario de un servicio.Consumidor y proveedor del servicio quieren validar y interpretar los documentos que intercambianlos dos necesitan acceso a una descripción del servicioWSDL se usa:En la fase de despliegue para crear los interfaces de servicio.Algunas implementaciones SOAP, también usan WSDL durante la ejecución para soportar comunicaciones dinámicasActualmente, la mayoría de las herramientas usan WSDL 1.1WSDL: presentaciónbásica
Descripción del servicioEs una gramática XML, orientada a describir en forma estructurada, la funcionalidad de un Web Service y la forma en que esa funcionalidad se hace disponible.Describe un servicio, como una colección de “comunication endpoints” (puertos) capaces de intercambiar mensajes.Cada port tiene un definición abstracta (port type) y una definición concreta (binding).Permite describir en forma abstracta operaciones y mensajes, prescindiendo de las especificaciones de protocolo y tipos de datos.Vincula las descripciones abstractas a una implementación concreta de protocolos y tipos de datos, permitiendo la reutilización de las definiciones abstractas.Es extensible tanto en lo que respecta a tipos de datos (XSD) como a protocolos y formatos de mensajes.Proporciona documentación sobre el servicio que describeWSDL: presentaciónbásica
Arquitectura de referencia SOA
Implementación de SOAP (Simple Object Access Protocol)Este es un protocolo basado en XML que consiste de tres partes: un sobre que define un marco para describir qué hay en el mensaje y cómo procesarlo, un conjunto de reglas de codificación, y una convención para representar llamadas a procedimientos remotos y respuestas.Apache Axis
Un servidor que se conecta en servlet engines tales como Apache Tomcat.Soporte para WSDL.Herramientas que generar clases Java de WSDL y viceversa (WSDL2Java y Java2WSDL)Una herramienta para monitorear paquetes TCP/IP.Caracteristicas de Axis
Axis usa SAX (Simple API for XML)  para procesar archivos XML.Axis es completamente independiente del transporte usado. Habilita el intercambio de mensajes usando diferentes canales de comunicación.Soporta la API JAX-RPC con JavaBeans como implementaciones de servicios web. No soporta EJBs.Arquitectura de Axis
Axis utiliza una seria de Handlers para interceptar y procesar los mensajes SOAP recibidos. Un handler puede examinar y potencialmente modificar el contenido de un mensaje SOAP.Punto de pivote: el lugar en donde el verdadero servicio web es invocado.Handlers
Agregan una colección de Handlers. Una petición fluye a lo largo de una secuencia de Handlers hasta que es procesada.Targeted Chain es la cadena que contiene el punto de pivote.Cadenas

SOA y Web Services

  • 1.
    SOA y WebServicesSpringTours UPeU 2009José Luis Gutiérrez
  • 2.
    Agenda¿Que son losweb services?
  • 3.
  • 4.
  • 5.
    Java y losweb services
  • 6.
    Beneficios de losweb services
  • 7.
  • 8.
  • 9.
    Arquitectura y formade trabajo de Apache Axis.
  • 10.
    Facilidades de SpringFramework para servicios Web.Definiciones SimplesUn servicio web es un componente programable que proporciona un servicio y es accesible por Internet.Los servicios web pueden funcionar de manera independiente o pueden estar conectados entre sí para proporcionar una funcionalidad mayor.“Un sistema de Software identificado por una URI, cuya interfaz pública y enlaces son definidos y descritos utilizando XML. Su definición puede ser descubierta por otros sistemas de software, quienes posteriormente pueden interactuar con el servicio web según la forma especificada por su definición, utilizando mensajes basados en XML transportados por protocolos de Internet”Web Services ¿Qué son?
  • 11.
  • 12.
    WSDLEs un lenguajebasado en XML que describe servicio como una colección de operaciones accesibles a través de mensajes.Define detalles de interfaces y mecanismos de interacción del servicio, protocolos enlace y servicios de la red.SOAPProtocolo para intercambio de información en un ambiente descentralizado y distribuido, el cual permite la comunicación entre varias aplicaciones.La comunicación se realiza vía formato de intercambio de mensajes XML, incluyendo requisitos de llamada de parámetros y resultados.UDDILa especificación UDDI es un esfuerzo común para definir y crear un registro de servicio estándar, el cual puede ser accedido por clientes puede ser alojar todos los servicios que se necesiten.Tecnologías Estándar
  • 13.
  • 14.
    Beneficios de webservicesLos 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. Las especificaciones son gestionadas por una organización abierta, la W3C, por tanto no hay secretismos por intereses particulares de fabricantes concretos y se garantiza la plena interoperabilidad entre aplicaciones.Es el futuro de la aplicaciones
  • 15.
    Service Oriented Architecture(SOA)Roles:proveedor del servicio: ofrece un servicio y publica su definición en un registro junto con una descripciónconsumidor del servicio: localiza e invoca el servicioregistro o agencia de descubrimiento: ofrece un servicio de información sobre la definición y descripción de servicios disponiblesCaracterísticas de SOA:sistema es una colección de servicios débilmente acopladoscomunicación con el servicio por protocolos estándaresmecanismo común para la representación e intercambiolenguaje de meta-datos para describir los servicios ofrecidosmecanismo para registrar y localizar los serviciosMismo servicio, distintas calidades de servicio (QoS)distinto proveedor, descripción habla de distintos requisitos técnicosdisponibilidad, prestaciones, escalabilidad, seguridad,…Visión del consumidor:concierne únicamente la funcionalidad y la QoS
  • 16.
    Service Oriented Architecture(SOA)Service Oriented Architecture (SOA)
  • 17.
    Partes de laarquitecturaDescripción de los servicios: WSDLRegistro y búsqueda de servicios: UDDIUso de los servicios: SOAP, HTTP, MIME
  • 18.
    Descripción del servicioWSDL(Web Services Description Language)es una especificación que define cómo describir servicios Web usando una gramática XML.utiliza XML y XML SchemaEl documento WSDL representa un contrato entre el proveedor y el usuario de un servicio.Consumidor y proveedor del servicio quieren validar y interpretar los documentos que intercambianlos dos necesitan acceso a una descripción del servicioWSDL se usa:En la fase de despliegue para crear los interfaces de servicio.Algunas implementaciones SOAP, también usan WSDL durante la ejecución para soportar comunicaciones dinámicasActualmente, la mayoría de las herramientas usan WSDL 1.1WSDL: presentaciónbásica
  • 19.
    Descripción del servicioEsuna gramática XML, orientada a describir en forma estructurada, la funcionalidad de un Web Service y la forma en que esa funcionalidad se hace disponible.Describe un servicio, como una colección de “comunication endpoints” (puertos) capaces de intercambiar mensajes.Cada port tiene un definición abstracta (port type) y una definición concreta (binding).Permite describir en forma abstracta operaciones y mensajes, prescindiendo de las especificaciones de protocolo y tipos de datos.Vincula las descripciones abstractas a una implementación concreta de protocolos y tipos de datos, permitiendo la reutilización de las definiciones abstractas.Es extensible tanto en lo que respecta a tipos de datos (XSD) como a protocolos y formatos de mensajes.Proporciona documentación sobre el servicio que describeWSDL: presentaciónbásica
  • 20.
  • 21.
    Implementación de SOAP(Simple Object Access Protocol)Este es un protocolo basado en XML que consiste de tres partes: un sobre que define un marco para describir qué hay en el mensaje y cómo procesarlo, un conjunto de reglas de codificación, y una convención para representar llamadas a procedimientos remotos y respuestas.Apache Axis
  • 22.
    Un servidor quese conecta en servlet engines tales como Apache Tomcat.Soporte para WSDL.Herramientas que generar clases Java de WSDL y viceversa (WSDL2Java y Java2WSDL)Una herramienta para monitorear paquetes TCP/IP.Caracteristicas de Axis
  • 23.
    Axis usa SAX(Simple API for XML) para procesar archivos XML.Axis es completamente independiente del transporte usado. Habilita el intercambio de mensajes usando diferentes canales de comunicación.Soporta la API JAX-RPC con JavaBeans como implementaciones de servicios web. No soporta EJBs.Arquitectura de Axis
  • 24.
    Axis utiliza unaseria de Handlers para interceptar y procesar los mensajes SOAP recibidos. Un handler puede examinar y potencialmente modificar el contenido de un mensaje SOAP.Punto de pivote: el lugar en donde el verdadero servicio web es invocado.Handlers
  • 25.
    Agregan una colecciónde Handlers. Una petición fluye a lo largo de una secuencia de Handlers hasta que es procesada.Targeted Chain es la cadena que contiene el punto de pivote.Cadenas
  • 26.
  • 27.
    Pasado a cadainvocación de un Handler Se estructura contiene:Un mensaje “request”Un mensaje “response”, yUn conjunto de propiedades.MessageContext
  • 28.
  • 29.
  • 30.
  • 31.
    Despliegue de serviciosWeb con AxisArchivos JWS (Java Web Service) que son archivos de fuentes de código java con extensión jws
  • 32.
    Despliegue personalizado usandoarchivos WSDD (Web Service Deployment Descriptor)Soportepara servicios web en Spring FrameworkServletEndpointSupport: clase base para implementaciones de servlets JAX-RPC
  • 33.
    Spring tiene dosfactories para crear proxies de servicios web: LocalJaxRpcServiceFactoryBean y JaxRpcPortProxyFactoryBean