编译文章——理解面向服务的IT架构(一)(By AMT 张纯棣)本文关键字 文章交付 广告 理解面向服务的IT架构(一) David Sprott与Lawrence Wilks CBDI Forum 2004年1月 编译
AMT 张纯棣 介绍 很明显,大部分的软件能力最终都会作为服务被递交和使用。当然,他们可能被作为一个紧密联系的系统被实施,但使用的点——在门户网站上、设备上、另一终端点等等都会使用一个基于服务的接口。我们已经听到类似的讨论,说明架构师和设计师需要很谨慎的避免每一样事物都成为一个服务。我们认为,这样的说法是不正确的,也是一种很混乱的想法。在给定的Web服务协议和技术下,质疑是否实施Web服务时每一事物都要被作为服务实施可能有一定的道理,但这并不影响我们在设计时从服务的角度出发来考虑所有的事物。服务是主要构造,同时也应该被用到每一个重要的接口上。面向服务的架构(Service-oriented architecture)允许我们根据相关的服务或者以相关服务集合的形式管理所有事物(包括交付、获取、消费等等)。这会对我们如何管理软件生命周期带来深远影响——从服务的角度规定我们的需求、设计服务、从服务的角度考虑获取和外包业务、服务的资产管理等等。 现在,我们对于提取何级别的功能已经有了明确的规定,并且这一级别也变得越来越高。我们已经从模块(modules)过渡到了对象(objects)、成分(components),而现在则是服务(services)。然而,从许多方面来考虑,SOA的命名其实是非常不幸的。同时,虽然SOA探讨的是架构,但我们不能仅仅局限在对架构的探讨上,因为其他的环节,如业务设计和流程的交付等也都是非常重要的。一个非常有用的命名方法就是面向服务,即Service Orientation(SO)。事实上,这一思想与面向对象(Object Orientation,OO)或者说基于组分的开发(Component-based Development,CBD)有很多平行、相似的地方: ¨
同对象和组分一样,服务代表了一个自然的building块,它允许我们按照我们熟悉的方式来组织各种能力 ¨
同对象和组分一样,一个服务是一个building块的基本组成部分。 ¨
联系着信息和行为 ¨
将内部的工作隐藏起来,防止外界的干扰 ¨
提供了一个与其他部分解后的相对简单的接口 ¨
对象方法利用了抽象的数据类型和数据提取,而服务则通过面向环境提供一个同样级别的适应性 ¨
对象和组分可通过继承行为被组织成类或服务层级,服务则可以单独的或者作为层级而被公开使用。 对大部分的组织来说,在研究面向服务的架构时,一个合乎逻辑的起点就是考虑Web服务。然而,Web服务不是天生就面向服务的。一个Web服务仅仅具有一定的能力与Web服务协议相一致。在本文,我们将识别出一个具有较好形式的服务应具有哪些特点,并为架构师和设计者提供一定的指导,告诉他们如何交付一个面向服务应用。 定义和原理 看看四周,我们发现SOA这个词面的越来越流行,但并没有太多的文字说明他该如何使用。例如,万维网联盟(Word Wide Web Consortium,W CBDI则认为,面向服务的架构需要一个更为广泛的定义。为了得出这一定义,让我们从一些现有的定义出发,并将W 服务 ¨
一个组成部分,他能够实现一定的任务。一个WSDL服务:一系列的终端点(W ¨
使用WSDL描述的一种能力(CBDI) 服务的定义 ¨
一种手段,通过它可以按照已达成的合同(暗示的或直接表达的)来满足消费者的需要或需求,这些合同包括服务协议、功能提供等等(CBDI) 服务的履行 ¨
能力杯执行的实例(CBDI) Web服务 ¨
一个软件系统用来支持网络上的机对机共同操作交互。它有一个交互接口,该接口被描述成一种照机器可处理的形式(尤其是使用WSDL)。其他的系统与Web服务按照事先定义好的方式与Web服务进行交互,这些定义通常使用SOAP消息来描述,比较典型的表达了如何使用带有XML的HTTP如何与其他web相关的标准相联接。(W ¨
一个程序化的接口,该接口提供了与WSnn协议相交互的能力(CBDI) 从这些定义我们可以看出,很明显,W 面向服务的架构 ¨
一系列可以被调用的组分,这些组分之间的接口是被公开的描述的。 CBDI拒绝了这一概念,因为,首先,组分(或者说实施部分)通常不是一个集会。第二,W 使得应用功能作为服务被服务消费者使用的策略、实践和实施框架,并且服务消费者可以根据各自需求来设计粒度级别,公开服务集。服务可以被调用,公开,和发现,并使用一个单一的、基于标准的接口形式来从实施中分离这些服务。(CBDI) CBDI将SOA定义成使用了特殊策略、实践和框架后的一种风格,它能交付与某些标准一致的服务。这样的例子包括某一级别的粒度、从实施部分独立出来并与标准一致。这些定义都突出了任何一种性坏死的服务都可以被作为与Web服务的一个接口。然而,较高的命令质量如可重用性和独立性,都将通过在设计和建立流程中引入一些科学的方法,从而通过使用web服务产生出超过那些基本的相互协作能力的更大目标。
如果您希望与本文章的作者或其所在机构,进一步交流,请联系:姜小姐 jill.jiang@amt.com.cn | 021-51096826-112 | 在线联系 |
|
|
|