Jan Danils

Jöran Stark

Revision History
Revision 1.121 Oct 2003
The build process is documented
Revision 1.019 Sep 2003
The first release.
Revision 0.526 Aug 2003
First draft for review.

Abstract

SCAM is an open-source content archive management system, developed under the supervision of the KMR group, in cooperation with the Swedish Agency for School Improvement (Myndigheten för Skolutveckling) and Uppsala Learning Lab. It can be used as a web-based portfolio system or as an interoperable content archive.

High emphasize on portability and flexibility has been made, which in turn relies on standardization of both design and implementation. Efforts on this subject have been one of main challenges during the development. Standards involve metadata vocabularies, content packaging, authentication of users and access control, system interfaces, etc.

SCAM is entirely implemented in Java using the J2EE architecture as its backbone and use RDF as the metadata representation format. Standards include for example Dublin Core and IEEE LOM for metadata, and IMS Content Packaging for structural information.


Table of Contents

I. Background
II. HOWTO
1. Build
Introduction
Overview
Process
Scenarios
Single application
Multiple applications, each with separate repository
Multiple applications, sharing a repository
Remote client application
SCAM Repository server
2. Configure
3. Deploy
4. Access your web-application
5. Access the Repository with RMI
6. Import/Export data
7. Backup/Restore data
8. User management
9. Logging
III. Cookbook
10. Build an application
Overview
Define the workflow
Define parameters
Implement the transitions
Implement the visualization
Make the configuration
Deploying the application
IV. SCAM Framework
11. Repository
Metadata model
Security
Authentication
Access Control
API
Searching
RDQL
Freetext
Backup/restore data
Database
12. Middleware
Functional Requirements
Architecture
Design Discussion
Command Chain
Scope
Functional Requirements
Architecture
Design Descussion
V. The Portfolio Implementation
13. Introduction
Background information
Terms and Definitions
14. Requirement Specification
Introduction
High Level Description
General Description
User Roles
Definition of Component types
External Interfaces
Requirements of the Application
Functional Requirements
Non-functional Requirements
15. Functional specification
Introduction
Purpose and scope
Product
Overview
Enviroment
Function
User roles
General constraints
Assumptions and dependcies
Functions
General
Functions of the Application
Design constraints
Software constraints
16. Technical specification
Introduction
Purpose and scope
Application overview
Application domain
Software interfaces
Development enviroment
Software architechture
Design
Metadata schema
Command chain design
Workflow definition
Module descriptions
Command implementation
JSP implementation
Currently unresolved issues
Future development
17. Maintenance manual
18. Administration manual
19. User manual
VI. Frequently Asked Questions About SCAM
20. Repository FAQ
21. Controller FAQ
22. Command Chain FAQ
23. Editor
VII. TODO

List of Figures

10.1. Part of a workflow
11.1. Design
11.2. A Component
11.3. IMS Content Packaging hierarchy
11.4. Access Control List (ACL)
16.1. Portfolio application software design
16.2. Part of a workflow

List of Examples

5.1. RMI client (incomplete)
10.1. Command object, handling initialization parameters
10.2. Command object, providing attributes
10.3. Command object, retrieving attributes
10.4. scam.properties, factory service settings
10.5. Command object, factory service usage
10.6. Taglib, definitions in web.xml
10.7. Taglib, definition in JSP
10.8. Taglib, creating an event URL
10.9. Taglib, applying an event URL
10.10. Taglib, single value property
10.11. Taglib, processing a property value
10.12. Taglib, multi-value property
10.13. Taglib, set operation
10.14. command-chain.xml, action URLs mappings
10.15. command-chain.xml, a command definition
10.16. command-chain.xml, a command-chain definition header
10.17. command-chain.xml, a command-chain definition
10.18. Deploy, application.xml
10.19. Deploy, file structure (partial)
11.1. RDQL: Retrieve all objects of a known property of a known resource
11.2. RDQL: Constraints
11.3. RDQL: Paths
11.4. RDQL: Stringmatching, object contains the substring 'hello'