Java Reference
In-Depth Information
service. In this workflow, this is the consumer-facing service, and consumers will be wholly
unaware of how their result is delivered behind the scenes.
This is useful because it helps push the business requirements that are incidental to this par-
ticular use case up into a customer view that is specific to this use case, allowing the member
services to retain their independence. It is possible, for example, that you want to reuse the
CreditCheck service in some new way. Your business may want to perform credit checks of
prospective new hires, who would not be in your customer database. This would be difficult
to deal with had the customer check been baked in at the service level. A frequent goal in
object-oriented programming is to isolate what might change; it's the same thing here.
The bottom line: the business process service must be defined outside the worker service,
which can be other process services, or entity or functional services. Services are not always
composable, but as you design your services, remember that composability is something to
strive for; at the least, perform a check to see if your evolving design helps or hurts your pos-
sibility for composition, even if you don't see an immediate need.
Note that service composition is particularly hard on runtimes. It is important to ensure that
your SLAs are always met, and this becomes somewhat tricky when you have a set of services
composing a variety of basic services that also compose to varying degrees another set of ser-
vices.
Chapter 9 covers how to define and create orchestrations technically.
Search WWH ::




Custom Search