OpenOffice_org系列讲座(一)

  1. 作者简历

1994年入学清华大学电机工程与应用电子技术系,2002年毕业于该系,获电气工程专业工学硕士学位。

1996年起接触UNIX平台上的大型工业控制和分析软件系统研发,1997年开始尝试自由和开源软件,1999年完成了国内第一套基于GNU/Linux平台的能量管理/调度员培训仿真(EMS/DTS)一体化系统的移植工作,并于2000年在广西玉林电网投入现场运行,该项目获得年度广西科技进步三等奖。

2002年加入Sun中国工程研究院,专注于StarOffice/OpenOffice.org相关技术工作。现为结构化信息标准促进组织(OASIS)所设立的开放办公XML格式技术委员会(Open Office XML Format TC1成员。

  1. 序言

随着自由软件和开放源码运动的发展,越来越多的个人和团体对Linux等开放源码操作系统平台熟悉起来。作为开源操作系统系统上应用最广泛的办公软件,OpenOffice.org也逐渐被越来越多的用户和开发者所了解、接受与喜爱。但是在这一不断学习和推广的过程中,他们常常会遇到很多问题。其中的一些是:

用户应该如何学习使用OpenOffice.org,在使用过程中遇到了困难,该循什么途径解决?软件开发者该怎样参与开源社区的建设、了解OpenOffice.org的技术,并编写自己的软件?软件厂商可以如何利用OpenOffice.org的架构和实施方案,参考成功案例,搭建自己的软件平台,为用户提供自己的服务和附加价值?企业和其他团体用户如何利用OpenOffice.org进行信息化建设,保护投资与降低总持有成本(Total Cost of OwnershipTCO);国家如何利用OpenOffice.org等开源技术提高互联网络上信息的共享和交流,保护信息安全。

本系列讲座并非试图解决以上所有的问题,只是作者从系统架构的角度出发进行探讨,期望能够对读者,尤其是软件开发者深入了解OpenOffice.org有所裨益。“深入了解OpenOffice.org”系列讲座共分为三篇:第一篇“OpenOffice.org简介”,主要介绍OpenOffice.org的发展轨迹、若干易产生误解的问题、OpenOffice.org的应用概述,以及社区的结构和运作机制,志愿者和团体参与社区建设的途径,社区的通讯和协作方式,与之关系较为密切的若干开源软件社区;第二篇“OpenOffice.org体系结构”,主要介绍OpenOffice.org的技术架构、编程语言、组件对象模型、应用程序接口、二次开发包以及与其他组件的关系;第三篇“OpenOffice.org中的XML应用”,主要介绍OpenOffice.orgXML文件格式规范、基于XSLT的文件过滤器、与OASIS Open Office XML格式的关系。希望能够通过这些介绍,使开发者对OpenOffice.org的技术特点有更深入的了解,有更多的志愿者参与到OpenOffice.org社区的建设中来,共同推广OpenOffice.org的发展与应用。

在此特别说明一点,本系列讲座的所有文字都是在OpenOffice.org 上完成创作的。

  1. OpenOffice.org简介

    1. OpenOffice.org发展轨迹

      1. 开放源码的时代背景

上世纪90年代开始的Internet的爆炸性发展给个人和整个软件产业都带来了一场巨大的变革。随着互联网络的高速发展,传递信息的速度越来越快,而发布信息的成本却在不断地降低。传统专有软件商在软件发布和维护成本不断降低的同时,仍然试图通过昂贵的许可证方式分发软件。而消费者希望能够快速、廉价甚至自由地获得具有必要功能的、稳定和可用的产品。这样就凸现了一个原先并不明显的矛盾:前互联网时代的版权法规限制着软件和信息产品在网络上的自由传播,称之为“盗版”,普通大众需要一种合法的、成本可接受的方式来获得必要的软件和信息产品2。有需求就有市场。起源于80年代的自由软件和开放源码运动在潜行了相当长一段时期之后,从此具有了适合的土壤而蓬勃发展起来。

对于计算机的普通用户来说,具有文字处理、电子表格、演示文稿、数据图表、公式编辑、简单绘图和图片处理等功能的办公软件已经成为一种“生产力软件”,也就是能够大幅提高生产力的基础软件。但是占据市场份额超过90%Microsoft Office却一直是价格昂贵的专有软件,其中的大部分功能个人用户很少用到。所以对消费者来说,它逐渐地已经成为一种奢侈品,然而现在的大部分用户因为专有文件格式被锁定在其上,不得不继续使用其升级产品。广大用户希望能够出现一种替代昂贵专有办公软件的廉价、稳定、具有足够功能并且可用的办公软件。

      1. 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应用

      1. 开源社区

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服务器)和安装包。

      1. 衍生软件

自从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及其解决方案就有广阔的应用前景。

本篇对OpenOffice.org进行了简要介绍,概述了它的发展轨迹、应用现状与前景、社区组织结构等基本信息。读者可以看到,OpenOffice.org的应用范围不断扩大,与用户和开发者积极参与社区建设、第三方软件厂商的大力支持都是分不开的。作者在此也很希望国内能够有更多的软件开发者和其他志愿者积极参与到OpenOffice.org社区的建设中来。这不仅有利于促进OpenOffice.org的提高和应用,同时也有利于提高国内软件行业人员的技术与交流水平,从而有利于从整体上提高国内软件行业的国际化程度与竞争实力。

OpenOffice.org之所以能够获得广泛应用,原因不仅如此,更深刻地是在于它优秀的跨平台架构和开放的XML文件格式这些技术特性。下一篇将会重点介绍OpenOffice.org优秀的跨平台技术架构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
This is JODConverter version 2.2.2, released on 2009-04-11. JODConverter is a Java library for converting office documents into different formats, using OpenOffice.org 2.x or 3.x. See http://www.artofsolving.com/opensource/jodconverter for the latest documentation. Before you can perform any conversions you need to start OpenOffice.org in listening mode on port 8100 as described in the JODConverter Guide. As a quick start you can type from a command line soffice -headless -accept="socket,port=8100;urp;" JODConverter is both a Java library and a set of ready-to-use tools: * a web application that you can deploy into any servlet container (e.g. Apache Tomcat) * a command line tool (java -jar jodconverter-cli-2.2.2.jar <input-document> <output-document>) Requirements ============ The JAR library requires * Java 1.4 or higher * OpenOffice.org 2.x or 3.x; the latest stable version (currenty 3.0.1) is generally recommended The webapp additionally requires * A Servlet 2.3 container such as Apache Tomcat v4.x or higher Licenses ======== JODConverter is distributed under the terms of the LGPL. This basically means that you are free to use it in both open source and commercial projects. If you modify the library itself you are required to contribute your changes back, so JODConverter can be improved. (You are free to modify the sample webapp as a starting point for your own webapp without restrictions.) JODConverter includes various third-party libraries so you must agree to their respective licenses - included in docs/third-party-licenses. That may include software developed by * the Apache Software Foundation (http://www.apache.org) * the Spring Framework project (http://www.springframework.org)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值