SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 Ajaxjuliocasal
 
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-RSVortexbird
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAPea2014G3
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura RestIsrael Rey
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones JavaIker Canarias
 
Servicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCServicios Web Rest con Spring MVC
Servicios Web Rest con Spring MVCVortexbird
 
Html,php
Html,phpHtml,php
Html,phpsoftyed
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Phputs
 

Was ist angesagt? (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
 

Andere mochten auch

Ebe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeEbe2013: productividad conherramientas en la nube
Ebe2013: productividad conherramientas en la nubeJuan Carlos Rubio Pineda
 
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 XMLJuan Carlos Rubio Pineda
 
SOAP 5: Cuantificacion de Glicemia
SOAP 5: Cuantificacion de GlicemiaSOAP 5: Cuantificacion de Glicemia
SOAP 5: Cuantificacion de GlicemiaShawn Tapia
 
Componentes Web y El Framework Polymer
Componentes Web y El Framework PolymerComponentes Web y El Framework Polymer
Componentes Web y El Framework PolymerJavier Vélez Reyes
 
144 Rest Web Services
144 Rest Web Services144 Rest Web Services
144 Rest Web ServicesGeneXus
 
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 avanzadobrainybogota
 
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 JavaScriptJavier 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 WebJavier Vélez Reyes
 
Arquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsArquitecturas Reactivas de Streams
Arquitecturas Reactivas de StreamsJavier 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 JSJavier Vélez Reyes
 

Andere mochten auch (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
 

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

7 soap y wsdl
7 soap y wsdl7 soap y wsdl
7 soap y wsdlbrccq
 
Formacinapachesolr tv3-150130071830-conversion-gate02
Formacinapachesolr tv3-150130071830-conversion-gate02Formacinapachesolr tv3-150130071830-conversion-gate02
Formacinapachesolr tv3-150130071830-conversion-gate02Antonio Meléndez
 
Servicios web
Servicios webServicios web
Servicios webfermt18
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a TomcatIker Canarias
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.pptDiegoRomn20
 
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
 
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 2014Carlos 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.pptxOttoObritzhauser1
 
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.pptxLuisTenorio42
 

Ähnlich wie 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
 

Mehr von 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íaJuan 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 HuelvaJuan 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 IJuan 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 XMLJuan 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 XMLJuan 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 XMLJuan Carlos Rubio Pineda
 
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 NXJuan Carlos Rubio Pineda
 

Mehr von 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
 

Kürzlich hochgeladen

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 

Kürzlich hochgeladen (20)

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 

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