SlideShare una empresa de Scribd logo
1 de 19
Java Web Services
Introducción
http://javacuriosities.blogspot.com/
¿Que un Web Service?
Es un servicio que brinda una aplicación para poder integrarse con otras,
para lograr esto utiliza un conjunto de protocolos y estándares que sirven
para intercambiar datos entre ellas.
Java Web Services
Historia
Los Web Services surgieron ante una necesidad de estandarizar la
comunicación entre distintas plataformas (PC, Mainframe, Mac, etc.) y
lenguajes de programación (PHP, C#, Java, etc.).
Anteriormente se realizaron intentos de crear distintos estándares.
- DCOM (Distributed Componet Object Model): Modelo de componentes distribuidos
de Microsoft, una infraestructura de objetos distribuidos que permite a una
aplicación invocar componentes instalados en otro servidor.
- CORBA - ORB : Modelo de comunicación entre diferentes nodos usando TCP/IP.
Aunque era una tecnología que prometía mucho, tuvo algunos problemas en las
implementaciones e incompatibilidades.
Java Web Services
Tipos de Web Services
Java Web Services
W3C dice que los Web Services proveen una estandarización para
intercambiar información entre diferentes aplicaciones, que pueden correr o
no en la misma plataforma y que pueden estar o no desarrolladas en el
mismo lenguaje.
Los tres tipos de Web Services mas populares son:
▪ XML- RPC
▪ SOAP (JAX-WS)
▪ REST (JAX-RS)
XML- RPC
Java Web Services
Es un protocolo de llamada a procedimiento remoto que usa XML para
codificar los datos y HTTP como protocolo de transmisión de mensajes.
Especificación: http://xmlrpc.scripting.com/spec.html
Tipos de datos XML-RPC
Java Web Services
Nombre Tags de ejemplo Descripción
boolean <boolean>1</boolean> Valor Logico (0 o 1)
integer
<i4>42</i4>
o
<int>42</int>
Numero entero
double <double>-12.53</double> Numero de punto flotante de doble precisión
string <string>Hola mundo</string>
Cadena de caracteres. Debe seguir la
codificación XML.
date/time <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> Día y hora
array
<array>
<data>
<value><i4>1404</i4></value>
<value><string>Algo aquí</string></value>
<value><i4>1</i4></value>
</data>
</array>
Vector de valores, sin almacenar claves
struct
<struct>
<member>
<name>foo</name>
<value><i4>1</i4></value>
</member>
<member>
<name>bar</name>
<value><i4>2</i4></value>
</member>
</struct>
Vector de valores, almacenando claves
base64 <base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> Datos binarios codificados en base 64
nil <nil/> Valor nulo; una extensión XML-RPC
SOAP (Simple Object Access Protocol)
Java Web Services
SOAP
- SOAP es un protocolo para el intercambio de mensajes.
- Los mensajes SOAP, son independientes del sistema operativo, y pueden
transportarse sobre distintos protocolos FTP, SMTP, HTTP.
- Está basado en XML, a diferencia de DCOM y CORBA que son binarios; esto
facilita la lectura por parte de los humanos, pero también los mensajes resultan
más largos y, por lo tanto, considerablemente más lentos de transferir.
Ciclo de vida de un Web Service
Java Web Services
UDDI (Universal Description Discovery Integration)
Java Web Services
Mensaje SOAP
Java Web Services
▪ Envelope (Envoltorio)
- Define el comienzo y el final del mensaje
▪ Header (Encabezado)
- Atributos para procesamiento del mensaje
(seguridad, encriptación, etc.), el Header es
opcional
▪ Body (Cuerpo)
- Contiene el dato XML a enviar
▪ Fault (Errores)
- Se encuentra dentro del Body y es opcional.
Contiene la información sobre errores de
procesamiento del mensaje.
Mensaje SOAP
Java Web Services
Mensaje SOAP – Body
Java Web Services
WSDL (Web Services Description Language)
Java Web Services
El WSDL describe la interfaz pública a los servicios Web. Está basado en
XML y describe la forma de comunicación, es decir, los requisitos del
protocolo y los formatos de los mensajes necesarios para interactuar con los
servicios listados en su catálogo. Las operaciones y mensajes que soporta se
describen en abstracto y se ligan después al protocolo concreto de red y al
formato del mensaje.
WSDL - Estructura del documento
Java Web Services
Tipo de Implementaciones
Java Web Services
▪ Implementación Bottom-up:
- Se comienza por el código (por ejemplo, una clase Java)
- Code-First / Contract-Last
▪ Implementaciónes Top-down:
- Se comienza por el WSDL
- Code-Last / Contract-First
Bottom-Up
Java Web Services
Ventajas:
▪ Forma rápida de exponer funcionalidades usando WS.
▪ No requiere conocimiento de XMLSchema, WSDL.
Desventajas:
▪ El esquema es embebido en el WSDL.
▪ Los cambios en la interfaz son más difíciles de manejar.
▪ En el WSDL hay dependencias con la implementación (paquetes y
namespaces)
Top-Down
Java Web Services
Ventajas:
▪ Permite el desarrollo independiente y paralelo entre cliente y servicio.
▪ Cuando se crean nuevos tipos, éstos pueden ser reutilizados por otros
servicios.
▪ No se generan dependencias con la implementación
Desventajas:
▪ Requiere conocimiento de XMLSchema y WSDL
Herramientas
Java Web Services
El JDK incorpora múltiples herramientas para el trabajo relacionado con JAX-
WS y JAXB
- wsimport: Lee el WSDL y genera las clases Java para el Servidor y Cliente
- wsgen: Lee el SEI o la SBI y genera las clases Java necesarias para el Servidor,
ademas permite generar el WSDL.
- schemagen: Genera el schema luego de leer las clases Java.
- xjc: Lee un archivo XSD y genera las clases Java
Faults – Tipos de errores (Elemento faultcode)
Java Web Services
▪ VersionMismatch: El nombre namespace provisto es inválido.
▪ MustUnderstand: Uno de los elemento del header que tenia el atributo
mustUnderstand en 1 no fue entendido o no fue obedecido por el servidor.
▪ Client: El contenido del mensaje fue la causa del error. Posiblemente
porque se incluyo un mensaje mal formado o con información incompleta en
el mismo.
▪ Server: La causa del problema no tiene que ver con el contenido del
mensaje. Ejemplos de esto, es que el servidor no haya podido lograr una
conexión con un servidor de base de datos para procesar el mensaje.

Más contenido relacionado

La actualidad más candente (20)

8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML8/9 Curso JEE5, Soa, Web Services, ESB y XML
8/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
 
Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)Tutorial - REST con java (JAX-RS 2.0)
Tutorial - REST con java (JAX-RS 2.0)
 
JEE y Tomcat
JEE y TomcatJEE y Tomcat
JEE y Tomcat
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
SOAP y Web Services
SOAP y Web ServicesSOAP y Web Services
SOAP y Web Services
 
JDBC
JDBCJDBC
JDBC
 
Rest Conf Rails
Rest Conf RailsRest Conf Rails
Rest Conf Rails
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
SOA y Web Services
SOA y Web ServicesSOA y Web Services
SOA y Web Services
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Preguntas sr ii 071212
Preguntas sr ii 071212Preguntas sr ii 071212
Preguntas sr ii 071212
 
Soap eduardo cano
Soap  eduardo canoSoap  eduardo cano
Soap eduardo cano
 
Desarrollo y consumo de web services
Desarrollo y consumo de web servicesDesarrollo y consumo de web services
Desarrollo y consumo de web services
 
WCF for Dummies (Parte II)
WCF for Dummies (Parte II)WCF for Dummies (Parte II)
WCF for Dummies (Parte II)
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
Jdbc
JdbcJdbc
Jdbc
 
Creando endpoint http
Creando endpoint httpCreando endpoint http
Creando endpoint http
 
Rest
RestRest
Rest
 
Charla
CharlaCharla
Charla
 

Similar a Java Web Services Intro

Similar a Java Web Services Intro (20)

Cjee a-leccion-web services-jax-ws
Cjee a-leccion-web services-jax-wsCjee a-leccion-web services-jax-ws
Cjee a-leccion-web services-jax-ws
 
Servicios web
Servicios webServicios web
Servicios web
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
sesion01-traspas.pdf
sesion01-traspas.pdfsesion01-traspas.pdf
sesion01-traspas.pdf
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
Web services1
Web services1Web services1
Web services1
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
 
02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Servicios Web II.ppt
Servicios Web II.pptServicios Web II.ppt
Servicios Web II.ppt
 
Web services
Web servicesWeb services
Web services
 
Mapa Conceptual Servidores web
Mapa Conceptual Servidores webMapa Conceptual Servidores web
Mapa Conceptual Servidores web
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Miranda yesenia tarea3
Miranda yesenia tarea3Miranda yesenia tarea3
Miranda yesenia tarea3
 

Más de Luis Miguel De Bello (19)

Java Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas AdicionalesJava Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas Adicionales
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 02
Thread 02Thread 02
Thread 02
 
Thread 01
Thread 01Thread 01
Thread 01
 
Log4J
Log4JLog4J
Log4J
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Best Practices
Best PracticesBest Practices
Best Practices
 

Último

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 

Último (7)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 

Java Web Services Intro

  • 2. ¿Que un Web Service? Es un servicio que brinda una aplicación para poder integrarse con otras, para lograr esto utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre ellas. Java Web Services
  • 3. Historia Los Web Services surgieron ante una necesidad de estandarizar la comunicación entre distintas plataformas (PC, Mainframe, Mac, etc.) y lenguajes de programación (PHP, C#, Java, etc.). Anteriormente se realizaron intentos de crear distintos estándares. - DCOM (Distributed Componet Object Model): Modelo de componentes distribuidos de Microsoft, una infraestructura de objetos distribuidos que permite a una aplicación invocar componentes instalados en otro servidor. - CORBA - ORB : Modelo de comunicación entre diferentes nodos usando TCP/IP. Aunque era una tecnología que prometía mucho, tuvo algunos problemas en las implementaciones e incompatibilidades. Java Web Services
  • 4. Tipos de Web Services Java Web Services W3C dice que los Web Services proveen una estandarización para intercambiar información entre diferentes aplicaciones, que pueden correr o no en la misma plataforma y que pueden estar o no desarrolladas en el mismo lenguaje. Los tres tipos de Web Services mas populares son: ▪ XML- RPC ▪ SOAP (JAX-WS) ▪ REST (JAX-RS)
  • 5. XML- RPC Java Web Services Es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes. Especificación: http://xmlrpc.scripting.com/spec.html
  • 6. Tipos de datos XML-RPC Java Web Services Nombre Tags de ejemplo Descripción boolean <boolean>1</boolean> Valor Logico (0 o 1) integer <i4>42</i4> o <int>42</int> Numero entero double <double>-12.53</double> Numero de punto flotante de doble precisión string <string>Hola mundo</string> Cadena de caracteres. Debe seguir la codificación XML. date/time <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> Día y hora array <array> <data> <value><i4>1404</i4></value> <value><string>Algo aquí</string></value> <value><i4>1</i4></value> </data> </array> Vector de valores, sin almacenar claves struct <struct> <member> <name>foo</name> <value><i4>1</i4></value> </member> <member> <name>bar</name> <value><i4>2</i4></value> </member> </struct> Vector de valores, almacenando claves base64 <base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> Datos binarios codificados en base 64 nil <nil/> Valor nulo; una extensión XML-RPC
  • 7. SOAP (Simple Object Access Protocol) Java Web Services SOAP - SOAP es un protocolo para el intercambio de mensajes. - Los mensajes SOAP, son independientes del sistema operativo, y pueden transportarse sobre distintos protocolos FTP, SMTP, HTTP. - Está basado en XML, a diferencia de DCOM y CORBA que son binarios; esto facilita la lectura por parte de los humanos, pero también los mensajes resultan más largos y, por lo tanto, considerablemente más lentos de transferir.
  • 8. Ciclo de vida de un Web Service Java Web Services
  • 9. UDDI (Universal Description Discovery Integration) Java Web Services
  • 10. Mensaje SOAP Java Web Services ▪ Envelope (Envoltorio) - Define el comienzo y el final del mensaje ▪ Header (Encabezado) - Atributos para procesamiento del mensaje (seguridad, encriptación, etc.), el Header es opcional ▪ Body (Cuerpo) - Contiene el dato XML a enviar ▪ Fault (Errores) - Se encuentra dentro del Body y es opcional. Contiene la información sobre errores de procesamiento del mensaje.
  • 12. Mensaje SOAP – Body Java Web Services
  • 13. WSDL (Web Services Description Language) Java Web Services El WSDL describe la interfaz pública a los servicios Web. Está basado en XML y describe la forma de comunicación, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan después al protocolo concreto de red y al formato del mensaje.
  • 14. WSDL - Estructura del documento Java Web Services
  • 15. Tipo de Implementaciones Java Web Services ▪ Implementación Bottom-up: - Se comienza por el código (por ejemplo, una clase Java) - Code-First / Contract-Last ▪ Implementaciónes Top-down: - Se comienza por el WSDL - Code-Last / Contract-First
  • 16. Bottom-Up Java Web Services Ventajas: ▪ Forma rápida de exponer funcionalidades usando WS. ▪ No requiere conocimiento de XMLSchema, WSDL. Desventajas: ▪ El esquema es embebido en el WSDL. ▪ Los cambios en la interfaz son más difíciles de manejar. ▪ En el WSDL hay dependencias con la implementación (paquetes y namespaces)
  • 17. Top-Down Java Web Services Ventajas: ▪ Permite el desarrollo independiente y paralelo entre cliente y servicio. ▪ Cuando se crean nuevos tipos, éstos pueden ser reutilizados por otros servicios. ▪ No se generan dependencias con la implementación Desventajas: ▪ Requiere conocimiento de XMLSchema y WSDL
  • 18. Herramientas Java Web Services El JDK incorpora múltiples herramientas para el trabajo relacionado con JAX- WS y JAXB - wsimport: Lee el WSDL y genera las clases Java para el Servidor y Cliente - wsgen: Lee el SEI o la SBI y genera las clases Java necesarias para el Servidor, ademas permite generar el WSDL. - schemagen: Genera el schema luego de leer las clases Java. - xjc: Lee un archivo XSD y genera las clases Java
  • 19. Faults – Tipos de errores (Elemento faultcode) Java Web Services ▪ VersionMismatch: El nombre namespace provisto es inválido. ▪ MustUnderstand: Uno de los elemento del header que tenia el atributo mustUnderstand en 1 no fue entendido o no fue obedecido por el servidor. ▪ Client: El contenido del mensaje fue la causa del error. Posiblemente porque se incluyo un mensaje mal formado o con información incompleta en el mismo. ▪ Server: La causa del problema no tiene que ver con el contenido del mensaje. Ejemplos de esto, es que el servidor no haya podido lograr una conexión con un servidor de base de datos para procesar el mensaje.