一、SOA是什么
SOA的全称是Service-Oriented Architecture,面向服务架构。要真正理解什么是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、WebService、JMS...等请求。这就使得SOA架构具有高度的兼容性,可以将不同的平台集成到一起,从而相互协调工作。
三、SOA最有前景的舞台
1、基于SOA是的思想和技术,SOA最适合最擅长的就是系统集成。而系统集成的关键就是提取公共的有价值的服务。各个系统通过暴露服务,经过ESB这条总线连接后,就将几个系统集成起来了。这在新一代软件开发中也许会得到应用。
2、SOA系统集成难点在于抽取公共的服务。
四、SOA发展现状
SOA以来ESB,ESB本身也是一种中间件,或者说是一个增强了的企业应用服务器。目前开源的有几个。估计SOA技术从起步到成熟还有很长一段路要走。ESB的实现还需要一个发展过程。相反与SOA有紧密联系WebService技术已经深入人心。现在用的比较多。