Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let the student activity streams flow

Let the student activity streams flow

About the implementation of the Tincan API (experience API) protocol in Sakai CLE by the University of Amsterdam in partnership with Unicon.

Part of the Open Apereo Conference 2013 #apereo13

Alan Berg

May 31, 2013
Tweet

Other Decks in Education

Transcript

  1. Let the student activity streams flow Sakai CLE and Tincan.api

    Alan Berg Universeteit de Amsterdam [email protected] Aaron Zeckoski Unicon, Inc. [email protected]
  2. Agenda • Introductions • What is Tincan API? • Risks

    and benefits • Overview of the features in Sakai CLE • Implementation details • Where can you help • Questions and sometimes answers. • Extra time: Lessons learned from PIWIK BasicLTI LA dashboard
  3. University of Amsterdam It has its origins in the Athenaeum

    Illustre (1632) and, with almost 30,000 students, over 5,000 employees and an annual budget of 600 million euros, is one of the largest general research universities in Europe. Is a campus University, with buildings spread out over the whole of Amsterdam
  4. Unicon + AZ Reputation based Open source Higher education IT

    consulting services Not a product vendor Trusted partner Customized solutions Project management Community engagement Project and team support Open Source Support Active community members Engineering / Development Deployment / Hosting Aaron Zeckoski (AZ) • Software Architect • Core committer • CLE / Kernel team • Former CLE TCC Chair • Sakai since 2004 • Inaugural Sakai Fellow • Charlotte NC US http://www.unicon.net/
  5. What is the experience API • Gathers student activity in

    a secure repository • Standard protocol • REST like service for writing and querying • Can act as the glue for Learning Analytics Projects • Good introduction at: http://tincanapi. com/overview/
  6. Scalable dashboards using BasicLTI Learning Record Store All Other enabled

    Sakai CLE Dashboard Application BasicLTI • Scalable • Lazy coupling • Has the potential to work across applications
  7. Tincan API protocol http://tincanapi.com/statements-101/ JSON :actor verb object context extensions

    etc. { "actor": { "name": "Sally Glider", "mbox": "mailto:[email protected]" }, "verb": { "id": "http://adlnet.gov/expapi/verbs/experienced", "display": {"en-US": "experienced"} }, "object": { "id": "http://example.com/activities/solo-hang-gliding", "definition": { "name": { "en-US": "Solo Hang Gliding" } } } }
  8. Risks and benefits Benefits • Decouples activity streams from specific

    software • Standards approach • Scalable - But {the LRS market needs to mature} • Structured data - But {depends on what you send} • Works well with BasicLTI dashboards • Cross cutting concern that we can work on as a community • Clean data for research • Growing market enthusiasm
  9. Risks and benefits Risks • Security • Requires thinking about

    legal Privacy and ethics issues • Still early on in its maturity model • Requires an initial investment • Data in the cloud. Prefer a private cloud and federation. • Concerns about the scalability of the reference implementation.
  10. Plug number one: Unicon and Amsterdam working towards enabling tincan

    API in Sakai CLE Community, Community, Community We will ask if anyone is interested in helping out later in this presentation.
  11. Experience API in Sakai CLE Goal Create an API which

    can use a variety of learning record implementations (possibly multiple ones at a time) which will allow for future implementations and also can allow tools and other parts of Sakai to register LRS activities in a centralized way. Provide an internal integration with the experience API (http://tincanapi.com/overview) which is suitable for inclusion in the Sakai and covers core functionality.
  12. Experience API in Sakai CLE Kernel API Added a kernel

    API in current Sakai CLE trunk which allows tools or other parts of Sakai to call the API and register a learning statement (basically a learning event). KNL-1024 org.sakaiproject.event.api.LearningResourceStoreService void registerStatement(LRS_Statement statement, String origin);
  13. Experience API in Sakai CLE Base Service • The kernel

    contains a base service which will locate providers and delegate statement registrations to them. • The base service spins up a separate thread for each provider so registration of statements will not impact the thread where they are registered. • It handles filtering, logging, and basic validation of statements centrally so each provider does not have to also do this.
  14. Sakai CLE Implementation details TincanApi Provider An implementation of the

    LearningResourceStoreProvider which has been tested against Rustici and ADL.net LRSs. Developed to be compatible with 1.0 (and somwhat 0.95) versions of the API. Source code is available here: https://source.sakaiproject.org/svn/msub/unicon. net/tincanapi-provider/trunk/ Installation instructions are in the README
  15. Sakai CLE Implementation details Flexibility The provider mechanism allows many

    possible mechanisms for working with LRS statements. (Embedded LRS in Sakai, Local backup storage of statements, etc.) The tincanapi provider can also be instantiated multiple times via Spring if LRS data should be sent to multiple tincanapi compatible LRSs. The provider can handle Basic Auth and OAuth methods of authentication.
  16. Sakai CLE Implementation details Configuration # URL to the tincan

    server # Default: https://cloud.scorm.com/... (this is a test account) lrs.tincanapi.url=https://url/to/your/tincan/server/api/path # Timeout for requests to the tincan server (in ms) # Default: 5000 (5 seconds) #lrs.tincanapi.request.timeout=10000 ## LRS Authentication # This will use OAuth if configured OR Basic Auth if OAuth is not setup, # the Auth config is required so if these are both blank then the provider will fail to startup # Basic Auth header value: base64(username + ":" + password) # Default: 50ZLHZXM0Q:crCPCRQCoqiQN9rkliIJlLiVzk0CjsuDc52mik29 (matches the default URL above) lrs.tincanapi.basicAuthUserPass=UUUUUU:PPPPPP # OAuth settings (no defaults) # OAuth shared (consumer) key #lrs.tincanapi.consumer.key=XXXXXX # OAuth secret #lrs.tincanapi.consumer.secret=YYYYY # OAuth realm #lrs.tincanapi.realm=ZZZZZ
  17. https://confluence.sakaiproject.org/display/TINCAN/Home 1. Build Sakai Locally svn co https://source.sakaiproject.org/svn/sakai/trunk/ cd trunk

    mvn clean install -Ppack-demo In pack/pack-demo is the demo package 2. Add Tincanapi Provider (see previous slides) 3. Install the reference LRS and register a user https://github.com/adlnet/ADL_LRS 4. Configure via sakai/local.properties How do I get involved? How can I try it? lrs.tincanapi.basicAuthUserPass=id:pass lrs.tincanapi.url=http://localhost:8000/xapi/statements #log.config.count=1 #log.config.1=DEBUG.org.sakaiproject.lrs.expapi. TincanapiLearningResourceStoreProvider
  18. • Start using in your Learning Analytics Project • Add

    to the capabilities • Create a template dashboard that others can reuse • Give feedback in the tincan API community • Test, test, test • Donate resources to the community. Plenty of nice to have features waiting for you. ◦ Better coverage ◦ Better management ◦ etc How do I get involved? How can I contribute?
  19. Lessons learned from PIWIK BasicLTI LA dashboard. • Motivation -

    Look a typical LA project and see if Tincan API adds value • POC, sponsored by Surf. • Works, but parts are superseded by the emergence of tincan API • Enhance web analytics using the open source PIWIK project. • BasicLTI for an LMS agnostic dashboard • Simple real time recommendations. • Backs off to a web analytics report if needed.
  20. Lessons Learned • Data is less clean than using Tincan

    API • No need to write extra enriching tracking code if LMS is enabled. • BasicLTI is great for dashboards. You are not stuck to one LMS. • Learning Record Store great for dashboards. The activity stream is not stuck in a silo. • PIWIK delivers great Web analytics, but learning analytics are not just web analytics • Analytics can be lightweight for recommendations but heavy weight for clustering problems.