[Building Sakai] about sakai's architecture

Mark Norton markjnorton at earthlink.net
Thu May 21 06:43:51 PDT 2009


 From a high level (architectural view), Sakai provides two basic things 
that support course management, online learning, and collaboration:

1.  A rich collection of framework services.
2.  A portal that presents "worksites" to a user.

A worksite is a collection of pages (these appear as tabs down the left 
side of the Sakai UI).  Each page may have one or more Sakai "tools" on 
it.  Usually one.  A tool is a web application that conforms to certain 
Sakai conventions.  Most of these are described in the document you 
mention, though you should also have a look at some of the other 
documents as well.

The Sakai 2.x portal (called Charon), controls access to worksites, 
pages, and data via the Security and AuthZGroup services.  Part of the 
authz work (and this is a simplification) is a way to reference 
"entities".  I suspect these references are what you refer to as "nodes" 
in your message.  Entities area  way of looking at "things" in an 
abstract way that ensure that they will all have an identifier, a name, 
etc.  Generally, these entities are system data, but it's a mistake to 
assume that they are all stored in a database.  The entity manager makes 
no assumptions about how data is persisted, if it is at all.

Data management in Sakai is provided by a "service".  Generally, there 
are two main groups of services:  framework and application.  Framework 
services include User, Tool, etc.  Application services include 
announcements, gradebook, content hosting, etc.  Exactly how data is 
managed is part of the application design.  Access to data managed by an 
application is done by publishing an API.  This is how applications are 
integrated in Sakai.

As for code, just poke around any Sakai application.  The announcement 
tool is a good choice, for most things.  If you look at several, you'll 
see similarities and differences.  One big difference is that different 
presentation technologies are used.  The three main ones are Velocity, 
JSF, and RSF.  This has some impact on how application files are set up, 
etc.  Hibernate is commonly used to persist data, but some applications 
manage data directly via JDBC.

- Mark Norton

Small Cat wrote:
> I have been read file " sakai_structure " in sakai-src-2.5.4\reference\
> docs\architecture , and I have some problems I don't understand. I 
> hope you can explain it to me ^^
> - in sakai, we have one structure, or many structures ( each tool is 
> one structure / each site is one structure ? ) ???
> - what node is root node of an sakai application
> - each node is an data entity as announcement,gradebook... right or 
> wrong ?
>
> and where I can download some sample code ( without tasklisttool in 
> Programmer's cafe ) for sakai 2.5.4 (and  I want a sample code which 
> can show me " sakai structure " in the above document )
> Thank you & have a good day !!!
> ( I'm sorry if my English is not good >"< )
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"



More information about the sakai-dev mailing list