O'Reilly logo

SOA in Practice by Nicolai M. Josuttis

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Process Services

The third stage of expansion adds process services, which represent long-term workflows or business processes. From a business point of view, a process service represents a macro flow, which is a long-running flow of activities (services) that is interruptible (by human intervention).

Unlike basic and composed services, a process service usually has a state that remains stable over multiple calls. (See Stateful Services for a discussion what it means to be stateful.)

A typical example of a process service is a shopping-cart service. Its state would contain the contents of the shopping cart, perhaps combined with some customer data so that the customer's order could be maintained and manipulated over multiple sessions. Depending on the design, the process may end with the customer's final order being placed, or even with the delivery of all ordered items.

Because process services are typically stateful, you have to provide certain features in your SOA to maintain that state over multiple sessions (see Stateful Services) and still provide linear scalability so multiple service calls can be dealt with (see Why Stateless Services Are Better). Thus, you might provide the ability to change clients and frontend channels during the process.

A typical example would be a service that allows a customer to order a new insurance policy. The customer might begin the process online, through a company's web portal. During the process, other frontends (such as a back office or call-center ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required