当前位置:Linux教程 - Linux文化 - 探讨开源软件的互操作策略

探讨开源软件的互操作策略


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

  纵论各种开源软件与各种私有商业软件在各自相互之间,在各个层次上的互操作性问题

  开源软件在实现互操作性方面的天然优势

  兼评微软私有商业软件在实行互操作性方面的正反措施

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

  而开放标准指的是通过应用编程接口、通信协议以及数据和文件格式,使用公开发布并为公众认可的技术规范来实现异构系统之间的互操作性。开放标准的全部价值在于它对异构系统灵活性的支持,只有采用开放标准才能建立支持异构系统互联互通、互操作、信息共享、资源整合的统一平台。所以,解决软件的互操作性,包括解决开源软件之间、私有商业软件之间,以及开源软件与私有商业软件之间的互操作性问题,已成为当务之急,并已形成当前软件产业发展中的一股技术潮流。开源软件在这方面的优势是:它充分体现开放标准实施的过程;面对应用解决方案,它既适合于建立开源架构(Open Source Stack),也适合于建立混源架构(Mixed Source Stack),且更有利于建立在松耦合条件下面向服务的架构(SOA,这是一种有利于解决异构系统之间在相互通信、交换数据困难时的符合开放标准的架构);以及采用虚拟化技术的共存架构(这是一种扩大互操作性概念的架构);开源软件的社区协作开发方式,是建立开放标准统一平台的一种创新模式。

  这里要指出的是关于互操作性的概念。所谓互操作性(Interoperability)是指一个软件系统与另一个软件系统互相间具有接收、处理并共享所发送信息的能力。有人认为,兼容性也可以归纳在互操作性的范畴内,所谓兼容性( Compatibility),指某个系统上运行的应用程序符合另一个系统的接口要求,从而使该应用程序也可在另一个系统上运行,这时对该应用程序符合某个接口的能力称为兼容性。从上面对互操作性和兼容性概念的表述来看,它们间有共性,也有区别,一般来说互操作性涉及到接口、协议、格式的公开性、一致性,内涵更丰富,具有公平性、主动性、战略性的特点;而兼容性则具有依附性、被动性、短期性的特点,并可能要承担“反兼容”的风险。在虚拟化技术环境中,通常指物理服务器可虚拟成多个虚拟机的应用,操作系统是在虚拟的硬件上运行(不是在真实的硬件上运行)的,所以在虚拟的环境中可能同时存在几种不同的操作系统,有人也把“共存”理解为“互操作性”,这是扩大互操作性概念的一种看法;而且服务器虚拟化只是起点,公用计算才是其目的。本文下面要谈论的互操作性指的是其广泛的概念。

  当前在世界软件界出现一种引人注目的景象:居全球软件厂商之首的微软,随着它向全球推出新产品:Windows Vista和Office 2007的发布版之时,它一方面希望其自身产品与开源软件产品实行“互操作”,力推其私有商业软件插入到开源架构中来以组成混源架构的解决方案,不断扩大与开源软件厂商“结盟”;另一方面还是严格实施其“反兼容”措施,将其主要竞争者排斥在“互操作”伙伴名单之外。

  谈到互操作性,是分层次的,即可分为:⑴ 不同厂商(不同设备)之间的互操作,⑵ 标准的互操作, ⑶ 架构的互操作,⑷ 驱动程序的互操作,⑸ 硬件平台的互操作,⑹ 文档的互操作,⑺ 网络的互操作,⑻ 应用软件的互操作,以及⑼ 操作系统的互操作。

  一、 关于不同厂商不同设备之间的互操作

  对于开源软件发布商来说,为了向市场销售产品,售前需取得众多配套的硬件厂商(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)同时,由开源软件模块与私有商业软件模块所代表的不同层次组成的混源架构作为满足用户需求的解决方案,目前也获得了广泛应用。而混源架构的发展就代表了架构的互操作性。

  开源运动的对策是:面对满足用户需求的应用解决方案,在发展开源架构同时,发展混源架构。

  四、驱动程序的互操作

  驱动程序涉及U盘、显示器(卡)、硬盘、数字相机、打印机等外部驱动设备的程序软件,操作系统与它们之间存在着互操作性或兼容性的问题。

  开源软件作为崛起不久的新的软件体系,在这方面存在更多有待于解决的互操作性或兼容性问题。

  微软在推出Windows Vista后,也屡屡在“兼容”的门槛上绊跤,例如对诸如尼康、佳能等数款数码相机,就无法在Vista平台上编辑、浏览、处理影像等,甚至可能导致影像的消失、无法恢复。目前微软正与相应的数字相机企业沟通合作,争取早日提供解决方案。

  开源运动的对策是:加快与外部驱动设备厂商沟通合作,争取早日提出有关各种兼容性的解决方案;开源软件要争取简化、统一发行版,在克服品牌过度分散的基础上,进一步加大在这方面兼容性的力度。

  五、硬件平台的互操作

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

  中国自主开发的基于龙芯(God Son)2E处理器的台式计算机(国芯天龙),目前预装Linux操作系统和办公软件,迄今已售出1000多台。龙芯2E处理器采用mips架构,该架构在Linux内核的官方版本中已作了“架构描述”(即实行了硬件架构平台的平移),并采用“新华”和“共创开源”版本的Linux发行版,较好地实行了 Linux操作系统与龙芯硬件平台的兼容。

  开源运动的对策是:进一步解决好开源操作系统与计算机、外设、网络平台的质量测试认证、预装和互操作性问题。

六、文档的互操作

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

  对文件系统的互操作性来说,已解决了在两个异构操作系统(如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实现互操作相互作出了承诺。但这里有两点要引起我们注意:① 微软承诺与Novell版的Open Office实行互操作,② 微软宣称,这里可能还涉及保护知识产权问题,随即微软承诺对Novell的用户可免除专利侵权的诉讼。这似乎有分裂开源运动的倾向,至于Linux版本是否涉及侵犯微软专利权问题,也似乎有虚声恫吓的倾向;开源社区要团结一致,以整体形象来对抗微软的分裂或无理的诉求,反制所谓专利侵权,才是出路。

  开源的对策是:进一步解决在Linux或Windows环境中生成的新的高层次的文件系统可置于对方环境中读、写问题,开发UOF与ODF的转换器,进一步解决基本应用程序的互操作问题。

  七、网络的互操作性

  通过“Web服务”(Web Services)由低层次到高层次的各项“通信协议”,逐年获得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的Web Sphere、BEA的Web Logic、Sun的SUNONE(均属J2EE),微软的.Net等,在提供用户应用中如何处理和平衡这些公用及专用标准,是一个研究课题。

  开源运动的对策是:促进高层次的“Web服务”(Web Services)公用标准的开发、审批,使之形成完整的标准体系,並进行全面贯彻;同时要研究相应的公用及专用标准在使用中的平衡问题。

  八、应用软件的互操作

  一些主要的应用软件如相应企事业单位的主要业务软件,财务软件,安全软件,游戏软件,实时通信软件,聊天功能软件等。

  微软Windows Vista推出之初,存在“四高”问题:①对硬件高配置的依赖,②高电耗,③高价格,④兼容性要求高。Vista不兼容一些常用的应用软件,与一些网络游戏、聊天QQ(在国内有2.2亿用户)、网上银行的密钥软件等不兼容,微软正与有关应用软件开发厂商沟通、合作,争取早日找出兼容性解决方案。

  微软宣布了与Windows Vista兼容运行(实行兼容性认证)的目录表,列举了800款兼容的应用软件,但该表把一些企业的软件排除在外,如:Quick(Quickbooks 个人理财软件),IBM(Lotus Notes软件,特别是近期推出的Open Client办公软件,对微软Office 2007构成威胁),Adobe(如Acrobat 7.0软件,因Adobe的PDF文档规范对微软生产的XPS文档规范构成明显的竞争),Symantec(主要是安全软件),Aplle(如i- Tunes音乐播放器软件与微软的数字播放器软件Media Player构成明显竞争)等。

  开源运动的对策是:在Linux/OSS平台上,大力发展与各种应用软件的兼容性或互操作性,以构成丰富互动的生态环境;桌面Linux的开发尚有较大的改善和提高的空间,问题主要存在于应用软件还不够丰富,且兼容性尚不足,以及操作习惯问题等,我看可以换一种解决思路,即对业务较为规范的用户,可推出瘦终端的桌面Linux系统, 或开发定制、半定制软件,对采用IBM“Open Client”终端办公软件的模式也可借鉴。

  九、操作系统之间的互操作

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

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

  开源运动的对策是:我们支持“兼容内核”的思路,以及他们的工作和方案,但他们在这方面解读并建立库函数的工作量很大,并要对微软一旦采取“反兼容”时应有紧急应对策略.