1. OpenOffice.org发展轨迹

    开放源码的时代背景

上世纪 90年×××始的 Internet的爆炸性发展给个人和整个软件产业都带来了一场巨大的变革。随着互联网络的高速发展,传递信息的速度越来越快,而发布信息的成本却在不断地降低。传统专有软件商在软件发布和维护成本不断降低的同时,仍然试图通过昂贵的许可证方式分发软件。而消费者希望能够快速、廉价甚至自由地获得具有必要功能的、稳定和可用的产品。这样就凸现了一个原先并不明显的矛盾:前互联网时代的版权法规限制着软件和信息产品在网络上的自由传播,称之为“盗版”,普通大众需要一种合法的、成本可接受的方式来获得必要的软件和信息产品 2。有需求就有市场。起源于 80年代的自由软件和开放源码运动在潜行了相当长一段时期之后,从此具有了适合的土壤而蓬勃发展起来。
对于计算机的普通用户来说,具有文字处理、电子表格、演示文稿、数据图表、公式编辑、简单绘图和图片处理等功能的办公软件已经成为一种“生产力软件”,也就是能够大幅提高生产力的基础软件。但是占据市场份额超过 90%Microsoft Office却一直是价格昂贵的专有软件,其中的大部分功能个人用户很少用到。所以对消费者来说,它逐渐地已经成为一种奢侈品,然而现在的大部分用户因为专有文件格式被锁定在其上,不得不继续使用其升级产品。广大用户希望能够出现一种替代昂贵专有办公软件的廉价、稳定、具有足够功能并且可用的办公软件。

OpenOffice.org的历史

OpenOffice.org来自上世纪八十年代中期在德国创立的一家软件公司 Star Division,它生产一种叫做 StarOffice的办公软件,市场主要集中在欧洲。因为价格低廉、稳定、跨平台、功能充足等优点获得了用户的好评。 Sun Microsystems意识到市场上需要这样一种替代专有软件的产品,并且认为公司的愿景与策略和 StarOffice的技术背景都与这样的市场需求和趋势相吻合 3。于是 Sun19998月收购了 Star Division公司,并于翌年 7月资助建立了 OpenOffice.org社区。同年 10月,公布了 StarOffice绝大部分源代码(大约 800万行),由此成为世界三大开源社区之一(另外两个是 MozillaApache); 12月,发布了 OpenOffice.org XML文件格式规范。 20017月, OpenOffice.org 开发工具包发布。 20025月, OpenOffice.org 1.0正式发布。 20033月, OpenOffice.org 2003首届年会 4在德国汉堡召开。 200310月, OpenOffice.org 1.1.0 发布。
迄今为止, OpenOffice.org已经发布了 1.1.2版本,支持 WindowsLinux/x86Linux/PowerPCSolaris/SparcSolaris/x86FreeBSDMacintosh7CPU/OS平台,正在进行另外 10种平台的移植,支持的语言也达到了 42种。统计显示 5,截至 20046月, OpenOffice.org已经被下载超过 2600万次;电子邮件列表的注册人数也超过了 24千人,已经有 434个人和团体签署了《共同版权委托协议》 6承诺为 OpenOffice.org社区贡献代码。 OpenOffice.org现在已经成为全球领先的跨平台、全功能、多语言、公开对象接口、可扩展文件格式的开源办公软件。
OpenOffice.org的下一个版本是 2.0,主要目标是实现与 Microsoft Office更好的互操作性、更低的用户再培训成本、更优秀的性能、广泛提高的易用性、更易用的程序接口、更好地集成进本地桌面系统。 OpenOffice.org 2004年会也将于今年 9月在德国柏林举行。
实际上, OpenOffice.org不只是一个办公软件产品,它也是一个开发平台,开发者可以基于它提供的应用程序接口组建自己的产品,设计并实现完整的解决方案;它也是一个网络社区,世界各地成千上万的用户和软件开发者每天都在这里交流;它还是一种信念:办公软件这种生产力工具已经成为社会信息基础设施的必要组成部分,而 OpenOffice.org正是通过开放源码社区来使之为更广泛的人群服务,推动整个社会的信息化水平。
    1. SunStarOffice的关系

从历史上看, OpenOffice.org来源与 StarOffice,它在 OpenOffice.org成立前的最后一版是 5.2。在 SunStarOffice的绝大多数源码开放之后, StarOffice也是基于 OpenOffice.org来开发的。也就是说 OpenOffice.orgSun资助的,但是不属于 SunStarOffice才是 Sun所有的产品。而 Sun所提供给 OpenOffice.org社区的源代码一经发布,就无法收回。 Sun从此无法关闭 OpenOffice.org,因为它是属于公有领域 7的。由于 StarOfficeTM这个商标已经被注册了, Sun就在东亚地区为 StarOffice注册了 StarSuiteTM这个商标, StarOfficeStarSuite实际上是同一产品的西方和东方语言版本。
因为 StarOffice的源码里含有少量的第三方代码,而这些代码是 Sun付费才获得许可在 StarOffice中使用的,所以 OpenOffice.org并不包括这部分源码。这些不可公开的代码实现以下功能:
  • 某些字体,特别是亚洲语言字体(例如方正宋体、方正黑体等);
  • 数据库模块( StarOffice中包含了 Software AG公司的数据库 Adabas D);
  • 一些文档模板;
  • 增强的剪贴画图库;
  • 一些亚洲语言的增强功能;
  • 某些文件过滤器。
事实上,现在文档模板和剪贴画在 OpenOffice.org社区里已经可以找到比较丰富的资源,桌面数据库现在也已经有了比较成熟稳定的开源产品,亚洲语言的增强功能和某些特定文件过滤器也并不是至关重要的功能,但是缺乏丰富的字体,可以说是 OpenOffice.orgStarOffice相比的一个最大的缺点。这也跟现在没有质量很好的开放源码字体有直接的联系,优秀中文字体的许可证是相当昂贵的,而 OpenOffice.org这样的非盈利组织无法负担地起这样高昂的费用。
      1. License问题

OpenOffice.org采用 GNU通用公共许可证( GPL)和 Sun工业标准源码许可证( Sun Industry Standards Source LicenseSISSL8的“双许可证”方式对源码进行许可;采用独立的公共文档许可证 9Public Documentation LicensePDL)对发布在 OpenOffice.org网站上、但不期望集成进软件的绝大多数文档进行许可。
“双许可证”方式意味着要么应用 GNU GPL许可证,要么应用 SISSL许可证。当应用 GPL许可证的时候, OpenOffice.org源码中的库和组件功能将根据 GNU LGPL进行许可。由于 LGPLGPL完全兼容,这样就能够鼓励更多的人参与到 OpenOffice.org社区建设中来。
SISSL则是为商业应用设计的。由于 GPL许可证对于自由复制、修改、发布等权利的严格保证,某些软件商会因此而受限、不能参与到开放源码社区中来。 OpenOffice.org的双许可证方式解决了这个问题,他们可以选择根据 SISSL进行许可。 SISSL是经过开放源码促进会( Open Source InitiativeOSI)确认的开放源码许可证 10,它规定在被许可者承诺保证“标准”一致的条件下,可以分发软件但不公开修改过的源代码。这里的“标准”是指 OpenOffice.orgXML文件格式规范 11,和 OpenOffice.org的应用程序接口规范 12
    1. OpenOffice.org应用

      开源社区

OpenOffice.org本身优良的性能促进了它的应用。现在世界范围内几乎所有的 Linux发行版都附带了 OpenOffice.org或其衍生软件。 OpenOffice.org的使用者还建立了一些组织和网站来推广 OpenOffice.org的应用,比如 OpenOffice.org文档项目 13OpenOffice.org论坛 14、关于附件和模板的 OpenOffice.org Extras15、关于宏的 OpenOffice.org Macros16OpenOffice.org帮助在线 17Taming OpenOffice.org18GetOpenOffice.org19ByteBot.net20ClueSheets21Itrainonline22Digital Distribution23等网站也已经开始提供 OpenOffice.org的在线培训服务。
网上书店上关于 OpenOffice.org的使用类书籍已经有几十本,并且还在不断增加。关于 OpenOffice.org的技术类书籍也已经出版了一些,例如关于 XML文件格式要义的《 OpenOffice.org XML Essentials24和《 OpenOffice.org Macro Explained25
亚洲地区的一些国家和地区也在积极推广 OpenOffice.org的应用。日本建立了 OpenOffice.org文档翻译项目 26和用户组织 27;韩国也建有 OpenOffice.org用户组织 28;中国台湾地区的 OpenOffice.org应用也非常活跃,台南县教育网建立了“ OpenOffice.org补给站” 29,台湾高性能网络计算中心也建立了 OpenOffice.org讨论组 30,有些个人爱好者 31建立了个人维护的 OpenOffice.org论坛,甚至还长期提供提高中文版面效果的独立补丁(该补丁已加入 OpenOffice.org源代码的 CVS服务器)和安装包。

衍生软件

自从 OpenOffice.org 1.0公布以来,有些地区,特别是亚洲地区,根据 OpenOffice.org的双许可证方式发布并包装了具有本地特色的办公软件。比如 Pladao Office32就是为了提高泰文的本地化,依据 LGPL/SISSLJCA协议 8而定制的 OpenOffice.orgBharateeyaOO33是印度信息通信技术研究培训中心为了提高 OpenOffice.org对印度各种方言和民族语言的支持而资助的加强本地化的项目。非洲地区也开始了为本地民族语言基于 OpenOffice.org进行本地化的公益项目。
国内一些软件企业根据 SISSLOpenOffice.org的基础上进行中文化、定制化和扩展功能的开发。比如中文俩仟的 RedOffice、金山的 KingStorm飓风 Office、中标软件的中标普华 Office、共创开源的共创 Office、即时软件的即时全能办公室、 KaiSource公司的 KaiOffice等。
中国有 55个少数民族,除了回族和满族已基本不使用自己的民族语言和文字以外,其他 53个民族仍在使用的民族语言有 72种。其中 29个民族有与自己的民族语言相一致的文字,由于有的民族有一种以上的文字,所以这 29个少数民族共有 54种民族文字 34。少数民族语言文字在少数民族社会生活种起着十分重要的、其他民族的语言文字无法替代的作用,所以为这些语言文字提供信息化手段是提高全国整体信息化水平的重要组成部分,是延续多民族的传统文化的重要手段。
为了实现支持民族语言的跨平台信息处理系统,国家 863计划设立了重大软件专项课题“民族语言版本 Linux操作系统和办公套件研发” 35。该专项中的办公套件就是在 OpenOffice.org的基础上针对藏文、蒙文、维文等主要民族语言提升本地化的水平,以期达到实用性的效果,具有很高的政治意义和社会意义。该项目已经取得阶段性成果 36
      1. 用户市场

早期 OpenOffice.org的用户主要分布在欧洲地区,这和 OpenOffice.org起源于德国、所以西方语言支持比较好有很大关系。欧洲的很多政府机构、公司、学校、非盈利机构甚至个人都在广泛使用 OpenOffice.orgJupiter Research2003年的一项研究报告中认为 OpenOffice.org在小型商业机构的市场份额已经达到 6%,另有 3%2004年有应用计划。
团体用户在削减 IT预算的时期,更加注重于从降低总持有成本的角度来考量。德国慕尼黑政府经过一年的评估,最近决定将市政当局的 14000PCMicrosoft Windows/Office迁移到 LinuxOpenOffice.org,这一降低政府开支的举措引起了各国政府的广泛关注,具有强烈的示范效应。
随着 OpenOffice.org的不断推广,其他地区的用户也开始注意和尝试 OpenOffice.org。北美和拉美地区的一些企业、学校、和政府机构也在评估将 OpenOffice.org作为日常办公套件的可行性,并已经开始了试用。 37
OpenOffice.org所具有的优秀特性使它获得了广泛赞誉。 38例如 Linux Format 2001年读者选择奖“最佳商业软件”; XML Journal 2002年读者选择最终奖“最具创意的 XML应用”; Linux Journal 2002年编辑选择奖“最佳办公软件”, 2003年读者选择奖“最受欢迎的办公软件”; Open for Business 2003年开放选择奖“最佳办公软件”; O'RELLY下属的 OSDir.com 2003年编辑选择奖“桌面开源软件最佳应用”,等等。
    1. OpenOffice.org社区

      1. 理事会

OpenOffice.org社区由社区理事会 39进行管理,理事会章程 40也是由社区成员起草,经过全体社区成员讨论和修改,几乎以全票通过。理事会是由社区成员志愿组成的非自治组织,建立理事会的目的是在战略规划与资源分配、协调与资助者和公众的关系、在整个社区内提供仲裁这些方面提供指导。理事会可以调节冲突并为社区成员提供论坛,它也可以对项目的目标发表意见。理事会除此之外的权利在章程中被严格限制。
理事会由九名成员组成,这些成员都是各个项目的代表,他们也基本上都是项目中活跃的贡献者,在若干方面颇有建树,获得了其他贡献者的尊敬。这九名理事会成员包括:
  • 五名成熟类项目代表,其中有一名作为项目领导的 Sun雇员,一名作为项目领导的非 Sun的程序员,一名非程序性项目的管理者,其他两名项目领导或社区管理者;
  • 两名本地语言类项目代表,从成熟的本地语言类项目领导中选出;
  • 一名社区贡献者代表,来自于孵化类项目领导和杰出成员;
  • 一名 Sun公司代表。
理事会每月至少召开一次会议,如有必要也可临时召开。会议以互联网中继聊天( Internet Relay ChatIRC)的形式召开,会后通过电子邮件确认会议记录。任何社区成员都有权查看会议记录,并向理事会提案。
      1. 项目

OpenOffice.org社区内的资源是以项目的形式组织起来的,分为四大类:理事会、成熟类 41、孵化类 42、本地语言类 43、网站资源。理事会类包含了与社区管理运作相关的信息,网站资源类包括 OpenOffice.org下载、技术支持、开发资源的信息。
成熟类项目是指那些包含核心技术、或者关键用户信息的项目,现在共有 22个。比如应用架构、组件技术、应用程序接口、 XML文件格式、编译工具和环境、安装工具、数据库访问、图形系统层、用户界面、文字处理、电子表格、图形应用、语言模块、本地化、移植、文档、质量保证、市场推广等等。成熟类项目通常是社区开发者关注的焦点。
孵化类项目用来给社区成员提供测试想法的空间。这些想法可能是编程性的,也可能不是。只要能表明想法对社区明显的支持,任何社区成员都有权利创建一个孵化类项目。现有的孵化类项目共 11个,包括:参考文献、商务拓展、软件发布、群件、 KDE集成、项目管理、脚本、技术规范、社区统计、用户 FAQ等。
本地语言类项目用来以用户的本地语言提供更多信息和资源,相关的工作包括翻译 OpenOffice.org社区内的资料,介绍本地语言版本内所特有的资源和信息等。现在已经包含的本地语言包括:汉语、阿拉伯语、印地语、日语、韩语、老挝语、泰米尔语、泰语、越南语等 37种语言。其中的汉语项目--“ OpenOffice.org中文计划 44”是由台湾地区的几名志愿者维护的,支持繁体和简体中文两个版本。
      1. 参与贡献

OpenOffice.org社区欢迎公众对 OpenOffice.org的关注与支持,为此建立了必要的设施使得开放源码技术能够被所有感兴趣的参与者获得。参与者可以很方便地下载软件、获取技术支持、以及开发资源。
实际上无论角色如何,每个人都可以对 OpenOffice.org项目提供帮助。参与越多则越能获得他人的信任和支持,项目的长期有价值的贡献者会获得直接向代码库提交代码的权利。 OpenOffice.org网站上注册的用户都是 OpenOffice.org的“成员”,社区鼓励成员参加到项目中并订阅该项目的电子邮件列表。参加到项目中的成员首先的身份是“观察员”,如果对项目的贡献频繁并确有价值,就能够获得“开发者”的身份,拥有对代码库的写权限,只对项目文档有写权限的成员称之为“内容开发者”。开发者在提交不止于微小改动的代码前必须要签订《共同版权委托协议》 8。项目开发者定期选举项目领导,项目领导负责指导该项目的方向,确保相关问题都被解答,并负责创建友好并相互支持的社区环境。
现在已经有很多个人和团体对 OpenOffice.org社区作出贡献。 DebianSuSERedHat对软件打包, GNOMEKDEXimian对桌面集成与用户界面修饰方面都有贡献。 Ximian甚至还建立了专门的 OpenOffice.org网页 45提供非官方的资源。虽然国内 OpenOffice.org及其衍生软件的应用已经非常广泛,可惜的是,迄今为止只有寥寥几人签订了《共同版权委托协议》承诺为 OpenOffice.org社区贡献代码。
其实开发者可以参与 OpenOffice.org社区的方面很多,编写脚本与宏、扩展与集成组件、编译除错并提高源码、向新平台移植、本地化与国际化、撰写使用与开发文档、测试与质量保证等等。都是不错的开发型入手点。另外,技术支持和市场推广也是不错的非开发型参与方式。
OpenOffice.org社区由 CollabNet提供主机并负责日常管理,代码库采用 CVS维护,以 IssueZilla管理“问题”。社区成员的主要交流方式包括电子邮件与邮件列表、 IRC、网络日志( Blog)、时事通讯( News Letter)等。社区成员也会经常为媒体撰写文章并接受访问。由于 OpenOffice.org社区成员来自于世界各地,所操母语千差万别,为了沟通方便起见广泛采用英语作为通行语言。
    1. 相关开源软件社区

全世界众多开源社区能够进行交流的基础是他们都认同开放源码软件的基本理念。 OpenOffice.org社区作为三大开源社区之一,在获得开源软件领域广泛关注的同时,也获得了普遍的支持,与其他开源社区建立了密切的协作关系。比如:
  • Mozilla社区为了实现 OpenOffice.orgMozilla浏览器中的插件而密切合作;
  • Apache社区为 OpenOffice.org提供了优秀的 XML/XSLT46软件,并且在 POI47项目中与 OpenOffice.org合作将 MS Excel文件格式文档化 48,它的 Cocoon49项目及其子项目 Forrest50在服务器端能够把 OpenOffice.org无缝集成进内容管理系统;
  • OpenGroupware51社区与 OpenOffice.org群件项目 52协作以提供邮件、日志、即时消息和白板等功能,其客户端软件 Glow正在开发中;
  • CPAN53社区中的 OpenOffice::OODoc54项目支持 PerlOpenOffice.org文档的访问;
  • Zope55/Plone56社区用 Python实现了内容管理系统 /架构, OpenFlow57以此为基础实现了工作流管理系统,它们现在都是非常流行的开源软件。 Zope中所包括的 CMFOODocument58ZooDocument59支持对 OpenOffice.org文档的访问,由此 OpenOffice.org可以作为内容著作工具而集成进该内容管理系统。基于 Zope/Plone的软件商 icoya60就提供了包含 OpenOffice.org的内容管理解决方案。国内也有一些 Zope/Plone的相关社区,例如: Python中文社区 61Zope/Plone中文社区 62、中文 Zope用户组 63,中蟒(中文 Python64等等。
OpenOffice.org及其它相关开源社区相互协调、共同发展,就可以为个人消费者和团体用户提供更优秀的软件以及整体解决方案。比如在办公自动化、电子出版、工作流、内容管理等领域, OpenOffice.org及其解决方案就有广阔的应用前景。