The course copy road to nowhere
Just imagine you are the administrator of an LMS holding hundreds of on-line courses, and that your teachers have added playlists for useful videos within each section of their courses. Now think about what happens when these courses are copied at the end of a session to prepare afresh for another intake of students. If the video content is embedded within the course and the files hosted within the LMS then I suspect all will be well; the new copy of the course will happily be linked to these files. But what if these videos are provided via a third-party application which is linked to a course using LTI, what then? In that case the only thing connecting the link in the course to the playlist of exciting and valued videos is a single resource link ID - a strong connection when it is set up, but one which is easily broken when the link is copied to another course. The result is that you (the LMS administrator) are then inundated with calls from disgruntled (angry?) teachers who have to go through their new course and set up all the playlists again (because they all have new resource link IDs). Time for you to either take a vacation or to find a solution!
Well, if finding a solution is the choice you made, then IMS has one to offer. This was exactly the issue facing Atomic Learning and its customers, who, in conjunction with IMS, devised and implemented a simple solution using two new custom parameter substitution variables which have now been included in the LTI 1.2 specification. The values of these variables provide a list of the resource link IDs and context IDs with which the current link has previously been associated. The first ID in each list will be for the course from which the current course was copied; the second will be from the course from which the previous course was copied, etc. Thus, when Atomic Learning receives a launch with a resource link ID which it does not recognise, it can check the resource link ID history to see if any of these are known to them. If they are, a copy of the playlist associated with that resource link ID can be made so the connection can be re-established for the teacher and their students. The history of IDs are provided in reverse chronological order, so that the first match found (most recent) is the one to use.
So when a course is copied, teachers need no longer worry about having to setup their Atomic Learning playlists again, though they can always go in and change them. For all other LTI applications, you should ask the tool provider whether they support this best practice and, if not, encourage them to do so. But before doing so, check with your LMS provider that they support the $Context.id.history and $ResourceLink.id.history custom parameter substitution variables so that you are able to supply the required history to your tool providers. At present, the open source LTI building block for Blackboard Learn 9.1 and Atomic Learning are the only known implementations of this feature.