fe12_12

¿SABÍA UD.?

De acuerdo a la resolución NAC-DGERCGC14-00157 del SRI, se establece la obligatoriedad de emisión de comprobantes electrónicos para varios organismos y entidades públicas, de acuerdo al calendario correspondiente (emitido bajo la resolución NAC-DGERCGC14-00236 de la misma entidad de control). Estas normas tienen como objetivo generales tener un mayor control en la tributación a través de una única base datos unificada.

La solución de facturación electrónica aquí presentada, referida como FE12 (Facturación Electrónica 12 Factores) le permitirá al emisor tributar de manera ágil y mantener en línea un repositorio único de sus documentos electrónicos emitidos y recibidos, contando con el respaldo tecnológico que supone el contar con los factores de calidad manifestados en los 12 factores para desarrollo de aplicaciones.

¿LE ES FAMILIAR ESTE ESCENARIO?

ProductoXW

Si su respuesta es afirmativa, se puede concluir que tiene un producto de mala calidad.

FLUJO EN FE12

FlujoFE12_1W

Este es un ejemplo del flujo que sigue nuestro sistema y como es posible acoplarlo al suyo.

¿QUÉ ES FE 12?

Es la herramienta tecnológica que le permitirá a Ud. facturar electrónicamente de manera óptima y confiada.

Basados en principios técnicos de alto rendimiento, sustentados en un cuerpo de conocimiento desarrollado a lo largo de la industria y madurado a través del tiempo, hemos creado FE12, un sistema de Facturación Electrónica (F.E.) usando 12 factores de desarrollo (12) para aplicaciones modulares, críticas, extensibles y portables.

CARACTERÍSTICAS TÉCNICAS

  • Capacidad de alojamiento en la nube.
  • Desarrollado sobre productos abiertos y líderes en tecnología: Java y PHP.
  • Uso de Sistema de Encolamiento y Mensajería estándar AMQP.
  • Uso de Sistema de virtualización basado en contenedores (Docker 1.7+).
  • Base de datos PostgreSQL/MariaDB/Cubrid.
  • Particionamiento de tablas para volúmenes altos de información.
  • Uso de 100% de productos de código abierto, para precautelar su seguridad y su bolsillo.
  • Acoplable a sistemas de monitoreo existentes.
  • Acoplable a sistemas de orquestamiento existentes.
  • Acoplable a sistema de flujo de eventos.

¿QUÉ CARACTERÍSTICAS TIENE?

  • Configurable:
    • Emisores
    • Establecimientos
    • Puntos de emisión
    • Usuarios y roles
  • Generación de representación XML de los documentos del sistema fuente del cliente[1].
  • Firma digital de los comprobantes.
  • Alertas de caducidad de firma electrónica.
  • Acuso de recibido con ente regulador.
  • Autorización con el ente regulador[2].
  • Notificaciones por correo electrónico al cliente y administradores del sistema.
  • Generación de formato impreso RIDE u otro definido por el cliente.
  • Portal Web para consulta de los comprobantes con versión para móviles.
  • Soporte Multiempresa.

[1] Sujeto a disponibilidad de datos y contratos legales entre el proveedor del sistema y el cliente.

[2] Vigente por compatibilidad. Ya se encuentra en vigencia nueva normativa en línea.

FUNCIONALIDADES POR ESTRENAR

  • Declaración de impuestos personas jurídicas y naturales (ATS).
  • Opción de reenvío de comprobantes (sujeto a la integración con el sistema fuente).
  • Recepción de documentos (con flujo de aprobaciones).
  • Nuevo esquema del SRI según especificación técnica versión 1.9 (“Offline”).

¿POR QUÉ LA METODOLOGÍA DE 12 FACTORES?

Esta metodología describe un conjunto de lineamientos interrelacionados a seguir al crear aplicaciones modernas y reactivas.

Son 12 recomendaciones que pueden ser aplicadas en su totalidad o parcialmente. Siendo algunas “obligatorias” si se desea obtener los beneficios que brindan estos conceptos, basados en las mejores prácticas de la industria y que han demostrado ser exitosos en grandes empresas como Netflix, Heroku, etc.

Somos evangelizadores de nuevas tendencias y mejores prácticas en Ingeniería de Software e "Infraestructura como código".

De acuerdo al manifiesto de la metodología de 12 factores, FE12 tiene las siguientes características que describen como “12 factor compliant”:

  • Versionamiento: Fuentes versionados a través de GIT.
  • Dependencias: Todas las dependencias del Sistema están incluídas a través de servicios de aprovisionamiento como Docker o Vagrant.
  • Configuraciones: Una variable en contexto según el ambiente de despliegue. El código no cambia, las configuraciones pueden que sí. Todo lo relativo a configuraciones (de base de datos, usuarios de pruebas, URLs etc) está parametrizado y es leído en tiempo de ejecución. Nótese que esta información puede ser pública sin exponer data sensible.
  • Servicios de backing: Son servicios que FE-12 consume como mensajería, una base de datos y librerías. Son recursos adjuntos que pueden ser cambiados según sea requerido. Se puede cambiar entre estos servicios según sea necesario. Por ej: cambiar de PostgreSQL a MySQL o a Cubrid.
  • Build, release y run: En el sistema hay una división clara y organizada de las tareas. El build genera únicamente los binarios, scripts y demás activos necesarios para el sistema. El release envía ese paquete generado a un servidor y finalmente el código se ejecuta en el ambiente requerido para formar el run. Esto es de tal forma que si algún evento no programado sucede (como la pérdida de fluído eléctrico) el sistema no necesite de intervención humana para levantarse. Para Java se utiliza el producto Apache Maven.
  • Procesos: Los procesos usados en FE12 son stateless lo que nos permite escalar con mayor facilidad y tener independencia total entre procesos y mayor tolerancia a fallos. Capacidades de atención de millones de transacciones al mes.
  • Concurrencia: FE12 es concurrente y le permite tener excelentes tiempos de respuestas para gestionar múltiples transacciones a la vez.
  • Disponibilidad y Shutdown: El sistema es capaz de levantarse por sí mismo ante eventos que interrumpan su operabilidad (caídas, redespliegues, etc) sin necesidad de intervención de humanos con tiempos rápidos de respuestas para su subida.
  • Paridad entre ambientes de desarrollo y producción: A través del uso de provisionadores se tienen réplicas de los distintos ambientes (desarrollo, producción, pruebas, QA).
  • Gestión de logs: Desde el nivel más elemental informativo hasta el más crítico, es almacenado y consolidado para su revisión.
  • Procesos administrativos: Se tienen ambientes idénticos al de producción para realizar tareas administrativas como por ej: depuración de datos. No se realizan tareas directamente sobre la base de datos.

ARQUITECTURA

FE12-ArquitecturaW

¿POR QUÉ ESCOGIMOS FACTURACIÓN ELECTRÓNICA PARA APLICARLE LOS 12 FACTORES?

Por varias razones:

  1. La facturación electrónica en Ecuador será de adopción paulatina y uso obligatorio, lo que nos permite ingresar el producto por fases y en varias escalas.
  2. La facturación electrónica, si bien es cierto es importante, no es el sistema central de una empresa, lo que nos permite presentar los conceptos de 12 factores en un ambiente de criticidad controlada.
  3. Algunas empresas lo tienen como un sistema satélite, lo que nos permite probar la adaptabilidad y acople/desacople de nuestro sistema y sus componentes.
  4. Dada la necesidad de interacciones con sistemas internos de los clientes (ERP) y externos (Webservices SRI, Servicio SMTP) constituye un escenario perfecto para la prueba del concepto de “componetización" de los componentes e interacción entre ellos.
  5. Para los casos de alto volumen de facturación, nos permite demostrar el crecimiento horizontal de cada uno de los componentes de nuestro sistema, lo que permite repartir la carga de los puntos rojos (hot spots) que pueda presentar el sistema.
  6. Porque queremos servir a la sociedad, y servirla bien.