Una definición de interfaz de servicio abierta ( OSID ) es una especificación de interfaz programática que describe un servicio. Estas interfaces están especificadas por la Iniciativa de Conocimiento Abierto (OKI) para implementar una arquitectura orientada a servicios (SOA) con el fin de lograr la interoperabilidad entre aplicaciones en una base variada de tecnologías subyacentes y cambiantes.
Para preservar la inversión en ingeniería de software, la lógica del programa se separa de las tecnologías subyacentes mediante el uso de interfaces de software, cada una de las cuales define un contrato entre un consumidor de servicios y un proveedor de servicios. Esta separación es la base de cualquier SOA válida. Mientras que algunos métodos definen el límite de la interfaz de servicio a nivel de protocolo o servidor, los OSID colocan el límite a nivel de aplicación para aislar eficazmente al consumidor de los protocolos , identidades de servidor y bibliotecas de utilidades que están en el dominio de un proveedor de servicios, lo que da como resultado un software que es más fácil de desarrollar, más duradero y utilizable en una gama más amplia de entornos informáticos.
Los OSID ayudan en el diseño y desarrollo de software al dividir el espacio de problemas a través de los límites de la interfaz de servicio. Debido a que los problemas de comunicación de red se abordan dentro de un proveedor de servicios y debajo de la interfaz, no se supone que todos los proveedores de servicios implementen un protocolo de comunicaciones remotas (aunque muchos lo hacen). Los OSID también se utilizan para la comunicación y coordinación entre los diversos componentes de software complejo, lo que proporciona un medio para organizar las actividades de diseño y desarrollo para una gestión de proyectos simplificada .
Los proveedores de OSID (implementaciones) suelen reutilizarse en un conjunto variado de aplicaciones. Una vez que se logra que el software comprenda el contrato de interfaz para un servicio, se pueden utilizar otras implementaciones compatibles en su lugar. Esto logra la reutilización a un alto nivel (un nivel de servicio) y también sirve para escalar fácilmente el software escrito para propósitos más pequeños y dedicados.
Una implementación de proveedor OSID puede estar compuesta por una cantidad arbitraria de otros proveedores OSID. Esta técnica de capas es un medio obvio de abstracción . Cuando todos los proveedores OSID implementan el mismo servicio, esto se denomina patrón adaptador . Los patrones adaptadores son técnicas poderosas para federar, multiplexar o conectar diferentes servicios que se contratan desde la misma interfaz sin modificar la aplicación.