舟山信息港
养生
当前位置:首页 > 养生

理解SOA体系结构中ESB场景和解决方案

发布时间:2019-06-20 04:06:00 编辑:笔名

  引言

  的 IT 集成是使用 Web 服务技术实现面向服务的体系结构(SOA),有许多的文章讲述了该技术的好处和相关的实践。近,企业服务总线(Enterprise Service Bus,ESB)的概念被表述为 SOA 基础架构的关键组件。然而,有必要阐明 ESB 究竟是一个产品、技术、标准,还是别的什么。特别是,当前是否可以构建 ESB?如果这样,该如何构建?

  本文将 ESB 描述为由中间件技术实现并支持 SOA 的一组基础架构功能。ESB 支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。为了达到此目的,需要将多种功能集中起来并加以分类。然而,并不是 ESB 能够传递值的每一种情形都需要所有的功能。

  本文确定了一组功能,可以满足 ESB 与 SOA 的原则保持一致的基本需要。通过确定这些功能,您可以确定利用何种现有技术来实现支持 SOA 的 ESB。通过考虑特定情形下的需求如何确定对额外功能的需要,您可以选择适合这种情形的实现技术。

  随着 ESB 解决方案的发展和成熟,它所需要的功能也在不断地发展。同样,可见的 ESB 产品的可用性和功能也日趋完善。因此,在本系列的一篇文章中,我将考虑 SOA 和 ESB 的发展路线,以指导 ESB 功能和技术的初应用,并且阐述如何选择循序渐进的方法。

  ESB 在 SOA 内的工作角色

  虽然我不打算深入讨论 SOA 的定义,但是在这里概括一下大部分对 SOA 的描述所适用的原则是很有用的:

  利用显式的与实现无关的接口来定义服务。 利用强调位置透明性和可互操作性的通信协议。 封装可重用业务功能的服务的定义。 图 1说明了这些原则。注意,虽然 Web 服务技术非常符合这些原则,但它并不是符合这些原则的技术。

  图 1: SOA 的原则

  498)this.style.width=498;">

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

  ESB 支持这些服务交互功能,并提供集成的通信、消息传递以及事件基础架构来支持这些功能。因此,它将当今正在使用的主要企业集成模式组合成一个实体。ESB 为 SOA 提供与企业需要保持一致的基础架构,从而提供合适的服务级别和可管理性、以及异构环境中的操作。

  本文剩余部分将讨论 ESB 在 SOA 中的角色,包括它提供的除了基本的路由和传输以外的功能,如下面的ESB 功能模型部分中所述。

  ESB 结构

  ESB 有时被描述为分布式基础架构,这与其他的解决方案形成了对比,比如消息代理技术一般被描述为中心辐射型(hub-and-spoke)。然而,这并不是真正的差别。正在研究两个不同的问题:控制的集中和基础架构的分布。ESB 和中心辐射型(hub-and-spoke)解决方案都集中控制配置,比如服务交互的路由、服务命名等等。同样,这两个解决方案可能部署在简单的集中式基础架构中,也可能采用更复杂的分布式方式进行部署。图 2展示了这一点。

  毫无疑问,不同的技术对它们所支持的物理部署模式有不同的约束——有些可能适合于非常广泛的分布,以支持在很大的地理范围内进行的集成,而其他的可能更适合于部署在本地群集中,以支持高可用性和可伸缩性。使物理分布需求与候选技术的功能相匹配是 ESB 设计的一个重要方面。另外的一种能力也是非常重要的,就是以增量方式扩展初的部署来反映不断变化的需求、集成附加的系统或扩展基础架构的物理范围。

  图 2: 分布式 ESB 基础架构的集中控制

  498)this.style.width=498;">

  我还应该定位在 SOA 基础架构中 ESB 与其他组件之间的关系,特别是与 Service Directory、Business Service Choreography、以及 Business-to-Business (B2B) Gateway 这些组件之间的关系。由于上述 SOA 原则对这些组件并没有严格的要求,所以我们可以将它们视为可选组件图 3展示的 SOA 说明了这些组件之间的关系。

  图 3: SOA 中的 ESB 角色

  498)this.style.width=498;">

  ESB 需要某种形式的服务路由目录(service routing directory)来路由服务请求。然而,SOA 可能还有单独的业务服务目录(business service directory),其基本的形式可能是设计时服务目录,用于在组织的整个开发活动中实现服务的重用。Web 服务远景在业务服务目录和服务路由目录的角色中都放置了一个 UDDI 目录,因而使得可以动态发现和调用服务。这样的目录可以视为 ESB 的一部分;然而,在这样的解决方案变得普遍之前,业务服务目录可能与 ESB 是分离的。

  Business Service Choreographer 的作用是通过若干业务服务来组合业务流程;因此,它将通过 ESB 调用服务,然后再次通过 ESB 将业务流程公开为客户端可用的其他服务。然而,Business Service Choreographer 在编排业务流程和服务中所扮演的角色确定了这种业务工作流技术是一种与基础架构技术 ESB 分离的技术。

经期延长胸胀痛怎么办
经期延长要吃什么药
经期延长有血块吃什么
友情链接
西藏有哪些小儿呼吸科医院 荆门有哪些心脏科医院 咸宁有哪些妇泌尿科医院 随州有哪些IMCC医院 恩施有哪些眼整形医院 湘潭有哪些中医内科医院 龙岩消化内科医院哪家好 阜新有哪些肛肠科医院 阜新有哪些急诊科医院 滁州有哪些小儿心内科医院 滁州有哪些小儿血液科医院 渭南法四医院哪家好 南昌小儿内分泌科医院哪家好 长春中医呼吸科医院哪家好 普洱消化内科医院哪家好 平凉计划生育科医院哪家好 贵阳耳鼻咽喉头颈科医院哪家好 塔城口腔修复科医院哪家好 塔城牙体牙髓科医院哪家好 阿勒泰体检科医院哪家好 石河子五官科医院哪家好 阿拉尔肝病科医院哪家好 万宁综合医院哪家好 东方过敏反应科医院哪家好 临高房缺医院哪家好 西宁小儿神经外科医院哪家好 双河胸外科医院哪家好 昆玉体检科医院哪家好 南京二丙医院哪家好 孝感三丙医院哪家好 人工呼吸 痤疮 急性髌骨脱位医院 景德镇有哪些医院 小儿大便干 小孩老是流鼻血 宝宝大便有血 小孩咽喉肿痛 儿童眼屎多 小儿口臭 小孩流鼻血是什么原因 小孩大便干 小孩为什么流鼻血 孩子大便干 宝宝大便绿色 3岁宝宝口臭怎么消除 宝宝不拉大便怎么办 小孩有口臭是怎么回事 小孩半夜流鼻血是什么原因 小孩爱流鼻血是什么原因 宝宝小便黄 小孩睡觉流鼻血 小孩中暑怎么办 小孩眼屎多 新生儿眼屎多 小孩经常流鼻血怎么治 宝宝眼屎多 宝宝流鼻血是什么原因 孩子小便黄 三岁小孩流鼻血 幼儿大便干 孩子上火 孩子中暑症状 小孩上火吃什么 宝宝尿黄怎么回事 婴儿大便干燥怎么办 小孩晚上睡觉流鼻血 小儿口臭 小孩上火 小儿口舌生疮 小孩口臭 儿童流鼻血怎么处理 孩子咽喉肿痛 幼儿大便干 8岁儿童口臭怎么办 宝宝口舌生疮 小儿大便干 宝宝吃什么降火最快 小孩小便黄 小儿大便干 小儿眼屎多 小孩经常流鼻血怎么办 小孩为什么流鼻血 小孩上火怎么办 儿童口舌生疮 小孩口臭怎么办 小孩子口臭是什么原因 孩子总流鼻血怎么回事 小孩老是流鼻血是什么原因 小孩中暑怎么办 婴儿流鼻血 小孩大便干 小孩总是流鼻血是怎么回事 幼儿口舌生疮 宝宝口臭是什么原因 宝宝大便黑色 孩子总流鼻血 儿童上火 小孩有眼屎是怎么回事 小孩流鼻血怎么治