Sakai Kernel Bundle

Architecture

Date: November 9, 2005
Version: 3

The Sakai Kernel Bundle was built to support various training activities that required a very minimal subset of Sakai, the kernel services in particular. As of Sakai 2.2, this has been replaced by the Sakai Training Environment. This new environment is significantly expanded from the SKB, but does allow a larger scope of training activities. As such, the SKB will be discontinue after release SKB-005. - mjn

1 Introduction

The Sakai Kernel Bundle (SKB) is a version of Sakai that collects all the essential parts into a single distribution set and excludes almost all tools and application services. The intent is to produce a minimal Sakai set to to provide an environment in which Sakai training and experiments can take place.

The Sakai Kernel Bundle in its current form is documented in SKB: Overview. Detailed developer manuals for currently available services are being written. Initial service requirements are being gathered into a draft document. The bundle is available as a zipped collection of Java software intended to run in a Tomcat container.

Version 1 of the SKB Architecture document describes the architecture "as it is." This version of the document describes the architecture "as it should be."

2 Framework vs. Kernel

In its current distribution, Sakai can be viewed as a collection of tools, integrated to a greater or lesser extent based on a very mixed set of services. Sakai tools currently use three different user interface presentation schemes (Servlet response, velocity-derived fragments, and JavaServer Faces). Sakai services include legacy CHEF services, legacy Sakai service (evolved CHEF services), new services, and proposed services. In theory, these services represent a design framework that drives implementation. In practice, it is an undocumented collection of Java code difficult to understand, hard to work with, changing at an unplanned and unpredictable pace.

The Sakai Kernel Bundle attempts to rationalize that process by reducing Sakai to its essentials and slowly add services that implement a cohesive framework design. To better understand this, we need to understand the difference between a framework and a Kernel. These definitions are made for the purpose of better understanding this system (the SKB). Use of these terms may differ for other projects and even the larger Sakai project.

2.1 The SKB Framework

For the purposes of this project, a framework is a system design based on a guiding architectural vision and project goals. Such a framework is intended to support the development of software that will enable the subsequent development of portable, flexible, and potentially distributed eLearning tools.

This diagram is a very simple architectural view that shows a design framework consisting of two collections of services: common and kernel. Kernel services provide support for component, tool, request, and session management - largely integrated into the host system (Tomcat for Java). The common services build on the kernel services and provide capabilities that are usually persistent, thus requiring some kind of storage, such as a database or file system.

The framework is the design vision. It guides the design and development of other services and educational tools.

2.2 The SKB Kernel

With the establishment of a design vision and suitable requirements, software can be written. The collection of software that implements the framework is called a kernel, because it serves to support the development and implementation of tools and web applications. Services are implemented as Application Programming Interfaces (APIs) and (in Sakai terminology) implementation components. APIs and components are combined with utility software and various resources (configuration files for the most part) to form the kernel.

This diagram shows the kernel and, by color-coding, roughly how it corresponds to the framework above. Note that tools may use the kernel services directly and do not need to access them through a common service.

3 SKB Architecture

The first versions of the Sakai Kernel Bundle were largely intended as an experiment to see if a set of minimal services could be extracted from the larger Sakai Enterprise Bundle to form the nucleus of a Kernel. This early version included an authentication service but lacked other essential services. If we add some of these services into the picture, it looks like this:

This illustration adds authorization, agent, and group services to the existing authentication service. These are the basic common services used by most Sakai application services and applications. To this might be added hierarchy and site.

4 Document History

This document is part of the Sakai Kernel Bundle. The SKB is an experimental collection of software derived from the Sakai Enterprise Bundle. It is not considered to be an official part of the Sakai Project at this time and should not be interpreted as specifying the future directions of Sakai.

Date

Version

Who

Changes

10/10/05

1

Mark Norton

Initial descriptions of framework and Kernel. Description of the SKB as of 0.0.3.

10/11/05

2

Mark Norton

Expanded the architecture to include services that should be included in the Kernel.

11/2/05

3

Mark Norton

Terminology changes.

11/8/05

4

Brigid Cassidy

Edits.

5/12/06

5

Mark Norton

Notes on transition.