Sistema de los servidores públicos que intervengan en procedimientos de contrataciones públicas

Sistema de los servidores públicos que intervengan en procedimientos de contrataciones públicas

Especificaciones Técnicas

Esta guía tiene como finalidad la descripción del Estándar para la Interoperabilidad de Datos de Servidores Públicos que Intervienen en Contrataciones, desarrollado por la Secretaría Ejecutiva del Sistema Nacional Anticorrupción (SESNA). Se presenta el modelo de interoperabilidad que deberán adoptar los diversos sistemas de información que proveerán información a la Plataforma Digital Nacional (PDN) y se proporciona una serie de recomendaciones para la implementación del estándar por parte de las Instituciones.

Antecedentes

El 23 de octubre de 2018 fueron publicadas las Bases para el funcionamiento de la Plataforma Digital Nacional (PDN) en el DOF. El Art. 6 establece que para el correcto funcionamiento de cada uno de los sistemas, la SESNA emitirá los protocolos, estándares, reglamentos, especificaciones técnicas y cualquier normativa necesaria para la colaboración, provisión de datos y acciones para cumplir con las Bases, los cuales serán obligatorios para todos los proveedores, concentradores y encargados a nivel federal, estatal y municipal.

Introducción

En la actualidad, la información de los servidores públicos que intervienen en contrataciones de los diferentes niveles de gobierno se encuentra contenida en diversos formatos, bases de datos y sistemas de información; cada uno de ellos con particularidades tecnológicas y reglas de negocio distintas, dificultando la integración y la interoperabilidad de los datos. El Estándar para la Interoperabilidad de Datos de Servidores Públicos que Intervienen en Contrataciones surge a partir de la necesidad de distribuir, comparar y analizar información de una manera uniforme e interoperable.

Conforme a lo anterior, la SESNA ha conceptualizado a la Plataforma Digital Nacional como una herramienta que permitirá la consulta de información de las diferentes instituciones de los tres niveles de gobierno en un solo punto, sin tener el objetivo de concentrarla o resguardarla. En ese sentido, resulta necesario dotar a la PDN de mecanismos le que permitan interconectarse con los diversos sistemas de gobierno para consultar la información que resulte necesaria, sin importar la tecnología con la que dichos sistemas fueron desarrollados (i.e., lenguajes de programación, bases de datos, etc.).

La PDN logrará la interoperabilidad técnica con los diversos sistemas que la integrarán a través de la creación de estándares de datos y mediante el uso de Interfaces de Programación de Aplicaciones o APIs (por sus siglas en Inglés). Los estándares de datos permitirán homologar la manera en que la información se debe representar para su entrega a la PDN, mientras que las APIs serán el mecanismo que permitirá la comunicación entre sistemas a través de Internet. Las APIs son ampliamente usadas para el desarrollo de aplicaciones a gran escala. El uso de APIs permitirá que las instituciones conserven el control de sus datos, gestionando el acceso a los mismos mediante reglas y perfiles de usuario.

La SESNA ha planeado el desarrollo de la PDN mediante el uso APIs Web con arquitectura REST (REpresentational State Transfer). Dicha tecnología es ampliamente usada por en la industria del software para el desarrollo de aplicaciones web, y en la actualidad, existe grán diversidad de herramientas de código abierto que permiten la implementación de sistemas basados en APIs REST de manera rápida y a un bajo costo.

Open API Specification

El Estándar para la Interoperabilidad de Datos de Servidores Públicos que Intervienen en Contrataciones está basado en el formato conocido como Open API Specification (OAS), el cual es un formato de especificación que permite describir de manera precisa las características con las que deberan contar las APIs que integrarán a la PDN. El OAS cuenta con capacidades para describir los recursos, operaciones, parámetros y estructuras de datos con las que deberán contar las APIs, permitiendo su implementación con independencia tecnológica, es decir, las instituciones podrán emplear las herramientas tecnológicas de su elección (e.g., lenguajes de programación, bases de datos, etc.) siempre que se sigan las especificaciones de manera correcta.

OAuth 2.0

El acceso a las APIs que se integrarán a la PDN se gestionará a través del protocolo de autorización OAuth 2.0, el cual es un estándar ampliamente usado por la industria de Internet. El estándar OAuth 2.0 que permitirá a la PDN obtener acceso necesario a las APIs de las instituciones a través del uso de tokens de autorización.

Implementación del estándar

La implementación del estándar de declaraciones representará esfuerzos de diferente magnitud dependiendo del nivel de adopción tecnológica de cada Institución. Suponiendo que una cierta Institución ya cuenta con un sistema de captura de declaraciones, el proceso de implementación del API de declaraciones puede ser dividido en los siguientes pasos:

  • Diagnóstico: Revisar y comparar los datos contenidos en su base de datos con los especificados en la publicación del Formato de declaraciones en el Diario Oficial de la Federación, es importante contar con todos los datos solicitados en el nuevo formato, sin embargo, esto no imposibilita a las Instituciones para realizar pruebas de adopción del estándar usando los datos con los que se cuenta.

  • Diseño de arquitectura: Se deberá evaluar las capacidades del sistema de información o base de datos de declaraciones, a fin de diagnosticar su capacidad para soportar la carga de trabajo actual y al mismo tiempo la tarea de resolver las consultas que serán realizadas por la PDN a través del API. En el caso de contar con gran cantidad de usuarios y como medida de seguridad, se recomienda implementar alguna solución de replicación de la información en el sistema de base de datos; de tal manera que se divida la carga de trabajo en dos o más bases de datos.

  • Desarrollo: El desarrollo del API de declaraciones podrá realizarse en el lenguaje de programación que se considere más apropiado con apego a las especificaciones que se proporcionan en las siguientes secciones de la presente guía. Dichas especificaciones son agnósticas a la tecnología, es decir, el resultado de la comunicación deberá ser el mismo, siempre que se respeten las reglas, formatos de datos y la sintaxis de los mensajes.

Modelo de comunicación

A través de la de la PDN, los usuarios serán capaces de realizar consultas a las APIs de las Instituciones, dichas consultas se configurarán usando parámetros (Ver la sección Parámetros de consulta). La Figura 1 muestra un diagrama en el cual se ejemplifica la comunicación entre el API de Servidores Públicos y Particulares Sancionados y la PDN. El API tendrá la tarea de recibir la consulta y aplicar la lógica de negocio al interior de la institución para generar la respuesta correspondiente. Dicha respuesta deberá estar apegada al estándar de Servidores Públicos y Particulares Sancionados que se proporciona en la siguiente sección.

Figura 1. Esquema conceptual del flujo de comunicación entre Instituciones y la Plataforma Digital Nacional. De derecha a izquierda se observan usuarios con diferentes perfiles accediendo a la PDN y solicitando información de acuerdo a sus atribuciones.

Especificaciones técnicas

Diccionario de datos

Catálogos de claves y valores

Especificaciones en formato Open API Specification

Seguridad

Protocolo de conexión

La Plataforma Digital Nacional (PDN) basa su funcionamiento en el uso de APIs, por medio de las cuales, se comunica con sus proveedores de información para obtener exclusivamente los datos necesarios.

Las Instituciones públicas interesadas en ser proveedores de información de la PDN deben establecer sus APIs de acuerdo con las Especificaciones técnicas para cada Sistema y solicitar a la USTPDN, el inicio del proceso de conexión con la PDN a través del envío del Formato de solicitud de conexión a través del correo pdn@sesna.gob.mx.

Asimismo, el proceso de conexión con la PDN contempla un protocolo para verificar el funcionamiento de las APIs, mismo que consiste en la ejecución de conjuntos de pruebas para cada Sistema de la PDN. Cada conjunto de pruebas se divide a su vez en tres categorías:

  • Pruebas de seguridad;
  • Pruebas funcionales; y
  • Pruebas de estrés.

Estas pruebas se ejecutan en dos ambientes: 1) desarrollo y 2) productivo. En cada uno de ellos, se verifica el funcionamiento de la API, usando datos sintéticos (falsos) y reales (omitiendo datos reservados) de manera correspondiente.

Las pruebas para la verificación de las APIs, se encuentran descritas en documentos denominados Planes de pruebas, que podrás encontrar en el siguiente enlace.

En caso de que los resultados no sean aprobatorios, se notificará a la institución para que realice los ajustes necesarios y solicite una nueva revisión.

Como apoyo para verificar el cumplimiento de los esquemas de datos de las diferentes API ‘s, ponemos a su disposición un Validador.

Asimismo, te invitamos a probar ValidAPI una aplicación web que te permitirá ejecutar de manera automatizada las validaciones de seguridad y de funcionalidad incluidas en los planes de pruebas de los sistemas 1, 2 y 3; recibiendo retroalimentación de una forma rápida. Esta herramienta se encuentra en una etapa de pilotaje, por lo que el resultado obtenido debe considerarse una prevalidación y no como un resultado final.


Niveles de servicio y protocolo de notificación de incidencias.

Una vez que las API´s de las instituciones hayan superado las validaciones de seguridad, funcionalidad, y que se haya establecido la conexión con la PDN, las instituciones adquieren la responsabilidad de monitorear y en su caso, dar mantenimiento preventivo y correctivo a las mismas, además de garantizar niveles de servicio mínimos de acuerdo al siguiente documento:

Licencia

Plataforma Digital Nacional © 2018 se encuentra bajo la licencia CC BY-NC 4.0

Creative Commons License

Desarrollo web

La interoperabilidad entre los sistemas informáticos de las Instituciones y la PDN se establece a través de servicios web o APIs que intercambian información a través de Internet.

La comunicación con la PDN se realiza a través de servicios basados en el modelo REST (REpresentational State Transfer), una tecnología ampliamente usada para el desarrollo de aplicaciones web.

Existe gran variedad de herramientas de código abierto que facilitan el desarrollo de APIs REST, usando diversos lenguajes de programación y tecnologías de bases de datos. No es posible proporcionar una lista exhaustiva, pero a continuación se citan algunos ejemplos:

  • Express JS

    Lenguaje de programación: JavaScript

  • Django

    Lenguaje de programación: Python

  • Flask

    Lenguaje de programación: Python

  • Spring

    Lenguaje de programación: Java

  • .NET Core

    Lenguajes de programación: C#, Visual Basic, F#

  • Apigility

    Lenguaje de programación: PHP