Participación en Jornada 11 Febrero

Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

miércoles, 25 de enero de 2012

Spring framework y su uso actual en aplicaciones web

Spring es uno de los frameworks más empleados en el desarrollo de software en lenguaje java, que mantiene en la actualidad una cuota de mercado (muestro las tendencias de varios frameworks en los últimos años dentro del contexto de desarrollo de aplicaciones web y online) equiparable a Struts, un marco de trabajo mucho más veterano que Spring. Sin embargo, cuando se navega por la red no es visible fácilmente qué aplicaciones hacen uso de Spring. Por ello, ante la pregunta de qué empresas trabajan con Spring y qué websites lo incorporan, me dediqué durante un rato a buscar respuesta, y la verdad es que fue relativamente fácil dar con ella.

Actualmente, una gran parte del desarrollo de aplicaciones JEE requieren del uso de uno o varios frameworks, principalmente motivado por la complejidad de las aplicaciones, necesidades de integración entre plataformas de diversa naturaleza, uso de servicios webs, etc.

Como muestra dejaré varios enlaces, que servirán para tener una idea del vasto campo en el que se mueve este framework. Para empezar podemos acceder a la página de la empresa española Devel, una consultora ubicada en Valencia, que ofrece en su sección Casos de éxito, algunas muestras de aplicaciones desarrolladas bajo esta tecnología. Una de ellas es la página de la jugadora de baloncesto Anna Montañana. Para conocer más empresas que desarrollan aplicaciones con este marco de trabajo, basta con pasarse por las páginas de servicio de oferta de empleo en la red. Como muestra, tecnoempleo ofrece en la categoría de jee muchas en las que, entre otros frameworks, se requiere Spring.

Detectar qué páginas han sido desarrolladas en Spring es más complicado que saber las empresas que lo emplean en su desarrollo, pero conociendo varias de ellas nos podemos hacer idea de la robustez de este framework al ser escogido por empresas como BBVA, el Ayuntamiento de Barcelona o la Agencia de Informática y Comunicaciones de la Comunidad de Madrid.

Es más podemos encontrarnos sorpresas como que Alfresco (una plataforma para gestión de contenidos), incorpora Spring en su código, o que también es el caso de la red social LinkedIn, tal como se reseña en la página de la propia SpringSource, en el apartado de casos de estudio.

Así pues, Spring es una opción muy válida a fecha de hoy a la hora de desarrollar una aplicación JEE y un framework que debería ser familiar para cualquier programador Java.

Existen muchos recursos desde los que tener una buena toma de contacto con Spring, pero aquí dejo algunos de ellos, para abrir boca:

Bibliografía básica


Fundamental:
Spring - Craig Walls
Amazon (tercera edición)  Casa del Libro Amazon.es


Spring recipes -
Gary Mak; Josh Long; Daniel Rubio
Amazon.com

Manual de referencia de Spring Framework 3.1
Api Javadoc de Spring Framework 3.1

Screencasts
Crear un proyeco Spring con Maven
Crear un proyecto simple con Spring MVC
Acceso a bases de datos con Spring y JDBC (Parte 1)
Acceso a bases de datos con Spring y JDBC (Parte 2)

Páginas oficiales de SpringSource

http://www.springsource.org/
http://www.springsource.com/
Documentación: http://www.springsource.org/documentation
Tutoriales: http://www.springsource.org/tutorials
Descargas: http://www.springsource.org/download
Foro: http://forum.springsource.org/
Ejemplos de codificación: http://www.springsource.org/samples

Y para finalizar, otros recursos disponibles en la red

Twitter: http://twitter.com/springframework
Spring IDE 2.8.0 para Eclipse:
 Helios: http://dist.springsource.com/release/TOOLS/update/e3.6/
 Indigo: http://dist.springsource.com/release/TOOLS/update/e3.7/

Tutoriales:
David Marco: http://www.davidmarco.es/tutoriales/spring-mvc-sbs/
Comenzando con MVC: http://viralpatel.net/blogs/2010/06/spring-3-mvc-create-hello-world-application-spring-3-mvc.html
 http://www.vaannila.com/spring/spring-tutorial/spring-tutorial.html
http://www.roseindia.net/spring/
http://www.roseindia.net/spring/spring3/spring-3-hello-world.shtml
Spring Hispano: http://www.springhispano.org/
Manual rápido de Spring MVC: http://maestric.com/doc/java/spring
Página de Craig Walls: http://www.jroller.com/habuma/

viernes, 2 de diciembre de 2011

Los lenguajes del cloud computing

En estos días no dejo de leer posts, reseñas de libros, twits, relacionados con el cambio de paradigma que se está produciendo en el campo de las tecnologías actuales, y más concretamente en el de las tecnologías relacionadas con la gestión de la información, en base al cual gran parte de los procesos que se llevaban antes a cabo en los CPDs localizados físicamente en las empresas, comienzan ahora a trasladarse a eso que comúnmente se ha venido a denominar “nube”. En un artículo anterior hablaba sobre la computación en la nube, y mientras lo escribía no paraba de rondarme en mi cabeza la pregunta de si los lenguajes de programación actuales estaban preparados para este vuelco en el paradigma actual de la computación. Conozco muchos lenguajes, desde el FORTRAN, el COBOL, el LISP o Basic con los que empecé a batirme en el campo del desarrollo del software, hasta los actuales Java, PHP, JavaScript, etc.

En estos casos, lo más fácil y recurrido es buscar directamente en la propia red qué se cuece en las factorías de diseño de lenguajes y qué pasos se están dando en el desarrollo de nuevos lenguajes. Y lo cierto es que se cuece mucho y tan revolucionario como el propio paradigma del cloud computing.

En mi búsqueda lo primero que encontré fue una reseña en Bosque viejo relativa al lenguaje de programación OPA. Se trata de un lenguaje cuyo pilar fundamental radica en que está pensado justamente para poder acomodarse a los nuevos contextos de la programación en la nube. Se puede decir que es un lenguaje exclusivamente orientado a la web, tanto como que el modelo de base de datos con el que trabaja es NoSQL, el mismo modelo que podemos encontrar en servicios como FaceBook o Digg.

La primera parada deberíamos hacerla en la página oficial del lenguaje, desde la que se puede descargar un binario específico para Ubuntu. En esa misma página se muestran varias aplicaciones de ejemplo, aunque no esperéis grandes desarrollos aún, ya que se trata de un lenguaje que se presentó en el pasado año 2010, y cuyo código fuente fue liberado bajo licencia GNU en este mismo año 2011.

OPA es un lenguaje respaldado a nivel de soporte por la empresa MLState, que proporciona asesoramiento y formación. Si te interesa ver cómo queda el famoso “HelloWorld” en OPA, sólo tienes que hacer clic aquí. Te recomiendo que te descargues aquí el paquete para Ubuntu, y si te parece interesante husmear por su código haz clic aquí.

Existen otros dos lenguajes que también se ofrecen como paladines de la programación en la nube, estoy hablando de Dart y de HaXe. El primero también está recién salido del horno de Google y aún no ha alcanzado la versión 1.0 que es la que suele dar la mayoría de edad.

En la página oficial de Dart podréis consultar diversos códigos de ejemplo así como probar su ejecución. Dart se puede ejecutar hasta la fecha bien mediante el Dart Editor (que posibilita compilar Dart a JavaScript) o bien mediante el Dart Board, un escritorio virtual en el que se puede escribir, modificar y ejecutar pequeños programas Dart. Te dejo aquí un pequeño ejemplo mío mostrando un típico saludo.

No hay mucho en español sobre Dart, pero la primera página (según dice ella misma) en tratar este lenguaje en nuestro idioma es Dart Experience, de entre sus posts (aún pocos) os recomiendo el que hace referencia a la instalación de la VM (Máquina Virtual) de Dart. Puedes seguir a Dart desde Twitter en @dart_lang. Dart está fuertemente influenciado por lenguajes orientados a objetos como Java y JavaScript.

HaXe es un poco más viejo, 2005, fue desarrollado por Nicolas Cannasse y puedes descargarlo desde aquí. Como Dart, es un lenguaje de programación Open Source, multiplataforma, que puede compilarse para generar código JavaScript, Flash, NekoVM, PHP o incluso C++. En este enlace tienes una interesante lista de proyectos que emplean este lenguaje.

¿Cómo evolucionarán estos lenguajes y en qué grado llegarán a instaurarse como pilares de la computación en la nube? Eso, como siempre, el tiempo lo dirá. Por ahora cada uno toma posiciones, y el pasado 28 de noviembre, Microsoft anunció que no apoyaría a Dart, por razones obvias claro.

Para finalizar, te dejo un enlace para que juegues un rato al Tetris con OPA:

miércoles, 2 de noviembre de 2011

Hacia el Cloud Computing

Cloud Computing, o dicho en español Computación en la nube, es un nuevo paradigma del software que tiene como pilar fundamental contemplar a las aplicaciones como un conjunto de servicios que se ofrecen desde la propia Internet. En la wikipedia puede ampliarse esta definición, completando la información con los aspectos clave que conforman este nuevo paradigma.

La siguiente imagen (extraída de la propia Wikipedia) ofrece, muy simplificadamente, qué estructura se conforma en la nube para ofrecer los servicios de la misma y qué dispositivos pueden acceder a ellos (básicamente, todos los que hoy se emplean para acceder a Internet).



Es mucha la bibliografía que ya contempla este tema como eje central, pero quiero aprovechar este artículo sobre la computación en la nube para hacer mención a un libro que se ha publicado hace poco y que no sólo trata de qué es cloud computing, sino qué razones de peso fundamentan la necesidad de que las empresas orienten sus modelos de negocio hacia ella. El libro se titula Empresas en la nube y está escrito por Blog de Jordi Torres.


Tenéis disponible el primer capítulo en formato pdf aquí. También podéis leer una entrevista que se le hizo al autor y que está publicada en la página de la revista Cloud Computing.

Es interesante comprobar cómo se esgrime la necesidad de una política de desarrollo sostenible en materia de consumo de recursos energéticos como una razón para optar por la nube en lugar del clásico actual, que requiere de complejos departamentos de procesos de datos ligados físicamente a la propia empresa y a veces, incorporando una redundancia perfectamente prescindible.

También podéis consultar un artículo, Cloud Computing: del disco duro a la nube, de la revista Interactive Magazine en la que se define este concepto y además se relacionan algunas aplicaciones disponibles en la red que se ajustan a este paradigma.

Para concluir os dejo una par de vídeos de Youtube que nos cuentan un poco qué es esto de la computación en la nube.

Introducción a Cloud Computing:



Cloud Computing según Microsoft: