Dispatch lets you maintain control over your content even after it’s been delivered to an LMS. A Dispatch Package is a SCORM or AICC package that can be imported into an LMS. When the shell is launched by an LMS, it opens a window into your system through which learners can launch your courses. Dispatch Packages report high-level summary of results to the LMS they are deployed in using the learning standard that they are exported in, and they report detailed results back to your Engine installation. Since the courses you are distributing never leaves your control, this gives you a new level of control over your content — a level not available from a traditional LMS alone.
In order for the dispatch packages to know how to launch back to your system, you will need to configure one additonal setting: DispatchBaseUrl. This should be set to the fully-qualified URL to the '/dispatch' path under the Engine application (eg. http://mydomain.com/RusticiEngine/dispatch). This value is used when building dispatch packages for export, so the URL must be fully-qualified and accessible from client LMSs. If this value ever changes, then all dispatch packages that were exported while it was in place must be re-exported, unless you use url rewriting to make it continue to be accessible.
The main interface through which you will manage your Dispatches is Engine's REST API. There are two API resources that you will need when creating and deploying your dispatches:
dispatches, which are individual windows that you send out into the world, and
destinations, which serve as a way to group together the dispatches that are going to be delivered to the same place or customer.
When you create a dispatch package, you are creating a window into one of your courses that can then be imported and launched like any other SCORM or AICC package. When creating a dispatch, you only have specify the ID of the course that is being dispatched and the destination that the dispatch is being sent to. There are a few properties that you can configure to further control access to your course.
- You can institute an
expirationDateon your dispatch package. If set, learners will no longer be able to access the dispatched course after the specified date has passed. This can be used to enforce any constraints that your content licenses may places on the dates of allowed access.
- If you specify a
registrationCap, then the LMS that the dispatch package is deployed to will only be able to make as registrations as you allow. After the cap has been reached, no further registrations can be created for the dispatched package. This can be used to enforce any restrictions on the amount that a customer may access your content.
- After your dispatch has been deployed, you can toggle
true(the default) and
false. Once disabled, no new registrations can be created for the dispatch.
- If you want to entirely deny access to a dispatched package, you can even set the
enabledproperty of your dispatch package to
false, disabling all attempts to launch your course. Once disabled, no learners will be able to access your package through that dispatch, but any other dispatches to the same package will remain active. You can set these properties when creating your dispatch, and they can be changed after the dispatch has been deployed. This allows you maintain total control over who is accessing your courses and how they are doing so. For example, if you notice that one dispatch is being used more than your license permits, you can specify a cap on the number of registration being launched, disable the ability to create new registrations, or even entirely disable the dispatch that is being exploited. How your content is accessed is always up to you.
The package being dispatched will remain unaffected by the process, and it can still be launched like any of course that you've imported into Engine. If you want to dispatch the same course to a few destinations, or with different sets of configurations, you can create multiple different dispatches for the same package. Each dispatch is just a window into one of your courses, and the access each of those windows have can be configured independently of each other.
Destinations are a way to group your dispatches together. Most commonly, destinations are used to distinguish between the different customers that you will be sending packages to. Using the API, you can monitor important information like which courses have been dispatched to a customer and how many registrations that customer has created across all of the courses that have been sent to them. You can also manage access to every course that you has been dispatched to a destination simultaneously.
For example, if you wanted to send a few hundred courses to a new customer, you would just need to, using Engine's API, create a destination for your new customer, create the dispatches within the destination, and generate a zip file that contains every course to be sent. You can then pass along a single file to your customer, and they only have to manage the one file until they decide to unzip and import the packages. This saves you the hassle of exporting hundreds of dispatches from Engine whenever you onboard a new customer, and it also lets you deliver the courses to your customer with just a single file, massively cutting down on the overhead involved in managing that many files simultaneously.
On the other side of the same coin, if a customer's license has expired, you no longer have to worry about the customer continuing to use your courses outside of the scope of your contract. You can disable access to every single dispatch you've sent to them by disabling the customer's destination. Instead trying to research every course that you've sent to this customer and iterating through each of them, disabling them one by one, you can make a single API call to Engine and have confidence that you have protected your content.
Since dispatch packages simply serve as windows into your system, your content is never outside of your control. This lets you be sure that your courses are always being launched as your allow, and it protects them from unauthorized access. Using Dispatch with Engine, you can be confident that your content is safe.