Después de largo tiempo sin escribir, y más tiempo aún siendo un poco inconstante, le he dado un pequeño lavado de cara al blog, y sobre todo a mis objetivos profesionales.
En sucesivos artículos voy a tratar de definir una arquitectura de desarrollo de aplicaciones web empresarial (grandes volúmenes de datos, desarrolladores heterogéneos, grandes servidores, grid,…), y una arquitectura start-up (bajos costes, desarrollo rápido y ágil, escalable, …).
Partiremos de las tecnologías que nos ofrece actualmente el mundo Java, e iremos viendo como se construyen cada una de las partes del mapa general de la figura:
Mis clientes son dos: usuarios a través de sus navegadores, y otras aplicaciones que consumen mis servicios web. A los usuarios debo ser capaz de servirle páginas con funcionalidad e informes.
Por debajo encuentro otras capas:
- Services: Capa de lógica de negocio, aquí se manipulan los objetos con el fin de mostrarlos finalmente ó persistirlos.
- DAO: Capa de acceso a datos, manejo de operaciones CRUD de los objetos hacia nuestro almacén.
- Web Container: es el servidor de aplicaciones, que aporta los servicios comunes entre aplicaciones (JEE)
- BBDD: almacen de datos
- Security: almacen de credenciales de seguridad
- Model: modelo de datos de las aplicaciones
Transversalmente nos encontramos el Entorno de Desarrollo, que en realidad será un conjunto de herramientas que nos ayuden a desarrollar todo lo anterior.
Con esto dejo definido el modelo de desarrollo general, que luego iré componiendo con tecnologías concretas.