An open service interface definition (OSID) is a programmatic interface specification describing a service. These interfaces are specified by the Open Knowledge Initiative (OKI) to implement a service-oriented architecture (SOA) to achieve interoperability among applications across a varied base of underlying and changing technologies.

Rationale

edit

To preserve the investment in software engineering, program logic is separated from underlying technologies through the use of software interfaces each of which defines a contract between a service consumer and a service provider. This separation is the basis of any valid SOA. While some methods define the service interface boundary at a protocol or server level, OSIDs place the boundary at the application level to effectively insulate the consumer from protocols, server identities, and utility libraries that are in the domain to a service provider resulting in software which is easier to develop, longer-lasting, and usable across a wider array of computing environments.

OSIDs assist in software design and development by breaking up the problem space across service interface boundaries. Because network communication issues are addressed within a service provider and below the interface, there isn't an assumption that every service provider implement a remote communications protocol (though many do). OSIDs are also used for communication and coordination among the various components of complex software which provide a means of organizing design and development activities for simplified project management.

OSID providers (implementations) are often reused across a varied set of applications. Once software is made to understand the interface contract for a service, other compliant implementations may be used in its place. This achieves reusability at a high level (a service level) and also serves to easily scale software written for smaller more dedicated purposes.

An OSID provider implementation may be composed of an arbitrary number of other OSID providers. This layering technique is an obvious means of abstraction. When all the OSID providers implement the same service, this is called an adapter pattern. Adapter patterns are powerful techniques to federate, multiplex, or bridge different services contracting from the same interface without the modification to the application.

List

edit
  • Agent
  • Assessment
  • Authentication
  • Authorization
  • CourseManagement
  • Dictionary
  • Filing
  • Grading
  • Hierarchy
  • Logging
  • Messaging
  • Repository
  • Scheduling
  • Workflow

References

edit
edit

📚 Artikel Terkait di Wikipedia

Interface description language

by Swagger and other technologies. Open Service Interface Definitions Protocol Buffers: Google's IDL RESTful Service Description Language (RSDL) Smithy:

API

programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other

Open API

An open API (often referred to as a public API) is a publicly available application programming interface that provides developers with programmatic access

Open Knowledge Initiative

interfaces known as Open Service Interface Definitions (OSIDs), each of which describes a logical computing service. In contrast to other interface definitions

Open Build Service

The Open Build Service (formerly called openSUSE Build Service) is an open and complete distribution development platform designed to encourage developers

OpenAPI Specification

The OpenAPI Specification, previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing

List of free and open-source software packages

using AutoCAD-like interface and file format MakeHuman MeshLab Open Cascade Technology (OCCT) – CAD kernel for 3D CAD, CAM, CAE OpenSCAD – scripting-based

X/Open

System Interface Definitions (XBD), Issue 4, 1992, ISBN 1-872630-46-4, C204 The above three documents were published not under the label X/Open Portability