WWM:Wikiwijs arrangement toets afspelen via LTI: verschil tussen versies

Uit Kennisnet Developers Documentatie
Naar navigatie springen Naar zoeken springen
 
(10 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 104: Regel 104:
 
* Specificatie OAuth 1 authenticatie: http://oauth.net/core/1.0/
 
* Specificatie OAuth 1 authenticatie: http://oauth.net/core/1.0/
 
* Bestaande code en libs: http://oauth.net/code/​
 
* Bestaande code en libs: http://oauth.net/code/​
  +
  +
====OAuth Nonce====
  +
Let op! Oauth stuurt een nonce ter verificatie bij het gebruiken van de koppeling. Deze mag niet langer zijn dan 32 karakters.
   
 
===LTI Launch Request===
 
===LTI Launch Request===
Regel 195: Regel 198:
 
== Hoe kan ik de Wikiwijs LTI Interface testen? ==
 
== Hoe kan ik de Wikiwijs LTI Interface testen? ==
   
Je zal eerst credentials moeten aanvragen bij Kennisnet voor toegang tot de LTI koppeling. Als je die hebt dan kan je de werking van LTI testen tegen een externe LTI test tool. Deze gedraagt zich als een LTI Consumer en doet een Lauch Request. Het antwoord dat deze LTI Consumer van Wikiwijs ontvangt wordt dan doorgestuurd naar een zogenaamde Request Bin Endoint, zodat je het xml bericht kan inzien. Deze test situatie helpt bij het ontwikkelen en debuggen van een LTI koppeling tegen Wikiwijs Maken.
+
Je zal eerst credentials moeten aanvragen bij Kennisnet voor toegang tot de LTI koppeling (zie sectie: [[#Authorisatie voor gebruik van LTI koppeling|Authorisatie voor gebruik van LTI koppeling]] hierboven). Als je die hebt dan kan je de werking van LTI testen tegen een externe LTI test tool. Deze gedraagt zich als een LTI Consumer en doet een Lauch Request. Het antwoord dat deze LTI Consumer van Wikiwijs ontvangt wordt dan doorgestuurd naar een zogenaamde Request Bin Endoint, zodat je het xml bericht kan inzien. Deze test situatie helpt bij het ontwikkelen en debuggen van een LTI koppeling tegen Wikiwijs Maken.
   
 
===IMS LTI Tool Consumer emulator===
 
===IMS LTI Tool Consumer emulator===
Regel 207: Regel 210:
 
* Ga naar: https://requestbin.co/
 
* Ga naar: https://requestbin.co/
 
* Druk op: '''Create Endpoint''' (houd het browservenster/tabblad open!)
 
* Druk op: '''Create Endpoint''' (houd het browservenster/tabblad open!)
* Kopieer de vermelde URL van het aangemaakte Endpoint. Dat een format heeft van: '''[string].x.pipedream.net'''
+
* Kopieer de vermelde URL van het aangemaakte Endpoint, deze heeft de volgende format: '''[string].x.pipedream.net'''
   
 
''Stap 2) Test de LTI launch URL:''
 
''Stap 2) Test de LTI launch URL:''
   
 
* Ga vervolgens naar de volgende LTI test tool: http://ltiapps.net/test/tc.php
 
* Ga vervolgens naar de volgende LTI test tool: http://ltiapps.net/test/tc.php
* Vink eerst bij de knoppenbalk de optie '''Display optional parameters?''' aan
+
* Vink bij de knoppenbalk de optie '''Display optional parameters?''' aan
* Ga naar het onderste formulierblok, plak de Request Bin Endpoint vervolgens bij: '''Services data''' > '''LTI 1 service''' > '''Outcomes''' > '''URL'''
+
* Ga naar het onderste formulier blok, plak de Request Bin Endpoint URL vervolgens naar: '''Services data''' > '''LTI 1 service''' > '''Outcomes''' > '''URL'''
* Ga naar het eerste formulier blok '''Registration settings'''
+
* Ga naar het eerste formulier blok: '''Registration settings'''
 
* Vul bij '''Launch URL''' de Wikiwijs Maken LTI Launch URL in die je wilt testen
 
* Vul bij '''Launch URL''' de Wikiwijs Maken LTI Launch URL in die je wilt testen
 
* Vul bij '''Consumer key''' de LTI Key die je organisatie van Kennisnet heeft verkregen
 
* Vul bij '''Consumer key''' de LTI Key die je organisatie van Kennisnet heeft verkregen
Regel 220: Regel 223:
 
* Vervolgens, druk bij de knoppenbalk op: '''Save data'''
 
* Vervolgens, druk bij de knoppenbalk op: '''Save data'''
 
* En daarna op de knop: '''Launch TP'''
 
* En daarna op de knop: '''Launch TP'''
* In een iFrame krijg je vervolgens de toets te zien.
+
* In een iFrame krijg je vervolgens de toets te zien. Maak de toets
* Maak de toets
 
 
* En kijk bij je browservenster/tabblad dat de response van de Request Bin Endpoint toont wat er terug komt
 
* En kijk bij je browservenster/tabblad dat de response van de Request Bin Endpoint toont wat er terug komt
   
Je zal zien dat na het maken van een toets via POSTs berichten binnen komen. Als een toets al gemaakt is binnen een browsersessie zal, nog vóór de toets is afgerond, de laatst gemaakte score binnenkomen. Dit om te voorkomen dat leerlingen net zo vaak de toets maken totdat ze de perfecte score hebben.
+
Je zal zien dat er via POSTs berichten binnen komen. Dit gebeurt op het moment dat een toets is afgerond. Maar ook als een toets reeds is gemaakt is binnen een browsersessie (en opnieuw een poging wordt ondernomen). In dit geval zal, nog vóór de toets is afgerond, de laatst gemaakte score binnenkomen. Dit is om te voorkomen dat leerlingen net zo vaak de toets maken totdat ze de perfecte score hebben. De ELO zal dan een aantal responses achter elkaar ontvangen. Hierdoor ontstaat de mogelijkheid om alleen het eerst ontvangen resultaat te accepteren en herkansingen niet toe te staan.
   
 
===Voorbeeld score response Wikiwijs Maken aan LTI Outcome Service van ELO===
 
===Voorbeeld score response Wikiwijs Maken aan LTI Outcome Service van ELO===

Huidige versie van 27 mrt 2024 om 16:00

Wat kun je met een LTI koppeling met Wikiwijs Maken doen?

Bij gebruik van LTI kunnen toetsen/oefeningen worden gestart vanuit ELO of LMS. Deze blijven afspelen in Wikiwijs Maken en kan zelfs als een embed in eigen omgeving worden geïmplementeerd. Aan het eind van de toets/oefening wordt het resultaat teruggekoppeld. Het voordeel hiervan is dat leveranciers geen QTI-speler hoeven te ontwikkelen, de toets draait immers bij Wikiwijs. Het nadeel ten opzichte van QTI is dat het resultaat puur een eindscore is in de vorm van een getal tussen de 0 en de 1. Ook is het niet mogelijk de vragen op een andere manier vorm te geven.

De koppeling is dus geschikt voor het afspelen toetsen en ophalen van resultaten. Het is mogelijk om een heel arrangement af te spelen op LTI, maar vanwege de beperking van de LTI standaard kan er maar 1 score worden doorgegeven per 'Launch request' (het afvuren van een leerling naar een specifiek onderdeel van een Wikiwijs arrangement). Wikiwijs Maken geeft in dit geval de score van de laatste toets in het arrangement door. Deze implementatie raden we niet aan, je mist namelijk als ELO de resultaten van mogelijk meerdere toetsen in het arrangement.

Wil je als ELO het 'platte' materiaal in eigen omgeving tonen, maar de interactieve toetsen in Wikiwijs tonen? Dan zal je de content via de IMSCP bestanden in eigen omgeving importeren. In plaats van de QTI bestanden afspelen met een eigen gemaakt QTI afspeelomgeving kan je dan een uitstap maken naar de afspeelomgeving van Wikiwijs Maken via LTI. De toetsresultaten krijg je direct terug, hiervoor dien je een LTI Outcome Service op te leveren waar Wikiwijs Maken mee kan communiceren.

Hoe kom je aan de LTI URL's van oefeningen/toetsen?

Handmatig per toets

Als een arrangement interactieve oefeningen en toetsen bevat dan zijn deze handmatig te downloaden door in het linker nagivatiemenu van het arrangement op de "Downloaden" knop te drukken. Vervolgens krijg je de oefeningen en toetsen als LTI download aangebonden onder het kopje LTI (mits er natuurlijk toetsen of oefeningen in het arrangement aanwezig zijn).

Handmatige export opties Wikiwijs Maken arrangement

Als onderdelen uit een IMS Common Cartridge (IMSCC) export

De LTI links van oefeningen en toetsen worden gebundeld meegeleverd in een IMS Common Cartridge (IMSCC) export van een Wikiwijs Arrangement. Dit bestand, met extensie .imscc, is in feite een zip bestand met hierin een manifest, die alleen de structuur van het arrangement weergeeft in de vorm van de sectieheaders en de verwijzingen naar de toetsen. Een verwijzing naar een toets is in de vorm van een referentie naar een xml bestand in het manifest. In de folder 'files' bevindt zich vervolgens per toets, oefening of losse vraag een xml bestand. Dit xml bestand bevat de volgende gegevens over de oefening/toets/vraag:

  • Titel (blti:title)
  • Wikiwijs Maken LTI Launch URL (beginnend met: http:)
  • Wikiwijs Maken LTI Secure Launch URL (beginnend met: https)

De keuze voor het gebruik van de normale als de Secure Launch URL is aan de afnemende ELO. Als bijvoorbeeld de toets als embed in de ELO gepresenteerd wordt en de ELO draait onder https, dan moet men de secure versie gebruiken om browser waarschuwingen rondom wisselen van beveiligde en niet beveiligde content te voorkomen.


Pro tip:

De naam van dit XML bestand (bijvoorbeeld: 20945a06c0de167800b15ee03554447413995d23.xml) bevat de unieke ID van de toets. Deze zelfde ID wordt ook gebruikt voor de QTI bestanden uit de IMS Content Package. Hiermee is het mogelijk een implementatie van Wikiwijs die eerst op basis van QTI was te migreren naar een LTI implementatie of visa versa. Een ander voordeel van het combineren van de data uit de IMSCC export bestanden de de IMSCP export bestanden is dat de laatste ook alle overige content van het arrangement bevat. Met deze data zou je de volgende implementatie van materiaal in eigen omgeving kunnen realiseren:

  • De content uit een IMS Content Package wordt in eigen omgeving geïmporteerd, inclusief de beschikbare (fijnmazige) metadata van het materiaal. De data in de QTI bestanden kan buiten beschouwing worden gehouden.
  • Voor de implementatie van de interactieve oefeningen en toetsen worden de leerlingen naar de specifieke URLs van de LTI toetsen gestuurd. De individuele scores van leerlingen worden teruggegeven aan de LTI Outcome Management Service van aanroepende omgeving.


LTI standaard

Wikiwijs maakt gebruik van een door de UWLR 2.1 afspraak toegestane LTI standaard om toetsscores door te geven. Aangezien Wikiwijs een open systeem is, waarbij leerlingen niet hoeven in te loggen om het materiaal te zien, is veel uit de UWLR afspraak niet van toepassing omdat deze zich voornamelijk richt op de uitwisseling van leerlinggegevens.

Wikiwijs Maken maakt gebruik van LTI standaard versie 1.1. Er is na een marktonderzoek door Kennisnet voor deze versie gekozen omdat dit de meest breed ondersteunde versie is van LTI is die door ELO’s wereldwijd wordt ondersteund.

Meer informatie over de LTI is te vinden in de LTI v1.1 implementation guide van IMS Global.

Globale werking

In LTI termen is Wikiwijs Maken een Tool Provider en een ELO een Tool Consumer. De daadwerkelijke 'Tool' die bij Wikiwijs Maken wordt afgenomen zijn de individuele toetsen die bij Wikiwijs Maken worden afgespeeld en de teruggave van de score aan de ELO. Hieronder wordt de samenhang weergegeven.

Globale structuur LTI koppelingen

De complete vertaling van de LTI terminologie naar de dienstverlening die Wikiwijs Maken aanbied met behulp van deze interfacing is:

LTI term

Vertaling naar de Wikiwijs Maken situatie

Tool Provider

Wikiwijs Maken: Wikiwijs Maken is een Tool Provider, deze biedt aan ELO’s de mogelijkheid om de toetsen bij Wikiwijs Maken af te spelen en de resultaten terug te krijgen.

Tool Consumer

Een ELO: Een tool consumer is een applicatie die een tool gebruikt. Een ELO zoals bijvoorbeeld Moodle of ItsLearning kan een tool consumer zijn. Die kunnen leerlingen uit eigen omgeving naar de toetsen in Wikiwijs Maken sturen.

Tool

Wikiwijs Maken LTI toetsen: Een tool is een applicatie onderdeel die door een andere applicatie kan worden gebruikt. De Wikiwijs Maken toets afneem functionaliteit over LTI is zo’n tool. Deze levert namelijk toetsen die op Wikiwijs Maken gemaakt kunnen worden.

Resource

Wikiwijs Maken toets: Een individuele oefening of toets die een gebruiker kan doen bij Wikiwijs Maken.

Launch Request

Wanneer een gebruiker van een ELO (als tool consumer) gebruik wil maken van een toets uit Wikiwijs Maken in de LTI vorm, dan stuurt de ELO een zogenaamde Launch Request naar Wikiwijs Maken (als tool provider). Wikiwijs Maken start dan de toets voor de gebruiker.

Outcome of Result

Toets score: De Wikiwijs Maken LTI toets levert een resultaat in de vorm van een score.

Outcome Management Service

Resultaat teruggave service: ELO’s die gebruik willen maken van de LTI toetsen moeten een Outcome Management Service aanbieden aan Wikiwijs Maken. Wikiwijs Maken geeft hieraan de toetsresultaten terug afkomstig van de toetsen die gebruikers van deze ELO via Launch Requests hebben gemaakt.

Authorisatie voor gebruik van LTI koppeling

Voor het gebruik van de LTI toetsen van Wikiwijs Maken moet de afnemende ELO geautoriseerd zijn. Wil je gebruik maken van deze service, meld je dan aan bij info@wikiwijs.nl met het verzoek om een LTI koppeling aan te gaan. Zodra de aanvraag goedgekeurd wordt door Kennisnet worden de volgende aansluitgegevens teruggestuurd:

  • Key
  • Naam
  • Secret

Authenticatie bij LTI werkt via OAuth 1, oauth.net bevat de specificatie en implementatie voorbeelden en libraries in verschillende talen.

OAuth Nonce

Let op! Oauth stuurt een nonce ter verificatie bij het gebruiken van de koppeling. Deze mag niet langer zijn dan 32 karakters.

LTI Launch Request

Een Wikiwijs LTI Launch URL kan er als volgt uitzien:

Lanceren van individuele toets of oefening

http(s)://maken.wikiwijs.nl/lti/questionnaire/[toetsnummer]

Lanceren van een heel arrangement: Alleen resultaat van laatste toets of oefening uit arrangement wordt doorgegeven. Let erop dat dit arrangement wel een toets (gemaakt met de Wikiwijs Maken toetseditor) moet bevatten. Zo niet levert dit geen response op

http(s)://maken.wikiwijs.nl/lti/arrangement/[arrangementnummer]


Een voorbeeld in de vorm van een HTML formulier voor het uitvoeren van een LTI basic launch request is hier te vinden: https://www.imsglobal.org/specs/ltiv1p1/implementation-guide#toc-24 Echter, dit voorbeeld bevat meer data dan Wikiwijs Maken nodig heeft. De leerling details zijn niet nodig (en ook niet gewenst) in het bericht naar Wikiwijs Maken. Wikiwijs Maken heeft enkel de volgende parameters nodig in een LTI Basic Launch request:

Type Parameter Betekenis

OAuth authenticatie

oauth_consumer_key

Key (aangeleverd door Kennisnet)

OAuth authenticatie

oauth_signature_method

HMAC-SHA1

OAuth authenticatie

oauth_timestamp

Datum tijd (bijvoorbeeld: 1481208542)

OAuth authenticatie

oauth_nonce

Gegenereerde tijdelijke sleutel, op basis van oauth_timestamp en Secret (aangeleverd door Kennisnet)

OAuth authenticatie

oauth_version

1.0

LTI

lti_version

LTI-1p0

LTI

resource_link_id

Unieke, anonieme ID van leerling


LTI Outcome Service

Om met de LTI interfacing van Wikiwijs Maken te werken wordt vereist dat de ELO de Outcomes Management Service v1.0 implementeert. Aan deze resultaat teruggave service kan Wikiwijs Maken de behaalde score doorgeven van een leerling op het moment dat deze behaald is.

Hoe kan ik de Wikiwijs LTI Interface testen?

Je zal eerst credentials moeten aanvragen bij Kennisnet voor toegang tot de LTI koppeling (zie sectie: Authorisatie voor gebruik van LTI koppeling hierboven). Als je die hebt dan kan je de werking van LTI testen tegen een externe LTI test tool. Deze gedraagt zich als een LTI Consumer en doet een Lauch Request. Het antwoord dat deze LTI Consumer van Wikiwijs ontvangt wordt dan doorgestuurd naar een zogenaamde Request Bin Endoint, zodat je het xml bericht kan inzien. Deze test situatie helpt bij het ontwikkelen en debuggen van een LTI koppeling tegen Wikiwijs Maken.

IMS LTI Tool Consumer emulator

Er is online een test tool beschikbaar waar je met behulp van je key en secret de LTI calls mee kan testen. Hiermee worden voorbeeld input en responses mee inzichtelijk. De LTI test tool is hier te vinden: http://ltiapps.net/test/tc.php

Deze kan je op de volgende wijze gebruiken om de LTI interface van Wikiwijs Maken mee te testen:

Stap 1) Maak een Request Bin Endpoint:

  • Ga naar: https://requestbin.co/
  • Druk op: Create Endpoint (houd het browservenster/tabblad open!)
  • Kopieer de vermelde URL van het aangemaakte Endpoint, deze heeft de volgende format: [string].x.pipedream.net

Stap 2) Test de LTI launch URL:

  • Ga vervolgens naar de volgende LTI test tool: http://ltiapps.net/test/tc.php
  • Vink bij de knoppenbalk de optie Display optional parameters? aan
  • Ga naar het onderste formulier blok, plak de Request Bin Endpoint URL vervolgens naar: Services data > LTI 1 service > Outcomes > URL
  • Ga naar het eerste formulier blok: Registration settings
  • Vul bij Launch URL de Wikiwijs Maken LTI Launch URL in die je wilt testen
  • Vul bij Consumer key de LTI Key die je organisatie van Kennisnet heeft verkregen
  • En vul bij Shared secret de LTI Secret (die je organisatie van Kennisnet heeft verkregen)
  • Vervolgens, druk bij de knoppenbalk op: Save data
  • En daarna op de knop: Launch TP
  • In een iFrame krijg je vervolgens de toets te zien. Maak de toets
  • En kijk bij je browservenster/tabblad dat de response van de Request Bin Endpoint toont wat er terug komt

Je zal zien dat er via POSTs berichten binnen komen. Dit gebeurt op het moment dat een toets is afgerond. Maar ook als een toets reeds is gemaakt is binnen een browsersessie (en opnieuw een poging wordt ondernomen). In dit geval zal, nog vóór de toets is afgerond, de laatst gemaakte score binnenkomen. Dit is om te voorkomen dat leerlingen net zo vaak de toets maken totdat ze de perfecte score hebben. De ELO zal dan een aantal responses achter elkaar ontvangen. Hierdoor ontstaat de mogelijkheid om alleen het eerst ontvangen resultaat te accepteren en herkansingen niet toe te staan.

Voorbeeld score response Wikiwijs Maken aan LTI Outcome Service van ELO

Volgens de LTI specificatie moet een LTI Outcome service bij een elo de volgende calls ondersteunen: replaceResult, readResult en deleteResult. Wikiwijs Maken maakt overigens enkel gebruik van de replaceResult call. Wikiwijs Maken gebruikt dezelfde consumer key en shared secret als de consumer (de ELO) gebruikt om het XML Outcome bericht naar de ELO te ondertekenen.

Hieronder staat een voorbeeld van het bericht van Wikiwijs Maken geeft zodra een leerling een score heeft behaald. De credentials in dit bericht zijn uiteraard vervangen met dummy waarden (***). Dit voorbeeld is bijvoorbeeld verkregen door via de |IMS LTI Tool Consumer emulator een LTI-sessie te starten en daarbij als outcomeservice een Request Bin Endpoint (via https://requestbin.co/) op te geven (zie stappen hier boven).

http
POST /jouw-outcome-service
Host: arbitraire.host.example
Authorization: OAuth oauth_version="1.0",oauth_nonce="***",oauth_timestamp="###",oauth_consumer_key="***",oauth_body_hash="Base64==",oauth_signature_method="HMAC-SHA1",oauth_signature="Base64=="
Content-Type: application/xml

<?xml version = "1.0" encoding = "UTF-8"?>
<imsx_POXEnvelopeRequest xmlns = "http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">
  <imsx_POXHeader>
    <imsx_POXRequestHeaderInfo>
      <!-- Vaste waarde -->
      <imsx_version>V1.0</imsx_version>
      <!-- Random message identifier -->
      <imsx_messageIdentifier>58932f720d178</imsx_messageIdentifier>
    </imsx_POXRequestHeaderInfo>
  </imsx_POXHeader>
  <imsx_POXBody>
    <!-- Altijd dezelfde operatie: `replaceResult` -->
    <replaceResultRequest>
      <resultRecord>
        <sourcedGUID>
          <!-- Opgegeven waarde `lis_result_sourcedid` -->
          <sourcedId>dsdd</sourcedId>
        </sourcedGUID>
        <result>
          <resultScore>
            <!-- Altijd "en-US" -->
            <language>en-US</language>
            <!-- Een floatingpoint-getal met een punt (.) als decimaalscheidingsteken --> 
            <textString>0.67</textString>
          </resultScore>
        </result>
      </resultRecord>
    </replaceResultRequest>
  </imsx_POXBody>
</imsx_POXEnvelopeRequest>