Chen - Simplifying SCORM While Keeping it Feature Rich

Home About LETSI Calendar & Events Join LETSI Contact LETSI
Architecture Runtime Web Services Strategic Communications Technical Roadmap [Joint CMI Study Group]
Content as a Service Namesets [LET Activity Description] Orchestration SCORM 2.0

Simplifying SCORM While Keeping it Feature Rich

Yuanming Chen, Mary Goble Thomas, Wes McNeil, and Vadieh Rahmani, Medical Simulation Corporation

Summary

SCORM 2.0 has two seemingly conflicting objectives:
1. Support emerging technologies, new learning paradigms and new education contexts
2. Keep SCORM interoperable, simple and reliable

In this white paper, we proposed a software solution that aims to address both objectives. Application Programming Interfaces (APIs) are the key abstraction layer to ensure that SCORM is both simple and feature rich.

Requirements/Needs Outlined

1. Lower barrier of entry
2. Empower developers with languages of their choice
3. Help developers to write reliable code
4. Develop flexibility and extensibility
5. Support non-web deployment

Recommendations

As mentioned by LETSI, SCORM 2.0 is intended to be an interoperability model that can be used strategically across market sectors and geographical regions. In order to achieve such a model, we propose that discrete, peer reviewed APIs be designed for different market segments. These specialized APIs would need to be backward compatible. We would also like the CMI data model to be simplified, and developers to be given the option to use their language of choice for SCORM communication. We believe the addition of specialized APIs will better empower SCO developers to write portable, reusable, and reliable software. The proposed use of middleware will allow for feature rich environment, enhancing the already well-established and effective SCORM.

Labels

added added Delete
recommendations recommendations Delete
ecma ecma Delete
cmi cmi Delete
evolution evolution Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Aug 21, 2008

    Mike Rustici says:

    I completely agree with the need outlined in the title to simplify while keeping...

    I completely agree with the need outlined in the title to simplify while keeping feature rich, but I'm having trouble deciding whether or not I agree with some of the other points in this paper.

    I definitely agree that we need better support for simulation, gamingand other non-web deployment. A web services based solution that also solves the cross domain problem could go a long way here.

    The point about empowering developers with their language of choice seems to be a bit off base. A standard, by definition, needs to dictate one way of doing things. To that end, a standard that defines an API that can be invoked needs to define the language in which that API is written (at least at the interface level). I do agree that developers should be able to implement using whatever technology they see fit, but at some point the rubber needs to meet the road when the content talks to the LMS and I'm afraid we can't allow for very much flexibility in that interface without sacrificing interoperability. A web services interface might be a good compromise here.

    "JavaScript, an interpreted language, will struggle to meet the high-performance requirements for SCORM communication in those applications."

    I disagree with that statement. For the purpose of simply shuffling data back and forth, an interpreted language should be more than up to the task. JavaScript could never run an advanced simulation on its own, but it can certainly handle the reporting of the data from that simulation.

     "underlying CMI data model is intimidating"

    I don't see that as the case. Now, I could be very wrong since I've been working with SCORM for so long, but it seems to me that the CMI data model is actually one of the more straight forward aspects of SCORM. Can you enlighten me as to why newcomers find it confusing?

    "loss of static type safety....Expand SCORM API, and simplify the CMI data model"

    I hadn't thought of things from this perspective before, but intuitively it seems backwards to me. I can't formulate a good argument for either side just yet though. Anybody have any thoughts? 

    1. Sep 02, 2008

      Yuanming Chen says:

      The APIs we proposed have to be agreed upon on the interface level, a concept no...

      The APIs we proposed have to be agreed upon on the interface level, a concept not much different from other technologies like COM and CORBA. For COM, interface is expressed in terms of a specialized language called IDL. Once IDL-based interfaces are defined (For example, IUnknown for generic query, IDirect3DDevice9 for 3D graphics, etc), it becomes straightforward to translate those interfaces into other languages like C++ or Java. In fact, most COM developers are not even aware of the existence of IDL: they just pick up the APIs of their language choice and start to use them. Other similar examples can be found in Web Services (WSDL) and .NET (CTS).

      When you mentioned that "A standard, by definition, needs to dictate one way of doing things", I respectfully disagree. The success of those technologies can be largely contributed to their sensitivity to meet the needs of various stakeholders, who are often very interested in solving their domain problems with their familiar toolsets. In other words, forcing developers to use "universal" solutions (web service, JavaScript and a unified CMI model defined in a 20-plus page document) is often a distraction, not an incentive for adopting a technology, especially in a era when choices are abundant (e.g. Web 2.0). I personally believe that a more effective standard should focus more on conceptual contracts than on mechanics of the contracts.

      As to JavaScript's performance, it is a real problem for simulation developers. Communication with the backend data store (not necessarily LMS system) in real-time is a major challenge I have to deal with daily. Simulation developers switch to Python and Lua not by accident.

      Even though I agree that web service "could go a long way", web service itself is not the appropriate technology to realize SCORM's original goal of "provide access to the highest quality learning and performance aiding that can be tailored to individual needs, delivered cost effectively anytime and anywhere". What if there is no LMS or internet for the simulation training? What if somebody want to develop a training course that can truly be tailored to individual needs and deployed anytime and anywhere? Web service offers a good starting point, but it will not carry us to the end point.

      As to the statement of "underlying CMI data model is intimidating": it is more based on my personal experience than on scientific research. In our past project, a team of four developers was involved to make our courses SCORM compliant, and we had little past experiences with SCORM. The initial learning curve was deeper than we thought: for example, what features are mandatory and what are optional? How to use cmi.interactions to capture simulation-related data when our data points are well above the limit of 250? How to pass data to the backend data storage when there is no LMS? How to deal with inconsistencies in the SCORM data standard itself as was described in the paper?

      Some would argue that it is professional developers' responsibility to learn the complexity of SCORM (like CMI schema documentation) and figure out a way to address the implementation issues. That's what our project team did in the past six months. But eventually we came to realize that we prefer to write code with explicit contracts (type safe APIs) instead of generic contracts implied in the CMI data model. By dealing with an explicit contract limited in scope, the code becomes simpler, stable and portable. Instead of calling multiple setValue() functions to pass data for a single interaction, we can call one API function with all necessary parameters. If we pass the wrong type of parameters or miss one parameter, the compiler will tell us the error so we don't need to wait till runtime. Even if the underlining CMI data model changes overtime, we are still confident that our applications will work as long as we update the corresponding middleware. We like this alternative, and this is why we write this whitepaper to get your feedbacks. My personal experience with Boost convinces me that the "divide and conquer" approach could have its merits in the e-learning community who wants to address issues larger than web training and conventional LMS systems.

      There is a Chinese saying, "throw a brick to attract jade". Six months of experience with SCORM is not a very impressive record, and our points are more likely to be brick than jade. But we will be content if new ideas worthy of jade would come out of this API discussion. Thanks!

  2. Aug 29, 2008

    Nina Pasini Deibler says:

    Simplifying SCORM is an admirable goal, but I think there is a difference in sim...

    Simplifying SCORM is an admirable goal, but I think there is a difference in simplifying functionality in a technical specification and providing tools and resources that make it easier for content developers to implement.  The middleware mentioned is much needed, but I don't think it's API-based middleware, but more tools that that just hide or automate the complexity of SCORM.  Part of Philip Dodd's vision for SCORM was that someday tools would hide all of the complexity and SCORM would just "happen" at the click of a button.  I worry about having so many APIs and custom code for systems to read and respond to.  

    I also think we need a more robust data model that can track information interoperably from all of the systems you've discussed in your paper.  That said, there are definitely ways that the cmi data model could be less cumbersome or confusing. 

    1. Sep 02, 2008

      Yuanming Chen says:

      Thanks Nina for your comments! I cannot agree with you more that there is a ...

      Thanks Nina for your comments! I cannot agree with you more that there is a clear difference between technical specification and the tools! That's actually what we are trying to say in the paper, but I obviously didn't convey it very well

      There is no doubt of the needs to develop more tools to hide SCORM's complexity. But if the single-API paradigm remains unchanged, developers will continue to deal with the complexity of communicating with a more feature-rich SCORM through a generic interface. Some will say that the code is easier to read if all communication is done through the traditional setValue() and getValue() functions. The problem is with the parameters in those function calls: how do you ensure that you are passing the correct parameters? When CMI data model changes, there is a big chance that the legacy code will be correct in syntax, but incorrect in logic. Instead of hiding the complexity of SCORM, we recommend to explicitly express those complexities through dedicated APIs. The benefits are more relevant APIs for domain developers, better syntax check and more stable codebase. "Divide-and-conquer" API design is not meant to remove all complexities inherent in any e-learning systems, but to manage them.

      I understand your worries about too many APIs. But if there are two choices:

      1.      Overhead of learning the APIs in your domain

      2.      Overhead of learning the CMI model that covers all domains

      What would you choose? I personally like option 1. It's hard for me to envision that LETSI could somehow figure out a CMI scheme that will cover most future e-learning scenarios (emerging technologies, new learning paradigms and new education contexts...) while keeping developers to write simple code. It is much more likely to devise multiple APIs, each designed to solve its particular problem. My past experience with this API design is with Boost, a C++ open source library which deals with problems ranging from calendar management, statistics to image processing! Since interactions between domains are reduced (there will be no all-encompassing CMI data schema document), the chance of writing more portable and reliable code will be higher.

      From a standard perspective, we envision that APIs would become the technical specification for SCORM, so the CMI data model and many other details about SCORM will gradually become less relevant. LMS will not even be required for a SCORM system, since simulation or game applications might not be connected to a LMS system.

      Thanks for your inputs! 


Atlassian Confluence