[[TOC(heading=This section pages, WikiStart, metodologia2017/metodologia, noheading, metodologia2017/AnalisisDominio, metodologia2017/PropuestaDesarrollo, metodologia2017/PlanProyecto, metodologia2017/EstandaresDesarrollo, metodologia2017/EspecificacionRequerimiento, metodologia2017/Codificacion, metodologia2017/AnalisisyDiseno, metodologia2017/Pruebas, metodologia2017/Liberacion, heading=Tabla de Contenido)]] = 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. [[Image(arquitecturaServicioMurachi.png)]] 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 [https://es.wikipedia.org/wiki/JSON 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 * [https://eclipse.org/ 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. * [https://jersey.java.net/ Jersey]. Implementación de referencia para la especificación JSR 311. * [https://maven.apache.org/ Maven]: herramienta de administración de proyectos de software. * [https://tomcat.apache.org/ Tomcat]: software que implementa las especificaciones de los servlets y de JavaServer Pages (JSP) como contenedor web. * Biblioteca [http://itextpdf.com/ iText] para gestión de archivos en formato PDF. * Biblioteca [http://digidoc4j.org/ 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 [https://www.gnu.org/licenses/agpl-3.0.html AGPL - GNU Affero General Public License] [https://es.wikipedia.org/wiki/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. [https://tibisay.cenditel.gob.ve/murachi/attachment/wiki/PropuestaDesarrollo/Opinion_Consulta_Equipo_Seguridad_Informatica.pdf 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 [https://tibisay.cenditel.gob.ve/murachi/wiki/EstandaresDesarrollo#Documentaci%C3%B3ndec%C3%B3digo Documentación de código]