OpenERP/Odoo的架構

OpenERP的架構

一、OpenERP應用系統架構

OpenERP應用系統,大的來說,分成三層,即數據庫服務器、應用服務器、客戶端。

數據庫服務器,OpenERP採用開源數據庫服務器,PostgreSQL database server。數據庫服務器存放所有業務數據和絕大部分配置數據。OpenERP的配置數據和一般說的軟件配置數據不同,如用戶界面顯示,每個界面上要顯示什麼對象的哪個字段,按什麼風格顯示,在OpenERP也是配置數據。在OpenERP中,用戶界面不是通過HTML或其他程序代碼生成,而是直接存放在數據庫中。運行時直接從數據庫中提取數據,渲染成你看到的界面。

OpenERP應用服務器,應用服務包含所有業務邏輯代碼。包括最簡單的CRUD代碼,以及複雜的查詢條件等。業務邏輯由各業務對象實現,你可以通過遠程調用(Net-RPC或XML-RPC)直接調用對象的方法。如大多數業務對象都有CRUD四個方法,你可以遠程調用對象的CRUD方法,從而實現數據庫訪問。

GUI-Client,這是一個客戶端,直接連接在應用服務器上。OpenERP官方提供的GUI-Client是GTK-Client,即基於GTK(Graphics Tools Kit)圖形界面工具包開發的界面軟件。開源社區也有人在開發基於QT圖形界面工具包的客戶端軟件。OpenERP的客戶端不含任何業務邏輯代碼,也不包含任何界面代碼,即所謂的“瘦客戶端”。OpenERP的Client的功能是,通過調用OpenERP應用服務器的各對象的方法,從數據庫中取得界面數據(XML格式定義的界面),以及業務數據,合併二者,渲染成用戶界面,在屏幕上顯示出來。GUI-Client是將界面渲染成通常的窗口界面風格,和Java或.Net編寫的界面程序類似。

Web-Client,這也是一個客戶端,不同的是,它把來自數據庫的界面和業務數據渲染成HTML

格式的網頁形式,因此你可以通過IE、Firefox等瀏覽器訪問。

 

從這個架構圖可以看到,還可以把Web-Client(從用戶角度看,其實是Web-Server)和Appache HTTP Server集成,從而爲Internet用戶提供Https的安全訪問模式。當需要合作伙伴訪問公司的部分數據時,這個功能很有用。

二、OpenERP應用服務器架構

OpenERP技術上最聞名的恐怕是它的靈活的模塊化設計了。它整個應用服務器由鬆散的模塊構成,模塊間的耦合度非常低。怎樣鬆散耦合,是軟件設計中的一個困難問題,OpenERP這點在ERP軟件中做的最好。

OpenERP的應用服務器有這麼幾部分構成:

ORM,Object Relation Mapping,負責數據對象到數據庫的訪問。在OpenERP的業務對象中,你不必寫一行數據庫訪問代碼,就自動具備CRUD的數據庫訪問功能。

BMD,Base Module Distribution,是一個基礎模塊,必不可少。其他模塊,你可以自己任意添加,開源社區有超過500個以上的可用模塊。

Report Engine,負責生成各種報表。目前支持的報表格式有PDF,OpenOffice,HTML三種。

Workflow Engine,工作流引擎。支持任意複雜度的工作流,OE的工作流使用XML格式文件定義,目前也提供簡單的圖形化工作流編輯工具。

WebService,提供網絡調用接口。目前支持Net-RPC、XML-RPC兩種。

關於OpenERP核心對象結構,請參考這裏http://doc.openerp.com/_images/pom_3_0_3.png

三、PostgreSQL數據庫簡介

PostgreSQL是以加州大學伯克利分校計算機系開發的POSTGRES,版本4.2爲基礎的對象關係型數據庫管理系統(ORDBMS)。PostgreSQL被公認爲世界上最先進的開放源碼的數據庫系統,它的許多領先的概念,在晚了好些年後,陸續出現在商業數據庫中。PostgreSQL目前最新的版本是2009年12月份發佈的8.4.2,它的官方網站在這裏:http://www.postgresql.org/

POSTGRES開發始於1986年,它是由加州大學伯克利分校Michael Stonebraker領導的,由美國防務高級研究項目局(DARPA),美國陸軍研究辦公室(ARO),美國國家科學基金(NSF),以及ESL,Inc共同贊助的數據庫研究項目。POSTGRES 1987年發佈了第一個演示版,並且在1988年的ACM-SIGMOD大

會上展出。1989年6月發佈了版本1給一些外部用戶使用。爲了迴應用戶對第一版規則系統的批評,作者

重新設計了規則系統,並於1990年6月發佈了使用新規則系統的版本2。版本3於1991年發佈,增加了多存儲管理器的支持,並且改進了查詢執行器,重寫了規則系統。從那以後,隨後的版本直到Postgres95發佈前工作都集中在移植性和可靠性上。1993年,隨着用戶數的成倍增漲,Postres數據庫的支持成本越來越大,項目組在發佈了Postres4.2後終止了項目。

POSTGRES發佈後在許多研究、生產系統中得到了應用。財務數據分析系統,噴氣引擎性能監控軟件包,小行星跟蹤數據庫,醫療信息數據庫和一些地理信息系統。POSTGRES還被許多大學用於教學用途。後來,Illustra Information Technologies Illustra Information Technologies(後來併入Informix,後者現在被IBM收購了)拿到代碼並使之商業化,發佈了Informix數據庫。

1994年,Andrew Yu和Jolly Chen向POSTGRES中增加了SQL語言解釋器,並優化了全體代碼。隨後以Postgres95的版本號、以開放源碼的形式發佈到互聯網上供大家使用。Postgres95所有源代碼都是完全的ANSI C。和Postres4.2相比,Postgres95代碼量減少了25%,修正了許多錯誤,大幅提高了代碼性能和代碼維護性。Postgres95版本1.0.x進行Wisconsin Benchmark測試時大概比POSTGRES 4.2快30-50%。

1996年,Postgres95改名爲PostgreSQL,版本定爲6.0。今天,PostgreSQL的最新版本是8.4.2。下面列出一些有公開報道的使用PostgreSQL數據庫的機構。

žžAffymetrix:(www.affymetrix.com),一個生物技術研究公司,爲基因研究工業提供藝術級的研究工具,在他們的Transcriptome項目中用PostgreSQL存儲那些從高密度GeneChip序列中生成的海量RNA表達實驗。

Afilias:(www.nic.info),一個域名註冊提供商,目前管理互聯網上新發布的第一個擴展.INFO。它是一個位於愛爾蘭的公司,管理着超過900,000個域名以及超過一千萬條記錄,這些數據都是存放在以PostgreSQL爲後端的數據庫中。

BASF:(www.basf.com),巴斯福,世界上最大的化工公司,使用PostgreSQL爲他們的美國農業綜合業的電子商務網站存儲數據。

Journyx,世界公認的基於web的時間和開銷跟蹤的服務商,擁有超過一百萬最終用戶。他們將PostgreSQL用於他們所有unix平臺上的內部數據庫操作(Linux,BSD,AIX,Solaris,以及很快還有MacOS X)。

Royal,現代Royal打字機公司,他們的在線電子商務網站什麼東西都用PostgreSQL存儲。

žžThe American Chemical Society,美國化學社區,世界上最大的專業化學組織,擁有超過165,000個成員,以及一個每天有超過一千二百萬人訪問的網站。他們的刊物檔案館存儲了125年的所有出版物(兩千五百萬頁,超過1T的數據),用的是PostgreSQL。(目前已知PostgreSQL最大的數據庫)。

Tsutaya,日本最大的視頻節目租賃連鎖店,用PostgreSQL存儲他們超過幾個G,幾百萬條記錄的數據,以及做他們的商業信息數據庫。

 

 

http://www.odooo2o.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章