Common Understanding Wiki
A Common Knowledge Source of Terms and Definitions
This page only discusses services in general. For Service-oriented architecture (SOA) refer to this page.
Service Terminology #
(Remote) Service #
A service is a software entity providing a dedicated functionality through a Service Interface and realised through a Service Implementation. In order to fulfill its task, a Service Implementation may rely on further services that it accesses.
Usually, services do have some persistent state that is most commonly captured in a database backend.
Service Interface #
The service interface mainly describes how to access a service. In particular, it defines the possible operations, their input and output parameters. The interface also defines the protocol for accessing the service (file system service: open file first, then read from it; Internet-based service: authenticate first, then access content).
For remote services it also captures the network protocols over which the interface is accessible.
Service Implementation #
A Service Implementation realises the functionality of service on a technical level. The implementation is available as one or more software bundles and that are installed over one or more physical or virtual hosts.
Service Types #
Cloud Service #
A cloud service is a remote service providing the main cloud characteristics broad network access, on-demand self-service, and rapid elasticity.
Web Service #
Originally (90s and early 2000s), a service offered over the Internet and based on Internet technology such as HTTP. Still used in this manner, for instance by Amazon Web Services. In our terminology, this is a special form of Remote Service.
With the evolvment of Web Service technology, mostly SOAP and WSDL the defintion of Web service has become much more narrow. W3C requires that "[a Web service] has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP (Simple Object Access Protocol) messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards."
REST Service #
A REST service is a service following the idea of REST (Representational State Transfer). Rest services provide a simplified interface that matches with the HTTP operations (e.g. PUT, GET, POST, DELETE for CRUD operations). REST is generally considered to be simpler that full-blown web services. Also, when designed properly, REST integrates neatless with scaling mechanisms already built-in the Web such as caching.
On the down-side, interfaces to REST services are often much less machine-readable than for Web services.
Basic Service #
A Basic Service is a service whose implementation does not rely on any other service.
Composite Service #
A Composite service is a service whose implementation makes use of further services and accesses them over their service interface. These other services may be run by a different service provider.
Service Properties #
The concept of cloud consumers sharing both virtualized infrastructure and application servers. In multi-tenant cloud architectures, database and application servers are typically shared to reduce the cost to consumers, but with sharing resources and co-location of data come risks to data that must be mitigated.
Service Interoperability #
The capability to communicate, to execute programs, or to transfer data among various functional units under specified conditions.
Service Portability #
The ability of a service to run on more than one type or size of hardware/platform/operating system/cloud. This includes the abiility to connect the service to different external services such as data sources.