OFBIZ2.0精簡(jiǎn)版本應(yīng)用概論
OFBIZ2研究 ——中科學(xué)院軟件所 互聯(lián)網(wǎng)軟件技術(shù)實(shí)驗(yàn)室 軟件工程組
雷輝 (leihui@intec.iscas.ac.cn) [2003-4-28]
1 使用OFBIZ的理由
1.1 什么是OFBIZ
OFBIZ是由Sourceforge維護(hù)的一個(gè)最著名的開源項(xiàng)目之一,提供創(chuàng)建基于最新J2EE/XML規(guī)范和技術(shù)標(biāo)準(zhǔn),構(gòu)建大型企業(yè)級(jí)、跨平臺(tái)、跨數(shù)據(jù)庫、跨應(yīng)用服務(wù)器的多層、分布式電子商務(wù)類WEB應(yīng)用系統(tǒng)的框架。
OFBIZ的Web應(yīng)用框架以MVC模式搭建而成,整體采用了很多被大多數(shù)企業(yè)級(jí)應(yīng)用系統(tǒng)公認(rèn)的位于業(yè)務(wù)邏輯層和集成層(Business Tier and Integration Tier)的設(shè)計(jì)模式。許多表示層(Presentation Tier)的設(shè)計(jì)模式也被引入進(jìn)OFBIZ,但是僅僅體現(xiàn)在Servlet控制器(the servlet controller)中,沒有包括在實(shí)體引擎中。在實(shí)體引擎中使用的設(shè)計(jì)模式包括:業(yè)務(wù)代表(Business Delegate),值對(duì)象(Value Object), 符合實(shí)體(Composite Entity(variation)),值對(duì)象組裝器(Value Object Assembler),服務(wù)定位器(Service Locator)和數(shù)據(jù)訪問對(duì)象(Data Access Object)。OFBIZ正在計(jì)劃逐步引入其它設(shè)計(jì)模式和完善已經(jīng)引入的設(shè)計(jì)模式的實(shí)現(xiàn)。
使用OFBIZ的框架和組件,可以大大縮短開發(fā)企業(yè)級(jí)WEB應(yīng)用系統(tǒng)的進(jìn)度和成本。了解詳細(xì)情況請(qǐng)參見:http://sourceforge.net/project/ofbiz。
1.2 OFBIZ和其它項(xiàng)目的比較
與ofbiz類似的項(xiàng)目還有很多,ofbiz與這些項(xiàng)目的最主要的不同點(diǎn)是ofbiz提供了一整套的開發(fā)基于Java的web應(yīng)用程序的組件和工具。一個(gè)優(yōu)秀的web應(yīng)用程序應(yīng)該是至少三層結(jié)構(gòu):表示層,業(yè)務(wù)邏輯層和數(shù)據(jù)層。大多數(shù)應(yīng)用框架,比如Struts, Cocoon, 和 Velocity 將主要精力都集中在了表示層。比如Struts,遵循了(MVC)構(gòu)架,使用Java Bean和Action類與JSP頁面進(jìn)行通訊。Struts是一個(gè)很好的web應(yīng)用框架,但它并沒有提供訪問數(shù)據(jù)庫的組件,也沒有提供控制工作流的組件。如果要使用,你必須自己創(chuàng)建這些組件。如果已經(jīng)在利用其它的應(yīng)用框架(如Struts),你也可以很容易的將ofbiz的組件添加到自己的工程中。
與其它類似開源項(xiàng)目相比,OFBIZ是一套有血有肉的包含編譯打包部署工具、應(yīng)用組件、示例應(yīng)用等內(nèi)容的企業(yè)級(jí)Web應(yīng)用系統(tǒng)實(shí)現(xiàn)框架。
1.3 開源的優(yōu)勢(shì)
OFBIZ是一個(gè)開源項(xiàng)目,由幾個(gè)牛人在維護(hù),它具有開源項(xiàng)目的一切優(yōu)勢(shì),如免費(fèi)(隨時(shí)下載);集市式開發(fā)方式;成千上萬的人在維護(hù),也在測(cè)試等等。也具備開源項(xiàng)目的所有缺點(diǎn),如缺乏技術(shù)文檔,提交的系統(tǒng)沒有全面測(cè)試;不穩(wěn)定等等,但無論如何,我們要清醒的認(rèn)識(shí)到:
1、 OFBIZ是一個(gè)開源項(xiàng)目。
2、 OFBIZ只僅限于系統(tǒng)開發(fā)者使用。
1.4 完善的實(shí)體引擎
OFBIZ 實(shí)體引擎提供了一組工具和設(shè)計(jì)模式來對(duì)現(xiàn)實(shí)世界中特定的實(shí)體(數(shù)據(jù)對(duì)象)進(jìn)行建模和管理。在本系統(tǒng)的上下文環(huán)境中,一個(gè)實(shí)體就是一個(gè)由多個(gè)數(shù)據(jù)域(fields)和該實(shí)體與其它實(shí)體之間的關(guān)系所組成的一個(gè)數(shù)據(jù)對(duì)象。這個(gè)定義來自于關(guān)系型數(shù)據(jù)庫對(duì)實(shí)體關(guān)系模型(Entity-Relation modeling)概念的標(biāo)準(zhǔn)定義。實(shí)體引擎的目標(biāo)是簡(jiǎn)化企業(yè)級(jí)應(yīng)用中對(duì)實(shí)體數(shù)據(jù)(對(duì)應(yīng)關(guān)系型數(shù)據(jù)庫表)的大量操作,包括定義、維護(hù)、通用操作(增、刪、改、查實(shí)體和實(shí)體之間的關(guān)系)的開發(fā)工作
實(shí)體引擎采用了很多被大多數(shù)企業(yè)級(jí)應(yīng)用系統(tǒng)公認(rèn)的位于業(yè)務(wù)邏輯層和集成層(Business Tier and Integration Tier)的設(shè)計(jì)模式。許多表示層(Presentation Tier)的設(shè)計(jì)模式也被引入進(jìn)OFBIZ,但是僅僅體現(xiàn)在Servlet控制器(the servlet controller)中,沒有包括在實(shí)體引擎中。在實(shí)體引擎中使用的設(shè)計(jì)模式包括:業(yè)務(wù)代表(Business Delegate),值對(duì)象(Value Object), 符合實(shí)體(Composite Entity(variation)),值對(duì)象組裝器(Value Object Assembler),服務(wù)定位器(Service Locator)和數(shù)據(jù)訪問對(duì)象(Data Access Object)。OFBIZ正在計(jì)劃逐步引入其它設(shè)計(jì)模式和完善已經(jīng)引入的設(shè)計(jì)模式的實(shí)現(xiàn)。