Diederik Beker week 2 assignment - matthijsbos/swe2013team5 GitHub Wiki
Hidde Hensel (6379176) & Diederik Beker (10190848) - Monday Assignment 2
Sakai Architecture Sakai’s architecture is built with the concept of an application, environment or proposed framework. It is built in such a way as to make sure it is able to aggregate different types of applications to create a single user experience while separating the application and presentation logic. A big part of the Sakai architecture is modularity, thus being able to provide an environment which allows tools and services to be migrated and re-used between other Sakai environments and perhaps non-Sakai environments like blackboard. It can capture educational, application, common, and system capabilities into re-usable services which can be migrated in Sakai and non-Sakai environments. And it is able to create an environment which allows tools and services to be adapted to local system requirements [1]. In the diagram on the right you can see the architecture in schematic form [1]. Sakai Developers Sakai is an open source project meaning that everyone that wants to contribute, can. This means that there are not a handful of developers that are responsible for building Sakai. Still you can name a few groups of people that have meant a great deal to the project. • Sakai Fellows share outstanding contributions • The CLE Technical Coordination Committee ensures a timely, quality release • The CLE Maintenance Team addresses issues after release • The Sakie OAE Steering Group oversees the managed development project The names of the people belonging to each category can be found at [2]. Modular Design Sakai As indicated above, modularity is a big part of the Sakai Architecture. This modular design makes it a lot easier for multiple developers to program simultaneously, as they may work on different parts of the Sakai Architecture at the same time. However, to implement new features, the developers have to work on multiple sections of Sakai, thus decreasing modularity. Modular Design Eclipse Eclipse is designed as a modular platform, with the ability to install and use plug-ins to extend the core functionality [3]. This plug-in structure is based on the OSGi framework. More information about the OSGi framework can be found at [4]. Differences between the modular design of Sakai and Eclipse While both Sakai and Eclipse are designed to have a high level of modularity, the designs are unalike. To create new functions in Eclipse, one must simply write and add a new plug-in. For a new feature in Sakai, developers must program in one or several parts of the Sakai Architecture. This makes adding a feature in Eclipse relatively easier, for adding just a plug-in (Eclipse) is easier than adding code and refactoring in different sections (Sakai). References [1] https://confluence.sakaiproject.org/display/DOC/Abstract+Architecture [2] http://www.sakaiproject.org/contribute [3] http://www.eclipse.org/resources/resource.php?id=383 [4] http://en.wikipedia.org/wiki/OSGi