Al introducir una especificación de Java para su propia tecnología de datos Infinispan, el proveedor de software de código abierto del sombrero rojo, ha generado un debate en las filas del JCP (Java Community Process) sobre la mejor forma de añadir caching distribuido al Java empresarial.Si se implementa, en la próxima versión de JEE (Java Enterprise Edition), la especificación de Red Hat podría reducir la necesidad de caches distribuidos de Java por separado, tales como Coherence de Oracle, GemStone de VMware o Ehcache -de código abierto- de Terracotta, señaló Craig Muzilla, vicepresidente y gerente general del negocios de middleware de Red Hat. “Lo que estamos proponiendo aquí es similar [a aquellos productos], pero será un estándar, e integrado con Java EE”, sostuvo el ejecutivo.
Pero aunque muchos en la comunidad empresarial de Java concuerdan en que se necesita de un cache distribuido in memory, no todos piensan que el enfoque de Red Hat es la mejor solución. “Aunque trata de aparecer como beneficioso para la comunidad, Red Hat en realidad está realizando un movimiento para su propio beneficio: hacer que su producto sea visible ante toda la comunidad”, señaló Amit Pandey, CEO de Terracotta.
El jueves pasado, Red Hat envió al JCP (Java Community Process) una JSR (Java Specification Request) sin numerar que describe la cache de datos, con la esperanza de que la organización incluya la tecnología en la Java Enterprise Edition 7, programada para el próximo año. El trabajo se basa en el aún experimental software de código abierto Infinispan de la compañía.
Al igual que otras caches distribuidas, Infinispan resuelve el problema de “cuellos de botella de input/output yendo hacia o desde la base de datos”, explicó Muzilla. Con Infinispan “uno puede cargar toda la base de datos en memoria, y relacionar esos datos a través de un formato objetivo-relacional. La aplicación no necesita volver continuamente a la base de datos”.
La necesidad de tales caches ha estado creciendo, especialmente en el floreciente campo de la computación en la nube, explicó Muzilla. Y la comunidad de Java empresarial ha estado de acuerdo.
“Hemos estado usando cache por una década en todas las capas de nuestra arquitectura. Sabemos cómo hacer caches, entonces ¿por qué no especificarlos?”, escribió Antonio Goncalves, desarrollador que es parte del grupo de expertos de Java EE 6 del JCP, en una bastante discutida “lista de deseos” en línea sobre características que él consideraba que deberían incluirse en Java EE 7.
Otros actores también se incomodan
Sin embargo, Red Hat no fue la única organización en responder a Goncalves. Otro grupo, conformado por ingenieros de Terracotta, Oracle e incluso Red Hat, ha estado trabajando en la actualización del JSR-107, un viejo e inactivo borrador de estándar para el cache de Java.
Aunque nunca fue plenamente adoptado en Java EE, el JSR-107 ha influido en el diseño de productos cache de Java de compañías como Terracotta y Oracle. Ahora el trabajo sobre esta especificación ha comenzado de nuevo, Terracotta está trabajando en una implementación del JSR-107 para su software ‘buque insignia’ Ehcache. “Hay mucho trabajo que se ha hecho en el JS-107. Es inusual que alguien venga con un producto completamente sin probar y sin adoptar, e intente convertirlo en el estándar”, sostuvo Pandey de Terracotta.
El personal de Red Hat, sin embargo, se ha mostrado impaciente por el JS-107. “Ha estado inactivo por mucho tiempo, está desactualizado, y la comunidad no se encuentra entusiasmado por este estándar”, escribió Manik Surtani, ingeniero de Red Hat, en una entrada de blog. Pandey criticó a Infinispan por ser difícil de implementar. “Los data grids son bastante complejos, usados por un pequeño nicho de tipos en aplicaciones de gama alta. Los usuarios en general encuentran que es muy difícil de usar”, indicó el ejecutivo.
Infinispan es “solo una arquitectura para hacer un sistema distribuido. En lo que nos estamos enfocando con el JSR-107 es simplemente en hacer las interfaces”, añadió Greg Luck, chief technology officer de Ehcache de Terracotta, quien se encuentra involucrado en el esfuerzo de JSR-107.
“Lo sorprendente no es que Red Hat quiera crear una especificación de estándar parta los data grids, sino que estén tratando de reemplazar el JSR-107, cuando ellos bien saben los trabajos que actualmente se están realizando”, sostuvo Luck.