Un Escenario de Ejemplo
Introducción
El siguiente escenario es un ejemplo de cómo podrían usarse los APIs de Java para XML y
cómo trabajan juntos. Parte de la riqueza de los APIs de Java para XML es que en muchos
casos ofrecen formas alternativas para hacer algo dejándonos así personalizar nuestro
código para encontrar las necesidades individuales. Esta sección apuntará algunos
ejemplos en que se podría haber utilizado un API alternativo y también ofrece las
razones por las que un API u otro podría ser una mejor elección.
Escenario
Supongamos que el propietario de una cadena de cafeterías, llamada "The Coffee Break",
quiere ampliar la línea de cafés que vende. Ha instruido a su manager de negocio para
que encuentre nuevos suministradores de café y obtenga sus precios al por mayor.
"The Coffee Break" puede analizar los precios y decidir qué nuevos cafés quiere traer
y a qué compañías quiere comprárselos. El manager asigna la tarea al ingeniero de
software de la compañía, que decide que la mejor forma de localizar nuevos
suministradores de cafés es buscarlos en el registro de negocios
ebXML, donde el "The Coffee Break" ya está registrado.
El ingeniero usa JAXR para enviar una consulta buscando
suministradores de café al por mayor. JAXR envía mensajes usando
JAXM en segundo plano, lo que se asegura que el registro será capaz
de recibirlo y entenderlo.
El registro ebXML recibirá la consulta y aplicará el criterio de
búsqueda del código JAXR a la información que tiene sobre las
organizaciones registradas. Cuando se complete la búsqueda, el registro enviará de
vuelta una lista de los distribuidores que venden café al por mayor.
El siguiente paso del ingeniero es diseñar una petición de lista de precios y eviarla a
cada uno de los distribuidores usando JAXM. Escribe una aplicación
que obtiene una conexión con el servicio de mensajería de la compañía para poder
enviar la petición. Luego crea un mensaje JAXM, le añade la
petición y lo envía.
Cada distribuidor de café recibe la petición y antes de enviar los precios actuales,
comprueba su servicio de stocks usando JAX-RPC para obtener los
plazos de entrega y precios para los los cafés. Basándose en los número obtenidos, los
distribuidores envían a "The Coffee Break" sus precios revisados en una hoja de precios
XML. Los vendedores usan XML porque de esa forma pueden usar una formato que es
conveniente para ellos y que sus compradores pueden procesar fácilmente incluso si
están utilizando diferentes sistemas de información.
Comparar Precios y Pedir Cafés
El ingeniero decide usar JAXB para procesar las listas de
precios. Las lista de distribuidores que devolvió el registro contenía información
de cómo obtener las DTDs que usan los distribuidores, y convenientemente, todos
usan un formulario estándard para la lista de precios. Como todos usan un DTD
estándar, el ingeniero puede crear un conjunto de clases a partir del DTD que aplica
a la lista de precios de todos los suministradores. (De otro modo, debería usar
SAX o DOM para hacer el procesamiento).
La aplicación del ingeniero trabajará con cada café como un objeto que
tiene una propiedad price y una propiedad
name. Después de ejemplarizar las clases, la
aplicación obtiene los precios de los objetos Coffee
y compara los precios envíados por los diferentes vendedores.
Cuando el propietario y el manager del negocio deciden con qué suministrador hacer
negocios, basándose en la comparación de precios del ingeniero, están listos para
envíar el pedido. Con JAXB, el ingeniero crea un nuevo formulario
de pedido XML basándose en las clases generadas desde el DTD de la lista de precios.
Este nuevo formulario de pedido que contiene sólo los cafés que el propietario quiere
comprar, se envía a los suministradores mediante JAXM. Cada
suministrador reconocerá la recepción del pedido mediante JAXM.
Vender Cafés por Internet
Mientras tanto, el "The Coffee Break" se ha estado preparando para extender su línea
de cafés. Necesita publicar un nuevo formulario de pedido/lista de precios en HTML
para su web site. Pero antes de poder hacer esto, la compañía necesita determinar
el precio que cobrará. El ingeniero usa los mismos objetos creados para comparar
precios y compone un formulario completo para aceder a cada precio y multiplicarlo
por el 125% para llegar al precio que cobrará el "The Coffee Break". Con unas pocas
modificaciones, la lista de precios al detalle se convertirá en el formulario de
pedido online.
Con los objetos conteniendo los nuevos precios al detalle, el ingeniero puede usar la
tecnología "JavaServer Pages TM" (JSP) para crear un formulario de
pedido HTML que los clientes pueden usar para pedir cafés online. El ingeniero accede a
los objetos desde la página JSP e inserta el nombre y el precio de
cada objeto Coffee en una tabla HTML sobre la página JSP.
El cliente introduce la cantidas de cada café que quiere pedir y pulsa el botón
Submit para enviar el pedido.
Conclusión
Aunque este escenario se ha simplificado para mantenerlo breve, ilustra cómo las tecnologías
XML están subiendo en el mundo de los servicios web. Y ahora, con los APIs de Java para XML
y la plataforma J2EE, se hace sencillo implementar servicios Web y escribir aplicaciones que
sean clientes de servicios Web.