Sunteți pe pagina 1din 13

Servicio Web para la generación de hash de PDF’s (publicados en un servidor

FTP), para el posterior almacenamiento tipo CSV, como fuente de contratos

inteligentes para una blockchain privada académica.

Integrantes Grupo 4
Sofı́a González - dsofiagonzalezg@gmail.com
John Moreno - johnmoreno333@gmail.com
César Garcı́a - zuxceben7@gmail.com
Carlos Ovalle - caom838@gmail.com

Universidad Distrital Francisco José De Caldas


Maestrı́a en Ciencias de la Información y las Comunicaciones
Tendencias en Ingenierı́a de Software
Bogotá, Colombia

Abril, 2018
Índice

RESUMEN 3

PALABRAS CLAVE 3

INFORME DE DESARROLLO DEL TEMA 4

Problemas enfrentados durante el desarrollo del proyecto 10

Resultados alcanzados 10

REPOSITORIO DE DESARROLLOS 11

REFERENCIAS 12

Índice de figuras

1. Directorio del Proyecto. Fuente: Desarrollo de Autores en IDE Eclipse. 4


2. Controlador que define el Servicio. Fuente: Desarrollo de Autores en
IDE Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Clase Conectora al servidor FTP. Fuente: Desarrollo de Autores en
IDE Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Clase implementadora del algoritmo de cifrado SHA3, Sha3Utils. Fuen-
te: Desarrollo de Autores en IDE Eclipse. . . . . . . . . . . . . . . . . 6
5. Servicio en ejecución con el método “generate”. Fuente: Desarrollo
de Autores en IDE Eclipse. . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Consumo del servicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
7. Servidor FTP en la nube para el almacenamiento de documentos
PDF. Fuente DriveHQ. DriveHQ. . . . . . . . . . . . . . . . . . . . . . 8
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

8. Archivo de Configuración con credenciales del FTP (Cloud). Fuente:


Desarrollo de Autores en IDE Eclipse. . . . . . . . . . . . . . . . . . . 9
9. Filezilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
10. Arreglo Nombre-Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
11. Respuesta del servicio . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Página | 2
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

RESUMEN

El presente documento tiene como objetivo describir el proceso de construcción


de un servicio web tipo REST con arquitectura Microservicio, que alimenta los con-
tratos digitales de una red blockchain. Este servicio expone un método que devuelve
o produce un archivo CSV (Comma-Separated Values, valores separados por co-
mas) con el listado de archivos PDF que están almacenados en una carpeta de un
servidor FTP, de tal forma que se puedan enviar a una red blockchain. La primera
columna de la tabla contenida en el archivo CSV corresponde al nombre del archivo
PDF y la segunda columna es el hash generado con el algoritmo SHA-3 del conte-
nido de cada uno. De igual forma, se crearon diferentes módulos (clases en Java)
con el framework Spring Boot.

PALABRAS CLAVE

Servicio Web, microservicio, hash, SHA-3, Java, Swagger, Spring Boot, Guava,
REST.

Página | 3
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

INFORME DE DESARROLLO DEL TEMA

El microservicio fue construido usando Java, y el Framework Spring Boot, defi-


niendo 2 capas Controller Layer y Business Layer como se ve en la Figura 1.

Figura 1: Directorio del Proyecto. Fuente: Desarrollo de Autores en IDE Eclipse.

El controlador define un Método de tipo REST que no recibe ningún parámetro


y devuelve un archivo tipo CSV con el listado de nombres de archivos PDF y su
correspondiente SHA, como se muestra en la Figura 2.

Luego se implementó una clase llamada FtpConnect, que se encarga de co-


nectarse a un servidor Ftp “Cloud de DriveHQ” mediante credenciales que están
parametrizadas en un archivo de propiedades, que partiendo de su conexión, con-
sulta el listado de archivos dentro de una carpeta especı́fica, según se muestra en
la Figura 3.

Página | 4
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

Figura 2: Controlador que define el Servicio. Fuente: Desarrollo de Autores en IDE


Eclipse.

Figura 3: Clase Conectora al servidor FTP. Fuente: Desarrollo de Autores en IDE


Eclipse.

Página | 5
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

También se implementó la clase “ShaUtils” que permite cifrar con el algoritmo


SHA-3 de 256 bits una cadena de texto que ingrese como parámetro en cada méto-
do (Figura 4).

Figura 4: Clase implementadora del algoritmo de cifrado SHA3, Sha3Utils. Fuente:


Desarrollo de Autores en IDE Eclipse.

Finalmente, se corre el servicio usando Swagger como forma de documentación


del microservicio y también provee una mini interfaz para probar los servicios como
vemos a continuación en la Figura.

Cuando se consume el servicio, éste inmediatamente se conecta al servidor ftp


y devuelve una cadena de texto o csv con el listado de archivos que están en el
servidor como se muestra en la siguiente imagen, Figura 6.

Página | 6
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

Figura 5: Servicio en ejecución con el método “generate”. Fuente: Desarrollo de


Autores en IDE Eclipse.

Figura 6: Consumo del servicio.

Página | 7
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

Para el almacenamiento de los archivos PDF se utilizó el servidor FTP in the


cloud del proveedor DriveHQ con una cuenta gratuita por 30 dı́as, construyendo
una estructura de directorios y archivos para la organización de los PDF a publicar.
En la figura Figura 7 se muestran las funcionalidades del servicio de FTP in the
cloud de Drive HQ. (DriveHQ).

Figura 7: Servidor FTP en la nube para el almacenamiento de documentos PDF.


Fuente DriveHQ. DriveHQ.

Y definimos la credenciales que se usaron en el microservicio, en un archivo de


configuración, Figura 8.

Página | 8
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

Figura 8: Archivo de Configuración con credenciales del FTP (Cloud). Fuente: Desa-
rrollo de Autores en IDE Eclipse.

Página | 9
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

Problemas enfrentados durante el desarrollo del pro-


yecto

Al realizar pruebas de configuracion de conexion con el servidor FTP y un cliente


filezilla, no nos dejaba conectar por el modo QuickConnect, tuvimos que realizar la
prueba desde el IDE Eclipse, Figura 9.

Figura 9: Filezilla

Otra dificultad que tuvimos, fue al momento de realizar el despliegue del servicio
ya que intentamos hacerlo con servicios Cloud como AWS o Azure pero en los dos
llegábamos a un punto donde siempre nos pedı́an el pago del servicio, no se cuenta
con un ambiente público gratuito.

Página | 10
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

Resultados alcanzados

Logramos obtener un arreglo en el formato indicado mediante el microservicio,


obteniendo los hash de los diferentes archivos PDF’s expuestos en el servidor FTP,
Figura 10.

Figura 10: Arreglo Nombre-Hash

El servicio responde un text/csv que cuenta las cabeceras de las columnas se-
paradas por comas, y por cada renglón la dupla del nombre del pdf y su sha, Figura
11:

Figura 11: Respuesta del servicio

Página | 11
Servicio Web para la generación de hash de PDF’s (publicados en un servidor FTP),
para el posterior almacenamiento tipo CSV, como fuente de contratos inteligentes
para una blockchain privada académica.

REPOSITORIO DE DESARROLLOS

En el siguiente enlace se encuentra el repositorio con los desarrollos realizados:


https://github.com/caom838/PdfShaService .

REFERENCIAS

DriveHQ. DriveHQ. Cloud File Storage. URL: https://www.drivehq.com/features/


OnlineCloudFileStorage.aspx.

Página | 12

S-ar putea să vă placă și