Sharebar?

Extending LTI 1

Extending LTI 1

Coordinating extensions to LTI 1 to provide additional functionality.

Extending LTI 1

Whilst the official LTI 1.1 specification documents how a tool provider (TP) can be launched from a tool consumer (TC), and provides an Outcomes service whereby a TP can pass a grade back to the the TC (or other LIS service provider), there are other use cases of interest to authors of TPs. Some of these have been coordinated as unofficial extensions to the LTI 1 specification - see the extensions section of the IMS developers website. These are:
  • Outcomes (extended version of the service available in LTI 1.1)
  • Memberships (access to a course roster)
  • Setting (saving data with a resource link)
    One of the purposes of the developers' wesbite is to provide easy access to details of these extensions, but also provide a mechanism for discussing any additional functionality which might solve common needs and be usefully added as a further extension. For example, here are some needs which I have come across:
  • accessing group membership details for users in a TC
  • replicating the hierarchy of contexts in a TC so that administrative permissions can be replicated in the TP
  • allow a resource link to return more than one grade per user
  • automate the insertion of an LTI launch link within a course in a TC
    Do any come to your mind? If so, post them here to see how widely your needs are shared; perhaps we can then coordinate a new extension to support them.

    Or perhaps there is a simple enhancement to an existing extension you would like to see - please use this forum to discuss your needs or issues/best practices. It will also help to inform the development of LTI 2 which will provide a more extensible framework for supporting the integration of TCs and TPs.
  • Extending LTI 1

    Hi Stephen,
    I think that an important capability missing in LTI integrations is the functionality of a TP 'resource picker'. In other words, you would like an easy way, within a TC, to be able to come up with a resource url for a resource that lives on a TP, which then you could then link to (via an LTI link) within the TC. So the TP would be offering a 'resource picker' functionality to all TC's that support such LTI capability. One implementation possibility would be to have an http redirect sequence in which the TC would redirect to a specific 'resource picker' url in the TP, which in turn would provide a resource-picker GUI, and when the resource was actually selected by the user within this GUI, the TP would redirect to a 'redirection url' that must have been registered in the original LTI 'message' to the TP, with a return parameter containing the resource url just picked. Of course, the details/alternatives would need to be better considered/worked out. Something to note is that you mention in your post the need to 'automate the insertion of an LTI launch link within a course in a TC', which I think would also serve an analogous purpose although possibly in a 'push' mode, while my proposition is more of a 'pull' approach. I think both modes would be useful to have around. What do you think?

    Extending LTI 1

    Stephen,

    I am wondering if this doesn't fall under the service extension to create a link. For that service, the driving use case was selecting a textbook for the purpose of creating a link to it back in the TC.

    Jeff

    Extending LTI 1

    Hi Stephen and Jeff,
    Actually, I did mention in my post the fact that I knew you were considering a proposal for allowing a TP to insert an LTI link to a page within the TC. However, this is what I would describe as a 'push' operation, since it is initiated by the TP, and it is equivalent to 'pushing LTI links' onto the TC (via web services). I think that this will indeed be very useful. However, in addition to this 'push' approach, I believe that a deeper integration between an LMS and an LTI tool, would allow a TC itself to initiate the workflow of resource selection for eventual creation of the LTI link. This is what I mean by the 'pull' approach, and which would cover my use case. For the specific case of Blackboard, for example, then such LTI consumer capability could be built-in into the Bb content tool workflow.
    On the other hand, when you mention the 'current workflow with LTI links', I am somewhat surprised here because I didn't know that a tool provider was required to recognize a new LTI link as such, and offer the instructor the ability to configure the connection. Is this part of the 2.0 spec? (I apologize for my possible ignorance on this). If so, then this workflow you described would also cover the use case (although possibly with some extra steps involved: what I proposed would obviate the need to create the LTI link until you were sure which was the resource you picked, while in the situation you described this workflow would be completed through a sequence of 1) lti link creation 2) instructor clicking on the link 3) TP presenting configuration options to the instructor and saving them before going on with the normal workflow. Hope I'm making some sense here.

    Extending LTI 1

    Hi again,
    Just to clarify further my use case with a concrete description, picture the following:
    1- With an LMS (e.g. Blackboard), an instructor decides to create an LTI link to a resource within a TP provider, but doesn't know the specific url to the resource.
    2- Through an LMS's GUI, the instructor can select which LTI tool provider he wants to work with (e.g. select a resource from), possibly because the tool providers have already been registered by an administrator.
    3- Once the instructor selects the particular TP, then, if the feature is supported by the TP, the instructor is presented with the TP's resource picker GUI (possibly by redirecting to the TP such GUI, as I originally suggested, either in a new window or in an IFRAME perhaps).
    4- The instructor then selects a resource using this GUI, at which point an LTI link gets created within the LMS as a result, with the proper configuration.
    NOTE: I am picturing that steps 2 through 4 would be realized by having the LMS implement the consumer side of this 'LTI feature' within its already existent content item creation workflow.

    Again, the workflow that Stephen described -and I was unfamiliar with- may end up with an equivalent result in the end, although it requires possibly more on the TP's side (e.g. the ability to keep track of which links were already created within the different consumers, etc.)

    Extending LTI 1

    This is the workflow supported by several building blocks, such as ones that offer selecting a textbook from a catalog. These building blocks are using LTI mechanisms, but outside the specification. This is one of the use cases that ultimately resulted in the current service extension thinking. Note that each building block is dedicated to a single TP, although a more general approach would be a small change. Also, some of these building blocks support search and selection through a Bb UI, but most show the TP in an iFrame and have a "proprietary" call back URL parameter sent from the building block (TC) to the TP.

    Extending LTI 1

    Yes, I think you are getting at my idea. The point is that by incorporating this feature into LTI itself, one could create somewhat deeper LTI integrations without the need for these building blocks. This 'type' of workflow is also what I've used in all my (individual) building block integrations - with the exception that the GUI does not involve any LTI-related vocabulary as described in my listing, etc.-. In all these blocks, a Bb custom content tool implements the particular 'resource picker' for the TP (mines used the Bb GUI for this, but as you said, they could have used an IFRAME, ec.). If I am understanding you correctly Jeff, I think you are suggesting that one could write a 'general' building block to implement the workflow I described above -although I think this already assumes that the TP resource picker functionality is available within LTI-. Then yes, I absolutely agree. One could think of augmenting Stephen's LTI block with that capability, for example. Or you could think of building this capability into the LMS itself.

    It is definitely true that the web service extension that you mention can achieve a similar result by initiating the interaction within the TP. I think that from a user's perspective though, sometimes it's nicer to get the interaction initiated within the TC (or LMS), as it is seen as a 'deeper' integration. It is also a 'pull' type of approach instead of a 'push' type, as I've mentioned before. I guess I'm trying to be an advocate for both types of approaches to coexist within LTI (while currently only the 'push' approach is included). Anyway, I understand this may not be a pressing need; it would certainly come in handy if the goal were to 'port' all such individual building block integrations onto LTI tools, for example, without having to augment much the tools (TP's) themselves.

    Extending LTI 1

    Looks like the new content item specification, and LTI 1.2 are finally implementing the functionality that I was proposing. Great to see this happen!

    Extending LTI 1

    Thanks for the thoughts Patricia. There is a proposal currently being developed to allow a tool provider to insert an LTI link into a page within the tool consumer which might fir your needs. However, I am not sure how your use case is different from the current workflow with LTI links: an instructor adds a link to an LTI tool to their course; when they first follow the link the tool provider recognises it as a new link and allows the instructor to configure the connection (e.g. select the resource to connect to); each subsequent launch (by any user) will use the selected configuration details to display an appropriate page. Do you see your proposal doing more than this?

    Extending LTI 1

    Hi,
    Ignoring this last post (which I see is a duplicate of an earlier one by Jeff Kahn), I thought I would make people aware (in case you haven't seen it yet) that the Canvas LMS is apparently using an 'LTI extension' which seems to be pretty much identical to what I was proposing in this thread. Some of their example apps - e.g. the Google Art Project app- consist in simple 'LTI providers' -especially those which let you access public resources-, that offer user friendly integration with an LMS that supports this special 'LTI extension' (the extension essentially let's you choose a specidic provider's resource -by introducing a provider's resource picker- as you are still filling in the 'link creation' form within the LMS). Again, I think the advantage of having this feature as part of the LTI spec itself, is that tool providers can be as 'dumb' as they want - in the sense that they may not keep track of which links are being created in which LMS's, do anything with this knowledge, or even initiate the link creation process-, but still provide a nice integration with an LMS as long as they offer a 'resource picker'.