|
摘要:张思宇:SOA开创软件系统新结构
公司:中国外运股份有限公司 行业:物流运输业 访谈对象:信息管理部副总经理张思宇
笔者:我们最近在进行一项“中国SOA应用”的专项研究,希望了解SOA在国内企业的部署开展情况。请问中外运是否实施了SOA?
张思宇:是的,我们两年前就开始采用SOA技术作为我们一些应用系统的架构了。
笔者:业界对于SOA的理解并不一致。能介绍一下您对SOA的理解吗?
张思宇: 我从事软件开发20多年了,我认为SOA是一个不小的进步,开创了软件系统的新结构。
一个企业往往会有两个或多个系统,它们之间需要相互交换数据和调用对方的功能。传统的方法是在每个系统上留出对外开放的API接口,这些接口可能是基于一定标准的,但绝大多数是非标准的。
后来出现了多种支持分布式工作的软件结构、语言和编程方法等,使程序可以嵌入另一个系统中。再后来出现了EAI(企业应用集成)技术和产品等等,所有这些技术都试图解决相互调用的关系问题。
进入互联网时代后,出现了Web技术,出现了在应用服务器上,而不是在操作系统上开发应用系统的做法,出现了Web服务,使得客户端或不同应用之间,可以远程调用一个部署在应用服务器上的服务。SOA是在Web服务这一成熟技术上的一种扩展。我理解SOA架构的特点是,第一,参与SOA的不同应用系统或服务大多数是建立在应用服务器上的系统;第二,不同系统之间的对话主要使用标准的协议,比如HTTP、SOAP、XML协议等。
笔者:为什么说SOA是一种进步呢?
张思宇:SOA之前,API的调用方是主动者,它对被调用的系统的部分资源有控制权,会产生影响。这种方式我们叫做紧耦合。SOA则是调用方在提出请求后,等待对方的回应,而干涉不了对方系统的工作。这种方式我们叫松耦合。我们非常希望系统之间是松耦合的,因为如果是紧耦合的关系,A系统不断地通过API调用B系统的资源,B系统自己的工作就会受到影响。而在SOA这样松耦合的关系下,A系统向B系统提出服务请求后,可以继续其它的工作,B系统得到请求后返回给A系统一个结果。如果B系统忙的话,它也会通过一定的机制来处理这个请求。这样不同系统之间不会互相干涉。
第二点,API是非标准化的,SOA则是基于标准的。比如用XML语言描述一个请求,用HTTP等协议传递请求和结果,不同系统上的服务都可以理解,这样系统间对话才有共同语言。
第三,API依赖语言、系统环境、编程环境,但SOA不关心对方是用JAVA还是C语言,也不关心对方是什么Linux环境还是Windows环境,这和它调用服务的过程是没有关系的。所以我觉得SOA确实是一套很好的方法。
笔者:您觉得SOA是技术层面还是业务层面的问题?
张思......More↓↓↓
|