65 | | [En esta sección se indica el tipo de arquitectura definida para el software] |
| 65 | == 4.1 Descripción general de la arquitectura del software interfaz == |
| 66 | |
| 67 | [[Image()]] |
| 68 | |
| 69 | == 4.2 Descripción general de la arquitectura del software plugin firma electrónica == |
| 70 | |
| 71 | Para el el servicio de firma electrónica por parte que se utilizara para firmar los archivos adjuntos al correo se propone una arquitectura orientada a recursos con interfaces RESTful. |
| 72 | |
| 73 | Se proponen los siguientes recursos: |
| 74 | |
| 75 | • /archivos: para cargar un archivo al servidor y mantenerlo en un espacio temporal. |
| 76 | • /archivos/firmados: para cargar un archivo al servidor y verificar su(s) firma(s). En caso de estar firmado retorna información de las firmas. |
| 77 | • /archivos/{idFile}: para verificar si un archivo con el identificador está firmado. En caso de estarlo retorna información de las firmas. |
| 78 | • /archivos/pdfs: para obtener el hash del archivo PDF que se desea firmar. |
| 79 | • /archivos/pdfs/resenas/: para completar la firma del archivo PDF. |
| 80 | • /archivos/bdocs/: para obtener la reseña o hash del archivo que se desea firmar en formato BDOC. |
| 81 | • /archivos/bdocs/resenas/: para completar la firma del archivo en formato BDOC. |
| 82 | |
| 83 | Internamente se utilizan bibliotecas nativas para la gestión de documentos en formato PDF y BDOC. |
| 129 | |
| 130 | |
| 131 | == 7.1 Plataforma de desarrollo interfaz == |
| 132 | |
| 133 | • Sistema Operativo: Linux - Debian Jessie |
| 134 | • Manejador de Base de Datos: Postgresql 9.4 |
| 135 | • Lenguaje de Programación: PHP 5 |
| 136 | • Framework de desarrollo: Zend |
| 137 | • Lenguajes de marca: HTML, CCS, ExtJS |
| 138 | |
| 139 | == 7.2 Plataforma de desarrollo plugin firma electrónica == |
| 140 | |
| 141 | • Sistema operativo Debian GNU/Linux Wheezy. |
| 142 | • Lenguaje de programación: Java |
| 143 | • IDE: Eclipse Luna. |
| 144 | • 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. |
| 145 | • Jersey. Implementación de referencia para la especificación JSR 311. |
| 146 | • Maven: herramienta de administración de proyectos de software. |
| 147 | • Tomcat: software que implementa las especificaciones de los servlets y de JavaServer? Pages (JSP) como contenedor web. |
| 148 | • Biblioteca iText para gestión de archivos en formato PDF. |
| 149 | • Biblioteca digidoc4j biblioteca para integrar firmas electrónicas basadas en XAdES en aplicaciones y servicio web desarrollados con la tecnología Java. |