Welcome

首页 / 软件开发 / .NET编程技术 / 《WCF技术内幕》翻译6:第1部分_第2章_面向服务:概述、快速定义…

《WCF技术内幕》翻译6:第1部分_第2章_面向服务:概述、快速定义…2011-05-28 博客园 译:Frank Xu Lei《WCF技术内幕》翻译6:第1部分_第2章_面向服务:概述、快速定义面向服务、理解消息

概述

互联网上充斥着面向服务(SO)的对话,大部分会话都是抽象地描述为面向 服务。这一章我们会一些不同的方法。下面一些章页,我们会站在需求的角度看 一下面向服务。更具体地说,我们将看一下一般的消息应用和需要什么才能使他 们运转。通过这个过程,我们将发掘几个理解面向服务必需的几个概念。本章的 最后几段会给出面向服务的比较正式的定义,并且会讨论一下为什么当今世界里 面向服务对于分布式计算意义重大。

如果你问10面向服务的专家去定义面向服务,你可能会得到10个不同的答案 。如果你几年后再问他们一次,你可能得到另外一组不同的答案。这个不足为奇 ,当面向对象(OO)和组件驱动开发成为主流的时候,许多开发者也搞不清楚他 们应该如何适应或者考虑让自己的流程设计展示符合新的架构模型。理解 OO和 组件架构需要关于应用系统设计在思想上根本的转变。这个过程有时非常痛苦, 但是回报的确是强壮的设计、更好的代码复用、先进的应用功能、易于调试和短 时间市场化。我的看法是,从组建驱动设计转向面向服务设计像从面向过程到面 向对象的转变一样,需要思想上的根本转变。好消息是,面向服务设计的好处是 可以提供更丰富的通信模式、松耦合的应用系统、改进的系统功能和兑现真正应 用程序互操作性的承诺。因为互操作性的术语使用过多,这些说明是为了避免混 淆。这本书里,互操作性指的是系统改变硬件、操作系统或者平台而不会影响其 它的分布式场景里参与者的能力。

面向服务,不管现在与它的定义有关的混淆,它不是一个新的概念。它诞生 于大型机统治的时代,并且最近已经在中间件里被接受。最近互操作性的倡议和 富通信模式重新激起了面向对象的兴趣,并且正在使面向服务成为主流。可以想 象随着面向服务更加广泛的实施,它的定义将会日益完善。

快速定义面向服务

简单地说,面向服务是一种分布式应用组件通过消息和契约实现松耦合的架 构风格。面向服务的应用通过契约描述它们交互中使用的消息。这些契约必须使 用一种语言描述并且格式能够被其它应用简单地理解,因此可以减少组件实现带 来的依赖性。

注意,在描述面向服务概念的时候我没有提到厂商或者技术。所以这是一个 超越厂商和技术边界的概念,在很大程度上,面向对象的也跨越了这些边界。在 最初 OO的概念形成时期,它非常容易混淆,我猜想面向服务也会有类似的情况 。因此,我会首先通过一些列例子阐述面向服务的概念,避免和别的抽象概念一 起定义一些抽象的概念。

理解消息

在面向服务的应用中,消息是通信的基本单位。因此,面向服务的应用通常 被称为消息应用系统。在某一时刻,每个面向服务的应用系统都会发送或者接受 消息。这个能够帮助你理解面向服务的消息很像你在Email系统里收到的信件一 样。在邮件系统里,一个信件是抽象的实体:它可以包涵任何类型的信息,可以 以不同的形式和大小存在,可以关联任何东西。同样,一个面向服务的消息也是 一个抽象实体:它几乎可以包涵任何数据,可以使用许多不同的方式编码,并且 可以关联到虚拟东西,甚至是其它消息。邮件的一些属性已经被广泛接受。例如 ,一封信件可以被某个人发送,邮寄给某个人,并且可能被某个人投递(某一时 刻更多的是“可能”)。同样,一个面向服务的消息可以被计算机发送,发送给 另一个计算机,并且可能由另外的计算机来投递。考虑某些喜欢死扣理论的书呆 子,我必须澄清,与面向服务消息交互的实体不一定必须是计算机。理论上说, 它们可以是信鸽,拉布拉多猎犬或者是狮虎。无论如何,这些与面向服务消息交 互的实体被称作消息的参与者,并且在这本书里,一个消息参与者可以是一个计 算机上的进程。

【地址】:http://www.cnblogs.com/frank_xl/