Desarrollo del Back-End
El siguiente diagrama muestra los componentes funcionales de la arquitectura de las aplicaciones que estamos desarrollando y el ambiente donde se despliega. Lo que llamamos backend
se refiere a los componentes de la lógica o negocio y de la persistencia de la aplicación.
Responsabilidades de las capas
Esta arquitectura es una decisión de diseño en la que:
- La capa de servicios o recursos (API REST) es una capa muy "liviana" que solo se ocupa de:
- recibir las peticiones HTTP
- transformar los objetos json en DTOs
- invocar la lógica que devuelve entidades y recibe entidades
- transformar las entidades en DTOs
- transformar las excepciones de la lógica en status http
- La capa de lógica se ocupa de intermediar con la capa de persistencia y se ocupa de:
- validar las reglas de negocio
- invocar servicios de otras aplicaciones.
- invocar la capa de persistencia que devuelve entidades y recibe entidades
- La capa de persistencia tiene como responsabilidad:
- invocar los servicios de la base de datos
Los siguientes diagramas de clases ilustran para el ejemplo company_back los distintos elementos. En el primero, de abajo hacia arriba en azul, están las clases de recursos que inyectan
una dependencia a la lógica a través de una interface.
En el segundo, se muestra que la lógica, a su vez, inyecta
una referencia a la clase de persistencia. Mientras que los DTOs (no mostrados en el diagrama) solo son visibles para las clases Resource
, las clases Entity
son utilizadas tanto por los recursos como la lógica y la persistencia.
Vista de Desarrollo
Para facilitar el desarrollo del proyecto, la estructura de los distintos paquetes y recursos es la que se muestra continuación:
- El paquete
api
contiene las interfaces de la lógica - El paquete
ejbs
contiene las clases de la lógica que son EJBs con estado - El paquete
entities
contiene las clases de las entidades que van a ser persistidas - El paquete
exceptions
contiene las clases de las excepciones que se disparan desde la lógica. En este ejemplo solo hay una clase - El paquete
persistence
contiene las clases de persistencia que también son EJBs con estado - El paquete
test.logic
contiene las clases de prueba de la lógica - El paquete
test.persistence
contiene las clases de prueba de la persistencia - La carpeta de
resources
está el archivobeans.xml
ypersistence.xml
para configurar el acceso a la base de datos. - La carpeta de
resources
en la carpetatest
está el archivobeans.xml
ypersistence.xml
para configurar el acceso a la base de datos de las pruebas.
- La carpeta de
En las secciones siguientes se presentan los conceptos básicos del diseño de cada una de las capas: