|
#1
|
|||
|
|||
Writing task modules for the LMS
The LMS is designed to host software produced by third parties. The interfaces used by the LMS are publically available, together with documentation on how to write software for the LMS, and extensive examples in the form of templates.
The fundamental unit of software for the LMS is called the "task module". Types of task module include task creators, task editors, task runners, task result item viewers, task recording players, task recording editors, task module configurators and tools. A task module can vary in size from a simple dialog that runs in process, to a huge and complex application that runs out of process. Task modules may also host other task modules; for example a task editor may be able to host a task runner in order to preview the task being edited. "Colonoscopy animation editor" is an example of this. Conceptually, task modules exist within task module objects. In terms of implementation, task modules do not exist as software entities (such as objects) but rather as modes in which task module objects may be run. A task module object exists as either a COM or .Net object and may be started in different ways in order to act as a particular task module. For example, a particular task module object may be asked to be either a task creator task module, or a task editor task module, and another may be asked to be a task runner task module or a task recording player task module. Asking a task module object to behave as more than one task module makes sense because the difference in terms of code between a task creator and a task editor, or between a task runner and a task recording player is often minimal. Task module objects exist within code modules. A code module is either a *.dll or *.exe file and may be a COM server or .NET assembly. Deployment of LMS software is achieved by the use of code packages, which are files with a cpk file extension. Code packages are a proprietary means by which code modules, task module objects and task modules can be deployed, complete with their dependencies and data type definitions that are associated with them. Code packages are created by a GUI application called "Code Package Creator". This uses a small definition file (*.cpd) to assembly all the material into the CPK. GUIDs are used extensively as IDs for the various software elements, and the "Code Package Creator" allows these to be assigned and checked for errors. "Code Package Creator" is publically available. The languages currently supported for writing task modules are 32 bit Delphi (preferably V7) and any Microsoft .Net variant. It would also be straightforward to use other languages capable of writing COM objects such as C++, though the interfaces and templates are not currently available. This is due to the wide variety of ways in which COM objects are implemented in C++. The work involved in translating the interfaces should be minimal. In addition to hosting task modules, the LMS can also host conventional "EXE" style applications. In the LMS these are referred to as "command line tools". Command line tools may be added to code packages using "Code package creator" in a similar manner to task modules. Adding software to the LMS in this way is the easiest way to add existing software to the LMS, but the software will be unable to communicate with the LMS database and therefore unable to edit and run tasks etc. See Writing software for the LMS for downloads including detailed documentation on writing task modules for the LMS. Last edited by JSB; 13-05-2010 at 03:16 PM. |
Thread Tools | |
Display Modes | |
|
|