两种SOA平台建设方案比较

来源:互联网 发布:nginx 自定义404 编辑:程序博客网 时间:2024/05/17 06:39

        为了能支撑业务迅速发展,应用系统需要重构,做相应的分层和拆分,原来在一个系统内部能处理完的逻辑现在可能分散到多个系统协作完成,系统间调用的方式有很多种,比如Http,Hession,RMI,WebService,还有同步和异步的区分,可以想象一下如果不通过SOA平台进行封装和统一,光这些调用方式就会让系统变得很乱,也会增加学习和开发成本。如何做SOA化?下面对两个方案进行了比较(整理自bluedavy的《分布式java应用:基础和实践》):

SOA框架Tuscany(IBM和BEA捐献给Apache的产品)Mule实现原理基于SCA(Service Component Architecture)规范实现的,此规范是由IBM、Oracle等多家厂商制定的基于ESB,消息中间件实现发布服务支持将spring、java、bpel、OSGI、resource等对象发布为SCA Service支持将spring或普通java对象发布为Mule Service,相比Tuscany要弱调用服务和发布服务一样,支持多种应用集成和调用方式通过发送消息给总线进行调用,相比Tuscany麻烦支持的通信方式Web Service、JMS、Ajax、corba、erlang、jsonrpc、rmi、ejb等Web Service和JMS交互方式可通过设置CallbackEndpoint来实现异步,不指定默认是同步调用通过参数synchronous实现同步,不指定默认异步调用调试/跟踪服务端抛出异常,会将异常带到调用端/依赖管理/(可自行扩展)MuleSoft提供了一个MuleGalaxy来做服务治理高性能、高可用/(可自行扩展)/

        在建设SOA平台时,除了考虑上面列的那些点外,还需要考虑到集群环境、服务治理、资源动态分配等。