ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:152.11KB ,
资源ID:7203216      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7203216.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(理解面向服务的体系结构中企业服务总线场景和解决方案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

理解面向服务的体系结构中企业服务总线场景和解决方案.docx

1、理解面向服务的体系结构中企业服务总线场景和解决方案理解面向服务的体系结构中企业服务总线场景和解决方案理解面向服务的体系结构中企业服务总线场景和解决方案 1第 1 部分企业服务总线中的工作角色 1第 2 部分驱动体系结构的 ESB 场景和问题 9第 3 部分ESB 场景的解决方案 15第 1 部分企业服务总线中的工作角色2004 年 7 月 01 日本文确定了一组最低功能,可以满足企业服务总线(Enterprise Service Bus,ESB)与面向服务的体系结构(service-oriented architecture,SOA)的原则保持一致的基本需要。通过确定这些最低功能,您可以确定利

2、用何种现有技术来实现支持 SOA 的 ESB。通过考虑特定情形下的需求如何确定对额外功能的需要,您可以选择最适合这种情形的实现技术。引言最新的 IT 集成是使用 Web 服务技术实现面向服务的体系结构(SOA),有许多优秀的文章讲述了该技术的好处和相关的实践(请参见参考资料)。最近,企业服务总线(Enterprise Service Bus,ESB)的概念被表述为 SOA 基础架构的关键组件(请参见参考资料)。然而,有必要阐明 ESB 究竟是一个产品、技术、标准,还是别的什么。特别是,当前是否可以构建 ESB?如果这样,该如何构建?本文将 ESB 描述为由中间件技术实现并支持 SOA 的一组基

3、础架构功能。ESB 支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。为了达到此目的,需要将多种功能集中起来并加以分类。然而,并不是 ESB 能够传递值的每一种情形都需要所有的功能。本文确定了一组最低功能,可以满足 ESB 与 SOA 的原则保持一致的基本需要。通过确定这些最低功能,您可以确定利用何种现有技术来实现支持 SOA 的 ESB。通过考虑特定情形下的需求如何确定对额外功能的需要,您可以选择最适合这种情形的实现技术。在接下来的文章中,我将在 SOA 中定义一组 ESB 场景,以定义 ESB 或 SOA 实现的共同起点。而解决方案模式又为选择适当的实现技术

4、提供了指南。随着 ESB 解决方案的发展和成熟,它所需要的功能也在不断地发展。同样,可见的 ESB 产品的可用性和功能也日趋完善。因此,在本系列的最后一篇文章中,我将考虑 SOA 和 ESB 的发展路线,以指导 ESB 功能和技术的最初应用,并且阐述如何选择循序渐进的方法。ESB 在 SOA 内的工作角色虽然我不打算深入讨论 SOA 的定义(请参见参考资料),但是在这里概括一下大部分对 SOA 的描述所适用的原则是很有用的: 利用显式的与实现无关的接口来定义服务。 利用强调位置透明性和可互操作性的通信协议。 封装可重用业务功能的服务的定义。 图 1说明了这些原则。注意,虽然 Web 服务技术非

5、常符合这些原则,但它并不是唯一符合这些原则的技术。图 1: SOA 的原则为了实现 SOA,应用程序和基础架构都必须支持 SOA 原则。启用 SOA 应用程序涉及到创建服务接口,服务接口可以直接也可以间接地通过使用适配器用于现有的或新的功能。从最基本的级别来看,启用该基础架构涉及到规划功能来将服务请求路由和传递给正确的服务提供者。然而,基础架构支持在不影响服务的客户端的情况下由另一个服务实现替代原有的服务实现也是至关重要的。这不仅需要根据 SOA 原则指定服务接口,而且需要基础架构允许客户端代码以独立于所涉及的服务位置和通信协议的方式来调用服务。这样的服务路由和替代是 ESB 的许多功能中的一

6、部分。ESB 支持这些服务交互功能,并提供集成的通信、消息传递以及事件基础架构来支持这些功能。因此,它将当今正在使用的主要企业集成模式组合成一个实体。ESB 为 SOA 提供与企业需要保持一致的基础架构,从而提供合适的服务级别和可管理性、以及异构环境中的操作。本文剩余部分将讨论 ESB 在 SOA 中的角色,包括它提供的除了基本的路由和传输以外的功能,如下面的ESB 功能模型部分中所述。ESB 结构ESB 有时被描述为分布式基础架构,这与其他的解决方案形成了对比,比如消息代理技术一般被描述为中心辐射型(hub-and-spoke)。然而,这并不是真正的差别。正在研究两个不同的问题:控制的集中和

7、基础架构的分布。ESB 和中心辐射型(hub-and-spoke)解决方案都集中控制配置,比如服务交互的路由、服务命名等等。同样,这两个解决方案可能部署在简单的集中式基础架构中,也可能采用更复杂的分布式方式进行部署。图 2展示了这一点。毫无疑问,不同的技术对它们所支持的物理部署模式有不同的约束有些可能适合于非常广泛的分布,以支持在很大的地理范围内进行的集成,而其他的可能更适合于部署在本地群集中,以支持高可用性和可伸缩性。使物理分布需求与候选技术的功能相匹配是 ESB 设计的一个重要方面。另外的一种能力也是非常重要的,就是以增量方式扩展最初的部署来反映不断变化的需求、集成附加的系统或扩展基础架构

8、的物理范围。图 2: 分布式 ESB 基础架构的集中控制我还应该定位在 SOA 基础架构中 ESB 与其他组件之间的关系,特别是与 Service Directory、Business Service Choreography、以及 Business-to-Business (B2B) Gateway 这些组件之间的关系。由于上述 SOA 原则对这些组件并没有严格的要求,所以我们可以将它们视为可选组件。图 3展示的 SOA 说明了这些组件之间的关系。图 3: SOA 中的 ESB 角色ESB 需要某种形式的服务路由目录(service routing directory)来路由服务请求。然而,

9、SOA 可能还有单独的业务服务目录(business service directory),其最基本的形式可能是设计时服务目录,用于在组织的整个开发活动中实现服务的重用。Web 服务远景在业务服务目录和服务路由目录的角色中都放置了一个 UDDI 目录,因而使得可以动态发现和调用服务。这样的目录可以视为 ESB 的一部分;然而,在这样的解决方案变得普遍之前,业务服务目录可能与 ESB 是分离的。Business Service Choreographer 的作用是通过若干业务服务来组合业务流程;因此,它将通过 ESB 调用服务,然后再次通过 ESB 将业务流程公开为客户端可用的其他服务。然而,B

10、usiness Service Choreographer 在编排业务流程和服务中所扮演的角色确定了这种业务工作流技术是一种与基础架构技术 ESB 分离的技术。最后,B2B Gateway 组件的作用是使两个或多个组织的服务在受控且安全的方式下对彼此可用。这有助于查看这些连接到 ESB 的组件,但它们并不是 ESB 的一部分。虽然有一些网关技术可以提供适合于实现 B2B Gateway 组件和 ESB 的功能,但是 B2B Gateway 组件的用途是将其与 ESB 分离。事实上,这种用途可能需要附加的功能(如合作伙伴关系管理),这些功能不是 ESB 的一部分,并且不一定受到 ESB 技术的支

11、持。ESB 的功能模型表 1对现有文献中确定的一些 ESB 功能进行了总结和分类(请参见参考资料)。虽然有一些功能非常基础,但是其他的功能(如自动化功能或智能化功能)代表着向按需操作环境转变的重要步骤。重要的是认识到,当前的大多数场景只需要部分类别中的部分功能。ESB 实现所需的最低功能将在下面支持 SOA 的最低功能的 ESB 实现部分中进行探讨。表 1:在现有的文献中定义的 ESB 功能通信 服务交互 路由 寻址 通信技术、协议和标准(例如 IBM WebSphere MQ、HTTP 和 HTTPS) 发布/订阅 响应/请求 Fire-and-Forget,事件 同步和异步消息传递 服务接

12、口定义(例如,Web 服务描述语言(Web Services Description Language,WSDL) 支持替代服务实现 通信和集成所需的服务消息传递模型(例如 SOAP 或企业应用程序集成 (EAI) 中间件模型) 服务目录和发现 集成 服务质量 数据库 服务聚合 遗留系统和应用程序适配器 EAI 中间件的连接性 服务映射 协议转换 应用程序服务器环境(例如 J2EE 和 .NET) 服务调用的语言接口(例如 Java 和 C/C+/C#) 事务(原子事务、补偿、Web 服务事务(WS-Transaction) 各种确定的传递范例(例如 Web 服务可靠消息传递(WS-Relia

13、bleMessaging)或对 EAI 中间件的支持) 安全性 服务级别 身份验证 授权 不可抵赖性 机密性 安全标准(例如 Kerberos 和 Web 服务安全性(WS-Security) 性能 吞吐量 可用性 其他可以构成契约或协定的持久评估方法 消息处理 管理和自治 编码的逻辑 基于内容的逻辑 消息和数据转换 有效性 中介 对象标识映射 数据压缩 服务预置和注册 记录、测量和监控 发现 系统管理和管理工具的集成 自监控和自管理 建模 基础架构智能 对象建模 通用业务对象建模 数据格式库 B2B 集成的公共与私有模型 开发和部署工具 业务规则 策略驱动的行为,特别是对于服务级别、服务功能

14、的安全和质量(例如 Web 服务策略(WS-Policy) 模式识别 上面的许多功能既可以使用专有技术实现,也可以通过利用开放标准实现。然而,使用不同的技术来实现 ESB 可能会使它们的性能、可伸缩性和可靠性这些特性显著不同,同时 ESB 功能和所支持的开放标准也会有所不同。由于这些原因,再加上最近制订和正在兴起的一些相关标准,当今实现 ESB 的许多关键决策都涉及到成熟的专有技术和不成熟的开放标准之间的权衡。在本系列文章中,我们不打算详细讨论上面的每一个功能类别。相反,我们将集中讨论采用或实现 ESB 的不同方法之间的驱动策略。特别是在下一部分,我们将讨论 ESB 为支持 SOA 所需的最低

15、功能由什么构成。支持 SOA 的最低功能的 ESB 实现如果在前面确定的功能中只有一部分和大多数 SOA 场景相关,我们可能会问:实现 ESB 所需的一组最低功能由什么构成?为此,考虑最被普遍认同的 ESB 定义的原理: ESB 是一种逻辑体系结构组件,它提供与 SOA 的原则保持一致的集成基础架构。 SOA 原则需要使用与实现无关的的接口、强调位置透明性和可互操作性的通信协议、相对粗粒度和封装可重用功能的服务定义。 ESB 可以作为分布式的异构基础架构进行实现。 ESB 提供了管理服务基础架构的方法和在分布式异构环境中进行操作的功能。 表 2展示了根据这些原则定义的最低 ESB 功能表 2:

16、 最低的 ESB 功能通信 集成 提供位置透明性的路由和寻址服务 控制服务寻址和命名的管理功能 至少一种形式的消息传递范型(例如,请求/响应、发布/订阅等等) 支持至少一种可以广泛使用的传输协议 支持服务提供的多种集成方式,比如 Java 2 连接器、Web 服务、异步通信、适配器等等 服务交互 一个开放且与实现无关的服务消息传递与接口模型,它应该将应用程序代码从路由服务和传输协议中分离出来,并允许替代服务的实现。请注意这些最低功能并不需要使用特别的技术,比如 EAI 中间件、Web 服务、J2EE 或 XML。这些技术的使用非常接近也非常符合需求,但是不必强制要求使用它们。相反,最低功能几乎

17、只需简单地使用 SOAP/HTTP 和 WSDL 就可以实现(当然不是所有的情况都这样): URL 寻址和现有的 HTTP 和 DNS 基础架构提供了一个具有路由服务和位置透明性的“总线(bus)”。 SOAP/HTTP 支持请求-响应(Request-Response)通信规范。 HTTP 传输协议被广泛地使用。 SOAP 和 WSDL 是开放、与实现无关的服务通信和连接模型。 然而,这些 SOAP/HTTP 和 WSDL 的基本应用只是点到点(point-to-point)的集成,并不能实现一些 ESB 需要的关键功能: 目前还没有用于控制服务寻址和命名的管理功能。服务名称通过每个适配器单

18、独进行控制的,服务路由控制则分散在由服务客户端调用的地址、HTTP 基础架构和分配给适配器的服务名称之间。 虽然这种方法依赖于实现细节,但是它往往并不能使服务实现的替代变得简单;服务请求者代码(也可能是开发工具生成的)通常通过特定地址的特定协议直接绑定到具体的服务提供者实现。如果想要用另一个服务实现来替代原来的服务实现,就需要修改应用程序代码并重新部署这些代码。 当然,在许多甚至是大多数情形中往往需要其他的功能,并且这种需要变得越来越常见。特别地,不管是现在还是以后,下面的需求类型可能会导致更复杂高级的技术的使用: 服务质量和服务级别功能。 高级 SOA 概念,例如服务编排、目录、转换等等。

19、按需操作环境需求,比如管理与自治功能以及基础架构智能功能。 跨越具有不同所有权的多个网络、多个协议以及多个域的真正意义上的异步操作。 影响 ESB 的安全问题我不想在这里直接提出安全需求,不过它们对选择 ESB 的实现技术非常重要。例如,如果服务请求不需要提供身份验证或授权,实现技术的选择就可以非常的广泛。更有可能的情况是,如果需要一些安全级别,则评估什么形式的安全是可以接受的就非常重要。例如:1. 是否可以接受通信基础架构中的安全性,例如,是否在 EAI 中间件服务器之间使用安全套接字层(Secure Socket Layer,SSL)互相验证,或者是否在使用 HTTPS 协议? 2. 是否

20、可以接受在参与系统之间单独的点到点(point-to-point)安全性,或者是否需要端到端(end-to-end)模型?例如,是否有必要通过类似于代理的中间件系统来把客户端身份传递到服务实现的最终提供者? 3. 是否可以接受应用层中的安全性,例如,客户端代码是否能够执行带有用户 ID 和密码的基本 HTTP 身份验证,或者是否能够把这些信息作为应用程序数据传递给服务? 4. 是否需要遵守行业安全标准,例如 Kerberos 或 WS-Security? 虽然所有这些都是可能的,但是行业的发展方向是基础架构和中间件支持的符合标准的安全性(例如 Web 服务安全性(WS-Security)功能。

21、然而,相比之下,这些安全标准也是最近才提出的,而且对它们的产品支持仍在发展的过程中,而不是已经确定了,这里尤其需要特别考虑的就是它们的互操作性。因此,任何 ESB 架构都需要尽可能早地确定安全需求,以便在选择实现技术时可以将它们包括进来。 结束语在本文中,我讨论了大多数通用的 SOA 原则,以及它们与 Web 服务技术的关联。基于这些原则,我提出了需要一个基础架构组件,这个组件可以提供路由功能,以便使服务能够彼此交互,同时还能够支持使用另一个服务实现来替换原有的服务实现。这些功能都是通过 ESB 实现的。ESB 在维持集中控制的同时提供分布式的基础架构,因而需要一些形式的服务路由目录,并且还可

22、能需要业务服务目录。Business Service Choreographer 从 ESB 调用服务,然后通过 ESB 把这些流程作为新的服务公开。ESB 的许多功能包括提供: 通信 服务交互 集成 质量服务 安全 服务级别 消息处理 管理及自治服务 建模 基础架构智能 从这些不同的功能中,我确定了建立 ESB 所需的最低功能,包括通信、集成和服务交互。 在这个系列的下一个部分中,我将讨论一些通用的场景,以及与这些场景相关的解决方案模式,同时指出影响这些场景最一般的问题。致谢如果作者没有与下列人员进行讨论,就不会有本文的存在,他们中的所有人都为本文贡献了很好的想法和思想:Beth Hutch

23、ison、Rachel Reinitz、Olaf Zimmerman、Helen Wylie、Kyle Brown、Mark Colan、Jonathan Adams、Paul Fremantle、Keith Jones、Paul Verschueren、Daniel Sturman、Scott Cosby、Dave Clarke、Ben Mann、Louisa Gillies、Eric Herness、Bill Hassell、Guru Vasudeva、Kareem Yusuf、Ken Wilson、Mark Endrei、Norbert Bieberstein、Chris Nott、Al

24、an Hopkins 和 Yaroslav Dunchych。 参考资料 您可以参阅本文在 developerWorks 全球站点上的英文原文. 要了解 Web 服务技术如何为实现面向服务的体系结构提供必要的基础,请阅读 Annrai OToole 撰写的 Web Service-Oriented Architecture - The Best Solution to Business Integration 。 在 CBDI 论坛查阅由 Lawrence Wilkes 撰写的文章SOA - Save Our Assets(需要订阅)。 Patterns: Service-oriented A

25、rchitecture and Web Services红皮书,SG24-6303-00,2004 年 4 月,作者 Endrei M. 等。 阅读“迁移到面向服务的体系结构,第 1 部分”(developerWorks,2003 年 12 月)和“迁移到面向服务的体系结构,第 2 部分”(developerWorks,2003 年 12 月)。 访问LooselyC以获得企业服务总线(Enterprise Service Bus)链接列表。 最初定义企业服务总线(Enterprise Service Bus)的文章Gartner需要订阅,不过,也可以通过搜索它们的站点进行查找,该文章的标题为

26、Predicts 2003: Enterprise Service Buses Emerge,2002 年 12 月 9 日发布,作者 Roy W. Schulte。 研究IBM Patterns for e-business网站。 访问 IBM 的按需商务(on demand business)以获得更多关于按需操作环境的详细信息。 本文所用的资料来自 forthcoming 红皮书Patterns: Implementing an SOA using an Enterprise Service Bus,SG24-6346-00,草案,作者 Martin Keen 等。 在 develope

27、rWorks的 SOA and Web services 技术专区查找其他 SOA 和 Web 服务技术资源。 在Developer Bookstore购买关于各种各样的技术主题的打折图书。关于作者Rick Robinson 是 IBM 的一名 IT 架构师,他于 1997 年 3 月作为一名开发人员加入该公司。他是 EMEA WebSphere Lab Services 的 Architecture Services group 的一位成员,他从 1999 年 WebSphere 软件平台首次发布时就开始关注它。Rick 更关注技术而不是行业,但是在过去的三年里他花了大量的时间和金融领域的公

28、司一起工作。Rick 是 IBM 的一位值得信赖的 IT 架构设计专业人员。在加入 IBM 之前,Rick 在攻读物理博士。第 2 部分驱动体系结构的 ESB 场景和问题在关于企业服务总线(Enterprise Service Bus,ESB)的这个系列的第二部分中,作者描述和分析了实现 ESB 和其他面向服务的体系结构(SOA)的解决方案的一些常见场景。这个系列的第 1 篇文章描述了企业服务总线(Enterprise Service Bus,ESB)的基本概念和工作角色。本文侧重于描述为支持面向服务的体系结构(SOA)而进行的 ESB 开发的场景和问题。您的组织的 SOA 和 ESB 可能需

29、要应用到一个或多个这样的场景。ESB 场景及分析SOA 中的 ESB 场景部分描述了许多 SOA 和 ESB 实现的起点。每个场景都指出驱动体系结构和设计决策的问题,而这些决策会影响解决方案模式的选择(将在这个系列的第 3 部分中进行介绍)。在 驱动 ESB 体系结构和设计决策的问题 部分中,您可以阅读关于这些问题的详细描述。这些解决方案模式代表着从服务技术的基本使用,到简单的 ESB 实现,再到复杂的 SOA 体系结构的发展过程。 这些 ESB 场景的目的并不在于展示组织对 SOA 或 ESB 的全部需求。例如,虽然某个场景(如两个系统的基本集成)可能看起来很好地匹配了特定的当前需求,但是随

30、着时间的推移,这种需求可能发展成更复杂的需求(如支持一个或多个应用程序实现更广泛的连接性场景。另外,还可能有许多对 SOA 或 ESB 基础架构的单独需求会出现这样的情况,就其个别而言符合简单场景,但集中在一起则表现得比较复杂。我们需要在实现满足非常明确的需求的解决方案、努力预料未来的需求和定义跨企业的一致解决方案这三者之间作出选择。将组织的需要看作是总体上相对复杂的场景(如实现具有高服务质量和 Web 服务标准支持的 SOA 基础架构)可能是比较适合的。另外,还可以将个别的情形单独看作是简单场景,但是定义最后得到的这些解决方案以后发展成通用体系结构的路线。SOA 中的 ESB 场景下面的几个

31、部分描述了这些场景的特征: 两个系统的基本集成 支持一个或多个应用程序实现更广泛的连接性 支持遗留系统实现更广泛的连接性 支持企业应用程序集成(EAI)体系结构实现更广泛的连接性 实现组织之间服务或系统的受控集成 通过编排服务使流程自动化 实现具有高服务质量和 Web 服务标准支持的 SOA 基础架构 两个系统的基本集成 场景 企业需要提供用不同的技术(如 J2EE、.NET、CICS 等等)实现的两个系统之间的集成。Web 服务 SOAP 标准或消息传递中间件可能是候选的集成技术。这个场景的一个重要的问题是,将来是否会出现需要集成其他系统的情况。一开始就使用可扩展解决方案可能会对未来的需要提供支持;但是必须在为构建这样的解决方案而付出的额外工作与解决简单的问题的最初需要之间保持平衡。 最相关的问题 相关的解决方案模式(请参见下一篇文章)1,3,4,6,10,13

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1