El anuncio de soporte de Java en el Google App Engine ejemplifica las luces y las sombras de las plataformas como servicio dentro de lo que se ha venido denominando Cloud computing. Por un lado tenemos un movimiento razonable para facilitar el desembarco de muchas empresas que ya tienen aplicaciones empresariales en Java y, sobre todo, mucho “know how” alrededor de la tecnologÃa de Sun y mucho invertido en el ecosistema Java. Además se beneficia de la integración con muchas herramientas diseñadas para desarrollar en Java, desde Eclipse hasta Ant.
Pero además de ser un movimiento razonable, muestra claramente como apostar por plataformas como servicio del tipo Google App Engine también tiene sus “peros”: un entorno en el que se te dan muchas cosas dadas, pero poco flexible y en el que todo está acotado y decidido previamente por la plataforma. En el anuncio dejan claro que no se soporta Java Enterprise Edition por completo, entre otras cosas porque debajo de App Engine no hay bases de datos relacionales, asà que hay que olvidarse de JDBC o Hibernate, pero también de JMX, EJBs o de Struts. ¿Traducido para no desarrolladores? Un entorno que escala muy bien, a bajo coste, pero muy controlado para que no se “desmadre” basado sobre todo en librerÃas estándares, de las que también faltan algunas muy significativas.
En general, Google App Engine está todavÃa muy lejos de ser un producto maduro. Este soporte de Java puede atraer desarrolladores, sobre todo porque los hostings económicos que soporten Java escasean, pero difÃcilmente lo hará con empresas hasta que evolucione bastante. Como producto se sigue perfilando como un entorno muy controlado y limitado, lejos de la flexibilidad – y mayor complejidad – de las soluciones tipo “infraestructura como servicio” que ofrecen los web services de Amazon.
Para solicitar entrar en el beta test, appengine.google.com. Qué entra y qué no, en el grupo oficial. También lo comenta Nube blog.
En verdad el uso de AppEngine en mi trabajo de grado ha sido uno de los mayores dolores de cabeza, primero por las restricciones en cuanto busquedas, los cambios que tendrian que hacerse al modelo y el uso de Lucene para tener ‘full search support’ etc. Luego las restricciones y/o complicaciones para integracion con JAAS (no podÃa usar autentificacion mediante cuentas de google), como no logré configurarlo entonces usé ‘security-filter’ y otro lio con los ‘servlet filters’ ya que no capturaba algunas urls por su extensión .html. Luego de googlear buen tiempo encontré que la solución más fácil era cambiarle la extensión (ups que cosas) por .jsp para que pueda ser capturada por el filtro y cuando ya todo parecÃa solucionado, me di cuenta que al utilizar el ‘remember me’ generaba una excepción (error 500 por su puesto) porque sucede que el AppEngine tiene restricciones con el uso de la clase sun.misc.BASE64Encoder… Espero no chocar más con otras restricciones de este framework
Opino igualito, todavÃa están muy lejos de Amazon.