Herramientas de usuario

Herramientas del sitio


simo:documentos:tecnicos:arquitectura

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
simo:documentos:tecnicos:arquitectura [2017/10/17 23:17]
lgomez se ha restaurado la vieja versión (2017/10/17 23:11)
simo:documentos:tecnicos:arquitectura [2019/06/13 21:30] (actual)
caardila [ARQUITECTURA DE SISTEMA SIMO]
Línea 1: Línea 1:
-====== ARQUITECTURA DE SISTEMA SIMO ======+__false__
  
 ===== INTRODUCCIÓN ===== ===== INTRODUCCIÓN =====
Línea 92: Línea 92:
     - **[[:​ea:​tobe:​aplicaciones:​sigeca:​framework|FrameWork]] Spring + J2EE:** Este framework junto con los servicios J2EE del contenedor Web que  aloja la aplicación,​ es el encargado de proveer todos los servicios de  integración,​ seguridad, acceso a datos, transacciones,​ aspectos, ​ inyección de dependencias e inversión de control, junto a varios más que  dan soporte a la arquitectura del lado del servidor. Si bien Spring ​ puede ser utilizado de muchas formas, en esta propuesta se utiliza para  inplementar una arquitectura de tipo servidor liviano, donde se delega ​ gran parte de la responsabilidad de renderización de la interfaz gráfica ​ al navegador, permitiendo una reducción en el consumo de recursos del  lado del servidor y facilitando su escalamiento. Del entorno J2EE se  utilizan los componentes de la especificación Web (principalmente ​ Servlets) por lo cual es posible desplegar la aplicación en un  contenedor Web Java liviano como Apache Tomcat o Jetty.     - **[[:​ea:​tobe:​aplicaciones:​sigeca:​framework|FrameWork]] Spring + J2EE:** Este framework junto con los servicios J2EE del contenedor Web que  aloja la aplicación,​ es el encargado de proveer todos los servicios de  integración,​ seguridad, acceso a datos, transacciones,​ aspectos, ​ inyección de dependencias e inversión de control, junto a varios más que  dan soporte a la arquitectura del lado del servidor. Si bien Spring ​ puede ser utilizado de muchas formas, en esta propuesta se utiliza para  inplementar una arquitectura de tipo servidor liviano, donde se delega ​ gran parte de la responsabilidad de renderización de la interfaz gráfica ​ al navegador, permitiendo una reducción en el consumo de recursos del  lado del servidor y facilitando su escalamiento. Del entorno J2EE se  utilizan los componentes de la especificación Web (principalmente ​ Servlets) por lo cual es posible desplegar la aplicación en un  contenedor Web Java liviano como Apache Tomcat o Jetty.
     - **Entidad JPA:​** ​   Este componente representa un  objeto de dominio (Referencia) y a su vez contiene la información que  permite mapear los objetos de dominio a las tablas en el sistema de  persistencia. ​ Esta información sigue la especificación JPA de Java. El modelo de dominio puede ser consultado en la siguiente página [[:​simo:​documentos:​tecnicos:​dominio|Modelo de dominio]]     - **Entidad JPA:​** ​   Este componente representa un  objeto de dominio (Referencia) y a su vez contiene la información que  permite mapear los objetos de dominio a las tablas en el sistema de  persistencia. ​ Esta información sigue la especificación JPA de Java. El modelo de dominio puede ser consultado en la siguiente página [[:​simo:​documentos:​tecnicos:​dominio|Modelo de dominio]]
-    - **Hibernate + Lucene:**      Este componente se encarga de realizar el mapeo relacional a objeto y manejar el ciclo de vida de las entidades JPA, también integra el motor de indexamiento Full Text de Lucene para indexar los datos de la base de datos. Una descripción más detallada puede ser encontrada acá [[:​simo:​documentos:​tecnicos:​hibernate|Hibernate y Hibernate Search]]+    - **Hibernate + Hibernate Search:**      Este componente se encarga de realizar el mapeo relacional a objeto y manejar el ciclo de vida de las entidades JPA, también integra el motor de indexamiento Full Text de Lucene para indexar los datos de la base de datos. Una descripción más detallada puede ser encontrada acá [[:​simo:​documentos:​tecnicos:​hibernate|Hibernate y Hibernate Search]]
     - **Repositorio Spring JPA:​** ​   Este componente es  una interfaz que al ser implementada por Spring proporciona las  operaciones CRUD y los métodos de búsqueda definidos por el  desarrollador. Solo basta definir las firmas de los métodos de búsqueda y  Spring se encarga de proporcionar todo el código, idealmente, debe existir un repositorio por  Entidad principal (Objeto de dominio). Estos repositorios han sido aumentados mediante una implementación base genérica que soportar métodos de búsqueda de aplicación general. Ver [[:​simo:​documentos:​tecnicos:​repositorios|Capa de Repositorios Spring Data]] ​     - **Repositorio Spring JPA:​** ​   Este componente es  una interfaz que al ser implementada por Spring proporciona las  operaciones CRUD y los métodos de búsqueda definidos por el  desarrollador. Solo basta definir las firmas de los métodos de búsqueda y  Spring se encarga de proporcionar todo el código, idealmente, debe existir un repositorio por  Entidad principal (Objeto de dominio). Estos repositorios han sido aumentados mediante una implementación base genérica que soportar métodos de búsqueda de aplicación general. Ver [[:​simo:​documentos:​tecnicos:​repositorios|Capa de Repositorios Spring Data]] ​
     - **Servicio Spring: **    Este componente ​ implementa los métodos de negocio de cada módulo, lo ideal es crear un  servicio por repositorio Spring, a través de los mecanismos de inyección ​ de dependencias de Spring, el componente obtiene referencias al  repositorio Spring y a cualquier otro servicio que se requiera. Si no se  requieren métodos de negocio distintos a las operaciones CRUD  tradicionales,​ este componente puede ser obviado. Ver [[:​simo:​documentos:​tecnicos:​servicio|Capa de Servicios]]     - **Servicio Spring: **    Este componente ​ implementa los métodos de negocio de cada módulo, lo ideal es crear un  servicio por repositorio Spring, a través de los mecanismos de inyección ​ de dependencias de Spring, el componente obtiene referencias al  repositorio Spring y a cualquier otro servicio que se requiera. Si no se  requieren métodos de negocio distintos a las operaciones CRUD  tradicionales,​ este componente puede ser obviado. Ver [[:​simo:​documentos:​tecnicos:​servicio|Capa de Servicios]]
simo/documentos/tecnicos/arquitectura.1508282279.txt.gz · Última modificación: 2017/10/17 23:17 por lgomez