[摘要] 在高度信息化的社會(huì)環(huán)境下,擁有一款高效、易于維護(hù)和管理的國(guó)際貿(mào)易軟件平臺(tái)對(duì)于從事國(guó)際貿(mào)易的企業(yè)來(lái)說(shuō)至關(guān)重要,關(guān)系到企業(yè)的生存與發(fā)展。本文正是在這種背景下詳細(xì)介紹了基于J2EE架構(gòu)和MVC模式的國(guó)際貿(mào)易業(yè)務(wù)平臺(tái)的開(kāi)發(fā)過(guò)程、具體功能及其實(shí)現(xiàn),并闡述了利用J2EE技術(shù)構(gòu)建外貿(mào)業(yè)務(wù)平臺(tái)的優(yōu)越性。
[關(guān)鍵詞] J2EE 國(guó)際貿(mào)易 設(shè)計(jì)模式
一、引言
自2001年12月加入WTO,中國(guó)對(duì)外貿(mào)易大幅增加,面臨著更多的機(jī)遇和挑戰(zhàn),企業(yè)需要尋求創(chuàng)新、增強(qiáng)競(jìng)爭(zhēng)能力。在此情況下外貿(mào)企業(yè)必須從傳統(tǒng)的思維方式、經(jīng)營(yíng)觀念、管理手段向現(xiàn)代化、信息化的方式轉(zhuǎn)變,這就要求企業(yè)須依靠一種能及時(shí)準(zhǔn)確的得到市場(chǎng)需求、生產(chǎn)銷(xiāo)售、資金運(yùn)轉(zhuǎn)等情況的平臺(tái),以達(dá)到增強(qiáng)企業(yè)自身的競(jìng)爭(zhēng)力的目的。
二、J2EE體系結(jié)構(gòu)與MVC設(shè)計(jì)模式
1.J2EE體系結(jié)構(gòu)極其優(yōu)越性
JAVA語(yǔ)言是面向?qū)ο蟮募夹g(shù),有很好的組件模式,并且是一種多平臺(tái)技術(shù)。J2EE(Java 2 Enterprise Edition)是建立在Java 2平臺(tái)上的企業(yè)級(jí)應(yīng)用的解決方案。J2EE技術(shù)的基礎(chǔ)便是Java 2平臺(tái),不但有J2SE平臺(tái)的所有功能,同時(shí)還提供了對(duì)EJB,SERVLET,JSP等技術(shù)的全面支持,其最終目標(biāo)是成為一個(gè)支持企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的體系結(jié)構(gòu),簡(jiǎn)化企業(yè)解決方案的開(kāi)發(fā),部署和管理等復(fù)雜問(wèn)題。事實(shí)上,J2EE已經(jīng)成為企業(yè)級(jí)開(kāi)發(fā)的工業(yè)標(biāo)準(zhǔn)和首選平臺(tái)。基于J2EE平臺(tái)開(kāi)發(fā)的外貿(mào)管理軟件能夠很好的體現(xiàn)出外貿(mào)企業(yè)中的各種復(fù)雜的關(guān)系,加快了企業(yè)中各種信息的流通和業(yè)務(wù)流程,提高了企業(yè)的管理效率。J2EE的特點(diǎn)如下:
(1)基于容器的組件管理
J2EE基于組件的開(kāi)發(fā)模型的中樞容器概念,容器提供了組件服務(wù)的運(yùn)行時(shí)環(huán)境,組件可以期望它們的服務(wù)在任何J2EE平臺(tái)上都有效。所有的EJB容器提供對(duì)EJB組件的事務(wù)和生命周期管理的自動(dòng)支持,并支持對(duì)EJB的查找和其他的服務(wù)。容器還提供對(duì)企業(yè)信息系統(tǒng)的標(biāo)準(zhǔn)化訪問(wèn),例如,通過(guò)JDBC API提供對(duì)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的訪問(wèn)。
(2)多層模型
J2EE平臺(tái)提供了一個(gè)多層應(yīng)用程序模型,這意味著應(yīng)用程序的不同部分可以運(yùn)行在不同的設(shè)備上。
客戶機(jī)層:支持各種各樣的客戶機(jī)類(lèi)型,可以在公司的防火墻之內(nèi)或之外。
中間層:在web層中通過(guò)web容器支持客戶機(jī)服務(wù),在EJB層中通過(guò)Enterprise JavaBeans容器向商業(yè)組件提供各種服務(wù)。
企業(yè)信息系統(tǒng)層:利用標(biāo)準(zhǔn)的API支持對(duì)企業(yè)信息系統(tǒng)的訪問(wèn)。
(3)對(duì)客戶機(jī)組件的支持
客戶機(jī)可以通過(guò)Web瀏覽器提供,瀏覽器可能是使用無(wú)格式的HTML頁(yè),或者是使用JSP(JavaServer Page)技術(shù)生成的動(dòng)態(tài)的HTML頁(yè),或者是Java Applet。非Java客戶機(jī)(例如,Visual Basic程序)可以向用戶呈現(xiàn)J2EE的服務(wù)。在中間層中,Servlet呈現(xiàn)給第一層客戶機(jī)服務(wù)使用的是標(biāo)準(zhǔn)的HTTP協(xié)議,因此,運(yùn)行在任何操作系統(tǒng)上的幾乎所有的程序都可以很容易地訪問(wèn)它。
(4)對(duì)商業(yè)邏輯組件的支持
在J2EE平臺(tái)中,EJB組件實(shí)現(xiàn)中間層的商業(yè)邏輯,EJB讓組件或應(yīng)用程序的開(kāi)發(fā)者將精力集中在商業(yè)邏輯的開(kāi)發(fā)上,將復(fù)雜的服務(wù)(例如:安全、事務(wù))交由EJB服務(wù)器處理。
(5)對(duì)J2EE標(biāo)準(zhǔn)的支持
J2EE標(biāo)準(zhǔn)定義了一系列相關(guān)規(guī)范,其中主要的有J2EE平臺(tái)規(guī)范,Enterprise JavaBeans規(guī)范,Java Servlet規(guī)范和Java Server Page規(guī)范,另外,還包括J2EE兼容性測(cè)試套件(J2EE Compatibility Test Suite, CTS)和J2EE SDK.
2.MVC(Model-View-Controller)設(shè)計(jì)模式
模型-視圖-控制器(Model-View-Controller, MVC)模式就是為那些需要為同樣的數(shù)據(jù)提供多個(gè)視圖的應(yīng)用程序而設(shè)計(jì)的,現(xiàn)在已經(jīng)被廣泛的使用。它將數(shù)據(jù)的訪問(wèn)和數(shù)據(jù)的表現(xiàn)進(jìn)行了分離,從而開(kāi)發(fā)出一種結(jié)構(gòu)清晰、便于擴(kuò)展和維護(hù)的平臺(tái)。模型、視圖、控制器之間的關(guān)系可以用圖1來(lái)描述:
圖1
(1)模型
提供商業(yè)邏輯、負(fù)責(zé)訪問(wèn)和表達(dá)數(shù)據(jù),執(zhí)行商務(wù)邏輯和操作,維護(hù)應(yīng)用程序的狀態(tài)即:包含了應(yīng)用問(wèn)題的核心數(shù)據(jù)、邏輯關(guān)系和計(jì)算功能,它封裝了所需的數(shù)據(jù),提供了完成問(wèn)題處理的操作過(guò)程??刂破饕罁?jù)I/O的需要調(diào)用這些操作過(guò)程。模型還為視圖獲取顯示數(shù)據(jù)而提供了訪問(wèn)其數(shù)據(jù)的操作。
(2)視圖
負(fù)責(zé)繪制和顯示模型的內(nèi)容,即為用戶的界面部分。不同視圖通過(guò)不同的顯示,來(lái)表達(dá)模型的數(shù)據(jù)和狀態(tài)信息。每個(gè)視圖有一個(gè)更新操作,它可被變化-傳播機(jī)制所激活。當(dāng)調(diào)用更新操作時(shí),視圖獲得來(lái)自模型的數(shù)據(jù)值,并用它們來(lái)更新顯示。
(3)控制器
負(fù)責(zé)定義應(yīng)用程序的行為,處理用戶相應(yīng)的事件。控制器如何獲得事件依賴于界面的運(yùn)行平臺(tái)。控制器通過(guò)事件處理過(guò)程對(duì)輸入事件進(jìn)行處理,并為每個(gè)輸入事件提供了相應(yīng)的操作服務(wù),把事件轉(zhuǎn)化成對(duì)模型或相關(guān)視圖的激發(fā)操作。
三、系統(tǒng)總體設(shè)計(jì)方案:
1.總體實(shí)現(xiàn)
總體設(shè)計(jì)如圖2,通過(guò)網(wǎng)絡(luò)將公司各職能部門(mén)、客戶、供應(yīng)商等組成一個(gè)整體,以實(shí)現(xiàn)業(yè)務(wù)、數(shù)據(jù)的網(wǎng)絡(luò)化、信息化。
圖2
2.系統(tǒng)功能介紹
根據(jù)業(yè)務(wù)流程和外貿(mào)公司的業(yè)務(wù)特點(diǎn)將系統(tǒng)分成以下一些功能模塊,來(lái)滿足外貿(mào)業(yè)務(wù)管理的需要。主要有:
(1)公司基礎(chǔ)信息管理模塊:各職能部門(mén)設(shè)置、員工基本信息、客戶信息、倉(cāng)庫(kù)信息、產(chǎn)品類(lèi)別及產(chǎn)品信息、供應(yīng)商信息、裝運(yùn)港、目地港、支付方式、價(jià)格條件、貿(mào)易方式、貿(mào)易國(guó)別、運(yùn)輸方式等;
(2)公司樣品管理模塊:樣品登記、寄樣管理等;
(3)公司單證管理模塊:發(fā)票、合同(銷(xiāo)貨確認(rèn)書(shū))、裝箱單(尺碼單或重量單)、提單、保險(xiǎn)單、產(chǎn)地證模板設(shè)置、單證自動(dòng)生成及打印等;
(4)統(tǒng)計(jì)分析模塊:應(yīng)收款統(tǒng)計(jì)、銷(xiāo)售額統(tǒng)計(jì)、客戶銷(xiāo)售匯總統(tǒng)計(jì)、業(yè)務(wù)員銷(xiāo)售匯總統(tǒng)計(jì)、客戶回款統(tǒng)計(jì)、合同履行情況跟蹤、訂單明細(xì)查詢、客戶訂貨匯總統(tǒng)計(jì)、銷(xiāo)售明細(xì)查詢、等。
(5)公司報(bào)價(jià)管理模塊:客戶詢價(jià)、出口報(bào)價(jià)核算、三種術(shù)語(yǔ)報(bào)價(jià)換算、出口還價(jià)核算、報(bào)價(jià)確認(rèn)、對(duì)客戶報(bào)價(jià)、工廠報(bào)價(jià)查詢等;
(6)公司收匯管理模塊:收匯登記、收匯統(tǒng)計(jì)、換匯成本核算;
(7)公司應(yīng)收應(yīng)付款管理模塊:收款登記、付款對(duì)帳處理、付款確認(rèn)等;
(8)公司海運(yùn)費(fèi)結(jié)算管理模塊:海運(yùn)對(duì)帳處理、海運(yùn)付款確認(rèn)等;
3.業(yè)務(wù)流程(以出口為例 圖 3)
四、系統(tǒng)中重要功能組件的實(shí)現(xiàn)方法:
1.Model的設(shè)計(jì)
本系統(tǒng)的Model設(shè)計(jì)采用J2EE中的EJB來(lái)實(shí)現(xiàn),它完成了與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互、復(fù)雜的商業(yè)邏輯操作和管理數(shù)據(jù)等功能,是系統(tǒng)的核心組件。部分實(shí)現(xiàn)如下:
以遠(yuǎn)程接口為例:當(dāng)客戶端調(diào)用主接口的Create()方法時(shí),客戶要得到一個(gè)BEAN的引用,因此EJB容器要求你為BEAN的所有方法提供一個(gè)遠(yuǎn)程接口。
import javax.ejb.EJBObject;
………………
public interface toDocument extends EJBObject{
public void TOCUR(double rmb)thows RemoteException;
2.View設(shè)計(jì)
本系統(tǒng)的視圖設(shè)計(jì)主要以JSP技術(shù)為主,來(lái)實(shí)現(xiàn)人機(jī)交互。部分實(shí)現(xiàn)如下: Creatdocument.jsp//單證頁(yè)面
Controller是本系統(tǒng)中重要和重用性較高的部分之一,所有的視圖在系統(tǒng)中共享一組Controller。這些Controller分布在WRB和EJB兩層中,主要包括MainServlet 、ModelManager 、Dservlet等,它們接受各種各樣的業(yè)務(wù)請(qǐng)求,并按照相應(yīng)的請(qǐng)求和權(quán)限等信息轉(zhuǎn)到相應(yīng)的商業(yè)邏輯處理中去。
本系統(tǒng)控制器的實(shí)現(xiàn)。(部分代碼)
五、結(jié)束語(yǔ)
基于J2EE架構(gòu)的國(guó)際貿(mào)易業(yè)務(wù)系統(tǒng)能夠滿足國(guó)際貿(mào)易公司的各種業(yè)務(wù)上的需求,從單據(jù)、數(shù)據(jù)表格的自動(dòng)生成到員工、資金、客戶信息管理,再到網(wǎng)上業(yè)務(wù)洽談、數(shù)據(jù)共享、遠(yuǎn)程登陸,系統(tǒng)都作了準(zhǔn)確、人性的設(shè)計(jì),使各種業(yè)務(wù)、管理變得簡(jiǎn)便快捷。與此同時(shí) ,這種設(shè)計(jì)使得軟件的重用、升級(jí)和系統(tǒng)功能的擴(kuò)充變得更輕松,縮短了軟件的開(kāi)發(fā)周期,提高了開(kāi)發(fā)質(zhì)量。
本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。