Filing Open Service Interface Definition
   HOME

TheInfoList



OR:

An open service interface definition (OSID) is a programmatic interface specification describing a service. These interfaces are specified by the
Open Knowledge Initiative The Open Knowledge Initiative (OKI) is an organization responsible for the specification of software interfaces comprising a Service Oriented Architecture (SOA) based on high level service definitions. The OKI specifically focuses on education ...
(OKI) to implement a
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
(SOA) to achieve
interoperability Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
among applications across a varied base of underlying and changing technologies.


Rationale

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 Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technology ...
, 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 Software design is the process of conceptualizing how a software system will work before it is implemented or modified. Software design also refers to the direct result of the design process the concepts of how the software will work which co ...
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 Project management is the process of supervising the work of a Project team, team to achieve all project goals within the given constraints. This information is usually described in project initiation documentation, project documentation, crea ...
. 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 In computer programming, reusability describes the quality of a software asset that affects its ability to be used in a software system for which it was ''not'' specifically designed. An asset that is easy to reuse and provides utility is conside ...
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 Abstraction is a process where general rules and concepts are derived from the use and classifying of specific examples, literal (reality, real or Abstract and concrete, concrete) signifiers, first principles, or other methods. "An 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

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


References


Baving, T., Cook, D., Green, T. ''Integrating the Educational Enterprise''. 2003.

Kraan, W. ''O.K.I. and IMS, wires and sockets revisited''.


* ttp://www.okiproject.org/filemgmt/visit.php?lid=44 Kumar, V., Merriman, J., Thorne, S. ''Open Knowledge Initiative Final Report''. 2004.
Kahn, J. ''Repository Developer's Guide''. 2006.

Kahn, J. ''Managing Complexity and Surviving Technology Change''. 2005.


External links

*
OSID wiki

PHP OSIDs
{{internet-stub Software architecture Service-oriented (business computing)