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.
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
[ES] Construyendo Servicios Web con JDeveloper
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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
7. 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).
8. 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.
9. 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.
10. 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.
11. 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.
12. 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)
13. 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
14. Crear y consumir servicios Web
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.
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.
16. 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.
17. 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.
19. 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.
21. 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.
23. 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.
25. 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.