Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Interoperability is the ability to swap service implementations (OSID Providers) as well as the ability to swap application components (OSID Consumers).

Gliffy
nameTear Here

OSIDs are interface specifications designed to separate software components along consumer and provider boundaries. By doing so, OSIDs enable other OSID consumers to interoperate with other OSID Providers. Note the emphasis is on separating software components, not what ought to be delivered and accessible to remote clients. OSIDs can be used for both internal and external consumption. In fact, there's no difference in the OSID world.

The goal of the OSIDs is to achieve many-to-many interoperability.

The OSID APIs are designed to be software interfaces where concerns of serialization and data store are notably absent as they are assumed to be handled under an interface as part of an OSID Provider.

From a system point of view, OSIDs appear to be high-level interfaces that leave a lot up to the imagination. From an application point of view, the OSIDs appear to be a disconnected set of low-level interfaces. The OSIDs are optimized for interoperability at the expense of the simplifying the specific needs of any particular application or development framework. The Okapia development tools close some of these gaps through many canned implementation classes based on more common programming patterns.

Gliffy
size500
nameMany To Many

Many-to-Many interoperability is the use of the same contract among many OSID Consumers and OSID Providers. Each OSID Consumer and OSID Provider does the work of mapping to an OSID once, opening the door for interoperability among many other systems and components. This is opposed to the model where My Web Site needs to support many different APIs and ways of doing things for each system integration.

OSIDs are blind whether this integration is internal or external. Internal integration issues plague us all the time. This is especially true in larger systems that have evolved over time or developed piecemeal by different parties. By using the same separation techniques, OSIDs enable different pieces of a system to evolve independently or be developed in parallel. Change is inevitable, and we don't want to throw away or refactor a large investment because a change in technology rippled through an entire system.