最近在研究SOA和SCA,这里谈一下我自己对SCA和ESB的认识。
看了一些SOA的资料,发现在以往的SOA架构中ESB起到一个非常重要的作用,不过我概括了一下,ESB主要提供了四个功能:
看了一些SOA的资料,发现在以往的SOA架构中ESB起到一个非常重要的作用,不过我概括了一下,ESB主要提供了四个功能:
- 路由,让A服务发出的请求能够到达B服务
- 转换A服务和B服务之间所用的不同协议
- 转换A服务和B服务之间数据的格式和关系
- 处理不同来源的事件
而SCA的装配模式能够满足功能1,而DataBinding能够满足功能2,功能3和4貌似在SCA的标准中没有涉及。
2月底参加了IBM的SOA培训,发现IBM ESB在实现功能3和功能4时,是通过一个Mediation Module 来实现的。我在想这个Mediation Model 应该也是一个SCA Composite。因此是不是只要有人也实现了这么一个Mediation Composite,那就意味着在一定程度上一个基于SCA的SOA系统可以抛弃ESB了?
同时ESB是一种总线,而SCA是一种架构,SCA在服务组合和复用上作了大量的工作,同时也支持一个JVM内的IoC,从效率上来说,应该也比ESB要快。
从这点上来说,新设计的平台应该可以按照SCA标准进行开发和设计,而不需要ESB了。