Blockchain y LMS: una prueba de concepto

Combinando tecnología Blockchain con LMS

Tecnología Blockchain: gran potencial, ¿verdad? Esto es lo que hemos escuchado durante los últimos 6 años; y, si está en la gestión de la cadena de suministro (SCM), los casos de uso son obvios. Pero, ¿y si no estás en SCM? Por ejemplo, mi empresa está en el espacio de aprendizaje y trabajamos con Learning Management Systems (LMS). Más concretamente, trabajamos con SAP y su LMS SAP SuccessFactors.

Comenzamos a hacer preguntas básicas como: ¿Qué puede hacer blockchain para el aprendizaje, cuáles son los casos de uso, hay casos de uso, qué tecnología está disponible, etc. Comenzamos a hacer estas preguntas hace dos años y en los últimos años notamos que SAP ha invertido mucho en blockchain y Hyperledger Fabric (ver).

Blockchain todavía es relativamente nuevo y LMS es un tema amplio, por lo que queríamos mantenerlo simple.

¿Por qué combinar Blockchain con un LMS?

Lo que encontramos fue muy interesante. En primer lugar, los programas de acreditación o las certificaciones dependen de un sistema para almacenar de forma segura y proporcionar estandarización y facilidad de acceso (dirigido por reglas comerciales internas y/o regulación, por supuesto). En segundo lugar, las acreditaciones/certificaciones están directamente relacionadas y dependen del historial de aprendizaje o de los datos de finalización del aprendizaje; y los datos de finalización son administrados por un LMS. El 100% de los clientes de LMS administran los datos del historial de aprendizaje de alguna forma o manera y la mayoría, si no la gran mayoría de los usuarios de LMS, implementan y administran certificaciones o acreditaciones.

Un poco más de fondo

En un nivel básico, cada proyecto LMS tiene que administrar datos, específicamente datos de aprendizaje (p. ej., historial de aprendizaje que muestre “quién completó qué” curso). [course, curriculum, or learning event]). El LMS también autentica y administra el contenido o los eventos de “aprendizaje” (como eLearning, registros dirigidos por instructores, etc.). Nuestro equipo observó que durante la mayoría de los compromisos de LMS (implementación o migración) surgen preguntas emergentes sobre retención de datos como: ¿cuánto tiempo atrás tenemos que ir para retener el historial de aprendizaje? qué específicamente tenemos que conservar; cuál es el proceso para retener información; qué pasa con la recuperación ante desastres; ¿Se puede automatizar? qué informes están disponibles; etc. Por supuesto, el grado de enfoque en estos temas varía enormemente según la industria y el cliente, pero vemos que casi todos los clientes de SAP LMS se enfrentarán a preguntas sobre la gestión de datos del historial de aprendizaje (Punto de interés 1 a continuación).

Además, como se indicó anteriormente, la mayoría de los clientes de aprendizaje de SAP SuccessFactors estarán “involucrados en” la certificación o acreditación. Por ejemplo, los compromisos de LMS empresariales o incluso de pequeña escala utilizarán el LMS para asignar actividades de aprendizaje a una necesidad de certificación o acreditación.

Una de las técnicas más utilizadas que vemos es el uso de la función de currículo en SuccessFactors porque esta función le permite a la empresa crear capacitación adicional por elemento/curso. Por ejemplo, una empresa puede desarrollar un plan de estudios para una certificación y esa certificación requeriría que se completen cinco cursos al año para ser considerada “certificada”. La función LMS y el plan de estudios pueden hacer esto con alguna configuración en torno a variables y notificaciones de reentrenamiento. Hay otros métodos, pero esta es una técnica común. La certificación/acreditación también variará mucho según el sector de la industria (p. ej., los hospitales estarían preocupados por la acreditación del personal médico, las instalaciones nucleares estarían preocupadas por la acreditación de ingenieros, seguridad, etc.).

Entonces, con ese contexto y antecedentes, este fue nuestro punto de partida: ¿Podemos utilizar Hyperledger Fabric cuando usamos SAP SuccessFactors para aprender a crear una aplicación de certificación basada en blockchain?

Esta pregunta tiene 3 componentes, vamos a desglosarlo:

  • ¿Podemos tomar los datos de finalización de los alumnos y almacenar automáticamente los datos de finalización en la cadena de bloques?
  • ¿Podemos proporcionar una forma para que los oficiales de cumplimiento, los reguladores y/o los usuarios de LMS, según los permisos normales basados ​​en roles (RBP), carguen y almacenen certificados o credenciales en la cadena de bloques?
  • ¿Podemos proporcionar una forma de enviar un certificado o certificados a un tercero (persona u organismo regulador) y/o proporcionar una forma de que un tercero pueda acceder fácilmente a él, como un organismo regulador o un oficial de cumplimiento?
  • Aquí hay un diagrama de nuestra prueba de concepto que muestra cada una de esas 3 preguntas:

    Ahora que hemos cubierto los antecedentes, echemos un vistazo más de cerca a nuestra arquitectura y tecnología:

    • AWS
      Utilizamos la instancia de AWS EC2 Ubuntu 16.04 para instalar, configurar e implementar las aplicaciones de red empresarial en la nube.
    • ReaccionarJS
      Usamos reactJS para mostrar los registros en el libro mayor en la aplicación web. También usamos reactJS para mostrar la información del usuario y los certificados que el usuario ha cargado.
    • Libro mayor y código de cadena
      Usamos el libro mayor distribuido para mantener un libro mayor de cualquier transacción o contrato entre diferentes ubicaciones y personas. Usamos chaincode para desarrollar contratos comerciales, definiciones de activos y administrar colectivamente aplicaciones descentralizadas.
    • Nodo.js
      Usamos Node.js para leer archivos .CSV de servidores FTP y para cargar/procesar los registros en formato .CSV en el libro mayor, y también para programar el trabajo cron para verificar si tenemos algún archivo en la carpeta FTP para procesar.
    • los REST del compositor de Hyperledger servidor
      Composer-rest-server se utiliza para generar una API REST a partir de una red comercial de cadena de bloques implementada que los clientes HTTP o REST pueden consumir fácilmente.
    • los Zona de juegos para compositores de Hyperledger proporciona una interfaz de usuario para la configuración, implementación y prueba de una red comercial.
    • NGINX
      Utilizamos NGINX como servidor web para exponer aplicaciones web y API de descanso en Internet.

    También:

    • Utilizamos un proxy inverso para asegurarnos de que la identidad de nuestros servidores backend permanezca anónima.
    • El servidor PM2 nos permite mantener las aplicaciones vivas para siempre, recargarlas sin tiempo de inactividad y facilitar las tareas comunes de administración del sistema.
    • Usamos un servidor simple para el FTP para guardar todos los archivos .CSV que se exportaron desde SAP SuccessFactors, o como la ubicación para que otros sistemas coloquen archivos.

    Punto 1

    Ahora, al punto 1: ¿Podemos proporcionar una forma de almacenar automáticamente el historial de aprendizaje o los datos de finalización del aprendizaje en la cadena de bloques? Así es como atacamos eso en nuestra prueba de concepto:

    Como se describe, la descripción general del proceso es (tenga en cuenta que mantenemos este alto nivel por diseño):

  • El alumno toma y completa el aprendizaje. El LMS publica automáticamente el archivo de historial de aprendizaje en un horario. Para SAP SuccessFactors LMS, hay una manera de hacer esto con cualquier informe, ya sea listo para usar o personalizado, vea esto Blog explicando el proceso de entrega de informes remotos. Para este POC usamos el archivo learning history.csv.
  • El trabajo cron de Node.js selecciona y lee el archivo, luego inserta los datos usando las API REST.
  • Las transacciones y los datos se almacenan en el libro mayor de la cadena de bloques.
  • Consideraciones clave para este paso:

    • No estamos limitados al tipo de datos que colocamos en el servidor FTP, podemos elegir cualquier tipo de datos de aprendizaje si nos mantenemos con nuestro concepto de conectar el historial de aprendizaje o los datos de finalización y las certificaciones. Elegimos comenzar con un informe de historial de aprendizaje básico que muestra información básica de usuario, curso/aprendizaje, fecha/hora. Toda esta información sería necesaria para la mayoría de los problemas de verificación de la certificación.
    • No estamos limitados a SAP SuccessFactors. Esto se puede aplicar a cualquier LMS u otro sistema personalizado que almacene datos de finalización del aprendizaje, es decir, como se señaló anteriormente, todos los LMS se ocupan del historial de aprendizaje y tienen informes.
    • Ahora podemos cambiar fácilmente cómo Node.js lee el archivo en el FTP. El proceso se ha establecido, ahora la personalización será más fácil de acomodar al proceso comercial, la regulación, etc.
    • No estamos limitados a un sistema como entrada. Es el caso de que algunas empresas almacenan y/o reciben el historial de aprendizaje y los datos de finalización de múltiples sistemas personalizados o LMS.

    punto 2

    Ahora, al punto n.º 2: ¿Podemos proporcionar una forma para que los usuarios de LMS, según los permisos normales basados ​​en roles (RBP), carguen y almacenen certificados o credenciales en la cadena de bloques? Así es como atacamos eso en nuestra prueba de concepto:

    Para esta parte del POC, hemos creado una aplicación web que permite a los usuarios, bajo ciertas configuraciones de RBP, cargar y almacenar certificaciones o documentación de acreditación en la cadena de bloques.

    Consideraciones clave para este paso:

    • No estamos limitados por el tipo de usuario, para este POC asumimos que los estudiantes tienen documentos de certificación y/o acreditación para almacenar en la cadena de bloques. Podríamos usar cualquier tipo de modelo RBP y aceptar cualquier tipo de documentos, por ejemplo, archivos de recursos humanos, registros médicos, etc. En nuestro caso de uso, la mayoría de los estudiantes que interactúan con un LMS obtendrán una impresión de pantalla de una página de finalización mientras en un curso, poder imprimir un certificado generado por el LMS, y/o tener acceso a informes básicos.
    • La autenticación en la aplicación web se puede modificar. Asumimos la autenticación de dos factores, pero también hemos planificado el inicio de sesión único (SSO).
    • La funcionalidad de nuestro POC se limita a la carga y clasificación básica, pero podría haber múltiples procesos que podrían verificar o validar la documentación. Por ejemplo, se puede construir un Oracle para permitir que ocurra una autenticación o validación automatizada contra los datos existentes. Una variación de este ejemplo podría ser la creación de capacidades administrativas que tal vez se asignen a las RBP de administración de LMS que incluyen una verificación “pre blockchain”.

    Preguntas abiertas y limitaciones

  • Esta es una prueba de concepto (POC), no un argumento de venta de productos completamente desarrollado. Tiene los componentes básicos necesarios para abordar nuestras áreas de enfoque de LMS y blockchain.
  • SAP SuccessFactors Learning es parte de un “conjunto” de productos complementarios de SAP. Este conjunto de productos proporciona una potente solución empresarial. Este POC se centró en una parte de la suite, el LMS y los datos exportados desde el LMS.
  • No necesitamos una cadena de bloques para lograr todas las características de este POC. Estamos de acuerdo. La intención era aprovechar la tecnología SAP Blockchain y la empresa LMS SAP SuccessFactors. SAP tiene una tecnología maravillosamente poderosa que podría aplicarse, vea S/4 HANA para empezar.
  • Utilizamos un enfoque de blockchain “semiprivado” o autorizado. Para algunos puristas de blockchain, este no es el mejor caso y no es una verdadera descentralización. Estamos de acuerdo.
  • Este no es un caso de negocios. No tratamos de hacer un caso de negocios. Obviamente, el mercado es muy grande y ahora se pueden agregar fácilmente servicios personalizados para adaptarse a los procesos comerciales, los requisitos reglamentarios y otras tecnologías; un caso de negocio puede seguir este POC.
  • Resumen

    La tecnología Blockchain está siendo utilizada por un número creciente de empresas. Según SAP, el 44% de las organizaciones son capaces de utilizar la tecnología blockchain para documentar transacciones de forma segura (referencia).

    Esta prueba de concepto demostró que podíamos aplicar los beneficios clave de la tecnología blockchain: seguridad, intermediarios limitados, trazabilidad, automatización y privacidad de datos en una aplicación de certificación/credencialización basada en blockchain.

    El mercado y la utilidad están ahí, y esperamos que este artículo brinde suficientes detalles para comenzar su propio proyecto y le deseamos suerte mientras crea aplicaciones basadas en blockchain.