Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->编程语言 ->PHP4/PHP5 ->使用 PHP 和 Oracle 开发企业应用程序
  相关分类: 
ASP
ViualBasic
UML / Rational Rose
PHP4/PHP5
Perl
JAVA/JSP教程
Delphi
ColdFusion
CGI
C/C++
ASP.NET
XML
  站内搜索: 
热门文章排行
热门文章排行 PHP聊天室技术(06-01)
7种流行PHP集成开发工具(IDE)的比较(06-01)
Linux新手入门常用命令大全 (04-16)
Apache+PHP5.0+GD+Zend+Mysql的配置(04-11)
APACHE中 httpd.conf 的中文详解 (04-16)
精采文章排行
精采文章排行 传奇的诞生 PHP三位创始人简介(06-01)
php在yahoo!的应用(06-01)
7种流行PHP集成开发工具(IDE)的比较(06-01)
PHP开发框架的现状和展望(06-01)
草根的进化PHP语言PHP语言发展简史(06-01)
  ·php在yahoo!的应用·7种流行PHP集成开发工具(IDE)的比较·PHP开发框架的现状和展望·草根的进化PHP语言PHP语言发展简史·Zend Studio5.5测试版 兼容三系统·为PHP5定做 ZendBox 将明年初发布·PHP:“草根语言”挑战“大腕”Java .Net·PHP正式进入IIS微软与Zend携手推动PHP语·PHP语言发展历史

使用 PHP 和 Oracle 开发企业应用程序

作者:webmaster   来源: ORACLE   点击:   日期:2007-04-16 [收藏] [投稿]

  IE是否经常中毒?推荐您

VPD 安全应用程序环境。Companion 应用程序使用 Oracle 的安全应用程序环境,将实体 ID 分配给登录的用户。利用两个简单的标识符 — 帐户(工作人员或毕业生)和环境(实体 ID)— 即可确立大部分的访问规则,并且很容易派生出其余的规则。

这些用于用户登录会话的标识符由一个加密的安全令牌所携带,每次进行查询(即点击数据库中某项内容的超链接)时都会读取该令牌。在加密令牌的会话持续期间,用户登录(名称/口令)以及实体 ID 都存储在 Web 服务器上。登录用于建立与数据库的连接并获得对数据结构的访问权限,而实体 ID 则用于通过安全策略将数据访问权限细化到在行级。

VPD 细粒度访问控制。使用由安全应用程序环境提供的实体 ID 标识符,Oracle 安全策略能够在行级管理访问。这些 FGAC 安全策略 — 与基本角色安全一样 — 附加在对象上。与基本角色安全不同的是,FGAC 策略进一步将访问权限限制在与实体 ID 关联的属性上。附加到所有非公共数据库对象上的安全策略有助于完全剥离受限制的数据。因此,即使数据库登录名和口令被盗取,对任何受策略保护的表进行查询的企图(使用标准 SQL 工具)都将得到空记录集或有限的记录集。策略对用户的属性以及行的属性进行鉴定,并确定用户可以看到哪些行(如果有的话)。例如,只有那些住在温哥华并应邀出席西海岸地区经理宴会的实体才可以查看出席同一活动的登记者名单。另一个例子:分配到 Web 站点的编辑人员不能删除网站的页面,但该网站的作者可以这样做。

共性。我们的 160,000 个实体构成了一个变化的复杂群体。每个实体都有很多共性,如年龄、地位、财政群体、地区等等。为了便于没有经验的管理员分配访问权限,已经将许多这样的属性汇总到一系列的共性组中。有一个共性查询表每天都进行更新,并列出所有实体及其相应的共性。FGAC 也使用该表管理对那些已经分配了共性的数据行的访问。共性还用于为站点的访问者灵活地提供个性化的内容。

图 4 描述了在用户调用页面时筛选数据请求的五个步骤。


图 4:筛选数据访问的五个步骤。
同步

使存储在 Companion 数据库中的数据与存储在中央数据库中的数据保持同步已变成了一项挑战,因为二者都在不断地更新。我们设计了一个系统,它比实时系统慢,但是保证符合严格的数据标准。

起初,每夜在 Companion 数据库中刷新由中央数据库提供的“同步”数据(参见图 5)。这一转储过程中最重要的对象是实体表,它构成了我们内部安全性的基础。

虽然该组同步表在 Companion 应用程序的模块中被频繁使用,但它们并不由这些模块进行更新。实际上,这些更新存放在保持表中,如果有必要,由记录工作人员使用专门设计的客户服务器接口对其进行仔细的编辑。然后,更新的数据在经过编辑从而符合标准之后,被回送到中央数据库。由于中央数据库和 Companion 数据库中的所有行都有日期时间标记,管理这一流程的程序仔细地检查相同记录的更新情况(这些更新可能相互冲突)。与以前相比,准确、更新的数据能够以更大的数量、在利用更少手动操作的情况下流向中央数据库。

由于我们的数据库是 Companion 数据库,它从一些其他的大型数据库中借用字段和数据。Companion 数据库中每个字段的名称都以一个字母的代码作为前缀,该代码表示其源数据库。由于强制在每个表的每个字段名中识别数据源,因此不会漏掉进行同步的机会。


图 5:Companion 数据库的同步

学到的教训以及对开发人员的建议

Kardasz 的团队从这一正在进行的项目中所学到的主要教训如下:

  • 编码标准:拥有关于怎么样构造代码、命名字段和命名表的适当样式指南及格式,这对于程序员很有裨益。还有其他的规则和格式,并始终遵照这些规则和格式来使用和布置存储过程及项目。
    参见样式手册
  • 注释:Oracle 允许设计人员在每个字段和每个表上添加注释。TOAD (http://www.qsft.com/toad/) 具有产生包含这些注释的数据字典报表的功能。这样,您可以自行编写注释。我们最初并没有这样做,回过头来去做真是痛苦。您会惊奇地发现,您在很短时间内忘记了如此多的事情。
  • 线程:Oracle 多线程会话处理的性能优于并发会话。我们本应该从开始时就这样做。

     如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

    上一页 1 2 3 45 下一页

    上一篇:ORACLE PHP教程--从原型到产品的最短距离   下一篇:可扩展 可伸缩的 Oracle 与 PHP
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·传奇的诞生 PHP三位创始人简介

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。