SOA专家需了解的事情越来越多。本文给出一清单,帮助您洞悉相关内容……
治理:避免服务混乱
与前一主题紧密相关的是治理。我已经提到,服务是为了跨企业重用而构建的,因此,软件显式地设计为独立于特定业务领域。大部分 IT 组织的结构都不对此提供支持,包括所使用的资金与 ROI 模型。必须建立服务所有关系定义。如果服务是作为订单管理项目的一部分构建,如果让其在整个企业内重用存在的额外成本,如何计算这个额外的成本呢?如果稍后另一个业务部门产生了保证持续更新服务的新需求,谁负责进行此工作,谁为此提供资金支持?
但组织仅是治理的一个方面。事实上,我们对此术语的定义非常宽泛。作为技术人员,我最关心 IT 治理,我上面所提到的所有关于流程和方法的东西当然也属于这一范畴。但还有更多的东西。除了讨论如何创建 SOA 解决方案之外,治理还讨论如何对其进行操作(随便提一下,可以参考 观点与展望,第 5 部分: 什么是 IT 管理,为什么应该对其加以注意?,其中提供了对 IT 治理的一种很不错的看法,同时也说明了这个主题内容的多样性)。IT 运行时管理也属于其中,我经常听到人们将信息技术服务管理(Information Technology Service Management,ITSM)称为一个关键规程,而将信息技术基础设施库(Information Technology Infrastructure Library,ITIL)看作实现此规程的重要框架。
总的说来,SOA 专家可以描述 SOA 治理的所有方面,包括方法(如前面所讨论的)、与 SOA 相关的组织挑战以及如何处理它们,另外还包括具体的 IT 治理技术和概念(如 ITSM 和 ITIL)。
体系结构:什么使其面向服务?
我们所进行的大量工作都是创建、描述或检查体系结构。这些体系结构对服务及其基础组件、这些服务间的关系进行描述。对系统的体系结构可使用很多透视图:例如,软件组件视图、上下文视图或操作视图。
通常,我们尝试通过正式的模型表示系统的体系结构,而此模型通常采用 UML 进行说明,使用工具来创建上面提到的各种透视图。Rational Software Architect 就是这样的工具。通过逐步的细化,我可以从模型派生出更为详细的细节,然后可以从其中生成具体的实现。模型最初是独立于平台的模型(Platform-Independent Model,PIM),后来逐渐转换为平台特定的模型(Platform-Specific Model,PSM)。(请注意,一定要不仅关注服务及其间的关系,还要对这些服务所在的环境进行描述。)
有了目标解决方案的正式表示形式,还让我能够应用通用设计模式,实际上就是重用各种用于表示组件及其交互的得到认可和验证的方法。通过这样,我可以轻松地应用企业服务总线之类的各种熟知概念(另请参见 IBM Patterns for e-business)。
对于 SOA 专家,这意味着他或她必须能够创建良好的体系结构,其中应用了面向服务的原则和大家熟知的 SOA 设计模式。体系结构采用 UML 表述为正式的模型,要使用 Rational Software Architect 之类的工具创建此模型。
标准:WS-* 迷宫
作为创建面向服务的体系结构和设计的一部分,标准的问题总是会出现——这毫不意外,因为利用基于标准的接口和消息模型是 SOA 的主要好处之一。标准可以是特定于行业的(例如,用于保险行业的 ACORD 或用于医疗保健行业的 HL7)或特定于技术的。对于 SOA(特别是 Web 服务),已经建立了大量的标准——实际上,我们应该将其全部均称为“规范”,因为其中很多尚未实际成为正式标准。其中一些已经得到了相关供应商的大力支持,一些还没有得到大家的认可,其中一些甚至彼此重叠和相互竞争。
为了更为简单一些,我们开始使用“概要”的概念。概要——大部分都是由 WS-I 组织定义,归其所有——是处理特定场景的规范和标准包。例如,WS-I 基本概要 (WS-I Basic Profile) 包括支持可互操作的基本 Web 服务交互的所有核心 Web 服务标准(SOAP、WSDL、XML 等)。而可靠安全概要 (Reliable Secure Profile) 则是更为高级的概要的例子,其中包括 WS-ReliableMessaging 和 WS-SecureConversation 等内容,用于支持构建能够可靠而安全地交换消息的解决方案。
作为 SOA 专家,您需要知道所有相关 WS-* 标准和规范,能够确定各自的位置,知道其状态以及如何将其应用到给定的解决方案体系结构。而且,您还需要知道哪个产品支持哪个版本的标准——而这就是我们下一个主题将讨论的内容。
……
