• No se han encontrado resultados

CAPÍTULO 3: ESTADO DEL ARTE

3.3. Arquitecturas usadas en la SUNAT

En la actualidad la SUNAT cuenta con varias arquitecturas de desarrollo de aplicaciones, entre las más destacadas para el desarrollo de aplicaciones web y móviles tenemos los frameworks denominados framework 2.5 y framework 3. A continuación describimos las dos arquitecturas más utilizadas, ambas utilizan el patrón MVC6.

3.3.1. Framework 2.5

Este framework es usado para la generación de aplicaciones web y móviles, el manejo de contextos para móviles es generados a través de interceptors7. La arquitectura en mención consta de las siguientes tecnologías:

 Spring Framework MVC, en esta versión se usa la inyección de dependencias a través de archivos XML para la configuración del Backend8 y anotaciones para el Frontend9.

 Ibatis, se ocupa de la capa de Persistencia (se sitúa entre la lógica de Negocio y la capa de la Base de Datos).

 Java, como lenguaje de programación.

 JSP, para crear páginas web dinámicas basadas en HTML y XML, entre otros tipos de documentos.

 Javascript se utiliza en su forma del lado del cliente, permitiendo mejoras en la interfaz de usuario y páginas web dinámicas.

6

El patrón de diseño de modelo-vista-controlador (MVC) especifica que una aplicación consta de un modelo de datos, de información de presentación y de información de control. El patrón requiere que cada uno de estos elementos esté separado en distintos objetos [54].

7

Los interceptores son Beans de Spring, por lo que tienes acceso a todo el contexto de una aplicación desde ellos. Son capaces de interceptar entre el controlador y el renderizado de la vista de una página web. [52]

8

Tecnologías que se encuentran del lado del servidor, por ejemplo lenguajes como PHP, Python, .Net, Java, etc, se encarga de interactuar con bases de datos, verificar manejo de sesiones de usuarios, desplegar la página web en un servidor. [56]

9

El frontend son todas aquellas tecnologías que corren del lado del cliente, es decir, todas aquellas tecnologías que corren del lado del navegador web, generalizándose más que nada en tres lenguajes, Html, CSS Y JavaScript. [56]

 JQuery, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.

 JSON, para el intercambio de datos entre el frontend y el backend y para el intercambio de información entre distintas tecnologías.

 Gradle como herramienta Java de automatización de builds.

Este framework incluye también el uso e implementación de Servicios REST. La Construcción de Servicios REST depende de lo establecido en el Documento de Estándares de Diseño de Servicios REST de la SUNAT.

3.3.2. Framework 3.0

Es el conjunto de herramientas, componentes de software reutilizables, librerías, arquetipos, estándares, patrones, buenas prácticas y ejemplos de uso, que junto con una documentación y metodología de uso permiten diseñar, construir, implementar y probar aplicaciones corporativas de una forma uniforme, rápida y con una mayor calidad dentro de la SUNAT.

Componentes de software del framework de desarrollo de la SUNAT

Las aplicaciones empresariales en la SUNAT se construyen por capas, las cuales se elaboran utilizando diferentes frameworks, esta división obedece a que las aplicaciones de SUNAT son esencialmente Web y que necesitan ser escalables, seguras, mantenibles, performantes, responsivas, portables, adaptables, flexibles e interoperables.

El FRONTEND, Para el caso de aplicaciones Web requiere ser responsivo, portable y adaptable, es por esto que se debe usar el framework Bootstrap en combinación con HTML5, CSS3 y JS para la capa Presentación y el framework Jquery y AngularJS para la comunicación entre estos y los componentes del BACKEND.Para el caso de clientes desktop, están basados en Netbeans Platform con componentes de JAVAFX. El FRONTEND, se comunica con el BACKEND de las siguientes maneras: Invocaciones Ajax del tipo POST, GET, PUT, DELETE siguiendo el estándar REST.

En el Backend, dependiendo del tipo de Invocación, la solicitud debe ser recepcionada en la capa de Control, por el componente adecuado, según se describe a continuación: Servicio REST con estándar JAX-RS para el caso de invocaciones REST.

Sin importar cuál sea el mecanismo de recepción de la Petición, el procesamiento debe ser delegado a los componentes EJB Stateless o Beans de CDI, en la capa de Servicio, que se encargaran del procesamiento de la solicitud.

Para el caso que se requiera acceder a la Base de Datos desde la capa de Servicio, se usaran los componentes DAO JPA, en la capa de Persistencia. Debido a que en algunos casos se requiere procesamiento masivo o de larga duración, este se debe realizar en el BATCH, el BACKEND se comunica con el BATCH mediante mensajes JMS usando colas AQ.

En el BATCH los componentes MDB serán los encargados de recibir los mensajes JMS e invocar al servicio que se encargara del procesamiento, de forma similar a como lo hace la Capa de Control con la Capa de Servicio del BACKEND. A continuación se describen cada uno de los componentes de software:

CAPA DE FRONT-END (WEB)

 HTML5  CSS3  JS  BOOTSTRAP  JQUERY  ANGULARJS

CAPA DE FRONT-END (DESKTOP)

 Netbeans Platform + JavaFX

CAPA DE BACK-END (SERVIDOR)

 JAX-RS

 EJB Stateless / Beans CDI

 JPA

CAPA DE BATCH

 MDB

 EJB Stateless / Beans CDI