数据交换主要解决多个异构系统数据的访问与传输,企业中一般存在多个应用系统,而这些应用系统有可能是在不同的时期、由不同的软件厂商提供的。如果系统之间有关联,那么系统之间存在通讯和数据交换。本篇就数据交换的技术进行分析对比,在技术的层面对数据交换进行描述,主要是面向企业的信息与技术部门用户读者。
|
|
名称 |
Webservice |
activeMQ |
备注 |
|
技术部分 |
基于协议实现 |
基于SOAP协议 |
基于JMS协议 |
|
|
发起请求 |
获取到远端service的proxy后直接调用。 |
遵循JMS API发起请求 |
| |
|
将请求转化为符合协议的格式 |
将请求信息转化为遵循SOAP协议的XML格式,由框架转化为流进行传输。 |
2进制流 |
| |
|
传输协议 |
Http协议。 |
支持多种传输协议,例如tcp/ip、udp、http等等 |
| |
|
应端基于什么机制来接收请求 |
监听Http请求。 |
监听符合协议的端口。 |
| |
|
怎么将流还原为传输格式 |
根据SOAP协议进行还原。 |
2进制流 |
| |
|
处理完毕后怎么回应 |
返回结果写入XML中,由框架返回至调用端。 |
遵循JMS API生成消息,并写入JMS Queue中。 |
| |
|
应用开发 |
与.net或其他平台交互 |
能直接与其他应用平台进行交互,交互的平台必须同时实现webservice。 |
Active MQ解决方案基于Axis提供的JMS(由Java编写而成)和“插件式协议”特性(由.NET编写而成),因此,它并不是以真正的.NET定制通道方式包装的,这就需要更多的定制编程。 |
|
|
开发服务器端口 |
不需要另外开放 |
需要开放与activemq相关的端口 |
| |
|
通讯及平台 |
同步通讯,各个系统是用完全不同的实现技术平台的系统。对高负载,响应速度不是要求很高的情况下采用。 |
支持异步通讯,在同是java平台下性能上比webservice高。 |
| |
|
个人观点 |
Webservice与activemq(jms)是两种截然不同的技术,实现数据交换平台各有各的优缺点。Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。但,WebService实现起来要容易,但是效率比较低,尤其是传输量比较大的时候。不过,我们在传输量大的时候已经使用前置机模式,这点可以暂时先不考虑。 activemq(jms)在Java系统之间,可以认为是首选。虽然,他也可以实现类似webservice 通过http协议来进行传输,但如果你只是简单实用JMS,如果没有定义一个通用的消息结构,很难做实现一个通用的业务集成的,这样的传输效率与webservice又相同了。
综上所述: WebService 应是首选,便于后续开发人员理解及后续子系统之间的集成。 | |||