Oracle開發(fā)的企業(yè)實際應用相關程序
以下的文章主要是描述麥吉爾大學在Oracle開發(fā)和校友關系部是如何使用 PHP 與Oracle 在某些網上支持多達, 16 萬名用戶,在麥吉爾大學(位于加拿大魁北克省的蒙特利爾)的研發(fā)和校友關系部,我們正在使用行業(yè)級的 PHP 應用程序和 Oracle9i。
將范圍廣泛的多層次服務轉移到 Web 上,這些服務由 200 到 300 名受薪的和志愿的工作人員以及多達 16 萬名校友和捐贈人使用。
預計該程序在主要的電子廣播時段每小時將會接納數(shù)萬名用戶。我們利用 Oracle 功能強大的行級安全特性以及 PHP 的高性能和快速開發(fā)平臺來完成這一工作。本文將探討以下方面:
背景
我們?yōu)槭裁催x擇 PHP、Oracle9i、Apache 和 Linux
應用程序的結構
安全性
同步
學到的教訓以及對Oracle開發(fā)人員的建議。
背景
我們的機構面臨著很多機構所面臨的問題:
中央數(shù)據(jù)庫應用程序
散亂而繁瑣
屬于關鍵任務并且不可替代
難以更改或者幾乎無法更改
依賴生產商的版本升級進行更改
出于安全和成本的考慮,不能訪問互聯(lián)網
大量半獨立狀態(tài)的輔助數(shù)據(jù)庫和 Web 站點
與中央數(shù)據(jù)庫沒有充分同步
對于適當?shù)陌踩院蜕壘S護而言,數(shù)量過多
為最終用戶提供過多的 ID 和口令
沒有遵循已確立的機構業(yè)務慣例
越來越多地要求
通過基于 Web 的 IT 工具獲得機構的高效率和生產率
易于使用
在功能間同步數(shù)據(jù)
可伸縮性
靈活性
功能的擴展性
加強 IT 和一般業(yè)務慣例的應用
那么,我們正在如何應對這些挑戰(zhàn)呢?
我們已經啟動了安全的、基于 Web 的模塊化數(shù)據(jù)庫應用程序Oracle開發(fā)的第一階段。它以 PHP 和 Oracle9i編寫而成,在替代衛(wèi)星應用程序及 Web 站點之后,必將為用戶提供更好的服務。它對公共數(shù)據(jù)進行同步,并在總體上以及數(shù)據(jù)方面加強最佳業(yè)務慣例的應用。
該應用程序稱為 Companion,因為它增加了反向中央數(shù)據(jù)庫的功能,準確地報告中心數(shù)據(jù),并在出現(xiàn)新數(shù)據(jù)時將其回送。
它包含超過 100 個表,這些表被分為 6 個模塊。最長的表大約有一百萬行。有些表有 20 到 30 列。全部用途是由用于行級安全性的 Oracle 細粒度訪問控制 (FGAC) 和虛擬專用數(shù)據(jù)庫 (VPD) 構成的。
Companion 應用程序包含三個域,而且能夠容納更多的域,這些域全都安全地訪問同一 PHP/Oracle 應用程序中的相同數(shù)據(jù)。這些域包括以下內容:
工作人員內聯(lián)網
為 200 到 300 名工作人員提供的內聯(lián)網,包含人們在許多工作人員內聯(lián)網中可以看到的所有 Web 網站、在線文檔和目錄,還包含一組模塊,用于完成以前由輔助應用程序所做的所有工作。工作人員的定義已經擴展為包含志愿人員(我們是非贏利組織)以及從我們單位之外挑選的員工。工作人員內聯(lián)網包含創(chuàng)建頁面、文章以及在另外兩個域中產生的事件的工具。
“會員”內聯(lián)網
一個由口令保護的在線社區(qū),用于我們所服務的多達 16 萬名會員 — 這里指我們的畢業(yè)生
公共域
一個信息站點,鏈接面向公眾的子網站和新聞文章。
我們?yōu)槭裁催x擇 PHP、Oracle、Apache 和 Linux
Apache 和 Linux。二者都以強健、低成本和安全性(在正確配置的情況下)而著稱。除了作為數(shù)據(jù)庫服務器操作系統(tǒng)給人留下深刻印象之外,我們還發(fā)現(xiàn) Linux 的 Debian 版本(來自http://www.debian.org/的 Debian 項目)特別適合作為 Web 服務器,原因在于它在開放源代碼社區(qū)中具有非常高的支持率、其集成軟件的高質量以及它在穩(wěn)定性方面的良好聲譽。
PHP。我們沒有選擇 Active Server Pages、ColdFusion 和 JSP,而是選擇 PHP 作為我們的 Web 服務器端腳本環(huán)境,原因在于它的速度、成本效益、大量的庫文件以及比其他 Web 技術更好的自定義功能。使用 PHP 還使我們免于束縛在特定廠商的Oracle開發(fā)工具集上。
通過一個由 Web 網站以及程序員論壇(提供關于如何處理高級故障的有用提示)組成的網絡,可以在 Web 上獲得支持。有些 Web 網站還提供大量可用于開發(fā)更大型應用程序組件的有效代碼。大部分程序員很容易理解 PHP 代碼,因為它使用了與 C 相似的語法。我們討論過,使用 Java 來開發(fā)我們所期望的服務器對象,其運行效率高于腳本代碼。
但是,我們尚未發(fā)現(xiàn)需要與 Java 集成,因為已經證明 PHP 非常靈活和快速,足以滿足我們的需要。清單 1顯示了一個通過 PHP 查詢 Oracle 的示例。
在進行更加復雜的面向對象的編程時,使用 PHP 的不足就會顯現(xiàn)出來。這是因為它最初是作為一種腳本語言構建的,所以在 PHP 第 4 版中面向對象的特性非常少。這一問題已在 PHP 第 5 版中得以解決,該版本中引入了高級的面向對象特性。
Oracle9i。在不使用第三方工具的情況下,保持 Companion 數(shù)據(jù)庫與中央數(shù)據(jù)庫的同步是我們的首要需求之一。在兩個 Oracle9i系統(tǒng)之間交換數(shù)據(jù)將會證明比開發(fā)其他轉換和傳輸數(shù)據(jù)的方法要容易得多。在我們的案例中,使用 Oracle9i帶來的好處與我們的投入相比要大得多,這是因為我們能夠利用先前 PL/SQL 代碼,從而節(jié)省了開發(fā)時間。
由于 Oracle 也移植到了 Linux 上,因此我們現(xiàn)在在 PC 體系結構的數(shù)據(jù)庫服務器操作系統(tǒng)方面有了更多的選擇。雖然中央數(shù)據(jù)庫運行在 Oracle8i上,但我們選擇使用 9i進行Oracle開發(fā),以利用其更加先進的 VPD 特性(如 FGAC 和安全應用程序環(huán)境),它是市場上具有這些功能的唯一平臺。
【編輯推薦】