# Tin Can API

Tin Can API, rebautizado como Experience API, es un estándar para las aplicaciones (software) de e-learning que estructura y permite almacenar las interacciones de una persona ante distintas actividades de aprendizaje en línea.
Se trata de una API, es decir, de una pieza de software que proporciona un conjunto de funciones de uso general, cuyo objeto es capturar datos en un formato consistente. A través de esta API, sistemas muy diferentes pueden comunicarse entre sí de forma segura e intercambiar los flujos de actividades de una persona o un grupo de personas mientras interactúan con diversas tecnologías y contenidos. Esta información en su conjunto es definida por el estándar como experiencia de aprendizaje y se expresa con una serie de sentencias simples.
Las experiencias de aprendizaje se registran en un LRS (Learning Record Store), que puede existir dentro de un Sistema de Gestión del Aprendizaje tradicional como Moodle, genéricamente llamados LMS (Learning Management System). El LRS también puede existir en forma independiente, siendo ésta una de las diferencias del estándar Tin Can API con su antecesor SCORM.
Una de las ideas del desarrollo de Tin Can API (y otra diferencia con su antecesor estándar SCORM) es que podemos aprender en cualquier momento, medio o lugar y no solamente dentro de un LMS. Por ello, Tin Can API permite el seguimiento de actividades a través de distintos dispositivos, estén o no conectados a Internet. En este último caso las experiencias de aprendizaje son guardadas temporalmente en el dispositivo hasta que se retome o se produzca la conexión. Otra de las ideas nuevas del desarrollo de este estándar es que se pueden registrar e intercambiar entre los sistemas las experiencias del llamado aprendizaje no formal: Actividades en juegos, lecturas ocasionales de artículos, actividades en redes sociales, etc. Esto quiere decir que un juego o un blog podrían ser compatibles con este estándar y sumar información acerca del aprendizaje no formal de un usuario.

## Resumen

Tin Can API ha sido recientemente rebautizado como «Experience API» y fue desarrollado para la especificación de aprendizaje electrónico, mediante ello las actividades de capacitación en línea y fuera de línea que ha realizado una persona en su amplia gama de experiencias son almacenadas. xAPI usa un formato compartido para la recepción y el envío de datos, esto hace que xAPI sea una herramienta ideal para compartir el aprendizaje. En algunos artículos aparece como «la siguiente generación de SCORM». El estándar SCORM (Sharable Content Object Reference Model) ha sido el estándar de facto del empaquetado de los materiales de e-learning cuyo destino era la publicación en un LMS (Learning Management System) como lo es la plataforma Moodle. Si bien uno de los objetivos originales de SCORM tenía que ver con la "S" de Shareable, en la práctica SCORM presentaba algunas limitaciones que el nuevo estándar se ocupa de superar.
Tin Can API ofrece algunas posibilidades que SCORM no ofrecía, como las siguientes:
* Saca al e-learning de sus límites, llevándolo hacia fuera del navegador web.
* Facilita el ingreso del e-learning a los dispositivos móviles.
* Permite mayor control sobre los contenidos de aprendizaje.
* Seguridad y solidez por medio de OAuth.
* Transición de dispositivos (iniciar el aprendizaje en un móvil, terminarlo en un equipo de escritorio).
* Funcionalidades para trackear datos de juegos y simuladores.
* Seguimiento del funcionamiento en el mundo real
* E-learning basado en equipos
* Seguimiento de los planes y objetivos de aprendizaje
Por otra parte, Tin Can es una API de código abierto con un consorcio de organizaciones detrás del estándar- otra gran diferencia con SCORM-. Técnicamente, es un servicio REST o servicio web de Transferencia de estado representacional que utiliza JavaScript como su formato de datos. El servicio web permite a los clientes de software leer y escribir las experiencias en el formato de oraciones o "declaraciones". En su forma más simple, estas declaraciones están en la forma "Yo hice esto", o más genéricamente "sujeto-verbo-objeto". Pueden usarse formulaciones más complejas. También hay dentro del estándar una query API que permite filtrar las declaraciones (por sujeto, objeto, verbo, fecha, etc.) y una state API que permite reservar una especie de "espacio cero" para las aplicaciones que consumen muchos recursos.

## Historia

SCORM tiene sus raíces en el año 2000, lo que le da casi dos décadas de edad. ADL (Advanced Distributed Learning), los administradores del estándar SCORM, reconocieron la necesidad de una especificación más nueva y versátil. ADL publicó entonces un requerimiento en la BAA (Broad Agency Announcement) solicitando asistencia para la mejora de SCORM.
La tarea fue otorgada a Rustici Software, líder en la industria de software de interoperabilidad para e-learning. Rustici Software realizó entonces numerosas entrevistas con la comunidad de e-learning para determinar qué factores eran los más importantes a mejorar y desarrolló una primera versión de la nueva API. Este proceso se denominó Proyecto Tin Can.

## Evolución

En 2008, se determinó que los estándares de interoperabilidad eran demasiado limitados para el SCORM. Aparece LETSI a solicitar ideas comunitarias, como resultado de esto sale el SCORM 2.0.
En 2010, ADL solicitó ayuda a la BAA en búsqueda de un desarrollador para mejorar la experiencia que proveían los SCORM. Fue seleccionado Rustici Software para realizar este trabajo. Entre el 2010 y 2011 Rustici Software examinó el SCORM 2.0 y realizó entrevistas extensas con gran parte de la industria del e-learning. Llamaron al proyecto Tin Can.
En junio de 2012, salió la versión .9 .En esta instancia ya había cerca de 15 compañías que habían adoptado el API de Tin Can. En agosto de 2012, se finalizó la versión .95 de la API de Tin Can. Al finalizar el 2012 ya había cerca de 40 compañías que adoptaron esta tecnología.
En abril de 2013 sale al aire xAPI, la lista de interesados creció a medida que se avecinaba el lanzamiento de esta versión 1.0. ADL le asignó el nombre de API de experiencia.
Seguido a esto viene el desarrollo de parches, los cuales le permiten a la API ser más fácil de leer e implementar sin afectar su comportamiento, el primero de ellos, versión 1.0.1 sale en octubre de 2013, la versión 1.0.2 salió en octubre de 2014 para aclarar algunas de las tablas en la especificación.
La versión 1.0.3 prevista para el 2015, debe incluir mejoras en la claridad y legibilidad de la especificación en función de los comentarios, sin cambios en el comportamiento requerido de los adoptantes.

## SCORM y Tin Can API en el proceso de aprendizaje

El Modelo de Referencia de Objetos de Contenido Compartible o SCORM, de su sigla en inglés, es un viejo protocolo que todavía es ampliamente usado aunque, según algunos expertos, está siendo progresivamente desplazado por Tin Can API. Ambos protocolos permiten realizar las actividades básicas de un curso tales como iniciarlo, realizar pruebas, y que se le pueda hacer seguimiento a los usuarios. Sin embargo existen diferencias entre ellos y su uso depende de las necesidades que tenga la organización para la cual se diseña el curso.
El estándar para aplicaciones Tin Can API es bastante confiable. Esto se debe a que es un desarrollo tecnológico más reciente que presenta menos errores. Es un sistema muy robusto y flexible, por lo tanto, puede soportar cualquier tipo de declaraciones, dispositivos y flujos de trabajo. Por ejemplo, funciona bien tanto en su versión de escritorio como para dispositivos móviles. SCORM por otro lado, tiene problemas para trabajar con navegadores como Safari o dispositivos como el IPad mini.
Una ventaja de Tin Can API es su capacidad para almacenar información individual de un usuario desde cualquier dispositivo desde el que se trabaje. Esto lo hace a través de mensajes entre sistemas configurados como declaraciones (statements) que permite recolectar datos de todo tipo y enviarlos a un servidor conocido como Almacén de Experiencias de Aprendizaje o LRS (Learning Record Store) de su sigla en inglés. Para los desarrolladores de software este es el paso previo para crear plataformas de Analítica de aprendizaje que permitan obtener conclusiones para mejorar el proceso de enseñanza-aprendizaje.
Tin Can API está evolucionando continuamente mientras que SCORM se está estancando. Al optar por el protocolo que está siendo acogido por la industria se obtienen todos los beneficios de los avances de esta nueva tecnología y se asegura que el contenido electrónico creado no quede obsoleto rápidamente.

## Siglas y acrónimos

Significado, siendo 'en' English y 'es' español. :
| Sigla o Acrónimo (en) | Significado (en) | Significado (es) |
| API | Application Program Interface | Interfaz de Programación de Aplicación |
| LMS | Learning Management System | Sistema de Gestión del Aprendizaje |
| SCORM | Sharable Content Object Reference Model | Modelo de Referencia de Objetos de Contenido Compartible |
| LRS | Learning Record Store | Almacén de Experiencias de Aprendizaje |
| BAA | Broad Agency Announcement | Agencia de Anuncios Masivos |
| LETSI | International Federation for Learning, Education, and Training Systems Interoperability | Federación Internacional para la Interoperabilidad de los Sistemas de Aprendizaje, Educación y Capacitación |
| xAPI | Experience API | Experiencia API |
| MOODLE | Modular Object Oriented Dynamic Learning Environment | Entorno Modular de Aprendizaje Dinámico Orientado a Objetos |
| ADL | Advanced Distributed Learning | Aprendizaje Avanzado Distribuido |
| OAuth | Open Authorization | Autorización abierta |
| REST | Representational State Transfer | Transferencia de Estado Representacional |