Está en la página 1de 11

Código: F4-PS4-2-PE-03

ARQUITECTURA DE SOFTWARE Revisión: 02

Cod. Nombre Módulo de Control del Sistema Nacional de Información Forestal


MC-
Software Software y de Fauna Silvestre.
SNIFFS
Versió
Creación 01/06/2021 Creador Juan Carlos Pérez Gil - Valtx
n
Modificado
Modificación 28/06/2021 Juan Carlos Pérez Gil - Valtx 1.4
r

1 INTRODUCCIÓN
El presente documento provee una visión general de la arquitectura del nuevo sistema denominado
“Módulo de Control del Sistema Nacional de Información Forestal y de Fauna Silvestre (MC-SNIFFS)”
desarrollado para gestionar los procesos de gestión forestal y fauna silvestre. Las definiciones graficas
contenidas en este documento muestran los diferentes aspectos de diseño del software a desarrollar, los
cuales están basados en los estándares de la Oficina de Tecnologías de Información de SERFOR.

El documento brinda al administrador, al área de soporte o a quien lo requiera, una guía técnica
detallada para lograr el mantenimiento de la aplicación.

2 DEFINICIONES Y ABREVIACIONES
 MC-SNIFFS: Módulo de Control del Sistema Nacional de Información Forestal y de Fauna Silvestre.
 SERFOR: Servicio Nacional Forestal y de Fauna Silvestre.
 OTI: Oficina de Tecnologías de Información.
 PIDE: Plataforma Nacional de Interoperabilidad.
 GEO-SERFOR: Portal web de la Infraestructura de Datos Espaciales del SERFOR.
 ANA: Autoridad Nacional del Agua.
 OSINFOR: Organismo de Supervisión de los Recursos Forestales y de Fauna Silvestre.
 MINAM: Ministerio del Ambiente.
 SERNANP: Servicio Nacional de Áreas Naturales Protegidas por el Estado.
 SENACE: Servicio Nacional de Certificación.
 MIDAGRI: Ministerio de Desarrollo Agrario y Riego.
 DGAA: Dirección General de Asuntos Ambientales.
 DIGESPACR: Dirección General de Saneamiento de la Propiedad Agraria y Catastro Rural.
 MINCUL: Ministerio de Cultura.
 DICAPI: Dirección General de Capitanías y Guardacostas.
 VUCE: Ventanilla Única de Comercio Exterior.

3 REFERENCIAS
Procesos de Ingeniería de la Metodología Integrada de SERFOR.

4 PROPÓSITO
Definir la arquitectura para el desarrollo del nuevo sistema denominado “Módulo de Control del Sistema
Nacional de Información Forestal y de Fauna Silvestre (MC-SNIFFS)” de modo que permita brindar la
información técnica necesaria para el soporte de la solución.

5 ALCANCE
Detallar la arquitectura propuesta por el equipo de desarrollo contemplando la interrelación con los otros
subsistemas; así como los diagramas de diseño necesario para comprender el comportamiento de los
componentes.

6 METAS Y RESTRICCIONES DE LA ARQUITECTURA


Proponer un diseño de arquitectura de software que cumpla los estándares de SERFOR.

P á g i n a 1 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

6.1

P á g i n a 2 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

7 ARQUITECTURA A NIVEL DE INFRAESTRUCTURA


7.1 DIAGRAMA DE LA ARQUITECTURA

P á g i n a 3 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

7.1 DESCRIPCIÓN DE LA ARQUITECTURA


La arquitectura de la solución a nivel de infraestructura está compuesta por los siguientes componentes que a continuación se detallan:

DETALLA DE LA ARQUITECTURA A NIVEL DE INFRAESTRUCTURA


COMPONENTE DETALLE PRODUCCIÓN QA DEV
Este componente de arquitectura representa al - SQL Server 2019 - Windows Server 2012 - SQL Server 2019 - Windows Server 2012 - SQL Server 2019 - Windows Server 2012
servidor SQL Server 2019 instalado en Windows - 64 GB RAM - 500 GB Disco Duro -16 GB RAM - 150 GB Disco Duro -8 GB RAM - 250 GB Disco Duro
BASE DE DATOS
Server 2012 que almacenara la información de - 8 CPU - 4 CORES - 8 CPU - 4 CORES - 8 CPU - 4 CORES
la solución propuesta. - PUERTO 1433 - PUERTO 1433 - PUERTO 1433
- Servidor Ngnix 1.2 en Linux CentOS 7 - Servidor Ngnix 1.2 en Linux CentOS 7
Este componente de arquitectura representa al
- 18 GB RAM - 250 GB disco - 8 GB RAM -150 GB disco
FRON END servidor Ngnix 1.2 instado en Linux CentOS 8
- 16 CPU - 4 CORES - 8 CPU - 4 CORES
que contendrá la aplicación web del MCSNIFFS.
- PUERTO 80 y 443 - PUERTO 80 y 443
Este componente de arquitectura representa al
Servidor Widfly 20.0.1 en Linux CentOS 7 Servidor Widfly 20.0.1 en Linux CentOS 7 Servidor Widfly 20.0.1 en Linux CentOS 8
servidor Widfly 20.0.1 instado en Linux CentOS 8
- 24 GB RAM - 250 GB Disco Duro - 8 GB RAM - 150 GB disco - 8 GB RAM - 250 GB disco
BACK END que contendrá las API's rest del MCSNIFFS
- 16 CPU - 4 CORES - 8 CPU - 4 CORES - 8 CPU - 4 CORES
desarrollados en SpringBoot con Java usando
- PUERTO 8080, 8443 y 9990 - PUERTO 8080, 8443 y 9990 - PUERTO 8080, 8443 y 9990
Open JDK 11.
Este componente de arquitectura representa al
WSO2 3.2 (Open source) en Linux CentOS 7 WSO2 3.2 (Open source) en Linux CentOS 7
servidor WSO2 3.2 instado en Linux CentOS 8
- 24 GB RAM - 250 GB Disco Duro - 8 GB RAM - 150 GB disco
API MANAGER que contendrá las configuraciones de Api
- 16 CPU - 4CORES - 8 CPU - 4 CORES
Manager y gestionará los servicios
- PUERTO 8280 y 8243 - PUERTO 8280 y 8243
desarrollados.

Este componente de arquitectura representa a


La solución debe ser soportada por un La solución debe ser soportada por un La solución debe ser soportada por un
la aplicación Móvil desarrollada para dispositivos
APP MOVIL dispositivo móvil con Android 10 o superior que dispositivo móvil con Android 10 o superior que dispositivo móvil con Android 10 o superior
Android 10 o superior y se implementara de
tenga como mínimo 2GB RAM y 8GB ROM tenga como mínimo 2GB RAM y 8GB ROM que tenga como mínimo 2GB RAM y 8GB ROM
manera nativa con Java usando JDK 8.

Este componente de arquitectura representa a


La solución debe ser soportada por un La solución debe ser soportada por un La solución debe ser soportada por un
la aplicación Desktop desarrollada para equipos
computador con Windows 7 o Superior que computador con Windows 7 o Superior que computador con Windows 7 o Superior que
APP DESKTOP de cómputo sin conectividad a internet y se
tenga como mínimo 8GB RAM y 500 GB de disco tenga como mínimo 4GB RAM y 250 GB de disco tenga como mínimo 4GB RAM y 250 GB de
implementara con Java usando Open JDK 11 y
duro. duro. disco duro.
SQLite
Se integrará con: Se integrará con: Se integrará con:
Este componente de arquitectura representa a
- GEO SERFOR - PIDE - ANA - MINAM - GEO SERFOR - PIDE - ANA - MINAM - GEO SERFOR - PIDE - ANA - MINAM
EXTERNAL SERVICES todos los servicios externos a los cuales se
- SERNANP - SENACE - MIDAGRI - DGAA - SERNANP - SENACE - MIDAGRI - DGAA - SERNANP - SENACE - MIDAGRI - DGAA
estará integrado la solución propuesta.
- DIGESPACR - MINCUL - DICAPI - VUCE - DIGESPACR - MINCUL - DICAPI - VUCE - DIGESPACR - MINCUL - DICAPI - VUCE
- File Server (Servidor independiente Windows - File Server ((Servidor independiente Windows - File Server (Servidor independiente Windows
Server 2016 con Carpeta Compartida de 500 GB Server 2016 con Carpeta Compartida de 150 GB Server 2016 con Carpeta Compartida de 100
Este componente de arquitectura representa a
utilizando el protocolo SMB, se deben de utilizando el protocolo SMB, se deben de brindar GB utilizando el protocolo SMB, se deben de
UTILITY SERVICES todos los utilitarios que se estarán utilizando
brindar permisos de lectura y escritura). permisos de lectura y escritura). brindar permisos de lectura y escritura).
dentro solución propuesta.
- SMTP Gmail (Envío de correos). - SMTP Gmail (Envío de correos). - SMTP Gmail (Envío de correos).
- JasperReport (Reportes). - JasperReport (Reportes). - JasperReport (Reportes).

P á g i n a 4 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

8 ARQUITECTURA A NIVEL DE APLICACIÓN


8.1 DIAGRAMA DE LA ARQUITECTURA

P á g i n a 5 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

8.2 DESCRIPCIÓN DE LA ARQUITECTURA

La arquitectura de la solución a nivel de aplicación está compuesta por 3 niveles los cuales a continuación
se detallan:

8.2.1 Nivel 1:
Este nivel está compuesto por cuatro desarrollos Back End que contendrán los servicios que
serán administrados por el Api Manager. Estos desarrollos tendrán la misma estructura y serán
construidos con SpringBoot en Java usando Open JDK 11 y Base de datos SQL server 2019.
Los desarrollos serán nombrados como “MCSNIFFSSEGURIDAD-API” y “MCSNIFFS-API”
siendo desplegados en un servidor Widfly 20.0.1 instado en Linux CentOS 7.

 El desarrollo “MCSNIFFSSEGURIDAD-API” contendrá todas las operaciones relacionadas a


la seguridad de la solución.
 El desarrollo “MCSNIFFS-API” contendrá todas las operaciones relacionadas a los procesos
de la solución. Esta también se integrará con los distintos servicios externos con los que
interactuaran los procesos.
 El desarrollo “MCSNIFFSEXTSERV-API” contendrá todas las operaciones relacionadas a la
integración a los distintos servicios externos como son SENACE, VUCE, SERNANP, etc.
 El desarrollo “MCSNIFFSENTCORE-API” contendrá todas las operaciones relacionadas a las
tablas maestras core del SERFOR.

Ambos desarrollos mantendrán la siguiente estructura:

8.2.2 Nivel 2:
Este nivel está compuesto por el Api Manager (ambiente de QA y Producción) en cual estará
encargado de gestionar todos los servicios Rest desarrollados en el nivel 1 y que interactuaran con los
desarrollos del nivel 3 de la solución propuesta. Se propone implementar WSO2 3.2 (Open Source)

P á g i n a 6 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

instado en Linux CentOS 7.


8.2.3 Nivel 3:
Este nivel está compuesto por tres desarrollos destinados a ser usados por los usuarios finales:

 Aplicación Web: Desarrollada en Angular 11 con Boostrap bajo el patrón Modelo Vista
Controlador (MVC). La aplicación será nombrada como “MCSNIFFS-WEB” y será desplegada
como el Front End de la solución en un servidor Ngnix 1.2 (ambiente de QA y Producción)
instado en Linux CentOS 7.

 Aplicación Desktop: Desarrollada en Java usando Open JDK 11 y SQLite bajo el patrón
Modelo Vista Controlador (MVC). Esta aplicación sincronizará la información registrada a
través de un archivo de texto plano que será enviado por medio del consumo de un servicio
web del Api Manager a través de una conexión a internet. También podrá exportar dicho
archivo de texto plano para poder ser importando en la aplicación Móvil. La aplicación será
nombrada como “MCSNIFFS-DESKTOP” y podrá ser instalada en un computador con
Windows 7 o Superior que cuente con Open JDK 11.

P á g i n a 7 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

 Aplicación Móvil: Desarrollada de manera nativa con Java usando JDK 8 bajo el patrón
Modelo Vista Presentador (MVP) para soportar dispositivos Android 10 o superior. Esta
aplicación sincronizará la información registrada a través de un archivo de texto plano que
será enviado por medio del consumo de un servicio web del Api Manager a través de una
conexión a internet. También podrá importar la información del archivo de texto plano
generada por la aplicación desktop. La aplicación será nombrada como “MCSNIFFS-
MOBILE”.

P á g i n a 8 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

8.3 DIAGRAMA DE SINCRONIZACIÓN


A continuación, se presenta el flujo de la sincronización de la información que realizaran los aplicativos
de Escritorio y Móvil con la solución principal por medio del Api Manager.

9 HERRAMIENTAS Y TECNOLOGÍAS UTILIZADAS


 Front End:
SISTEMA OPERATIVO DEL SERVIDOR Linux CentOS 7
SERVIDOR Nginx 1.2
TECNOLOGÍAS UTILIZADAS Angular 11 con Boostrap
LENGUAJES UTILIZADOS TypeScript
IDE DE DESARROLLO Visual Studio Code
BROWSER QUE SOPORTARA Chrome, Firefox, Edge
CONTROL DE VERSIONES GitLab

 Api Manager:
SISTEMA OPERATIVO Linux CentOS 7
SERVIDOR WSO2 3.2
 La seguridad para accesos a
APIs se realizará mediante
Tokens AUTH2 implementados
WSO2
CONSIDERACIONES
 A nivel de Api Manager se
usará SSL/TLS y gestionará a
través de roles de Usuarios

 Back End:
SISTEMA OPERATIVO Linux CentOS 8
SERVIDOR Widfly 20.0.1
LENGUAJES UTILIZADOS Java con Open JDK 11
SPRING BOOT 2.3
SPRING FRAMEWORK 5.1
FRAMWORKS UTILIZADOS HIBERNATE
SPRING DATA
MAVE 3.6
IDE DE DESARROLLO Eclipse o IntelliJ Idea
CONTROL DE VERSIONES GitLab

 Base de Datos:
SISTEMA OPERATIVO Windows Server 2012
SERVIDOR SQL Server 2019
BD A USAR SERFOR_BDMCSNIFFS

P á g i n a 9 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

SERFOR_BDCORECENTRAL
SERFOR_BDACCESOS
IDE DE DESARROLLO SQL Manager Studio

 App Móvil:
SISTEMA OPERATIVO Android 10 o Superior
LENGUAJES UTILIZADOS Java con JDK 8
IDE DE DESARROLLO Android Studio
CONTROL DE VERSIONES GitLab

 App Desktop:
SISTEMA OPERATIVO Windows 7 o Superior
LENGUAJES UTILIZADOS Java con Open JDK 11
IDE DE DESARROLLO Eclipse o IntelliJ Idea
CONTROL DE VERSIONES GitLab

10 CRITERIOS PARA EL DISEÑO Y SELECCIÓN DE INTERFACES


Para la selección y el diseño de las diferentes alternativas de las interfaces se evaluarán los siguientes
criterios:
 Facilidad de Construcción
 Tiempo de Respuesta
 Estándares de la Oficina de Tecnologías de Información de SERFOR.
 Implementación rápida y ágil.

11 CRITERIOS DE INTEGRACIÓN DEL SOFTWARE


Para la óptima integración del Software se deberán tener que cumplir, considerar y evaluar los siguientes
criterios:
 Antes de realizar la integración todos los componentes deberán haber pasado por pruebas
unitarias.
 Antes de realizar la integración, todas las incidencias, errores u otras no conformidades
encontradas durante las pruebas unitarias deberán estar cerradas.
 Se deberá tener preparado los ambientes y entornos para la integración (Entorno de
Desarrollo).
 Deberá haberse inicializado y migrado data consistente previa a la integración.
 Otros Criterios que apoyen a que la integración resulte un éxito.
11.1 SECUENCIA DE INTEGRACIÓN
Para que el Software se integre totalmente se seguirá la siguiente secuencia de integración:
 Validar que el entorno de integración esté correctamente configurado y listo para utilizar.
 Realizar las pruebas unitarias a todos los componentes desarrollados (De todos los módulos).
 Levantar todos los errores e incidencias encontradas en las pruebas.
 Realizar revisión de pares al código fuente y levantar las no conformidades.
 Validar la integración del sistema MCSNIFFS con:
o GEO SERFOR
o PIDE
o ANA
o MINAM
o SERNANP
o SENACE
o MIDAGRI
o DGAA
o DIGESPACR
o MINCUL
o DICAPI
o VUCE
 Asegurarse que todos los componentes del Software desarrollados estén funcionando

P á g i n a 10 | 11
Código: F4-PS4-2-PE-03
ARQUITECTURA DE SOFTWARE Revisión: 02

correctamente.
 Finalmente realizar las pruebas del Software y luego de ellas las Pruebas de Aceptación con
los Usuarios Finales.

12 CONTROL DE VERSIONES

VERSIÓN N° FECHA AUTOR DESCRIPCIÓN


1.0 01/06/2021 Juan Carlos Pérez Gil Creación del Documento
1.1 09/06/2021 Juan Carlos Pérez Gil Actualización del documento
Actualización de diagramas,
1.2 17/06/2021 Juan Carlos Pérez Gil
aceptación de mejoras y detalles.
Actualización de diagrama a nivel de
Infraestructura, redimensionamiento
de BD en producción y asignación
1.3 23/06/2021 Juan Carlos Pérez Gil
de espacios requerido en los File
Servers de cada uno de los
ambientes.
Actualización de criterios de
1.4 28/06/2021 Juan Carlos Pérez Gil seguridad para el Api Manager y File
Server

P á g i n a 11 | 11

También podría gustarte