Open Service Interface Definitions

Specifications

DEFINITION:

O·SID [o’cid] n. O.K.I. uses the term Open Service Interface Definition (OSID) to differentiate its service based specifications from the broader class of application programming interfaces. The O.K.I. architecture exposes a carefully selected collection of services. The definition of these services enforces a programming model that maintains a sharply delineated boundary between O.K.I. compliant applications and O.K.I. service implementations.

OKI publishes OSIDs, which are not quite like typical specifications. The OSIDs are a kind of conceptual API, which can be expressed in different programming languages. The bindings to these languages are interfaces (or the nearest thing to that concept that the language has). The interfaces require implementations by service providers, which are separate releases by vendors or other contributors.

In V2 (the current version) of OKI a lowest-common-denominator Java language binding acted as both language-specific binding and specification for the OSIDs. As new languages are being added, an XML expression of the "conceptual API" has been released (XOSIDs, available on Sourceforge), along with XSLT for transformation into language-specific bindings. This is the approach that is being followed for V3 of the OSIDs. Both the XML-based specification and the language-specific bindings will be part of the revision process for V3.

Language Bindings

There are currently two fully released language bindings for the OSIDs, one for Java and one for PHP.  These bindings are described in more detailed in the following documentation sites

 

OSID
Javadoc

 
Harmoni
PHPdoc

Types

What OKI calls "Types" are crucial to the interoperability of the OSIDs. The OSIDs themselves are written very generically. It is only through a common understanding of the out-of-band "Types" that applications can make use of the most important functionality. For example, the seach methods in the Repository OSID require a Search Type. It is only by defining a commonly understood set of Search Types that different repositories can be searched in the same way.

The Types themselves are not part of the OKI specification per se; they are expected to be developed by the community as implementations are created. Implementors of OSIDs are strongly encouraged to submit their Types to the community at large.

Architecture

Although the OSIDs represent an approach to a Service-Oriented Architecture (SOA), it is different from the more protocol-oriented approaches and has some new concepts to offer. A good place to begin is in our Library, with The Conceptual Architectural Framework.

The OSIDs are continually evolving and was designed to do so. For insight into the thinking behind how this works, see The Architectural Process.

Other useful documents are available in the Library Architecture section.

Business Applications

The most popular OSID has been Repository. Our Library contains some case studies

OKI OSIDs also represent a strategic approach to changing technology, and the Library addesses this in some strategy papers.

Developer Guides

For tips on developing OSIDs and using them, both as service providers and application developers, see:

OKI V3 and the Future

The revision process for OKI V3 is kicking off at the IMS Quarterly meeting on February 6, 2006. This process is described in The OKI Change Process..

Documents related to this process are being posted for comment in the Library Futures section.

You can also provide feedback in our Forum for V3 Proposed Changes.



Comments are closed.