El entorno de tiempo de ejecución en pocas palabras
Se requiere un LMS conforme a SCORM para implementar una API que consta de 8 Funciones (consulte la Sección 3.3 del documento de Entorno de tiempo de ejecución SCORM para obtener una especificación completa) a las que el contenido puede acceder para comunicarse con el LMS.
- LMSInitialize()
- LMSFinish()
- LMSGetValue()
- LMSSetValue()
- LMSCommit()
- LMSGetLastError()
- LMSGetErrorString()
- LMSGetDiagnostic()
Esta API es implementado por lo que el SCORM llama a una API Adaptador. Un adaptador de API debe residir en una ventana que sea una ventana de apertura o un marco principal de la ventana que contiene el contenido. Esto significa que el LMS puede lanzar el contenido en una nueva ventana o en un conjunto de marcos. El Adaptador de API debe ser un objeto ECMAScript(JavaScript) llamado «API» que sea accesible a través del DOM. El adaptador debe implementar las 8 funciones enumeradas anteriormente.
Toda la comunicación entre el contenido y el LMS es manejada por este adaptador, por lo que el autor del contenido no necesita preocuparse por comunicarse con el servidor, solo necesita poder encontrar el Adaptador API y realizar las llamadas JavaScript apropiadas. Esta separación de cliente y servidor es esencial para SCORM, ya que garantiza la portabilidad del contenido al obligarlo a ejecutarse en una plataforma estándar (el navegador web). Es importante tener en cuenta que el contenido solo puede comunicarse con el LMS a través de este adaptador API de JavaScript. No existe un método conforme a SCORM para que el contenido se comunique con el LMS a través de otros métodos, como servicios web o solicitudes HTTP.
Para una conformidad mínima con SCORM, lo único que debe hacer una pieza de contenido es llamar a LMSInitialize() cuando se inicia y luego llamar a LMSFinish () cuando sale. Puede ser así de simple.
En el mundo real, sin embargo, queremos una interacción mucho más rica. Queremos poder informar de los resultados de las pruebas, hacer un seguimiento del tiempo, marcar nuestra última ubicación y mucho más. Aquí es donde entran en juego las siguientes tres funciones. El SCORM define un modelo de datos que consiste en elementos del modelo de datos de los que el contenido puede leer y escribir, facilitando este tipo de funcionalidad (consulte la Sección 3.4 del documento de entorno de tiempo de ejecución SCORM para obtener una lista completa de elementos del modelo de datos). LMSGetValue() recupera el valor de un elemento de modelo de datos del LMS, LMSSetValue() escribe un valor para un elemento de modelo de datos en el LMS y LMSCommit () se puede llamar después de establecer cualquier valor para garantizar que los datos se conserven.
Por ejemplo:
cmi.núcleo.lesson_location es el elemento de datos que describe la ubicación del usuario en el contenido
Cuando comienza el contenido (después de llamar a LMSInitialize();), es posible que desee realizar esta llamada para averiguar dónde lo dejó el usuario y devolverlo a ese punto:
strLastLocation = objAPI.LMSGetValue("cmi.core.lesson_location");
Cuando el contenido va a otra área, es posible que realice esta llamada para guardar la ubicación del usuario:
blnSuccess = objAPI.LMSSetValue("cmi.core.lesson_location", "page3"); blnSuccess = objAPI.LMSCommit("");
Las otras tres funciones permiten que el contenido atrape y trate de forma inteligente los errores.
Implementar este adaptador de API en el LMS es un poco más complicado que usarlo desde el contenido. El adaptador de API tiene que implementar todas las funciones de la API y admitir la mayor parte del modelo de datos SCORM. El problema complicado relacionado con la implementación de un LMS conforme a SCORM es cómo manejar la comunicación del navegador al servidor. Muchas personas eligen hacer esto con un applet de Java, pero otras han tenido éxito usando Flash, controles ActiveX y JavaScript puro.