|
A continuación, se muestran enlaces a descargas de
herramientas de análisis, diseño y/o programación
de sistemas. El objetivo de cada una de estas herramientas es mejorar
el proceso de desarrollo de software y los resultados que se obtienen
mediante dicho proceso.
Para poner en un contexto temporal la información que se
presenta en esta página, a cada descarga se le asocia una
fecha, la cual coincide con la fecha del boletín en que
se incluyó. Además, se describe en qué consiste
cada descarga así como su utilidad para el desarrollo del
software.
A continuación, se muestra la lista de descargas disponibles:
Enero 2004: Descarga
de Spring
|
En el
trabajo con la plataforma J2EE, un desarrollador encuentra
diariamente una serie de problemas que, hasta el momento presente,
no tienen solución
o bien su solución es innecesariamente compleja. Entre estos
problemas, se encuentran los siguientes:
Spring, iniciado por Rod Johnson, es un framework que consigue
resolver todos estos problemas de una forma sencilla, elegante
y flexible. A pesar de estar en sus primeras etapas, Spring
ha generado notable interés en la comunidad Java
y ha sido usado en proyectos desarrollados por Aurum Solutions
con gran éxito.
Spring se distribuye bajo la licencia Apache, que permite
usarlo gratuitamente para cualquier aplicación, incluso
si es comercial. Puede descargarse desde aquí.
|
|
|
Es generalmente
conocido que una de las causas más
comunes de fracaso en los proyectos de desarrollo es un
pobre rendimiento de la aplicación. Esto es especialmente
crítico en aplicaciones Web, dada la lentitud de
la red y el elevado número de potenciales usuarios
de la aplicación.
Para optimizar el rendimiento,
se necesita contar con una herramienta de pruebas de carga
(“load testing”) que permita simular el uso
de una aplicación por numerosos usuarios, medir el
rendimiento de los diversos fragmentos de código
y extraer información útil para la optimización.
Estas herramientas suelen ser costosas, aunque la inversión
vale la pena.
En este boletín, presentamos una buena herramienta
de pruebas de carga que es gratuita y de código abierto.
Se trata de JMeter, que, aunque fue concebida inicialmente
sólo para aplicaciones Web, en la actualidad soporta
también pruebas de carga de una amplia gama de recursos
(archivos HTML, servlets, JSPs, guiones en Perl, objetos
Java, bases de datos y consultas, servidores FTP, etc.).
JMeter se distribuye bajo la licencia Apache, que permite
usarla gratuitamente para cualquier aplicación, incluso
si es comercial. Puede descargarse mirar
en los enlaces bajo el título "JMeter" que
aparecen haciendo clic aquí.
|
|
|
El
proceso de construcción de una aplicación
Java (y, en especial, de las que usan la plataforma J2EE)
es particularmente complejo. Entre las tareas que puede
incluir se encuentran la compilación del código,
la copia de archivos en los directorios de despliegue, la
generación de comentarios Javadoc, la ejecución
de casos de prueba, la generación de stubs y skeletons
RMI, la creación de archivos JAR, WAR y EAR, la “mejora” de
los programas con JDO, etc. Cada una de las tareas suele
implicar la escritura de líneas de código
extremadamente largas, algunas de las cuales deben parametrizarse.
Además, para que el proceso tenga éxito, las
tareas han de ejecutarse en un determinado orden.
La mejor forma de ejecutar este complejo proceso de construcción
es de forma automática. Para ello, se usan herramientas
especializadas, entre las cuales se encuentra Ant, que se
ha convertido en el estándar en esta área.
Con Ant se puede automatizar el proceso de construcción
de forma sencilla, consiguiendo una mejor productividad
y mayor facilidad en el mismo.
Ant se distribuye bajo la licencia Apache, que permite
usarlo para cualquier aplicación gratuita o comercial.
Puede descargarse desde aquí.
|
|
Octubre 2003: Descarga
de JUnit
|
Es generalmente
conocido que la fase de pruebas (“testing”,
en inglés) es absolutamente necesaria para minimizar los errores
de programación en los proyectos de desarrollo. Aunque hay muchas
clases de pruebas (de aceptación, de integración, de unidad, “de
caja blanca”, “de caja negra”, etc.), en los últimos
años se ha llegado al consenso de que las más importantes
de todas son las pruebas de unidad (“unit testing”), que
prueban cada componente del software (clase, en los lenguajes
orientados a objetos) para determinar si devuelve el resultado
que se espera de él.
En el mundo Java, para ejecutar las pruebas de unidad, se utiliza
el “framework” llamado JUnit, que se ha convertido en el
estándar universal para este tipo de tarea. JUnit es sencillo
y potente a la vez y, si se usa correctamente, aumenta considerablemente
la calidad del código, detectando los errores que se producen
en la programación y el mantenimiento. Como el prestigioso autor
Martin Fowler afirma, “Nunca en el campo del desarrollo de software
tanta gente debió tanto a tan pocas líneas de código”.
JUnit tiene licencia CPL, que permite usarlo de forma gratuita para
cualquier aplicación, sea ésta comercial o de código
abierto. Puede descargarse siguiendo el enlace “Download” que
aparece en esta página.
|
|
Septiembre 2003: Descarga
de JBoss
|
En los
sistemas empresariales distribuidos, es necesario asegurar
la correcta concurrencia del sistema, su estabilidad, seguridad,
control de transacciones
y la caché de objetos, entre otros aspectos. Para algunos de estos
sistemas (pero no para todos), la mejor forma de conseguir
todo ello es usar un servidor de aplicaciones, que implementa
estas tareas, para
que el programador se concentre solamente en la lógica
de negocio.
El estándar para estos servidores de aplicaciones en el mundo
J2EE (“Java 2 Enterprise Edition”) es la especificación
Enterprise JavaBeans (EJB). EJB es un estándar maduro, que es
soportado por la práctica totalidad de los vendedores de servidores
de aplicaciones Java y que goza además de varias implementaciones
de código abierto.
JBoss es el líder entre estas últimas. En la versión
4.0, JBoss trae importantes y originales novedades. Por una parte,
es uno de los primeros servidores EJB que incorpora una plataforma
para la programación orientada a aspectos. Por otra parte, incluye
JBossDO, un
motor de persistencia basado en el estándar JDO.
JBoss se distribuye bajo la licencia LGPL, que permite usarlo para
cualquier aplicación gratuita o comercial. Puede descargarse
desde aquí.
|
|
Agosto 2003: Descarga
de Hibernate
|
Como
se ve en el artículo que incluimos en el boletín del mes de agosto de 2003, el
uso de un motor de persistencia no sólo puede reducir significativamente
la cantidad de código de una aplicación, sino que además
mejora su calidad, flexibilidad y robustez.
Como programar un motor de persistencia es una tarea compleja y consumidora
de recursos y dado que un mismo motor de persistencia sirve
para todas las aplicaciones posibles, la opción inteligente
es conseguir un motor de persistencia ya programado. Es
decir, comprarlo a un
vendedor o bien usar un motor gratuito.
De todos los motores de persistencia gratuitos para el lenguaje Java,
Hibernate goza de reconocimiento por ser eficiente, completo
y fácil
de usar, siendo uno de los motores de código abierto más
utilizados y valorados.
Hibernate todavía no cumple con el estándar JDO, aunque
es notablemente parecido a dicho estándar. Por otra parte, el
creador de este motor de persistencia no descarta implementar
JDO si éste se generaliza.
Hibernate tiene licencia LGPL, que permite usarlo para cualquier aplicación
gratuita o comercial. Puede descargarse desde aquí.
|
|
Julio 2003: Descarga
de C-JDBC
|
La
técnica
de clustering de bases de datos consiste en repetir los datos
de una aplicación en varias bases de datos diferentes. De esta forma,
se hace más rápido el acceso a los datos, al poder balancear
la carga de las consultas entre las diferentes bases de datos. También
se obtiene una mayor confiabilidad, ya que, si una base de datos falla,
el resto puede asumir las consultas dirigidas a ella. Además,
la replicación de los datos sirve como copia de seguridad. Sin
embargo, el mayor beneficio del clustering es la escalabilidad
de las aplicaciones que se basan en él.
Aunque el clustering no
es una técnica nueva, la programación
del código necesario para implementarlo ha sido tradicionalmente
compleja y sujeta a errores. La biblioteca que presentamos hoy, llamada
C-JDBC, es un controlador (“driver”) JDBC que permite implementar clustering de
forma tan sencilla como lo es acceder a una única
base de datos. A pesar que, a dicho controlador, se le pueden aplicar
cualquier número de bases de datos de cualquier marca, se programa
como si fuera una única base de datos, pues es operado mediante
JDBC, la API estándar en Java para acceso a bases de datos.
C-JDBC es una biblioteca
de código abierto, bajo la licencia
LGPL, que permite usarla para cualquier aplicación gratuita
o comercial. Puede descargarse desde aquí.
|
|
Junio 2003: Descarga de
Jakarta
Struts
|
La
programación
y mantenimiento de una aplicación
para el Web es una tarea que requiere el máximo de los rigores.
En la plataforma Java, las aplicaciones Web se implementan con
la ayuda de servlets y JSPs y, opcionalmente, con el uso
de Enterprise Javabeans y otras clases (clases de persistencia, clases
planas Java, etc.).
Sin embargo, la práctica
enseña
que este método
de programación implica la ejecución de tareas difíciles
y/o tediosas, entre las que se encuentran:
- Coordinar los
servlets, JSPs, Enterprise Javabeans y otras clases para
que implementen los casos de uso de la aplicación.
- Asegurar que
la aplicación sigue una estructura
MVC (modelo-vista-controlador) en sus capas superiores.
- Realizar la
validación de los datos introducidos
en los formularios.
- Preparar las
aplicaciones para su internacionalización.
- Asegurar la
flexibilidad del sistema en vista a su modificación y ampliación
en el futuro.
Dado que todo
ello es difícil y tedioso de implementar
por cuenta propia, han surgido los llamados “frameworks”,
que son bibliotecas con clases que simplifican
la programación de todas estas tareas. Los “frameworks” implican
una forma de programar diferente, que es, al mismo tiempo,
más sencilla y más robusta que la tradicional.
El “framework” más popular en la plataforma
Java es Struts, que está incluido en el proyecto
Jakarta de la fundación Apache. Es gratuito y de
código abierto. Tanto binarios como fuentes pueden
descargarse desde aquí.
|
|
|
|
|