wiki:metodologia2017/PropuestaDesarrollo

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

--

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]

  • Ubicación de archivos a firmar flexible: capacidad de gestionar archivos de distintas fuentes (drive, página web, url)
  • Gestionar la ubicación de firma visible en archivos
  • Validación de los archivos BDOC
  • Mejorar la interfaz del portal de prueba de firma y verificación.
  • Preparación de un taller de uso del servicio web.
  • Revisión de firma electrónica de documentos PDF (caso correo electrónico)

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]

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:

  • Cargar archivo a firmar/verificar desde distintas fuentes
  • Ubicar firma visible en archivo PDF

4. Descripción general de la arquitectura del software

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

El servicio web Murachí puede ser accedido por un navegador cliente o por un cliente escrito en varios lenguajes de programación como Ruby, PHP, Python, Java, etc. Se utiliza el protocolo HTTP para la comunicación entre el cliente y el servicio. Los recursos disponibles del servicio web enviarán sus respuestas en formato JSON. Para mantener un conjunto de estadísticas básicas como el número de firmas y verificaciones realizadas en el servicio se utiliza una base de datos SQL.

5. Metodología de desarrollo

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]

  • Sistema operativo Debian GNU/Linux
  • Java
  • JAX-RS
  • Tomcat

7. Plataforma de desarrollo

  • Sistema operativo Debian GNU/Linux 8.0
  • 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

La propuesta inicial de licencia de código a utilizar es AGPL - GNU Affero General Public License más sobre AGPL.

Para sustentar el uso de la licencia el equipo de desarrollo del proyecto realizó una consulta al equipo de Licenciamiento de la Fundación Cenditel para conocer su opinión al respecto. En este enlace se encuentra el documento con la opinión del equipo de licenciamiento.

La documentación del código fuente se realiza de acuerdo a los estándares descritos en Documentación de código

Attachments (1)

Download all attachments as: .zip