|
General Overview
The Open Knowledge Initiative has produced a series of Open
Service Interface Definitions (OSID's) 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 OSID's 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 OSID's:
- Simple integration with existing infrastructure
- Local innovations can be shared across campuses or universities
- Adaptation to new technology without destabilizing the
overall environment.
Specific Descriptions
Download a PDF version of O.K.I.
Service Interface Definitions »
Authorization
Functional Description
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.
Why important
Applications that can change Enterprise data
need to manage a user's access to that data. An application must provide
a fine degree of
authorization granularity to reflect the complexity of a user's interaction
with an application.
Use cases
A graduate student TA has the system privileges
to change the grades of the students in the course section that he teaches,
but not
the privilege to change his own grades.
Top of Page Authentication
Functional Description The Authentication OSID gathers required credentials from an agent, vouches
for their authenticity and introduces the agent to the system.
Why important The Authentication OSID permits an application to abstract the authentication
process without having to manage the details of the underlying authentication
service.
Use cases An application that permits users to log in remotely must be able to verify
that they genuinely represent the user they claim to be.
Top of Page DBC
Functional Description The DBC OSID allows an application to access and modify the contents of
a database by using the java.sql and javax.sql packages.
Why important
What differentiates the DBC OSID from JDBC is that by
extending java.io.Serializable this OSID's objects can migrate across machine
boundaries, permitting the
database connection to exist on a machine other than the machine hosting
the application.
Use cases The most efficient way to persistently store large quantities of complex
data is in a relational database.
Top of Page Hierarchy
Functional Description 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.
Why important Parent-child relationships are fundamental structures that effectively
model a variety of enterprise data.
Use cases User authorizations are usually stored as a hierarchy.
Top of Page Filing
Functional Description The Filing OSID provides platform-independent means to handle files arranged
in simple hierarchical containers.
Why important Most applications have occasion to manipulate their data through the use
of files in some sort of file system.
Use cases Homework assignments could be submitted and stored as files.
Top of Page Dictionary
Functional Description The Dictionary OSID provides a means to support multiple languages, domain-specific
nomenclature and culture-specific conventions through interchangeable property
files.
Why important Applications that can operate in a variety of cultural settings offer more
value to a broader user community.
Use cases An application could offer the option of displaying menus in English or
Spanish to support a multi-cultural student body.
Top of Page Logging
Functional Description The Logging OSID records and retrieves a variety of application
activity history.
Why important Applications typically track a variety of internal events
and activity for purposes of analysis, data collection, and security.
Use cases An application might log the data modifications and the
execution times of each modification.
Top of Page Shared
Functional Description The Shared OSID contains fundamental objects used in the
other OSIDs to provide their functionality.
Why important The contents of the Shared OSID are used throughout O.K.I.-compliant
implementations and applications.
Use cases A person, a requesting service, an external O.K.I. instance,
or an O.K.I. tool are all examples of objects using the Agent interface.
Top of Page Workflow
Functional Description The Workflow OSID provides a way to manage an interdependent
succession of activities each of which has completion constraints.
Why important Certain types of applications have operations where one
action is dependent on the completion of a previous action.
Use cases Workflows are commonly used to manage approval processes.
Top of Page Scheduling
Functional Description The Scheduling OSID manages events in shared calendars.
Why important Class schedules are an example of events that are managed
in shared calendars.
Use cases An application could use Scheduling to allow students to
interactively select their preferred class sections.
Top of Page Sql
Functional Description
The SQL OSID provides relational database access functionality
at a higher level of abstraction than the DBC OSID. Unlike DBC, it is not
dependent on JDBC.
Why important An application's access to persistent information should
focus on its own data manipulation requirements, not the operational details
of the underlying data provider.
Use cases An application can store data in a database without concern
for the specific type of database used.
Top of Page Usermessaging
Functional Description The Usermessaging OSID supports communication and notification
among users.
Why important Person to person (P2P) messaging has become a useful application
feature with the availability of supporting P2P services as well as e-mail,
instant chat, and discussion boards.
Use cases A distributed learning system might want to provide a means
for distributed students to interact with an instructor in real time.
Top of Page
|