Download Servicios Web con Java EE - Departamento de Ingeniería Telemática

Document related concepts
no text concepts found
Transcript
Introducción
Servicios Web con Java EE
“Un servicio web es un conjunto de protocolos y estándares
que sirven para intercambiar datos entre distintas
aplicaciones de software desarrolladas en lenguajes de
programación diferentes, y ejecutadas sobre cualquier
plataforma.”
Daniel López Fuentes
Laura Tolsada Bris
Sergio Tejero López
Irene Clemente Bueno
Wikipedia
Departamento de Ingeniería Telemática
Universidad Carlos III de Madrid
Software de
Comunicaciones
2007-2008
Software de
Comunicaciones
2007-2008
3
Introducción
Contenido
• Introducción
• Existen gran cantidad de implementaciones que ayudan
al desarrollo de Servicios Web para cada uno de los
lenguajes de programación.
• Descripción
• Desarrollo
• Sun provee de una serie de tecnologías en su versión
Java EE para el desarrollo de Servicios Web.
• Uso
• Éstas tecnologías son estándares de desarrollo, así
como API’s que especifican el comportamiento de
implementaciones.
• Conclusiones
• Referencias
• En las últimas especificaciones Sun crea una nueva
especificación que facilita el desarrollo de Web Services
a través de anotaciones.
Software de
Comunicaciones
2007-2008
2
Software de
Comunicaciones
2007-2008
4
Descripción
Contenido
• Introducción
• Descripción
• Desarrollo
• Uso
• Conclusiones
• Referencias
Software de
Comunicaciones
2007-2008
5
Software de
Comunicaciones
2007-2008
Descripción
Contenido
Principales características y ventajas
• Introducción
•
Envío de información mediante protocolos estándares.
•
Independencia del lenguaje, protocolo y plataforma
•
Alto nivel de interoperabilidad.
•
No requiere un conocimiento especializado de la implementación
del servicio.
•
Opera en forma asíncrona.
• Descripción
• Desarrollo
• Uso
• Conclusiones
• Referencias
Desventajas y limitaciones:
Software de
Comunicaciones
2007-2008
7
•
Limitaciones para realizar transacciones
•
Su rendimiento es bajo si se compara con otros modelos de
computación distribuida.
•
Pueden esquivar medidas de seguridad basadas en firewall
6
Software de
Comunicaciones
2007-2008
8
Software de
Comunicaciones
2007-2008
Desarrollo
Desarrollo
Tecnologías para Servicios Web en Java EE:
Desarrollo con JAX-WS:
•
Especificación de Implementación
http://jcp.org/en/jsr/detail?id=109
• JAX-WS es el sustituto de JAX-RPC.
•
JAX-WS: Java API for XML Web Services
https://jax-ws.dev.java.net/
• En lo que respecta al soporte para RPC, conceptualmente es
equivalente a JAX-RPC
•
JAX-RPC: Java API for XML-based RPC
https://jax-rpc.dev.java.net/
• Usa anotaciones para facilitar el desarrollo
•
JAXB: Java Architecture for XML Binding
https://jaxb.dev.java.net/
•
SAAJ: SOAP with Attachments API for Java
https://saaj.dev.java.net/
•
StAX:Streaming API for XML
http://java.sun.com/webservices/docs/1.6/tutorial/doc/SJSXP.html
•
Web Services Metadata for the Java Platform
http://jcp.org/en/jsr/detail?id=181
• Proporciona también soporte para invocaciones asíncronas
• Actualmente la mayor parte de las aplicaciones Java usan
JAX-RPC
• La implementación de referencia forma parte del proyecto
GlassFish de Sun y se llama JAX-WS RI (Reference
Implementation)
9
Software de
Comunicaciones
2007-2008
• Ejemplo:
http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2
11
11
Desarrollo
Contenido
Desarrollo con JAX-RPC:
• Introducción
• JAX-RPC es un API estándar en Java para implementar e
invocar operaciones de servicios Web SOAP mediante el
paradigma de RPC
• Descripción
• Forma parte del API de Java EE
• Uso
• Como cualquier otro API de Java EE, está formada por un
conjunto de interfaces (Paquete javax.xml.rpc)
• Conclusiones
• Desarrollo
• Referencias
• Existen múltiples implementaciones (por ejemplo Apache Axis)
• El código escrito por el desarrollador no depende de la
implementación concreta de JAX-RPC que se utilice
Software de
Comunicaciones
2007-2008
• Ejemplo:
http://java.sun.com/developer/technicalArticles/WebServices/g
etstartjaxrpc/index.html
10
10
Software de
Comunicaciones
2007-2008
12
12
Uso
Conclusiones
• Los Web Services son uno de los pilares de los proyectos de
integración, ya que permiten la comunicación entre
aplicaciones de distinto lenguaje ejecutadas sobre cualquier
plataforma.
• Cualquier desarrollo que incluya integración de distintos
sistemas, hoy en día utiliza Servicios Web.
• La arquitectura SOA favorece en gran medida el
mantenimiento y escalabilidad de las aplicaciones,
disminuyendo el acoplamiento de módulos.
• Java EE presenta dos API’s para el desarrollo de Web
services: JAX-RPC y JAX-WS.
• Muchas empresa que quieren vender acceso a un
servicio que ha desarrollado opta por los Servicios Web
como medida comercial.
• La mayoría de las implementaciones actuales de Web
Services utilizan JAX-RPC ya que JAX-WS todavía no está
extendido entre los desarrolladores.
• JAX-WS es más novedoso y simplifica en gran medida el
desarrollo de Web Services por el uso de anotaciones.
Software de
Comunicaciones
2007-2008
Software de
Comunicaciones
2007-2008
http://api.google.com/GoogleSearch.wsdl
13
Software de
Comunicaciones
2007-2008
15
Contenido
Contenido
• Introducción
• Introducción
• Descripción
• Descripción
• Desarrollo
• Desarrollo
• Uso
• Uso
• Conclusiones
• Conclusiones
• Referencias
• Referencias
14
14
Software de
Comunicaciones
2007-2008
16
16
Referencias
Referencias Proporcionadas:
• http://en.wikipedia.org/wiki/JAX-WS
• http://java.sun.com/blueprints/guidelines/designing_webservices/html/
• http://java.sun.com/webservices/jaxrpc/overview.html
• http://java.sun.com/javaee/5/docs/tutorial/doc/bnayl.html
Software de
Comunicaciones
2007-2008
17
Referencias
Otras Referencias:
Software de
Comunicaciones
2007-2008
•
http://es.wikipedia.org/wiki/Servicio_Web
•
http://www.desarrolloweb.com/articulos/1883.php
•
http://java.sun.com/webservices/docs/2.0/tutorial/doc/
•
http://edocs.bea.com/wls/docs70/webserv/index.html
•
http://www.alphaworks.ibm.com/tech/webservicestoolkit
•
http://www.oracle.com/technology/products/webservices_manager/index.html
•
http://www.programacion.com/java/tutorial/apis_xml/0/
•
http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/
•
http://www.dosideas.com/wiki/JAX-WS
•
http://tundidor.com/blog/?p=22
•
http://java.sun.com/javaee/technologies/webservices/
•
http://www.tic.udc.es/~fbellas/teaching/adoo/Tema3Apartado3.4.pdf
18