En los contextos de arquitectura de software , orientación a servicios y arquitectura orientada a servicios , el término servicio se refiere a una funcionalidad de software , o un conjunto de funcionalidades de software (como la recuperación de información especificada o la ejecución de un conjunto de operaciones) con un propósito que diferentes clientes pueden reutilizar para diferentes propósitos, junto con las políticas que deben controlar su uso (basándose en la identidad del cliente que solicita el servicio, por ejemplo).
OASIS define un servicio como "un mecanismo para permitir el acceso a una o más capacidades, donde el acceso se proporciona utilizando una interfaz prescrita y se ejerce de acuerdo con las restricciones y políticas especificadas en la descripción del servicio ". [1]
Un analista de negocios, un experto en el área o un equipo de arquitectura empresarial desarrollarán el modelo de servicio de la organización primero definiendo las funciones de negocios de nivel superior. Una vez que se definen las funciones de negocios , se dividen y refinan en servicios que representan los procesos y actividades necesarios para administrar los activos de la organización en sus diversos estados. Un ejemplo es la separación de la función de negocios "Administrar pedidos" en servicios como "Crear pedido", "Cumplir pedido", "Enviar pedido", "Facturar pedido" y "Cancelar/Actualizar pedido". Estas funciones de negocios deben tener una granularidad que sea adecuada para el contexto del proyecto y del dominio dados.
Se pueden utilizar muchos métodos de análisis y diseño para la ingeniería de servicios, tanto los de propósito general como OpenUP y Domain-Driven Design, como los que se analizan en Modelado orientado a servicios.