SOA和Web Servcie的区别。它们有如下共同点:
- 都提供服务。
- 服务接口都是基于开发的。
- 服务接口和服务的具体实现都是分离的。
Web Service服务接口需要绑定具体实现服务的服务组件来实现服务,它对具体的服务实现完成了封装,实现了服务的透明化,客户端不需要知道服务是如何实现的,但是Web Service组件本身是知道服务是如何实现的,
另外客户端调用Web Service组件时,需要知道Web Service的具体位置和传输协议,这些都会造成一定的不灵活性,它只是实现了一定程度上的抽象。
SOA架构只和服务接口进行绑定,对服务接口实现了封装,实现了服务接口的透明化,服务位置的透明化,服务传输协议的透明化。SOA本身也不知道服务具体是如何实现的。当客户端通过SOA调用服务时,不需要知道真正的服务提供者是谁,具体的服务位置在哪里和具体的传输协议是什么。SOA实现了最高程度上的抽象化,为实现具有最高灵活性的服务建立了架构基础。
SOA架构的要点:
-
SOA架构所提供的 服务之间是松散耦合的。
-
SOA架构应该按更接近于实际业务本身的粗粒度的角度来对服务进行划分,发布服务接口方法。这就要求设计和开发人员 直接从业务的角度来构建SOA所提供的服务,而不仅仅从模块和技术的角度来构建SOA服务。
-
SOA架构中的所有服务的具体实现、位置和传输协议对调用者来说都是透明的。