What are Tool Adapters?
You can think of Tool Adapters as bridges between LAMS and the external tool.
These adapters help developers to integrate external tools in LAMS. These adapters permit external tools to talk with LAMS using the LAMS Tool Contract as well as provide the hooks to "connect" to the external tool, helping with Authorization, Authentication and all other management issues.
These tool adapters are "wrappers" or "adapters" for external activity tool to the LAMS environment/application. Usually these external activity tools might be part of an Learning Management Systems (LMS), but they can also be independent services living in the Internet "cloud" (ie: flickr, youtube, Google Calendar, Picasa, etc).
Since these adapters deal also with the external system, there should be a Tool Adapter per each LMS or external system tool. A Tool Adapter is just another type of LAMS tool but it doesn't have any business logic within it. Instead, it is used as a bridge between LAMS and the business logic in the external tool.
But you might be asking, "why would I add my external tool to LAMS if it works very well on its own?". That's a fair point. However, by using a Tool Adapter it would immediately 'inherit' the following benefits:
Once the external tool is added to LAMS, it can be part of the set of LAMS tools to create complex sequences of activities. Also your tool would be workflow aware (this is done free to the tool by the Tool Adapter) which means that now it would have a workflow state (activity has been attempted, is completed, etc).
Although the external tool might not be able to support different groups, the Tool Adapter makes it Groups aware. So when you are running a LAMS activity with Grouping Activities, it'll automatically be Group Aware (again, this comes for free by the Tool Adapter).
If the external tool is able to provide any sort of outputs back to LAMS, these outputs can be used to create complex branches. For instance if the external tool is a Quiz tool, then mark of each student in the quiz will be able to determine if they follow a particular branch in the learning design. This opens the door to a whole new world of Adaptive Learning (ie: design learning path for different levels of skills or knowledge)
The content of the external tool can be exported and bundle within a LAMS exported sequence (a zipped file). This zipped file then can be imported into another LAMS server and if this LAMS server also has the Tool Adapter for the external tool, it can be reused with the exact same content as designed!
How do we do this?
Following the LAMS Architecture, here's a high level diagram of the functions of a Tool Adapter
In the blue box, you have LAMS and its core modules. These modules 'talk' to the Tool Adapter, which then communicates with the External tool. So the Tool Adapters are mere bridges in between LAMS and the external tool. The Tool Adapter talks to LAMS in its LAMS Tool Contract and then to the external tool in whatever protocol it requires.
Effectively, there are two parts in this:
- The LAMS Tool Adapter, which is the actual Tool Adapter (Java code)
- The Tool of the LMS we want to bring into LAMS (for examples see next section).
As of August 2008, we have now two tools we have added into LAMS: