欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Drupal + Oracle:OraDrup 项目内幕

程序员文章站 2024-01-22 21:02:04
...

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 “开源的”和“标准的”这两个形容词缺一不可吗?将 Drupal 与 Oracle 数据库 XE 组合在一起所做的努力证明,答案是:这不是必需的。 2007 年 1 月发表 试举下列情形:在对一个有关实现的项目进行研

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

“开源的”和“标准的”这两个形容词缺一不可吗?将 Drupal 与 Oracle 数据库 XE 组合在一起所做的努力证明,答案是:这不是必需的。

2007 年 1 月发表

试举下列情形:在对一个有关实现的项目进行研究时,您阅读了一篇有关某个开源软件的网志或文章,其中说该软件是“不依赖数据库的”并且可以与“任何”支持 ANSI SQL 的数据库(例如 Oracle 数据库)协作。

经过一番调查,您发现该软件是一项很了不起的杰作。然而,再经过一段时日的深入探索后,您发现,事实上该软件只可用于极少量的数据库管理系统,而不是象写网志的人/作者所宣称的那样适用于所有标准数据库。因此,您取消了该项目。

该问题在开源软件中很常见,为了保留其所有优势不必采用“标准的”方法。该案例研究向您介绍 OraDrup 项目,其目标是将常用开源 Drupal CMS 与 Oracle 数据库组合在一起,使前者可供庞大的 Oracle 开发人员社区选择使用,反之亦然。

Drupal 是什么?

开源 CMS 已经流行很久了。它们以各种形式出现,通过 Java、PERL、Python 以及无所不在的 PHP 等众多技术实现。某些 CMS 可能专注于特定类型的内容,例如可能带少量图像处理的文字。其他 CMS 则有很多功能,包括音频、视频、任意文档、结构化信息以及事件。

例如,Drupal 就是一种高级的内容管理框架。利用 Drupal 可以通过一致、有序的方式管理各种内容。Drupal 站点是面向多个用户的,可以充当网志、论坛、协作创建工具、目录、一般社区站点或者以上几项的任意组合。它是一种构建复杂 Web 站点或者将基于 HTTP 的界面整合到现有系统中的强大工具。

Drupal 在 2000 年刚开始出现的时候只是一个简单的、没什么名气的内部消息站点,其中有一个内置的公告板,供一群学员朋友在这里互留信息。之后不久,该站点就在万维网上占据了自己的一席之地。它有了现在的名称,并以开源软件的形式进行发布。它引起了很多人的兴趣,很快开始呈现出自己的特色,其中综合了很多理念,如协作、内容管理、工作流、联合、分布式身份验证等。现在,全球有大概 400 人正致力于该系统各个方面的工作,并且该人数还在持续增长。

Drupal 的构建高度模块化。它具有一个支持一组核心模块小内核,这些模块负责提供应用程序服务。例如,系统模块负责管理站点的一般功能、书籍模块允许用户协作创作书籍、搜索模块负责建立内容索引以及进行基于关键字的搜索。核心模块数量很多,您可以根据要求随意启用或禁用它们。这确实使得该系统十分灵活。

在外部看来,扩展核心包提供的 Drupal 功能就变成了在其他模块中进行构建和插入。在该特殊的域,有贡献的模块并不匮乏。例如,如果要求对软件进行管理,则可以安装和激活项目模块。项目问题跟踪模块进一步扩展了项目模块的功能。这些模块由 Drupal 社区主动进行维护和改进。这些模块丰富多样,如地理空间图示化、OpenID、思维导图甚至英文到“海盗语言”的翻译。

Drupal 的另一个优点是它的主题化系统。主题是指定 Drupal 站点外观的术语。在其他 CMS 中,该功能有时称为模板化或“换肤”。Drupal 很适应这样的自定义。

Drupal 主题化的好处是,自定义站点外观时根本不需要修改现有的代码。可显示项目(例如页面、图像、表单元素等)的生成通过一组名为“主题功能”的基准线呈现功能来处理。主题系统允许开发人员将可选择的主题功能放入主题目录中,以使用和覆盖这些功能。例如,一个包含以前呈现为无序列表的选项的菜单可以很容易地针对特定主题转换为一组动画选项卡。

为什么要将 Oracle 和 Drupal 放到一起?

Oracle 的契入点是什么?到目前为止,Drupal 主要是一个面向 MySQL 的系统。Drupal 安装中很流行的部署选择是 LAMP 堆栈 (Linux-Apache-MySQL-PHP)。当然,Drupal 相当于在家运行于能够安装 MySQL 和 PHP 的任何平台之下。

这对平常的实现来说都很好,但是有时 LAMP 中的“M”不是一个选项。有些机构可能没有那么大的财力可以将其他数据库服务器合并到他们的运营中。在其他情况下,MySQL 可能不是任务的合适解决方案。在此类情况下,不可能采用 Drupal。

此外,Drupal 有着这样一个活跃的开发人员社区,因此它完全可以进行扩展以将 Oracle 技术包含在内。为此,Drupal 可供基于 Oracle 的开发人员选择使用,反之亦然。如果是这样,看到它可以利用或受益于以下这些 Oracle 特性将会是多么令人感到兴奋的一件事:

  • 数据分区和并行化
  • 复制和队列技术
  • 真正应用集群
  • 透明应用程序故障切换和其他高可用性特性
  • 数据库级别的细粒度访问控制
  • 自动段空间管理

此外,Oracle 数据库的巨大影响力将会为 Drupal 争取到更多之前其往往都会受到忽略的展示机会。

关于 Drupal 支持任意数量的数据库平台的潜力已经有过很多讨论。实际上,支持 PostgreSQL 与支持 MySQL 是紧密相连的。那么,为什么没有关于 Drupal 可在 Oracle 之下运行的报道呢?尽管他们对构建具有 Oracle 兼容性的项目抱有美好愿望,但这一愿望似乎深陷“百慕大三角”。因此,基于 Oracle 的 Drupal 实现似乎成为了一个神话 ― 至今还无人见过此种实现。

我决定去探索该神话起源的第一手资料。将 Oracle 支持构建到 Drupal 4.7.0 中的难易度如何?我将通过创立 OraDrup 项目来一探究竟。

[1] [2] [3]

Drupal + Oracle:OraDrup 项目内幕