1 00:00:00,180 --> 00:01:15,239 Disculpa, iba a preguntar... 2 00:01:15,260 --> 00:01:17,879 vale, entiendo 3 00:01:17,879 --> 00:01:19,299 te tengo que compartir la pantalla 4 00:01:19,299 --> 00:01:22,799 vale, pues voy a 5 00:01:22,799 --> 00:01:25,599 te lo empiezo antes 6 00:01:25,599 --> 00:01:27,180 o te lo comparto ya 7 00:01:27,180 --> 00:01:33,069 vale, perfecto 8 00:01:33,069 --> 00:01:35,930 no sé por qué no me 9 00:01:35,930 --> 00:01:37,170 pilla la ventana del 10 00:01:37,170 --> 00:01:46,480 si la cosa 11 00:01:46,480 --> 00:01:48,680 es que me da 12 00:01:48,680 --> 00:01:50,280 como tres opciones para elegir 13 00:01:50,280 --> 00:01:51,599 desde el navegador y uno pone 14 00:01:51,599 --> 00:01:54,280 toda la 15 00:01:54,280 --> 00:01:55,560 pantalla, sí 16 00:01:55,560 --> 00:01:57,439 porque el resto no 17 00:01:57,439 --> 00:02:09,340 Vale, ¿y el audio también me has dicho del sistema? Vale, perfecto. Pues ahora ya sí, ¿te sale? 18 00:02:09,340 --> 00:02:32,159 perfecto pues como la primera activa y ahí estamos vale pues te voy a contar el proyecto 19 00:02:32,159 --> 00:02:37,819 que he desarrollado que se trataba en este caso de una implementación del oxi como un 20 00:02:37,819 --> 00:02:45,900 hub de actividades para procesos empresariales. Entonces, bueno, aquí vemos cómo va a estar 21 00:02:45,900 --> 00:02:52,060 distribuido el trabajo, cómo ha estado en la memoria y procedo a ello. Vale, lo importante 22 00:02:52,060 --> 00:02:59,319 antes de empezar es conocer qué herramientas hemos usado para llevar a cabo este despliegue. 23 00:02:59,860 --> 00:03:05,219 Obviamente, si he dicho Logsic como hub de actividades, os tengo que comentar que es 24 00:03:05,219 --> 00:03:14,340 lo que es una herramienta de software libre que lo que hace es tomar sirve para tomar notas así 25 00:03:14,340 --> 00:03:21,120 como un poco concepto global pero lo importante es que permite organizar la información de esas 26 00:03:21,120 --> 00:03:28,219 notas en forma de gráfico que esto es luego lo que vamos a poder explotar para que sea en un 27 00:03:28,219 --> 00:03:37,039 los archivos por de momento como se guardan son en markdown aunque en la búsqueda que yo he hecho 28 00:03:37,039 --> 00:03:41,659 para esta implementación he visto que para un futuro están intentando desarrollar un sistema 29 00:03:41,659 --> 00:03:47,719 compatible con este pero que al mismo tiempo permita que se parezca más a una base de datos 30 00:03:48,740 --> 00:03:53,300 qué pasa que hasta que no esté desarrollado pues hay que buscar otras otras alternativas 31 00:03:53,300 --> 00:04:01,099 y por qué porque lo que intentamos hacer es que sea sincronizado entonces como lo como era el 32 00:04:01,099 --> 00:04:09,319 planteamiento inicial de esta sincronización como es con archivos mar del que son al final 33 00:04:09,319 --> 00:04:17,759 archivos de texto que llevan tags uno de los principales pero por otras una de las principales 34 00:04:17,759 --> 00:04:21,019 herramientas que hay para 35 00:04:21,019 --> 00:04:22,759 sincronización de archivos de texto 36 00:04:22,759 --> 00:04:25,300 en entornos de código 37 00:04:25,300 --> 00:04:28,259 es el sistema JIT 38 00:04:28,259 --> 00:04:31,459 que permite un control de versiones distribuidos 39 00:04:31,459 --> 00:04:33,220 y rastrear todos 40 00:04:33,220 --> 00:04:34,540 esos cambios que se hacen 41 00:04:34,540 --> 00:04:36,560 en texto o en código 42 00:04:36,560 --> 00:04:38,680 claro 43 00:04:38,680 --> 00:04:41,300 comento la motivación 44 00:04:41,300 --> 00:04:42,980 para unir estos dos es 45 00:04:42,980 --> 00:04:45,199 al final permitir 46 00:04:45,199 --> 00:04:46,920 una auditoría, un historial de cambios 47 00:04:46,920 --> 00:04:50,259 y una trazabilidad que permitan un trabajo colaborativo. 48 00:04:51,639 --> 00:04:53,480 ¿Qué objetivos teníamos por tanto? 49 00:04:55,100 --> 00:04:58,180 Pues a la hora de gestionar, organizar y analizar esas tareas, 50 00:04:59,000 --> 00:05:05,660 un primer objetivo fundamental era que el sistema fuera un sistema de registro y gestión de tareas. 51 00:05:06,300 --> 00:05:12,420 El segundo objetivo, que pudiera integrar datos externos, 52 00:05:12,420 --> 00:05:20,560 porque obviamente en las empresas no se trabaja solo con un tipo de archivo que sea texto, sino que tenemos múltiples. 53 00:05:21,500 --> 00:05:30,079 Y luego de los más importantes que es al final como hay múltiples dispositivos, al final hay muchos usuarios y cada uno puede usar un dispositivo 54 00:05:30,079 --> 00:05:38,259 o aunque no use uno se compartan, siempre suele haber más de un equipo, pues que haya una sincronización que sea robusta, 55 00:05:38,259 --> 00:05:41,879 que sea tolerante a fallos y obviamente multiusuario. 56 00:05:42,420 --> 00:05:58,860 ¿Cómo va a estar organizado? Pues la arquitectura del sistema tiene en cuenta que va a haber un nodo central que vamos a tener gestionado para que sirva datos a los clientes que van después. 57 00:05:58,860 --> 00:06:02,699 ¿Qué servicios son los que nos interesan? 58 00:06:03,279 --> 00:06:09,139 Pues Logsic va a ser la interfaz que utilicemos para interactuar con el servicio 59 00:06:09,139 --> 00:06:13,740 por lo menos los usuarios, luego la parte de administración vendrá ahora o después 60 00:06:13,740 --> 00:06:20,339 y este Logsic tendrá por un lado el módulo de gestión de tareas 61 00:06:20,339 --> 00:06:22,920 otro en la importación de datos 62 00:06:22,920 --> 00:06:27,980 y bueno, lo he puesto como un módulo pero en realidad sería como un servicio 63 00:06:27,980 --> 00:06:32,160 que es el servicio de la sincronización y la colaboración 64 00:06:32,160 --> 00:06:35,240 que va a estar hecho a partir de las herramientas. 65 00:06:36,959 --> 00:06:40,360 Inicialmente, como había dicho, lo haríamos a través de JIT, 66 00:06:40,959 --> 00:06:46,199 pero como vamos a ver, al final vamos a necesitar otro tipo de herramientas 67 00:06:46,199 --> 00:06:47,899 que nos permitan también hacer ese versionado. 68 00:06:49,759 --> 00:06:53,759 Y bueno, como mucho del trabajo se va a hacer también a partir de un IDE, 69 00:06:53,959 --> 00:06:56,779 que en este caso yo he elegido el Visual Studio, 70 00:06:56,779 --> 00:07:04,379 pero pero bueno podría ser cualquier otro que al final nos permita nos permita eso trabajar con 71 00:07:04,379 --> 00:07:11,240 archivos de texto de una manera bastante dinámica como se puede ver aquí al final en medellín el 72 00:07:11,240 --> 00:07:20,779 servicio que hemos utilizado va a ser va a ser sencillo comentó también de manera aparte 73 00:07:20,779 --> 00:07:23,220 inicialmente para el servicio 74 00:07:23,220 --> 00:07:24,699 de análisis e importación de datos 75 00:07:24,699 --> 00:07:26,420 se había propuesto 76 00:07:26,420 --> 00:07:28,620 una solución con 77 00:07:28,620 --> 00:07:29,819 skips de Python 78 00:07:29,819 --> 00:07:32,839 pero debido a la complejidad 79 00:07:32,839 --> 00:07:34,339 del desarrollo de los otros módulos 80 00:07:34,339 --> 00:07:36,379 ha sido un poco más complicado 81 00:07:36,379 --> 00:07:38,759 vale, pasemos con la siguiente 82 00:07:38,759 --> 00:07:44,709 entonces 83 00:07:44,709 --> 00:07:46,329 uno de los pilares 84 00:07:46,329 --> 00:07:48,509 de los servicios que 85 00:07:48,509 --> 00:07:50,389 necesitábamos era 86 00:07:50,389 --> 00:07:52,709 la sincronización robusta 87 00:07:52,730 --> 00:07:56,610 buscando sobre cómo implementar JIT 88 00:07:56,610 --> 00:07:59,709 claro, surgen varios problemas 89 00:07:59,709 --> 00:08:02,689 que muestro a continuación 90 00:08:02,689 --> 00:08:04,790 por un lado, JIT puede ser confuso 91 00:08:04,790 --> 00:08:07,990 porque como puedes ver aquí en el diagrama 92 00:08:07,990 --> 00:08:09,209 de abajo a la izquierda 93 00:08:09,209 --> 00:08:12,209 la cantidad, solo una porción 94 00:08:12,209 --> 00:08:14,769 de lo que son las acciones principales 95 00:08:14,769 --> 00:08:15,670 que puedes hacer 96 00:08:15,670 --> 00:08:19,850 la cantidad de código 97 00:08:19,850 --> 00:08:27,790 de conceptos que hay que tener en cuenta son bastante amplios, entonces a la hora de desarrollarlo 98 00:08:27,790 --> 00:08:35,070 era un poco complicado. Obviamente esto se puede traducir un poco eso que JIT es para 99 00:08:35,070 --> 00:08:44,309 expertos y requiere eso, tener frescos los comandos y entonces como solución que es 100 00:08:44,309 --> 00:08:46,269 viable y que soluciona 101 00:08:46,269 --> 00:08:47,429 todos los 102 00:08:47,429 --> 00:08:50,049 todos los requerimientos 103 00:08:50,049 --> 00:08:52,049 que teníamos inicialmente con este desarrollo 104 00:08:52,049 --> 00:08:54,110 se solucionó 105 00:08:54,110 --> 00:08:55,950 con una aplicación de 106 00:08:55,950 --> 00:08:57,950 sincronización peer-to-peer que es 107 00:08:57,950 --> 00:08:59,950 Sinti, que hace 108 00:08:59,950 --> 00:09:00,909 no solo que 109 00:09:00,909 --> 00:09:03,929 librarnos de esa parte de los comandos 110 00:09:03,929 --> 00:09:05,590 sino que la sincronización sea 111 00:09:05,590 --> 00:09:07,929 automática e intuitiva 112 00:09:07,929 --> 00:09:09,929 entonces así no hay que estar 113 00:09:09,929 --> 00:09:11,830 un poco requiriendo a los 114 00:09:11,830 --> 00:09:13,049 usuarios finales que 115 00:09:13,049 --> 00:09:15,669 incluso aunque se pudiera automatizar 116 00:09:15,669 --> 00:09:17,970 con darle parte a un botón 117 00:09:17,970 --> 00:09:19,370 o a varios 118 00:09:19,370 --> 00:09:21,289 si hubiera algún problema sería mucho más fácil 119 00:09:21,289 --> 00:09:23,269 de darle solución 120 00:09:23,269 --> 00:09:25,289 entonces 121 00:09:25,289 --> 00:09:29,409 el esquema de sincronización peer-to-peer 122 00:09:29,409 --> 00:09:31,210 con Synthil se propone 123 00:09:31,210 --> 00:09:32,409 que un servidor central 124 00:09:32,409 --> 00:09:35,809 que es el primero que gestionaremos 125 00:09:35,809 --> 00:09:39,389 contenga los datos relevantes 126 00:09:39,389 --> 00:09:41,750 de cómo va a ser la configuración 127 00:09:41,750 --> 00:09:47,629 tanto a nivel de firewall, direcciones, vamos, todo lo requerido. 128 00:09:48,629 --> 00:09:53,950 Y luego tenemos, como además Synthium es una solución multiplataforma, 129 00:09:54,090 --> 00:10:01,690 ya sea a través de su línea de comandos o con las interfaces gráficas que hay desarrolladas, 130 00:10:02,350 --> 00:10:09,110 podríamos usar tanto Linux como Windows, Android, cualquiera de los sistemas operativos que necesitemos. 131 00:10:09,110 --> 00:10:15,509 ¿Qué funciones nos iba a dar mientras la estemos usando? 132 00:10:16,429 --> 00:10:22,850 Pues esto es muy clave porque parte de usar JIT es poder tener un histórico 133 00:10:22,850 --> 00:10:25,590 y es que admite el versionado de archivos 134 00:10:25,590 --> 00:10:29,870 entonces podemos ver cómo ha ido cambiando 135 00:10:29,870 --> 00:10:36,870 si hemos hecho algún cambio en dos equipos podemos ver cómo ha sucedido 136 00:10:36,870 --> 00:10:56,870 En el caso de que haya un nodo que sea el que detecte primero el cambio, avisa y en ese momento crea un archivo de respaldo respecto al que tiene él originalmente. 137 00:10:56,870 --> 00:11:04,690 Y esto lo notifica de manera que luego se puede modificar, se puede corregir, quiero decir. 138 00:11:06,870 --> 00:11:23,169 Igualmente, yo he dicho que utilizaríamos un servidor central en nuestro esquema porque al final va a ser el que siempre va a estar encendido, pero al ser un sistema peer-to-peer en realidad no sería necesario. 139 00:11:23,669 --> 00:11:35,450 Cualquiera de los equipos al final va a servir de bastión para conservar esos datos. Luego habría que ver según el nivel de confianza que tengan cada uno de los equipos. 140 00:11:36,870 --> 00:11:42,129 Entonces, ¿cómo haríamos el proceso de auditoría y seguridad y la gestión de estos conflictos? 141 00:11:42,970 --> 00:12:06,549 Pues, una parte importante que hay que configurar en el sistema es el versionado, que es un tipo de versionado que va como por capas, sería el stagger, y lo hace de manera inteligente, guardando, según se aleja más en el tiempo, solo un porcentaje de los totales. 142 00:12:06,549 --> 00:12:23,250 y va eliminando los que no son, bueno esto se puede configurar también, que de hecho viene parte en el archivo final, pero si dejáramos el inteligente lo hace de hecho optimizando para guardar un histórico que sea bastante fiel. 143 00:12:23,250 --> 00:12:37,950 Entonces, una vez ya tenemos todo configurado, el sistema nos marca en la propia interfaz que hay archivos que ha habido algún conflicto entre ellos 144 00:12:37,950 --> 00:12:44,269 Los buscamos, los notificamos para poder seguir la traceabilidad 145 00:12:44,269 --> 00:13:05,669 Y como integración aparte para poder realizar estas comparaciones de una forma visual, se ha propuesto también el uso de la aplicación Mail, que requiere la supervisión de un administrador. 146 00:13:05,669 --> 00:13:17,230 Este lo tendríamos simplemente en el administrador y permite de una forma muy visual ver cómo ha habido esos cambios y si nos compensa tener uno u otro. 147 00:13:18,570 --> 00:13:32,970 En cuanto a la documentación generada durante el desarrollo de este proyecto, tenemos la propia memoria solicitada para ir viendo cómo es el desarrollo de esta aplicación. 148 00:13:32,970 --> 00:13:50,950 A la hora de la configuración de Synthil, lo que se ha hecho es, se puede hacer tanto de manera gráfica, es realmente intuitivo, es decir, con unos desplegables que además te van explicando bastante para qué sirve cada punto, 149 00:13:50,950 --> 00:14:11,950 pero como queríamos hacerlo de una manera más escalable, una de las opciones, aunque no es ideal porque por cómo es el proceso de Synthi que requiere que haya una generación de unas claves hash cuando se inicia el sistema en cada equipo, 150 00:14:11,950 --> 00:14:38,590 Lo que se ha podido hacer es una solución un poco paralela y es una vez está generado esos hash para ese equipo, una vez se ha lanzado inicialmente el servicio en ese equipo, lo que se puede hacer usando la misma aplicación de Melt es fusionar los datos que nosotros queremos de nuestra configuración con el nuevo sistema. 151 00:14:38,590 --> 00:14:58,029 Entonces, con este script se puede hacer. Y luego, otro archivo que se ha generado es una plantilla de ejemplo de cómo serían, por ejemplo, las tareas para una oficina de, vamos, una empresa local. 152 00:14:58,029 --> 00:15:13,669 Y que, por último, ¿qué ventajas tenemos frente a otras alternativas? Pues para pequeñas empresas está muy bien porque tienen una licencia de open source y entonces eso implica que tienen coste cero. 153 00:15:13,669 --> 00:15:24,049 No dependeríamos de otras empresas para darnos asistencia con estos servicios 154 00:15:24,049 --> 00:15:27,529 Sería al final todo nuestro 155 00:15:27,529 --> 00:15:33,470 La adaptabilidad que lo he mencionado como resolución principal 156 00:15:33,470 --> 00:15:38,509 Porque si en el entorno empresarial existen usuarios con distintos equipos 157 00:15:38,509 --> 00:15:40,870 Poder al final incorporarlo en cualquiera de ellas 158 00:15:40,870 --> 00:15:52,690 Y luego también el bajo umbral técnico que requiere, como he mencionado, que al final incluso hay opciones para hacerlo en interfaz gráfica. 159 00:15:52,690 --> 00:15:56,370 como conclusión 160 00:15:56,370 --> 00:15:58,110 quería remarcar que el sistema 161 00:15:58,110 --> 00:15:59,610 desarrollado cumple con 162 00:15:59,610 --> 00:16:01,230 el objetivo principal 163 00:16:01,230 --> 00:16:04,029 que era ofrecer esa solución 164 00:16:04,029 --> 00:16:06,450 para centralizar, sincronizar 165 00:16:06,450 --> 00:16:06,990 y auditar 166 00:16:06,990 --> 00:16:09,610 toda la información 167 00:16:09,610 --> 00:16:12,049 y la gestión de tareas y sobre todo 168 00:16:12,049 --> 00:16:13,950 usando esas herramientas libres 169 00:16:13,950 --> 00:16:16,190 y hasta aquí estaría 170 00:16:16,190 --> 00:16:31,799 vale 171 00:16:31,799 --> 00:16:33,519 pues Docker 172 00:16:33,519 --> 00:16:35,720 se propone como una solución 173 00:16:35,720 --> 00:16:42,159 porque el nodo por ejemplo que serviría de servidor central 174 00:16:42,159 --> 00:16:49,320 al implementarlo con Docker podríamos configurarlo que sea de manera también escalable 175 00:16:49,320 --> 00:16:54,419 entonces incluso en un equipo que tengamos corriendo otro sistema 176 00:16:54,419 --> 00:16:59,679 si no queremos que estos colisionen con nuestro propio sistema 177 00:16:59,679 --> 00:17:03,080 hacemos una instalación con docker 178 00:17:03,080 --> 00:17:04,759 le ponemos syncing dentro 179 00:17:04,759 --> 00:17:07,279 y la carpeta que nos haya 180 00:17:07,279 --> 00:17:09,079 creado locksheet 181 00:17:09,079 --> 00:17:11,400 y esto va a estar 182 00:17:11,400 --> 00:17:12,720 aislado del resto, entonces 183 00:17:12,720 --> 00:17:14,460 conseguimos bastante 184 00:17:14,460 --> 00:17:17,279 bastante aislamiento por así decirlo 185 00:17:18,519 --> 00:17:38,329 vale, pues en el 186 00:17:38,329 --> 00:17:40,930 archivo que hemos creado de configuración 187 00:17:40,930 --> 00:17:42,750 permite 188 00:17:42,750 --> 00:17:44,630 que el 189 00:17:44,630 --> 00:17:45,869 nodo central por ejemplo 190 00:17:45,869 --> 00:17:49,809 sirva como ese versionado 191 00:17:49,809 --> 00:17:52,730 y para acceder a él nos pida tanto un usuario 192 00:17:52,730 --> 00:17:54,950 como una contraseña, se puede configurar también 193 00:17:54,950 --> 00:17:58,250 inicialmente como el equipo en sí mismo 194 00:17:58,250 --> 00:18:00,789 también lo asumimos que está 195 00:18:00,789 --> 00:18:05,049 fuera de acceso, lo ponía también en la memoria 196 00:18:05,049 --> 00:18:07,569 fuera de acceso para usuarios 197 00:18:07,569 --> 00:18:10,849 habituales, solo para administradores 198 00:18:10,849 --> 00:18:13,670 en principio no sería necesario pero se puede 199 00:18:13,670 --> 00:18:15,369 implementar doblemente 200 00:18:15,369 --> 00:18:26,829 Y está muy bien porque al final otra solución que se puede dar es uno de los backups hacerlo solo en un sentido. 201 00:18:27,170 --> 00:18:31,930 Entonces, que solo se reciban datos. 202 00:18:32,509 --> 00:18:38,630 Sí que es verdad que a lo mejor uno de los problemas cuando los estaba buscando era la cantidad de archivos, 203 00:18:38,630 --> 00:18:47,109 el volumen de datos necesarios que se iban a generar, pero bueno, es una solución bastante factible 204 00:18:47,109 --> 00:18:53,450 porque al final, haciendo pruebas, yo he comprobado que el volumen de texto generado no son tantos datos. 205 00:18:54,089 --> 00:18:57,950 Habría que ver luego con los datos externos que se incorporan. 206 00:18:58,269 --> 00:19:01,849 Si ya sube mucho, pues ahí habría que verlo. 207 00:19:18,029 --> 00:19:22,440 Muchas gracias María Pilar. Que se dé bien. Buen día. 208 00:19:22,960 --> 00:19:24,279 Hasta luego. Chao, chao.