Feature Wiki

Information about planned and released features

Tabs

xAPI: Integrated LRS

1 Requirements

1.1 Purpose

The « xAPI Activity Repository Object » is just one of the numerous potential scenarios to implement the new xAPI standard. It addresses the need to deliver some activities outside of the LMS (e.g. mobile apps) and to synchronize the Learning Progress of these activities with ILIAS.

1.2 Typical use cases

One typical use case is a gaming or a learning app delivered on a smart phone. In ILIAS, this app appears as an « xAPI Activity Repository Object » object in the course. When the learner is using the app on a smart phone, the results (e.g. completion, success) are automatically sent to ILIAS and appear in the Learning Progress.
 
Another use case for an external activity would be a web based activity, which is not integrated or imported to ILIAS. This could be a video from Youtube or any other (learning) content, that is provided by a third party and is compliant to xAPI Spec. An ILIAS object inside a course could be a starting point for such an activity. When using the reference (click on object in ILIAS) the necessary data (LRS endpoint, user access credentials) would be provided to the web activity inside the URL. The activity then reports the Learning Progress achieved by that particular lerner back to the ILIAS LRS.

1.3 Responsibilities

In this scenario, ILIAS provides its own integrated LRS.
 
ILIAS also provides an « LRS Proxy » which is able to « listen » the LRS incoming statements and identify statements which are relevant for an "external mobile activity".
 
Furthermore, ILIAS provides a new type of repository object called « External Mobile Activity (xAPI) ». This object is responsible for :

  • Informing learners of what they have to do (e.g. « Take your smart phone, download this game and play with it. »)
  • Displaying the learner status (e.g. « completed ») and updating the ILIAS Learning Progress report
  • Providing all the necessary settings to implement such an object
 
The activity provider is responsible for :
  • Delivering the activity on the mobile device
  • Authenticating the user
  • Providing settings (embedded or configurable) to enable the activity to discuss with the ILIAS LRS : LRS endpoint and activity ID
  • Playing the activity and discussing with the ILIAS LRS

1.4 Development Aspects

Please take a look at Incorporating a TinCan LRS into an LMS and Building a Learning Record Store.

1.4.1 Features (work packages) to be implemented

Arbeitspakete für die Implementierung eines LRS in ILIAS

Arbeitspaket

Beschreibung

Priorität

GUI

Grafische Oberflächen für die Verwaltung der Endpunkte (Endpoints, Statements, API's etc.)

hoch

REST Service

Integration der REST-Services in ILIAS, die Grundvoraussetzung für xAPI

hoch

OAuth 2.0

Integration der Authentifizierung nach OAuth-Spezifikation in ILIAS.
Relevant für ILIAS Objekte und ILIAS LRS. Als Alternative kann noch das
weniger sichere "HTTP Basic Authentication"-Verfahren verwendet werden.

hoch

Statement Viewer (global)

Anders als im lokalen Statement Viewer (SV) sollen hier sämtliche Statements aus dem LRS abgefragt werden können. Ggfs. sind hier erweiterte Filter zu verwenden

hoch

User Mapping

Ggf. nachträgliche Zuweisung zu ILIAS-Nutzern
Bspw. Mapping von "mbox" auf ILIAS-Benutzernamen (statt "account")

mittel

Reporting (global)

Auf Basis der vorhandenen Statements sollen Auswertungen zu den Lernvorgängen erstellt werden. Aufwand hängt vom Umfang des Reporting (Anzahl Berichte, ggfs. Aufbereitung durch Diagramme etc.)

mittel

Statement PULL

LRS soll in der Lage sein, Anweisungen von anderen LRS zu ziehen. Die zu ziehenden Statements sollen eingeschränkt werden können. (Nur bestimmter Benutzer, nur im best. Zeitraum, nur best. Inhalte etc.)
 
Einsatzszenarios: Umzug von anderen LRS, Mandantenübergreifende Reportings etc.

mittel

Statement PUSH (Statement Forwarding)

LRS soll in der Lage sein, Anweisungen an andere (ggfs. mehrere) LRS zu schicken (bspw. direkt nach Erhalt oder manuell ausgelöst). Die zu ziehenden Statements sollen eingeschränkt werden können. (Nur bestimmter Benutzer, nur im best. Zeitraum, nur best. Inhalte etc.)

niedrig

Statement API

Übertragen der Statements (LF-Anweisungen)

hoch

State API

Zwischenspeicher (z. B. falls die ausführende Plattform keinen eigenen Speicher besitzt oder zur Synchronisation der Zwischenstände mit anderen Geräten). Wird auch zur Speicherung der LF verwendet (Articulate)

hoch

Activity Profile API

Aktivitätenbezogen, benutzerübergreifend (z. B. Highscore, Team-Foto eines Trainings etc.)

mittel

Agent Profile API

Aktivitätenübergreifend, benutzerbezogen (z. B. Avatar d. Benutzers)

mittel

Abspeichern (und Mergen mit POST) der xAPI Dokumente

Außer Statement API bieten alle API's die Möglichkeit beliebige Daten ("Dokumente") aufzunehmen. Wenn die Daten als JSON übergeben werden, sieht die Spezifikation eine Zusammenführung (Merge) der Daten vor.

niedrig

About Resource

Liefert auf Anfrage die LRS-Versionen, die unterstützt werden, ggfs. weitere Infos

hoch

Cross Origin Requests (alternativer Support
für IE 8 und IE 9)

Es kann eine alternative Variante der Anfrage verwendet werden, die auch von älteren Browsern beherscht wird. Die Prio ist hoch, da Module (bspw. Articulate Storyline) diese Methode als Standardvariante auch bei aktuellen Browsern verwenden.

hoch

HTTPS Unterstützung für LRS

Es ist noch zu klären, ob hieraus ein ToDo entsteht.

hoch

Validierung der Statements in LRS (nur Syntax)

Die Spezifikation sieht vor, dass die Syntax der Statements validiert wird. Es soll also versucht werden, die Syntax so weit es geht zu verstehen, anderen Falls wird ein Fehler (HTTP 400 Bad Request) ausgegeben. Es sollte auch ein Log der Fehler implementiert werden, für leichteres Debugging.

mittel

HTTP Head Request

Nur Metadaten werden zurück gegeben, keine (speicherlastigen) Inhalte

mittel

Support for xAPI Version < 1.0.0

Unterstützung für ältere Versionen der Spezifikation

niedrig

Statement References

Implementierung der Funktion, so dass sich ein Statement auf ein anderes (vorhandenes) Statement beziehen kann. Bsp:

  • "Agnes besteht Sehr-Schwieriger-Test" (=> Vorhandenes Statement)
  • "Bob kommentierte "Wow, gute Arbeit!"" (=> Referenz auf vorhandenes Statement)
=> Bereits referenzierte Statements können natürlich ebenfalls referenziert werden. "Agnes kommentierte "Vielen Dank""

mittel

Sub-Statements

Das Objekt in einem Statement kann auch selbst ein vollwertiges (noch nicht vorhandenes) Statement sein. Somit sind verschachtelte Statements möglich. (Die Tiefe der Verschachtelung hat technisch
gesehen keine Grenzen)

  • Bsp: "Bob plannt "Bob hat Buch gelesen"" (Verschachteltes Statement)
=> Auch eine Vermischung der referenzierten und verschachtelten Statements ist möglich (und denkbar). "Agnes kommentierte "Das solltest Du nicht aufschieben"" (=> Referenz auf verschachteltes Statement von Bob)

mittel

Voided Statement in LRS (über Request) und GUI

Statement für ungültig erklären (Löschen der vorhandenen Statements ist in der Spezifikation nicht vorgesehen)

mittel

Signed Statement (digital signature mit JWS)

Digital signierte Statements: Wenn an die Authentizität und die Integrität der Statements höhere Anforderungen gestellt werden (Bspw. Abschlußexamen), so können digitale Signaturen helfen diese
Anforderungen zu erfüllen (ohne ein bestehendes vertrauenvolles Verhältnis zu dem ursprünglichen System, wo dieser Statement generiert wurde).

mittel

Implementation des Rechts auf Vergessen

Nutzer können eigene Daten einsehen und unter festzulegenden Bedingungen eigene Daten löschen

niedrig

1.4.2 Graphical User Interface

Current Mockups for the Administration of the LRS in ILIAS

1.4.3 Miscellaneous

May be useful: TinCanPHP lib

Alex Killing, 24 May 2014: Could it be an option to integrate learning locker?

2 Additional Information

3 Discussion

JF 28 Apr 2014: We do not think that we need two different repository object types for the xAPI support. We only support the development of one (External Activity). We would like to make this page the "Integrated LRS" feature request and schedule this for 4.5. The development of xAPI Activity Repository Object would be a prerequisite for this one.

JF 18 Aug 2014: We appreciate the current state of the concepts and mockups. We all need to get more experience with the topic to be able to give more constructive feedback.

Matthias Kunkel, March 18, 2015: This feature was already scheduled for 5.0 but not implemented due to missing funding / time. There is still a need for this feature. Therefore I have re-scheduled it for 5.1 to save time for discussing new feature requests. Nevertheless, funding is still needed to make this feature go into the 5.1 version.

Joel Hesse, 27.7.15: How much will is this expected to cost? (roughly calcuclated)

4 Implementation

...

Last edited: 27. Jul 2015, 08:52, Hesse, Joel [Joel_Hesse]