发信人: cn_prince(欢喜王子)
整理人: qiaoqian(2001-12-30 23:56:09), 站内信件
|
如果纯粹以大小来看,Sun Microsystem 的 StarOffice,这个包含 750 万行代码和 2 万个文件的基于组件的生产力办公应用套件,可以说是有史以来最大的开放源码贡献”,Sun Microsystems 的集团产品经理 Bill Roth 说。
Sun 是否能将该套件转化为同比例的市场销售业绩还未可知,但是有迹象表明:程序员和软件开发人员热衷于将完全成熟的生产力办公套件置于自己控制之下--这样可以将每个应用、或整个套件当作组件对待。
当 Sun 去年获得 StarOffice 时,他们选择了通过名为 Universal Network Objects (UNO) 的基于组件的开发框架来重新设计这个生产力软件的结构。UNO 是 Sun 为 StarOffice 设计的,它允许软件开发人员和程序员利用组件技术的关键特性,例如一致的接口分配、对重要组件标准的支持、组件的透明本地化、批处理能力和平台无关性。
“将 StarOffice 组件化是我们对该产品的一大增值”,Roth 说。“我们决定为那些只想向其应用添加一个字处理器或电子表格的人们拆分 StarOffice 套件中的应用。
跨平台
StarOffice 运行在包括 Linux 的 Unix 系列操作系统和 Microsoft Windows 操作系统之上。“既然 StarOffice 是跨平台产品,开发人员就可以方便地选择将一个字处理器放入 ERP 系统中,而无需集成没有源代码的现成产品。无论是在 Windows 上还是在 Linux 或 Solaris 上,您都能获得同样的外观和感受”,Sun 的技术销售部总监 Phil Parkman 说。
按 Roth 的话说,经过组件化的 StarOffice 套件以那些总想改动其应用、但从未得到过源代码的 C++ 和 Java 软件开发人员为目标。有了 StarOffice,您可以得到任何东西。每个人都可以看到我们正在做的每件事”,他说。StarOffice 的开放源码、基于组件的体系结构“给予程序员和开发人员做其想做事情的自由”,Roth 说。
为什么采用 UNO?
目前,开放源码界和其它领域并不缺少组件模型来吸引人们的注意,但是 Parkman 却将 UNO 拥戴为可提供灵活的、与语言无关组件模型的复杂的、面向对象框架。他说:“UNO 不依赖于任何图形子系统,但在很大程度上基于多线程和网络通信能力。”
而且,“UNO 考虑到了后期绑定”,或者将一个软件实体与另一个关联的过程,Parkman 说。“UNO 和很多其它对象请求代理 (ORB) 背后的观念是:绑定在运行时发生(这意味着在实际执行代码之前不连接其它代码段),而不是在编译时发生。如果要通过网络运行某个应用,则在实际执行它之前,您不知道要连接到网络上的哪些位置 -- 这就是需要后期绑定能力的原因所在”,Parkman 说。
Parkman 指出,面向对象框架的传统缺点在于它们往往增加等待时间。“当您位于个人生产环境中时,必须减少等待时间。人们习惯于直接操纵他们在屏幕上所处理的所有对象”,他们说。对于 Sun,UNO 关键的设计参数之一是:它必须非常快,并提供极高性能。“我想我们成功了,”Parkman 说:“在现代的机器上,StarOffice 运行得十分畅快。”
内中秘密
David Mason 是 Red Hat Inc. 高级开发实验室主任,该公司是北卡罗来纳州的一家公司,它将 StarOffice 与其 Linux 操作系统版本捆绑在一起。Mason 小组的成员从一开始就一直致力于 GNU Network Object Model Environment (GNOME) 项目的工作,现在仍密切关注 UNO 和 StarOffice。
“GNOME 项目曾留意过 Sun 的 UNO 组件模型,以了解可以进行哪种集成”,Mason 说。他相信,Sun 转向 UNO 的一个主要原因是他们需要一个组件系统来帮助避免应用的耗时重建。“每当更改软件时,他们都要重建更个应用。重建 StarOffice 需要大半天。因此,他们转向组件模型来减少应用的复杂性并减少创建模块和修改应用所需的代码数量。
“UNO 很有趣”,Mason 说。“它有一个 COM 接口并支持 C、C++ 和 Java。“我不是很清楚为什么他们不选择 CORBA,因为那是 GNOME 对 Bonobo 组件系统使用的模型。”Bonobo 是用来创建可重用软件组件和复合文档的 GNOME 体系结构。“我很怀疑 GNOME 是否会开始使用 UNO,但是, 有一个正在进行的项目通过创建向对象激活框架 (OAF) 提供 CORBA/Bonobo 接口的可执行程序,将 Bonobo 映射到 UNO,然后将请求映射到 UNO 中的功能。Bonobo 和 UNO 将一起工作,因此您可以轻易地将 StarOffice 电子表格嵌入另一个应用”,他说。
OpenOffice 主持工作
由于开放源码项目一般依赖于中央机构来维护和更新代码,因此 Sun 最近推出了 OpenOffice.org 来引导 StarOffice 应用套件的发展。OpenOffice.org 提供结构化的工程过程来引导 StarOffice 应用的发展。大约 150 名 Sun Microsystems 工程师致力于 Sun 的 StarOffice 工作,并且自该项目成为开放源码以来,大约 1500 名技术专业人员对 OpenOffice.org 作过代码贡献。“当代码在 Web 上发布之后,人们在 36 小时之内已对代码做了贡献”,Parkman 说。
“我们正从开放源码界寻找一个事情”,Parkman 说,包括与 GNOME 环境更好地集成。 “那将是我们的桌面环境的发展方向,正如在 Linux 世界中一样……当它投入个人生产力时,每个人都可以根据其喜好进行改动,而且我们正期待从开放源码界获得一些改进功能性的方法”,Parkman 说。
Red Hat 的 Mason 指出,“如果他们将 OpenOffice.org 转向与 GNOME 紧密集成,则 UNO 将只影响 Red Hat 的 Linux。“然后,我们将用真正不同的眼光来看待它,因为它将比现在更象是 GNOME 包的一部分”,他说。
几位 Red Hat 程序员已经对 OpenOffice.org 作了独立的贡献,Mason 指出,“我们的确在跟随 UNO 和 StarOffice,因为拥有身为开放源码的完备办公套件很有趣。并且我们很高兴他们选择了他们所做的许可证。
StarOffice 可免费获得,并可以从 OpenOffice.org Web 站点下载。用户必须遵守 GNU 公共许可证 (GPL) 中所列的条款。“有关特许方面要记住的关键事项是 StarOffice 经 [GPL] 允许”,Roth 说。人们可以获得代码并随意去做。我们不想获得 OpenOffice.org 源代码库的许可证费用”,他强调。
全面的用户基础
Roth 估计大约有 1600 名 StarOffice 用户,包括从爱沙尼亚的研究生到重要的美国公司(如波音和 Silicon Graphics Inc. (SGI))这样的用户。“OpenOffice.org 方法也是独立于语言的,并提供一组标准的开放文件格式集来促进使人们方便第共享文件的互操作性”,Roth 补充到。
StarOffice 套件包括一个字处理器和电子表格程序,以及如绘图、制表和显示数据等应用。Sun 在 1999 年收购 Star Division,一家以欧洲的 Linux 用户为目标的德国公司时获得了 StarOffice。“StarOffice 应用是完全集成的,并且与 Microsoft 和 Corel 的办公套件相比有极大的价格优势”,Roth 回忆到。
但是,一家公司如何与 Microsoft 这个拥有 96% 办公生产力市场的公司竞争呢?“首先,我们决定使我们的软件免费,以在更低费用的基础上提供更多的价值。然后,我们决定采用开放源代码方法,使程序员和开发人员可以定制软件。这与 Microsoft 的封闭式源代码观点完全不同。为进一步增加产品竞争力,Sun 决定将整个 StarOffice 套件组件化。“人们想将这些程序集成到其应用中,因此我们开始将代码组件化”,Roth 说。
最终目标
感谢其组件体系结构,现在可以将任何 StarOffice 应用、或完整 StarOffice 套件集成到其它程序。例如,程序员可以将 StarOffice 字处理器或电子表格应用作为组件放入客户关系管理包中。“选择开放源码方法和基于组件的体系结构允许我们使 StarOffice 对更广泛的用户可用,还可以使那些要访问应用程序源代码的软件开发人员和程序员轻松一些”,Roth 说。
Roth 将 StarOffice 看作是使用完整应用作为组件的趋势的“倡导者”。“以往的组件常常是具有有限功能的小程序,但是今天人们会说:“我要在 ERP 系统中有一个字处理器,以编辑发货单和购物单。象 StarOffice 这样的组件和组件套件的最终目标就是要允许具有不同水平的人们执行编程任务”,Roth 说。
“任何时候当您选择组件模型时,您都允许程序员仅通过将不同部分粘合在一起来构建更大、更复杂的应用”,Mason 说。“组件模型对开发人员来说是极好的。目前存在大量不同的组件模型,这种情况有些混乱,但是如果只从事一个项目,那么拥有一个组件模型就很不错。他补充到“还需要进一步的工作以使所有这些组件模型协同工作。希望开放源码界注意到这点。
参考资料
查看 developerWorks 上的开放源码项目
造访 OpenOffice.org
关于作者
Claude J. Bauer 是美国马里兰州 Middletown, 的自由技术记者。他的文章出现在大量技术出版物和各种 Web 站点上。请造访 Bauer 先生的主页或通过 [email protected] 与他联系。
|
|