Monitoreo de cursos e-learning.

Breves:

En este documento:


Como comunicar el inicio y el fin de una sesión a SENCE

Antes de explicar este procedimiento, es importante señalar muy brevemente que es un LMS

Learning Management System (LMS) : Herramienta de gestión y de distribución de la formación en línea.

El objetivo primario de un LMS es administrar a los estudiantes, siguiendo su progreso y su rendimiento para cualquier categoría de actividad de enseñanza electrónica.
Las soluciones LMS también se focalizan en elementos tales como el catálogo, la matrícula, etc.
También se concentran en la administración de la formación y la gestión de la logística de las aulas de formación.
Generalmente, los productos LMS incluyen funcionalidades tales como :

El inicio y fin de una sesión, pasa a ser entonces, una nueva funcionalidad que debe tener incluida un LMS y su objetivo es comunicar que un alumno ingresó o salió del curso, efectuando esta comunicación al al Webservice de SENCE.

Esta comunicación debe ir acompañada de los siguientes parámetros:

curso: Corresponde al código SENCE.
rut: Rut del alumno.
passwd: Contraseña del Organismo Capacitador (no la del alumno).

Nota: La contraseña corresponde a la que SENCE entrega a los Organismos Técnicos cuando estos se adhieren para trabajar vía internet a través del formulario de adhesión.

Cómo implementar las comunicaciones del LMS a SENCE en línea:

Por ejemplo, para informar el inicio de una sesión, o que un alumno acaba de ingresar a un curso, se debe realizar la siguiente llamada:
http://notificaciones.sence.cl/inicio_sesion?rut=1-9&passwd=3046&curso=1234666943

De la misma forma, para informar el fin de una sesión, se debe realizar la siguiente llamada:
http://notificaciones.sence.cl/fin_sesion?rut=1-9&passwd=3046&curso=1234666943


Cómo implementar las comunicaciones del LMS a SENCE fuera de línea:

En el caso de informar los inicio y fin de sesión de los alumnos, pero fuera de línea, se debe incorporar un parámetro extra en la llamada a la API, el cual corresponde a la fecha y la hora, con el siguiente formato.

Para inicio de sesión:
http://notificaciones.sence.cl/inicio_sesion?rut=1-9&passwd=3046&curso=1234666943&fecha_hora=20/10/2002-17:30

Para fin de sesión:
http://notificaciones.sence.cl/fin_sesion?rut=1-9&passwd=3046&curso=1234666943&fecha_hora=20/10/2002-18:30



Esquema general de una comunicación a través del LMS a SENCE

api_sence.jpg (88081 bytes)


Antes y después.

Antes:

  1. Para ingresar al curso, el alumno se autentica (ingresa username y password)
  2. LMS valida los datos y otorga acceso al curso.

Después:

  1. Para ingresar al curso, el alumno se autentica (ingresa username y password).
  2. LMS valida los datos y otorga acceso al curso.
  3. LMS comunica a SENCE el inicio o el fin de una sesión.

Respuesta de una Comunicación

Al realizar una comunicación de inicio o fin de sesión, el Webservice o API retorna un código que puede ser 400 cuando encuentra un error o 200 en el caso de tener éxito.


Pruebas

Por ejemplo si el carnet de identidad es 1774761-4, las comunicaciones serían de esta forma:

Para informar que el alumno 1774761-4 ingresó al curso es la siguiente:

http://notificaciones.sence.cl/inicio_sesion?rut=1774761-4&passwd=3046&curso=1234666943

Y para informar que el alumno salió del curso es:

http://notificaciones.sence.cl/fin_sesion?rut=1774761-4&passwd=3046&curso=1234666943

Es importante señalar que no todos los LMS tienen la opción para finalizar sesión o salir del curso, y si la tienen, por lo general los alumnos cierran el browser.

Para estos casos, el procedimiento es el siguiente:

A diario se corre a las 0 horas 1 minuto (00:01) un proceso que cierra todas aquellas inicios de sesión que quedaron abiertas, es decir, si un alumno entró a las 17:30 horas y el LMS no envió el fin de su sesión, el proceso lo cierra con 1 horas de trabajo, es decir a las 18:30 horas.


Ejemplo de programa cliente que realiza
una comunicación desarrollado en PERL
.

#!/usr/bin/perl
use strict;
use HTTP::Response;
use LWP::UserAgent;

my $ua = LWP::UserAgent->new(timeout => 30);

my $url ="http://notificaciones.sence.cl/inicio_sesion?rut=3-5&passwd=3046&curso=1234666943";

my $resp        = $ua->request(HTTP::Request->new('GET', $url));

print $resp->status_line;

Para el ejemplo anterior, la variable $resp es quien tiene el valor de retorno producto de una llamada a la API.

------------------------------------------------------------------------------------------------------------------------

Ejemplo de programa cliente que realiza una comunicación desarrollado en ASP cedido por la empresa Les Halles, Consultores de Empresas.

<% ' Cedido por ::: Les Halles, Consultores de Empresas :::
RUT="1-9"
myURL = "http://notificaciones.sence.cl/inicio_sesion?rut="&RUT&"&passwd=3046&curso=1234666943"
Set GetConn = CreateObject("Microsoft.XMLHTTP")

GetConn.Open "get", myURL, False
GetConn.Send
ResponsePage = GetConn.responseText

Response.write ("Status:"& GetConn.Status & " - " & GetConn.StatusText &"_<br>")

Set GetConn = Nothing
%>
------------------------------------------------------------------------------------------------------------------------

Ejemplo de programa cliente que realiza una comunicación desarrollado  en PHP, cedido por el señor Marcelo Castillo Leyton, Programador Jefe Entorno Educativo.

===CODIGO PHP===
<?php
/*
* Codigo para comunicacion con API de cursos e-learning Sence
* Programador : Marcelo Castillo L. <mcl@tics.cl> <mcl@educativo.cl>
* URL : http://www.tics.cl http://www.educativo.cl
* Fecha : 20/07/2003
* Licencia : GNU/GPL (http://www.gnu.org/licenses/gpl.txt)
*/
// Nombre del host a conectar con la API (del Sence)
$host="notificaciones.sence.cl";
$fp=fsockopen($host,80);


// Cambiar los datos correspondientes a RUT, PASSWORD y CURSO, segun
corresponda.
fwrite($fp, "GET /inicio_sesion?rut=1-9&passwd=3046&curso=1234666943
HTTP/1.0\r\n");
fwrite($fp, "Host: $host\r\n\r\n");


while(! feof($fp)) {
// lectura de datos desde el host de la API
$resultado .= fread($fp, 1024);
}
// Cierre de la coneccion con el host
fclose($fp);
//Retencion del codigo
switch (substr(substr($resultado,0,12),9)){
case 400: // Salida Codigo 400
echo "MAL"; // Algo Fallo
break;
case 200: // Salida Codigo 200
echo "BIEN"; // Todo esta OK
break;
}
?>
===CODIGO PHP===


Si usted es un organismo capacitador o empresa asesora, puede coordinar una etapa de testing enviando lo solicitado a: mesadeservicios@sence.cl

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Ministerio del Trabajo y Previsión Social
Servicio Nacional de Capacitación y Empleo