《分布式java运用:基础与实践》笔记2

来源:互联网 发布:苹果电脑安装网页软件 编辑:程序博客网 时间:2024/06/05 13:19

第二章、大型分布式java应用与SOA

随着业务复杂性的上升,单系统无法满足需求。需要多系统细化分工!拆分系统必然带来系统之间信息交互的问题。简单地办法是统一交互标准——SOA。

SOA全称是面向服务架构。它强调系统间用标准的服务方式进行交互,各系统允许采用不同语言、不同框架,但交互必须以标准的服务进行。

挑战:

服务器多级调用带来的延时;

调试/跟踪困难;

更高的安全监测需求;

现有应用的移植;

Qos支持(限制流量、机器资源分配)

高可用、可伸缩。

多版本依赖管理。

综合,实现一个大型应用的SOA平台应满足:

1)        统一服务交互方式,实现现有应用无缝集成。

2)        提供调试跟踪支持。

3)        依赖管理;

4)        高可用可伸缩。

2.1基于SCA实现SOA

      SCA(Service Component Architecture):大厂商联合组织制定的SOA具体实现规范。

      为了减少系统实现侵入,采用XML定义Component映射到系统本身接口的实现上。SCA允许多种映射方式。

      SCA提供了清晰的发布服务、调用服务和无缝与现有应用的集成。调试跟踪、依赖管理、高性能高可用未定义。

2.2、基于ESB实现SOA


      可以认为ESB只是个概念:基于消息中间件来实现系统间的交互。5要素:

      标准的消息通信格式;

      消息路由;

      支持多种信息交互类型;

      支持多种网络协议;

      支持多种数据格式并相互转换。

      综述:消息模式承担了统一服务交互,支持同步异步交互。调试跟踪没定义;通过消息流转判断依赖关系。高性能高可用取决框架。

2.3、基于Tuscany实现SOA

      Tuscany是IBM和Bea捐献给Apache的产品,也是最常用的SCA实现框架之一。

      支持更多的发布方式:Webserver、ajax、corba、rmi等等

      调用服务:和SCA一样支持更多应用集成方式,

      支持的通信及交互方式:比SCA支持更多的通信方式

      综述:调试跟踪会把错误带到调用端;依赖管理、高性能高可用没有在SCA上扩展。

2.4、基于Mule实现SOA

      Mule是常用ESB实现框架之一。

      发布服务:配置上较为简单,支持以WebService、jms等方式将Spring和普通java对象发布为Mule Service,相对Tuscany弱了。

      调用服务:相对麻烦,由于ESB强调以消息方式发送给总线决定的。

      通信方式:Webservice和jms两种。

      交互方式:Mule可明确指定synchronous的参数实现同步通信。在不指定的情况下默认异步。

      调试跟踪:未做特别处理。

      依赖管理:有开源服务治理框架MuleGalaxy。

      高性能高可用:无专门处理。

 

     总结

      SCA及其实现框架对于服务的统一交互支持很好。ESB则适用于需要解耦方式的服务交互,及复杂的多服务交互场景。共通地,都需要自定义扩展:调试跟踪、依赖管理、高性能高可用

      

0 0
原创粉丝点击