SOA,热话题下冷思考

发表于:2007-05-16来源:作者:点击数: 标签:soa下冷而在铺天盖地话题
而在铺天盖地的 SOA 浪潮中,企业对此一方面是新奇、充满期待的,另一方面又是迷茫、不解和怀疑的…… SOA 一直是一个热点的话题,IT厂商在不遗余力推动 SOA 的向前发展,一方面宣称唯有 SOA 才是未来IT架构的出路,另一方面在积极探索 SOA 的企业应用,推出
  而在铺天盖地的SOA浪潮中,企业对此一方面是新奇、充满期待的,另一方面又是迷茫、不解和怀疑的……

  SOA一直是一个热点的话题,IT厂商在不遗余力推动SOA的向前发展,一方面宣称唯有SOA才是未来IT架构的出路,另一方面在积极探索SOA的企业应用,推出各种SOA的应用套件。而在铺天盖地的SOA浪潮中,企业对此一方面是新奇、充满期待的,另一方面又是迷茫、不解和怀疑的,对于企业到底要不要实施SOASOA能够为企业带来哪些实实在在的好处,这些问题也一直在困扰着企业。

  根据IDC对全球大型企业的CIO 和IT 高管的调查中(采样数据为224),对SOA非常了解的CIO仅为14%、了解的约为26%,没有概念和不了解的则占了大约60%。业务部门对SOA 的了解比例就更低了。认为SOA 对本企业IT 和IT 供应商的重要性的比例为:非常重要的约为12%、较重要为24%,其余的是不重要和不知道。数据表明,SOA虽热,但大部分人并不能完全理解SOA,而且对于SOA的理解也不尽相同,可以说“1000个人心中就有1000种对SOA的理解”。对此,我们邀请了源天软件CEO谢赞恩和Elec & Eltek系统分析师耿秉骏来讨论一些跟SOA相关的话题,带来一些冷静的思考。

  嘉宾:源天软件CEO 谢赞恩; Elec & Eltek系统分析师 耿秉骏

  主持人:王培培

  SOA是一种策略

  王培培:尽管SOA在2006年被炒得很热,但仍然有很多人对于SOA的概念并不是完全理解,该怎样理解“SOA是面向服务的体系架构”这种定义,定义中的“服务”是指什么,SOA跟服务之间有什么关系?

  谢赞恩: 实际上,SOA(Service-Oriented Architecture)就是为了解决一些系统之间交互难的问题,比如说企业原来有几个系统,ERPCRM之间要整合,但这些系统可能是Oracle, SQL-server等, 数据库的结构都不一样,包括一些银行原来用的是比较老的系统,可能是“古董”级别的应用系统,如用CORBA开发的,交互会很困难。现在提出SOA的策略以后,如果想进行两个系统的整合,事情就变得简单多了。

  假如一个系统可以提供3种服务,首先把这三种服务定义出来,这三种服务各有一个对外的接口,就是说如果需要某种服务的时候,需要用特定的格式来申请,然后系统用特定的格式来反馈,至于内部是怎样实现的不关心,对外就是三种服务。

  举个例子来说,这个系统是个很老的银行系统,有一种服务是查询帐户余额,那么需要用户提供用户名、密码、帐号这三个信息,然后系统反馈一个数字,就是这个帐户余额,内部怎么操作不用去管,对外的公布就是可以提供一种这样的服务。而假设另外有一个系统是我们熟悉的携程网,用户通过网络的网联卡来实现酒店的预定和付款,那么携程需要查询银行的余额以判断这个用户是否有足够的钱来付帐。尽管携程的系统可能是很先进的,可能是通过Javaweb based的环境下来写的。但是,他需要这种服务,就是从用户那边拿到这三个信息然后去银行系统申请得到帐户余额,这就是一个基本的SOA应用。

  如果每个系统都可以实现这种功能,那么就不用去管具体是哪种语言、哪种平台、哪种系统,只要提供相应的接口,系统之间都可以实现交互了。

  王培培:从技术的实现上来看,SOA目前的现状是怎样的?

  耿秉骏:按照定义来讲,SOA是一个技术架构,而不是某个特殊的技术产品或者技术实现。实现SOA的技术有很多,也没有限定于某种技术、开发语言来实现,但是现阶段最成熟,最方便的技术实现是Web Service

  Web Service也是与开发语言无关的技术标准,建立于中间件(Mid-ware)系统之上。它采用通用的数据格式(XML,Extensible Markup Language)进行数据交换,走SOAP(Simple Object Aclearcase/" target="_blank" >ccess Protocol)协议,各个服务(Service)特性(接口,参数等)使用Web service的通用语言WSDL描述,查找这些服务使用UDDI (Universal Description, Discovery, and Integration)。举个例子,Web Service就像电话机制。我们的语音信息,就是一个个服务(Service)。它们被包装成统一的描述格式(XML),电话线路就是SOAPWSDL就像工作中的电话机,WSDL(Web Services Description Language)描述Service的特点,以便被其他的Service接受者接收,就像电话机将语音信息按照一定规则转化为电流,以便被对方电话机所接收还原。最后,UDDI类似于黄页,它通过统一注册,来查找需要的Web service

  Web service是建立在中间件基础上,如同电话的使用建立在语音的基础上,没有了中间件Web Service不能使用,SOA也谈不上。就像电话不可以传输图像一样。上面的例子如果两个系统都不是中间件架构的,对不起,你不可以SOA。因为你的Service不是标准的,不能够被Web Service所认知。你只有将你所需要的Service封装成中间件结构,才可被调用。(注:Web Service是公认的SOA实现技术,其他的技术基本没出现或者根本没成熟。)

原文转自:http://www.ltesting.net