Software público


La política de software público de República Dominicana busca establecer la posición oficial con relación a los tipos de licencias de uso para la adquisición de aplicaciones y software a ser utilizados por las diferentes instituciones del Estado dominicano. El objetivo principal es el de regular la uniformidad de las aplicaciones que utiliza el Estado, el cual, en aras del ahorro y la estandarización, promueve el uso de software abierto o libre y permite el uso de software propietario cuando sea necesario.

El fomento de la industria del software local puede ser un beneficio colateral de esta política, el cual es responsabilidad del Ministerio de Industria, Comercio y Mipymes (MICM).

La Oficina Gubernamental de Tecnologías de la Información y Comunicación (OGTIC) como entidad reguladora en asuntos de TIC y Gobierno Electrónico ha venido ofreciendo servicios de consultoría a las instituciones del Gobierno para la adquisición de aplicaciones tanto administrativas como de productividad. Existe la interrogante del tipo de licencia que el software adquirido por el Estado debe tener, y dado que este renglón administrativo nunca ha sido definido o regulado, la OGTIC ha preparado el presente análisis y las posibles soluciones y recomendaciones que devendrían en una política oficial del Gobierno con relación a los requerimientos básicos para la creación, desarrollo, compra y mantenimiento de las aplicaciones y software públicos.

Antecedentes

La República Dominicana promueve el Gobierno Electrónico, y para ello la interoperabilidad de los sistemas y aplicaciones informáticas del Estado es básica para lograr sus objtivos. Adicionalmente la República Dominicana es signataria del acuerdo de la Iniciativa Participativa Anticorrupción (IPAC), y del acuerdo de Gobierno Abierto (Open Government Partnership-OPG) con el gobierno de Estados Unidos y Transparencia Internacional. Estos acuerdos nos obligan a implementar una serie de facilidades ciudadanas orientadas a la disponibilidad de los datos del Estado de manera electrónica y en línea.

Por su parte, la Estrategia Nacional de Desarrollo 2030 (END) establece la preferencia del Gobierno dominicano de que sus instituciones utilicen soluciones de software libre para sus necesidades de aplicaciones. La estrategia dicta a «promover el uso de software libre para las aplicaciones del gobierno electrónico». Por lo que se hace necesario establecer una política gubernamental de uso de aplicaciones y software que regule el tipo de licencias que dichas aplicaciones y software deben tener cuando son adquiridas por las instituciones públicas del Estado.

Beneficios para el estado

  • Transparencia: El Gobierno amplía y mejora el acceso a la información sobre sus actividades, facilitando la rendición de cuentas, enriqueciendo el debate público y la participación democrática.
  • Participación: El Gobierno genera espacios de encuentro y canales de comunicación a fin de que las instituciones puedan asumir un rol activo en el diseño de las políticas públicas del estado en general.
  • Colaboración: El Gobierno promueve la innovación mejorando y ampliando sus prácticas de cooperación dentro del mismo Gobierno, con otras instituciones gubernamentales y con la sociedad civil.
  • Institucionalidad: El Estado se hace más robusto cuando la continuidad de las iniciativas y soluciones se mantiene. El uso de software colocado en un repositorio o bolsa de software público fomenta la continuidad e institucionalidad de las instituciones que lo usan.

Beneficios para el ciudadano

  • La institucionalidad y continuidad del estado permite una estabilidad en los servicios que necesitan y afectan a los ciudadanos.
  • Se facilita el acceso a servicios e informaciones gubernamentales.
  • Esta filosofía, plasmada en una plataforma tecnológica, mediante la cual las instituciones públicas facilitan sus aplicaciones a través de Internet de manera estandarizada, permitirá aumentar la información sobre las actividades gubernamentales y el intercambio con la ciudadanía.

Roles

Juegan roles protagónicos en esta iniciativa la OGTIC, la Dirección General de Contrataciones Públicas, las empresas distribuidoras de software y las empresas y agrupaciones de desarrollo de aplicaciones.

  • OPTIC
    • Políticas TIC, e-Government, OGP
    • Normativo
    • Consultivo - Evaluación técnica compras de TIC por OPTIC
  • Dirección General de Compras del Estado
    • Sistema de Compras del Estado
  • Entidades
    • Empresas locales privadas distribuidoras y/o representantes de software propietario
    • Empresas locales implementadoras y vendedoras de servicios de mantenimiento de aplicaciones Open Source
    • Instituciones públicas

Facilidades y recursos disponibles

Desde la OGTIC, se está trabajando para lanzar el Portal de APIs del Estado dominicano, un portal web que fungirá como la ventanilla única para interfaces de programación de aplicaciones (APIs) abiertas en general para funcionarios públicos y desarrolladores del sector privado de la República Dominicana, creadas y publicadas por OGTIC y otras entidades, donde los usuarios puedan suscribirse y obtener actualizaciones de sus versiones.

La OGTIC pone a disposición varias normativas TIC y en particular la NORTIC A1 sobre asuntos generales de TIC y la NORTIC A4 sobre Interoperabilidad y Conexión que describe los requisitos básicos de facilidades de interconexión y operatividad de las aplicaciones públicas.

Términos y Conceptos

  1. Software Libre y Software de Código Abierto: para el contexto de este documento, software de código abierto o libre, es un software licenciado de tal manera que los usuarios puedan estudiar, modificar y mejorar su diseño mediante la disponibilidad de su código fuente con bajo riesgo de incurrir en violaciones de derechos de autor o marcas registradas.
  2. Software Gratuito: es aquel software al que podemos acceder y utilizar sin la necesidad de efectuar pago alguno, independientemente de que el mismo sea comercial o de código abierto.
  3. Software Comercial y/o Propietario: es lo opuesto de software libre, aplica a cualquier programa informático que limite su uso y/o prohíba su redistribución o modificación o requiera para la misma permiso expreso del titular del software.
  4. Software Público: son todas las herramientas aplicaciones y software desarrollados a la medida o para soluciones específicas, utilizadas por el estado. La iniciativa de software público, consiste en el fomento del desarrollo de aplicaciones reutilizables o adquiridas por parte de las instituciones públicas, optimizando los procesos y acortando los tiempos de gestión, constituyendo un espacio de intercambio de desarrollo, contacto entre instituciones gubernamentales, empresas y abierto a la ciudadanía. El objetivo principal de la iniciativa para Software Público es entregar las mejores aplicaciones de código abierto al Sector Público mediante un ambiente de desarrollo colaborativo. Esto, a fin de evitar la duplicidad de esfuerzos al no existir previamente una instancia formal de transferencia de conocimiento.
  5. Licencia GPL (GNU General Public License): es la licencia de software libre más utilizada. Esta garantiza a los usuarios finales ya sean individuos u organizaciones la libertad de estudiar, compartir, copiar y modificar el software. El software que permite esos derechos es llamado software libre y si el software es copiado y modificado requiere que el producto de esta modificación siga siendo libre. Esta es la diferencia principal entre la licencia GPL y otras licencias de software libre como la BSD y la MIT para citar dos ejemplos.
  6. Creative Commons (CC): Es un grupo de licencias públicas que habilitan la distribución gratuita de trabajos que de otra forma exigirían una licencia privativa. Este tipo de licencia se usa cuando el autor desea otorgar al público el derecho a compartir, usar y expandir un trabajo que ha creado mientras mantiene cierto grado de control sobre el mismo (por ejemplo, permitir solo usos no comerciales del producto) y protege a las personas que lo usan o redistribuyen de preocupaciones sobre infracciones de derechos de autor siempre y cuando cumplan con la licencia incluida por el autor del trabajo.

Política de Software Público

1. Adquisición:

  • El Estado dominicano se vale de todas las tecnologías disponibles para mejorar la productividad pública por lo tanto no establece exclusividad para ninguna marca, compañía o tecnología.
  • En aras de la competitividad, se permite a las instituciones públicas la adquisición de todo tipo de licencias: Abierta, Libre y Propietaria.
  • La elección de software propietario debe hacerse cuando no existiese una opción pública, abierta o libre de dicha solución con apoyo local y funcional.
  • El software de Gestión de Servidores (Sistema Operativo, Sistema de Base de Datos, seguridad, monitoreo y redes) puede ser propietario aunque se recomienda utilizar una solución abierta o libre.
  • El software de Gestión de Servidores Web (http server y servicios relacionados) debe ser Abierta o Libre (Linux).
  • El software de Gestión de Servidores De Voz sobre IP (VOIP) debe ser Abierta o Libre (Asterisk).
  • Las soluciones de seguridad en general deben ser propietarias o de licencia “open source” con contrato de soporte, particularmente las de forma de “appliance” para el control de spam, phising, firewall, antivirus, etc.

2. Desarrollo:

  • Las instituciones públicas que compren servicios de desarrollo de aplicaciones, deben exigir a los desarrolladores propiedad exclusiva de la aplicaciones y código fuente desarrollados y estas se colocaran en el repositorio/bolsa de software público del estado.
  • Las instituciones públicas que desarrollen su propio software deben hacer disponible el código fuente resultante de forma gratuita (i.e. Creative commons) en el repositorio de software público del Estado, exceptuando aquellas aplicaciones que contengan información sensitiva sobre las operaciones internas de la institución o que puedan en potencia poner en peligro la seguridad nacional.
  • Todo desarrollo (contratado o interno) debe hacerse sobre una plataforma con estándares abiertos y disponibilidad asequible por el estado en el territorio nacional
  • Toda aplicación pública debe cumplir con las normativas de interoperabilidad y conexión vigentes.
  • Las aplicaciones públicas que sirvan de base informativa a servicios electrónicos de o para ciudadanos, deben incluir los APIs necesarios para lograr la interoperabilidad entre los sistemas institucionales del Estado Dominicano.
  • En los casos necesarios, las instituciones deben proveer la conexión o utilizar los repositorios del Datacenter de estado para asegurarse la utilización de herramientas BPM/SOA en aras de la interoperabilidad del Estado.

2.1 Framework de Desarrollo de Software del Estado Dominicano

La OGTIC pretende dotar a los desarrolladores que proveen de software al Estado dominicano sea en modo de colaboración gratuita o mediante un acuerdo interinstitucional, las herramientas necesarias para un desarrollo centralizado, permitiendo así alta calidad en el software final según los estándares del Estado dominicano, el aumento en la eficiencia del desarrollo conforme a un resultado depurado y la reutilización efectiva de Software, APIs, y códigos fuentes.

Tomando como ejemplo el éxito logrado en estandarizar el desarrollo de software en Corea (líder mundial en Gobierno Electrónico), hemos desarrollado una plataforma de programación basada en esas buenas prácticas y arquitectura de Corea. La plataforma concerniente a las herramientas de desarrollo consiste en un paquete único de entorno de programación dotado con todo lo necesario para un desarrollo efectivo, permitiendo así codificar, depurar, probar y distribuir el software de manera uniforme por todo el gobierno dominicano.

Como tendencia y como uno de los lenguajes más robustos y líderes en la programación orientada a objetos, se elige Java como lenguaje de programación para los software del Estado y a la vez la utilización del framework Spring, con el cualla OGTIC proporcionará componentes reutilizables a los desarrolladores para que incluyan en sus proyectos estatales.

Gracias a la flexibilidad del IDE Eclipse es posible empaquetar en esté el conjunto de herramientas para un desarrollo centralizado. La estructura detallada seria la siguiente:

2.2 Conjunto de herramientas para implementación de proyectos de desarrollo de software público

- Java Editor: en Eclipse contamos con un editor Java multi-perspectiva el cual se adapta a cada uno de los tipos de proyectos que se pueden realizar en JavaSE y JavaEE. Cada una de estas perspectivas consta con sus propios asistentes de configuración para agilizar el proceso de creación de proyectos.

- Mobile Editor: gracias a las mencionadas perspectivas, podemos contar con un editor para desarrollo de aplicaciones móviles.

- UML Editor: esta herramienta de modelados de objetos, permite editar el diagrama de las clases, los casos de usos y los desarrolladores pueden código Java a partir del diagrama creado en este editor.

- ERD Editor: permite desarrollar el modelo lógico de datos y el modelo físico de estos, también los desarrolladores pueden generar scripts de generación de esquemas conforme a soluciones de DBMS.

- Batch Editor: esta es una perspectiva especializada para crear Batch Jobs.

2.3 Conjunto de herramientas de pruebas de proyecto

- Unit Test: herramienta que permite diseñar casos de prueba basados en JUnit. Utilizando TestCase Generator, una herramienta gráfica y también DB unit test cases los desarrolladores pueden crear casos de prueba.

- Test Automation: esta herramienta permite automáticamente la ejecución de los casos de prueba creados.

- Test Coverage: utilizando el toolkit de código abierto EMMA podemos realizar análisis de prueba de cobertura para los casos de pruebas correspondientes.

2.4 Conjunto de herramientas para build del proyecto

- Build: herramienta que permite correr el proceso de build en el proyecto utilizando Maven como herramienta estándar de build de proyectos. Con la definición de dependencias y las funciones de administración de librerías que son fuertes características de Maven, los desarrolladores no necesitarán administrar directamente las librerías, no obstante podrán administrarlas a través del repositorio de librerías del sistemas.

- CI (Continuous Integration): con Hudson para la build y la integración continua, el CI server, se integra con el repositorio de código aplica la carga del código dentro del repositorio y ejecuta el proceso de building, llevando un registro de los casos de éxitos y de fallas.

2.5 Herramienta de configuración de proyecto

Mediante un repositorio Git los desarrolladores podrán administrar sus proyectos, documentándolos, realizando versiones de estos, etc.

3. General:

  • Todo software desarrollado para y por las instituciones del Estado dominicano debe ser colocado en el repositorio de software público del estado.
  • Es opcional pero recomendable (debido a que incrementa el prestigio del país en asuntos de gobierno electrónico y desarrollo de software) la colocación de aplicaciones del Estado dominicano en repositorios de software público internacionales como las de la RedGealc y la CEPAL.
  • Toda aplicación desarrollada o comprada por el estado debe utilizar como fuente de sus datos almacenados un sistema de base de datos que puede ser relacional o NoSQL.
  • Tanto la aplicación desarrollada como la base de datos utilizada por las aplicaciones (sean estas desarrolladas o adquiridas) deben cumplir con los estándares vigentes y ser compatibles con ODBC, esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos.
  • Las bases de datos con información básica de ciudadanos y los servicios que estos reciben; desarrolladas en las instituciones o por terceros deben incluir un API o Interfaz de programación de aplicaciones que permita a otros programas acceder a la información contenida en ellas.
  • Si utiliza una RDBMS/SQL con licencia de código abierto/libre para las aplicaciones del Estado Dominicano Recomendamos la utilización de PostgreSQL.
  • Si utiliza una base de datos no relacional con licencia de código abierto/libre recomendamos la utilización de MongoDB.

 



Tamaño letra

Contraste

Otros