随笔 - 19, 文章 - 93, 评论 - 17, 引用 - 0
数据加载中……

面向服务的一般原则

面向服务的一般原则---摘自《SOA概念、技术与设计》第八章

8.3. 面向服务的一般原则

在第 3 中我们建立了不止一个 SOA 定义。也有不止一个掌控定义面向服务背后原则的标准体。同样,对于面向服务的组成,也有许多源自公开的 IT 组织、厂商及咨询机构观点。

据称面向服务的根源在于软件工程理论所谓的“关注点分离”。这一理论基于这样的观念:将一个大的问题分解为一系列单个关注点是有益的。这使得逻辑将需要解决的问题分解成更小的、相关片段的集合。每一段逻辑处理一个特定的关注点。

这个理论已经被不同的开发平台以不同的方式实现。例如,面向对象的编程与基于组件的编程方法,通过使用对象、类和组件而实现了关注点分离。

面向服务能够被视作以截然不同的方式来实现关注点分离。面向服务原则提供了一个支持此理论的方法,同时实现了一种基本范式,在此基础上可构建诸多当代 SOA 特征。实际上,如果你再次研究这些特征,将会注意到数个(直接或间接)与关注点分离理论有联系。


如前所述,没有官方的面向服务原则。然而,却有一些最常与面向服务关联的原则。现将这些原则罗列如下,本节将做进一步描述。

l 服务可复用 不管是否存在即时复用的机会,服务被设计为支持潜在可复用。

l 服务共享一个正式契约 为了与服务交互,只需要共享描述每个服务信息交换术语定义的正式契约。

l 服务是松散耦合的 服务被设计为无需紧密的、跨服务的依赖而交互。

l 服务是底层逻辑的抽象 只有经由服务契约所暴露的部分服务对于外部世界是可见的。契约之外所表达的底层逻辑是不可见的,且与服务请求者无关。

l 服务是可组合的 服务可能组合其他服务。这允许表示不同粒度的逻辑,并促进复用及抽象层的创建。

l 服务是自治的 逻辑由服务所控制,并位于一个清晰的边界内。服务已经在这个边界内被控制,并且不依赖于执行其控制的其他服务。

l 服务是无状态的 服务应当不需要管理状态信息,因此能够其维持松耦合性。服务应当尽可能设计成无状态的,即便这意味着要将状态管理移至别处。

l 服务是可发现的 服务应当允许其描述被发现,并被人工和可能会利用其逻辑的服务请求者所理解。

在这八条原则中,自治性、松散耦合、抽象、以及需要正式契约被视为形成 SOA 根本基础的核心原则。如同在本章后面面向服务原则内部如何关联一节所解释,这四个原则直接支持其他原则(及其相互之间)的实现。

还有其他与服务和面向服务相关的一般品质。示例包括自描述的和粗粒度的接口设计特征。我们更多地将这些作为服务的设计指导方针,并且因此在 15 作为设计指导方针的部分进行探讨 .

posted on 2006-12-03 08:45 BPM 阅读(260) 评论(0)  编辑  收藏 所属分类: SOA


只有注册用户登录后才能发表评论。


网站导航: