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

协同办公Club Skype for Business 云通讯录体验分享

Club Skype for Business是基于微软产品Skype forBusiness推出的增强型协同办公解决方案,让Skype for Business在满足中国企业沟通及办公需求的同时,在...
  • Skype_for_business
  • Skype_for_business
  • 2017年07月28日 09:26
  • 400


业务分析BA逐渐成为当前一个热门领域,未来10年,多数公司对于BA人才和技能有持续旺盛的需求。目前有两个常见的考试认证CBAP和PMI-PBA, 下面对比介绍CBAP和PBA,供广大学友和考生参考。可...
  • crimosn7
  • crimosn7
  • 2016年08月09日 13:35
  • 889

如何从AD中彻底删除Skype For Business(上篇)

警告:以下操作在生产环境中存在风险,请执行这些动作之前,做好AD及当前Skype for business的备份,尤其是在复杂的Skype for business或Lync环境,每一步操作建议先在P...
  • xuhuojun
  • xuhuojun
  • 2016年06月19日 21:00
  • 5787


  • sinat_36844900
  • sinat_36844900
  • 2016年11月28日 14:27
  • 1205

SAP BusinessOne:福奈特选择奥维奥SAP BusinessOne 解决方案

《成就活力企业》第五集:为客户构建更便利的服务世界,福奈特选择奥维奥 洗衣服务 一次改变命运的机遇   故事发生在十六世纪的法国,一个炎热的午后,亨利四世的贴身仆人抱着污迹斑斑的外...
  • SAP_avatech
  • SAP_avatech
  • 2017年04月07日 14:48
  • 670

Business Model Generation《商业模式新生代》对软件测试的启发

Business Model Generation《商业模式新生代》,作者是(瑞士)亚历山大·奥斯特瓦德(Alexander Osterwalder)和他的顾问们。书的设计非常简单,使用了很多彩色图片...
  • u011250455
  • u011250455
  • 2015年09月07日 15:24
  • 529


对于如何使用jssdk并没有,太大难度,对于不熟悉的人来说,最大的坑在它配置的过程中。        使用jssdk需要注意以下几点:        1.需要在微信公众平台设置js接口安全域名。需...
  • aixinaxc
  • aixinaxc
  • 2017年12月11日 20:36
  • 462


拒绝理由Notes from App ReviewWe have begun the review of your In-App Purchase(s) but aren’t able to cont...
  • imanapple
  • imanapple
  • 2015年08月21日 10:40
  • 1415

IOS App上传App Store 由于使用第三方支付而被拒绝的解决方案

最近在做项目时,涉及用户付费。于是就找来了支付宝和微信支付的集成教程,按照要求分别开通各自开发平台的开发者账号和商户号。在后台加入了支付的支持,一步步的集成和测试,通过后打包上传到App Store ...
  • txinhuacdn
  • txinhuacdn
  • 2016年09月29日 09:51
  • 21686

Dynamics 365 Business Process Flow -- 让你不再惧怕复杂的业务流程!

Business Process Flow 功能并不是新功能,它是在Dynamics CRM 2013中被发布的。刚推出的时候,用户体验和开发体验并不是非常的完善,随着版本的不断迭代,新功能也不断的被...
  • ghostbear
  • ghostbear
  • 2016年11月29日 12:57
  • 2132
您举报文章:Business analysis and SOA part 2 of 6: Business service models and the entity-centric business service [by Thomas Erl]