Simplificando Jakarta EE

Al simplificar una aplicación originalmente pensada para GlassFish descubrí que Jakarta EE puede utilizarse en una expresión mucho más pequeña de lo que normalmente se muestra.

No es obligatorio implementar todo el stack empresarial. Dependiendo del problema, basta con utilizar los componentes necesarios para construir la aplicación.

Una arquitectura web mínima puede quedar así:

                                 

                 Navegador                           
                    |
                    ▼
              Jakarta Servlet
                    |
                    ▼
              Capa de servicio
                    |
                    ▼
                 JDBC
                    |
                    ▼
              Base de datos

Y para la vista:

Servlet
   |
   ▼
Thymeleaf
   |
   ▼
HTML

Mientras que el servidor:

Main Java
    |
    ▼
Jetty embebido
    |
    ▼
Servlet Container

La diferencia es que GlassFish normalmente te entrega un ecosistema completo:

  • Servlet
  • CDI
  • JPA
  • EJB
  • JAX-RS
  • JMS
  • seguridad
  • administración del servidor

pero una aplicación no necesariamente necesita todo eso.

En mi caso, al quitar capas que no eran necesarias, se puede llegar a algo más cercano a:

  • Java SE como base.
  • Servlet para HTTP.
  • Thymeleaf para renderizar.
  • JDBC para persistencia.
  • Jetty como contenedor.
  • Filtros de Seguridad

Esto sigue siendo una aplicación Java empresarial, solo que usando una fracción del ecosistema.

La persistencia puede implementarse directamente con JDBC o mediante tecnologías ORM como JPA/Hibernate. Para mantener una arquitectura mínima y mostrar las bases de acceso a datos, se utiliza JDBC."

La ventaja de este enfoque es que permite comprender mejor las bases de una aplicación web Java: solicitudes HTTP, servlets, separación de capas, acceso a datos y generación de vistas, antes de incorporar frameworks que automaticen parte de este trabajo.

El objetivo no es reemplazar frameworks o servidores empresariales, sino entender que muchas soluciones modernas se construyen sobre estos mismos fundamentos.




Comentarios

Entradas populares de este blog

Boleta Electrónica en Chile: Los 3 Ambientes del SII para Desarrolladores

Configurando Servlets y JSP en Jetty

GUIA GENERAL DE GENERACION DE DOCUMENTOS TRIBUTARIOS ELECTRONICOS