OSID Packages
Summary
OSID Packages contain a cluster of interface definitions within a functional domain.
Packages
OSIDs are interface definitions. Interfaces are grouped into OSID Packages. An OSID Package typically describes the touch points around some functional domain. The domains may be small or large, and they may be abstract or concrete. OSID Packages have names:
osid.<package name>
The OSID Java Binder prepends an "org." to the package name.
Sub Packages
Larger functional domains may be broken into smaller functional domains. Sub Packages are accessed through the top level OSID Package but are part of the same namespace:
osid.<package name>.<sub package name>
Root Package
Most of the interfaces in the root osid package are abstract interfaces which define the interface framework. There are also some odds and ends:
- OSID enumeration: an enumeration of all the OSID Packages used in OsidRuntime
- osid.OsidRuntimeManager: an interface to instantiate OsidManagers (the service endpoints defined in OSID Packages and Sub Packages)
- Properties: an interface to convey name/value pairs
Terminology
The letters "ID" in OSID stands for Interface Definitions. An OSID refers to a set of interfaces, not their implementations. We use OSID as shorthand for OSID Package or Sub Package.
To describe the code using or consuming an OSID, we use the term OSID Consumer. To describe the code implementing an OSID, we use the term OSID Provider. The same code block may be an OSID Consumer and an OSID Provider simultaneously, so these terms describe the role of the code. These are software interfaces so the consumers and providers are software. Note that we stay clear of client/server or customer as these terms have no meaning in a software-based service environment.