jueves, 23 de mayo de 2013

Arquitectura genérica para el desarrollo de aplicaciones empresariales.

En varias entradas del blog hemos abordado temas que tienen que ver con la persistencia de los datos en almacenes relacionales y hemos visto el uso de diferentes tecnologías y enfoques para resolver el tema de la persistencia.

Que se toquen estos temas desde lo básico a lo más usado actualmente no es un hecho casual si no que forma parte de una estrategia de ir tocando todos los puntos que forman parte de una arquitectura genérica que se puede usar para el desarrollo de aplicaciones empresariales.

Digo arquitectura genérica primero porque es ampliamente usada por diferentes empresas de desarrollo de software y segundo porque a partir de ella se pueden obtener múltiples variaciones particulares en función del dominio del negocio que se ataque.

Por allá por el 2010 en el sitio de adictos al trabajo sacaron una propuesta de arquitectura que hasta la fecha la considero bastante adecuada para desarrollos basados en JAVA. La pueden ver en esta entrada.

clip_image001

Fig.1. Arquitectura propuesta por Autentia.

En la entrada donde se publica se hace un análisis muy bueno de cada componente y de posibles variantes que existían en la fecha de publicación.

En ese sentido creo que hasta el día de hoy no cambiaría casi que ninguno de los componentes con sus excepciones claro:

En el tema de los servicios web y soluciones de integración e interoperabilidad se ha avanzado bastante por lo que sustituiría los siguientes elementos:

o BPM: ellos proponen JBPM o Intalio. Yo pondría algo como Bonita, Activiti o una herramienta que va surgiendo ahora y es el Bussiness Process Server de WSO2.

o jUDDI: pondría otra herramienta de WSO2, el Governance Registry o GREG. Que expone una UDDIv3 pero que además implementa el WS-Discovery.

o OpenESB: lo cambiaría sin problemas por el ESB de WSO2.

o Servicios Web: siguiendo con la tónica usaría el Application Server de WSO2 más el conjunto de herramientas que necesite para el desarrollo y despliegue de servicios web.

o Subversion: lo cambiaría por Mercurial o por Git.

o En la capa de presentación es donde más debate podría haber. Aun estas tecnologías tienen su fuerza aunque están surgiendo soluciones como Vaadin y ZK que tienen sus pros y sus contras, y a las cuales dedicaré otras entradas.

La capa de persistencia es obvio que la mantendría. Hasta el momento Hibernate como implementación del estándar JPA sigue siendo la mejor solución.

El uso de Spring para la capa de lógica de negocio es evidente que sigue siendo un “top priority”.

IReport lo continuaría seguro, con JasperReport como librería para generar los reportes.

El tema de integración continua es otro de los fuertes de esta propuesta que se sigue manteniendo: el uso de Maven, ya lo hemos tocado en este blog, Hudson que actualmente es Jenkins junto con Sonar son las herramientas básicas para la integración continua.

En el caso de la herramienta para portales no podría estar más de acuerdo. Liferay sigue de líder en este tema, junto con Alfresco en la gestión de contenidos. Y claro en el Business Intelligence la suite de Pentaho llegó para quedarse. Por ultimo como plataforma de aprendizaje y e-learning moodle es la elección por defecto. Ah y claro en las ETL sugieren a Talend, esa si se las debo pues no he trabajado en esta tecnología.


¿Te ha gustado este Post? Compártelo con tus amigos.

No hay comentarios:

Publicar un comentario

IconIconIcon