When building various types of services, it becomes evident that they can be categorized depending on:
- the type of logic they encapsulate
- the extent of reuse potential this logic has
- how this logic relates to existing domains within the enterprise
As a result, there are three common service classifications that represent the primary service models used in SOA projects:
The use of these service models results in the creation of logical service abstraction layers, as shown in the following figure.
Figure 1 – Common service abstraction layers established by service models, each of which is comprised of services shaped through the application of the service-orientation paradigm. Though these layers tend to form a natural composition hierarchy, there are no rules as to how services can be assembled. Each of these three service models is further explained in the following sections.