Índice

Proceso de Instalación Evolution

On Premise/ On Cloud

Alcance

El presente documento tiene como objetivo, brindar una guía básica, de instalación de evolution en un ambiente local del cliente o en nube (AWS, Google Cloud entre otras), utilizando máquinas virtuales para la distribución.

Nota
Iniciaremos con las arquitectura de evolution, para demostrar en forma de bloques todos sus componentes

1. Arquitectura Evolution

Distribución de componentes

Evolution está compuesta por una serie de componentes que interactúan para brindar la funcionalidad de la aplicación. Estos componentes son:

  • Website de Evolution Este sitio es el que da la cara al usuario final y le permite realizar las acciones que permite el sistema.
  • Website para la Autenticación de Usuarios administrados por Evolution Este sitio implementa OpenID Connect y el Framework OAuth 2.0, para administrar usuarios propios para Evolution.
  • Api REST para la aplicación Móvil Funciona como “backend” para la aplicación móvil
  • Bolsa de Trabajo, Website público para Reclutamiento y consola Web para administrar la bolsa de trabajo.
    Estos dos WebSites apoyan el proceso de Reclutamiento de Oferentes para los procesos de selección y contratación de nuevo personal.
  • API para la Generación de Nóminas (GenPlaApi). Este API, es quién realiza los cálculos de nóminas iniciados desde el Website de Evolution.
  • Servicio para la ejecución de Tareas en Programadas (AppJobHost). Este servicio Windows es quien ejecuta aquellas actividades que son planificadas por los usuarios o por otros componentes de Evolution, por ejemplo: envío de notificaciones, ejecución desatendida de los cálculos de nómina, actualización final de las transacciones luego que es autorizada en su último nivel, etc.
  • API para la generación de Reportes creados con Crystal Reports. Este API mantiene la compatibilidad de Evolution, con versiones anteriores que soportaban la integración de reportes elaborados con Crystal Reports.

Estos componentes se pueden instalar en un solo servidor, o pueden estar distribuidos en diferentes equipos, para balancear la carga de la ejecución de cada componente. Adicionalmente a estos componentes, hay una serie de programas ejecutables que cumplen funciones específicas de configuración de ciertas funcionalidades de Evolution, tales como:

  • Configuración de SmartLists
  • Gestión de los recursos de globalización y localización
  • Importación de datos a través de plantillas (para ejecutarse en tareas del sistema operativo)
  • Formulador de los cálculos de nómina.
  • Carga y/o descarga de archivos adjuntos e imágenes desde y hacia la base de datos.

Website Evolution

El WebSite de Evolution, hospedado en IIS, está desarrollado bajo el modelo MVC (Model / View / Controller). Con el fin de facilitar la administración, se separó el código del controlador en capas que proveen funcionalidad específica.

[Figura]

Como se observa en la imagen, los Controladores delegan la aplicación de reglas de negocio y la obtención de los modelos en Servicios y éstos a su vez, delegan el acceso a los datos en un Repositorio Genérico, que abstrae el acceso a la base de datos a través de Entity Framework. Evolution puede interactuar con una base de datos Oracle o SQL Server de manera nativa.

Los servicios de infraestructura a que se refiere la imagen son:

  • Reportes y Consultas
    • Generación de consultas a Microsoft Excel
    • Generación de documentos de Microsoft Word
    • Generación de diagramas a Microsoft Visio
    • Configuración y generación de reportes diseñados con Reporting Services
    • Configuración para la integración de reportes diseñados con Crystal Reports
  • Ejecución de Procesos
    • Definición de Alertas, de su audiencia y de su programación.
    • Ejecución de Procesos manuales y programados (con recurrencia)
    • Programación de cálculo de nóminas
    • Aplicación de acciones diferidas al futuro
    • Gestión de errores y posibilidad de reintento.
  • Flujos de Trabajo
    • Rutas y Responsables de las Autorizaciones
    • Notificaciones, Recordatorios y Escalamiento
    • Gestión de errores y posibilidad de reintento.
  • Parametrización y Configuración
    • Parámetros generales por país, empresa, unidad, centro de trabajo
    • Listados Inteligentes con Paneles de Búsqueda
    • Listas de Valores
  • Servicios de Aplicación
    • Cache
    • Cifrado
    • Globalización y Localización
    • Bitácoras de ejecución del código fuente y de errores
  • Extensibilidad de Evolution
    • Crear atributos adicionales a las entidades
    • Entidades y Consultas Adicionales
    • Vistas “Custom”
    • SDK para elaboración de Plugins con código fuente propio.

Website para autenticación de usuarios

Este es un WebSite que implementa la autenticación por token, utilizando OpenID y OAuth 2.0. En este momento es esencial para que los usuarios de la aplicación móvil puedan identificarse y utilizar las funcionalidades disponibles. Asimismo, Evolution puede configurarse para reemplazar su proceso nativo de autenticación con este componente, con este cambio se permite la creación de cuentas locales, o la integración de proveedores remotos de autenticación, tales como Azure AD, Office 365 y Google Suit, entre otros; existen 45 proveedores externos certificados para utilizar el protocolo, entre las cuales se encuentran inclusive las redes sociales. Y finalmente, permite la especificación de doble factor de autenticación, que es tan importante en este momento para asegurar la identidad de los usuarios.

WebApi Rest (Backend para aplicación móvil)

Soporta las funcionalidades disponibles de la aplicación móvil. En este momento la aplicación móvil está orientada a la gestión de solicitudes y autorizaciones de las transacciones de Evolution. Así como consultas de información propia del usuario.

WebSites de apoyo al Reclutamiento de Oferentes

Se cuenta con dos websites adicionales. El primero, es una bolsa de trabajo destinada a publicarse directamente en la Internet y sirve como medio para que las personas que desean laborar en una empresa puedan ingresar su Curriculum Vitae, y también puedan aplicar a oportunidades de empleo publicadas por el área de Recursos Humanos. El segundo Website es una consola de administración del sitio anterior y permite sincronizar desde y hacia Evolution, la información de los Oferentes.

API para Generación de Nóminas

Este es un API auto alojado, cuyo único propósito es ejecutar los cálculos de nómina. Interactúa con el WebSite de Evolution a través de una tarea programada en AppJobHost, quién quien finalmente tiene el acceso directo al API. Es posible que una sola instancia de este servicio pueda atender a múltiples instancias del WebSite de Evolution, ya que los datos que se envían a la cola, permiten que la ejecución se haga de manera autosuficiente. Este servicio es una aplicación multitareas que de manera concurrente ejecuta una o más cálculos de nómina. Está basado en un sistema de semáforos para garantizar que los accesos a la base de datos no importando el hilo donde se ejecuten, se hagan de manera secuencial, para evitar “dead locks” producidos por las transacciones procesadas. Los cálculos de nómina se configuran con un ejecutable creado para ello y que permite especificar los procedimientos almacenados que se ejecutan antes y después de procesar el cálculo, así como las fórmulas específicas para generar ingresos y deducciones de los empleados. Los cálculos de nómina no forman parte del código fuente de Evolution. Las fórmulas por aplicar están almacenadas en la base de datos y son interpretadas en tiempo de ejecución. A nivel de base de datos y un archivo texto se almacena la bitácora de ejecución de cálculos, lo que permite consultar errores, advertencias y excepciones que se puedan dar en el momento de la ejecución.

Servicio para Ejecución de Tareas en Programadas

Este es un servicio desarrollado para que sea responsable de ejecutar tareas en segundo plano, que son solicitadas por los usuarios a través de Evolution o que son programadas por los otros componentes de Evolution. Las tareas en segundo plano que puede ejecutar son:

  • Envío de notificaciones a los usuarios (correo electrónico u otros que se programen)
  • Ejecución y notificación de Alertas
  • Ejecución de cálculos de nómina programados a una hora en particular
  • Ejecución de procesos de finalización de las transacciones luego de que son autorizadas.
  • Ejecución de procesos diferidos al futuro.
  • Generación de índices para búsquedas textuales con algoritmos de “ranking”
  • Inicio de flujos de autorización programados desde la base de datos.
  • Generación de cálculos de nómina (enviando la orden al API correspondiente)

El objetivo de este servicio es liberar al WebSite de Evolution de tener que ejecutar procesos que no responde directamente a peticiones directas que hacen los usuarios. Es posible que una sola instancia de este servicio pueda atender a múltiples instancias del WebSite de Evolution, ya que los datos que se envían a la cola y a las tareas programadas que permiten que la ejecución se haga de manera autosuficiente. Este servicio implementa un mecanismo de programación de actividades basado en un motor muy popular llamado Quartz.Net, que es un proyecto Open Source, muy utilizado en diversos ambientes.

Componentes adicionales

Adicionalmente a los componentes desarrollados por ASEINFO, Evolution depende de otros componentes de terceros que se listan a continuación:

  • Microsoft Internet Information Service (IIS) 8.5 o superior
  • .Net Framework 4.8
  • Runtime para–Crystal Reports v. 13 (parche 20)

Todos estos son componentes de descarga gratuita y se requieren en el momento de la instalación de Evolution.

Servidor de Base de Datos

Evolution requiere un servidor de base de datos para almacenar su información. En este momento se soportan las siguientes bases de datos:

  • Microsoft SQL Server 2016 o superior. Sobre sistema operativo Windows Server 2012 R2 o superior.

  • Oracle 12c R2 (12.2.0.1) o superior

Sobre alguno de los siguientes sistemas operativos:

  • Microsoft Windows Server 2016 o superior de 64 bits.
  • Oracle Linux 4 o superior
  • Red Hat Enterprise Linux 4 o superior
  • Suse Linux Enterprise Server 10 o superior
  • Solaris
  • HP-UX

A nivel de base de datos se requieren crear al menos una base de dato, para almacenar información de cada componente.

Nombre de BD Plataforma requerida Descripción
EvoDb SQL Server / Oracle Base de datos con la información de Evolution para brindar la funcionalidad. Para facilitar la comprension del esquema esta dividado en esquemas de BD que coninciden con los módulos
EvoRys SQL Server / Oracle (Opcional) Base de datos con la data de la Bolsa de Trabajo para reclutamiento

Las estimaciones que se hacen a continuación no incluyen el escenario de una instalación muy grande, puesto que esta debería de analizarse de manera particular para cada caso. Estas estimaciones pueden aplicarse en ambientes virtualizados o con servidores físicos.

¿Es útil esta información?

En este artículo