一、SOA是什么 SOA的全称是Service-Oriented Architecture,面向服务架构。是一种架构,不是一种具体的开发技术。SOA是一种架构模型和一套设计方法学,其目的是最大限度地重用应用程序中立型的服务以提高IT适应性和效率。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA的关键是“服务”的概念,W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化”。
要真正理解什么是SOA需要从软件开发的技术发展史谈起。 真正的软件开发从开始到现在经历了四个阶段,也可以说成是四代: 1、汇编语言开发 2、面向过程的软件 3、面向对象的组件开发 4、面向服务的架构开发,也是今天要谈论的SOA架构
SOA与前面三代的软件开发技术对比,不同点是SOA超越了软件开发语言本身。是一种面向服务的架构,与软件开发语言无关。 但就软件开发本身来说,SOA是一种技术,又超越了所有具体的技术。
二、SOA的技术革命 SOA既然能成为第四代软件开发技术,究竟带来什么革命。 首先,SOA是一种开发思想。是一种松耦合的框架。可以让软件超越开发语言。 其次,SOA的开发需要SOA体系的支撑,就像J2EE应用一样,离不开应用服务器。SOA也一样,也有一个类似J2EE服务器的东西支持着整个SOA体系架构——ESB(Enterprise Service Bus),企业服务总线。通过这个总线,将多个系统连接起来。 其次,SOA是基于消息请求响应的一个系统,对请求类型有高度的兼容性。与一个WEB应用容器相比,WEB应用容器只能处理HTTP请求,而 SOA的ESB可以接受HTTP、FTP、Web Service、JMS...等请求。这就使得SOA架构具有高度的兼容性,可以将不同的平台集成到一起,从而相互协调工作。
三、SOA火起来的真正原因 1、软件开发技术的不断提高。 2、硬件性能的提升,价格下降,投出SOA所消耗的成本为企业所能忍受。 3、SOA受到了IMB、Oracle、Sun、Microsoft等大公司的热力追捧,被捧红了,实际上,一直以来都是这些公司在引领软件应用的潮流。 4、SOA技术革命每年有上千亿美元的市场价值。软件要升级,这些服务提供商才可以买出更多的中间件服务器,卖出更多的硬件,赚取更多利润。 5、很多企业的软件应用系统已经满足不了信息高度集成化的要求,为了提高企业的核心竞争力,企业不惜重金,上SOA。 6、SOA的招牌很响亮,超越了一切,兼容了一切。它不摒弃旧系统,而是将很多旧系统继承起来,就可以实现。——实际上,我个人认为这是一个骗局。
四、SOA最有前景的舞台 1、基于SOA是的思想和技术,SOA最适合最擅长的就是系统集成。而系统集成的关键就是提取公共的有价值的服务。各个系统通过暴露服务,经过ESB这条总线连接后,就将几个系统集成起来了。这在新一代软件开发中也许会得到应用。 2、SOA的架构注定SOA在中小企业内部没有多大价值。中小企业的摊子还不够大。 3、SOA系统集成难点在于抽取公共的服务。对于老的系统来说,抽取服务就是抽筋。很难很难,意味着要修改软件,要适合SOA的胃口。因此,对一些不同语言开发的系统来说,使用SOA进行系统实际上是扯淡。
五、SOA发展现状 对SOA口号叫的最响的是IBM,出书最多的也是IBM,成功的案例还没看到。所有的大公司都在忽悠,希望拿到第一笔大单。 SOA以来ESB,ESB本身也是一种中间件,或者说是一个增强了的企业应用服务器。目前开源的有几个,也没见过成功的案例。估计SOA技术从起步到成熟还有很长一段路要走。ESB的实现还需要一个发展过程。 相反与SOA有紧密联系Web Service技术已经深入人心。现在用的比较多。
|