Forum .LRN Q&A: Re: Request for advice from the OCT

Collapse
Posted by Ola Hansson on
What APIs does the Simple Sequencing package need to expose?

- Navigation and Delivery

Simple Sequencing controls (for lack of a better word) how activities in an activity tree are to be delivered. There are numerous processes and sub-processes specified within the SS spec which jointly are responsible for a successful result, that is, either delivering an activity in the sequence, or refusing to deliver any.

People who are not directly involved in developing the SS engine will probably primarily be interested in the API for two of the processes, namely the "Overall Sequencing Process" and the "Content Delivery Environment Process". The overall process takes a "navigation request" like, for instance, "Start", "Resume All" and "Choice" (there are twelve of them), and passes it to a process called the "Navigation Request Process" which in turn calls other processes ... The "Overall Sequencing Process" should have an open API that other packages can call.

Perhaps something along the lines of:

ss::osp::navigation_request -request "Resume All" -sequence_id 12345

Let's pretend that such a call results in the successful delivery of an activity (it's always either one or nothing at all). Now, the delivery of an activity doesn't imply that the user is presented with an actual learning object or assessment. No, in this case it just means that the *activity* has been validated for delivery and that the learning object(s) associated with it has been identified. The SS spec leaves it to the individual implementation to decide how to return the content to the user. Therefor, it might make sense for the "Content Delivery Environment Process" of SS to use some kind of service contract mechanism that "dispatches" (not sure this is a good word) the actual delivery of the identified items to the user, instead of always doing it all by itself. (I'm having a hard time finding a good use-case, though.)

- Tests

When the SS engine has determined that an activity which represents a test is to be delivered it is going to delegate the task of determining the users score in the test to the Assessment package. Assessment then needs to be able to report the score, party_id and sequence_id (or root activity_id) to the SS package. It would be interesting to hear how others think this communication ought to work. I'm inclined to believe that using service contracts is the way to go here since there might not be a hardwired dependency between these two packages from either end (or perhaps there must be ...)