BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Apache Synapse 1.0和WSO2 ESB 1.0发布

| 作者 Stefan Tilkov 关注 5 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2007年6月15日. 估计阅读时间: 7 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Apache软件基金会发布了Apache Synapse 1.0;同时,WSO2——Axis2背后的公司——也发布了基于Synapse的商业产品,名为WSO2 ESB 1.0

发布声明中说,

Apache Synapse是一个简单而高效的Web Service中介和SOA框架。它可以很容易地作为服务网关或者HTTP代理加入到你现有的网络中。一旦你的服务请求开始交由Apache Synapse中转,Apache Synapse就可以执行许多功能,包括路由、负载平衡、变换(transformation)和协议交换(protocol switching)。Apache Synapse可以用来构建Enterprise Service Bus(ESB)或者Service Oriented Architecture(SOA)。

Synapse的主要功能包括:

  • 支持XML/HTTP、JMS、SOAP 1.1/1.2、WS-Addressing和MTOM二进制附件
  • XML/HTTP (POX)和SOAP、JMS和HTTP之间的简单协议交换
  • 内建支持基于XPath和Regex的路由,以及基于XSLT的变换
  • 支持高性能非阻塞的HTTP和HTTPS(基于Apache HttpCore)
  • 支持负载平衡、故障转移和流量调节
  • 支持先进的Web Services标准
  • WS-ReliableMessaging
  • WS-Security
  • WS-Policy
  • JMS支持包括文本、二进制数据、XML和SOAP/JMS
  • 日志和协议头修改
  • 可通过脚本语言包括JavaScript、Groovy和Ruby进行扩展
  • 定制的Java类和Spring Framework构件使Synapse得以扩展
  • 可扩展性模型令核心XML配置语言可通过JAR插件包扩充
  • 支持超时、失败处理和恢复
  • 大量的示例,涵盖了基于内容的路由、XSLT、WS-Security等等方面。
  • 内建以Apache Axis2为基础的测试/范例服务器,方便进行原型设计和测试
  • 从远程登录库(registry)加载脚本、元数据、配置和资源的能力
  • 可选的对路由表及其他配置信息的动态更新
  • 支持JDK 1.4和1.5

跟Axis2不同,Synapse不是一个编程环境。相反,它是通过XML配置文件(就Synapse而言)或者图形用户界面(就WSO2 ESB而言)来进行配置和管理的。在1月份,InfoQ曾报道过Synapse孵化成功的情况;从那以来,Synapse已经升级到使用Apache Axis2 1.2,并增加了对非阻塞HTTP和HTTPS传输的支持。除了在范例和文档上的改进,对WSDL端点以及高可用性的支持也都得到了增强。

InfoQ趁1.0版发布的机会对WSO2的CTO Paul Fremantle进行了进一步的访问。显然,WSO2 ESB附带商业支持和由WSO2提供的训练课程;另外,WSO2 ESB还附带了一个管理用的Web界面和一个注册库(registry)。Paul在一篇博客文章中说:

我们内建了一个注册库(registry)和仓库(repository),你可以通过Web界面来管理它们。这意味着你可以在同一个地方存储、管理和使用所有的资源——WSDL、URL、XSLT、脚本、WS-Policy、Synapse.xml等等。我认为,这是用Synapse(或者其他产品)来真正构建ESB的一个关键方面。我们在这个方面还要继续增强,敬请关注。

当被问到这次发布的工具中对注册库的支持时,Paul Fremantle解释说,

通过HTTP GET接口或者文件系统,Synapse可以使用提供XML或其他配置信息的注册库。作为ESB一部分的“注册库”本质上是一种以文件系统的方式来管理所需资源(WSDL、WS-Policy、XSLT、Synapse XML配置文件等)的手段。

我们还向Paul询问了如何决定是使用Synapse/ESB还是Axis2/WSAS(WSAS是WSO2在Axis2基础上提供的商业版本):

首先ESB和Synapse都应该能够与其他运用SOAP或XML的系统(包括经由JMS)互操作。ESB实际上是一个管理、路由和监控系统。它不是被设计来作为实际服务的宿主,而仅仅是虚拟服务,这些虚拟服务是由在其他地方运行的实际服务实现的。因此你会使用Axis2/WSAS来构建实际的服务,而使用ESB或Synapse来给一组运行在其他地方的服务(可能使用WSAS、Axis2、Axis1、.NET、Perl、PHP、JMS)创造一个总线(一组虚拟的、受控的、一致的服务)。

Paul声称WSO2的ESB(包括Synapse)的性能,要远远超越另一个他没提到名字的处于领先地位的商业ESB产品:

ESB被设计成快得冒烟。我们不能说出名字(因为专有厂商通常都写进许可协议里面的那些屁话),但我们对WSO2 ESB和一个处于领先地位的专有/闭源ESB进行了对比测试。结果显示我们在简单路由上快20%、基于内容的路由上快30%、XSLT则快100%。我们很快会发布这些性能数据。我们有一个完整的非阻塞异步模型——甚至包括HTTP和HTTPS,这意味着我们可以将规模扩展到处理数千个并发连接而没有一点性能下降。

WSO2已经公开发布了测试结果和基准测试的配置环境。

Apache Synapse的源码和编译版本都可以从http://ws.apache.org/synapse下载。

查看英文原文:Apache Synapse 1.0 and WSO2 ESB 1.0 Released
译者简介:郭晓刚是一名独立开发者。在经过了10年修练之后,总算是懂得一点编程了。目前主要关注以SpringFramework和Hibernate为主干的Java Stack和Adobe Flex。Microsoft Office的插件开发也是关心的方向之一。同时也在尽力做一些技术翻译工作,把知识分享给更多的人。参与InfoQ中文站内容建设,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT