摘要:該文對一種基于J2EE開源技術的電子商務開發平臺ECStudio設計與實現進行了介紹,該平臺以面向服務的體系結構為基礎,以工作流管理為核心,通過工作流引擎來組織企業服務,采用Eclipse插件方式快速定義電子商務業務邏輯并自動生成多層體系架構的java代碼,以JBPM作為工作流引擎,集成Liferay并且以Portlet作為電子商務應的展現方式,大大降低J2EE電子商務系統的開發難道,提高了電子商務系統開發效率。
關鍵詞:電子商務;快速開發工具;J2EE;開源
中圖分類號:TP311 文獻標識碼: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 引言
我國電子商務的發展始于20世紀90年代初,近幾年我國電子商務獲得了迅速發展,電子商務市場也保持了穩定增長的勢頭,電子商務已成為企業與國際接軌、提升競爭力的關鍵因素。電子商務系統作為企業級應用,需要使用企業級的軟件技術,J2EE就是企業級軟件技術的典范利用,J2EE平臺可以使大、中型企事業單位更容易、更迅速地構建大型的分布式應用系統,具有開發容易、維護容易和部署方便的特性,為電子商務的實施提供了技術保障。因此,基于J2EE技術開發分布式電子商務應用已經成為主流[1]。但是,目前J2EE系統開發難度較高,難于被廣大的開發人員所使用。因此,一種能夠有效降低J2EE開發難度的快速軟件開發工具將非常需要。然而,完全從頭開始開發一套開發平臺的難度是非常大的,基于國際上優秀的開源技術來構建開發平臺是一個非常有意義的嘗試。
2 總體思路
本項目使用Eclipse軟件插件的思想,將多項國際上優秀的開放源代碼軟件進行集成,形成統一的快速軟件開發平臺。平臺以企業服務(商業邏輯)為基礎,以商業過程(工作流)管理為核心,支持豐富交互的Web界面和個性化設置的Portal系統。該開發平臺支持J2EE體系結構,使用軟件生成復用和構件復用相結合的方式,能夠顯著降低J2EE應用系統的開發難度,并能夠有效地提高應用系統的開發效率。
本電子商務開發平臺將支持一種新的開發模式,即:以面向服務的體系結構為基礎,以工作流管理為核心,通過工作流引擎來組織企業服務。同時,以Portal為應用系統框架,以Portlet為基本的應用單元,通過Portal系統為用戶提供可定制的、個性化的、基于Web的圖形用戶界面。通過使用Ajax技術來提供基于Web的、豐富的GUI交互,克服傳統Web界面無法滿足用戶要求的矛盾。
3 系統總體設計
本系統作為一個電子商務開發平臺,必須具備快速構建電子商務系統的功能,并且具備較好的可擴展性,通過該平臺能夠快速開發各種電子商務系統。整個平臺由集成開發環境IDE、商業邏輯生成工具、商業過程管理工具、WEB界面編輯工具、Portal系統及常用Portlet、電子商務核心構件、用戶界面構件組成,系統總體結構如圖1所示。
1) 開發調試集成環境IDE。具備開發調試集成環境的一般功能,例如:能夠進行斷點設置,單步執行調試等。集成開放源代碼軟件:Eclipse和JBoss IDE。
2) 商業邏輯生成工具。能夠自動生成多層體系結構的商業邏輯代碼框架,在程序員添加、修改商業邏輯代碼后能夠自動將變化同步到相應的地方。不自動生成商業邏輯實現,實現代碼由程序員完成!
3) 基于Web的用戶界面編輯工具。采用Ajax技術開發基于Web的用戶界面,使得用戶能夠容易地開發具有豐富交互功能的Web應用。提供用戶界面編輯工具,用戶可以不用寫Javascript代碼。
4) 商業過程管理工具。提供商業過程定義的可視化工具,用戶可以通過可視化工具定義商業過程。集成開放源代碼軟件:jBPM。
5) Portal系統和常用Portlet。提供兼容JSR168標準的Portal系統,用戶可以集成標準的Portlet。Portal系統具備一般Portal系統的基本功能,例如:用戶可以在Portal系統中自定義其用戶界面,提供具有個性化的用戶界面。提供系統常用的Portlet。集成開放源代碼軟件:Liferay Portal。
6) 電子商務核心構件。提供電子商務體統中的常用核心構件,包括商品目錄、購物車、訂單、采購、網上支付等構件。
7) 用戶界面核心構件。提供電子商務系統中的常用用戶界面構件。
4 關鍵技術及實現
4.1 商業邏輯生成工具
作為一個具有快速開發功能的電子商務開發平臺,必須具備快速的商業邏輯生成功能,我們在該系統中實現了一個基于Eclipse插件的J2EE快速開發工具,通過對商業邏輯元數據的定義,可快速生成三層架構的JAVA代碼。該工具定位于源代碼級的快速開發工具,開發者進行數據源定義、實體定義后快速生成源代碼,生成代碼基于J2EE的三層體系架構,分為表示層、業務邏輯層、數據訪問層,大量采用J2EE開源技術,以Spring作為輕量級的J2EE框架,ZK作為AJAX表示層,Hibernate作數據訪問層,以工作流引擎為核心,具備可視化的工作流定義及表單定義工具,采用工作流+表單的業務系統模式。創建支持新開發模式的電子商務開發平臺,將基于世界上非常優秀的開放源代碼軟件進行構建,構建將基于IBM的開放源代碼開發平臺Eclipse進行。Eclipse提供了以插件方式進行擴展的優秀的擴展機制[2]。
該工具由如下部份組成:
項目管理器:采用wizard方式進行項目的新建,對項目名稱、源代碼位置等信息進行設置,生成擴展名為ecstudio的xml文件存在項目信息元數據,自動生成eclipse項目,建立成項目所需jar包及各種xml配置文件,生成項目開發環境。通過編輯器(editor)方式進行項目元數據修改。
數據源編輯器:采用editor方式進行數據源數據的新建、刪除、修改,生成如下所示的數據源元數據文件ecdatasource.xml。數據源編輯器如圖2所示。
實體模型編輯器:采用editor方式完成數據實體元數據的定義與管理,數據實體字段元數據的定義與管理,生成擴展名為emf的實體模型元數據。
代碼生成器:采用wizard界面,根據數據實體、數據源的定義自動生成ZK+Spring+Hibernate架構的JAVA源代碼及相關的XML配置文件,生成默認的ZK表示層ZUL文件及相關代碼,生成基于Spring的業務邏輯層代碼,生成基于Hibernate的數據訪問層代碼。以客戶信息(Customer)為例,生成代碼包括:
數據實體:Customer.java、Customer..hbm.xml
數據訪問層:CustomerDao.java(接口)、CustomerDaoImpl.java
業務邏輯層:CustomerService.java(接口)、CustomerServiceImpl.java
表示層:customerManage.zul、customerEditor.zul
代碼生成向導如圖3所示。
4.2 以商業過程(工作流)為核心的開發模式
要體現以商業過程為核心,以面向服務的體系結構為基礎,以商業過程來組織商業服務的開發模式,工作流引擎非常重要。我們集成了JBoss的開放源代碼的工作流引擎JBPM,以及JBoss IDE。它們提供了可視化的商業過程定義工具、工作流引擎以及J2EE應用的運行時調試功能。JBoss公司的jBPM在這些方面提供了非常優秀的支持,可根據業務需要進行業務流程、流程表單定制,業務規則設計,支持串行、并行分支、合并分支、選擇分支、循環、跳轉、回退等[3]。
4.3 為Web應用提供豐富的圖形用戶界面交互
本電子商務開發平臺基于Portal系統進行構建,各個應用以Portlet的形式提供。Portal系統我們將使用Liferay公司的開放源代碼Portal系統。Liferay Portal是一個非常優秀的開放源代碼的Portal系統。
我們使用了Ajax技術解決Web界面的交互問題,采用了開放源代碼軟件ZK作為AJAX框架。選用ZK的主要原因是開發人員在使用Ajax技術時無需花費更多的精力在Javascript的編程上。因為太多的Javascript腳本是Web應用開發的又一個攔路虎。ZK已經被我們很好地集成到Portal系統中,我們在Portlet中使用Ajax技術。界面的定義將使用ZK的XML格式,此格式類似于XUL,它可以在運行時被ZK系統解析并生成相應的Ajax Web頁面。ZK 是一個事件驅動(event-driven)的,基于組件(component-based)的,用以豐富網絡程序中用戶界面的框架。采用ZK提供了的ZK portlet 加載器(ZK portlet loader) org.zkoss.zk.ui.http.DHtmlLayoutPortlet來為JSR 168 compliant portal 加載ZUML頁面[4]。
5 結束語
根據J2EE開源社區的實踐經驗,自動生成工具是降低J2EE系統開發難度的最好工具。同時,對于電子商務領域而言,基于面向服務的體系結構,以商業過程為核心的開發模式,采用生成復用和構件復用方式有效降低系統的開發難度,通過實踐應用證明,該平臺能夠低成本、高效率的快速開發企業電子商務應用系統。
參考文獻:
[1] 李永紅,石慶喜. 可重用的電子商務基礎平臺的設計與實現[].重慶建筑大學學報,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.