摘要:該文對一種基于J2EE開源技術(shù)的電子商務(wù)開發(fā)平臺ECStudio設(shè)計與實(shí)現(xiàn)進(jìn)行了介紹,該平臺以面向服務(wù)的體系結(jié)構(gòu)為基礎(chǔ),以工作流管理為核心,通過工作流引擎來組織企業(yè)服務(wù),采用Eclipse插件方式快速定義電子商務(wù)業(yè)務(wù)邏輯并自動生成多層體系架構(gòu)的java代碼,以JBPM作為工作流引擎,集成Liferay并且以Portlet作為電子商務(wù)應(yīng)的展現(xiàn)方式,大大降低J2EE電子商務(wù)系統(tǒng)的開發(fā)難道,提高了電子商務(wù)系統(tǒng)開發(fā)效率。
關(guān)鍵詞:電子商務(wù);快速開發(fā)工具;J2EE;開源
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2009)05-1124-02
Design And Realization Of An E-Commerce Development Platform Based on J2EE Open Source Technology
YANG Hai-chao
(Mathematical and Computer College ,Dali University, Dali 671003,China)
Abstract:This paper introduce the design and realization ofan E-commerce development platform based on J2EE open source technology.This platform use eclipse plug-in to define the logic of E-commerce and generate the N-Tier code of java,use JBPM as the workflow engine,integrate liferay portal and use portlet as the way to present E-commerce applications.
Key words: E-commerce;Rapid Development Tools;J2EE;Open Source
1 引言
我國電子商務(wù)的發(fā)展始于20世紀(jì)90年代初,近幾年我國電子商務(wù)獲得了迅速發(fā)展,電子商務(wù)市場也保持了穩(wěn)定增長的勢頭,電子商務(wù)已成為企業(yè)與國際接軌、提升競爭力的關(guān)鍵因素。電子商務(wù)系統(tǒng)作為企業(yè)級應(yīng)用,需要使用企業(yè)級的軟件技術(shù),J2EE就是企業(yè)級軟件技術(shù)的典范利用,J2EE平臺可以使大、中型企事業(yè)單位更容易、更迅速地構(gòu)建大型的分布式應(yīng)用系統(tǒng),具有開發(fā)容易、維護(hù)容易和部署方便的特性,為電子商務(wù)的實(shí)施提供了技術(shù)保障。因此,基于J2EE技術(shù)開發(fā)分布式電子商務(wù)應(yīng)用已經(jīng)成為主流[1]。但是,目前J2EE系統(tǒng)開發(fā)難度較高,難于被廣大的開發(fā)人員所使用。因此,一種能夠有效降低J2EE開發(fā)難度的快速軟件開發(fā)工具將非常需要。然而,完全從頭開始開發(fā)一套開發(fā)平臺的難度是非常大的,基于國際上優(yōu)秀的開源技術(shù)來構(gòu)建開發(fā)平臺是一個非常有意義的嘗試。
2 總體思路
本項目使用Eclipse軟件插件的思想,將多項國際上優(yōu)秀的開放源代碼軟件進(jìn)行集成,形成統(tǒng)一的快速軟件開發(fā)平臺。平臺以企業(yè)服務(wù)(商業(yè)邏輯)為基礎(chǔ),以商業(yè)過程(工作流)管理為核心,支持豐富交互的Web界面和個性化設(shè)置的Portal系統(tǒng)。該開發(fā)平臺支持J2EE體系結(jié)構(gòu),使用軟件生成復(fù)用和構(gòu)件復(fù)用相結(jié)合的方式,能夠顯著降低J2EE應(yīng)用系統(tǒng)的開發(fā)難度,并能夠有效地提高應(yīng)用系統(tǒng)的開發(fā)效率。
本電子商務(wù)開發(fā)平臺將支持一種新的開發(fā)模式,即:以面向服務(wù)的體系結(jié)構(gòu)為基礎(chǔ),以工作流管理為核心,通過工作流引擎來組織企業(yè)服務(wù)。同時,以Portal為應(yīng)用系統(tǒng)框架,以Portlet為基本的應(yīng)用單元,通過Portal系統(tǒng)為用戶提供可定制的、個性化的、基于Web的圖形用戶界面。通過使用Ajax技術(shù)來提供基于Web的、豐富的GUI交互,克服傳統(tǒng)Web界面無法滿足用戶要求的矛盾。
3 系統(tǒng)總體設(shè)計
本系統(tǒng)作為一個電子商務(wù)開發(fā)平臺,必須具備快速構(gòu)建電子商務(wù)系統(tǒng)的功能,并且具備較好的可擴(kuò)展性,通過該平臺能夠快速開發(fā)各種電子商務(wù)系統(tǒng)。整個平臺由集成開發(fā)環(huán)境IDE、商業(yè)邏輯生成工具、商業(yè)過程管理工具、WEB界面編輯工具、Portal系統(tǒng)及常用Portlet、電子商務(wù)核心構(gòu)件、用戶界面構(gòu)件組成,系統(tǒng)總體結(jié)構(gòu)如圖1所示。
1) 開發(fā)調(diào)試集成環(huán)境IDE。具備開發(fā)調(diào)試集成環(huán)境的一般功能,例如:能夠進(jìn)行斷點(diǎn)設(shè)置,單步執(zhí)行調(diào)試等。集成開放源代碼軟件:Eclipse和JBoss IDE。
2) 商業(yè)邏輯生成工具。能夠自動生成多層體系結(jié)構(gòu)的商業(yè)邏輯代碼框架,在程序員添加、修改商業(yè)邏輯代碼后能夠自動將變化同步到相應(yīng)的地方。不自動生成商業(yè)邏輯實(shí)現(xiàn),實(shí)現(xiàn)代碼由程序員完成!
3) 基于Web的用戶界面編輯工具。采用Ajax技術(shù)開發(fā)基于Web的用戶界面,使得用戶能夠容易地開發(fā)具有豐富交互功能的Web應(yīng)用。提供用戶界面編輯工具,用戶可以不用寫Javascript代碼。
4) 商業(yè)過程管理工具。提供商業(yè)過程定義的可視化工具,用戶可以通過可視化工具定義商業(yè)過程。集成開放源代碼軟件:jBPM。
5) Portal系統(tǒng)和常用Portlet。提供兼容JSR168標(biāo)準(zhǔn)的Portal系統(tǒng),用戶可以集成標(biāo)準(zhǔn)的Portlet。Portal系統(tǒng)具備一般Portal系統(tǒng)的基本功能,例如:用戶可以在Portal系統(tǒng)中自定義其用戶界面,提供具有個性化的用戶界面。提供系統(tǒng)常用的Portlet。集成開放源代碼軟件:Liferay Portal。
6) 電子商務(wù)核心構(gòu)件。提供電子商務(wù)體統(tǒng)中的常用核心構(gòu)件,包括商品目錄、購物車、訂單、采購、網(wǎng)上支付等構(gòu)件。
7) 用戶界面核心構(gòu)件。提供電子商務(wù)系統(tǒng)中的常用用戶界面構(gòu)件。
4 關(guān)鍵技術(shù)及實(shí)現(xiàn)
4.1 商業(yè)邏輯生成工具
作為一個具有快速開發(fā)功能的電子商務(wù)開發(fā)平臺,必須具備快速的商業(yè)邏輯生成功能,我們在該系統(tǒng)中實(shí)現(xiàn)了一個基于Eclipse插件的J2EE快速開發(fā)工具,通過對商業(yè)邏輯元數(shù)據(jù)的定義,可快速生成三層架構(gòu)的JAVA代碼。該工具定位于源代碼級的快速開發(fā)工具,開發(fā)者進(jìn)行數(shù)據(jù)源定義、實(shí)體定義后快速生成源代碼,生成代碼基于J2EE的三層體系架構(gòu),分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,大量采用J2EE開源技術(shù),以Spring作為輕量級的J2EE框架,ZK作為AJAX表示層,Hibernate作數(shù)據(jù)訪問層,以工作流引擎為核心,具備可視化的工作流定義及表單定義工具,采用工作流+表單的業(yè)務(wù)系統(tǒng)模式。創(chuàng)建支持新開發(fā)模式的電子商務(wù)開發(fā)平臺,將基于世界上非常優(yōu)秀的開放源代碼軟件進(jìn)行構(gòu)建,構(gòu)建將基于IBM的開放源代碼開發(fā)平臺Eclipse進(jìn)行。Eclipse提供了以插件方式進(jìn)行擴(kuò)展的優(yōu)秀的擴(kuò)展機(jī)制[2]。
該工具由如下部份組成:
項目管理器:采用wizard方式進(jìn)行項目的新建,對項目名稱、源代碼位置等信息進(jìn)行設(shè)置,生成擴(kuò)展名為ecstudio的xml文件存在項目信息元數(shù)據(jù),自動生成eclipse項目,建立成項目所需jar包及各種xml配置文件,生成項目開發(fā)環(huán)境。通過編輯器(editor)方式進(jìn)行項目元數(shù)據(jù)修改。
數(shù)據(jù)源編輯器:采用editor方式進(jìn)行數(shù)據(jù)源數(shù)據(jù)的新建、刪除、修改,生成如下所示的數(shù)據(jù)源元數(shù)據(jù)文件ecdatasource.xml。數(shù)據(jù)源編輯器如圖2所示。
實(shí)體模型編輯器:采用editor方式完成數(shù)據(jù)實(shí)體元數(shù)據(jù)的定義與管理,數(shù)據(jù)實(shí)體字段元數(shù)據(jù)的定義與管理,生成擴(kuò)展名為emf的實(shí)體模型元數(shù)據(jù)。
代碼生成器:采用wizard界面,根據(jù)數(shù)據(jù)實(shí)體、數(shù)據(jù)源的定義自動生成ZK+Spring+Hibernate架構(gòu)的JAVA源代碼及相關(guān)的XML配置文件,生成默認(rèn)的ZK表示層ZUL文件及相關(guān)代碼,生成基于Spring的業(yè)務(wù)邏輯層代碼,生成基于Hibernate的數(shù)據(jù)訪問層代碼。以客戶信息(Customer)為例,生成代碼包括:
數(shù)據(jù)實(shí)體:Customer.java、Customer..hbm.xml
數(shù)據(jù)訪問層:CustomerDao.java(接口)、CustomerDaoImpl.java
業(yè)務(wù)邏輯層:CustomerService.java(接口)、CustomerServiceImpl.java
表示層:customerManage.zul、customerEditor.zul
代碼生成向?qū)鐖D3所示。
4.2 以商業(yè)過程(工作流)為核心的開發(fā)模式
要體現(xiàn)以商業(yè)過程為核心,以面向服務(wù)的體系結(jié)構(gòu)為基礎(chǔ),以商業(yè)過程來組織商業(yè)服務(wù)的開發(fā)模式,工作流引擎非常重要。我們集成了JBoss的開放源代碼的工作流引擎JBPM,以及JBoss IDE。它們提供了可視化的商業(yè)過程定義工具、工作流引擎以及J2EE應(yīng)用的運(yùn)行時調(diào)試功能。JBoss公司的jBPM在這些方面提供了非常優(yōu)秀的支持,可根據(jù)業(yè)務(wù)需要進(jìn)行業(yè)務(wù)流程、流程表單定制,業(yè)務(wù)規(guī)則設(shè)計,支持串行、并行分支、合并分支、選擇分支、循環(huán)、跳轉(zhuǎn)、回退等[3]。
4.3 為Web應(yīng)用提供豐富的圖形用戶界面交互
本電子商務(wù)開發(fā)平臺基于Portal系統(tǒng)進(jìn)行構(gòu)建,各個應(yīng)用以Portlet的形式提供。Portal系統(tǒng)我們將使用Liferay公司的開放源代碼Portal系統(tǒng)。Liferay Portal是一個非常優(yōu)秀的開放源代碼的Portal系統(tǒng)。
我們使用了Ajax技術(shù)解決Web界面的交互問題,采用了開放源代碼軟件ZK作為AJAX框架。選用ZK的主要原因是開發(fā)人員在使用Ajax技術(shù)時無需花費(fèi)更多的精力在Javascript的編程上。因為太多的Javascript腳本是Web應(yīng)用開發(fā)的又一個攔路虎。ZK已經(jīng)被我們很好地集成到Portal系統(tǒng)中,我們在Portlet中使用Ajax技術(shù)。界面的定義將使用ZK的XML格式,此格式類似于XUL,它可以在運(yùn)行時被ZK系統(tǒng)解析并生成相應(yīng)的Ajax Web頁面。ZK 是一個事件驅(qū)動(event-driven)的,基于組件(component-based)的,用以豐富網(wǎng)絡(luò)程序中用戶界面的框架。采用ZK提供了的ZK portlet 加載器(ZK portlet loader) org.zkoss.zk.ui.http.DHtmlLayoutPortlet來為JSR 168 compliant portal 加載ZUML頁面[4]。
5 結(jié)束語
根據(jù)J2EE開源社區(qū)的實(shí)踐經(jīng)驗,自動生成工具是降低J2EE系統(tǒng)開發(fā)難度的最好工具。同時,對于電子商務(wù)領(lǐng)域而言,基于面向服務(wù)的體系結(jié)構(gòu),以商業(yè)過程為核心的開發(fā)模式,采用生成復(fù)用和構(gòu)件復(fù)用方式有效降低系統(tǒng)的開發(fā)難度,通過實(shí)踐應(yīng)用證明,該平臺能夠低成本、高效率的快速開發(fā)企業(yè)電子商務(wù)應(yīng)用系統(tǒng)。
參考文獻(xiàn):
[1] 李永紅,石慶喜. 可重用的電子商務(wù)基礎(chǔ)平臺的設(shè)計與實(shí)現(xiàn)[].重慶建筑大學(xué)學(xué)報,2006,28(5):132-135.
[2] Eric Clayberg, Dan Rubel. Eclipse: Building Commercial-Quality Plug-ins, Second Edition. Addison Wesley Professional,2006.
[3] JOHN KOENIG.Jboss JBPM white paper. http://jboss.com/pdf/jbpm_whitepaper.pdf,2004.
[4] Potix.zk.http://www.zkoss.org/product/zk.dsp,2008.