Blackboard, xpLor, and Sakai – Oh My!

It has been four months since I started working as a consultant for Blackboard in the role of Chief Sakai Strategist. With the annual Sakai Conference a month ago in Atlanta and Blackboard DevCon and BbWorld this past week in New Orleans, it seemed like a good time to give an update on things.

Cross-Platform Learning Object Repository – xpLor

Now that xpLor has been announced, I can further clarify why I joined Blackboard back in March. Back then I knew what you all now know. Blackboard (through MoodleRooms) is building a cross-platform Learning Object Repository that is planned to be deeply integrated into Learn, ANGEL, Moodle, Joule, and Sakai. For years, in my role as IMS LTI evangelist, I have been hoping and encouraging anyone to build a real LOR that made proper use of IMS Common Cartridge and IMS Learning Tools Interoperability.

Blackboard xpLor running the in the Sakai CLE

It turns out that for the past two years, Dave Mills (founder of ANGEL Learning) has been quietly working on just such a product in his (then) role as the Chief Technology Officer at MoodleRooms. Dave had quietly re-assembled a number of the brilliant ex-ANGEL development team (Kellan, Mike, Scriby, etc) back together at MoodleRooms and when Blackboard acquired MoodleRooms everyone has stayed, and we are having a great time working together. I love it because I get to go to Indianapolis every few weeks and work with that team. It is just a 4-hour drive from my home so it is easy to get to Indy. When technical folks are having fun working together on fun stuff – it bodes really well for the future of any company.

The xpLor system uses real cloud technologies like Node.js, MongoDb, and elastic search. These are fun technologies to work with for a guy who has been deep in in the trenches of Java, multiple SQL variants, and Spring for the past 10 years.

As a quick history aside, many know me as “Dr. LTI” – but what is less well-known is that the original Common Cartridge evangelist before Jeff Kahn was none other than David Mills himself. Back in 2005-2006, Dave Mills was at ANGEL and used his leadership position to spearhead both the technical designs of IMS CC as well as make sure that it was rapidly implemented in ANGEL as the first implementation in a major LMS. Dave/ANGEL shipped IMS Common Cartridge import and export *before* the standard was complete. Here is a video from the Learning Impact in 2006:

Another history tidbit is that Ray Henderson is one of the initial inspirations for IMS Common Cartridge when he was at Pearson (before ANGEL and before Blackboard). Ray was at the (then secret) meeting in early 2005 where the words “Common Cartridge” were first uttered and Ray Henderson was the person who formally proposed the idea of a Common Cartridge specification in Summer 2005 at the Alt-I-Lab conference in Sheffield England. What is cool about all of this is that all of us have been working together for the past 8 years *regardless* of what company we have worked for. Our personal passion for standards and interoperability stays us with through any job change. And now we are all together at Blackboard. End of history aside – you get the picture that this has been brewing for a while.

The xpLor system is the exact system that I would have designed if I had the time to do it. It uses IMS CC and IMS LTI as its foundational architectural construct and everything is built around the fact that the LOR will interoperate and supplement LMS systems. It is the first LOR that will not try to replace LMS systems, but instead augment all LMS systems regardless of the vendor of those LMS systems through the use of standards to make the integration. In a sense it makes LMS-specific Learning Object Repositories pretty much obsolete. Dave Mills built the ANGEL Learning Object Repository (which is a fine product – but not cross platform) so he knows first hand (a) the right features to put into a LOR, (b) the features *not* to put into a LOR, and (c) the limitations of a single-vendor LOR in the marketplace.

If you saw Michael Chasen’s keynote at BbWorld – you saw a 10 minute demonstration of xpLor connected to Learn and then a single screen with a few clicks showing xpLor integrated into ANGEL, Joule, and Sakai.

BBWorld Day3 (21 of 72)BBWorld Day3 (23 of 72)

If you came to the in-depth session hosted by Brent Mundy and David Mills later, you saw the longer demo done in ANGEL. For those of you well-versed in demo-ology, you would immediately assume that it meant that the ANGEL, Moodle, Joule, and Sakai integrations were fake or hand-constructed. That is absolutely not the case. Before BbWorld we had full and deep implementations of the xpLor integration API in all five platforms (Learn, Sakai, Moodle, Joule, and ANGEL) – the 10 minute demo could have been done with *every one* of those five LMS systems and it would have been as smooth as the Learn demo. I will be showing the Sakai implementation to folks at IMS, Michigan, Columbia, NYU, Rutgers, and others as quick as I can. I am not going to make a screen recording because it is not a final product and I still have a few things I need to tweak in Sakai and in the integration API before the product is finished – so I want don’t want things locked down too early. In terms of full disclosure, none of the integration code is in the core codebases of Sakai, ANGEL, Learn, Moodle, or Joule – as we need to do a little more work before we start the process of putting the code into those core code-bases.

But I repeat that what you saw of the demonstration of xpLor and Sakai, Moodle, Joule, ANGEL, and Learn was real, rich, working code that was working solidly and continues to work as we evolve the code bases towards Beta.

Oh yes and grades are already flowing back to the LMS through LTI 1.1 – the way I did it in Lessons is that I just made it auto-create GradeBook columns when grades started to flow. I made the instructor UI as simple as possible – I did the nomal things and made it as simple as possible. by the way – grades flow back to all of the LMS’s that are integrated with xpLor though LTI 1.1.

I could not be more excited than I am about xpLor and in a way I have spent more time since March working with xpLor than I have with Sakai because I wanted to make sure Sakai was an equal part of the xpLor roll-out this week. Now that BbWorld is done, I can get back to Sakai.

Sakai Presence on the BbWorld 2012 Trade Show Floor

I have been part of my first ever “Sakai” booth! I had a booth. I did demonstrations of xpLor and Sakai at the booth. I used the little badge scanner. I had a special Blackboard Open Source Services t-Shirt. I felt all grown up! We had a combined open source booth with Sakai, MoodleRooms, and NetSpot. It was so cool and in particular because I am getting to be really good friends with all the MoodleRooms folks and got to meet all the NetSpot folks. Phil, Lou, Martin, and Tom from MoodleRooms are the best mentors I could ever have. In a way, if you think about it, what I will hope to build would be something like “SakaiRooms” where we host Sakai in Blackboard’s hosting facilities around the world. I have no idea how long it will take to roll out such a service or if/when I will start working on it, but I will say that my focus in my role at Blackboard is to invest Blackboard resources in Sakai 2.9 and beyond to improve the overall quality of Sakai as my top priority.

But while I work on and invest Blackboard resources in Sakai 2.9, I am getting so much help and mentoring from all the folks at MoodleRooms. MoodleRooms has done a really nice job of how they deploy Moodle as a cloud service. It takes some pretty dang clever tricks to make a shared multi-tenant app server work. I don’t think that I will be able to pull off multi-tenant app servers for hosted Sakai, but I am learning all the tips and tricks that make MoodleRooms scalable and manageable and I can use many of the same techniques in my design of a hosted Sakai service that will greatly streamline management and deployment. Luckily since Learn is a Java application with similar limitations to Sakai, Blackboard’s hosting facilities are well-prepared to handle Java applications. By the time MoodleRooms is integrated, the hosting folks will have a really broadened skill set and bringing Sakai into the shared centers should be pretty smooth.

What is freakishly cool is the camaraderie between the folks working on Learn, ANGEL, Sakai, Moodle, Joule, and Engage (formerly edline). You would think that there would be some kind of edge or competition with six LMS systems in the same company. But that is not the case since there is only limited market overlap for the products. It might be a little confusing for sales people – but it absolutely *not* confusing for technical people – we all are having so much fun seeing different parts of the market. For me in Sakai, we had such a hard time penetrating the K12 market. If I work closely with the Engage folks – I can get features that I think are important into 20,000 K-12 customers through a simple upgrade. I cannot tell you how exciting this is for me as someone who wants to build technology that changes how we teach and learn.

Plans for Sakai CLE and OAE

The integration that I built for the Sakai CLE is basically an integration into Sakai 2.9’s Lessons (the software formerly known as LessonBuilder). Lessons is our place for hierarchical content, Common Cartridge Import, selective release and all the gooey goodness that defines content within an LMS. And now it has xpLor integration as well. Prior to BbWorld, I could not work with Chuck Hedrick and Eric Jeney of Rutgers on the implementation / Lessons integration. Now I can sit down with them in the next few weeks and get things nicely integrated into Lessons working with Eric and Chuck.

I don’t want to release the integration code yet because I still want to change the APIs a bit but once things are locked down, I will simply check the code into the trunk of LTI. The API code is only about 350 lines of additions to:


The patches are not yet in that code – but once things settle down – they will be. I doubt it will make it into Sakai 2.9.0 – perhaps 2.9.1. But since the patches are so localized they could easily go back to 2.8 or 2.9.0 for Beta use when I get the done. By the time all of the things I want to change are completed, it will likely touch a few more files and perhaps a bit of work in Lessons.

The xpLor folks are working up a Beta program and I am hoping to get at least five Sakai schools into the very first Beta and then as the Beta expands, perhaps make it available to more schools with a membership in the Sakai foundation. When you are making a real cloud service it needs be carefully tuned for scalability. No promises here – just telling you what I am hoping for. I will let folks know as this progresses.

While I am totally excited about the relationship between xpLor and the Sakai CLE, I am even more excited about how the xpLor can work with Sakai OAE. Throughout the OAE project there has been this tension between whether OAE should follow the path of being a “new” LMS and rewrite everything that is in Sakai CLE or should OAE focus on new ways of thinking about collaboration across teaching and research in education. The “hybrid mode” has been the compromise to broaden the scope of the OAE to get it feature-rich enough for production without requiring a full-on re-build of the traditional LMS functionality present in the CLE. But there is a bit of an impedance mis-match between the CLE and OAE in hybrid mode as each is architected to be the “top level organizer” of the entire experience.

The combination of OAE+xpLor will not suffer from this impedance mis-match. The xpLor system was designed from its core to *not* be the top-level organizer of the user experience. the xpLor system was designed to support *whatever* organizing principle that a particular LMS has produced. Lessons in CLE is one approach to organizing, activities in Moodle is another approach, while Content in Learn is another approach. OAE is still another approach to organization, workflow, authorization, navigation, etc. The xpLor design is intended to work with all of these approaches and fit in gently to all of them.

I don’t think that the xpLor will replace hybrid mode as the functionality in xpLor is simple, pretty and generic – almost Google-like in its UI designs. The xpLor approach is to stay simple and generic (like Google) and as such needs to work with more complex tools like Message Center or Samigo in Sakai CLE. Sometimes you want things that are simple and can be thrown around like widgets and other times you need something larger with more precise use cases. OAE+xpLor+hybrid will be a very nice combination.

As I have time, I will meet with some of the OAE stakeholders to give some in-depth demonstrations and begin the discussion. I would hope to have an OAE school in the first round of Beta testers. If I have time (sheesh), I may even start to develop a more rich integration of xpLor into OAE or I may find someone in the OAE world that can help me do it. Any work would have to be under NDA for a while until things with the API are more solid and officially released – but the code would eventually be open source and part of the core OAE code base. For me OAE is a lower priority than CLE 2.9 – but I am excited enough about xpLor that I would pull this up in the priority – at least to get the OAE conversation and thinking started.


It has been a *heck* of a four months. I am so glad that I can talk openly about xpLor. I have been hinting to all my friends in the Sakai community about “good things to come” and now I can talk about it and do demos and be more open – which is my nature. I feed off openness and I feed off sharing and learning from that sharing.

The culture at Blackboard is great. I am getting so much support from my friends at Learn, Engage, MoodleRooms, and the shared services teams. There is absolutely no resistance to standards and interoperability. I just don’t have enough hours in the day to work on all the fun things and move the cause of flexible choices in teaching and learning forward. I may need to be getting some help soon in order for me not to be the weakest link.

Oh yeah, and if you think this is all pretty exciting, remember that this is *just* the beginning. It is just the beginning. It is just the first four months. Hang on – this will be a fun ride.