Plataforma EVEx

Envío y recepción de comprobantes electrónicos.

Fecha

Mayo de 2018

Cliente

Flecha Roja Technologies

Tipo de proyecto

Migración e implementación de la nube

Detalles Del Problema

Desde 2017, el Ministerio de Hacienda de Costa Rica implementó una plataforma de facturación digital para recibir y procesar cada factura en el país. Parte del requisito es el reconocimiento digital del documento. Por ejemplo: si A envía una factura a B, B debe reconocer ese documento (ya sea una aceptación o no).

Sin embargo, la especificación no considera cómo las personas o empresas deben organizar dicho intercambio de documentos digitales. Como resultado, las empresas a veces reciben los documentos por correo electrónico, FTP o servicios compartidos como Dropbox, etc. Y esto constituye un problema, especialmente al lidiar con cientos o miles de facturas de diversos proveedores.

Detalles De La Solución

Para resolver este problema, creamos una solución llamada Evex (Electronic Voucher Exchange).

Esta Solución Proporciona:
  • Un único punto para recibir cada documento (ya sea por una API o una aplicación web).
  • Acuse de recibo de los documentos entre el transmisor y el receptor.
  • La validación de la firma digital (XAdES).
  • Automatizar la gestión de facturas (los recursos humanos se pueden utilizar en tareas más valiosas).
  • Eliminar errores, por ejemplo: aceptar un documento alterado.

¿Cómo Fue Usado AWS?

Nuestra solución fue diseñada desde el inicio para ser un producto que empleara una serie de servicios de AWS, esto para lograr cumplir varios objetivos que de otra forma sería poco viable de manejar con una solución tradicional.

  • Capacidad de atender un número no determinado de clientes y de documentos. Nuestra solución debía ser capaz de poder atender sin problema un alta demanda o picos de carga de manera transparente.
  • Necesitábamos poder tener una infraestructura costo efectiva. Una infraestructura que creciera con nosotros y tuviera costos muy competitivos; mismos que en una solución onpremise no sería posible.

Queríamos hacer uso de servicios avanzados, más allá de solo tener maquinas virtuales. Por lo cual empleamos desde elementos como AWS Lambda, Amazon Cognito, Amazon RDS, Amazon DynamoDB y muchos otros más; en el diagrama que se presenta a la derecha, se muestra una vista general de la solución.

Principales Servicios De AWS Utilizados

  • EVEx fue diseñado desde un inicio para ser serverless. La principal solución informática utilizada en el sistema es AWS Lambda, toda la logica de negocio corre en lambdas, y todos los recursos en el API Gateway estan respaldados por integraciones lambda.
  • Una vez que se recibe una factura en el API Gateway, la solicitud desencadena la ejecución de AWS Step Functions, y una respuesta exitosa es enviada al cliente. AWS Step Functions actúa como un orquestador, invocando varias funciones lambda, cada una enfocada en proporcionar una funcionalidad específica al flujo de trabajo general. Cuando finaliza la ejecución de AWS Step Functions, el resultado (ya sea exitoso o no), se notifica al usuario a través de una notificación en la consola o el API.
  • Existen formas alternativas de enviar una factura, por ejemplo, el usuario puede optar por enviar la factura por correo electrónico, en consecuencia, Amazon Simple Email Service (Amazon SES), se utiliza para recibir el correo electrónico mediante un conjunto de reglas. Cuando entra un nuevo correo electrónico, Amazon SES invoca una función lambda que, a su vez, guarda metadatos en Amazon DynamoDB y desencadena una nueva ejecución de AWS Step Functions.
  • Para almacenar toda la información generada en EVEx (datos de usuario, información de recibos, información de transacciones, entre otros), esta aplicación implementa Amazon DynamoDB ya que es una base de datos flexible, totalmente administrada, sin servidor, NoSQL y que se escala automáticamente según la demanda.
  • El registro de usuarios, el inicio de sesión y el control de acceso de los usuarios se llevan a cabo utilizando Amazon Cognito, este servicio realiza la gestión de los usuarios y los almacena en un grupo de usuarios, más tarde, con tokens generados por Amazon Cognito, API Gateway maneja el control de acceso de los datos y recursos en el sistema.

 

  • Los usuarios interactúan con el sistema a través de una API Rest desarrollada usando Amazon API Gateway, este servicio actualmente procesa cientos de miles de llamadas API simultáneas por mes, proporcionando administración de API desde un solo punto, ayudando con el control de acceso a los datos (mediante el uso de un lambda personalizado autorizador) y monitoreo (a través de AWS Cloud Watch). Todas las interacciones, ya sea con sistemas externos (como ERP) o usuarios, se realizan a través de Amazon API Gateway.
  • Además, EVEx utiliza Amazon Simple Storage Service (Amazon S3) como almacenamiento estándar para todos los archivos, EVEx almacena los archivos PDF, XML y Zip generados cuando se ejecuta una transacción. Utilizamos Amazon S3 porque, por definición, permite almacenar una cantidad ilimitada de archivos de forma duradera al ofrecer una replicación y tolerancia a fallas extraordinaria, al tiempo que permite optimizar los costos al cambiar la clase de almacenamiento de los objetos, también se eligió Amazon S3 porque ofrece un excelente sistema de seguridad para el control de acceso de los objetos almacenados.
  • AWS CloudFormation junto con AWS Serverless Application Model (SAM) se utilizaron como nuestra infraestructura como solución de código, para proporcionar una manera de implementar la aplicación en múltiples entornos así como proporcionar una infraestructura versionable, rastreable y controlable. Se desarrollaron varias plantillas anidadas de AWS CloudFormation a medida que el sistema crecía en tamaño (superando los límites de una sola plantilla). Con la definición de todos los recursos, permisos, parámetros y configuración, AWS CloudFormation crea y configura con éxito la mayoría de los recursos de Amazon Web Services que EVEx necesita.
  • AWS CloudWatch se utiliza activamente como un servicio centralizado de registro y métrica, proporcionando una infraestructura vital para el almacenamiento de registros y consultas. Además, los eventos programados de AWS CloudWatch se utilizan para activar comprobaciones de estado y otras tareas programadas menores.

Resultados Obtenidos A La Fecha

Como resultado, la solución pudo resolver todos los problemas que los clientes tenían con respecto a la gestión de recibos, como fraude, validación automática, clasificación e integración con sus ERP existentes.

  • Cada uno de nuestros clientes ha obtenido una validación en tiempo real y la aceptación de las facturas.
  • Todos los documentos que han sido alterados (ya sea por accidente o deliberadamente) han sido rechazados
  • RESTAPI ha proporcionado una manera fluida de integrar a las empresas con el servicio y ampliar la plataforma para interoperar con el backend del cliente.
  • El cliente tiene un seguimiento completo de cada documento (cuando se entregó, si tiene algún problema, puede ver el XML original, la representación en PDF y el recibo del Ministerio de Hacienda).
  • Rentable (en comparación con un enfoque tradicional en centros de datos locales).
Lecciones Aprendidas

A través de las diferentes sesiones realizadas por el equipo de desarrollo del proyecto, en las cuales se revisaban informes y se tomaban decisiones sobre como utilizar el conocimiento y la experiencia de cada miembro del equipo de forma optima, se logró enriquecer el conocimiento general y optimizar buenas practicas, por ejemplo en la utilización de servicios como Amazon DynamoDB utilizado en la plataforma para manejar el tráfico entrante así como Amazon Aurora para la realización de busquedas requeridas por los usuarios finales.

Siguientes Pasos

Varios clientes de EVEx entre los que destacan Auto Mercado y el Banco Central de Costa Rica, se encuentran bastante satisfechos con la solución y esperan construir implementaciones personalizadas nativas en la nube que amplíen las funcionalidades ya proporcionadas por EVEx y las integren con su lógica comercial y ERP. Actualmente hay al menos dos implementaciones planificadas, una de las cuales se encuentra actualmente en fase de documentación de requisitos. Como desarrollo paralelo, se planea usar AWS Amplify para crear una aplicación móvil y así aumentar el mercado objetivo no solo para las empresas sino también para todas las personas.

Resultados

Gestión de recibos

La solución pudo resolver todos los problemas que los clientes tenían con respecto a la gestión de recibos, como fraude, validación automática, clasificación e integración con sus ERP existentes.

Cada uno de nuestros clientes ha obtenido una validación en tiempo real y la aceptación de las facturas.

Integridad

Todos los documentos que han sido alterados (ya sea por accidente o deliberadamente) han sido rechazados

RESTAPI ha proporcionado una manera fluida de integrar a las empresas con el servicio y ampliar la plataforma para interoperar con el backend del cliente.

Seguimiento

El cliente tiene un seguimiento completo de cada documento (cuando se entregó, si tiene algún problema, puede ver el XML original, la representación en PDF y el recibo del Ministerio de Hacienda).

Nuestros servicios para
Nombre de la marca

AWS

  • Amazon RDS
  • Amazon DynamoDB
  • Amazon Cognito
  • Amazon S3
  • Amazon API Gateway
  • Amazon SES
  • Amazon CloudFront
  • AWS Cloudwatch
  • AWS Lambda

Serverless

  • AWS Lambda

Almacenamiento

  • Amazon Simple Storage Service (Amazon S3) 

Herramientas De Terceros

  •  La interfaz gráfica del portal web es un aspecto muy importante que forma parte de la solución, se desarrolló utilizando la plataforma Angular y está escrito en HTML y Typecript. Además, para poder validar las firmas electrónicas empleamos otros de nuestros productos que funcionan en AWS, en particular SignumOne.

COMIENCE EL CAMBIO Y DESCUBRA TODAS LAS
VENTAJAS QUE TENEMOS.

¡Trabajemos juntos!

 DEJAMOS QUE NUESTRA EXPERIENCIA HABLE  POR NOSOTROS.

¿Necesitas más información?

Recursos

Errores habilituales que impactan tus costos

AWS posee un impresionante abanico de servicios que podemos emplear en un sinnúmero de cargas de trabajo diferentes. Esto nos permite implementar soluciones muy novedosas de una manera ágil y eficiente. Pero este poder conlleva consigo una gran responsabilidad; en...

Microservicios Tolerantes a Fallas

Microservicios Tolerantes a Fallas

En este artículo explicaremos tres patrones de estabilidad fundamentales para construir microservicios tolerantes a fallas. Patrones de Estabilidad Debemos entender que estos patrones lo que persiguen es promover la resiliencia en un sistema distribuido. Y en nuestra...

Teletrabajo con AWS

Teletrabajo con AWS

AWS posee una serie de herramientas que están diseñadas para apoyar el trabajo remoto y permitir una mejor interacción entre las personas y las empresas para las cuales laboran. Esto cobra mayor relevancia en este momento, cuando la mayoria de los países y empresas...