-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Are multiple overlapping launched sessions in one registration allowed? #549
Comments
Ref: https://github.com/AICC/CMI-5_Spec_Current/blob/quartz/cmi5_spec.md#936-abandoned
I thought we had other language too, but the above should be sufficient. |
Are multiple overlapping launched sessions in one registration allowed? Short Answer: No. Unless we need to consider better clarifying language, I consider the issue closed. |
I don't see how that language could support that conclusion, especially for the particular scenario I'm thinking, relaunching the same AU (since different AUs necessarily have different registrations in context)--only activity "for a different AU" indicates abnormal termination as described. I really don't see any restriction on this in the spec. If it was intended, I'm pretty sure it was left out entirely (though requirements are scattered enough in the spec there may be something that I missed), and will either need to be accommodated or need to be added to the language. |
If a different AU is making requests and the existing session is immediately abandoned then that session can no longer be active, which necessarily means you can't have multiple simultaneous sessions for a registration, as a session is tied to a registration. |
The case I'm focused on is the same AU, in a different session, in the same registration. There's no technical barrier to that happening right now, and the text you pointed at only applies to different AUs. |
I suppose you could argue that re-launching the same AU within a registration obliterates the State data as it is based on the same identifiers which is in effect abandoning that session as you would have to get the new session id from the updated state before initializing the second session. At the same time, I would expect you to argue that that is a stretch and that we should be more explicit. I seem to recall thinking that the addition of "different AU" was entirely unnecessary there and should be tied to the session instead. I am curious about your statement that: "since different AUs necessarily have different registrations in context"? |
They absolutely must. The rules make no sense as written otherwise. In particular:
Presumably someone can complete and pass different AUs in a course, so as only one completed verb is allowed per registration, the different AUs must have different registrations. If those were intended to be per AU, that definitely didn't get written there (including the prefatory language; they're definitely AU verbs, they're within an AU session, but the rule reaches out across a whole registration, otherwise it doesn't restrict anything, and it doesn't say anything about per AU). There's also this:
|
Certainly launching two sessions too close to each other could trample and prevent successful launch, but there'd be no technical conflict if one had gotten a bit along before the other was started. For example, the probably very common scenario of: person goes to AU in LMS, clicks launch, works in new tab/window. Comes back after having wandered off, sees LMS page still open, clicks launch again. If "different AU" isn't intended to be there, that's fine, but of course it should be deleted (and I'd recommend the language around overlaps be made more specific instead of imprecisely implied at the same time, just outright saying that if the first timestamp for a given session is at a time X, the last timestamp for that session must not be after any first session timestamp after time X). |
They were intended to be per AU (at least as far as I've always understood it). And I believe that was the intention of including "within an AU session" as the header, but tacking on the "per registration" thing. So, a registration is effectively learner + course structure (instance):
I guess you could implement such that each AU gets a separate registration but that seems to make it really difficult to tie everything together, and you'd have to create a (one or more) registration(s) for the satisfied handling, etc. I agree the wording likely needs to be improved. There is at least some historical precedence for the concept of a "registration" given this is for the LMS use case. For the "enrollment" bit, it is for the "enrollment" for the AU being launched given the location of the sentence in constructing the launch string. Granted, that is a big leap to what an "enrollment" is which is effectively learner + course structure (instance). |
I don't follow what is imprecise (other than the language) about "launched" -> "initialized" ... -> "terminated"|"abandoned" -> "launched" repeat... subsequent launch of an AU (any AU) in the same registration (assuming unique "course structure + learner (instance)") causes abandonment which terminates access (or triggers post mortem voids). |
The imprecision is when the abandonment statement occurs. In your scenario the abandonment could conceivably (and even likely in a naive implementation) be given a timestamp after the "launched" in the case when it is detected due to new statements, causing sessions to overlap. |
If the rules were intended to be per AU, they weren't remotely written like that. The plain language is that they're for the entire registration, and the use of registration everywhere it isn't called "course registration" is consistent with that (and consistent with course registration being interpreted as a broader concept). I mean, if the cmi5 working groups wants to do the edit, and retroactively, that's fine, it isn't my standard, and I assume most people implementing it implemented it per-course structure. But right now the very direct implication of the language is that registrations are per-AU, not per-course structure, and there's barely even a hint, textually, that it is intended to be otherwise. |
I've got another huge bunch of revisions to trying to translate what's here into profiles, now, though ;) |
Btw, I did a pass and found another place registration could more easily read to be per AU that should probably be updated:
I've also found a place that's best (though not only) interpretation is registration is per course, deep in the document, which I discounted since some of the first rules in the document contradicted it:
|
There are a number of places in the spec where things seem to get a bit odd if they are, but I didn't find an outright prohibition.
The text was updated successfully, but these errors were encountered: