Upload
vortexbird
View
666
Download
2
Embed Size (px)
DESCRIPTION
Computación distribuida. Sistemas integrados. Aplicaciones en diferentes lenguaje de programación y plataformas. Nuevos términos XML, WSDL, SOAP, XML-RPC, ebXML, JAXB, JAX-WS, JAX-RPC, JAX-RS Para que todo esto?
Citation preview
Servicios Web SOAP
Diego Armando Gómez M. [email protected] Sun Cer5fied Java Associated. Sun Cer5fied Java Programmer. Sun Cer5fied Web Component Developer. Sun Cer5fied Business Component Developer 5
Derechos reservados 2014
Introducción
S Computación distribuida. S Sistemas integrados. S Aplicaciones en diferentes lenguaje de programación y
plataformas. S Nuevos términos XML, WSDL, SOAP, XML-‐RPC, ebXML, JAXB, JAX-‐
WS, JAX-‐RPC, JAX-‐RS S Para que todo esto?
Que es un WebService?
S Un WebService es una pieza de soYware iden5ficada por un URI (Uniform Resource Iden5fier).
S Su medio de comunicación se fundamenta en el uso de XML.
S XML
S XML Namespace, XML Schema, Xpath, XSLT.
S SOAP, WSDL, eb-‐XML.
Computación distribuida
Client-Server(C/S) silos
Web-based computing
Servers
Clients
Clients
Servers
Internet
PDA Cell Phone
Server
Laptop Kiosk
Workstation
Web Services/Peer-to-Peer
SOA computing
Tradicional C/S vs. Servicios Web
" Within enterprise " Tied to a set of programming languages " Procedural " Usually bound to a particular transport " Tightly-coupled " Efficient processing (space/time)
" Between enterprises " Program language independent " Message-driven " Easily bound to different transports " Loosely-coupled " Relatively not efficient processing
Traditional C/S Web Service
Web Applica5on vs. Web Services
" User-to-program interaction " Static integration of components " Monolithic service
" Program-to-program interaction " Possibility of dynamic integration of components (in the future) " Possibility of service aggregation (in the future)
Web Application Web Service
Caracterís5cas de un Servicio Web. S Basado en XML. S Orientado a los mensajes. S Independiente del lenguaje de programación.
S Localización puede ser dinámica. S Ensamble dinámico y agregación de servicios dinámica.
S Accedidos por Internet. S Bajo acoplamiento. S Basado en estándares de la industria.
Ejemplo de uso de los Servicios Web
CRM
Logistica
Distribucion
Manofactura Internet XML
XML
XML
XML
“Crece la necesidad de un estándar liviano para intercambio de datos entre aplicaciones de negocio”
Estándares de los servicios Web
Arquitectura de Servicios Web simple
1. Service Registers PUBLISH
3. Client calls
Service BIND
2. Client Request Service Location
FIND
Web Service
Service Client
Registry
SOAP (Simple Object Access Protocol)
SOAP
S Simple Object Access Protocol
S Protocolo similar
S IIOP para CORBA
S JRMP para RMI
S XML es usado para codificación de datos.
S Protocolos basados en “texto” vs. Protocolos “binarios”
S Soporta XML-‐based RPC
QUE NO ES SOAP
S No es un modelo de componentes
S Este no remplaza objetos y componentes, ejemplo EJB, JavaBeans.
S No es un lenguaje de programación
S Este no remplaza a Java, Groovy
S No es una solución para todo.
S Este no remplaza otras tecnologías usadas en computación distribuida como RMI.
QUE DEFINE SOAP?
S Message Envelope
S Encoding Rules
S RPC Conven5on
S Binding with underlying protocols
Formato de mensaje SOAP SOAP Envelope
SOAP Header
SOAP Message
Primary MIME part
(text/xml)
Attachment
Attachment
SOAP Body
Header Entry
Header Entry
Body Entry
Body Entry
Attachment
SOAP Message Envelope S Encoding informa5on
S Header
S Op5onal
S Could contain context knowledge
S Security
S Transac5on
S Body
S RPC methods and parameters
S Document types
S Contains applica5on data
SOAP Message Envelope
S Reglas y expresiones de 5pos de datos definidos en XML
S Basado W3C XML Schema
S Valores simples
S int, string, char, double, float .
S enumera5ons, arrays de bites
S Valores complejos
S Structs, arrays, complex types
SOAP MESSAGES
WSDL (Web Services Descrip5on
Language)
QUE ES WSDL?
S Lenguaje de Descripción de Servicios Web
S Es un mecanismo para no5ficar los servicios (funcionalidades) que un sistema esta publicando y que son accesibles a terceros.
QUE ES WSDL?
S Endpoint se compone de dos partes
S Definición de operaciones y mensajes
S Protocolo de red, conectores y formato de mensajes.
S Porque esta separación?
S Mejora la reusabilidad.
PORQUE WSDL?
S Permite la comunicación automá5ca
S Maquinas pueden leer el WSDL
S Maquinas pueden invocar un servicio definido en el WSDL
S Descubrible por un registry.
S Arbitraje
S Herramientas de terceros pueden verificar la comunicación basado en el WSDL.
DEMO WSDL
S Operaciones mat
UDDI (Universal Descrip5on,
Discovery and Integra5on)
ARQUITECTURA SERVICIOS WEB
UDDI Registry
UDDI define una forma de publicar and encontrar información de servicios.
1. Service Registers PUBLISH
3. Client calls Service BIND
2. Client Request Service Location
FIND
Web Service
Service Client
UDDI (Universal Descrip5on, Discovery and Integra5on)
S “Paginas blancas” S Direcciones, contactos e iden5ficadores conocidos.
S “Paginas amarillas” S Categorizacion industrial.
S Industry: NAICS (Industry codes -‐ US Govt.) S Product/Services: UN/SPSC (ECMA) S Loca5on: Geographical taxonomy
S “Paginas verdes” S Información técnica de los servicios.
COMUNICACIÓN ENTRES SERVICIOS WEB
COMUNICACIÓN ENTRES SERVICIOS WEB
El WS es publicado para que desarrolle una única tarea.
Sistema que publica El WS
COMUNICACIÓN ENTRES SERVICIOS WEB
Sistema que publica El WS
Las otras aplicaciones “consumen” esos Servicios.
COMUNICACIÓN ENTRES SERVICIOS WEB Sistema que publica
El WS
Clientes
HTTP JMS
XMPP
<XML>
<XML>
FUNCIONAMIENTO “Sistemas de Empresa”
El sistema puede “mostrarle” a otros,
cuales funciones esta “publicando” usando
WSDL
<WSDL> “Sistemas Clientes”
FUNCIONAMIENTO “Mi Sistema”
Otro Sistema
Es posible “preguntar” que sistema
esta publicando un Servicio determinado a
Un sistema de directorio UDDI
WEB SERVICES FRAMEWORK PARA JAVAEE
JavaEE y los Web Services
B2B Applications
B2C Applications
Web Services
Wireless Applications
Application Server Enterprise Information
Systems
Existing Applications
JavaEE y los Web Services
S JavaEE S Es una arquitectura basada en diferentes estándares
(IIOP, RMI). S Lleva más de 13 años en el mercado, en un
momento en donde XML no era tan popular. S Los contenedores de aplicaciones Web proveen
mecanismos y librerías para soportar XML y SOAP (JAXP y JAX-‐RPC, JAX-‐WS, JAX-‐RS)
S POJO annota5on (JSR 181)
JavaEE5 Web Services Metadata.
S JavaEE S El contenedor provee la funcionalidad de WebServices
S @WebServices. S Solo basta con poner las anotaciones en las clases y se
convierten en WebServices.
S @WebMethod S Especificación JSR181
FRAMEWORKS
S Java provee un conjunto de u5lidades y librerías (Motores de Web Services) S AXIS S AXIS2 S Cel5x S Xfire S Apache CXF S Metro (glassfish project) S Spring Web Services S JBossWS
AXIS2
S Proyecto WS apache S Framework para construcción de aplicaciones cliente servidor SOAP
S Conjunto de Herramientas S Monitor de paquetes TCP/IP S WSDL2Java S Java2WSDL S hpp://ws.apache.org/axis2/
XFire
S Proyecto de codehaus. S Es un contenedor de Servicios Web S Usa un modelo de procesamiento SOAP messages via STAX.
S MyEclipse provee un conjunto de u5lidades para desarrollo con Xfire.
S hpp://xfire.codehaus.org/
METRO
S Proyecto de dev.java.net. S Soporta el estándar de JAX-‐WS. S Provee un alto rendimiento, extensible, fácil de usar.
S hpps://metro.dev.java.net/
CONCLUSIÓN
S Los servicios Web provee un nuevo paradigma de programación para comunicación de programa a programa.
S Los servicios web son basados en estándares abiertos.
S La plataforma JEE provee un gran soporte para el desarrollo de servicios Web.
CONCLUSIÓN
S Es posible que aplicaciones en diferentes lenguajes de programación ínter operen.
.Net Sistemas legados
PL/SQL
Java JEE
ENLACES
S hpp://java.sun.com/webservices/index.jsp S hpp://java.sun.com/blueprints/guidelines/designing_webservices/html/
S hpp://ws.apache.org/axis/ S hpp://xfire.codehaus.org/ S hpps://jax-‐ws.dev.java.net/
ENLACES
S hpp://webservices.xml.com/ S hpps://blueprints.dev.java.net/books.html S hpps://blueprints.dev.java.net/servlets/ProjectDocumentList?folderID=3401&expandFolder=3401&folderID=0
Información de contacto
S Si5o Web: www.vortexbird.com S Blog: hpp://blog.vortexbird.com S Contacto vía mail: [email protected] S Teléfonos: +57 -‐ (316 482 4629) S Cali, Colombia