SlideShare una empresa de Scribd logo
Simple Object Access Protocol


      » SOAP
.
• Índice
   − Introducción
   − Estructura de mensaje SOAP
   − Terminología SOAP
   − Intercambio de mensajes SOAP
   − Modelo de procesamiento SOAP
   − Visión inicial de la API Java para SOAP.
SOAP: Introducción
¿Qué es SOAP? Definición de la W3C
  − SOAP es un protocolo ligero diseñado para intercambiar
     información estructurada en un entorno descentralizado y
     distribuido.
   − SOAP usa tecnología XML para definir un framework de
     mensajería extensible proporcionando una estructura de
     mensaje que puede ser intercambiado sobre una variedad de
     protocolos subyacentes
   − El framework ha sio diseñado para ser independiente de
     cualquier modelo particular de programación y de
     implementaciones de semánticas específicas.
SOAP:Introducción
• ¿Qué es SOAP?
   − Simple Object Access Protocol (Protocolo simple de acceso a
     objetos)
   − Procotolo similar a
      • IIOP para CORBA
      • JRMP para RMI

   − Se usa XML para codificar datos
      • Protocolos basados en "texto" versus protocolos basados en datos
        "binarios"
   − Soporta RPC sobre XML (Remote Procedure Call)
SOAP:Introducción
• ¿Qué es SOAP
   − Sin estado
   − Paradigma de intercambio de mensajes en un sólo sentido
   − Las aplicaciones pueden crear patrones de interacción más
     complejos (solicitud/respuesta,solicitud/múltiples_respuestas,
     etc) combinando los intercambios de un sólo sentido con
     características proporcionadas po protocolos subyacentes y/o
     información específica de la aplicación.
   − Se enfoca en el transporte, no en la semántica de los datos
     transportados.
SOAP:Introducción
• ¿Qué no es SOAP?
   − No es un modelo de componentes
     • Por ello, no reemplaza ni a objetos ni a componentes (PEj. EJB,
       JavaBeans, etc)
  − No es un lenguaje de programación
     • Por ello, no reemplazará a Java

  − No es una solución para todo
     • Por ello, no reemplazará a otras tecnologías de computación distribuida
       como RMI
SOAP:Introducción
• Objetivos de diseño de SOAP
  − Simplicidad
  − Extensibilidad
     • Los nuevos estándares, definen nuevas semánticas

  − Características no soportadas (por definición)
     •   Recolección de basura distribuida
     •   Objetos por referencia
     •   Activación
     •   Procesamiento en lote de mensajes
Estructura de mensaje SOAP
Estructura de mensaje
• SOAP: Estructura de mensaje
Estructura de mensaje
• Sobre de mensaje SOAP (SOAP Message Envelope)
   − Información incluída
    • Namespaces
    • Información de codificado (Encoding)

  − Cabecera (HEADER)
    • Opcional
    • Puede ser manipulada por intermediarios

  − Cuerpo (body)
    • Obligatoria
    • Manipulado sólo por el receptor final.
Estructura de mensaje
• SOAP Header (<env:Header>)
   − Usado como mecanismo de extensión
     • Context (contexto)
     • Authentication (autenticación)
     • Transaction (transacción)
     • Management (gestión)
     • Muchas otras de alto nivel.

  − Hecho de Bloques de cabecera Header blocks (Header
    entities o entidades de cabecera)
  − La mayoría de las actividades estándar de los web services
    son básicamente definir entradas de cabecera estándar para
    un dominio particular
Estructura de mensaje
• Bloques (entradas) de cabecera SOAP
   − Elementos hijos de una cabecera SOAP
   − Diseñados PARA SOAP como anticipación a usos futuros
    POR intermediarios SOAP.
      • Pueden ser dirigidos individualmente a nodos SOAP
      • Permiten a los intermediarios SOAP proporcionar servicios de valor
       añadido.
   − Pueden ser inspeccionados, insertados, borrados o
    reenviados por nodos SOAP encontrados en el camino de un
    mensaje SOAP
Estructura de mensaje
• Cuerpo SOAP/SOAP Body(<env:Body>)
  − Hechos por bloques de cuerpo o body blocks (body
    entries)
  − Consumidos por receptores SOAP finales
  − Transportan la información extremo a extremo, que
    puede ser:
     • Datos de aplicación (documento XML)
     • Métodos RPC y parámetros
     • Errores SOAP (SOAP Fault)
Estructura de mensaje FAULT
• Fallo SOAP o SOAP Fault (<env:Fault>)
  − Usado para transportar información de error o
    estado
  − Tiene los siguientes subelementos:
    • faultcode
    • faultstring
    • faultactor
    • detail
Estructura de mensaje FAULT
• Códigos de fallo de SOAP predefinidos
  − VersionMismatch
     • Namespace inválido en el sobre SOAP

  − MustUnderstand
     • El receptor no puede tratar el bloque de cabecera SOAP
       mustUnderstand SOAP.
  − Client
     • Indica error en el lado del cliente

  − Server
     • Indica error en el lado servidor
Estructura de mensaje FAULT
• Ejemplo de fallo SOAP : mustUnderstand no puede tratarse
<env:Envelope xmlns:env='http://www.w3.org/2001/06/soap-envelope'>

  <env:Header>
   <abc:Extension1 xmlns:abc='http://example.org/2001/06/ext‘ env:mustUnderstand='1' />
   <def:Extension2 xmlns:def='http://example.com/stuff‘ env:mustUnderstand='1' />

  </env:Header>

  <env:Body>

   ...

  </env:Body>

</env:Envelope>
Estructura de mensaje FAULT
• Ejemplo de fallo SOAP: respuesta al fallo
  mustUnderstand
  <env:Envelope xmlns:env='http://www.w3.org/2001/06/soap-envelope'
                xmlns:f='http://www.w3.org/2001/06/soap-faults' >
     <env:Header>
        <f:Misunderstood qname='abc:Extension1‘ xmlns:abc='http://example.org/2001/06/ext'/>
        <f:Misunderstood qname='def:Extension2‘ xmlns:def='http://example.com/stuff'/>
     </env:Header>

     <env:Body>
         <env:Fault>
              <faultcode>MustUnderstand</faultcode>
              <faultstring> One or more mandatory headers not understood</faultstring>
         </env:Fault>
     </env:Body>
  </env:Envelope>
Estructura de mensaje
• ¿Dónde poner los datos, en el bloque Header o en el
  bloque body?
   − Decisión a tomar durante el desarrollo de la aplicación
   − Los bloques Header pueden ser dirigidos a varios nodos que
     podrían encontrarse en el camino desde el remitente hacia el
     destinatario final.
   − Los nodos SOAP intermedios pueden proporcionar servicios
     de valor añadido basados en los datos de las cabeceras.
Ejemplos
• Ejemplo de mensaje de solicitud (request) de un web
  service simple con un método decirHola que responde
  un “hola”

• SOAP Request
  <?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:ns1="http://hola/">
     <soapenv:Body>
       <ns1:decirHola>
             <arg0>le envío hola</arg0>
       </ns1:decirHola>
     </soapenv:Body>
  </soapenv:Envelope> .
Ejemplos
• Ejemplo de mensaje de solicitud (request) de un web
  service simple con un método decirHola que responde
  un “hola”
  <?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:ns1="http://hola/">
     <soapenv:Body>
       <ns1:decirHolaResponse>
             <return>Hola hola hola holaaaaaaa hola!</return>
       </ns1:decirHolaResponse>
     </soapenv:Body>
  </soapenv:Envelope>
Ejemplos
• Código fuente del Web Service
   @WebService()
   public class HolaWS {


   @WebMethod
       public String decirHola(String s) throws java.rmi.RemoteException {
           return "Hola hola hola holaaaaaaa " + s + "!";
       }
   }
Rápida introducción a los namespaces
Namespaces
• Namespaces XML
  − Se usan para evitar la colisión de nombres
  − Facilitan el agrupado de elementos.
      • Por ejemplo: las aplicaciones SOAP saben qué elementos pertenecen
        a un determinado namespace
   − Pueden usarse como esquema de control de versiones
   − Sintaxis
      • Declaración de Namespace
      • Elementos y atributos.
Namespaces
• Declaración de namespaces XML
  − Un prefijo se asocia con una URI
  − La asociación se defina como un atributo dentro de un
     elemento:
         xmlns:prefix
   − xmlns es la palabra reservada de Namespaces; el prefijo lo
     define el usuario.
         <classes xmlns:XMLclass=“ http://www.brandeis.edu/rseg-0151-g”>
         <XMLclass:syllabus>
         ...
         </XMLclass:syllabus>
         </ classes>
Namespaces
• Ejemplo de Namespaces SOAP
  <env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" >
  <env:Body>
       <m:GetLastTradePrice env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
        xmlns:m="http://example.org/2001/06/quotes">
       <symbol>DIS</symbol>
       </m:GetLastTradePrice>
  </env:Body>
  </env:Envelope>


• El namespace env (envelope) está definido en SOAP

• El namespace m es un namespace creado por
  nosotros.
Namespaces
• URI’s de Namespaces SOAP 1.1
  − Envelope
     • http://www.w3.org/2001/06/soap-envelope
     • Used for "version mismatch" check

  − Serialization
     • http://www.w3.org/2001/06/soap-encoding

  − mustUnderstand fault
     • http://www.w3.org/2001/06/soap-faults

  − Upgrade
     • http://www.w3.org/2001/06/soap-upgrade
Terminología utilizada en SOA
Terminología
• Conceptos del protocolo
  − Nodo SOAP
  − Rol (role) SOAP
  − Enlazado (binding) SOAP
  − Característica (feature) SOAP
      • Es una extensión del framework de mensajería SOAP:
          −   Confiabilidad
          −   Seguridad
          −   Correlación
   − Módulo SOAP
      • Realización de las características (features) SOAP
   − Patrón de intercambio de mensajes SOAP
   − Aplicación SOAP
Terminología
•   Nodo SOAP: Es el elemento que procesa la lógica necesaria para transmitir, recibir, procesar y/o
    reenviar un mensaje SOAP, cumpliendo el conjunto de convenciones definidas por la
    recomendación SOAP

•   Rol SOAP: Es la función esperada por un receptor SOAP en un mensaje SOAP.

•   Binding SOAP: El conjunto formal de reglas para transportar un mensaje SOAP dentro o encima
    de otro protocolo. Ejemplo de binding SOAP puede incluir transportar un mensaje SOAP dentro de
    HTTP.

•   Característica SOAP (SOAP feature): Es una extensión del framework de mensajería SOAP.
    Ejemplos de features pueden ser: "reliability" (confiabilidad), "security" (seguridad), "correlation"
    (correlación), "routing" (enrutado), y "Message Exchange Patterns" -patrones de intercambio de
    mensajes- (MEPs).

•   Módulo SOAP: Un módulo SOAP es una especificación que contiene la sintaxis y semántica
    combinada de los bloques de cabecera SOAP especificadas cumpliendo las reglas SOAP Module
    3.3

•   Patrón de intercambio de mensajes SOAP (MEP): Una plantilla para el intercambio de mensajes
    entre nodos SOAP habilitados mediante uno o más SOAP bindings.

•   Aplicación SOAP: Una entidad software que produce, consume o actúa de cualquier modo sobre
    mensajes SOAP conforme al modelo de proceso SOAP.
Terminología
• Conceptos de encapsulación de datos
  − Mensaje SOAP (SOAP message)
  − Sobre SOAP (SOAP Envelope)
  − Cabecera SOAP (SOAP Header)
  − Bloque de cabecera SOAP (SOAP Header block)
  − Cuerpo SOAP (SOAP Body)
  − Fallo SOAP (SOAP Fault)
Terminología
• Mensaje SOAP: Es la unidad básica de comunicación entre nodos SOAP

• Sobre SOAP: Es elemento de información más alto de un mensaje SOAP.

• Cabecera SOAP: Un conjunto de cero o más bloques de cabecera SOAP,
  cada uno de los cuales puede ser dirigido a cualquier destinatario SOAP
  dentro del camino SOAP.

• Bloque de cabecera SOAP: Un elemento de información que se usa para
  delimitar datos que constituyen una única unidad computacional lógica dentro
  de la cabecera SOAP.
   − El tipo de bloque de cabecera SOAP se identifica por el nombre XML expandido del
      elemento de información de bloque de cabecera.

• Cuerpo SOAP: Un conjunto de cero o más elementos de información dirigidos
  a un destinatario SOAP final en el camino del mensaje SOAP

• Fallo SOAP (SOAP Fault): Un elemento de información SOAP que contiene
  información de fallo generado por un nodo SOAP
Terminología
• Remitentes y destinatarios de mensajes. Conceptos
  − SOAP sender (remitente)
  − SOAP receiver (destinatario)
  − SOAP message path (camino o trayectoria del mensaje)
  − initial SOAP sender (remitente SOAP inicial)
  − SOAP intermediary
  − ultimate SOAP receiver (destinatario final)
Terminología
• SOAP sender: Un nodo SOAP que transmite un mensaje SOAP

• SOAP receiver: uno nodo SOAP que acepta un mensaje

• SOAP message path: un conjunto de nodos SOAP a través de los cuales pasa
  un mensaje SOAP. Incluye el initial SOAP sender, cero o más intermediarios
  SOAP y el ultimate SOAP receiver.

• Initial SOAP sender: el remitente SOAP que origina el mensaje SOAP en el
  punto inicial de un SOAP message path.

• SOAP intermediary: Funciona tanto como remitente SOAP y como destinatario
  SOAP. Procesa los bloques de cabecera SOAP que van dirigidos a él y los
  reenvía en la dirección del destinatario SOAP final.

• Ultimate SOAP receiver: El SOAP receiver que es el destino final del mensaje
  SOAP. Es responsable de procesar los contenidos del cuerpo SOAP y
  cualesquiera de los bloques de cabecera SOAP que ha recibido dirigidos a él.
Práctica
• Ejercicio:
   − Crear un web service llamado HolaWS, con un método
     “decirHola” que devuelva “Hola desde el curso SOA”.
   − Hacer un test web service para comprobar el intercambio de
     mensajes SOAP entre el proveedor del servicio y el
     consumidor.
Anexo
• Axis incluye un monitor SOAP:
   − Para ejecutarlo, basta hacer lo siguiente
      • Setenv
      • java org.apache.axis.utils.tcpmon 9090 localhost 8080
      • Esto arrancará una aplicación Java que permanecerás escuchando en
        el puerto 9090, y que reenviará todas las peticiones al puerto 8080
      • Para probar esta aplicación, es necesario que las aplicaciones que
        sean clientes de nuestros web services, a la hora de ser depuradas u
        observadas con esta herramienta, deben atacar al servidor al puerto
        9090.
Anexo
FINAL

Más contenido relacionado

La actualidad más candente

Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQLWilian
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con AjaxDesarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
juliocasal
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey Vortexbird
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
Vortexbird
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAPea2014G3
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
Israel Rey
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
Ingeniería Nica
 
Web service
Web serviceWeb service
Web service
aktivfinger
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
Iker Canarias
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
Vortexbird
 
Html,php
Html,phpHtml,php
Html,phpsoftyed
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
Héctor Fuente Pérez
 
Web Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAPWeb Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAP
ismaelmartincolmenarejo
 
Servicios web
Servicios webServicios web
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
Emilio Aviles Avila
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 

La actualidad más candente (20)

Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con AjaxDesarrollando Una Mejor Experiencia De Usuario Con Ajax
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
 
Servicios Rest con Jersey
Servicios Rest con Jersey Servicios Rest con Jersey
Servicios Rest con Jersey
 
Web services restful con JAX-RS
Web services restful con JAX-RSWeb services restful con JAX-RS
Web services restful con JAX-RS
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Web service
Web serviceWeb service
Web service
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVC
 
Html,php
Html,phpHtml,php
Html,php
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
 
Servicios web
Servicios webServicios web
Servicios web
 
Web Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAPWeb Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAP
 
Servicios web
Servicios webServicios web
Servicios web
 
Servidor web
Servidor webServidor web
Servidor web
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 

Destacado

Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nube
Juan Carlos Rubio Pineda
 
Introduccion Servicios Web
Introduccion Servicios WebIntroduccion Servicios Web
Introduccion Servicios Web
Ricardo Alonso Hurtado Mosquera
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
El Proyecto Polymer
El Proyecto PolymerEl Proyecto Polymer
El Proyecto Polymer
Javier Vélez Reyes
 
SOAP 5: Cuantificacion de Glicemia
SOAP 5: Cuantificacion de GlicemiaSOAP 5: Cuantificacion de Glicemia
SOAP 5: Cuantificacion de Glicemia
Shawn Tapia
 
3/9 soa y web services
3/9 soa y web services3/9 soa y web services
3/9 soa y web services
Juan Carlos Rubio Pineda
 
Componentes Web y El Framework Polymer
Componentes Web y El Framework PolymerComponentes Web y El Framework Polymer
Componentes Web y El Framework Polymer
Javier Vélez Reyes
 
Prontuário Orientado para o Problema - POP
Prontuário Orientado para o Problema - POPProntuário Orientado para o Problema - POP
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web ServicesGeneXus
 
Web services
Web servicesWeb services
Web services
Yesith Valencia
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
Redradix
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzado
brainybogota
 
Servidor API REST con Node.js
Servidor API REST con Node.jsServidor API REST con Node.js
Servidor API REST con Node.js
Adolfo Sanz De Diego
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
Javier Suárez Ruiz
 
SOAP
SOAPSOAP
Taller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScriptTaller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScript
Javier Vélez Reyes
 
Principios de Diseño de Componentes Web
Principios de Diseño de Componentes WebPrincipios de Diseño de Componentes Web
Principios de Diseño de Componentes Web
Javier Vélez Reyes
 
Arquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsArquitecturas Reactivas de Streams
Arquitecturas Reactivas de Streams
Javier Vélez Reyes
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JS
Javier Vélez Reyes
 

Destacado (20)

Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nube
 
Introduccion Servicios Web
Introduccion Servicios WebIntroduccion Servicios Web
Introduccion Servicios Web
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
El Proyecto Polymer
El Proyecto PolymerEl Proyecto Polymer
El Proyecto Polymer
 
SOAP 5: Cuantificacion de Glicemia
SOAP 5: Cuantificacion de GlicemiaSOAP 5: Cuantificacion de Glicemia
SOAP 5: Cuantificacion de Glicemia
 
3/9 soa y web services
3/9 soa y web services3/9 soa y web services
3/9 soa y web services
 
Componentes Web y El Framework Polymer
Componentes Web y El Framework PolymerComponentes Web y El Framework Polymer
Componentes Web y El Framework Polymer
 
Prontuário Orientado para o Problema - POP
Prontuário Orientado para o Problema - POPProntuário Orientado para o Problema - POP
Prontuário Orientado para o Problema - POP
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web Services
 
Web services
Web servicesWeb services
Web services
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzado
 
Servidor API REST con Node.js
Servidor API REST con Node.jsServidor API REST con Node.js
Servidor API REST con Node.js
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
SOAP
SOAPSOAP
SOAP
 
Taller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScriptTaller de Programación Funcional en JavaScript
Taller de Programación Funcional en JavaScript
 
Principios de Diseño de Componentes Web
Principios de Diseño de Componentes WebPrincipios de Diseño de Componentes Web
Principios de Diseño de Componentes Web
 
Arquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsArquitecturas Reactivas de Streams
Arquitecturas Reactivas de Streams
 
Programación Asíncrona en Node JS
Programación Asíncrona en Node JSProgramación Asíncrona en Node JS
Programación Asíncrona en Node JS
 

Similar a 7/9 Curso JEE5, Soa, Web Services, ESB y XML

7 soap y wsdl
7 soap y wsdl7 soap y wsdl
7 soap y wsdl
brccq
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
Luis Miguel De Bello
 
Formacinapachesolr tv3-150130071830-conversion-gate02
Formacinapachesolr tv3-150130071830-conversion-gate02Formacinapachesolr tv3-150130071830-conversion-gate02
Formacinapachesolr tv3-150130071830-conversion-gate02
Antonio Meléndez
 
Formación apache Solr
Formación apache SolrFormación apache Solr
Formación apache Solr
Juanjo Hernández
 
Servicios web
Servicios webServicios web
Servicios web
fermt18
 
SEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptxSEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptx
Francisco Javier Toscano Lopez
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
Iker Canarias
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.ppt
DiegoRomn20
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios
Joaquín Salvachúa
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx
JorgeVargas846804
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
Carlos Camacho
 
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsHernan Rengifo
 
SOAP y pruebas automatizadas.pptx
SOAP y pruebas automatizadas.pptxSOAP y pruebas automatizadas.pptx
SOAP y pruebas automatizadas.pptx
OttoObritzhauser1
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
LuisTenorio42
 

Similar a 7/9 Curso JEE5, Soa, Web Services, ESB y XML (20)

7 soap y wsdl
7 soap y wsdl7 soap y wsdl
7 soap y wsdl
 
Servicios web
Servicios webServicios web
Servicios web
 
Tema 3 0
Tema 3 0Tema 3 0
Tema 3 0
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Formacinapachesolr tv3-150130071830-conversion-gate02
Formacinapachesolr tv3-150130071830-conversion-gate02Formacinapachesolr tv3-150130071830-conversion-gate02
Formacinapachesolr tv3-150130071830-conversion-gate02
 
Formación apache Solr
Formación apache SolrFormación apache Solr
Formación apache Solr
 
Servicios web
Servicios webServicios web
Servicios web
 
SEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptxSEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptx
 
Presentacion ws
Presentacion wsPresentacion ws
Presentacion ws
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.ppt
 
Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios Ruby y las arquitecturas orientadas a servicios
Ruby y las arquitecturas orientadas a servicios
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
Java WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRsJava WebServices JaxWS - JaxRs
Java WebServices JaxWS - JaxRs
 
SOAP y pruebas automatizadas.pptx
SOAP y pruebas automatizadas.pptxSOAP y pruebas automatizadas.pptx
SOAP y pruebas automatizadas.pptx
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
 

Más de Juan Carlos Rubio Pineda

Gdg 2013
Gdg 2013Gdg 2013
Anexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldoAnexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldo
Juan Carlos Rubio Pineda
 
Continuidad de sistemas
Continuidad de sistemasContinuidad de sistemas
Continuidad de sistemas
Juan Carlos Rubio Pineda
 
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de AndalucíaRedes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
Juan Carlos Rubio Pineda
 
Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)
Juan Carlos Rubio Pineda
 
Zentyal curso-ja
Zentyal curso-jaZentyal curso-ja
Zentyal curso-ja
Juan Carlos Rubio Pineda
 
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de HuelvaSupercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Juan Carlos Rubio Pineda
 
Seminario metodologías agiles bloque II
Seminario metodologías agiles bloque IISeminario metodologías agiles bloque II
Seminario metodologías agiles bloque II
Juan Carlos Rubio Pineda
 
Seminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque ISeminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque I
Juan Carlos Rubio Pineda
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
Juan Carlos Rubio Pineda
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Guadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NXGuadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NX
Juan Carlos Rubio Pineda
 
Sistema de colas Condor en CICA
Sistema de colas Condor en CICASistema de colas Condor en CICA
Sistema de colas Condor en CICA
Juan Carlos Rubio Pineda
 

Más de Juan Carlos Rubio Pineda (17)

Gdg 2013
Gdg 2013Gdg 2013
Gdg 2013
 
Anexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldoAnexo seguridad tic-centrorespaldo
Anexo seguridad tic-centrorespaldo
 
Continuidad de sistemas
Continuidad de sistemasContinuidad de sistemas
Continuidad de sistemas
 
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de AndalucíaRedes lan2 : instrucción 1/2006 de la Junta de Andalucía
Redes lan2 : instrucción 1/2006 de la Junta de Andalucía
 
Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)Redes lan1: cableado (orden 25/9/2007)
Redes lan1: cableado (orden 25/9/2007)
 
Zentyal curso-ja
Zentyal curso-jaZentyal curso-ja
Zentyal curso-ja
 
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de HuelvaSupercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
Supercomputación y Cloud computing en CICA. Jornadas Universidad de Huelva
 
Seminario metodologías agiles bloque II
Seminario metodologías agiles bloque IISeminario metodologías agiles bloque II
Seminario metodologías agiles bloque II
 
Seminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque ISeminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque I
 
6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML6/9 Curso JEE5, Soa, Web Services, ESB y XML
6/9 Curso JEE5, Soa, Web Services, ESB y XML
 
2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML2/9 Curso JEE5, Soa, Web Services, ESB y XML
2/9 Curso JEE5, Soa, Web Services, ESB y XML
 
9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML9/9 Curso JEE5, Soa, Web Services, ESB y XML
9/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Curso Ejb3
Curso Ejb3Curso Ejb3
Curso Ejb3
 
Guadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NXGuadalinex con colinux y Tecnología Nomachine NX
Guadalinex con colinux y Tecnología Nomachine NX
 
Exportador S I C A C V N 1
Exportador S I C A  C V N 1Exportador S I C A  C V N 1
Exportador S I C A C V N 1
 
Sistema de colas Condor en CICA
Sistema de colas Condor en CICASistema de colas Condor en CICA
Sistema de colas Condor en CICA
 

Último

Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 

Último (20)

Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 

7/9 Curso JEE5, Soa, Web Services, ESB y XML

  • 1. Simple Object Access Protocol » SOAP
  • 2. . • Índice − Introducción − Estructura de mensaje SOAP − Terminología SOAP − Intercambio de mensajes SOAP − Modelo de procesamiento SOAP − Visión inicial de la API Java para SOAP.
  • 3. SOAP: Introducción ¿Qué es SOAP? Definición de la W3C − SOAP es un protocolo ligero diseñado para intercambiar información estructurada en un entorno descentralizado y distribuido. − SOAP usa tecnología XML para definir un framework de mensajería extensible proporcionando una estructura de mensaje que puede ser intercambiado sobre una variedad de protocolos subyacentes − El framework ha sio diseñado para ser independiente de cualquier modelo particular de programación y de implementaciones de semánticas específicas.
  • 4. SOAP:Introducción • ¿Qué es SOAP? − Simple Object Access Protocol (Protocolo simple de acceso a objetos) − Procotolo similar a • IIOP para CORBA • JRMP para RMI − Se usa XML para codificar datos • Protocolos basados en "texto" versus protocolos basados en datos "binarios" − Soporta RPC sobre XML (Remote Procedure Call)
  • 5. SOAP:Introducción • ¿Qué es SOAP − Sin estado − Paradigma de intercambio de mensajes en un sólo sentido − Las aplicaciones pueden crear patrones de interacción más complejos (solicitud/respuesta,solicitud/múltiples_respuestas, etc) combinando los intercambios de un sólo sentido con características proporcionadas po protocolos subyacentes y/o información específica de la aplicación. − Se enfoca en el transporte, no en la semántica de los datos transportados.
  • 6. SOAP:Introducción • ¿Qué no es SOAP? − No es un modelo de componentes • Por ello, no reemplaza ni a objetos ni a componentes (PEj. EJB, JavaBeans, etc) − No es un lenguaje de programación • Por ello, no reemplazará a Java − No es una solución para todo • Por ello, no reemplazará a otras tecnologías de computación distribuida como RMI
  • 7. SOAP:Introducción • Objetivos de diseño de SOAP − Simplicidad − Extensibilidad • Los nuevos estándares, definen nuevas semánticas − Características no soportadas (por definición) • Recolección de basura distribuida • Objetos por referencia • Activación • Procesamiento en lote de mensajes
  • 9. Estructura de mensaje • SOAP: Estructura de mensaje
  • 10. Estructura de mensaje • Sobre de mensaje SOAP (SOAP Message Envelope) − Información incluída • Namespaces • Información de codificado (Encoding) − Cabecera (HEADER) • Opcional • Puede ser manipulada por intermediarios − Cuerpo (body) • Obligatoria • Manipulado sólo por el receptor final.
  • 11. Estructura de mensaje • SOAP Header (<env:Header>) − Usado como mecanismo de extensión • Context (contexto) • Authentication (autenticación) • Transaction (transacción) • Management (gestión) • Muchas otras de alto nivel. − Hecho de Bloques de cabecera Header blocks (Header entities o entidades de cabecera) − La mayoría de las actividades estándar de los web services son básicamente definir entradas de cabecera estándar para un dominio particular
  • 12. Estructura de mensaje • Bloques (entradas) de cabecera SOAP − Elementos hijos de una cabecera SOAP − Diseñados PARA SOAP como anticipación a usos futuros POR intermediarios SOAP. • Pueden ser dirigidos individualmente a nodos SOAP • Permiten a los intermediarios SOAP proporcionar servicios de valor añadido. − Pueden ser inspeccionados, insertados, borrados o reenviados por nodos SOAP encontrados en el camino de un mensaje SOAP
  • 13. Estructura de mensaje • Cuerpo SOAP/SOAP Body(<env:Body>) − Hechos por bloques de cuerpo o body blocks (body entries) − Consumidos por receptores SOAP finales − Transportan la información extremo a extremo, que puede ser: • Datos de aplicación (documento XML) • Métodos RPC y parámetros • Errores SOAP (SOAP Fault)
  • 14. Estructura de mensaje FAULT • Fallo SOAP o SOAP Fault (<env:Fault>) − Usado para transportar información de error o estado − Tiene los siguientes subelementos: • faultcode • faultstring • faultactor • detail
  • 15. Estructura de mensaje FAULT • Códigos de fallo de SOAP predefinidos − VersionMismatch • Namespace inválido en el sobre SOAP − MustUnderstand • El receptor no puede tratar el bloque de cabecera SOAP mustUnderstand SOAP. − Client • Indica error en el lado del cliente − Server • Indica error en el lado servidor
  • 16. Estructura de mensaje FAULT • Ejemplo de fallo SOAP : mustUnderstand no puede tratarse <env:Envelope xmlns:env='http://www.w3.org/2001/06/soap-envelope'> <env:Header> <abc:Extension1 xmlns:abc='http://example.org/2001/06/ext‘ env:mustUnderstand='1' /> <def:Extension2 xmlns:def='http://example.com/stuff‘ env:mustUnderstand='1' /> </env:Header> <env:Body> ... </env:Body> </env:Envelope>
  • 17. Estructura de mensaje FAULT • Ejemplo de fallo SOAP: respuesta al fallo mustUnderstand <env:Envelope xmlns:env='http://www.w3.org/2001/06/soap-envelope' xmlns:f='http://www.w3.org/2001/06/soap-faults' > <env:Header> <f:Misunderstood qname='abc:Extension1‘ xmlns:abc='http://example.org/2001/06/ext'/> <f:Misunderstood qname='def:Extension2‘ xmlns:def='http://example.com/stuff'/> </env:Header> <env:Body> <env:Fault> <faultcode>MustUnderstand</faultcode> <faultstring> One or more mandatory headers not understood</faultstring> </env:Fault> </env:Body> </env:Envelope>
  • 18. Estructura de mensaje • ¿Dónde poner los datos, en el bloque Header o en el bloque body? − Decisión a tomar durante el desarrollo de la aplicación − Los bloques Header pueden ser dirigidos a varios nodos que podrían encontrarse en el camino desde el remitente hacia el destinatario final. − Los nodos SOAP intermedios pueden proporcionar servicios de valor añadido basados en los datos de las cabeceras.
  • 19. Ejemplos • Ejemplo de mensaje de solicitud (request) de un web service simple con un método decirHola que responde un “hola” • SOAP Request <?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:ns1="http://hola/"> <soapenv:Body> <ns1:decirHola> <arg0>le envío hola</arg0> </ns1:decirHola> </soapenv:Body> </soapenv:Envelope> .
  • 20. Ejemplos • Ejemplo de mensaje de solicitud (request) de un web service simple con un método decirHola que responde un “hola” <?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:ns1="http://hola/"> <soapenv:Body> <ns1:decirHolaResponse> <return>Hola hola hola holaaaaaaa hola!</return> </ns1:decirHolaResponse> </soapenv:Body> </soapenv:Envelope>
  • 21. Ejemplos • Código fuente del Web Service @WebService() public class HolaWS { @WebMethod public String decirHola(String s) throws java.rmi.RemoteException { return "Hola hola hola holaaaaaaa " + s + "!"; } }
  • 22. Rápida introducción a los namespaces
  • 23. Namespaces • Namespaces XML − Se usan para evitar la colisión de nombres − Facilitan el agrupado de elementos. • Por ejemplo: las aplicaciones SOAP saben qué elementos pertenecen a un determinado namespace − Pueden usarse como esquema de control de versiones − Sintaxis • Declaración de Namespace • Elementos y atributos.
  • 24. Namespaces • Declaración de namespaces XML − Un prefijo se asocia con una URI − La asociación se defina como un atributo dentro de un elemento: xmlns:prefix − xmlns es la palabra reservada de Namespaces; el prefijo lo define el usuario. <classes xmlns:XMLclass=“ http://www.brandeis.edu/rseg-0151-g”> <XMLclass:syllabus> ... </XMLclass:syllabus> </ classes>
  • 25. Namespaces • Ejemplo de Namespaces SOAP <env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" > <env:Body> <m:GetLastTradePrice env:encodingStyle="http://www.w3.org/2001/06/soap-encoding" xmlns:m="http://example.org/2001/06/quotes"> <symbol>DIS</symbol> </m:GetLastTradePrice> </env:Body> </env:Envelope> • El namespace env (envelope) está definido en SOAP • El namespace m es un namespace creado por nosotros.
  • 26. Namespaces • URI’s de Namespaces SOAP 1.1 − Envelope • http://www.w3.org/2001/06/soap-envelope • Used for "version mismatch" check − Serialization • http://www.w3.org/2001/06/soap-encoding − mustUnderstand fault • http://www.w3.org/2001/06/soap-faults − Upgrade • http://www.w3.org/2001/06/soap-upgrade
  • 28. Terminología • Conceptos del protocolo − Nodo SOAP − Rol (role) SOAP − Enlazado (binding) SOAP − Característica (feature) SOAP • Es una extensión del framework de mensajería SOAP: − Confiabilidad − Seguridad − Correlación − Módulo SOAP • Realización de las características (features) SOAP − Patrón de intercambio de mensajes SOAP − Aplicación SOAP
  • 29. Terminología • Nodo SOAP: Es el elemento que procesa la lógica necesaria para transmitir, recibir, procesar y/o reenviar un mensaje SOAP, cumpliendo el conjunto de convenciones definidas por la recomendación SOAP • Rol SOAP: Es la función esperada por un receptor SOAP en un mensaje SOAP. • Binding SOAP: El conjunto formal de reglas para transportar un mensaje SOAP dentro o encima de otro protocolo. Ejemplo de binding SOAP puede incluir transportar un mensaje SOAP dentro de HTTP. • Característica SOAP (SOAP feature): Es una extensión del framework de mensajería SOAP. Ejemplos de features pueden ser: "reliability" (confiabilidad), "security" (seguridad), "correlation" (correlación), "routing" (enrutado), y "Message Exchange Patterns" -patrones de intercambio de mensajes- (MEPs). • Módulo SOAP: Un módulo SOAP es una especificación que contiene la sintaxis y semántica combinada de los bloques de cabecera SOAP especificadas cumpliendo las reglas SOAP Module 3.3 • Patrón de intercambio de mensajes SOAP (MEP): Una plantilla para el intercambio de mensajes entre nodos SOAP habilitados mediante uno o más SOAP bindings. • Aplicación SOAP: Una entidad software que produce, consume o actúa de cualquier modo sobre mensajes SOAP conforme al modelo de proceso SOAP.
  • 30. Terminología • Conceptos de encapsulación de datos − Mensaje SOAP (SOAP message) − Sobre SOAP (SOAP Envelope) − Cabecera SOAP (SOAP Header) − Bloque de cabecera SOAP (SOAP Header block) − Cuerpo SOAP (SOAP Body) − Fallo SOAP (SOAP Fault)
  • 31. Terminología • Mensaje SOAP: Es la unidad básica de comunicación entre nodos SOAP • Sobre SOAP: Es elemento de información más alto de un mensaje SOAP. • Cabecera SOAP: Un conjunto de cero o más bloques de cabecera SOAP, cada uno de los cuales puede ser dirigido a cualquier destinatario SOAP dentro del camino SOAP. • Bloque de cabecera SOAP: Un elemento de información que se usa para delimitar datos que constituyen una única unidad computacional lógica dentro de la cabecera SOAP. − El tipo de bloque de cabecera SOAP se identifica por el nombre XML expandido del elemento de información de bloque de cabecera. • Cuerpo SOAP: Un conjunto de cero o más elementos de información dirigidos a un destinatario SOAP final en el camino del mensaje SOAP • Fallo SOAP (SOAP Fault): Un elemento de información SOAP que contiene información de fallo generado por un nodo SOAP
  • 32. Terminología • Remitentes y destinatarios de mensajes. Conceptos − SOAP sender (remitente) − SOAP receiver (destinatario) − SOAP message path (camino o trayectoria del mensaje) − initial SOAP sender (remitente SOAP inicial) − SOAP intermediary − ultimate SOAP receiver (destinatario final)
  • 33. Terminología • SOAP sender: Un nodo SOAP que transmite un mensaje SOAP • SOAP receiver: uno nodo SOAP que acepta un mensaje • SOAP message path: un conjunto de nodos SOAP a través de los cuales pasa un mensaje SOAP. Incluye el initial SOAP sender, cero o más intermediarios SOAP y el ultimate SOAP receiver. • Initial SOAP sender: el remitente SOAP que origina el mensaje SOAP en el punto inicial de un SOAP message path. • SOAP intermediary: Funciona tanto como remitente SOAP y como destinatario SOAP. Procesa los bloques de cabecera SOAP que van dirigidos a él y los reenvía en la dirección del destinatario SOAP final. • Ultimate SOAP receiver: El SOAP receiver que es el destino final del mensaje SOAP. Es responsable de procesar los contenidos del cuerpo SOAP y cualesquiera de los bloques de cabecera SOAP que ha recibido dirigidos a él.
  • 34. Práctica • Ejercicio: − Crear un web service llamado HolaWS, con un método “decirHola” que devuelva “Hola desde el curso SOA”. − Hacer un test web service para comprobar el intercambio de mensajes SOAP entre el proveedor del servicio y el consumidor.
  • 35. Anexo • Axis incluye un monitor SOAP: − Para ejecutarlo, basta hacer lo siguiente • Setenv • java org.apache.axis.utils.tcpmon 9090 localhost 8080 • Esto arrancará una aplicación Java que permanecerás escuchando en el puerto 9090, y que reenviará todas las peticiones al puerto 8080 • Para probar esta aplicación, es necesario que las aplicaciones que sean clientes de nuestros web services, a la hora de ser depuradas u observadas con esta herramienta, deben atacar al servidor al puerto 9090.
  • 36. Anexo
  • 37. FINAL