SOA 和webservice 的区别

来源:互联网 发布:sql case when联表 编辑:程序博客网 时间:2024/05/03 06:43

SOA的定义和理解分两类

一类认为: SOA主要是一种架构风格

另一类认为: SOA是包含运行环境、编程模型、架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期:建模——开发——整合——部署 ——运行 ——管理

 

 

       Service-architecture.comSOA定义为:本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。

所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数

 

       虽然不同厂商或个人对 SOA有着不同的理解,

但是我们仍然可以从上述的定义中看到 SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型

 

由此可以得出,只要某个软件系统符合了SOA的架构,就可以说它是基于SOA

如,我们完全可以把word这个软件,设计成一个个组件,并让其符合SOA架构。

所以SOA不一定需要web service来实现。

Web service 简单来说就是一个向外界暴露出的能够通过internet进行调用的api和应用程序, 是基于SOA松耦合等思想开发出来的一套framework(个人观点),但是它并一定完全符合SOA的架构。 比如你自己写的基于ws的一个小函数。

 

现阶段,我们能看到的大部分SOA系统好像都是 用web service实现的,

因为某个软件如果不开源让所有人一起开发,你就不知道它到底是不是基于SOA的,

你想用别人的服务,一般需要到网上去搜索,搜到以后是直接使用,而不是下载下来,这些正是web service给我们提供的功能。

但一定要明确,那些把自己能提供的服务包装一下,对外提供一个ws接口,就声称自己是SOA,肯定是错误的,因为他的系统并不一定符合SOA架构。