One of the more radical departures that Sakai 3 makes from traditional LMS design is that everything in the system is treated as content. A traditional LMS is an aggregation of tools—discussion boards, grade books, test engines, wikis, assignment drop boxes, etc.—each of which has its own data model in a relational database. It’s really a hodgepodge of separately designed tools that are knitted together through a user interface layer and a few common services. In contrast, Sakai 3 is being built on top of the Apache Jackrabbit reference implementation of the Java Content Repository (JCR) standard. Everything is treated as content, including grades, test questions and answers, discussion threads, syllabi, personal profiles, chat messages, and so on.
This approach has some benefits in terms of shoring up common weaknesses in LMS designs. But, more profoundly, it also leads to some pretty fundamental changes in the way that learning environments can work, thanks in large part to the strong and growing adoption and maturation of useful content integration standards.
Let’s start with the more mundane improvements. There are several areas where, because of their design heritage, LMSs tend to be weak and Sakai 3 can be better:
- Search: Developers for traditional LMSs have a very hard job when it comes to designing effective search. They have to figure out how to index the data from all the different tools. They have to figure out how to scope the search to the appropriate context, e.g., am I searching just this discussion board, just this course, or everything in the LMS? They have to figure out who has permission to see what. It’s messy. As a result, most LMSs don’t do search particularly well. In contrast, Sakai 3 is being built from the ground up on top of a content repository, which was designed precisely to handle search use cases. Theoretically, search in Sakai 3 should be best-in-class.
- Tagging: In some ways, this is just an extension of the search problem. Developers in a traditional LMS architecture have a real challenge wiring tagging uniformly into a very non-uniform system. As a consequence, there are lots of places in a traditional LMS where tagging could be useful but doesn’t exist. Once again, with everything stored in a content repository, adding universal (and useful and consistent) tagging should be much easier in Sakai 3.
- Archiving: A third area where LMSs typically struggle is in mass course archiving, and once again for the same reason. It’s hard to figure out ways to archive “courses” efficiently when they consist of a bunch of loosely connected tools with a hodgepodge of data models. As a result, most LMS archiving tools are cludgy (and Sakai 2.x may actually be worst-in-class in this particular area). It’s hard to capture everything in the courses, and even when you do, the process usually isn’t very performant. A faculty member archiving a single course may be OK, but doing an entire semester’s worth of courses can be ugly. On the other hand, if everything in your LMS is stored in a content repository, then you can treat everything like…well…content. Archiving should be much easier, much more performant, and much more uniform.
Those are some of the useful but boring benefits that come from the “everything is content” architectural approach. But Sakai 3 isn’t just being built around the general idea of “everything is content.” It is specifically being built on Jackrabbit, the Apache project that is the reference implementation for the JCR standard. There are benefits here for both Sakai-internal design and integration with external systems. Regarding the Sakai-internal design, Sakai 3 is being built not only on Jackrabbit but also on Apache Sling, which sits on top of Jackrabbit and provides RESTful APIs for almost the entire JCR standard. This gives Sakai developers a very broad and deep toolset for doing HTML/Web 2-style development without requiring a lot of Java heavy lifting.
Jackrabbit also provides some interoperability benefits. Now, JCR itself has achieved some adoption success, but not at the level that one might have hoped. Most enterprise content management systems support only a subset of the spec, often read-only. Jackrabbit is the only implementation I know of that covers almost all of the JCR specifications. In the higher education world, Sakai 2.x, Moodle, and Xythos all support some subset of JCR. So there is some value here. But the greater value by far is that Jackrabbit, being an Apache project and the reference implementation for JCR, integrates with other projects that support more interesting content integration possibilities.
Basic Syndication and Publishing: Atom and Atom Publishing Protocol (APP)
Atom and APP are the foundation for almost everything that follows in the rest of this post. They are the fundamental building blocks, with the other standards being mostly just Atom and APP with some extensions added. Jackrabbit has been integrated with Apache Abdera, a set of tools for producing and consuming both Atom and APP. (More on this integration in a bit.) Let’s look at these in turn.
The idea of producing or consuming an Atom feed should be pretty familiar to most folks by now. The utility of being able to add a syndication feed to, say, a discussion board, an announcements tool, or even a gradebook, is fairly straightforward. As with the benefits I described above, Sakai 3 will benefit here from storing everything in a content repository, as well as from the fact that Atom integration would happen at a repository level. It should be relatively easy to add syndication feeds uniformly and universally to the LMS. Likewise, it should be straightforward to pull syndication feeds (say, from self-hosted student or faculty blogs) into the course environment. This is all very useful, but at this point in the adoption curve of syndication, it’s starting to feel a bit like the benefits I listed above, i.e., like it corrects a somewhat embarrassing design flaw rather than adding something new and exciting. One bit I would add that is often overlooked as a difference between Atom and RSS is that Atom can represent threading, so it’s possible to syndicate discussions in a more sophisticated way. This could have some implications for PLEs. (More on this in a bit as well.)
Atom Publishing is a bit more interesting. To start with, it’s one of the protocols that desktop (and now mobile) blogging clients use to publish content to a remote blog. Support of both consumption and production of APP could be beneficial in an LMS. On the consumption side, it certainly could be useful for tools similar to blogging clients to be available for offline authoring. We in the developed nations, with our near-ubiquitous connections, tend to forget that there are literally billions of people who need an education and whose online access is limited. APP isn’t the only way to support offline work, but it adds another arrow to the quiver. But the production side is even more interesting, in my opinion. Getting content into an LMS isn’t as hard these days as getting content out of it. I can imagine building an APP authoring interface into Sakai 3 that would enable students to publish any content item they have authored in the LMS context out to their own personal blogs, tagging and commenting on them in the process.
I’m not the only one who finds APP to be intriguing. A number of folks have been working on adding extensions to it (the Atom and APP standards specifically support extensions) to support a variety of publishing use cases.
GData
Some of those folks work at Google. Google’s extensions to APP are called GData, and quite a few of Google’s APIs are based on it. Apache Abdera supports GData, which means that Sakai 3 developers would have a leg up on programmatically integrating with Google’s tools. There are many interesting possibilities, many of which are already being cobbled into current-generation LMSs one at a time. Here are a few:
- Enable students to go out and comment on web pages using Google Sidewiki and aggregate those comments for further discussion within the course environment.
- Enable students across course sections to share book reviews using Google Book Search.
- Give users the ability to make Picasa their default storage location for images rather than the local LMS.
- Build data visualization applications that have Sakai-native and specialized user interfaces but use Google Spreadsheets on the back end.
LEAP2A
LEAP2A is an extension of APP out of JISC/CETIS for simple ePortfolio data exchange. For a long time, ePortfolio interoperability standards have suffered the same issues that content management standards hit, i.e., they were so ambitious in trying to cover all the use cases that they became very difficult to implement. (Hello, JCR.)Â LEAP2A scales back to the most common set of scenarios. So far, it has limited adoption, but the fact that Moodle and Mahara (Moodle’s sister ePortfolio project) are using it as their interchange format is very promising. With Sakai 3’s architecture, adding pervasive LEAP2A support should be significantly less difficult than it would be on current-generation architectures.
SWORD
SWORD is another JISC-funded extension of APP for academic purposes—this time for depositing content into curated archives. (Those Brits sure do love their APP.) If you’re using an LMS space to collaborate on a thesis or a journal article or a work of digital art or a scientific data set and intend to submit it to an official repository of some type, SWORD is the way to go. Fedora, DSpace, and EPrints all support taking SWORD deposits. As far as I know, Moodle is the only LMS to have a SWORD integration so far although, surprisingly enough, there is a SWORD Facebook app. The blog post at the end of that link lays out some ideas for what the author calls a “social deposit”, which provide some food for thought in the Sakai 3 context. If Sakai becomes the hub of one’s academic (network another theme of Sakai 3), then academic submissions are indeed activities that you would want to have associated with your profile. Once again, Sakai 3 developers will have a leg up in terms of adding pervasive SWORD support because of the architecture.
CMIS
In some ways, this could have the highest impact of the lot. CMIS is an emerging OASIS standard that has just caught fire. It is a programming language-neutral content interoperability standard. More lightweight than JCR, CMIS already has implementations on a wide range of platforms, including Drupal, Joomla!, Alfresco, eXo, Liferay, Sharepoint, and Filenet, with other big content management vendors (e.g., Oracle and EMC) participating in the working group as well. There are also desktop and mobile CMIS browser clients. This is an enormous amount of activity for such a young standard.
One of the more high-profile open source CMIS implementations is Apache Chemistry which (you guessed it) integrates with Apache Jackrabbit. CMIS has both APP-based and SOAP-based APIs. Chemistry supports both, and uses Apache Abdera for their APP-based integration. (Hence, the Abdera/Jackrabbit integration.) With CMIS support, Sakai 3 could easily allow users to publish content into it from various content repositories (or their desktops or their phones) and, equally importantly, publish content out of it to a variety of systems, including lightweight open source systems that they could run themselves.
The Implications
I don’t want to pretend that all of these benefits will just automagically appear in Sakai 3. There will be work involved. It’s just that the amount of work involved is small enough to make it practically possible, thanks to the design choices in the Sakai 3 architecture. Assuming that the work does get done, there’s something here to please edupunks and university CIOs alike. On the edupunk side, the LMS suddenly becomes highly permeable. I have never believed that RSS is sufficiently rich to support widely adoptable and broadly useful PLEs. But I certainly believe that this range of APP-based protocols is rich enough while still remaining lightweight enough that individual innovators can play. And if you start with an LMS architecture in which everything in the system is content, you’re much less likely to end up with corners of your garden that are still walled off, not so much by choices as by default, since getting at the data is too hard. The LMS becomes just one place among many for educational content to be created, organized, and shared. It coexists peacefully.
CIOs are also likely to find a lot to please them too. Right now, colleges are awash in content management point solutions. If you think about LMSs, ePortfolios, digital archives, learning object repositories, collaboration software (e.g., Drupal and WordPressMU) and so on, there is just a ton of content that’s in these little siloes that is hard to manage, back up, archive, and generally support. But if most of these applications begin to support content integration standards, it becomes possible to have a sane university-wide system for handling all this data and reduce the load that it puts on many, many different systems. In some cases, you can centralize, storing canonical copies in an enterprise content repository and letting other systems access it transparently. In other cases, you can simply move the content around when that’s useful through syndication and archiving. The point solutions don’t go away, but the infrastructure for supporting them becomes more unified and therefore more manageable and cost-effective.
Bowling scores will go way up; miniature golf scores will go way down.
Philip Hutchison says
Nice post. The content repository model you describe sounds good, but what I keep hearing is that people want to free their content from LMSs. They want to be able to use the cloud, pulling in content from around the world and not having a central repository. In these cases, it sounds like they’d prefer something closer to Google Reader than an LMS… a tool that can aggregate content from various external sources and keep track of what they’ve viewed.
Michael Feldstein says
Tools exist to do that today, Philip. It’s my sense that the EduGlu approach, while useful to some, is not adequate to meet the needs of the majority of teachers. The Sakai 3 approach lets people store as much content in the cloud as they want while still enabling them to have as much LMS as they want—and no more. If they can surface external content in Sakai via Atom or other protocols (effectively using the platform like Google Reader), migrate content into Sakai, and migrate content out of Sakai at will, in what sense is their content not “free” from the LMS?
Philip Hutchison says
I understand your point, I’m just thinking out loud. This new Sakai model sounds very intriguing, thanks for the post.
Jeff Longland says
Michael – this is a compelling and nuanced account of why the Sakai architecture is going to enable so many institutions to move beyond the limiting walls of the traditional LMS. Kudos!
charlie says
I was excited to hear about Sakai 3’s new architecture because I’ve been a Drupal user for years (I use it both for website development and for my teaching) and have been looking for a LMS with a comparable design. Drupal data architecture is built around the premise of making all content a “node” and then applying genre characteristics to the node for the specific use and content type (Note: there are a couple of minor exceptions: user profiles and comments are not node types). This architecture and the capability it offered was what originally drew me to Drupal, and it has allowed Drupal do some really interesting things as a CMS (see views and CCK, for example); Sakai developers might get some good ideas from from examining how Drupal has developed as a result of that architecture, both in implementation and the discussions on the Drupal developer list over the years.
Remo says
Will you ever stop blogging about Sakai? Your posts used to be interesting and diverse before you became a Sakai board member… There are many (open source) LMS’s out there to blog about and there are many more topics than LMS when writing about elearning. Are you a Sakai evangelist now?
Michael Feldstein says
Remo, I’m trying to make the Sakai project and community more transparent, especially to people who are not involved in them. If I knew as much about other open source LMSs as I know about Sakai, I would probably write more about them.
As for LMSs as a topic, that has been the mainstay of my blogging for quite a while. If you look at the ten most popular posts (which you can see on the sidebar), every single one of them is about LMSs. Again, I write what I know about and what I’m interested in.
What would you like to see me write more about?
Remo says
I am sorry for not replying earlier, busy week 🙂
I enjoyed your blog very much because I learned a lot of new things that I could also benefit from. You wrote about new tools or about usability and I discovered new ideas or concepts. I also learned about the US Higher Education market, it was interesting to read your comments about the Blackboard-Desire2Learn patent fight etc. But now since you are in the Sakai Board and start writing so much about Sakai it becomes boring at least for me because I am not interested in Sakai. Here in Europe you could also find many interesting LMS to write about: Claroline, Ilias, OLAT, Dokeos, you name it… And for example OLAT is also a Java based LMS very similar to Sakai but far more mature and has used the “everything is content” approach since I would say version 1 released 10 years ago (maybe also later, dont exactly know the exact version…). Another interesting movement is that the open source CMS’s like Drupal start expanding their functionality to become partly an LMS. So there is a lot going on and I find it less and less interesting to keep on reading only about Sakai when I am missing the “big picture”.
I try to follow maybe 20 blogs on a regular basis and this takes a lot of time so I try to select the ones that are most rewarding for me and lately I found that your blog has become too time consuming and too little rewarding for me thats why I wrote the comment. But I am not speaking for everyone of course, maybe you get new blog readers with writing more about Sakai and thats fine. Everything is flowing 🙂 When changing you might loose old blog readers but gain new readers so keep up the good work. I tried once to write blogs myself but soon gave up because its much too time-consuming. So I respect the time you spend and work you for sharing interesting stuff with the community!
Michael Feldstein says
Thanks for the feedback, Remo.
I tend to write about what I am immersed in professionally at any given moment. Right now, I am immersed in Sakai. I’m aware of LMSs like Olat, Claroline, etc., but I don’t have much contact with them on a day-to-day basis and don’t have the time I would like to do pure research for the sake of the blog.
I don’t expect my posts to be quite so Sakai-centric for the long haul. I will be writing about it more than previous because I’m more involved in it now, but probably not at the current level. So I’d ask you to be patient with me and give me a couple of months while I get some of this out of my system and try to accomplish a few specific goals for the Sakai community. In the meantime, I’m hoping that some of what I write about here, while Sakai-specific, may have value to people thinking about designing other LMSs or working on other open source projects.
Also, one way that I am trying to address the content diversity question is by having some guest bloggers who I know and respect write about areas that they are passionate about and that I don’t know that much about. I have a couple of potential guest bloggers that I’m working with.
I hope you will stay tuned.
MikeCondon says
Michael,
When ‘Everything is Content’, what’s the role of relational database(s) or RDBMS in terms of the LMS – say, vis-a-vis ‘NoSQL’ cloud database strategies?
For the Enterprise (32 colleges and universities) LMS/CMS we run, the database represents our biggest pain point in terms of investments in hardware and performance tuning. Does Sakai, JackRabbit, or ____, account for NoSQL? Seems another, or different, skill set for hosting services might be on the horizon for C/L/I/MS adminstrators? Or … say assuming an LMS were looking forward to supporting cloud hosted, highly scalable NoSQL, a new skill set for IT managers responsible for oversight of LMSes?
Just wonderin’. THnaks,
-mike
Michael Feldstein says
I’m not an expert here (maybe one will chime in), but my understanding is that Jackrabbit has a pluggable persistence manager, and as far as I know there is no reason why the JCR model can’t be implemented on top of NoSQL. In fact, I seem to recall Ian Boston (who *is* an expert) talking about various NoSQL options for the long term. The key is the abstraction, though. As long as everything is on top of JCR, then your admins shouldn’t care when you swap storage layers underneath.
Ian Boston says
We chose a content based model (node hierarchy) since it frees us from schema. We chose JCR because it allows us to impose a schema where when we want to as well as giving us a bunch of higher level features ontop of a key value store. Underneath, Jackrabbit (our choice of JCR) nodes and properties are just stored as bundles of key value pairs.
Although the default persistence managers in Jackrabbit are RDBMS based, these are just dumb persistence managers streaming writes out of a shared multithreaded cache on each app server. Unlike traditional setups where there is significant query traffic and a lot of complex queries with this setup you see almost only write traffic at about 10% the volume hitting the DB.
Although that makes the whole thing easier to re-configure and scale sideways it doesn’t help remove a complex single point of failure. Long term the intention is to use an Apache Cassandra persistence manager behind Jackrabbit, so that the storage becomes a Column DB, where potentially every app server node could use its local disk to be part of a cloud. Then we have the ability to scale up or down on demand, adding app server nodes depending on storage and load requirements. We have some way to go here since JCR is closer to a transactional model than the typical eventual consistency model of a raw column DB so we have already implemented a distributed transaction log, unbound from a single point of failure, to allow the persistence manager inside app server nodes to know where the consistent version of a key value bundle really is, without having to rely on Cassandra’s data centre quorum. The hard part with this is not constraining the eventual consistency too far and throttling parallel scale-up.
So the short answer to is Sakai 3 and Sakai Nakamura being built with no-sql and the scalable cloud in mind? emphatically yes. Does it require investment in cloud infrastructure for an OOTB experience ? no by default it comes configured for RDBMS persistence.
Sage says
Wow, this was a really informative read; thanks! I just started learning about Sakai, having used primarily Moodle and (ugh) Blackboard/WebCT for most of my instructional design career. Moodle is, as you probably know, also coming out with a new release soon – Moodle 2.0; it’s expected to be able to interface quite nicely with a whole range of external services including Flickr, which seems more robust than Picasa.
I know this was just ONE of your many points, and was an example of how Sakai 3 can interface easily with Google Apps, but I’m curious to know if Sakai can interface well with Flickr and other web 2.0 services; you did mention its interoperable (at least in theory) with external services.
Thanks again for the informative read!