SOA/ESB是什么(1)?
时下虽然说SOA已经在降温,再说SOA有炒冷饭的意思。
经常也会有和同行聊起来,他说,现在流行云计算,你怎么还弄SOA?
SOA是降温,但是我认为,这个降温不是因为我们都把SOA已经理解了、搞定了、实现了,于是SOA过时了。我认为是国外的厂商不再炒了。
计算机这个圈子,有时候就像娱乐圈,一个话题,炒上一段时间,就得换。
国内的计算机环境,离SOA的搞定、实现,还差得远。
SOA这个概念,在国外的这些巨头的努力下,彻底被弄得云山雾罩了。
曾经有一次,我去听国外某巨头的一个会议,上面说了一通,下面坐我左边的那个哥们一头雾水,然后不知道谁小声地说了一句:不靠谱。
SOA这个概念,彻底的被“神化”了。
总之,火星登陆、外星人访问地球,都和SOA有关。
SOA里面的一个核心组件,ESB,也同样的被夸大了。
那么SOA到底是什么?ESB到底是干什么的?
我想说,首先,SOA绝对不是一个业务问题。
现在很多人一说起SOA,就再说业务,从业务上切入SOA,云云。
我个人认为,这个说法是有问题的。
我们首先来看看,SOA这个概念为什么会出现。
SOA这个词,大概是在1996年由Gatner提出来。
一开始提出SOA的原因非常的简单,就是因为当时在国外,大量的信息系统已经被建设起来了,而且互联互通的需求非常的迫切。但是这些信息系统之间的异构性非常的高。
让这些异构的系统之间互联互通,怎么解决?
我们想想我们以前在学校的时候,排练团体操。大家排成一个方阵,但是高矮胖瘦不一样。怎么办?于是拉一张大布,把所有人都盖住。看上去就非常的平整了。
SOA的概念提出也是这样,异构的系统太多,于是想通过“服务”这样的手段,屏蔽异构性,达到更好的软件互操作和软件复用性。
从本质上讲,SOA是一个纯技术问题。
再做一个简单的对比,来说明这个问题。
SOA和BPM。
往极端里说,100年前,这个世界上没有计算机。业务是否存在?
过去的历史告诉我们,业务是存在的。
即时没有信息化系统,我们也是需要处理业务的,需要业务流程,即使这个流程是手工的、传统的有纸化办公流程。
而SOA是怎么出现的?是计算机技术发展了之后,应运出现的。
所以,从这个角度一看,非常的明显,SOA是一个技术问题,BPM是一个业务问题。
但是,SOA的出现,能够为我们的信息系统提供改善业务的方式和途径,这一点,是勿庸置疑的。
我们可以这么说,SOA的motivation,是一个单纯的技术问题。但是他带来了业务上的很多好的benifit。