【IT168 信息化】
近日,第四届中国SOA标准化研讨会成功召开,会议上来自行业专家、用户、政府等相关人员,就SOA 发展进行了相关的探讨。以下全国信标委SOA标准工作组常务副组长 马殿富就服务计算与工程—网络计算基础精彩发言:

▲全国信标委SOA标准工作组常务副组长 马殿富
有一个寓言,实际上就是叫《盲人寓言》,这个是彼德,伯鲁盖尔(音)画的一副画,里面的耶稣又用比喻对他们说:瞎子岂能领瞎子,这对我们是很好的启示作用,我们需要来细致地分析这些技术的发展以及他的动向。
从计算角度上来讲,信息技术涌现出了一系列的计算,实际上计算在最初,图灵给出的非常精确的定理,什么是计算?计算实际上就是在一个无穷的带上来做三件事,一个是在一个状态下把这个字符改变,再改成另外一个状态。第二个,就是在一个状态下在某个字符下再左移或右移,我们说的所有的计算都是可以用这样的一个模型来进行表达。那么针对于计算机计算的基础理论,有定位函数、包括乔布斯基的文法体系。能行可计算的函数与图灵机,一般递归函数、演算都是等价的。所有的计算都可以变换成前面说的三个动因。我们现在的软件实际上呢,他所实现的功能越来越丰富,但是从理论上讲它都是没有超出图灵计算的过程。
我们看从软件的技术,从面向函数、对象、构建、远程调用,还有面向服务,现在有云计算,物联网等等这样一些发展趋势,大家知道呢,这些技术实际上对于我们的这个应用带来了非常大的变化,使得我们现在无论从技术和应用上都起了翻天覆地的变化。计算机最初是从数据处理开始,那么呢,形成了一大批非常重要的这样一些软件。
但是,这些传统的软件语言类型繁多,技术繁多,产品繁多,那么它的一个主要的应用形态就是,我去购买这样一个软件,安装在我的机器上,然后在我的机器上运行,这是传统软件的重要形态,这样的软件对于企业会带来一个非常大的困难,第一个困难是什么呢?任何一个企业,它都要自己建立一个中心,信息中心也好,它的数据中心也好,那么我们知道,这个对于一个企业来讲,那是太困难了,以前我到过延边的石县造纸厂,他从造纸业上是很重要的企业,他要搞信息化,他必须也得建类似于这样一个中心,大家知道石县造纸厂在哪儿?当时坐火车从北京要坐28个小时,还得下来再坐几个小时的汽车才能到那个企业,这样一个边缘的地方,怎么能有比较优秀的信息技术?实际上对这企业比较困难,对于开发企业也是很困难,开发一个软件,那么卖出去了,它能够卖出来钱,但是呢,可能它维护带来很大的问题。比如说,那个时候,大家都知道,企业都要承诺,一天24小时,一周7天,随时响应。
大家想,如果是石县造纸厂的软件有了问题,坐飞机过去就得多少个小时,无论从时间和这个费用上都会带来非常大的困难,因此应该说,那个时候的软件,实际上是非常,对于广泛的应用非常困难,随着网络化的发展,带来了新的这样一些机遇,这样的机遇首先,由WEB服务器和专用软件的服务器带来可能,软件不处在软端,可以通过网络进行访问,这样的话带来的好处就是,一个企业它不见得把这个软件安装在它的企业里边,可以通过网络进行这个访问。
那么支持这样的一些软件技术,主要就是这些传统的中间件技术。那么因为通过网络,它就有一部分,应用下面有一部分共性的技术,这一部分技术就由中间件技术进行解决,那个时候有DCOM技术,KY技术等,来解决这些问题。虽然它进了一步,但是仍然带来了更多的困难,基于网络环境下,也涌现了一大批不同的技术,而且企业内部以及企业之间,这种互操作的需求更加地强烈,那么,这样的话,从这个应用给软件带来了新的这样一个需求。
那么我们看从网络环境下,有众多的这样的一些需求。包括E —SCIENCE ,E—BUSINESS等等,这些的需求第一个特点是网络化,第二个是需要系统进行长时间的交互式的运行,这样的话,如果还像传统的中间间技术,就带来很多的困难,一个企业可能要像部署软件一样还得部署多种中间件的技术,这个实际上对于实际的应用也带来了重要的一些困难。当时呢,应该说,面临了很多重要的一些问题,第一个就是机器之间难以互通或理解,大家知道很多中间件技术,比如说KY,最终是基于二进制进行通讯,因此它的承诺,你只要装上一个KY的运行环境就可以互通,但是这对有些企业可能还是比较高的要求,第二个就是系统之间,这种交互和集成也是非常的困难,企业仍然面临着多种技术,他们的协同也是难以实现。,应该说,WEB服务技术是一个革命性的技术,他主要目前应该说有这样几个特点:
第一, 它用统一的机器可理解的语言进行描述,并且有广泛支持的标准规范协议集,从这个WEB服务技术或者SOA技术,应该说得到了学术界和国际重要的企业界的支持,那么他能够实现跨平台,语言攻关,他在任何一个平台上都可以支持。至于你是JAVA开发的,还是C开发的都无关了。能够实现这种普式或协同的形态。
第二、从服务技术来讲这是一种重要的无状态的集成技术,就是说我这次调用和上次调用无关,他一开始是支持这样的技术,网格技术大家知道,这是从1998年,佛克四(音)提出来以后的一个重要的网格技术,它主要基于计算、数据、存储、设备这些资源的共享和协同提出这样的一些重要的技术。那么网格技术和服务技术在2004年有一个文章,他提出这个GT1和GT2,后来在2004年提出WSDL2技术,有了这样的技术能够使得服务技术能够支持有状态的计算,并且对那些资源的融合,处理提供了更重要的这样一些保障,那么这个就是这个服务技术和网格技术的一些协议在。
应该说SOA的技术发展,从1999年开始,历经十几年的历程,今天呢应该说,达到了非常重要的阶段,那么,有很多企业和产品都进行了支持。那么SOA中间件,主要是支持了这样一系列的SOA的标准。这样的一些技术,它能够实现松散耦合,对于资源共享和业务协同,提供了这样一些技术的保证,它最主要的标准呢主要有一系列的SOA的标准,再加上WS2F等等,对于这些标准也有很多国际标准化组织给予了重要的支持。
在这个过程中,也形成了一些重要的SOA的这些软件产品,以及开源组织以及重要的企业。那么应该说,就是从网络的应用上来看,那么,今天呢,已经到了一个非常重要的时期。那么实际上,从本质上讲,那么,从计算这样的一个角度上讲,我们一直在解决到这样一些问题,比如说在单机的时候,这些操作系统,我们这些软件,就是通过这些程序来实现它的功能。那么这些程序的实现形成进程的这样一些行为,我们主要要解决进程的独立运行的进程怎么样实现。进程之间的共享和协同的技术。那么现在呢,我们把这个力度放大了,在网络背景下,我们的对象是服务,通过服务来提供这样一些功能,我们需要解决服务的,独立的服务的运行问题,服务之间来共享一些资源的问题,以及服务之间协同的这个问题。
那么在这个过程中,实际上,我们无论说服务技术,和现在的云技术等等,最关键的都是要解决这些企业的这样一些应用,那么,我们传统的软件,虽然有软件工程发挥了非常重要的作用,但是呢,传统的软件工程,它呢这个每一个阶段,它需要人进行这个变换,通过人脑进行变换,比如说这种需求分析,到概要设计,详细设计等等。那么它实际上,它一开始呢,不是非常重视这个过程模型的这个建立,当然现在也有很多这个过程模型的建立的问题。那么实际上企业过程模型是非常重要的,那么,它主要是要描述企业要做什么?它并不关心用什么样的技术来实现,那么,未来这样的服务工程技术,可能就是要把对企业的这样一些模型,通过一些模型的变换,通过一些验证的技术以及代码生成的技术,能够是现在SOA这样的运行环境上运行的软件的一个架构。那么,这样的实现呢,就可能会使得我们未来的这种开发,就会相对于简单化,实际上服务计算它主要是解决了三个问题。
第一个问题,就是一个软件或者一个操作可以用这个服务的方法进行描述,这个服务的方法描述的结果就是WSDL,它描述完了以后就可以将这样东西进行发布,使用者就可以来进行使用。那么它最重要的就是实现这样一个协议站,它的主要技术就是通过SOAP技术,WSDL技术,和服务发布与发现技术,来实现他最基本的运行机制。那么他的运行环境主要就是有服务运行值来支持SOAP,WSDL这些技术来实现完整的协议站。我们这些企业通过过程模型,BPM等等这样一些技术来描述这样一些企业的需求,有了这样一些需求以后,我们通过服务系统模型的一些技术,把企业的过程模型,通过向服务模型进行转换,主要像一些这个服务的编制模型,编排模型等等。那么编排模型主要是支持无中心的这样服务之间的这样一些交互。它一般的实现技术都是每一个节点可能是一个服务,也可能是一个工作流,那么把他们呢通过交互形式衔接起来,这些呢就是可以通过类似于WSDL技术将它实现。那么有了 再一个可能就是我们可能有中心这样的技术来把不同的技术来协调起来,这些技术有可能是像WSDLBPEL等等这样的一些技术。我们可以把企业的这样一些应用,把这样一些应用用工作流来描述出来。在工作流引擎上运行就能够做到这样的实现。
从服务来讲,服务简单地讲它可能就是一段程序,也可能是一个系统,也可能是一批系统之间的这样一些协同。那么一个服务,首先需要把它描述出来,用WSDL来描述。大家知道我们有这样的一些程序比如JAVA写的,我们可以编制工具,来把JAVA的程序转换成为WSDL的描述,有了WSDL的描述以后就可以进行发布,人们可以通过语意的方法来查询到有什么样的服务,调用端就可以通过JAVA这样一个远程来调用这样的结果,可以使用工具化来实现这样的调动,具有效果,具有一定的这个效率,也能够保证比较好的可靠性。
那么整个我们应该说,从服务计算,主要是针对于SOAP、WSDL等等这样一套协议的技术。我们讲软件服务工程可能就是我们从企业过程模型到服务运行环境上的这样一系列的变换的工具,验证的工具等等,怎么样来实现这样一些技术,在这个里面主要可能有一些服务科学,服务工程和服务管理这样一些问题。应该说服务工程有很多种定义,可能就是运用服务科学相关的理论来描述定义设计、建立实施运行维护的重构服务系统,可能这是它最本质的这样一些需求。那么我们希望就这个服务工程能够把企业的过程模型,就像这种汽车组装一样,组装成一个系统的架构,这样的话来提高系统的开发的效率。
当然服务有很多这样一些部分组成,有一些服务模型,建模方法,一些评价方法,支撑的这样一些工具和平台。那么,我们呢,也提出这个服务生命周期这样一些管理以及标准化,那么这个呢,也后边袁媛也会介绍,在国际标准组织也得到了重要的支持,我后面简单介绍一下,这个服务与云计算的问题。实际上这个企业在运用中还是带来了很多困难,第一个就是有很多,有企业具有信息中心,信息中心一般难度都,技术难度都很强,管理成本也高,特别是能源消耗很大,这已经变成一个非常重要的问题,我们运营的数据中心一般来讲,它的应用有时候具有周期性,在一段时间内可能系统不能得到高效的应用。
我们基于服务和网格的技术,应该说它主要是注重于系统部署的服务,而不提供这个用户自己网上部署这样的服务,那么,SOA呢也主要注重于人机、机器和机器之间的交互,并不太注重服务和数据的管理,因此这个应该说带来了一些新的这样的问题,那么因此人们现在用云计算这样的概念力图来提出一些更好的解决方案。当然云计算也让人很晕,有很多很多概念你仔细地来看,它似乎相似又那么样的不同。
那么云计算应该说它现在主要提出来就是,软件即服务,平台即服务,基础设施即服务,这样一个基本的理念,它原则上从技术上就是用这个SOA的技术和虚拟化的技术。那么软件即为服务实际上就是类似于我们前面谈的服务的概念,它顶上有部署了很多的软件,人们可以通过很方便的方法进行这个使用。平台即为服务类似于可以让用户根据平台那边提供的那些语言来部署这样的一些系统,当这样的系统部署上去以后,那么就带来很多问题:
首先第一个问题就是说安全性的问题,这样的系统个人网上部署的程序可能是好程序,也可能是坏程序,比如说这些坏程序,它是破坏系统,破坏其他的运行,那么也因此就需要用虚拟化的技术进行隔离,它要破坏只能破坏它自己,因此这样呢实际上在云计算中是一个非常重要的需求。以及还有基础设施即为服务的这样一些东西。那么人们可以呢把它的系统不在自己的(基础上)部署,直接部署在云计算上。应该说云计算有几个重要的特征。
1、它是基础资源可以租用;
2、可以按需弹性使用;
3、透明资源访问;
4、自助式的业务部署,用户可以自己部署;
5、开放公众的一些服务。
这样同时也有一些软件可以通过移动的这样的方式进行访问。特别是云计算应该说,大家现在认同说云计算不单单是技术,它更重要的是提供了这个商业模型,这个有一个彼得芬加写了云计算商业平台,他在这里勾划了很多云计算做为商业模型的设想。应该说云计算,服务计算也好,云计算也好,最根本的,我们一个方面要通过技术来不断地完善,能够使得它在网络环境下能够提供更好的这样一些运行,以及提供更好的服务。那么在这个过程中,也是需要这个研究院所,企业,政府,标准化组织进行那种有效的那样一个机制,使得它能够在这样良性的环境下运行。