Business analysis and SOA part 2 of 6: Business service models and the entity-centric business service [by Thomas Erl]

转载 2006年06月01日 15:23:00
 

As part of the design of service-oriented solutions it is common to label individual services according to the roles they fulfill. There are different types of roles, depending on the nature of the functionality being encapsulated and the context within which the service is being utilized.

For example, during runtime processing, services can assume different roles as they transition through processing stages within the execution of a larger activity. A service that receives a request message acts as the provider of the service and can therefore be labeled as the service provider in that instant. However, within a composition of services, the same service may turn around and forward the request message to another service. This effectively changes its role to that of the service requestor. These roles represent temporary states services transition through regardless of the nature of the functionality they provide.

When modeling business services, we are very much interested in the type of logic encapsulated within each service. As a result, a series of permanent classifications have emerged providing us with a set of high-level, predefined contexts that help us determine what should and should not be captured within a service boundary. These classifications are known as service models.

Service models

The use of service models establishes collections of services with common characteristics. When properly coordinated and further enforced through internal design standards, these characteristics can become the basis for a broad level of abstraction within an enterprise, establishing service layers that each abstract a particular logical domain. We'll talk more about service layers in this series after we describe some of the common service models.

It is important to note that there are business service models and service models dedicated to the encapsulation of non-business-related logic. The latter type refers to models commonly labeled as infrastructure or application services that group functionality according to a processing context (as opposed to a business context) usually to address low-level cross-cutting concerns.

Our focus in this series is on the following three primary business service models:

  • Entity-centric business service
  • Task-centric business service
  • Process service

Other types of business service models also exist, several of which have been defined by vendors and consulting firms. In fact, you can create your own business service models to establish unique contexts that relate to business domains within your organization. Based on our cross-platform research, the three service models listed above represent the most common and primary means of encapsulating business logic through service-orientation.

Let's start with a look at the first item on our list: the entity-centric business service model.

The entity-centric business service model

This service model requires that we group functionality according to a context associated with a predefined business entity or information set. Common business entities include customer, timesheet, employee, order, invoice, claim and so on. An entity-centric business service essentially results in the creation of a service that usually has a name that represents the business entity, such as a Customer service or a Timesheet service.

With a functional context based on a pre-existing business entity, the service is limited to containing a range of functions associated with the processing of the logic and data tied to that entity. An Invoice service implemented as a Web service, for example, would only contain operations capable of processing invoice-related data.

The key design standard imposed by the use of entity-centric business services is not just the limitation of what they can contain, but the common requirement that any functions associated with the entity they represent must reside within their boundary. This positions this type of service as central architectural component within a service-oriented enterprise.

Other service models based on a context derived from a business process end up being bound to that process. When the process logic changes, the context under which the services are used and composed will likely change as well. This may invalidate the original grouping of service operations and could result in the requirement for a redesign and redevelopment effort.

Because the context of the entity-centric business service is agnostic to any one business process, they achieve "process logic independence" and therefore become highly reusable. And, because they represent a well-defined set of logic and data, they establish a level of abstraction and governance over a distinct business domain. This can significantly increase the agility with which business processes that rely on the composition of services can be altered in response to change.

Entity-centric business services form specific relationships with services based on other service models. As we will discover later in this series, building a business service layer consisting of a series of entity-centric services composed by a parent orchestration service layer establishes a desirable form of SOA that promotes a high degree of agility and accurate business model representation.

 

Building entity-centric business services

Entity-centric business services are generally produced as part of a long-term or ongoing top-down analysis effort during which a great deal of attention is given to the alignment of service logic encapsulation with corresponding corporate business models. As a result, they do require more up-front analysis and design effort than other types of service models, increasing both the cost and delivery time required to produce each service.

They also benefit from the existence of an enterprise service model which provides a broad perspective of all potential services (entity-centric or otherwise) and an understanding of how entity-centric business services can potentially interrelate and perhaps be further decomposed into sub-entities. We will discuss the enterprise service model toward the end of this series.

These prerequisites almost always make impositions on the traditional project delivery lifecycle, where tactical requirements need to be constantly balanced with the long-term strategic benefit associated with establishing a service as a reusable IT asset. Furthermore, investing in any type of reusable service model ultimately leads to significant governance issues that can further increase the costs and effort required to maintain and evolve these types of services over the long-term.

Despite these challenges, the emergence of this service model is one of the most important developments in the evolution of service-oriented computing so far. It introduces new design, deployment and maintenance considerations that increase the complexity of an enterprise service architecture, but also provides the potential of realizing some of the significant strategic benefits associated with SOA.

What's next

In part 3 of this series we will continue our discussion of business service models by turning our attention to those based on a business process-specific context. Though they provide less reuse potential that entity-centric business services, they establish important parent service composition layers that allow for a clean abstraction of business process logic.

This article contains excerpts from "Service-Oriented Architecture: Concepts, Technology, and Design" by Thomas Erl (792 pages, Hardcover, ISBN: 0131858580, Prentice Hall/Pearson PTR, Copyright 2006). For more information, visit www.soabooks.com.

相关文章推荐

Win A free copy of the Oracle E-Business Suite R12 Integration and OA Framework Development Book

接着上周的电子书比赛,在Packt的好心人提供另外一个奖项。这次2本Andy Penver的电子书:Oracle E-Business Suite R12 Integration and OA F...
  • Wentasy
  • Wentasy
  • 2013年05月02日 10:30
  • 2195

Ten potential of mobile Internet business and profit model

原文网址 Abstract: The mobile Internet is the latest stage of Internet development, the combinati...
  • autoasm
  • autoasm
  • 2011年11月24日 14:27
  • 1059

Business.Modeling.And.Data.Mining.part2

  • 2008年08月24日 22:29
  • 2.23MB
  • 下载

MOSS 2010:Visual Studio 2010开发体验(21)——使用Business Connectivity Service(BCS)集成业务系统

1. SPS 2003或者更早的版本,我们可以通过自定义Web Part的方式,自己编写SqlConnection之类的代码或者访问Web Service之类的服务来实现。开发相对比较复杂,复用性较小...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Business analysis and SOA part 2 of 6: Business service models and the entity-centric business service [by Thomas Erl]
举报原因:
原因补充:

(最多只允许输入30个字)