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