Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
simo:documentos:tecnicos:recomendaciones [2017/11/14 21:24] lgomez [Pruebas virtuales] |
simo:documentos:tecnicos:recomendaciones [2017/11/14 21:26] (actual) lgomez [Integración con Orfeo] |
||
---|---|---|---|
Línea 220: | Línea 220: | ||
Normalmente este problema se soluciona invalidando los cachés manualmente de modo que tengan que ser repoblados, sin embargo esta operación es manual y solo se realiza cuando se evidencian inconsistencias. | Normalmente este problema se soluciona invalidando los cachés manualmente de modo que tengan que ser repoblados, sin embargo esta operación es manual y solo se realiza cuando se evidencian inconsistencias. | ||
Se recomienda entonces instalar un sistema de memoria distribuido como REDIS que proporciones una visión unificada de los cachés, este enfoque tiene las siguientes ventajas. | Se recomienda entonces instalar un sistema de memoria distribuido como REDIS que proporciones una visión unificada de los cachés, este enfoque tiene las siguientes ventajas. | ||
- | Soportado transparentemente por el sistema de cachés de Spring Boot | + | * Soportado transparentemente por el sistema de cachés de Spring Boot |
- | No necesita de mecanismos de replicación puesto que el servidor REDIS es desplegado en un solo nodo el cual es accedido por todos los nodos de SIMO a través de la red. | + | * No necesita de mecanismos de replicación puesto que el servidor REDIS es desplegado en un solo nodo el cual es accedido por todos los nodos de SIMO a través de la red. |
- | Puede ser utilizado también para almacenar información de sesión evitando así depender de las sesiones pegadizas del firewall (Ver recomendación de CSRF) | + | * Puede ser utilizado también para almacenar información de sesión evitando así depender de las sesiones pegadizas del firewall (Ver recomendación de CSRF) |
- | De muy fácil instalación y mantenimiento | + | * De muy fácil instalación y mantenimiento |
- | Puede ser utilizado también para almacenar índices Lucene (Ver siguiente recomendación) | + | * Puede ser utilizado también para almacenar índices Lucene (Ver siguiente recomendación) |
==== Directorios de índices Lucene ==== | ==== Directorios de índices Lucene ==== | ||
Línea 237: | Línea 236: | ||
En una primera instancia, se implementó un sistema distribuido Infinispan que mantenía sincronizados los índices, pero debido a la alta concurrencia y a que existían muchos más objetos indexados, este mecanismo fue desmontado en favor de los directorios Infinispan locales. | En una primera instancia, se implementó un sistema distribuido Infinispan que mantenía sincronizados los índices, pero debido a la alta concurrencia y a que existían muchos más objetos indexados, este mecanismo fue desmontado en favor de los directorios Infinispan locales. | ||
Con el objeto de evitar la sincronización manual que actualmente se realiza, se recomienda adoptar alguna de las siguientes estrategias: | Con el objeto de evitar la sincronización manual que actualmente se realiza, se recomienda adoptar alguna de las siguientes estrategias: | ||
- | Utilizar Infinispan respaldado por REDIS (Ver recomendación anterior). Al ser REDIS un servidor central no se tienen problemas de replicación de índices, puesto que cuando se actualiza un índice en un nodo, dicha actualización solo tiene que ser notificada al servidor REDIS y no a todos los otros nodos. | + | * Utilizar Infinispan respaldado por REDIS (Ver recomendación anterior). Al ser REDIS un servidor central no se tienen problemas de replicación de índices, puesto que cuando se actualiza un índice en un nodo, dicha actualización solo tiene que ser notificada al servidor REDIS y no a todos los otros nodos. |
- | Utilizar ElasticSearch como proveedor de los servicios de indexamiento, este enfoque minimiza la complejidad y es muy configurable y manejable pero reduce un poco el desempeño puesto que todo el sistema de indexamiento queda centralizado en un servidor central y es necesario acceder a las funciones de búsqueda a través de la red. | + | * Utilizar ElasticSearch como proveedor de los servicios de indexamiento, este enfoque minimiza la complejidad y es muy configurable y manejable pero reduce un poco el desempeño puesto que todo el sistema de indexamiento queda centralizado en un servidor central y es necesario acceder a las funciones de búsqueda a través de la red. |
- | Utilizar índices en FileSystem con replicación automática y preferiblemente utilizando una implementación en memoria como MMapDirectory para evitar el acceso continuo a disco. | + | * Utilizar índices en FileSystem con replicación automática y preferiblemente utilizando una implementación en memoria como MMapDirectory para evitar el acceso continuo a disco. |
==== Sistema de archivos distribuido ==== | ==== Sistema de archivos distribuido ==== | ||
Línea 268: | Línea 267: | ||
Se propone implementar un recomendador basado en inteligencia artificial que sugiera empleos a los ciudadanos basados en su hoja de vida (estudios, experiencia laboral) y/o en empleos escogidos por ciudadanos con características similares. | Se propone implementar un recomendador basado en inteligencia artificial que sugiera empleos a los ciudadanos basados en su hoja de vida (estudios, experiencia laboral) y/o en empleos escogidos por ciudadanos con características similares. | ||
Para crear este sistema se debe | Para crear este sistema se debe | ||
- | Escoger un modelo de aprendizaje, es decir, el algoritmo y los datos | + | - Escoger un modelo de aprendizaje, es decir, el algoritmo y los datos |
- | Entrenar el modelo y validar | + | - Entrenar el modelo y validar |
- | Implementar algoritmo en producción y enlazarlo a la interfaz de usuario | + | - Implementar algoritmo en producción y enlazarlo a la interfaz de usuario |
- | Por eficiencia es mejor calcular las recomendaciones en horas de baja concurrencia y solo hacerlo para los ciudadanos que hayan habilitado la función de recomendación. | + | - Por eficiencia es mejor calcular las recomendaciones en horas de baja concurrencia y solo hacerlo para los ciudadanos que hayan habilitado la función de recomendación. |
- | También es importante implementar una encuesta donde los ciudadanos califiquen si las recomendaciones han sido útiles y utilizar esta calificación como dato de aprendizaje | + | - También es importante implementar una encuesta donde los ciudadanos califiquen si las recomendaciones han sido útiles y utilizar esta calificación como dato de aprendizaje |
===== Recomendaciones y desarrollos a largo plazo ===== | ===== Recomendaciones y desarrollos a largo plazo ===== | ||
Línea 284: | Línea 283: | ||
Se recomienda implementar una integración entre Orfeo y el sistema de reclamaciones de SIMO de tal forma que: | Se recomienda implementar una integración entre Orfeo y el sistema de reclamaciones de SIMO de tal forma que: | ||
- | Al radicar una PQR referente a SIMO en Orfeo se despliegue un formulario especial que cree una reclamación SIMO por medio de una URL REST | + | - Al radicar una PQR referente a SIMO en Orfeo se despliegue un formulario especial que cree una reclamación SIMO por medio de una URL REST |
- | Al contestar una reclamación SIMO se actualice la respuesta al radicado original en ORFEO | + | - Al contestar una reclamación SIMO se actualice la respuesta al radicado original en ORFEO |
==== Integración con BNLE ==== | ==== Integración con BNLE ==== | ||