Apache Synapse
Apache Synapse可以提供企业服务总线(ESB,Enterprise Service Bus)的许多功能。可以从很多厂商那里获得ESB,通过可扩展标记语言(EXML,Extensible Markup Language)Web服务接口以及基于规则的标准化路由,在企业系统之间提供安全的互用性。ESB有这么一个功能,把XML文件从一种数据格式转换为另一种,从而使得可以在不同的应用程序中共享这些文件。此外,ESB还保证可以在预设规则的基础上共享数据。
下载:http://synapse.apache.org/download.html
Apache Synapse特性
1、基于Apache Axis2,最新1.2版本
2、支持服务注册以及寻址管理
3、支持WS-Addressing/WS-Security/WS-RM等规范
4、支持HTTP(S)/JMS/POP3/SMTP/IMAP/FIX等协议以及转换
5、消息处理:消息接收、转发、中介、路由、错误处理
6、服务质量
7、支持Load Balance和Failover,以及服务缓存
8、支持脚本中介,无需修改应用代码,通过JS等脚本来控制消息
9、JMX,支持自治监控
消息仲裁框架
Apache Synapse 实现了通用的中介框架。可以指定一个对消息进行操作(基于它所到达的端点、或基于某种筛选)的中介序列。Synapse 的目标是支持一组有价值的、即时可用的中介。
Synapse中介
1、记录日志到 log4j
2、修改 Header,包括 WS-Addressing Header。 实现基于内容的路由功能。
3、运行脚本,包括 JavaScript、Groovy、Ruby 和 Bean Scripting Framework (BSF) 所支持的其他脚本。E4X 支持允许 JavaScript 直接操纵 XML 消息,而不需要使用像 DOM 这样的 API。在 Ruby 中也存在类似的支持。
4、启用和终止 WS-Security 与 WS-ReliableMessaging。
可在 SOAP 版本和 XML/HTTP 之间进行切换。
5、协议转换,JMS/HTTP(S)
6、XML 模式验证。
7、发现消息中的错误或者丢弃它们。
8、用户自定义中介
Synapse配置架构
Synapse代理模型
例一、Web Service代理示例
场景说明:可以将不同应用上的Web Service发布到一台Synapse主机上
例二、CBR示例
场景说明:基于内容的消息路由。匹配SOAP消息中的“To”属性值,将符合条件的请求转发到指定的端点处理。
例三、负载均衡
场景说明:以round-robin的方式在三个服务端点之间实现负载均衡。
60
60
60
例四、Fail Over
场景说明:在三个服务端点之间实现失效备援。
60
60
60
例五、jms/http协议转换
场景说明:用jms客户端API跨协议访问远程Web Service。
例六、可靠消息交互
场景说明:通过WS-RM在synapse与服务提供者之间实现可靠消息交互。
例七、自定义中介
场景说明:通过Synapse API自定义中介(实现org.apache.synapse.Mediator 接口)来实现对传输消息的访问和控制。
页:
[1]