wiki:PropuestaDesarrollo

Version 7 (modified by aaraujo, 9 years ago) (diff)

Agregada sección alcance del software

Propuesta de Desarrollo del Proyecto

Este documento constituye la propuesta de desarrollo de la aplicación que será presentada a la comunidad de usuarios que utilizará dicha aplicación.

1. Necesidades y/o problemas

[En esta sección se indican los problemas y/o necesidades que se pretenden solventar con el software a desarrollar]

Problemas

  • Desconocimiento de la mayoría de la población y usuarios de tecnologías de información y comunicación de la legislación existente en materia de firmas electrónicas y delitos informáticos.
  • Desconocimiento de la mayoría de usuarios de la tecnología de certificación electrónica y firmas electrónicas. Todavía se desconoce la existencia de la Superintendencia de Servicios de Certificación Electrónica (SUSCERTE) y la Infraestructura Nacional de Certificación Electrónica de la República Bolivariana de Venezuela.
  • A pesar de que existen instituciones de la Administración Pública Nacional (APN) que utilizan documentos firmados electrónicamente aún existe una percepción de desconfianza en usuarios que reciben estos documentos.
  • La Ley de Infogobierno, promulgada en la Gaceta Oficial N° 40.274 del 17 de Agosto de 2014, establece en su artículo 19 que "A los fines de otorgarle la debida seguridad, integridad y autenticidad a las transacciones electrónicas relativas a los trámites y gestiones del Poder Público, sus sistemas, aplicaciones y servicios deberán integrar servicios de certificación electrónica y mecanismos adecuados de seguridad informática". Esto implica que se debe resolver el problema de la adecuación de las instituciones para soportar estos trámites y servicios.
  • No se conocen herramientas o aplicaciones de verificación de documentos firmados electrónicamente en línea dentro de la APN.

Necesidades

  • Se requiere consolidar la promoción y uso de los certificados electrónicos de la Infraestructura Nacional de Certificación Electrónica de la República Bolivariana de Venezuela.
  • Es necesario brindar a los usuarios y ciudadanos herramientas sencillas para verificar documentos firmados electrónicamente que garanticen la integridad y la autoría de los documentos.
  • Proveer herramientas que permitan la integración sencilla de firma electrónica y verificación en sistemas informáticos existentes y de nuevo desarrollo.

2. Solución propuesta

[En esta sección se indica el tipo de software que se plantea para abordar los problemas y/o necesidades planteadas]

La identificación de los problemas y las necesidades planteadas constituyen el contexto sobre el cual se propone el desarrollo de un servicio web, denominado Murachí, de verificación de documentos firmados electrónicamente con certificados electrónicos de la República Bolivariana de Venezuela. Un servicio web es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Se propone desarrollar un servicio web REST (Representational State Transfer), que es una técnica de arquitectura de software que se emplea en el diseño de aplicaciones que se ejecutan sobre redes de comunicaciones. La idea principal de REST es utilizar el protocolo HTTP (Hypertext Transfer Protocol) existente para realizar llamadas entre computadores.

Entre las características relevantes de un servicio web REST están:

  • Independencia de plataforma.

  • Independencia de lenguaje de programación.
  • Basado en estándares.
  • Puede ser usado fácilmente en presencia de firewall.

En general los componentes claves en REST incluyen REST Architecture Components:

  • Recursos: en REST cualquier información que pueda ser nombrada es considerada un recurso. Un recurso posee un identificador para identificarlo en una interacción entre componentes.
  • Representación: los componentes de la red (clientes y servidores) se comunican a través de una interfaz estándar (HTTP) e intercambian representaciones de los recursos; estas representaciones pueden ser JSON o XML.
  • Una red de recursos.
  • Entorno cliente-servidor.

El servicio Murachí tendrá una interfaz de programación de aplicaciones (API) sencilla que permitirá a usuarios el acceso a los distintos recursos del servicio. Murachí soportará la verificación de documentos firmados electrónicamente en los formatos PDF y BDOC. La selección de estos dos formatos tiene su base en que PDF es uno de los formatos más comunes utilizados para intercambiar información en formato de solo lectura y BDOC es un formato que permite firmar electrónicamente cualquier documento como hojas de cálculo, texto, sonido, video, etc. Adicionalmente se espera incluir la posibilidad de firmar electrónicamente archivo a través de Murachí.

Se propone la incorporación de un mecanismo de estadísticas de uso del servicio web.

3. Alcance del software propuesto

[En esta sección se indican los componentes, módulos o funciones que componen el software a desarrollar, indicando el alcance que tienes éstos en función de los procesos a automatizar]

El servicio web Murachí proporcionará varios recursos para gestionar la verificación de documentos firmados electrónicamente. En Análisis del Dominio están definidos los procesos a automatizar:

  • Carga de archivo firmado.
  • Verificar archivo firmado.
  • Firmar archivo.
  • Descarga de archivo firmado.

Se proponen los siguientes recursos:

  • /archivos: para cargar un archivo al servidor y mantenerlo en un espacio temporal.
  • /archivos/{idFile}: para verificar si un archivo con el identificador está firmado. En caso de estarlo muestra información de las firmas.
  • /archivos/pdfs/{idFile}: para obtener el hash del archivo PDF que se desea firmar.
  • /archivos/pdfs/resenas/{idFile}: para completar la firma del archivo PDF.
  • /archivos/bdocs/{idFile}: para obtener la reseña o hash del archivo que se desea firmar en formato BDOC.
  • /archivos/bdocs/resenas/{idFile}: para completar la firma del archivo en formato BDOC.

Se propone la incorporación de un mecanismo de estadísticas de uso del servicio web.

4. Descripción general de la arquitectura del software

[En esta sección se indica el tipo de arquitectura definida para el software]

Para el software del proyecto Murachí se propone una arquitectura orientada a recursos con interfaces RESTful.

5. Metodología de desarrollo

[En esta sección se indica la metodología a utilizar para guiar el proceso de desarrollo del software]

Metodología de desarrollo colaborativo de software libre.

6. Plataforma de operación

[Se indica la plataforma de operación sobre la cual operará el software]

  • JAX-RS

7. Plataforma de desarrollo

[Se indica la plataforma de desarrollo que se utilizará para construir el software]

  • Sistema operativo Debian GNU/Linux Wheezy.
  • Java
  • IDE Eclipse Luna.
  • Soporte de Java para REST a través de la especificación Java Specification Request (JSR) 311. Esta especificación se conoce como JAX-RS (The Java API for RESTful Web Services) y que utiliza anotaciones para definir la relevancia REST de clases Java.
  • Jersey. Implementación de referencia para la especificación JSR 311.
  • Maven: herramienta de administración de proyectos de software.
  • Tomcat: software que implementa las especificaciones de los servlets y de JavaServer? Pages (JSP) como contenedor web.
  • Biblioteca iText para gestión de archivos en formato PDF.
  • Biblioteca digidoc4j biblioteca para integrar firmas electrónicas basadas en XAdES en aplicaciones y servicio web desarrollados con la tecnología Java.

8. Licencias de código y documentación

[Se indica los tipos de licencias libres a utilizar tanto para el software como para su documentación]

Attachments (2)

Download all attachments as: .zip