649 visualizaciones desde el 13 de Febrero del 2019
347,8 KB
62 paginas
Creado hace 23a (18/04/2002)
5.2 JAX-RPC. Caso de estudio: Apache
Axis
Introducción (1)
n WSDL
n Lenguaje (aplicación XML) para especificar interfaces
remotos
n El compilador de WSDL permite generar los stubs y
skeletons para poder invocar e implementar servicios web
n JAX-RPC
n API de programación estándar en Java para implementar e
invocar operaciones de Servicios Web mediante el
paradigma de los RPCs
n La especificación todavía no está terminada
n Estas transparencias se basan en la versión 0.7 de la
especificación
n Trabajaremos con Apache Axis
n Implementación OpenSource y gratuita de JAX-RPC
n Estas transparencias se basan en la versión Beta 1 de Axis
Introducción (2)
n WSDL es un lenguaje complejo
n Afortunadamente, casi todas las APIs basadas en
RPCs (ej.: JAX-RPC) permiten
n Definir una interfaz remota en el propio lenguaje de
implementación
n Usar un compilador para generar el documento WSDL a
partir del interfaz remoto
n El documento WSDL generado es útil para que un cliente
(quizás escrito en un lenguaje distinto al del servidor) pueda
usar su compilador de WSDL para obtener el stub del
interfaz remoto
Introducción (3)
n Con JAXP-RPC ...
Interfaz Java
Compilador Java
Compilador Java2WSDL
Documento WSDL
Compilador WSDL2Java
Stubs, skeletons y tipos Java
Introducción (4)
n Modelos de implementación de servicios web
n Modelo basado en servlets (aplicación web J2EE)
n Modelo basado en EJB
n Modelo basado en J2SE
n Modelos de implementación de clientes
n Modelo basado en J2EE (aplicación web J2EE o EJB)
n Modelo basado en J2SE
n Estudiaremos la siguiente combinación
HTTP
Internet
HTTP
war
Aplicaciones web
Cliente J2SE
Servidor web J2EE
Introducción (5)
n Servidor (contenedor) de aplicaciones web J2EE
n J2EE incluye un API para implementar aplicaciones web en
Java
n API de servlets y JSP
n Una aplicación web puede incluir uno o varios servicios web
(o puede contener sólo servicios web)
n Cada aplicación web se empaqueta en un fichero war
n Un servidor de aplicaciones web puede tener varias
aplicaciones web instaladas
n Implementar un servicio web sólo consiste en hacer una
clase que implementa el interfaz remoto, y empaquetar ésta
y las clases generadas por el compilador de WSDL a Java
que requiere la implementación del servicio en el fichero
war
n Axis sólo implementa este modelo de programación de
servicios web
Introducción (y 6)
n ¿ Qué es Axis ?
n Un conjunto de librerías (ficheros jar) que se han de
instalar en el servidor de aplicaciones web
n Incluye
n Herramientas (ej.: compiladores Java2WSDL y WSDL2Java)
n Un servlet que
n Recibe las peticiones SOAP sobre HTTP que envían los clientes
n Invoca la operación correspondiente sobre el servicio web
n Devuelve una respuesta SOAP sobre HTTP con el resultado de la
operación
n Se puede instalar en cualquier servidor de aplicaciones web
J2EE
n En particular, usaremos Apache Tomcat
Ejemplo StockQuote
n Usaremos el ejemplo StockQuote para ilustrar JAX-RPC
n Paquetes es.udc.fbellas.corbaws.stockquote.{wsdl,
client}
n Servicio Web que ofrece una interfaz con una operación que a
partir de un conjunto de identificadores de valores bursátiles
devuelve sus cotizaciones
n Cada cotización incluye
n Su identificador
n Su valor
n El número de segundos de antigüedad que tiene el valor (el valor
Definición de mensajes y puertos – Comentarios (1)
n Definición de mensajes
n Especifica los mensajes que se pueden intercambiar clientes
y servidores
n Cada mensaje consta de “partes”, donde cada parte
especifica un parámetro del mensaje, un valor de retorno o
una excepción
n Definición de puertos
n Un puerto especifica un conjunto de operaciones
n Cada operación indica el mensaje de entrada (petición del
cliente al servicio), el de salida (respuesta del servicio si no
ocurre ninguna excepción) y los posibles mensajes fault
(excepciones) que puede devolver la operación
Definición de mensajes y puertos – Comentarios (y 2)
n Definición de puertos (cont)
n Tipos de parámetros (idem CORBA)
n In: parte que sólo aparece en un mensaje de entrada
n Out: parte que sólo aparece en un mensaje de salida
n Inout: parte que aparece en un mensaje de entrada y salida
Comentarios de: 5.2 JAX-RPC. Caso de estudio: Apache Axis (0)
No hay comentarios