在任何领域中,语义都非常重要,而在面向服务的体系结构(Service-oriented architecture,SOA)中更是如此。由于 SOA 涉及多个团队和组织,因此就相关术语达成一致至关重要。本系列将带着您开始 SOA 之旅,为您定义基础术语和主要概念。您将了解 SOA 领域中所使用的各个词汇。对于每个术语,将说明其为何对 SOA 重要、其在这种情况下的含义、相关的标准有哪些以及与其他术语的区别如何。
关于组织方式的说明
以下列出的术语并不是按照字母顺序排列的,也不是按照其重要性进行排列。我们将按照构建块的方式对其进行排列。首先讨论的是“服务”,因为这个术语可能是理解 SOA 框架的最基本概念。我们将以服务为基础形成“体系结构”、“治理”和“业务”概念的定义。在很多情况下,我们都将较大的术语分解为较小的组成部分进行讨论。
服务
服务显然是面向服务的体系结构的核心,术语服务 的使用非常广泛。不过,这个术语对于不同的人有不同的含义,“什么是服务?”这个问题经常会引发激烈的争论。我听到过人们讨论业务任务、业务服务、应用程序功能、技术服务或基础设施服务。我将基于 IBM Rational® Method Composer Plug-in for SOA Governance 和 IBM Rational® Unified Process for Service-Oriented Architecture 给出一个定义。
“服务是执行可重复任务的可发现资源,由外部化的服务规范进行描述。”
由于存在多种不同的定义,通过定义“服务”来开始本文的讨论比较困难。例如,您可能会认为上述定义过于偏重于技术。请记住,一定不要过于依赖于服务的正式定义,而要将重点放在服务背后的主要概念上,包括:
这些组合特征表明 SOA 并不仅与“技术”相关,而且也与业务要求和需求相关。
还要务必注意,并非所有东西都是服务。例如,有些 IT 功能不应该作为服务公开。可以使用 IBM 的面向服务的建模和体系结构(Service-Oriented Modeling and Architecture,SOMA)等分析技术基于上面列出的概念标识恰当的服务列表。我们将在本文中详细讨论这些方面的内容(包括本部分中所有以粗体显示的术语)。
体系结构
和服务类似,很难得到一个大家一致认可的体系结构的定义。不过,与服务不同的是,人们在谈论 SOA 时有时候会忘记体系结构,而显然不应将其忘记!事实上,企业体系结构和面向服务的体系结构具有相同的目标,即通过集成的 IT 策略支持业务。例如,企业架构师是 SOA 成功的关键,因为他们将根据不断发展的业务需求和要求确定企业的 IT 系统的策略发展方向。
Open Group Architecture Forum (TOGAF) 根据上下文提供了两个体系结构定义:
“系统的正式描述,或用于指导其实现的组件级别的系统详细计划。
组件的结构、它们相互间的关系以及控制其设计及将来发展的原则和指导方针。”
这两个定义都与理解 SOA 中的“A”相关。对其进行进一步细分,我们会发现体系结构对于进行以下工作必不可少: