Apache Synapse 的重要性

  • 时间:2018-06-19 22:30 作者:石头大V 来源:石头大V 阅读:103
  • 扫一扫,手机访问
摘要:Synapse 是一个简单的 XML 和 Web 服务管理与集成代理商,可使用于构成 SOA 和企业服务总线(ESB)的基础。Synapse的关注点是路由,转换,消息验证以及基于web服务和xml标准的注册。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMA

Synapse 是一个简单的 XML 和 Web 服务管理与集成代理商,可使用于构成 SOA 和企业服务总线(ESB)的基础。Synapse的关注点是路由,转换,消息验证以及基于web服务和xml标准的注册。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等传输协议,还支持多种web服务规范(WS-*)。Apache Synapse是 Web 服务项目中一项成熟的 Apache 活动,并且是非常成功的 Apache Axis2 项目的一个分支。它提供了中介、管理、以及在各种不同的应使用程序之间转换 XML 消息的可以力。Apache Synapse 的重要性表现到以下几个方面:

1、将您现有的系统转化为 SOA 平台

Apache Synapse 是一个简单的、高质量开放源代码的替代方法,为实现 SOA 提供了一种途径,它能公开现有的应使用程序,而无需重新编写任何代码。重使用、集成、管理和控制 与现有应使用程序的交互,而无需对它们进行更改,这种可以力使得 Synapse 成为一项颇具吸引力的选择、以及实现 SOA 策略的关键途径。

ESB 模型促进了与服务契约和与服务契约相关联的元数据的基于 SOA 的集成,如 Web 服务形容语言(WSDL)、模式或者策略。ESB 模型(请参见图 1)确保进入该总线的每条消息最终都可以到达正确的位置。

Apache Synapse 的重要性

SOA 模型 。Synapse 构建于 XML 和 Web 服务标准之上。从最基础的角度而言,Synapse 建立在通过网络传送消息的思想之上。消息能采使用任何格式,但是 Synapse 将它们放到一个逻辑信息集中,并采使用包含 Header 和正文的信封的 SOAP 方法对其进行建模。通过用 Web 服务标准,如 WS-ReliableMessaging 和 WS-Security,您能用 Synapse 以确保应使用程序之间安全的、可靠的连接。Synapse 能负责这些类型的服务质量(QoS)功可以,而无需修改现有的应使用程序。通过在现有的 XML/HTTP 服务前面直接放置一个 Synapse 实例,您即可以增加对 WS-Security 的支持。这样能增加对数字签名的支持,在 B2B 环境中是很重要的。

通使用的交互模型:HTTP 和 SOAP 。随着 Web 的出现,HTTP 已经成为通使用的信息传输方法。因为它具备防火墙友好性、广泛的可使用性、得到广泛的承认、以及 HTTP 在全球范围内受到广泛支持,大多数企业已经用 HTTP 公开他们的服务。能以两种不同的方式来看待 HTTP,将其视为实际的交互协议,或者视为传输协议。那些将 HTTP 视为交互协议的人将遵循 REST模型,并且倾向于严格遵守 HTTP 动词(GET、PUT、POST、DELE)语义。还能将 HTTP 作为防火墙友好的传输方式,通常的模型是发送 XML 文档,而后再从响应中获取 XML 文档。

SOAP 是一种通使用的、传输方法独立的消息传递格式。由于它与平台、传输方法和语言无关的本质,所以它已被许多应使用程序所采使用,从帮助 eBay PowerSellers 管理他们的店铺,到跨网络发送打印作业。它也是许多高层次规范的基础。它能与其余机制一起用或者者单独用,实际上,SOAP 和 HTTP 构成了通使用的交互模型,并且能连接企业边界内外的异类系统。

虽然 Synapse 支持许多不同的传输方式,其核心依然用了 SOAP 模型。这意味着什么呢?从最基础的角度而言,这意味着有反映 SOAP 信封的内部数据结构。例如,to 和 replyTo 地址用 WS-Addressing 规范进行建模。当消息流通过 Synapse 引擎时,能用标准中介将消息与各种格式之间进行转换,包括 REST、SOAP、JavaScript Object Notation (JSON) 和 JMS。此外,能通过编写自己设置中介对其进行扩展。

通使用数据模型。目前 XML 已经成为通使用数据格式,受到几乎所有编程语言的广泛认可和支持。这使得异类应使用程序可以够用共同的数据模型来传递数据,而任何语言都能很容易了解这个数据模型。在 Synapse 中,所有的内容都是与 XML 有关的,并且其思想是在网络中尽可可以地用 XML,从而将您的整个网络变为一个总线。这样做的起因之一是,网络中所有的 XML 交互构成了 ESB,能用 Synapse 对这个总线进行管理。

Apache Synapse 的重要性

能用不同的方法来部署 Synapse。

Apache Synapse 的重要性

  • Proxy 模型 在代理商模型(如上图 )中,您明确地定义一个新的端点(代理商),Synapse 在该端点上进行侦听。实际上,这就像一个新的服务,除了服务逻辑是通过远程服务来实现之外。在这个模型的最简单的实例化过程中,您能直接将代理商侦听器连接到远程端点。然而,即便在这种简单的情况下,您也能完成少量有价值的事情。例如,您能在 XML/HTTP、SOAP 以及 JMS 之间进行切换。您能打开或者者关闭某些协议,如 WS-Addressing、WS-ReliableMessaging 和 WS-Security。并且在 Synapse 1.0 发行版中,您能在这些协议之间定义一组相同的服务并平衡负载。

  • 基于策略的部署 在这一方法中,您能对用户端进行配置,以便将所有的消息发送到 Synapse。例如,Synapse 能作为一个 HTTP 代理商。这是非常方便的,由于几乎每个 Web 用户端都能配置 HTTP 代理商,而无需改变应使用程序代码。通常只要要对通过 Synapse 的消息进行重定向就可。Synapse 有一个缺省的活动序列,应使用于按这种方式到达的任何消息。而后,能用诸如基于内容的挑选(XPath 或者者 Regex)之类的技术,以便有选择地将这些策略应使用于特定的消息。

2、中介引擎

Apache Synapse 实现了通使用的中介框架。您能指定一个对消息进行操作(基于它所到达的端点、或者基于某种挑选)的中介序列。Synapse 的目标是支持一组有价值的、即时可使用的中介。这类内置中介包括:

  • 记录日志到 log4j。

  • 修改 Header,包括 WS-Addressing Header。

  • 运行脚本,包括 JavaScript、Groovy、Ruby 和 Bean Scripting Framework (BSF) 所支持的其余脚本。E4X 支持允许 JavaScript 直接操纵 XML 消息,而不需要用像 DOM 这样的 API。在 Ruby 中也存在相似的支持。

  • 启使用和终止 WS-Security 与 WS-ReliableMessaging。

  • 在 SOAP 版本和 XML/HTTP 之间进行切换。

  • XML 模式验证。

  • 发现消息中的错误或者者丢弃它们。

  • Apache Synapse 的重要性

3、连接、管理和转换您的企业服务

Synapse 能连接和管理您的服务,并为您的服务提供中介。

连接 除了在内部网中进行操作之外,Synapse 还能使用作您企业的网关,并且更有效地管理对合作伙伴公开的服务。网关模型能包括用 Apache Rampart 框架应使用身份验证机制、以及对进入的消息进行受权,以支持 WS-Security 和 WS-SecureConversation。通过将网络内部的虚拟 URL 映射为真实 URL,Synapse 能使得您的企业可以够在隐藏内部基础结构细节的同时,为外部系统维护统一的寻址方案。您能在组织内部用相同的模型,以便独立于具体的实现,提供一套清晰的、可管理的总线级别服务。集中式的连接模型也促进了对 QoS 各个方面的更好管理。

例如能用 Synapse 将简单的 GET HTTP 请求映射为与后台连接的 XML/JMS。用这种方法,能对更大范围的用户端公开遗留的资源,包括 Asynchronous JavaScript + XML (Ajax) 应使用程序和移动设施。

管理 Synapse 为管理策略和服务的其余方面提供了一致的模型。通过将 Synapse 作为中间层,您能控制诸如身份验证、审核、日志之类的方面,或者者诸如故障转移和负载平衡之类的 QoS 方面。这使得您的组织能更高效且更有效地管理资源。能通过配置一个简单的 XML 文件来启使用所有这些特性,而无需编写任何代码。

下面提供了少量示例:

  • 能将 http://stockquote.com?symbol=RHAT 映射为一个服务,并作为一个基于负载平衡策略(如 Round Robin)的集群进行部署。假如是主服务器加后备服务器的情况,当主服务器关闭时,故障转移中介能将它映射到后备服务器。

  • 能为所有的对 http://abcbank.com/personal 的请求进行身份验证、日志记录、以及随机地进行日志记录和审核标注。

  • 能对 http://abcbooks.com/suppliers?category=XXXX 应使用中介,以便根据供应商类别增加不同的策略。例如,假如 category=silver,那么供应商的信誉额度是 5000;假如 category=gold,那么供应商的信誉额度能是 10000。

转换 Synapse 能将您的遗留应使用程序转换为先进的 Web 服务。Synapse 能使用作代理商,并且能通过完成下面的一项或者者多项工作实现服务和应使用程序的虚拟化:

  • 对 SOAP 消息(Header 或者正文)执行 XSL 转换(XSLT)

  • 用 JavaScript/E4X 转换程序直接将 XML 映射为 JavaScript

  • 用传统的 Java 对象(POJO),您能在其中编写 Java 逻辑,以便对消息进行操作

  • 将 JSON 映射为 XML,其中能将 JSON/HTTP 流作为 SOAP 消息发送,反之亦然

  • 执行附件中介,其中能将带附件的 SOAP 转换为 Message Transmission Optimization Mechanism (MTOM)、将 Base64 转换为 MTOM,反之亦然。

  • 执行您自己的自己设置转换

这为重使用您现有的应使用程序、以最少的投资对它们进行集成以提供更好的服务提供了机会。有了 Synapse,您能将整个网络转换为 ESB,这个 ESB 提供了集中式和一致的方法,以便管理所提供的服务。

4、总结

Apache Synapse提供了一个简单的、易于用的、开放源代码替代方法,以最少的成本和工作量,将您现有的中间件重新构造为 SOA 平台。通过中介或者者转换现有的服务,而无需进行编码,实现了重使用的最大化,并且提供了一种优秀的模型,以便将您的服务集成到 ESB 模型。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】学习web前端开发是正确的选择(2019-09-15 16:55)
【系统环境|】干货整理!零基础html5网站开发学习步骤方法(保存不后悔)(2019-09-10 16:27)
【系统环境|】「前端入门」前端基本概念(2019-09-07 21:36)
【系统环境|】小白入门学习web前端,这些干货不能少(2019-09-05 20:59)
【系统环境|】不是计算机专业,哪个专业更适合学习web前端(2019-09-03 20:31)
【系统环境|】入行web前端开发可以做什么工作(2019-09-02 20:51)
【系统环境|】什么是Web前端呢?为什么说web前端开发人员的薪资高、前景好呢?(2019-08-31 20:55)
【系统环境|】2019年Web前端开发的8个趋势,你知道几个?(2019-08-29 16:23)
【系统环境|】学习web前端,掌握这些,才有底气跟面试官提薪资(2019-08-28 15:23)
【系统环境|】Web前端为什么那么好(2019-08-27 18:20)
手机二维码手机访问领取大礼包
返回顶部