What's an OSID?
The Open Knowledge Initiative has produced a series of Open Service Interface Definitions (OSIDs) informed by a broad architectural view of the educational technology landscape. As learning management systems have become a core component of the campus information technology infrastructure, O.K.I. seeks to simplify and enhance the creation of educational applications.
|
The OSIDs are an abstraction layer between the programmer and the enterprise infrastructure systems of his or her campus. Each OSID is characterized by a tightly defined set of methods and strict boundaries. This approach offers a number of important benefits to applications designed to the OSIDs:
- Simple integration with existing infrastructure
- Local innovations can be shared across campuses or universities
- Adaptation to new technology without destabilizing the overall environment
Summary of OSIDs
OSID Root
The Root package, with a mechanism for loading OSID managers.
Javadoc | PDF Spec | HTML Spec
Agent
OSID use Agents to represent individuals or processes that invoke specific
Services. An example of an Agent is a specific Student, John Doe. This Agent
might have the DisplayName “Doe, John”, the Id 123-45-6789, and a Type indicating
a Student. Agents can be organized into Groups. A Group also has a DisplayName,
Id, and characterizing Type. In addition, Groups have a description. A Group
can contain zero or more Agents. A Group can contain zero or more Groups
(subgroups). An Agent can only be added as a member of a Group if it is not
already in the Group, but the same Agent can be a member of a subgroup. Agents
can have sets of Properties associated with them. Each set of Properties
has a Type. The Agent OSID provides a variety of methods for managing these
Agents and Groups.
Javadoc | PDF
Spec | HTML Spec
Assessment
The Assessment Open Service Interface Definition (OSID) supports creating,
organizing, administrating, evaluating, storing and retrieving Assessments.
Assessments are organized into Sections and within Sections into Items.
Once composed, an Assessment can be Published in which case it is read to
be Taken by an Agent1 (Student). Each Assessment, Section, or Item taken
can have an Evaluation.
Javadoc | PDF Spec | HTML Spec
AUTHENTICATION
The Authentication OSID gathers required credentials from an agent,
vouches for their authenticity and introduces the agent to the system. The
Authentication OSID permits an application to abstract the authentication
process without having to manage the details of the underlying authentication
service.
Javadoc | PDF Spec | HTML Spec
Authorization
The Authorization OSID allows an application to establish and query a user's
privileges to view, create, or modify application data, or use application
functionality.
Javadoc | PDF Spec | HTML Spec
Course Management
The CourseManagement Open Service Interface Definition (OSID) primarily
supports creating and managing a CourseCatalog. The catalog is organized
into:
• CanonicalCourses, which are general and exist across terms;
• CourseOfferings for CanonicalCourses, which occur in a specific term,
have a CourseGradeType1, a Status, etc; and
• CourseSections for CourseOfferings, which have a meeting location, schedule,
student roster, etc.
Javadoc | PDF Spec | HTML Spec
Dictionary
The Dictionary OSID provides a means to support multiple languages, domain-specific
nomenclature and culture-specific conventions through interchangeable property
files.
Javadoc | PDF Spec | HTML Spec
Filing
The Filing OSID provides platform-independent means to handle files arranged
in simple hierarchical containers
Javadoc | PDF
Spec | HTML Spec
Grading
The Grading Open Service Interface Definition (OSID) supports characterizing,
storing and retrieving Grades. A Grade is specified with four elements:
a GradeValue, GradeType, GradeScale, and ScoringDefinition. These four elements
provide a general and flexible way to characterize a Grade. The Service
also provides for managing GradeRecords, which join information about the
Grade, the Agent1 (Student) whose Grade it is, and the object that was Graded.
This Service also includes methods for iterating through the GradeTypes,
GradeScales, and ScoringDefinitions supported by a particular implementation.
One can also iterate through the GradableObjects included among the GradeRecords;
and through the GradeRecords themselves.
Javadoc | PDF Spec | HTML Spec
Hierarchy
The Hierarchy OSID manages parent-child relationships among elements. In
addition to simple tree structures, the OSID supports hierarchy that are
recursive and have nodes with multiple parents. User authorizations are usually
stored as a hierarchy.
Javadoc | PDF Spec | HTML Spec
ID
The Id Open Service Interface Definition (OSID) supports managing and
using Ids.
Javadoc | PDF Spec | HTML Spec
Logging
The Logging OSID records and retrieves a variety of application activity
history.
Javadoc | PDF Spec | HTML Spec
Repository
The Repository Open Service Interface Definition covers storing and retrieving
digital content, referred to as Assets, as well as information about the
Assets. Assets, examples of which include: documents, course material, assessment
item, images, video, audio, etc, reside in Repositories which have names
and descriptions and which support a specific set of Asset Types. Repositories
are themselves organized by the RepositoryManager that keeps track of repositories
and supports certain operations such as searching for Assets across repositories.
Associated with each Asset Type is a RecordStructure that defines the format
of information comprising the Asset or information describing the Asset.
An Asset can have content as well as Records, which are data in the format
defined by the Asset’s RecordStructure. Assets may contain other Assets.
Javadoc | PDF Spec | HTML Spec
Scheduling
The Scheduling OSID manages events in shared calendars.
Javadoc | PDF Spec | HTML Spec
Shared
The Shared OSID contains fundamental objects used in the other OSIDs to
provide their functionality.
Javadoc | PDF Spec | HTML Spec
SQL
The SQL Open Service Interface Definition (OSID) provides a means of storing,
editing, and retrieving tabular data through the execution of SQL statements.
The data store is presumed to be a relational database.
Javadoc | PDF Spec | HTML Spec
User Messaging
The UserMessaging OSID supports communication and notification among users.
Javadoc | PDF Spec | HTML Spec
Work Flow
The Workflow OSID provides a way to manage an interdependent succession
of activities each of which has completion constraints.
Javadoc | PDF Spec | HTML Spec