面向服务的体系结构与企业体系结构,第 1 部分: 用于帮助理解 SOA 与企业体系结构如何协作的框架

本系列共三部分,本文是其中的第 1 部分,将提供一个框架,以帮助您理解面向服务的体系结构(Service-Oriented Architecture,SOA)和企业体系结构(Enterprise Architecture,EA)如何协作。首先,我们将介绍 SOA 和 EA 的定义。然后,我们将了解 SOA 和 EA 的范围和重点,以便有效地对二者进行比较和对比。

Dr. Mamdouh Ibrahim (mibrahim@us.ibm.com), 高级认证执行 IT 架构师兼 STSM, IBM

Mamdouh Ibrahim's photoMamdouh Ibrahim 博士是 Enterprise Architecture and Technology Center of Excellence 的一名高级认证执行 IT 架构师兼高级技术成员(Senior Technical Staff Member,STSM)。他还是 SOA Web Services Center of Excellence 扩展团队的成员。Ibrahim 博士有 30 年的从业和研究经验,曾涉足企业体系结构、SOA、分布式技术和无线技术等领域。他是 IBM IT Architect Certification Board 的成员,也是 IBM Architectural Thinking 课程的教材编写人员和讲师。Ibrahim 博士拥有计算机科学博士学位,计算机科学、固体科学和数学硕士学位以及电气工程和数学学士学位。他是 Central Michigan University 的兼职教师。他曾担任过 OOPSLA 2002 大会主席,目前担任 OOPSLA Steering 委员会主席(到 2008 年卸任)。他是 ACM、IEEE 计算机学会和 AAAI 的成员。



Gil Long (gillong@us.ibm.com), 杰出工程师, IBM

Gil Long's photoGil Long 是 IBM 的一名杰出工程师。他目前担任 Worldwide Enterprise Architecture Education 负责人和 SOA Governance 集成负责人,尤其擅长企业级体系结构设计和过渡规划及 SOA 基础设施规划方面的工作。Long 先生在所有 IT 领域都具有丰富的高级管理经验,包括 IT 战略规划、体系结构设计、业务系统设计与实现、系统与网络设计及部署和数据中心运作。他负责直接管理大型 IT 组织设立、人员配备和预算可靠性。他还具有多个行业的相关经验,包括卫生保健、金融服务、教育、零售、保险、公共事务、制造和政府部门等。



2007 年 7 月 09 日

引言

通过深入分析 SOA 和 EA 机器对应的治理,我们发现二者在概念、活动、流程和结果方面存在重叠。例如,二者都要求基于业务目标的输入,并都会得到与这些目标紧密相关的输出且要根据这些目标来对结果进行评估。而且,二者都是旨在处理企业级的问题(战略与规划、参考体系结构等等),而且其治理模型非常相似。如果未认识到 EA 与 SOA 间的类似与重叠的地方并加以考虑,在采用 SOA 的同时开发 EA 及其治理的企业可能会遇到问题。

本系列文章的内容基于我们在与公共事业行业的《财富》500 强企业的大型合作项目中获得的实践经验。IBM® 提供了广泛的业务转换与 IT 外包服务,可为客户管理所有的 IT 操作——大型机、台式机、帮助台、语音与数据网络、应用程序开发和维护。这个合作项目要求并行开发 SOA 和 EA。本系列包括三个部分,将详细说明重叠情况等各种潜在问题,并提供有关如何处理此类问题的建议和指导方针。具体如下:

  • 第 1 部分提供 SOA 和 EA 的定义和范围,从而形成框架,以便在二者之间进行有意义的对比和比较。
  • 第 2 部分对 SOA 和 EA 进行对比和比较。另外还将重点讨论在企业开发 EA 之后(或正在开发时)开始建立 SOA 时可能出现的问题。
  • 第 3 部分提供了指南信息,我们将根据在进行价值 16 亿美元合作项目(其中要求同时开发 SOA 和 EA)中面临类似的挑战时获得的经验说明可以如何处理这些问题。

随着很多企业开始快速走上采用 SOA 的道路,了解此体系结构及其治理如何适应 EA 及治理(大部分都已开发或正在开发 EA)也变得越来越重要了。具体来说,需要处理的问题包括:

  • EA 范围与 SOA 的范围(例如,如何利用二者相似之处)。
  • SOA Center of Excellence (CoE) 与 EA 治理委员会的关系(例如,如何避免重叠?)
  • SOA 基础设施的职责和所有关系(例如,企业服务总线位于企业基础设施的何处,是否应专供 SOA 使用?)。

企业体系结构

IBM 技术研究院的一份研究中将 EA 定义如下:

“EA 规程定义和维护体系结构模型、治理和过渡活动,以帮助有效协调半自主团队来实现共同业务和/或 IT 目标。”

这个定义经过了仔细推敲,突出了 EA 不仅是体系结构,更多的是一个规程。另外,它还意在用于捕获 EA 的需求,以通过定义将企业的业务策略与其变更程序结合在一起:

  • 体系结构模型,用于捕获业务预期结构(通过业务体系结构)和提供有关多个项目和程序必须如何利用信息技术的清晰规范(通过公用的明确 IS 和 IT 体系结构)。
  • 各种机制,如体系结构治理和过渡计划,以帮助计划、协调和控制业务的所有部分,确保其目标保持一致

各种文献对 EA 框架进行了大量介绍。Zachman 是第一个将此概念规范化并发布 EA 框架(以他的名字命名)的 IT 人员。从那以后,很多组织(特别是美国联邦政府部门)发布并使用了很多其他 EA 框架。图 1 显示了此类框架的示例。

图 1. 各种文献中不同的 EA 模型
示例 EA 框架
示例 EA 框架

以下信息可帮助您分辨图 1 中所示的各个首字母缩写:

  • FEAF——美国联邦企业体系结构框架 (Federal Enterprise Architecture Framework)
  • TEAF——美国财政部企业架构框架 (Treasury Enterprise Architecture Framework)
  • DoDAF——美国国防部体系结构框架 (Department of Defense Architecture Framework)
  • NASCIO——美国州际首席信息官国家协会 (National Association of State Chief Information Officers)

图 2 显示了作为 IBM 技术研究院关于 EA 的研究一部分开发的框架,该框架处理了在所建议的定义中提到的所有概念,说明了 EA 如何定位为企业战略(业务和 IT)和业务操作环境及 IT 基础设施之间的联系纽带。以下部分将提供有关 EA 不同方面的深入看法。

图 2. IBM EA 框架
IBM EA 框架

EA 不仅是体系结构

大家都知道,在讨论 EA 时,体系结构仅是其中的一部分。具体来说,EA 包括体系结构、治理和路线图。图 3 说明了 EA 的这些构建块,以及其如何影响所开发的项目及与其交互来实现业务目标。

图 3. EA 包括体系结构、治理和路线图
IBM EA 框架

EA 框架

IBM 所建立的框架块促进 EA 的开发和实现,包括多个体系结构域和治理,如图 4 中所示。

图 4. EA 域和治理在规划过程中的定位
EA 域和治理的定位

需要作为 EA 的一部分建模的体系结构域有:

  • 业务体系结构
  • 应用程序体系结构
  • 信息体系结构
  • 技术体系结构

体系结构治理框架包括需要建立的组织结构及流程,以确保体系结构的恰当审批、例外、通信和生存力。


SOA

SOA 定义

目前没有所有人都认可的单个 SOA 定义。相反,不同的团队、供应商和业务分析人员发布了多个不同的定义。这些定义既包括 SOA 为业务完成的工作的高级视图,也包括关注基于 SOA 的解决方案的技术方面的定义。以下是在关于软件开发的文献中经常可以见到的几个 SOA 定义:

W3C 的定义:

“可以调用的一系列组件,其接口描述可以发布和发现。”

CBDI 的定义:

“一组策略、实践和框架,支持将应用程序功能作为一组服务在与能够调用、发布和发现的服务使用者相关的粒度发布;这组服务是使用接口的单一标准形式从实现抽象出来的。”

Gartner 的定义:

“面向服务的体系结构是一种客户机/服务器软件设计方法,其中的应用程序由软件服务和软件服务使用者(也称为客户机或服务请求方)组成。SOA 与更为通用的客户机/服务器模型不同,其定义强调软件组件间的松散偶合及对独立接口的使用。”

IBM 定义:

由于 IBM 强烈感觉到了 SOA 与企业的业务目标之间关系,IBM SOA Center of Excellence 开发了将此纳入考虑的 SOA 定义。

“面向服务的体系结构是一种用于根据需要对资源进行关联的企业级 IT 体系结构。这些资源被表示为与业务一致的服务,这些服务可以参与和包含到价值网、企业或业务线中,以满足业务需求。SOA 应用程序的主要结构化元素是服务,而不是子系统、系统或组件。”

我们认识到根据您的角度不同,SOA 意味着很多不同的东西,因此引入了三个不同的定义来分别从业务、体系结构和实现的角度对此进行讨论。这些定义如下:

业务角度的定义:

业务希望向其客户及合作伙伴或组织的其他部分公开的服务集。

体系结构角度的定义:

需要服务提供者、请求方和服务描述的体系结构风格。
一组体系结构原则、模式和标准,以处理各种特征,如成熟度、封装、松散偶合、关注分离、重用、可组合性和单一实现。

实现角度的定义:

一种包括诸如 Web 服务等标准、工具和技术的编程模型。

SOA 不仅是体系结构

与 EA 类似,SOA 也不仅仅是体系结构。除了其体系结构方面外,SOA 还需要治理和过渡路线图来支持企业对其进行全面采用。事实上,用于说明 EA 包括哪些内容的图也可以用于描述 SOA,只需要进行很小的修改,如图 5 中所示。

图 5. SOA 不仅是体系结构
SOA 不仅是体系结构

SOA 解决方案堆栈

SOA 由流程、服务和组件组成。SOA 的核心是服务模型,定义服务及实现服务的组件。图 6 显示了 SOA 解决方案堆栈,说明了组成 SOA 的不同组件间的关系。

图 6. SOA 解决方案堆栈
SOA 解决方案堆栈

这个部分分层的体系结构说明了如何在企业级(粗粒度)组件实现服务的同时使组合服务与业务流程保持一致。可以通过将公开的服务编排为组合应用程序来支持业务流程。此体系结构由多个垂直层提供支持,包括:

  • 基础设施层,通常称为企业服务总线(Enterprise Service Bus,ESB)。
  • 监视和管理层,用于确保服务质量和实现非功能需求。
  • 数据体系结构层。
  • 治理层。

总结

本文是本系列的第 1 部分,介绍了 SOA 和 EA 的定义与范围,以帮助您对二者进行恰当地比较和对比。第 2 部分和第 3 部分将说明 SOA 和 EA 之间的相似点与不同处,并基于从合作项目获得的经验提供相关指南,以说明可以如何处理这些问题。

致谢

特别感谢 Ian Charters,他负责 IBM 技术研究院关于 EA 的研究项目,本文中的很多图表都源自此项目。另外,我们还要感谢以下人员在这方面的帮助以及在撰写本文的早期所提供的宝贵意见和建议:Paul Bate、Luba Cherbakov、Claudio Cozzi、Ray Harishankar、Kerrie Holley、Don Hutcheson、David Janson、Steven Barnes、Satish Kalyani 和 Sharon Fortune。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services, Architecture
ArticleID=239329
ArticleTitle=面向服务的体系结构与企业体系结构,第 1 部分: 用于帮助理解 SOA 与企业体系结构如何协作的框架
publish-date=07092007