SOA(service oriented architecture)面向服务 架构是很多企业现在正在探究的问题。
那么什么是面向服务的架构呢,最简单的解释就是以服务为中心的架构,那么什么又是服务呢。这就是我这里要解释的一个东东。
关于服务的定义,找了很多地方也没有找到明确的一个定义。
在w3c上对web service倒是有这样的一段描述
这里未免把service的描述的太过于狭隘一些了,对于web service倒是比较合适,正如他的title所描述的。
java world有篇文章What is service-oriented architecture?,比较不错的描述了一些SOA,但是对service这个还是没有进行一个定义。
可见这个service还真的不好给他定义,就如同我们在OOA的时候,如果来定义一个对象一样,知道那个意思,就是没有一个准确的定义性的东西来描述一 下,的确,个人感觉OOA也好,SOA也罢,其实是思想上的一个差异,而要把思想上的差异给定义的那么清楚,确实还不是一个容易的事情。
这里我对服务的理解为,服务就是黑盒子,你不需要关心里面的内容,你仅仅需要知道的是,这个盒子可以进去什么东东,东东最后又是怎样的状态。这里已经没有 我们OOA里常见的对象的思想了。文字上理解这些还是非常抽象的,通过对SOA的理解,我把service的特点理解为以下几点
1. 服务是可重用的。
2. 服务是有服务的接口的(服务合同)
3. 服务不公开自己的逻辑
4. 服务是自治的(AUTONOMOUS)
5. 服务是无状态的,至少在服务级别上
6. 服务是松耦合的
7. 服务是可以查找的
8. 服务可以组合
这些服务的特点,各自并不独立,而相互进行关联。其实服务的特点,也就是我们在做SOA的实现和实施过程中的指导思想,也是我们在做SOA的设计过程中的设计基本原则,SOA的中心就是服务,服务的这些特性就是我们要在设计中收要表现出来的。
尾
关于SOA的实施,现在已经很多的企业开始着手了。也可能有大部分企业本身对SOA的理解上并不全面,所以在现实的环境中,只是对SOA的炒作和概念而已。但是SOA势必成为新的信息化的趋势。至少,现在的几大商业软件巨头都在做此间的部署。