Interface | Description |
---|---|
Aggregateable |
Aggregateable is used for an OsidObject
to indicate that some or all of the definition is based on an included set
of other OsidObjects which are directly accessible and do
not exist outside the context of the parent object. |
Browsable |
A marker interface for objects that offer property inspection.
|
Containable |
A
Containable is a kind of aggregate where an
OsidObject is defined as a recursive composition of itself
directly accessible without knowledge of the originating service. |
Extensible |
A marker interface for objects that contain
OsidRecords. |
Federateable |
Federateable is used to indicate an OsidObject
can be federated using the OSID Hierarchy pattern. |
Identifiable |
A marker interface for objects uniquely identified with
an OSID Id. |
Metadata |
The
Metadata interface defines a set of methods
describing a the syntax and rules for creating and updating a data element
inside an OsidForm. |
Operable |
Operable is used to indicate an OsidObject
performs operations. |
OsidAggregateableForm |
This form is used to create and update assemblages.
|
OsidAggregateableQuery |
The
OsidAggregateableQuery is used to assemble search
queries for assemblages. |
OsidAggregateableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidAggregateableSearchOrder |
An interface for specifying the ordering of assemblage search results.
|
OsidBrowsableForm |
The
OsidBrowsableForm is used to create and update
browsable objects. |
OsidBrowsableQuery |
The
OsidBrowsableQuery is used to assemble search
queries for Browsable objects. |
OsidBrowsableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidBrowsableSearchOrder |
OsidBrowsableSearchOrder specifies preferred ordering of
search results. |
OsidCapsule |
OsidCapsule wraps other objects. |
OsidCapsuleForm |
This form is used to create and update capsules.
|
OsidCapsuleQuery |
This is the query interface for searching capsulating interfaces.
|
OsidCapsuleQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidCapsuleSearchOrder |
An interface for specifying the ordering of search results.
|
OsidCatalog |
OsidCatalog is the top level interface for all OSID
catalog-like objects. |
OsidCatalogForm |
This form is used to create and update catalogs.
|
OsidCatalogQuery |
The
OsidCatalogQuery is used to assemble search queries
for catalogs. |
OsidCatalogQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidCatalogSearchOrder |
An interface for specifying the ordering of catalog search results.
|
OsidCompendium |
OsidCompendium is the top level interface for reports
based on measurements, calculations, summaries, or views of transactional
activity within periods of time. |
OsidCompendiumForm |
This form is used to create and update governators.
|
OsidCompendiumQuery |
This is the query interface for searching reports.
|
OsidCompendiumQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidCompendiumSearchOrder |
An interface for specifying the ordering of search results.
|
OsidCondition |
The
OsidCondition is used to input conditions into a
rule for evaluation. |
OsidConstrainer |
An
OsidConstrainer marks an interface as a control point
to constrain another object. |
OsidConstrainerForm |
This form is used to create and update constrainers.
|
OsidConstrainerQuery |
This is the query interface for searching constrainers.
|
OsidConstrainerQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidConstrainerSearchOrder |
An interface for specifying the ordering of search results.
|
OsidContainableForm |
This form is used to create and update containers.
|
OsidContainableQuery |
This is the query interface for searching containers.
|
OsidContainableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidContainableSearchOrder |
An interface for specifying the ordering of search results.
|
OsidEnabler |
OsidEnabler is used to manage the effectiveness,
enabledness, or operation of an OsidObejct. |
OsidEnablerForm |
This form is used to create and update enablers.
|
OsidEnablerQuery |
This is the query interface for searching enablers.
|
OsidEnablerQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidEnablerSearchOrder |
An interface for specifying the ordering of search results.
|
OsidExtensibleForm |
The
OsidExtensibleForm is used to create and update
extensible objects. |
OsidExtensibleQuery |
The
OsidExtensibleQuery is used to assemble search
queries for Extensible objects. |
OsidExtensibleQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidExtensibleSearchOrder |
OsidExtensibleSearchOrder specifies preferred ordering
of search results. |
OsidFederateableForm |
This form is used to create and update federateables.
|
OsidFederateableQuery |
The
OsidFederateableQuery is used to assemble search
queries for federated objects. |
OsidFederateableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidFederateableSearchOrder |
An interface for specifying the ordering of search results.
|
OsidForm |
The
OsidForm is the vehicle used to create and update
objects. |
OsidGovernator |
An
OsidGovernator is a control point to govern the
behavior of a service. |
OsidGovernatorForm |
This form is used to create and update governators.
|
OsidGovernatorQuery |
This is the query interface for searching governers.
|
OsidGovernatorQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidGovernatorSearchOrder |
An interface for specifying the ordering of search results.
|
OsidIdentifiableForm |
The
OsidIdentifiableForm is used to create and update
identifiable objects. |
OsidIdentifiableQuery |
The
OsidIdentiableQuery is used to assemble search
queries for Identifiable objects. |
OsidIdentifiableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidIdentifiableSearchOrder |
OsidIdentifiableSearchOrder specifies preferred ordering
of search results. |
OsidInput |
The
OsidInput is used to input conditions into a rule
for processing. |
OsidList |
OsidList is the top-level interface for all OSID lists. |
OsidManager |
The
OsidManager is the top level interface for all OSID
managers. |
OsidNode |
A node interface for hierarchical objects.
|
OsidObject |
OsidObject is the top level interface for all OSID
Objects. |
OsidObjectForm |
The
OsidObjectForm is used to create and update
OsidObjects. |
OsidObjectQuery |
The
OsidObjectQuery is used to assemble search queries. |
OsidObjectQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidObjectSearchOrder |
OsidObjectSearchOrder specifies preferred ordering of
search results. |
OsidOperableForm |
This form is used to create and update operables.
|
OsidOperableQuery |
This is the query interface for searching operables.
|
OsidOperableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidOperableSearchOrder |
An interface for specifying the ordering of search results.
|
OsidPrimitive |
A marker interface for an interface that behaves like a language
primitive.
|
OsidProcessor |
An
OsidProcessor is an interface describing the
operation of another object. |
OsidProcessorForm |
This form is used to create and update processors.
|
OsidProcessorQuery |
This is the query interface for searching processors.
|
OsidProcessorQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidProcessorSearchOrder |
An interface for specifying the ordering of search results.
|
OsidProfile |
The
OsidProfile defines the interoperability areas of an
OSID. |
OsidProxyManager |
The
OsidProxyManager is the top level interface for all
OSID proxy managers. |
OsidQuery |
The
OsidQuery is used to assemble search queries. |
OsidQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidReceiver |
An
OsidReceiver is used to receive asynchronous
notifications from a service. |
OsidRecord |
OsidRecord is a top-level interface for all record
objects. |
OsidRelationship |
A
Relationship associates two OSID objects. |
OsidRelationshipForm |
This form is used to create and update relationshps.
|
OsidRelationshipQuery |
This is the query interface for searching relationships.
|
OsidRelationshipQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidRelationshipSearchOrder |
An interface for specifying the ordering of search results.
|
OsidResult |
The
OsidResult is used to retrieve the result of
processing a rule. |
OsidRule |
An
OsidRule identifies an explicit or implicit rule
evaluation. |
OsidRuleForm |
This form is used to create and update rules.
|
OsidRuleQuery |
This is the query interface for searching rules.
|
OsidRuleQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidRuleSearchOrder |
An interface for specifying the ordering of search results.
|
OsidRuntimeManager |
The
OsidRuntimeManager represents and OSID platform and
contains the information required for running OSID implementations such as
search paths and configurations. |
OsidRuntimeProfile |
The
OsidRuntimeProfile defines the service aspects of
the OSID runtime service. |
OsidSearch |
OsidSearch specifies search options used to perform OSID
searches. |
OsidSearchOrder |
OsidSearchOrder specifies preferred ordering of search
results. |
OsidSearchResults |
This interface provides a means to capture results of a search.
|
OsidSession |
The
OsidSession is the top level interface for all OSID
sessions. |
OsidSourceableForm |
This form is used to create and update sourceables.
|
OsidSourceableQuery |
The
OsidSourceableQuery is used to assemble search
queries for sourceables. |
OsidSourceableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidSourceableSearchOrder |
An interface for specifying the ordering of search results.
|
OsidSubjugateableForm |
This form is used to create and update dependent objects.
|
OsidSubjugateableQuery |
The
OsidSubjugateableQuery is used to assemble search
queries for dependent objects. |
OsidSubjugateableQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidSubjugateableSearchOrder |
An interface for specifying the ordering of dependent object search
results.
|
OsidTemporalForm |
This form is used to create and update temporals.
|
OsidTemporalQuery |
This is the query interface for searching temporal objects.
|
OsidTemporalQueryInspector |
The query inspectors provide a means of accessing the match terms of a
query.
|
OsidTemporalSearchOrder |
An interface for specifying the ordering of search results.
|
Property |
A
Property is a representation of data in string form. |
PropertyList |
Like all
OsidLists, PropertyList provides
a means for accessing Property elements sequentially either
one at a time or many at a time. |
Sourceable |
Sourceble is used for OsidObjects where
information about a provider is appropriate. |
Subjugateable |
A
Subjugateable is an OsidObject
dependent upon another OsidObject. |
Suppliable |
A marker interface for OSID Provider-owned objects used to supply input
from an OSID Consumer.
|
Temporal |
Temporal is used to indicate the object endures for a
period of time. |
Enum | Description |
---|---|
OSID |
This enumeration contains the list of OSIDs.
|
SearchOrderStyle |
This enumeration contains the possible search order types.
|
Syntax |
This enumeration contains the possible value types.
|
Exception | Description |
---|---|
AlreadyExistsException |
Attempt to add an object that already exists.
|
BadLogicException |
Implementation has incorrect behavior with respect to profile or other
interoperability methods.
|
ConfigurationErrorException |
An error occurred configuring the OSID implementation during
initialization and the implementation cannot be used.
|
ConsumerContractException |
Errors in programming resulting from an incorrect use of the OSIDs.
|
IllegalStateException |
Method has been executed at an inappropriate time such as
re-initializing a manager, accessing a resource after it has been closed,
opening a new transaction while one is already in progress, or accessing
elements when no more exist.
|
InvalidArgumentException |
A supplied argument is invalid.
|
InvalidErrorException |
Implementation returned an undefined error.
|
InvalidMethodException |
A method not defined in the interface was invoked.
|
InvalidReturnException |
Implementation returned an invalid value.
|
MissingMethodException |
Method is missing from the interface implementation.
|
NoAccessException |
The value cannot be changed.
|
NotFoundException |
The given
Id or other identifier was not found. |
NullArgumentException |
A
null argument was provided. |
NullReturnException |
Implementation returned a
null value where an actual
value was defined. |
OperationalException |
Operational errors result from failures in the system.
|
OperationFailedException |
A problem occurred in system execution.
|
OsidException | |
OsidRuntimeException | |
PermissionDeniedException |
An authorization failure occurred.
|
ProviderContractException |
Errors in programming resulting from an incorrect implementation of the
OSIDs.
|
TransactionFailureException |
An error occurred within a transactional element while committing a
transaction.
|
UnimplementedException |
This method has not been implemented by this provider.
|
UnsupportedException |
The given
Type or requested operation is not supported. |
UserException |
User errors are only permitted where specified in method signatures and
should be handled directly by a consumer application.
|
The Open Service Interface Definitions for the org.osid service.
The Open Service Interface Definitions (OSIDs) is a service-based architecture to promote software interoperability. The OSIDs are a large suite of interface contract specifications that describe the integration points among services and system components for the purpose of creating choice among a variety of different and independently developed applications and systems, allowing independent evolution of software components within a complex system, and federated service providers.
The OSIDs were initially developed in 2001 as part of the MIT Open Knowledge Initiative Project funded by the Andrew W. Mellon Foundation to provide an architecture for higher education learning systems. OSID 3K development began in 2006 to redesign the capabilities of the specifications to apply to a much broader range of service domains and integration challenges among both small and large-scale enterprise systems.
The osid
package defines the building blocks for the
OSIDs which are defined in packages for their respective services. This
package defines the top-level interfaces used by all the OSIDs as well as
specification metadata and the OSID Runtime interface.
OSID:
an enumeration listing the OSIDs defined in
the specification. Syntax:
an enumeration listing primitive types
Metadata:
an interface for describing data
constraints on a data element Interface behavioral markers are used to tag a behavioral pattern of the interface used to construct other object interfaces.
OsidPrimitive:
marks an OSID interface used as a
primitive. OSID primitives may take the form interfaces if not bound to
a language primitive. Interfaces used as primitives are marked to
indicate that the underlying objects may be constructed by an OSID
Consumer and an OSID Provider must honor any OSID primitive regardless
of its origin. Identifiable:
Marks an interface identifiable by an
OSID Id.
Extensible:
Marks an interface as extensible
through OsidRecords.
Browsable:
Marks an interface as providing
Property
inspection for its OsidRecords.
Suppliable:
Marks an interface as accepting data
from an OSID Consumer. Temporal:
Marks an interface that has a lifetime
with begin an end dates. Subjugateable:
Mars an interface that is dependent
on another object. Aggregateable:
Marks an interface that contains
other objects normally related through other services. Containable:
Marks an interface that contains a
recursive reference to itself. Sourceable:
Marks an interface as having a
provider. Federateable:
Marks an interface that can be
federated using the OSID Hierarchy pattern. Operable:
Marks an interface as responsible for
performing operatons or tasks. Operables
may be enabled
or disabled. OsidProfile:
Defines interoperability methods used
by OsidManagers. OsidManager:
The entry point into an OSID and
provides access to OsidSessions.
OsidProxyManager:
Another entry point into an OSID
providing a means for proxying data from a middle tier application
server to an underlying OSID Provider. OsidSession
: A service interface accessible from
an OsidManager
that defines a set of methods for an
aspect of a service. Object-like interfaces are generally defined along lines of interoperability separating issues of data access from data management and searching. These interfaces may also implement any of the abstract behavioral interfaces listed above. The OSIDs do not adhere to a DAO/DTO model in its service definitions in that there are service methods defined on the objects (although they can be implemented using DTOs if desired). For the sake of an outline, we'll pretend they are data objects.
OsidObject:
Defines object data. OsidObjects
are accessed from OsidSessions.
OsidObjects
are part of an interface hierarchy whose interfaces
include the behavioral markers and a variety of common
OsidObjects.
All OsidObjects
are
Identifiable,
Extensible,
and have a
Type.
There are several variants of OsidObjects
that indicate a more precise behavior. OsidObjectQuery:
Defines a set of methods to query
an OSID for its OsidObjects
. An OsidQuery
is accessed from an OsidSession.
OsidObjectQueryInspector:
Defines a set of methods
to examine an OsidQuery.
OsidObjectForm:
Defines a set of methods to create
and update data. OsidForms
are accessed from
OsidSessions.
OsidObjectSearchOrder:
Defines a set of methods to
order search results. OsidSearchOrders
are accessed from
OsidSessions.
Most objects are or are derived from OsidObjects.
Some
object interfaces may not implement OsidObejct
but instead
derive directly from interface behavioral markers. Other OsidObjects
may include interface behavioral markers to indicate functionality
beyond a plain object. Several categories of OsidObjects
have been defined to cluster behaviors to semantically distinguish their
function in the OSIDs.
OsidCatalog:
At the basic level, a catalog
represents a collection of other OsidObjects.
The
collection may be physical or virtual and may be federated to build
larger OsidCatalogs
using hierarchy services.
OsidCatalogs
may serve as a control point to filter or
constrain the OsidObjects
that may be visible or
created. Each OsidCatalog
may have its own provider
identifty apart from the service provider. OsidRelationship:
Relates two OsidObjects.
The OsidRelationship
represents the edge in a
graph that may have its own relationship type and data.
OsidRelationships
are Temporal
in that they have
a time in which the relationship came into being and a time when the
relationship ends. OsidRule:
Defines an injection point for logic. An
OsidRule
may represent some constraint, evaluation, or
execution. While authoring of OsidRules
is outside the
scope of the OSIDs, an OsidRule
provides the mean to
identify the rule and map it to certain OsidObjects
to
effect behavior of a service. The most basic operations of an OSID center on retrieval, search,
create & update, and notifications on changes to an OsidObject.
The more advanced OSIDs model a system behavior where a variety of
implicit relationships, constraints and rules come into play.
OsidGovernator:
Implies an activity or operation
exists in the OSID Provider acting as an Operable
point
for a set of rules governing related OsidObjects.
The
OsidGovernator
represents an engine of sorts in an OSID
Provider and may have its own provider identity. OsidCompendium
: OsidObjects
which
are reports or summaries based on transactional data managed elsewhere.
Managing data governing rules occurs in a separate set of interfaces
from the effected OsidObjects
(and often in a separate
package). This allows for a normalized set of rules managing a small set of
control points in a potentially large service.
OsidEnabler:
A managed control point to enable or
disable the operation or effectiveness of another OsidObject
. Enablers create a dynamic environment where behaviors and
relationships can come and go based on rule evauations. OsidConstrainer:
A managed control point to
configure the constraints on the behavior of another OsidObject.
OsidProcessor:
A managed control point to configure
the behavior of another OsidObject
where some kins of
processing is implied. OsidSearch:
Defines set of methods to manage search
options for performing searches. OsidSearchResults:
Defines a set of methods to
examine search results. OsidReceiver:
Defines a set of methods invoked for
asynchronous notification. OsidList:
Defines a set of methods to sequentially
access a set of objects. OsidNode:
An interface used by hierarchy nodes.
OsidCondition:
An input or "statement of fact" into
an OsidRule
evaluation. OsidInput:
An input of source data into an
OsidRule
processor. OsidResult:
The output from processing an
OsidRule.
OsidRecord:
An interface marker for an extension to
another interface. OsidRecord
are negotiated using OSID
Types.
Property:
Maps a name to a value. Properties are
available in OSID objects to provide a simplified view of data that may
exist within a typed interface. PropertyList:
A list of properties. OsidRuntimeProfile:
The OsidProfile
for the runtime OsidManager.
OsidRuntimeManager:
The OSID Runtime service. Generally, these definitions are abstract and not accesed directly. They are used as building blocks to define interfaces in the OSIDs themselves. OSIDs derive most of their definitions from a definition in the osid package. The methods that are defined at this abstract level versus the methods defined directly in a specific OSID is determined by the typing in the method signatures. The osid package interfaces are a means of ensuring consistency of common methods and not designed to facilitate object polymorphism among different OSIDs. A language binder may elect to alter the interface hierarchy presented in this specification and a provider need not parallel these interfaces in their implementations.
The flow of control through any OSID can be described in terms of these
definitions. An OsidManager
or OsidProxyManager
is retrieved from the OsidRuntimeManager
for a given
service. Both types of managers share an interface for describing what they
support in the OsidProfile.
OsidSessions
are created from the OsidManager.
OsidSessions
tend to be organized along clusters of
like-functionality. Lookup-oriented sessions retrieve OsidObjects.
Return of multiple OsidObjects
is done via the
OsidList.
Search-oriented sessions retrieve
OsidObjects
through searches provided through the OsidQuery
and OsidSearch
interfaces.
Administrative-oriented sessions create and update OsidObjects
using the OsidForm
interface. The OsidForm
makes available Metadata
to help define its rules
for setting and changing various data elements.
OsidObjects
can be organized within OsidCatalogs.
An OsidCatalog
is hierarchical and can be traversed
through an OsidNode.
An OsidQuery
or an
OsidSearchOrder
may be mapped to a dynamic
OsidCatalog.
Such a query may be examined using an
OsidQueryInspector.
A notification session provides a means for subscribing to events, "a
new object has been created", for example, and these events are received
from an OsidReceiver.
The OSID Specification framework defines the interace and method structures as well as the language primitives and errors used throughout the OSIDs. The OSID Specifications are defined completely in terms of interfaces and the elements specified in the meta specification.
Ths meta OSID Specification enumerates the allowable language primitives that can be used in OSID method signatures. Parameters and returns in OSID methods may be specified in terms of other OSID interfaces or using one of these primitives. An OSID Binder translates these language primitives into an appropriate language primitive counterpart.
An OSID Primitive differs from a language primitive. An OSID Primitive is an interface used to describe a more complex structure than a simple language primitive can support. Both OSID Primitives and language primitives have the same behavior in the OSIDs in that an there is no service encapsulation present allowing OSID Primitives to be consructed by an OSID Consumer.
OSID methods are required to return a value, if specified, or return one of the errors specified in the method signature. The meta package defines the set of errors that a method signtaure may use.
Errors should result when the contract of the interface as been violated or cannot be fulfilled and it is necessary to disrupt the flow of control for a consumer. Different errors are specified where it is forseen that a consumer may wish to execute a different action without violating the encapsulation of internal provider operations. Such actions do not include debugging or other detailed information which is the responsibility of the provider to manage. As such, the number of errors defined across all the interfaces is kept to a minimum and the context of the error may vary from method to method in accordance with the spceification.
Errors are categorized to convey the audience to which the error pertains.
OSID methods include a compliance statement indicating whether a method is required or optional to implement. An optional OSID method is one that defines an UNIMPLEMENTED error and there is a corresponding method to test for the existence of an implementation.
The authors gratefully acknowledge the following individuals for their time, wisdom, and contributions in shaping these specifications.
OSID 3K is based on the O.K.I. OSIDs developed as part of the MIT Open Knowledge Initiative (O.K.I) project 2001-2004.
Copyright © 2002-2004, 2006-2008 Massachusetts Institute of Technology.
Copyright © 2009-2012 Ingenescus. All Rights Reserved.
This Work is being provided by the copyright holder(s) subject to the following license. By obtaining, using and/or copying this Work, you agree that you have read, understand, and will comply with the following terms and conditions.
Permission to use, copy and distribute unmodified versions of this Work, for any purpose, without fee or royalty is hereby granted, provided that you include the above copyright notices and the terms of this license on ALL copies of the Work or portions thereof.
You may modify or create Derivatives of this Work only for your internal purposes. You shall not distribute or transfer any such Derivative of this Work to any location or to any third party. For the purposes of this license, "Derivative" shall mean any derivative of the Work as defined in the United States Copyright Act of 1976, such as a translation or modification.
This Work and the information contained herein is provided on an "AS IS" basis WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS IN THE WORK.
The export of software employing encryption technology may require a specific license from the United States Government. It is the responsibility of any person or organization contemplating export to obtain such a license before exporting this Work.