网络,可以在 Web 上获得支持。有些 Web
网站还提供大量可用于开发更大型应用程序组件的有效代码。大部分程序员很容易理解 PHP 代码,因为它使用了与 C 相似的语法。我们讨论过,使用 Java
来开发我们所期望的服务器对象,其运行效率高于脚本代码。但是,我们尚未发现需要与 Java 集成,因为已经证明 PHP 非常灵活和快速,足以满足我们的需要。清单 1 显示了一个通过 PHP 查询 Oracle 的示例。
在进行更加复杂的面向对象的编程时,使用 PHP
的不足就会显现出来。这是因为它最初是作为一种脚本语言构建的,所以在 PHP 第 4 版中面向对象的特性非常少。这一问题已在 PHP 第 5
版中得以解决,该版本中引入了高级的面向对象特性。
Oracle9i。在不使用第三方工具的情况下,保持 Companion 数据库与中央数据库的同步是我们的首要需求之一。在两个
Oracle9i 系统之间交换数据将会证明比开发其他转换和传输数据的方法要容易得多。在我们的案例中,使用 Oracle9i
带来的好处与我们的投入相比要大得多,这是因为我们能够利用先前 PL/SQL 代码,从而节省了开发时间。由于 Oracle 也移植到了 Linux
上,因此我们现在在 PC 体系结构的数据库服务器操作系统方面有了更多的选择。虽然中央数据库运行在 Oracle8i 上,但我们选择使用
9i 进行开发,以利用其更加先进的 VPD 特性(如 FGAC 和安全应用程序环境),它是市场上具有这些功能的唯一平台。
Companion 应用程序的结构
如同许多软件项目一样,我们开发团队的目标就是,基于可重用安全性组件和数据访问组件的框架,创建由多个功能独立的模块组成的灵活、可伸缩的应用程序。以下就是我们怎么样做到这一点的。
N 层体系结构。为了确保应用程序的可移植性和按需扩展的能力,需要对总的体系结构进行分层 —
换句话说,分为两层或多层,从而减少在某些基础性技术过时或者不能满足我们的需要时重新编写整个应用程序的风险。
在经过大量思考后,我们决定选用自定义的 n
层体系结构(该结构考虑了应用程序的需求以及机构的具体情况),而没有采用较传统的两层或三层的方法。(参见图 1。)
图 1:Companion 的分层结构
GUI 呈现层是最终用户利用其本地浏览器实际看到并处理的内容。该层包含由底层生成的 HTML 页面和表单,还包括用来强化外观和导航的客户端
Javascript 和 CSS(层叠样式表)。该层的主要目的是收集用户输入和提供输出。
呈现逻辑层位于服务器上,只包含那些按功能逻辑分类的 PHP
脚本。它包含呈现模板和布局、验证例程以及特定模块专用的脚本。该层主要用于验证和处理用户输入,并基于从用户和更低层次接收的数据准备输出。
业务逻辑层是实施大部分业务规则的层次(由于安全原因,将某些关键规则严格限制在数据库级,而没有暴露给应用程序级)。它提供了 PHP
类的集合,这些 PHP
类封装了系统各部分专用的规则。此外,该层包含安全框架。该框架通过提供用户验证、会话管理和请求授权等机制,在应用程序级上管理用户的访问。特别是,该框架提供了很多公共方法,允许较高的层次基于安全权限对用户接口进行自定义。最后,该层包含可重用的通用类。应用程序使用这些类来进行数据加密、压缩、数据类型转换等。
数据抽象逻辑层由一组通用方法构成,用于为应用程序提供与存储在数据库中的实际数据的接口。换句话说,它在数据层与系统的其余部分之间提供了一个额外的抽象级别,这使应用程序真正独立于数据库引擎。在经过大量测试后,我们选择了另一种开放源代码工具
ADODB 库 (http://php.weblogs.com/) 来提供这种功能。
数据层又称 Oracle,无疑是该系统中最重要且最复杂的部分。其安全机制将在以下的安全章节中进行解释。
在图 2 中描述了
Companion 应用程序的物理布局:
图 2:Companion 应用程序的物理布局
模块。每个模块均由数据结构(表和视图)和
PL/SQL 程序包的组成。结构与程序包都通过业务逻辑层中的 PHP 类与 GUI
应用程序相集成,以提供一系列主题统一的功能。模块化结构不仅使开发和组织功能的工作变得合乎逻辑且一致,而且对安全性也是一样。
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页 1 23 4 5 下一页
上一篇:ORACLE PHP教程--从原型到产品的最短距离
下一篇:可扩展 可伸缩的 Oracle 与 PHP
|