Jakarta - Avalon

4 - Avalon

[editar]
Curso gratis creado por Ricardo Araos. Extraido de: http://www.tejedoresdelweb.com/307/article-5541.html
18 de Octubre de 2005
Este es uno de los grandes subproyectos que conforman Jakarta. Consiste en un marco de desarrollo de aplicaciones donde el objetivo es permitir compartir los distintos recursos como código, recursos humanos, diseño, etc. y evitar duplicación de esfuerzos. Es decir, es la herramienta ideal para un jefe de proyectos que quiere llevar el control de los recursos. Debido a que esta es una gran tarea, el proyecto Avalon, está dividido en 6 subproyectos que son:

Framework

Es una coleccín de especificaciones de patrones de diseñ y reglas en la forma de interfaces, es decir, no es un producto o una API, sino que es más bien un manual.

Excalibur

Es una colección de objetos frecuentemente usados como datasources, pooling, proxies, threading, entre otros.

Phoenix

Es un servidor de aplicaciones que almacena aplicaciones y servicios que se adecuan al marco de trabajo de Avalon.

Cornestone

Es un repositorio de blocks que proveen servicios vitales para servidores de aplicaciones. Contienen algunos demos de aplicaciones para aprender el correcto funcionamiento de Phoenix

LogKit

Es la herramienta de logeo usada por los proyectos de Avalon

BCEL

BCEL (Byte Code Engineering Library) es una aplicación que permite jugar con los famosos .class que se generan al compilar una clase. Estos archivos contienen bytecode que es ejecutado por la Java Virtual Machine (no es código que se pueda ejecutar directamente por la máquina). Este contiene información sobre las clases como los métodos, los campos, etc. Y con BCEL se puede recuperar esta información de las clases, manipularla y reenviarla a otro archivo como salida; o también se puede generar clases de la nada al momento de la ejecución por lo que este software es muy útil si se quiere aprender sobre la máquina virtual de Java o esl formato de los archivos .class.

Este software es muy útil para aplicaciones como optimizadores, compiladores y herramientas de aálisis como, por ejemplo, el procesador XML Xalan.

Cactus

Cactus tiene como objetivo testear de forma automática aplicaciones que actuan en el lado del servidor, obviamente, de aplicaciones escritas en Java. Usa JUnit, proyecto de Jakarta que antes fué subproyecto de Avalon.

Cactus implemente la estrategia de in-container para el testeo de las aplicaciones.

La estrategia de Cactus es un testeo por unidad de integración aunque también ocupa testeo por unidad de código lógico y testeo por unidad funcional. Y aunque nunca se puede testear acusiosamente un programa, Cactus ofrece una gran confianza en el testeo que ejerce sobre las aplicaciones antes de dejarlas disponibles en producción. Es probable que en futuras versiones se aumente en enfoque de testeo por unidad de código lógico, debido a que es el mejor enfoque para revisar errores en aplicaciones.

Commons

Este es un proyecto nuevo de Jakarta enfocado a todos los componentes reutilizables de Java. Actualmente se encuentra dividido en dos partes que son:

Commons Proper

Pretende implementar componentes que tengan mínimas dependecias con otras librerías y se pretende que las interfaces se mantengan lo más estables posible para que los programadores que las usen puedan implementarlas

Sandbox

Es un espacio donde se pueden probar los proyectos de Commons Proper además de permitir las sugerencias de nuevos elementos a ser incluidos a desarrollos.

ECS

Element Construction Set es una API que permite la creación de elementos para lenguajes de marcado como HTML o XML, pero que si mayores problemas puede permitir la creación de elementos para la creación de otros nuevos lenguajes de marcados.

Por ejemplo, con el siguiente código:

Document doc = (Document) new Document()
.appendTitle("Demo")
.appendBody(new H1("Demo Header"))
.appendBody(new H3("Sub Header:"))
.appendBody(new Font().setSize("+1")
.setColor(HtmlColor.WHITE)
.setFace("Times")
.addElement("The big dog & the little cat
chased each other."));
ou.println(doc.toString());
or write to the outputstream directly
output(out);

... se puede generar la salida del siguiente texto HTML:

<html><head><title>Demo</title></head>
<body>
<h1>Demo Header</h1>
<h3>Sub Header:</h3>
<font size="+1" color="#FFFFFF" face="Times">The big
dog & the little cat chased each other.</font>
</body></html>
James

Es un servidor de mail para Java Apache que soporta los principales (si no son todos) protocolos de mail, como son SMTP, POP3, IMAP, HTTP.

Los objetivos que logra James son:

Completa Portabilidad

Es una aplicación 100% Java basada en la plataforma Java 2 y en JavaMail de Sun

Abstración de Protocolo

James tiene un diseñ abstracto que le permite no estar atado a ningún protocolo. Estos son vistos como lenguajes de comunicación entre los clientes y el servidor pero nada más.

Solución Completa

James funciona sin necesidad de otra aplicación y provee los dos servicios de envío y almacenaje de mails.

Soporte de Mailet

James soporta la API de Mailet, un procesador de mail, con lo cual es capaz de transformar un mail a fax, filtrar, etc.

Abstracción de Recursos

Los recursos también son manejados de manera abstracta y se accesan a través de distintas interfaces como, por ejemplo, JavaMail para transporte, JDBC para almacenaje del spool, etc.

Diseño Multithread y Seguro

Este diseño le permite un buen perfomance, escalabilidad y uso en situaciones críticas.

Jetspeed

Con Jetspeed, se puede acceder a los recursos de una empresa de manera rápida, permitiendo la construcción de un portal para que los usuarios de la empresa puedan ocupar ya sea aplicaciones, bases de datos, etc. desde distintos tipos de entradas como un browser, un teléfono WAP, o cualquier otro.

Por lo tanto, Jetspeed es una herramienta tanto para los desarrolladores como para los diseñdores de interfaces proveyendo una serie de facilidades para la construcción del portal.

JMeter

Útil herramienta que permite medir el funcionamiento de un sitio, siendo capaz de simular grandes cargas de trabajo, testeando el funcionamiento antes diferentes tipos de carga, revisando el funcionamiento de los distintos recursos que componen la aplicación como, por ejemplo, los servlets, los cgi, las conexiones a las bases de datos, etc.

Finalmente, es capaz de generar análisis gráficos.

LOG4J

Esta herramienta permite activar o desactivar las salidas de los programas a pantalla que se usan como método de debugueo de una aplicación. Es capaz de bloquear los prints, o de rederigirla a un archivo de log. La ventaja es que LOG4J permite evitar en tiempo de ejecución el despliegue de los mensajes por lo que el programa no incurre en tiempo de imprimir y la perfomance de la aplicación mejora.

Lucene

Lucene es una poderosa herramienta de búsqueda de texto recomendable para cualquier aplicación que requiere búsqueda de texto, especialmente entre plataformas.

ORO

Esta herramienta permite el procesamiento de texto utilizando expresiones regulares al estilo regexp, como Perl o AWT. ORO es compatible con las expresiones regulares manejadas por Perl 5.

Regexp

Otra herramienta de manejo de expresiones regulares. Al igual que la anterior ha sido donada por un programador, lo que demuestra el apoyo que está recibiendo el proyecto Jakarta y la velocidad con la que puede crecer.

Slide

Slide es una herramienta que permite el manejo de contenidos y la integración de sistemas. Provee una organización jerárquica de contenido binario que puede ser almacenado en base de datos. Además provee de versionamiento, bloqueo, entre otros servicios.

Struts

Es una herramienta que ofrece un marco de trabajo para desarrollar aplicaciones web. Struts facilita este desarrollo sobretodo si es que se quiere desarrollar utilizando el patrón de diseño del controlador modelo-vista por lo que ofrece un servlet controlador, librerias JSP que asiste, junto con el controlador, en la creación de formularios, y soporte para XML parsing, configuración automática de JavaBeans, etc.

Taglibs

Es un repositorio para nuevos taglibs creados por programadores. También es una repositorio de herramientas que permiten publicar en web utizando estos taglibs.

Tomcat

Tomcat es quizás la herramienta más conocida del proyecto Jakarta, hasta el punto en que muchos confunden ambos nombres. Pero Tomcat es un subproyecto de Jakarta que provee un poderoso servidor web con soporte a Java Servlets y JSP. Es además fácil de extender en funcionalidades como, por ejemplo, al poder integrar Xalan para parsear páginas XML o al agregar James y poder enviar mails desde el servidor, etc.

Tomcat ya va en la versión 4.0 a esta fecha y ha sido tan exitoso que Borland lo utiliza dentro de su ambiente de desarrollo JBuilder para permitir el desarrollo de aplicaciones web utilizando ambas tecnologías. Tomcat se entrega bajo la licencia de software para Apache y es open source.

Turbine

Esta herramienta se ha ido creando con la participación de muchos desarrolladores del mundo, y permite el desarrollo de aplicaciones web seguras en poco tiempo. Está orientada a desarrolladores Java con experiencia. Una ventaja es que las herramientas provistas por Turbine pueden ser separadas por lo que estas partes pueden participar en el desarrollo de nuevos proyectos.

Velocity

Velocity es una herramienta que separa el desarrollo de una página web del diseño gráfino de esta por lo que el diseñador sólo tiene que preocuparse de su trabajo y el programador de la calidad del software. Velocity funciona mediante la definición de lenguajes de templates asociados a código Java. Luego, los diseñadores se preocupan de ocupar estos templates y los programadores, entre otras cosas, de implementarlos.

WatchDog

Es un herramienta que permite validación de test para Servlets y JSP.
[editar]

Sé el primero en opinar


Cursos gratis relacionados con 'Jakarta'

Jakarta es un nuevo paso dentro del desarrollo de la tecnología orientada a software de... Más »
Para proteger nuestra navegación y filtrar la publicidad disponemos en el mundo windows de los... Más »

Autor y licencia de 'Jakarta'


Curso gratis de Ricardo Araos. Extraido de: http://www.tejedoresdelweb.com/307/article-5541.html CopyLeft
Los contenidos de este sitio pueden ser reproducidos solamente bajo estas condiciones. La licencia está respaldada con el registro de propiedad intelectual número 97.125 en Chile y otros países.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.