Monthly Archives: September 2020

Enabling a Just Education and Educational Technology Future

Enabling a Just Education and Educational Technology Future
PI: Dr. Charles R. Severance, University of Michigan School of Information
Unsolicited Funding Proposal – 2020-09

The Andrew W. Mellon Foundation support for the $2.4 million dollar Sakai Project to the University of Michigan and others in 2004, is probably the most impactful philanthropic investment in educational technology of all time.  The Sakai Project set out to solve the problems of software interoperability and data portability by developing an open source Learning Management system that would implement and demonstrate best practices to the educational technology industry.

In 2004 and 2005, by leveraging its Andrew W. Mellon Foundation support, Sakai quickly delivered on all three of its core goals.  We released four versions of Sakai (1.0, 1.5, 2.0, and 2.1). In late 2004, Sakai worked with IMS to form the IMS Tools Interoperability working group and in mid-2005, Sakai worked with IMS to form the IMS Common Cartridge Working Group.

Fifteen years later, these efforts have matured into an LMS market place committed to standards and interoperability.  When the latest version of IMS Learning Tools Interoperability (LTI Advantage) was released in 2019, five leading LMS vendors (Sakai, Moodle,  D2L,  Blackboard, and Canvas) announced support for the standard on the same day.

While the software interoperability efforts created by Sakai are a great success, there are larger concerns in the LMS and educational technology market that must be addressed to assure fair,  safe, and just access to education – particularly students in at-risk populations and for students outside the US/Europe:

  • At this point, 60% of the LMS marketplace is using proprietary cloud-only solutions owned by private-equity companies.  While these solutions are convenient for higher education, handing sensitive and private student activity data to these third parties who treat it as an asset is a concerning trend.
  • The lack of an open-source and standards-based learning object repository (LOR) continues to leave high quality material stuck in LMS systems.  When we reduce barriers to content reuse, we can broaden access to education regardless of geography or economic situation.
  • The lack of a MOOC platform that is interoperable, easy-to-use, and based on standards restricts MOOC-like approaches to the privileged, wealthy and proprietary.  None of the current MOOC platforms participate in educational technology standards activities.

The Sakai, Tsugi, and Apereo open source efforts will be able to achieve these goals with a reasonable level of investment.  Sakai is a mature LMS with some of the highest satisfaction ratings in the market, Tsugi is a simple, standards based learning object repository (LOR) and Massively Open Online Course (MOOC) hosting platform.  Tsugi has many technical aspects of LOR and LMS integration solved but so far has not had enough UI/UX investment to be used directly by a non-technical teacher.

Our open-source efforts are already working on these goals as fast as we can.  This proposal seeks funds to greatly accelerate efforts to (1) maximum protection of private student activity data, (2) standards and open source infrastructure to support reusable learning content, and (3) a MOOC platform that makes the creation and teaching of free and open educational experiences available to every teacher and student in the world.  It is a bold vision and we are well positioned to achieve these goals with sufficient resources.

Note: I wrote this as a response to an RFI with a goal of ensuring a Just Educational Future from an unnamed funding agency.  The RFI turned out to be aimed at an audience that did not include me so I  made it a blog post.  If any funding agency is interested in funding the work – let me know.  I am looking for about $5M over a three years period.

Infrastructure – Spring / Hibernate / Ignite for Sakai-21

For those who have been around a long time – or those who read my book about the founding of Sakai, you know how strongly I feel about addressing technical debt in a project like Sakai.

Sakai-21 is coming out in a quicker time scale than usual so we can target a release by the end of the year. This has meant that some things like the all new Lessons got pushed to Sakai-22 – even though Dave Bauer gave us a nice facelift of the existing Lessons at the last minute.

But even in that short time scale some really amazing work has been done on technical debt inside the Sakai code base. Java is still a great choice for web applications – and Java just keeps improving – but we need to keep up to build better features using the latest that Java has to offer.

There are two major things in Sakai-21 that no user will ever see – but are critical to us from an infrastructure perspective:

– Spring and Hibernate have been upgraded to the latest versions – this is the first time we have not been running a “back-level” version of these libraries. It is a lot of work to upgrade these libraries and when it is all done – you just see the exact same Sakai UI as before. But they are essential to give us a strong platform to build upon.

– The cluster coordination has been replaced with Apache Ignite – which is a Redis-like product that does not require a separate server. When a school moves from one to many app servers, somehow these servers need to coordinate things through distributed “caches” – Hibernate uses these caches and things like the authorization service (who can do what to which object?) uses caching as well for performance. Back in 2005 we used the database as a distributed cache – which severely limited our ability to scale. Ignite is fast, efficient, open source and does not require any additional server deployment. (We do need to get it to quiet down in the logs a bit :) ).

Both of these things are very challenging technical efforts that take effort away from things that users see. But these investments are essential to keep our product performing well, based on supported libraries, and make new developments much easier.

As an example, I am adding a cluster-wide cache for the keys used to generate and check OAuth tokens for the LTI Advantage API (SAK-44195) for Sakai-21. This is essential (a) for performance, and (b) so that API calls can be spread across a Sakai cluster for larger schools.

Because of the amazing Ignite work that Earle has done, the following is how you create and use a cluster-wide cache in Sakai:

Ignite ignite = (Ignite) ComponentManager.get(“org.sakaiproject.ignite.SakaiIgnite”);
IgniteCache<String, String> igniteCache = ignite.getOrCreateCache(“blisCache”);

System.out.println(“get=”+igniteCache.get(“42”));
igniteCache.put(“42”, “HHGTG”);

Literally in two lines of Java I create or connect to a scalable distributed key value store in Sakai that just works. This is the magic of what Earle has done in his Ignite project. Take something very complex inside of our code base and reduce it to two lines of code.

Adding this new infrastructure will allow us to remove a lot of cruft from the Sakai code base over the years and really improve the performance and scalability of Sakai going forward and gets us one step closer to our goals for the Sakai infrastructure.

So thanks to Earle and others who built and tested these great contributions to Sakai-21.