3. SOA和EAI的相同点:
a)在技术层面有统一的数据和接口定义,可以方便连接各个异构系统。
b)都兼容各组件技术(CORBA,COM,EJB),远程调用技术(RMI)。
c)提供将简单服务或者操作编排组织成更复杂的服务或者操作。
从技术角度上讲,两者是很类似的。
4. SOA和EAI的区别:
a) SOA提供了开放的规范和标准:数据定义SDO,接口定义SCA,服务编排BPEL; EAI的
规范和标准都是各个EAI平台厂商私有的。
b) SOA服务调用时可以动态绑定服务。对于EAI来说,调用是设计时静态绑定的。
c) SOA提供的服务接口是开放的,可以在SOA平台外以异构的接口调用SOA平台上的服务,如可以使用EJB接口调用SOA平台上的服务。
EAI的接口是私有的,只能在EAI平台内部调用,EAI提供只一种标准的接口来调用异构系统的功能。
d)从设计思想角度,SOA旨在基于分布式的高可复用性服务集合来构建企业应用系统;
EAI只提供连接手段,流程编排手段,在设计思想方式上不做任何限制。
e) SOA的服务分业务服务,基础服务多个层次;EAI中的适配器相当于封装已有系统的
基础服务。
EAI平台互联不同的组件技术和产品,它使用与SOA类似的技术方式实现,即制定统一的数据和接口定义;SOA提供了一种开放的标准的异构接口互联互通技术,应用这种技术,SOA平台可以提供连接已有组件技术和软件产品的适配性基础服务。
SOA强调服务的复用性,实现异构服务接口的互联互通。EAI强调集成异构系统,把各个已有系统的异构接口封装为统一的接口。EAI不强调服务复用,但也可以用SOA的思想配以EAI平台来设计开发企业应用。相当于
用C语言也可以写面向对象的程序,虽然不如直接使用Java方便。
在设计层面,SOA将应用系统划分为高可复用的服务组成的集合。服务分业务服务,组
件服务和基础服务几个层次。设计思路更强调从上到下,即从业务到技术;EAI提供
接口封装技术,自动流程的编排。适配器相当于基础服务。设计思路一般是从下而上,
即从技术到业务。
技术层面,SOA是旧的组件技术和EAI技术的组合和升级。
所以实施SOA项目,最主要的还是在设计层面上如何把业务系统划分为粒度合适,高聚合低耦合,复用性好又兼顾性能的服务集合;于技术层面,SOA提供了开放的数据接口标准,方便异构系统的互通互连,和EAI功能相同,但更开放更灵活。
最后给SOA起一个技术层面的新名字“企业组件接口集成”。SOA=ECII (Enterprise Component Interface Integration) 。