[es] construyendo servicios web con jdeveloper

28
Let's Rock Java Fundamentos de Java Enterprise Edition con JDeveloper Eudris Cabrera Rodriguez Ingeniero Telemático Senior Software Developer Skype:eudriscabrera LinkedIn:http://www.linkedin.com/in/eudriscabrera Enero 2012, Santiago de los Caballeros, R. D.

Upload: eudris-cabrera

Post on 14-Jun-2015

2.239 views

Category:

Technology


3 download

DESCRIPTION

Los servicios web proporcionan a los clientes acceso neutral a los datos y otros servicios. JDeveloper le permite crear diferentes tipos de Servicios Web de forma rápida y sencilla. El objetivo de esta presentación es aprender a utilizar JDeveloper para construir y probar los servicios web, así como la forma de acceso a los servicios web desde su aplicación. Disclaimer: Está presentación está incompleta, no existen slides de las demostraciones, pero puede ser utilizada para aprender algunos conceptos.

TRANSCRIPT

Page 1: [ES] Construyendo Servicios Web con JDeveloper

Let's Rock Java

Fundamentos de Java Enterprise Edition con JDeveloper

Eudris Cabrera Rodriguez

Ingeniero TelemáticoSenior Software DeveloperSkype:eudriscabreraLinkedIn:http://www.linkedin.com/in/eudriscabrera Enero 2012, Santiago de los Caballeros, R. D.

Page 2: [ES] Construyendo Servicios Web con JDeveloper

Objetivos

Crear y consumir servicios Web : Aprender a utilizar JDeveloper para construir y probar los servicios web, así como la forma de acceso a los servicios web desde su aplicación.

Page 3: [ES] Construyendo Servicios Web con JDeveloper

Agenda● Introducción a los servicios web.● Crear y consumir servicios Web:

○ Construír un servicio a partir de un POJO con anotaciones.● Crear un servicio Web desde una clase Java:

○ crear un servicio Web para una clase de Java existentes y poner a prueba con el analizador de HTTP.

● Crear una aplicación Java Web Service desde un WSDL :○ Crear el código de Java para implementar un servicio Web

desde un WSDL.● Crear un servicio web desde un EJB.● Creación de un servicio Web proxy.● Consumir un servicio Web desde una página Web :

○ cómo crear un control de datos de un servicio Web y probarlo en servidor integrado de JDeveloper.

Page 4: [ES] Construyendo Servicios Web con JDeveloper

Introducción a los servicios web

Qué es un servicio web ?.Wikipedia:

Un servicio web (en inglés, Web service) es una pieza de software que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.

Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet.

Page 5: [ES] Construyendo Servicios Web con JDeveloper

Introducción a los servicios web

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web.

Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.

Page 6: [ES] Construyendo Servicios Web con JDeveloper

Introducción a los servicios web

OASIS, acrónimo de Organization for the Advancement of Structured Information Standards, es un consorcio internacional sin fines de lucro que orienta el desarrollo, la convergencia y la adopción de los estándares de comercio electrónico y servicios web.

http://es.wikipedia.org/wiki/OASIS_%28organizaci%C3%B3n%29

El World Wide Web Consortium, abreviado W3C, es un consorcio internacional que produce recomendaciones para la World Wide Web.

Está dirigida por Tim Berners-Lee, el creador original de URL (Uniform Resource Locator, Localizador Uniforme de Recursos), HTTP (HyperText Transfer Protocol, Protocolo de Transferencia de HiperTexto) y HTML (Lenguaje de Marcado de HiperTexto) que son las principales tecnologías sobre las que se basa la Web.

http://es.wikipedia.org/wiki/World_Wide_Web_Consortium

Page 7: [ES] Construyendo Servicios Web con JDeveloper

Introducción a los servicios web

Estándares empleados

Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios Web.

XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar.

SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio.Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol).

Page 8: [ES] Construyendo Servicios Web con JDeveloper

Introducción a los servicios web

WSDL (Web Services Description Language): Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web.

UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles.

WS-Security (Web Service Security): Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados.

Page 9: [ES] Construyendo Servicios Web con JDeveloper

Ventajas de los servicios web

● Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.

● Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.

● Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.

Page 10: [ES] Construyendo Servicios Web con JDeveloper

Inconvenientes de los servicios Web

● Para realizar transacciones no pueden compararse en su grado de desarrollo con los estándares abiertos de computación distribuida como CORBA (Common Object Request Broker Architecture).

● Su rendimiento es bajo si se compara con otros modelos de computación distribuida, tales como RMI (Remote Method Invocation), CORBA o DCOM (Distributed Component Object Model). Es uno de los inconvenientes derivados de adoptar un formato basado en texto. Y es que entre los objetivos de XML no se encuentra la concisión ni la eficacia de procesamiento.

● Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas reglas tratan de bloquear o auditar la comunicación entre programas a ambos lados de la barrera.

Page 11: [ES] Construyendo Servicios Web con JDeveloper

Razones para crear servicios Web

● La principal razón para usar servicios Web es que se pueden utilizar con HTTP sobre TCP (Transmission Control Protocol) en el puerto 80.

● Otra razón es que, antes de que existiera SOAP, no había buenas interfaces para acceder a las funcionalidades de otros ordenadores en red. Las que había eran ad hoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC (Remote Procedure Call), u otras APIs.

● Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectar al otro.

Page 12: [ES] Construyendo Servicios Web con JDeveloper

Plataformas

Servidores de aplicaciones para servicios Web:○ JBoss servidor de aplicaciones J2EE Open Source de Red

Hat inc.○ Oracle Fusion Middleware○ IBM Lotus Domino a partir de la versión 7.0○ Axis y el servidor Jakarta Tomcat (de Apache)○ ColdFusion MX de [[Macromedia]httpd ]○ Java Web Services Development Pack (JWSDP) de Sun

Microsystems (basado en Jakarta Tomcat)○ JOnAS (parte de ObjectWeb una iniciativa de código

abierto)○ Microsoft .NET○ Novell exteNd (basado en la plataforma J2EE)

Page 13: [ES] Construyendo Servicios Web con JDeveloper

Plataformas

○ WebLogic○ WebSphere○ JAX-WS con GlassFish○ Zope es un servidor de aplicaciones Web orientado a objetos

desarrollado en el lenguaje de programación Python○ VERASTREAM de AttachmateWRQ para modernizar o

integrar aplicaciones host IBM y VT○ PHP

Page 14: [ES] Construyendo Servicios Web con JDeveloper

Crear y consumir servicios WebLos servicios web proporcionan a los clientes acceso neutral a los datos y otros servicios. JDeveloper le permite crear diferentes tipos de Servicios Web de forma rápida y sencilla.

En el siguiente ejemplo vamos a crear un proyecto que contenga un POJO y añadir una anotación a un método para que se publique como un servicio web.

Page 15: [ES] Construyendo Servicios Web con JDeveloper

Crear y consumir servicios Web

Demo I

Page 16: [ES] Construyendo Servicios Web con JDeveloper

Crear un servicio Web desde una clase Java

Cualquier método de Java pueden ser publicados como un servicio Web. JDeveloper proporciona asistentes que tomar una clase de Java y sus métodos y crea un servicio web de esa clase.

En lugar de agregar manualmente las anotaciones del servicio web a la clase de Java, puede utilizar un asistente de JDeveloper para manejar eso para usted.

El asistente agrega las anotaciones de servicio web y te permite elegir los métodos que desea publicar como métodos web. Esta es una manera fácil de tomar una clase de Java existente y convertirlo en un servicio web.

Page 17: [ES] Construyendo Servicios Web con JDeveloper

Crear un servicio Web desde una clase Java

En este escenario, en lugar de agregar manualmente las anotaciones para crear el servicio web, se utiliza un asistente.

El asistente crea todas las anotaciones necesarias para publicar la clase como un servicio web.

Una vez que los pasos del asistente se completa, probar el servicio web usando el analizador de HTTP con el servidor de integración, tal como lo hizo antes.

Page 18: [ES] Construyendo Servicios Web con JDeveloper

Crear un servicio Web desde una clase Java

Demo II

Page 19: [ES] Construyendo Servicios Web con JDeveloper

Crear una aplicación Java Web Service desde un WSDL

Un archivo WSDL contiene información que define expuesto los métodos de servicio web. Puede utilizar un asistente de JDeveloper para interrogar a un archivo WSDL y crear todas las clases necesarias para la aplicación de esa definición.

Debido a que el WSDL no es más que una definición esqueleto de un servicio Web, no conseguiremos ninguna aplicación de los métodos, sólo las definiciones de método. Tendremos que agregar el código de la aplicación de los métodos.

Page 20: [ES] Construyendo Servicios Web con JDeveloper

Crear una aplicación Java Web Service desde un WSDL

Demo III

Page 21: [ES] Construyendo Servicios Web con JDeveloper

Crear un servicio web desde un EJB

Se puede utilizar cualquier clase de Java como un servicio Web, incluso un bean de sesión EJB.

Un bean de sesión normalmente implementa algún tipo de tarea o actividad empresarial. Por lo general, instancia o creado por una petición específica del cliente y por lo general, y existe sólo por la duración de una sola sesión.

Se pueden utilizar para cualquier cosa, pero son comúnmente utilizados para los cálculos de una sola vez, información de búsqueda, etc, especialmente cuando los datos no va a ser persistente.

Page 22: [ES] Construyendo Servicios Web con JDeveloper

Crear un servicio web desde un EJB

Demo IV

Page 23: [ES] Construyendo Servicios Web con JDeveloper

Creación de un servicio Web proxy

Si necesita acceder a un servicio web desde un cliente Java, se necesita un servicio web java proxy. JDeveloper proporciona un asistente que va a crear una para usted.

El propósito de un cliente proxy es facilitar el acceso a la API de servicios web como si se trata de un servicio local. Todas las necesidades de servicios web es el generador de proxy de servicios web WSDL. Aparte de eso, determina el API y genera las clases necesarias.

Page 24: [ES] Construyendo Servicios Web con JDeveloper

Creación de un servicio Web proxyDemo V

Page 25: [ES] Construyendo Servicios Web con JDeveloper

Consumir un servicio Web desde una página Web

Los servicios Web permiten a las empresas exponer la funcionalidad de negocio, independientemente de la plataforma o el lenguaje de la aplicación de origen.

La funcionalidad de negocio se expone de tal manera que se extrae de un mensaje redactado de la norma XML que puede ser reconocida y utilizada por otras aplicaciones. Oracle ADF proporciona una capa de acceso que se pueden utilizar para acceder a muchos tipos de servicios a las empresas o los datos, incluyendo Servicios Web.

Finalmente vamos a crear un control de datos de un servicio Web y probarlo en servidor integrado de JDeveloper.

Page 26: [ES] Construyendo Servicios Web con JDeveloper

Consumir un servicio Web desde una página Web

Demo VI

Page 27: [ES] Construyendo Servicios Web con JDeveloper

PREGUNTAS ?

Page 28: [ES] Construyendo Servicios Web con JDeveloper

WE ROCK JAVA !!!