4 de julio de 2007

Moodle, NWiki and OKI (part 1)

Finally, I decided to write down some of my thought on Moodle, NWiki and the Open Knowledge Initiative. Perharps I've taken a risky decision publishing this post in english, but I'm sure you all will understand my potential mistakes.

The structure of this series of posts will be the following:
1.- What is OKI and what it is for? (this post)
2.- Module - Moodle Core connection architecture
3.- Semantics adaptation or "what is an Agent"?
4.- Integrating the NWiki and Moodle through the OSID way.
5.- OKI guide to moodle developers

Let's start :)

What is OKI?
The Open Knowledge Initiative is an iniciative born in the Information Systems & Technology dept. of the Massachussetts Institute of Technology. Its aim is to provide architectural solutions to interconnect different e-Learning platforms.

To achieve this goal, the OKI team provide full specifications of the so called OSIDs - Open Service Interface Definitions. Those definitions are software contracts between a consumer and a provider that allow them to communicate through multiple method callings. In terms of software engineering, an OSID is just the application of the proxy/adapter pattern.

Is there any profit that my organization will take from using OSIDs?
Well... I know you have asked this question to many architects before and I also know all their answers. I just can say that you will take a great benefit in the exact moment that you decide to change any of your systems.

Is there a list of the OSIDs?
Sure! You can find it at the official OKI project website. But you do not neee to develop all of them. Make sure you have understood the semantics of each OSID and you will be ready then to decide whether you need or you do not need every one of them. Be careful: OSID integration can be much more difficult that ir seems!

Think in terms of education: if you a developing any application involving users (students, teachers), passwords, resources and activities and you want to track what your students are viewing or whether they are taking part in decisions or not, your e-lerning tool will need, at least:

- Authentication (checks if a user has loged into the system)
- Authorization (checks if a user can do what he/she is trying to do)
- Logging (keeps the tracking of what each user is doing)

and many others, depending on what you are planning to do on your own software.


What methods must I develop?
If you take a look at the OSID v3 specification (draft!) you will find there are a lot of methods to develop. If you reach this point, it is supposed that you have chosen what OSIDs. A first solution is to develop all of the methods of the OSID, but perharps your software does not need all of them. Just select the methods that you tools need at a first stage. As I said before, integrating any tool in the Open Knowledge Initiative can become a complex project, so it will be better to develop it in a iterative way. You can leave without implementation the methods you don't need. You can develop them in a close future.