Understanding Business Services
Like Kevin Costner's character, Ray Kinsella, in the movie Field of Dreams 1, maybe you have been hearing voices whispering: "If you build it, [they] will come." When Ray heard the voice, he was inspired to build a baseball field in an Iowa cornfield. With all of the voices sounding out about Web Services, you may be thinking about building services and using service-oriented architectures2. Just as the need seemed unclear at first to Ray, a service-oriented platform running business services can deliver significant benefits to you and your organization over time.
This article will describe the key characteristics of business services and the value they provide. The following outline is a roadmap for how we'll cover the topic:
- What Is a Business Service?
- A Business Service Models the Business Domain
- A Business Service Is Interoperable
- A Business Service Is Accessed by Its Interface
The article will assume a basic understanding of service-oriented architecture. There are additional resources at the end to dive further into this topic.
What Is a Business Service?
Simply stated, a business service is an interoperable software component that provides a business function. Business services are deployed on service-oriented architectures that expose them to heterogeneous clients through common protocols such as HTTP and self-describing payload formats represented by various XML vocabularies.
Business services provide the potential for a level of re-use beyond what has been accomplished through other distributed component technologies. The basic definition of a service is a component that has a network addressable interface. Prior technologies had tight coupling between the client and service in terms of language, runtime classes, and runtime environment. Services were only usable by homogeneous clients. Today's service-oriented architectures reduce the coupling between clients and services by using standard protocols and payload formats and make them available to heterogeneous clients.
A Business Service Models the Business Domain
As the name suggests, business services provide business functions. Business services model the business domain. A service is composed of one or more service requests or methods. These service requests represent the published APIs clients can use to access the service.
Let's illustrate with an example. An insurance company has Customer, Policy, Billing, and Claims business services, among others. The Customer service has several service requests or methods such, as find customer, add customer, modify customer, and delete customer. Similarly, the Policy service has quote, issue, endorse, renew, and cancel service requests.
Business services can be represented in a conceptual model. The conceptual model shows how services are related to one another. It ensures that duplicate and overlapping services are not created. It helps provide the oversight for separate groups to leverage existing core assets and avoid duplicating effort.
Note: Business services can be contrasted with technical services. Technical services are interoperable software components, too. However, technical services do not model the business domain, but perform some useful technical function, such as document generation, transformation, printing, or logging.
A Business Service Is Interoperable
Interoperability is one of the key differences between a component and a service-enabled component. A component performs some useful function to homogeneous clients that are written in the same language as the component itself or that run in the same process space. A service exposes a component to heterogeneous clients that can be written in different languages and run in different process spaces.
The component being exposed may be external or internal to the service itself. For example, a database stored procedure or mainframe transaction may be exposed as an interoperable service and be made available to clients that could not otherwise invoke the component. This is depicted in Figure 1. A database stored procedure is exposed as a service to client applications.
Figure 1: Externally exposed componentOptionally, the service may implement the business logic entirely within itself. This is depicted in Figure 2. A rating service implements the business logic internally and does not require a network hop to another resource.
Figure 2: Internally exposed component