解密SOA互操作的进化密码

开发 架构
SOA不是某个产品,也不是某个技术,而是一种软件设计架构和方法。SOA要求开发者从服务集成的角度来设计应用软件,它将应用程序的不同功能组件定义为“服务”,通过“服务”之间的良好接口联系起来。

2006年5月,ODF正式被国际标准化组织审核通过成为国际标准文档格式之后,我国“统一办公文档标准(UOF)”也被批准为国家标准。

微软的Open XML文档格式在取得欧洲计算机制造联合会认可的基础上,也正在向ISO申报要求成为国际标准。

这些标准的共存,体现了执行不同标准虚拟应用的互操作。

作为未来的技术趋势之一,SOA正无可争议地引领着软件业的新一轮浪潮,并在未来给软件和网络带来革命性的变化。为什么SOA如此受欢迎?这是因为SOA能够解决IT领域一直存在的一些问题:首先,全球企业业务变化迅速,导致业务需求有了重大的改变,其次,企业员工是随着IT系统的变化而变化,这违反了IT系统应该满足业务需求的原则。最后,一些CEO发现IT部门70%的费用都花在手工运营上,而不是技术革新上,同时,IT的投资回报率也不高。

系统的改变了过去开发应用的模式,将软件按照业务需求定义成“组件”,作为共享资源,提供以服务为中心的应用软件设计方法。这种方法,能够提高IT对业务的响应能力,使企业得以实时支持业务的变化,最终帮助企业转变为服务驱动型企业。

微软微软公司大中华区首席技术官李志霄博士表示,首先,SOA不仅仅是技术框架,它更是对技术的应用。其次,由于互联网技术的存在, PC服务器能力的提高,集群技术的日益成熟,标准的日益成熟,以及高起点的中间件技术,才使SOA成为可能。最后,SOA是一个“进化品”,通过消息来进行沟通,通过服务来满足业务流程的自动化,从而实现产品对业务流程的管理,以及系统的安全性的保证。可以说每一个企业的SOA都是惟一的,它是为这个企业量身定做的。因此,也可以这么说,SOA就如同天空中的雪花,每一片都是不同的。

SOA不是某个产品,也不是某个技术,而是一种软件设计架构和方法。SOA要求开发者从服务集成的角度来设计应用软件,它将应用程序的不同功能组件定义为“服务”,通过“服务”之间的良好接口联系起来。(也就是“服务”之间的松耦合。)接口是采用中立方式进行定义的,独立于实现“服务”的硬件平台、操作系统和编成语言。而且这些构建在各种各样系统中的“服务”可以以一种统一和通用方式进行交互,保证系统灵活性,另外,还可以保证“服务”的重复利用。

由此可以看出,SOA的核心概念是“重用”和“互操作”,从而使企业的IT系统拥有极大的灵活性。其中互操作的含义就是能够在不同的程序和系统之间成功地通讯、可靠且安全地相互交换信息。互操作性的实现工具既包括开放标准,又包括广泛授权的专有标准,以及利用现存程序和技术的程序接口(API)、格式和协议的能力。而SOA的另一层意义就是整合,它将企业的IT资源整合成标准的、可操作的服务,使其能被重新组合和应用。在这种架构下,IT系统的复杂性并没有增加,相反,随着系统的不断完善,整个系统的架构将变得更加清晰。

XML格式

1980年,IT行业中互操作还很少见。然而Digital、HP、IBM和NCR等各大IT厂商都提供了专有软件及硬件解决方案。各厂商之间都不支持可以共同应用的系统(垂直的生态系统)。那时的消费者用户不得不选择某一个公司的产品和他相应的解决方案。相比较而言,今天的情况恰恰相反,互操作性在IT领域内获得了长足的发展。

由于客户使用不同厂商的硬件、软件、应用,就需要把常用的功能抽取出来作为服务,同时就需要开发“设计上实现互相操作”的软件,例如,在软件中包含可扩展标识语言的XML技术,方便不同软件之间的数据交换。

从SOA的角度上来看,互联网的每个终端可以看成是一个个的节点,我们并不需要去关心每个节点的内部,只要通过XML的翻译,知道每个节点的内部能够为外部提供怎样的服务,使每个服务具有互操作性。

对于第三方,不管是用户还是开发人员,使用开放XML格式不会存在任何障碍。将它作为通用操作性技术后,人们将数据从一种格式转换成另一种形式将变得非常之容易,而且许可机制也是完全开放的,参考资料也非常丰富。这种文档格式不存在法律上和技术上的障碍。

在过去的几年中,XML和网络服务已经成为保证系统和程序间互操作性的方法之一,并得到广泛的采用和认可。这一点可以从各种产品和技术中得到验证,从微软的Visual Studio.net到Microsoft Office 2007,这些软件与生俱来就支持这些标准,并且帮助简化和加快了系统之间的互操作的实现。

SOA中的互操作

SOA概念有一个隐藏的原则,就是将IT系统、软件、设备和服务集成在一起,并能彼此“对话”的理念,即便设备和服务开始并没有为这种互操作性进行特殊设计。网络服务作为面向服务架构的实现方式令人振奋不已。使用SOA概念的程序被构造成可重复使用、协作运行的服务组,其中每个服务都负责一个或者多个被清楚标示和界定的用户任务、业务流程或信息服务。

SOA中的有效服务终端使用网页服务,并依次显示出所使用的标准,例如XML、SOAP、WSDL等等。

SOA模式依赖于行业标准,这些标准使得服务能够在诸多不同的平台上运行,并且保证彼此之间仍然能够相互操作和通信。服务可以被传输到在任何平台或者设备能够与基础服务界面对话。消费应用对这些平台或设备的惟一要求是其能够符合并使用相关标准(如图1)。

 

图1 通过SOA进行不同厂商产品间的整合

利用这种方式.NET网络服务能够应用到丰富的Windows客户端应用程序、Smartphones、PDA、网络浏览器或Java程序中。同样,一个J2EE网络服务能够被相同的客户使用。或者,这类在不同平台上的网络服务实际上能够在彼此之间进行直接对话。这时关键的优势-能够让构建在不同平台和技术上的服务在部门内、部门间以及与客户、公司和政府等外部用户之间进行通信和共同操作。

同时,可以通过使用Web服务来实现互操作和SOA,包括在Internet上以基于XML的消息访问数据库与业务逻辑及激活web service;在Internet上打破时空限制;许多的服务提供者;运算无处不在;承接历史,照顾现状, 考虑未来;IT 正确的IT架构使企业生产力成几何倍数增长。

网络服务协议

基于网络服务互操作性堆栈的开放标准的核心组件(如图2)
 

图2 网络服务协议

这些协议是几本构建块,以提供现今以使用的SOA和提供现今以使用的SOA和提供真正独立于厂商的互操作性。这些协议是作为一个跨行业倡议而开发的。微软、国际商业机器公司、SAP、BEA、Verisign等公司发起并参与其中,其策略是:

◆ 与平台经销商和主题事务专家合作发布满足每个功能领域要求的规范。

◆ 加速这些规范的广泛采用。

◆ 开展一系列互操作性研讨会,从而制定出这些协议有效实施方案-关键步骤是通过经证实的跨厂商的实施和支持来保证规范具有实际意义。

这种方式确保能够获得产业的广泛支持,并且使得定义的标准和协议能够在业界大部分企业的工作技术和产品中得到支持。这些标准的开发已经得到了厂商广泛参与,在互操作性实验室中共同工作,以证明这些标准实现了真正的跨系统和跨应用的互操作性。将实际的实验室和反馈作为这些标准开发过程的一部分,这一做法本身就意味着这些标准在发布时就已经拥有来自主要信息技术厂商的广泛支持。这有助于避免那种闭门造车脱离实际的标准,而这样的情况恰恰就在以前的一些标准开发尝试中给我们带来了困扰。

通过协议堆栈逐步建立更多细节:

传送层构建在网络HTTP、TCP、SMTP等无处不在的传送标准上。网络服务需要独立传送,以保证在每种情况下都能作出最好的选择。

XML被用来实现各种系统间的数据互操作性:XML、SOAP和WSDL已经成为跨越各种系统和信用界限的互操作性的混合语。在包括微软、IBM、IONA、BEA、Sun、Oracle等主流厂商的发布的产品中,XML、SOAP和WSDL得到了广泛的支持。

基础层使用一系列相关联的标准来处理消息、安全、可靠性、交易和元数据。

程序和程序基础结构层与相关的管理流程和业务流程处理应用空间。一旦该基础层就位,就可以使用丰富的客户端或者浏览器的功能开发相关的应用程序。对于高级业务流程管理和系统管理能力需要一些隐含的此类相关程序。由于这些网络服务协议具有广泛的跨行业支持,他们为企业和政府互操作标准的制定提供了极为有用的基本要求。

我们正步入一个新的世界。在这个世界里,可能从松散连接的自主服务中构建系统和程序,从而能以一种现在还不可能完全预先设想的方式来利用在他们间传播的信息资产。为了利用好这样的环境,需要开发以更紧密和直观的方式来整合这些信息资产的技术。

 

图3 Web services:互联互通的行业标准

互操作的主要好处

互操作对于商务、其他组织机构、消费者和政府之所以重要,原因在于:

◆不但能进行开放式访问信息,还能解决原有系统的兼容问题。

◆以客户选择、竞争和创新为基础,建立起健康的IT生态系统。

◆降低成本的同时提高效率和灵活性、提升系统价值。

◆促进系统的整合和竞争产品之间的合作。

◆推动重大的社会和政策解决方案的出台,例如:可访问性、保密性和安全性。

#p#

存储厂商在存储世界中必须面对的一个问题就是互操作性,而互操作只有和虚拟化更加紧密地结合,才能实现业务关键业务的全面互操作。

随着互联网的出现,信息量的快速增长,网络设备的不断增加,存储世界中的互操作性就变得尤为重要非常突出。尤其是在存储领域,互操作性几乎成为了那些拥有大量不同厂家存储设备的大中型企业非常头痛的一个问题。

例如,一个厂商的存储产品如果不能支持其他厂商的服务器或者存储设备,那么用户在安装部件以及解决问题的时候,就会面临更高的复杂性。

而且,如果异构环境中设备能够互相支持操作的话,就可以减少各种不同的架构和应用程序间的“摩擦”,从而使整个系统的操作效率得到提升。

现在的计算机系统是由应用层、Database、操作系统以及硬件平台组成。进行网络存储的方式有两种,一种是通过TCP/IP,另外一种是通过光纤,再连入存储系统,但无论哪一种方式都要确保各种平台、系统以及应用层之间的互通性,这是系统正常运行的基础,EMC公司在存储设备中加入的虚拟化控制器就是执行互通性的设备。

为了维持存储的互操作性,需要非常巨大的投入,以EMC为例,从2003年到2006年,就花费了超过100亿美金的创新投入,其中70亿美元用于收购,30亿美元用于研发,这其间EMC花费了大量成本以保证各个收购产品和解决方案能够实现互操作来进行维护存储设备的互操作性。

EMC大中国区产品及技术总监杜国强认为:要实现存储的互操作性,就必须从以下三个方面来着手:虚拟化、标准化和各大设备厂商间的协调与测试。

存储虚拟化

要实现存储网络的互操作性,离不开存储虚拟化,虚拟化是一个重要的前提。

广义上讲,虚拟化是虚拟多个操作系统,这些操作系统与应用程序共用硬件装置,但在逻辑上各自独立运行互不干扰。虛拟层映射实体的硬件资源到自己本身的虛拟机器资源,因此每个虛拟机器都有各自的CPU,内存,硬盘,I/O设备等。

存储虚拟化是以存储设备为对象的软硬件虚拟化产品,存储厂商一般根据各自所掌握的核心技术来提供自己的虚拟存储产品。

我们可以看到不同厂家、社团和媒体对存储虚拟化的阐述不同定义:存储虚拟化源于虚拟内存技术,是内存管理技术向外存储系统管理中的迁移; 虚拟存储概念源于大型机,是大型机领域的有效软件工具向开放系统渗透的结果;存储虚拟化是种新的革命性的概念; 虚拟化是网络存储发展的必然,是网络存储环境下不同存储系统优化和管理的必要工具。

如果要进行存储虚拟化,需要考虑很多复杂的问题。首先虚拟存储所虚拟对象是一些存储资源、磁盘、磁带、文件、文件系统、数据块等。其虚拟结果是虚拟磁盘、磁带、文件、文件系统、数据块等。虚拟对象不一定是物理设备,也可是逻辑对象。虚拟存储可将物理设备虚拟成物理设备,也可将物理设备虚拟成逻辑对象或将逻辑对象虚拟成物理设备。

图1 存储拓扑图

 

 图1表示的是集成了应用层、Database、操作系统以及硬件平台的各种服务器,中间通过一个“SAN”交换机连接不同厂商的存储设备。

而存储虚拟化不仅仅需要虚拟存储容量,更要要虚拟各厂商存储设备的CPU、内存等等,就是通常说谈到的处理能力。同时还要虚拟化它的这条路径(交换机到存储),这又成为一个复杂的问题,因为不论是网络连接中的哪个节点发生任何变化,都可能导致全部节点的变化,这也正是存储网络虚拟化最大的难点。

而网络级的虚拟化,才是真正意义上的存储虚拟化。它能将存储网络上的各种存储子系统整合成一个或多个可以集中管理的存储池,并在存储池中按需要建立一个或多个不同大小的逻辑卷,并将这些逻辑卷按照一定的读写授权分配给存储网络上的各种应用服务器。

克服了主机级存储虚拟化无法实现管理授权的问题,也避免了存储子系统级虚拟化管理不灵活的弱点,达到了充分利用存储容量、集中管理存储、降低存储成本的目的。网络级的存储虚拟化技术以其兼容性、扩展性、管理性、灵活性、可用性、安全性方面的优势,受到广泛的重视,具有极其光明的应用前景。

网络存储“NAS”之存储虚拟化技术,是在通信协议TCP/IP的平台上面,任何客户都可以通过处理GNS(Global Named Space),让客户端可以很迅速、准确地查到所需要的文件、文档,却并不需要知道这个文件详细的路径。

同样以EMC的Rainfinity为例,Rainfinity在一个单一接口中包括了优化容量管理、性能管理、存储整合、分层存储管理、数据保护、同步复制和全局命名空间管理等应用,据此实现了NAS条件下的虚拟化。

EMC大中国区产品及技术总监杜国强先生表示,在虚拟化方面EMC的实力雄厚,目前全球十大虚拟化的专家有六个在为EMC工作,其中就包括被称作“虚拟化之父”的Mark Louis。

标准化:互操作的必由之路

近来,随着全球气候日趋变暖,节能和绿色环保正在引起人们的高度重视,同时,也受到越来越多数据中心管理人员的关注,绿色IT、绿色存储大概是近来存储领域出现频率最高的词汇了。

绿色存储

在各种电脑设备中,存储设备耗能一般要占到整个数据中心电力消耗的30%~40%。而几乎所有的企业,不论规模大小,都面临着业务数据不断增加、存储需求日益膨胀的挑战。

绿色存储,正在成为计算机节能的一个重要攻坚目标。而绿色存储的实现离不开存储的虚拟化,今天某个客户可能有上百套的服务器,包括IBM、SUN、Intel的各种类型的服务器,甚至有刀片服务器,这就出现了一些新问题,大量的服务器需要通过虚拟化工具把它们变成100:1使用,也就是说你这里有1000套的话,最多这里会变成10套,然后会开一个虚拟的环境模仿每个节点。否则这些服务器和存储器就会占到计算中心大量的空间。APC有一个数据统计,一个数据中心大概50%左右是服务器跟存储的能耗,大概10%是网络,另外还有20%多是空调,所以最消耗能源的是什么?服务器跟存储。

现在各行各业都在谈绿色、环保节能,这时虚拟化的优势就充分体现出来了,他可以节省掉很大一部分的空间,同时也就节省了能耗。

现在世界各地都在强调节省能耗的问题,以美国为例,如果某家公司由于工作,需要添加一台路由器,就要求必须撤出公司另外一台原有的路由器,就是来限制能源消耗的继续增加。

存储标准

存储最终要在虚拟化的基础上实现互操作性,离不开标准的制定。标准在存储领域中扮演着越来越重要的角色,举一个最简单的例子,硬盘是机械的,首先有可能出机械性问题,其次,由于各种存储设备更新速度比较快,也可能在数据保存7~8年以后导致数据无法正常读取,此时标准的出台就显得尤为重要。通过各方力量对存储标准不遗余力地推动,将使得存储标准化的程度越来越高,用户的存储使用成本将越来越低。

杜国强认为,“世上本无路,走的人多了,也就成了路”。ILM如此,互操作性亦如此。当所有厂商都在谈论存储的互操作时,自然就会有人站出来提议建立相关的标准。

存储业界著名的基于也以成立了以确立技术标准确立的为目标的中立性组织SNIA (全球网络存储工业协会)。自1997年成立以来,已经有400多家存储厂商加入了SNIA, 该协会为实现网络存储的兼容和标准化起到了重要的作用。

 

图2 在TCP/IP上各大厂商的存储设备

各大厂商的协调与配合

要想实现设备间的互操作,诸如微软、EMC、HP和IBM等国际软硬件巨头之间的协调与配合也是必不可少的。例如,2006年, EMC先后宣布与Oracle和SAP两大软件巨头合作,通过产品认证、测试等一系列措施,加强软件领域的无缝集成,提高了易用性。

在EMC、HP和IBM等厂商之前,签署有一个叫做“CSA”协议,这个协议可以防止各大IT厂商通过签署这个协议改变在用户使用不同品牌的产品在发生问题时,在发生问题后被厂商之间互相扯皮的事情发生“踢皮球”的尴尬。他该协议对每个厂商的义务都有详细的规定。各大厂商在对自己的产品进行宣传的时候,均不得以其他品牌无法与自己的产品实现互操作为由,获得不正当的利益。

为了保证所有品牌的设备都能够无缝平滑地实现互操作,满足CSA协议对各方在互操作性上的要求,各大厂商在推出各自的新品牌之前,一般都会与其他厂商进行协调,并将自己的产品送到其他设备提供商处进行测试。如此,设备间的互操作性就能得到有效的保证。

我们有理由相信,在上述因素的共同推动下,实现硬件设备间、硬件和软件设备间的互操作性并不遥远。互操作终将跨越“天堑”,打开设备互连的“通途”。

开源需要互操作

各种开源软件与各种私有商业软件在各自相互之间,在各个层次上的互操作性问题引起了业界的广泛关注,开源软件在实现互操作性方面具有天然优势。

执行开放标准,解决互操作性,已成为当前软件产业发展中的一个核心问题。

二十世纪后期以来,世界经济进入全球一体化和快速增长期,需要有一种具有可操作性的途径来实现计算资源的整合和信息共享,为此呼唤实施开放标准

而开放标准指的是通过应用编程接口、通信协议以及数据和文件格式,使用公开发布并为公众认可的技术规范来实现异构系统之间的互操作性。开放标准的全部价值在于它对异构系统灵活性的支持,只有采用开放标准才能建立支持异构系统互联互通、互操作、信息共享、资源整合的统一平台。

所以,解决软件的互操作性,包括解决开源软件之间、私有商业软件之间,以及开源软件与私有商业软件之间的互操作性问题,已成为当务之急,并已形成当前软件产业发展中的一股技术潮流。开源软件在这方面的优势是:它充分体现开放标准实施的过程;面对应用解决方案,它既适合于建立开源架构(Open Source Stack),也适合于建立混源架构(Mixed Source Stack),且更有利于建立在松耦合条件下面向服务的架构(SOA,这是一种有利于解决异构系统之间在相互通信、交换数据困难时的符合开放标准的架构);以及采用虚拟化技术的共存架构(这是一种扩大互操作性概念的架构);开源软件的社区协作开发方式,是建立开放标准统一平台的一种创新模式。

这里要指出的是关于互操作性的概念。所谓互操作性(Interoperability)是指一个软件系统与另一个软件系统互相间具有接收、处理并共享所发送信息的能力。有人认为,兼容性也可以归纳在互操作性的范畴内。

所谓兼容性( Compatibility),指某个系统上运行的应用程序符合另一个系统的接口要求,从而使该应用程序也可在另一个系统上运行,这时对该应用程序符合某个接口的能力称为兼容性。从上面对互操作性和兼容性概念的表述来看,它们间有共性,也有区别,一般来说互操作性涉及到接口、协议、格式的公开性、一致性,内涵更丰富,具有公平性、主动性、战略性的特点;而兼容性则具有依附性、被动性、短期性的特点,并可能要承担“反兼容”的风险。

在虚拟化技术环境中,通常指物理服务器可虚拟成多个虚拟机的应用,操作系统是在虚拟的硬件上运行的,所以在虚拟的环境中可能同时存在几种不同的操作系统,有人也把“共存”理解为“互操作性”,这是扩大互操作性概念的一种看法;而且服务器虚拟化只是起点,公用计算才是其目的。本文下面要谈论的互操作性指的是其广泛的概念。

谈到互操作性,是分层次的例如:不同厂商(不同设备)之间的互操作;标准的互操作;架构的互操作;网络的互操作;应用软件的互操作;操作系统的互操作。

#p#

同厂商之间的互操作

对于开源软件发布商来说,为了向市场销售产品,售前需取得众多配套的硬件厂商(IHVs)、软件厂商(ISVs)、系统集成厂商(SIs)的支持,进行产品配套的兼容性测试和质量认证,从而实现不同厂商不同产品相互间的互操作。

2006年,国内Linux品牌与Dell、HP、TCL、华硕、神州数码、同方、七喜等PC厂商签订600多万套预装协议(联想、方正也正在对不同的Linux发布版进行配套选型);IBM为中科红旗的服务器Linux操作系统进行质量认证测试工作(这是IBM继Red Hat、Novell之后为全球第三家Linux发布商进行质量认证测试)。从而使开源企业与其相应的配套企业实行了不同产品之间的兼容性(互操作性)。

2006年微软和其他25家软件与硬件厂商组建“互操作厂商联盟(IVA,Interoperability Vendors Alliance)”, 目的是确保这些厂商提供的产品和服务能与微软的Windows操作系统和应用产品实行互操作,在这些厂商中,如Novell、Sun、Sugar CRM、Xen Source、JBOSS和Red Hat等均为开源企业。

Spike Source等多家开源软件公司也联手组建“开放解决方案联盟(OSA,Open Solutions Alliance)”,以确保他们产品之间能够互操作.

标准的互操作

制定、执行开放的国际标准,为互操作性提供基础。

设计转换器/翻译器(Converter/Translator),实现不同标准之间的互操作。例如,ISO已批准“开放文档格式(ODF)”为国际标准,它与微软的“Office Open XML文档格式”不兼容[微软的Office Open XML文档格式在取得欧洲计算机制造联合会(Ecma International, 这是一家国际标准咨询机构)认可的基础上,也正在向ISO申报要求成为国际标准],微软支持Aztec Soft公司(法国)开发转换器,以间接支持ODF。又如,Novell宣布:与微软合作,在Novell版的Open Office中支持Office Open XML格式,并表示联合设计翻译器(Translator),以使Novell版的Open Office与微软的Office 2007实现互操作。

在虚拟化环境中,共存就体现执行不同标准虚拟应用的互操作。

国内“统一办公文档标准(UOF,Uniformed Office Format)”计划申报要求批准为国家标准,有人认为,UOF具有中国文档特色,但要形成标准必须与ODF一致或能互操作,有人作了调查,UOF的约70%的条款是与ODF一致的,20%的条款是可用转换器与ODF实行互操作的,10%的条款是既不一致也不能采用转换器来进行互操作的。这里的关键是要处理好这个10%。

架构的互操作

开源的LAMP架构(L-以Linux为代表的开源操作系统,A- 以Apache为代表的开源中间件,M-以MySQL为代表的开源数据库,P- 以PHP、Perl、Pythen为代表的自由编程语言)的发展,已与闭源的J2EE架构,.Net架构形成三角鼎立、互相参插、互有合作与竞争的态势。

在发展开源架构(LAMP)同时,由开源软件模块与私有商业软件模块所代表的不同层次组成的混源架构作为满足用户需求的解决方案,目前也获得了广泛应用。而混源架构的发展就代表了架构的互操作性。

硬件平台的互操作

现在讨论各种操作系统相对于各种硬件平台的兼容性或互操作性。所谓硬件平台包括:计算机(硬件)体系结构与硬件配置和管理接口;外部驱动设备互联规范与总线接口;网络计算平台与协处理机接口。

文档的互操作

文档的互操作性可分成三个层次,即:文件系统的互操作(体现在硬盘中的信息存储与读写,用户希望对文件具有长时间存取能力);文件(体现为信息,指文件或信息的规范、格式和标准);应用程序(具有生成文件进行信息处理的功能)。

对文件系统的互操作性来说,已解决了在两个异构操作系统(如Linux或Windows)环境中生成的文件系统(即ext2/ext3或nsfs),可置于对方环境中被读、写(中国人对此也作出了相应的贡献)。问题是:在Windows Vista发布后,Linux的文件格式与微软的文件格式能否在对方环境中还可以被读、写,实现互操作,有待于研究或尚需努力。

对文件的互操作性来说,以上所述,通过转换器可实现ODF与Open Office Xml的互操作,我认为目前的解决方案只具有“单向”互操作的特征。

对应用程序的互操作性来说,基本应用程序一般指办公套件(Office Suite)、电子邮件(Email)、媒体播放器(Media Player)、浏览器(Browser)、网络邻居(Network neighborhood)等。以Office的互操作性为例,国内在开发Open Office和用JAVA虚拟机技术开发的跨平台办公套件方面(两者均可实现跨平台的兼容性)作出了成绩;又如微软与Novell“结盟”协议中,对Novell的Open Office与微软Office2007实现互操作相互作出了承诺。

网络的互操作性

通过“Web服务”由低层次到高层次的各项“通信协议”,逐年获得W3C、OASIS等国际标准组织批准,成为公用标准,使得异构应用系统通过这些网络的“通信协议”实行互操作。

历年来逐年获得批准的“Web服务”的公用标准有:传输(Transport)标准如TCP/IP、HTTP、SMTP等,语言格式(Format)标准如XML,消息(Message)标准如SOAP,描述(Description)标准如WSDL、UDDI,协同工作(Coordination)标准如WS-Coordination,交易(Transaction)标准如WS-Transaction,安全(Security)标准如WS-Security,服务语言(Service Composition)标准如BPML、BPEL、BPEL4WS等,有些高层次标准尚在审议中。

上述经国际标准组织批准的各层次的“Web服务”的公用“通信协议”均是开放标准,由于历史原因,各有关企业在较早时期推出其专用的“Web服务”“通信协议”(企业专用标准),如IBM的Websphere、BEA的Weblogic、Sun的SUNONE(均属J2EE),微软的.Net等,在提供用户应用中如何处理和平衡这些公用及专用标准,是一个研究课题。

操作系统之间的互操作

为了解决Linux与Windows两种操作系统之间的互操作性,人们先后采用了VMware虚拟机技术(这要在Linux平台上再装上Windows,以支持各种应用软件),Lindows(后来演变为Linspire)、Wine(这是两种采用二进制处理的模拟技术,是采用适应层的方式),以及依托.Net架构,采用微软编程语言和库函数,在Linux上实现的源代码模拟的Mono模式。上述这些互操作方案,其效率、效果均不甚理想。

国内“浙大网新”毛德操教授、首都师范大学刘金刚教授分别率领一支研究队伍,采用“兼容内核”的思路,试图解决Linux与Windows两种异构操作系统之间直接互操作的问题, 即促使相应应用软件可分别在两种异构的操作系统平台上进行平移,从而实现无缝兼容。

相信在解决了软件的互操作性,包括解决开源软件之间、私有商业软件之间,以及开源软件与私有商业软件之间的互操作性问题之后,软件产业发展之路能更加宽广。

 

【编辑推荐】

  1. IBM加大对SOA、SaaS、云计算、Web2.0投入
  2. 基于SOA的MES系统及其应用
  3. 2009年SOA发展状况五大预测
责任编辑:book05 来源: it168
相关推荐

2019-01-07 05:56:23

NFV网络功能虚拟化API

2020-08-13 17:25:43

区块链金融科技税务发票

2009-12-07 14:57:33

SOAGartnerSOA实施

2015-03-26 18:52:38

2009-09-07 13:25:56

Silverlight

2009-06-08 10:49:00

JavaFX互操作性Java互操作性

2017-02-06 11:50:12

NFV操作性测试

2017-02-06 14:34:24

NFV网络功能MANO

2010-03-01 16:31:58

WCF实现SOA

2009-12-09 10:51:18

ibmdwJava

2011-06-15 10:09:31

云计算互操作混合云

2011-06-23 09:16:26

云计算操作系统

2020-03-03 21:13:20

物联网融合互操作

2009-02-04 17:11:28

JavaFXJava兼容性

2010-02-24 15:27:04

ibmdwMashup

2009-07-17 13:49:57

Windows Emb

2010-07-01 10:37:24

思科Cius

2017-04-24 09:33:08

CloudInOpenStack

2018-02-27 15:41:27

IOT语义操作性

2010-04-22 10:26:16

.NET互操作
点赞
收藏

51CTO技术栈公众号