sábado, 9 de abril de 2011

Transacciones con Servicios Web

En el diseño de una una aplicación con procesos que modifican información en una base de datos es fundamental implementar el uso de transacciones, de forma que siempre se garantice que las operaciones se realizan de forma atómica, consistente, aislada y durable (principios ACID).

Para el desarrollo de una aplicación en Java se tienen diversas alternativas para la creación y propagación de la transacción entre diferentes procesos, tanto de forma declarativa como programática. Por ejemplo usando Java Persistence API (JPA), el estándar definido dentro de Java EE, o empleando otras alternativas como el framework Spring para la gestión de transacciones.

miércoles, 6 de abril de 2011

Servicios Web en Java

Esta es una de las definiciones que se pueden encontrar sobre un servicio web:

"Un servicio web (en inglés, web service) es 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. 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."

Al estar basado en la interoperabilidad el desarrollo de Servicios Web puede realizarse en diferentes entornos de desarrollo como Java o .NET.

Si nos centramos en el mundo Java, para el desarrollo de un servicio web se pueden emplear diferentes frameworks, por ejemplo, Apache Axis, Apache Axis2, Apache CFX o GlassFish Metro. Estas implementaciones están basadas en alguna de las versiones del modelo de programación estandarizado dentro de la Comunidad Java.

Es interesante conocer la evolución de la especificación del modelo de programación de servicios web en Java, pues puede permitir identificar las características y compatibilidad, dentro de un mismo desarrollo, en el caso de utilizar diferentes frameworks.