What is LTI?

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2024

ความคิดเห็น • 40

  • @georgerobinson309
    @georgerobinson309 ปีที่แล้ว

    What a fantastic resource, thank you for putting this together I found it useful!

  • @rickpalmer3340
    @rickpalmer3340 4 ปีที่แล้ว +1

    Hi Claude, many thanks for a very informative video. Can I as what you are using to generate the graphics for this video, please?

    • @theedtechdev
      @theedtechdev  4 ปีที่แล้ว +3

      Thanks Rick for the feedback. It's mostly hand drawn, scanned, then layered in After Effects for simple animation, using transition effects in AE to reveal layers (i.e. bits of drawings)

  • @orhunk90
    @orhunk90 5 ปีที่แล้ว +1

    Thanks, great video series! Very helpful for those who just started LTI 1.3 development.
    Just a question about deep linking; in the basic LTI we are able to map a tool provider content to an LMS resource via LtiResourceLinkId. Is Deep Linking extension in LTI Advantage providing the same functionality just in separate service or am I missing something?
    Thank you again, excited to see more videos!

  • @kishorsmarathe
    @kishorsmarathe 2 ปีที่แล้ว

    Hello Claude,
    I've one question regarding the deep linking implementation. as per my understanding, once the user selects the deep link content item on the tool's content selection page, there will be a response sent to the deep_link_return_url thats received in the launch (for CreateDeepLink) request. We are planning to implement this endpoint as a separate process but wondering how will we there come to know that the response received is from which tool. Because as per the specs, the incoming response message has only one parameter in response i.e JWT which is a signed JWT message. to verify the signature of this signed JWT, we will need the tool's public key, for which we need to know which tool has sent this response. I checked if we have any identifier for Client_id in the incoming request headers but didn't get any such header there which will tell about the tool's identity. Can you please let us know how do we implement this? Do we need to maintain the tool's identifier at the time of initial OIDC or launch itself in local context and then use the same tool's id for getting it's public key, because there we know which tool we are initiating the request to?

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      Hello! The deep linking response JWT must contain the iss claim which must be the tool client id. Also the spec allows a platform to include a data parameter that must be included in the response from the tool.

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      @@theedtechdev yes we can pass required parameters however all that is in the signed payload that we get as a response in the JWT parameter. My concern is regarding how do platform would fetch the public key which will be needed to parse the incoming signed JWT object.. we have the client-id and also the tool's public key, but because the Deep Linking response is an asynchronous msg that we get from the tool, we expect if there would be a header which will hold the client_id and using that header parameter, we can then get the tool's public_key from storage to parse the message. I didn't find any other relevant parameter that would help identify the tool's identity before parsing the incoming signed payload.. can you help with this query?

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      @@kishorsmarathe Yes usually you get the iss from the JWT payload (unverified) then use it to look up the key/key url then verify the JWT

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      Okay @@theedtechdev. I doubt if we would be able to fetch the 'iss' parameter without verifying and parsing the payload but let me try. Otherwise I guess processing the response in second thread, and get the tool's identifier from the first thread which will be OIDC + Authorization flow can be the way to go..

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      @@theedtechdev i also checked the tool's code, didn't see any additional parameter apart from JWT (which is signed and hence needs to be verified /parsed first before reading what's in it there)

  • @kishorsmarathe
    @kishorsmarathe 2 ปีที่แล้ว

    Hello Claude,
    We are in the intermediate stage of LTI 1.3 implementation (Platform side) and able to launch a resource as LTI 1.3 claims payload standards. I'm working on enhancing the same to have Assignment and Grading service where in the usage of line items is mandatory for pushing grades from tool back to platform. However, the specs mention that one Resource link can have more than line items. at the time of launching a resource link, if there are more than one line items, then in the endpoint claim we should pass lineitems.url, to which the tool will query and then it will basically get the gradable line item. How will the tool decide which line item is gradable and which isn't. Ideally, even if there are more than one line items, only one line item is going to be associated with the resource link's gradebook. is this understanding correct? Appreciate your help so far and looking forward to your response

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว

      Hello Kishor. So the simple case is that there is a single column (line item) per resource link and that line item is created by adding a lineitem section in the deep linking response (if you use deep linking to import content). If there is a single associated column (because the LMS considers the link gradable) you will get the associated lineitem url in the LTI payload (in addition to the lineitems). However if the link is not explicitly gradable, you will only get the lineitems URL. You will then need to query that endpoint to get all the line items for your tool, and usually use the resource_id on that items to know which is which. So it's always very important when you create a lineitem to specifiy that resourceId so that you can later identify it in the returned values from the lineitems call. Hope this helps!

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      @@theedtechdevhi Claude, thanks for your prompt revert. we are actually implementing the LMS platform side, where in we are going to create the line items using Deep linking as your rightly mentioned in the 1st half of your reply. However, from the latter part of the reply it looks like the 'resourceId' will be unique for each line item - is this correct?
      Can there be a case that one resource link having more than one line items, having same resourceId and tag values for all the line items? In that case, we - the platform will simply include the lineItems.URL which the tool will eventually query and then the tool will only decide that against which lineItems the grades should be passed. Is there any way for the platform to be aware of this that which lineItem is gradable among the set of lineItems. LineItem is not a resource to my limited knowledge, and hence the resourceId can be duplicate if there are multiple lineItems for a single resource Link. Kindly feel free to correct my understanding.

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      @@kishorsmarathe Ah I see, right there is no constraint you should enforce around uniqueness. The tool will have to sort it out if more than one line item matches a (resource_id, tag) value. Now what's important is to retain the association between the link and the lineitem when a tool imports a resource through deep linking with a line item part in it. It's required then the platform remembers that association to include the lineitem URL in the subsequent launches of that imported link.

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      Okay @@theedtechdev. One more question, is there a possibility that more than one gradable line-item would be there for a single resource link? If yes, how is platform supposed to handle this combination..?

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      @@kishorsmarathe yes the spec allows it when creating a line item through the API (by setting a resource_link_id value that matches one of the resource link in that context). Although that is bit of a grey area what really the platform does with that. The spec says if there is more than one line item for a given resource link, then you cannot set the line item URL value in the launch. So the only requirement is that we returning the line items, you do include the resource_link_id identifying to which link a line item is associated too.

  • @kishorsmarathe
    @kishorsmarathe 2 ปีที่แล้ว

    hi Claude, Will you be able to share the list of jar files that we would need in order to support LTI 1.3 implementation. The plan is to migrade to LTI 1.3 from LTI 1.1

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      Hi Kishor, I cannot really say there is a unique list of JAR files per say, but you can look at existing Java implementations to get a sense of it. For that check the list of resources there: github.com/IMSGlobal/ltibootcamp. You'll see a couple of Java public implementations, hopefully they'll get you closer to what you are looking for.

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      @@theedtechdev hello Claude, thanks.. will try to dig it deeper. One more question, I tried creating the RI platform and RI tool through the reference tool where we can generate test keys, configure the endpoints etc., the initial integration is successful means Perform launch worked, however next features like assignments and grade APIs, Deep linking, names and roles service requires IMSGlobal membership. My question is, now that membership isn't there, can we still use the RI tool created here to progress further and integrate with my gonna be Java coded my platform dev POC Project?

    • @kishorsmarathe
      @kishorsmarathe 2 ปีที่แล้ว

      @@theedtechdev Also, one more question Claude. I did check the the link you shared and found out that most of the Java implementations are to implement the LTI 1.3 Tool but not the platform. Will you be able to locate any such Java Platform implementation with LTI 1.3 ?

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      @@kishorsmarathe oh yes it's indeed rarer - I can point you to the open source LMS in Java, maybe you'll find helpful bits in there: github.com/sakaiproject/sakai/tree/master/basiclti/basiclti-blis/src/java/org/sakaiproject/lti13

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว +1

      @@kishorsmarathe I think indeed you need an IMS membership for the full feature RI. For your platform though, you can find online LTI 1.3 test tools in the bootcamp resource and use those to drive your dev. saltire.lti.app/ has also good support of 1.3.

  • @NimodNamboodiri
    @NimodNamboodiri 4 ปีที่แล้ว

    Ok, do you have any samples of LTI Courses? how the final course content package will look like? I tried searching a lot, but not getting anything from anywhere. Any help is appreciated!

    • @theedtechdev
      @theedtechdev  4 ปีที่แล้ว +1

      Hi Nimod, there is no such thing as packaging an LTI course, at least not directly. You do share the connection credentials, and for that there is (yet) no standardized way to exchange those, but it's a 1 time operation. Then you add LTI links in the LMS that launch you in your tool where the content resides. This said there is common cartridge which can be used to import a set of links in an LMS, but this will not configure the lti tool itself, but rather rely on a proper tool configuration in the LMS to be able to execute those links. Mapping between links imported from the cartridge and LTI tool is in that case done by domain matching: mytool.org/video/111 in the cartridge will use the LTI tool configuration defined for mytool.org. Hope this helps!

    • @NimodNamboodiri
      @NimodNamboodiri 4 ปีที่แล้ว

      @@theedtechdev really appreciate your response. You referred to multiple times to "links". What those links are? Is it links to course documents? If yes, is it need to be in a specific standard? Is there any standards part of LTI how the courses should be in terms of content standards or in technical structure with semantics?

    • @theedtechdev
      @theedtechdev  4 ปีที่แล้ว

      @@NimodNamboodiri An LTI link is really at its core like any other web link, a url, that points to a resource on the tool side. It's just this url is not launched in directly, but rather launched through the LTI launch flow which will allow to pass user and course information to the tool when that link is executed. So it's really important in LTI to separate the tool definition (security, privacy controls, etc...) to the links that point to resources in that tool. To package and transfer a set of links in an organized fashion, see Common Cartridge. For tool configuration, there is not yet a standardized way to exchange it. Each LMS has its own flow to configure an LTI tool.

    • @theedtechdev
      @theedtechdev  4 ปีที่แล้ว +1

      @@NimodNamboodiri Hello! Yeah I think where the issue lies in the understanding is that LTI is not a way to package or share content, but a way to transfer a user from one website (the LMS) to another (the Tool) by passing user and course info along the way. So the links i'm mentioning are those weblinks in the LMS site that are pointing to the Tool's website. Usually the tool website is opened in the LMS website in an IFrame to 'feel' it belongs to the same site, when it actually does not.

  • @jondyason336
    @jondyason336 4 ปีที่แล้ว

    thanks!

  • @zulfarismazlan548
    @zulfarismazlan548 2 ปีที่แล้ว

    hi sir do you have guide how to implement LTI to LMS?

    • @theedtechdev
      @theedtechdev  2 ปีที่แล้ว

      I don't have a guide per say, but I can point you to a set of resources: github.com/IMSGlobal/ltibootcamp it will point you to various presentations and various libraries. Also how you implement vary a bit if you are doing a tool (the common case) or an actual learning platform (that will launch LTI tools).

  • @КПРФ-всёдлянарода
    @КПРФ-всёдлянарода 5 หลายเดือนก่อน

    Что такое лтай

  • @lilianne12345
    @lilianne12345 ปีที่แล้ว

    Sounds like an aicc course, having a difficult time understanding what is the added value of LTI over existing standard like aicc/scorm/xapi

    • @theedtechdev
      @theedtechdev  ปีที่แล้ว +1

      Maybe one way to look at it is LTI is not importing an Experience/Content but as the name says it, a Tool, in the LMS. A Tool can be a quiz builder, an ereader, an evaluation, anything really... It's a way to extend the tools available to the instructor without having to rely on custom plugins/apis.