No hay nada de que sorprenderse, teniendo en cuenta la cantidad de aplicaciones empresariales que actualmente se encuentran en producción desarrolladas en lenguaje de programación Java. Desde el portal “The Register” y de la mano de Rob Blackwell (R&D Director en Two10degrees) nos llega una explicación de lo más coherente a dicho echo, aportando una visión personal de los pros y los contras de que dicho lenguaje se encuentre en la plataforma Windows Azure que pasamos a traducir benévolamente.
La elección de Windows Azure
Hemos de pensar que Java ha sido (y aún es a día de hoy) una plataforma de desarrollo muy popular en estos últimos 10 años, y son muchas las organizaciones que cuentan con aplicaciones empresariales en el citado lenguaje. Con la desaparición de Sun Microsystems, Microsoft ha visto una buena oportunidad de negocio al permitir la integración de dichas aplicaciones en su entorno Cloud. Este movimiento favorece que las empresas migren a la nube, ya que les aporta una manera menos costosa y difícil de consolidar la infraestructura de los departamentos IT con el consiguiente ahorro de costes.
La verdad es que quedan muy bien posicionados tanto la plataforma Windows Azure como SQL Server Azure de cara a futuras migraciones a la nube.
Aplicaciones Web Java
Estas aplicaciones casi siempre se han implementado mediante Servlets o bien mediante JSP (Java Server Pages) ejecutándose en entornos Tomcat, JBoss o Jetty. La buena jugada de Microsoft ha sido el proporcionar diversos aceleradores para integrar dichas aplicaciones en la nube. Buena prueba de ello son Windows Azure Tomcat Solution Accelerator y Windows Azure Jetty Solution Accelerator, aunque actualmente también disponemos tecnologías como AzureRunMe, que permiten disponer de un marco completamente personalizable y abierto para la nube, al mismo tiempo que funciona con una gran variedad de tecnologías y entorno de aplicaciones.
Ya sabemos que las aplicaciones web no deberían casarse con ninguna tecnología en concreto, pero las aplicaciones de Java en la actualidad incluyen el estado de sesión compartida, por lo que en determinadas ocasiones se encuadran en determinadas herramientas o lenguajes. Un ejemplo del buen aprovechamiento de lo mencionado es el uso de Atomus TomcatAzureSessionManager el cual permite disponer de la información persistente de las sesiones a la tabla de almacenamiento de Windows Azure.
Hacemos ver este echo, ya que las sesiones persistentes no se encuentran soportadas en la plataforma Windows Azure, pero en la actualidad ya hay algunas soluciones que permiten dicha integración, como es el caso de Windows Azure Sticky HTTP Session Router de Ryan Dunn, que nos muestra como crear un socket de servidor que redirecciona las sesiones HTTP a una instancia en particular corriendo en Windows Azure, proceso por el cual se permite disponer de sesiones HTTP persistentes.
Bases de datos relacionales
Una aplicación Java puede ser implementada y trabajar con cualquier base de datos, estableciendo su independencia con respecto del sistema gestor relacional. Utilizar un entorno de base de datos Microsoft SQL Azure es tan simple como pasar a utilizar un driver JDBC, el cual esta oficialmente soportado para SQL Azure. Si a esto le unimos el echo de que migrar nuestro entorno relacional SQL Server a un entorno SQL Azure es tan simple como utilizar la herramienta SQL Azure Migration Wizard, tenemos el escenario de destino ideal. Esta última herramienta es también utilizable en el proceso de conversiones desde MySQL.
Almacenamiento
Las formas de almacenamiento de Windows Azure son Binary Large Objects (Blobs), tablas y colas. Cualquiera de estos tipos de almacenamiento se encuentra disponible programáticamente mediante Windows Azure SDK for Java. Los Blobs son una alternativa escalable y barata de almacenar archivos de documentos y pueden ser fácilmente incorporados a la red de distribución de contenido de Windows Azure. Las tablas pueden ser una alternativa más escalable para las bases de datos relacionales almacenando la información en formato tabular y, por último, las colas son una forma útil de distribuir el trabajo en función de los roles de los trabajadores.
Herramientas
Técnicamente, es posible desarrollar aplicaciones Azure en Mac OS X o Linux, pero aún es más fácil desarrollarlas en un entorno Windows. La administración del portal de Windows Azure requiere Silverlight y parece funcionar mejor en Internet Explorer. Microsoft y Soyatec proporcionan Windows Azure Tools for Eclipse. A su vez, si nos encontramos familiarizados con PowerShell, podemos disponer de la administración y gestión de Windows Azure mediante Windows Azure Platform PowerShell Cmdlets. Para los que prefieran entorno gráfico, se recomienda utilizar las herramientas Cerebrata.
¿Cuáles son las desventajas?
-
Recientemente se ha cambiado el número de puertos externos TCP por máquina virtual - antes sólo se permitían cinco puertos externos TCP por máquina virtual en la definición del servicio. Muchas pilas de Java utilizan los puertos libremente para todo, desde JMX, JCA, clustering, etc.
Abrazando la nube
Mover una aplicación Java a la nube es sólo el primer paso. Para beneficiarnos real y económicamente de la nube necesitamos hacer uso tanto de sus características como de su arquitectura. Una pequeña cantidad de correcciones en una aplicación a menudo puede permitir una mejor escalabilidad horizontal y un mejor uso de pequeñas y poco costosas máquinas virtuales.
Las librerías proporcionadas por la API’s de Windows Azure y características como la Red de Distribución de Contenido de Windows Azure de (Windows Azure CDN) permiten el acceso de almacenamiento barato y escalable (mediante blobs, tablas y colas). Además, contamos con Windows Azure AppFabric ofreciendo servicios en la nube basados en middleware que hacen más fácil la construcción de soluciones de nube híbrida
Conclusión
Microsoft está claramente comprometido con la interoperabilidad de la plataforma Windows Azure, y soporte para Java en particular. Java en Windows Azure no sólo funciona, sino que puede formar parte de una estrategia efectiva para las aplicaciones Java. Si quieres obtener más información acerca de la nube y las tecnologías de Cloud Computing sólo tienes que leer la serie de posts Escenarios en la nube. Y no te olvides de suscribirte al canal RSS de Windows Técnico para recibir más noticias como ésta.

Enviado
sep 13 2011, 09:48
por
Ruben Alonso