| Inicio | Perfil | Servicios | Offshore | Recursos | Mapa del sitio | Contáctenos |          
Artículo "Un Java más sencillo"

En este artículo, Bruce Tate nos presenta las iniciativas que han surgido recientemente en la comunidad Java para reducir la complejidad del desarrollo de aplicaciones en J2EE. Asimismo, nos indica cuáles serán las tendencias futuras para conseguir una mayor sencillez en la plataforma Java.



2.2. Contenedores ligeros

Los contenedores ligeros intentan proveer servicios para componentes que sean lo más sencillos posibles. Spring y Pico son los contenedores ligeros más populares. Si todavía no los conoce, quizás esté tentado de saltarse este apartado, pensando que lo último que necesita es otro contenedor más. No lo haga. Los contenedores ligeros como Spring se están difundiendo rápidamente, porque pueden resolver problemas que otros contenedores no pueden. Aunque estos frameworks no son tan conocidos como Hibernate, al menos uno de ellos puede serlo pronto. El equipo de Spring comienza a generar el ruido familiar de las primeras etapas de un proyecto exitoso de código abierto. Desde mi punto de vista, los aspectos más interesantes de Spring son la transparencia de los objetos, la existencia de servicios limpios y desconectables y su huella pequeña. Todos estos aspectos producen un framework sencillo y efectivo, con las siguientes características:

  • Transparencia. Cuando se construye una solución para programadores, lo más sencillo suele ser lo mejor. Spring no es invasor. De hecho, los objetos que se colocan en el contenedor son simples POJOs (“Plain Old Java Objects”), objetos tradicionales de Java (o JavaBeans, para ser más precisos). Los objetos no dependen del contenedor. Pueden ejecutarse fuera del mismo para facilitar las pruebas o llamar a otros objetos como POJOs.

  • Posibilidades de extensión. Spring soporta algunos servicios sencillos de forma integrada, incluyendo, por ejemplo, capas JTA y JDBC para proporcionar soporte a bases de datos y a transacciones. Además, Spring ofrece una API bien distribuida en capas y que puede ser extendida fácilmente por terceras partes. Por ejemplo, ya se pueden usar objetos Hibernate y JDO dentro de un contenedor Spring.

  • Una huella más pequeña. La sencillez de Sprint le permite una huella más pequeña. Así, puede usarse de maneras que no podría usarse un contenedor J2EE tradicional. Puede utilizarse fácilmente en la etapa de pruebas, incluso si planifica ejecutar muchas de ellas en una sola construcción. Se puede usar Spring en un cliente Web o en un dispositivo móvil.

Como los contenedores ligeros trabajan con objetos tradicionales de Java (POJOs), separan claramente las funciones de los diversos servicios. Por ello, son adecuados para la próxima generación de paradigmas de programación, como la programación orientada a aspectos.

Hemos visto que Hibernate y Spring reducen la complejidad del desarrollo de software, para lo cual se basan en abstracciones simplificadas. Ahora bien, hemos visto también que la sencillez y la potencia de una herramienta suelen oponerse. ¿Cómo sabemos que estas abstracciones son suficientemente potentes para un desarrollo empresarial?

2.3. Abstracciones con fugas

Está claro que hay una tendencia a retornar a abstracciones más sencillas y limpias, pero la sencillez no es suficiente. Todas las abstracciones tienen fugas, es decir, hay situaciones en que no pueden o no deberían abstraer la infraestructura subyacente. Por ejemplo, nunca será posible capturar toda la complejidad de la API nativa de una base de datos en un framework simplificado y un contenedor ligero nunca será capaz de hacer todo lo que hace un contenedor pesado. Por esta razón, es importante exponer la capa inmediatamente inferior a la nueva abstracción. Por ejemplo, en Hibernate no existe el concepto de procedimientos almacenados. En vez de esto, se permite el acceso completo a la conexión JDBC subyacente, para que se pueda llamar a los procedimientos almacenados desde fuera de Hibernate.

Además, una arquitectura adaptable y conectable, con bajo acoplamiento en las áreas apropiadas, permite desconectar los servicios que son inadecuados y conectar otros más robustos. Por ejemplo, Spring permite conectar y desconectar la persistencia y las transacciones.

Hasta ahora, hemos mencionado un par de proyectos de código abierto que simplifican el desarrollo de aplicaciones Java. A continuación, veremos lo que los principales vendedores J2EE están haciendo para soportar un paradigma Java más sencillo.

 

 
 

Ir a la página: 1   2   3   4    Siguiente >>

 Versión para imprimir

 

 

| Inicio | Perfil | Servicios | Offshore | Recursos | Mapa del sitio | Contáctenos|