同劍飛
(西安外事學(xué)院現(xiàn)代教育技術(shù)中心 710077)
所謂 “ 第三方物流”(Third Party Logistics,簡(jiǎn)稱3PL或TPL)是由“第一方”發(fā)貨人和第二方”收貨人以外的物流企業(yè)提供物流服務(wù)的業(yè)務(wù)模式,是在物流渠道中由專業(yè)物流企業(yè)以合同的形式在一定期限內(nèi)提供用戶所需的全部或部分物流服務(wù)[1]。
中國(guó)的改革開(kāi)放已經(jīng)行走了二十多年,步伐也逐漸在加快,中國(guó)的物流業(yè)總體規(guī)模也在其積極影響下呈現(xiàn)快速增長(zhǎng)的新態(tài)勢(shì)?,F(xiàn)代的物流業(yè)可以說(shuō)是一個(gè)綜合體,系統(tǒng)龐大,涵蓋了運(yùn)輸管理、包裝管理、倉(cāng)庫(kù)管理、裝運(yùn)管理、配送管理、信息處理和流通加工管理等等。但是,在我國(guó)目前擁有高效、完整的物流信息管理系統(tǒng)的在這一領(lǐng)域只有一小部分物流企業(yè)。由此,可以預(yù)見(jiàn)物流信息管理系統(tǒng)在我國(guó)的物流企業(yè)中具有極大的拓展空間,一些中小物流企業(yè)仍處于人工操作模式階段,未來(lái)此類現(xiàn)象、問(wèn)題都可以一一迎刃而解。
J2EE采用了四層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。
1、客戶層(Client Tier)。同使用客戶直接進(jìn)行交流,完成二者之間的交互,接收使用客戶的輸入數(shù)據(jù),同時(shí)將系統(tǒng)的業(yè)務(wù)數(shù)據(jù)快速顯示給直接用戶,并驗(yàn)證此類數(shù)據(jù)格式的合法性,最終使客戶層駐留在客戶機(jī)器上
2、Web表示層(Web Presentation Tier)。Web組件JSP(Java Server Pages)和Servlet(服務(wù)器端的Java應(yīng)用程序)在Web的表示層上運(yùn)行,而Web則在服務(wù)器上運(yùn)行,也就是說(shuō)Web層即容器。此外,Web組件為了發(fā)送它所顯示的所需要的業(yè)務(wù)數(shù)據(jù)給客戶,需要先讀取業(yè)務(wù)層的業(yè)務(wù)數(shù)據(jù)。
3、業(yè)務(wù)層(Business Tiser)。運(yùn)行 EJB組件,如會(huì)話 EJB組件、消息驅(qū)動(dòng)EJB組件及JPA組件,不僅要對(duì)實(shí)際應(yīng)用的業(yè)務(wù)邏輯進(jìn)行模型化,而且要完成數(shù)據(jù)庫(kù)的業(yè)務(wù)處理和持久化,這些才是企業(yè)級(jí)應(yīng)用的核心所在。
4、信息數(shù)據(jù)庫(kù)層(Information Data Tier)。一般指的是系統(tǒng)數(shù)據(jù)庫(kù),會(huì)對(duì)J2EE應(yīng)用系統(tǒng)中的所有數(shù)據(jù)進(jìn)行保存,如郵件服務(wù)系統(tǒng)、目錄服務(wù)系統(tǒng)等各種各樣的外部資源數(shù)據(jù)。
該物流管理系統(tǒng)結(jié)合其實(shí)施目標(biāo),在它的體系結(jié)構(gòu)中將J2EE技術(shù)的分層體系結(jié)構(gòu)引入其中,致使該系統(tǒng)的每一層具有隱蔽性,享有的資源也是特有的,即使與外界進(jìn)行交互流轉(zhuǎn)也僅限于它的下面所在層。依賴這兩個(gè)優(yōu)勢(shì),應(yīng)用層的靈活修改就可順利進(jìn)行,也不會(huì)級(jí)聯(lián)到其它層。因此,該系統(tǒng)采用四層體系結(jié)構(gòu),如圖2-1所示:
圖2-1 系統(tǒng)架構(gòu)圖
圖2-2 視圖層流程
視圖層:Web瀏覽器控制層表現(xiàn)層數(shù)據(jù)訪問(wèn)對(duì)象,Hibernate持久層SQL server數(shù)據(jù)層業(yè)務(wù)邏輯層實(shí)際業(yè)務(wù)實(shí)際業(yè)務(wù)業(yè)務(wù)對(duì)象(BO)業(yè)務(wù)層
2.2.1 表現(xiàn)層設(shè)計(jì):
A、視圖層的設(shè)計(jì)
該層與客戶直接“見(jiàn)面”,設(shè)計(jì)好壞有直接影響,該系統(tǒng)的實(shí)現(xiàn)采用的是HTML和JSP語(yǔ)言。具體的工作流程,如圖2-2所示:
注意:為了提高執(zhí)行速度,首次調(diào)用編輯操作時(shí)需時(shí)間加載,以后只需調(diào)用緩存中的Servlet。頁(yè)面分類后,頁(yè)表表單、相關(guān)表單域定義數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)可在數(shù)據(jù)庫(kù)中實(shí)現(xiàn),最后規(guī)范定義自動(dòng)生成的相關(guān)頁(yè)面活動(dòng)。如圖2-3所示:
圖2-3 Web頁(yè)面表單定義
B、控制層的設(shè)計(jì)
控制層有著“把關(guān)”作用,為實(shí)現(xiàn)對(duì)客戶的Web請(qǐng)求的預(yù)處理操作,采用了Servlet。在后期處理操作用戶的響應(yīng)、請(qǐng)求時(shí),Servlet會(huì)判斷用戶訪問(wèn)的是否合法,進(jìn)而決定是否頁(yè)面轉(zhuǎn)向等。
每個(gè)Servlet都有一個(gè)init()方法,且只會(huì)被調(diào)用一次在servlet的整個(gè)作用過(guò)程中。Servlet的生命周期,如圖2-4所示:
圖2-4 Servlet的生命周期
2.2.2 業(yè)務(wù)層設(shè)計(jì)
業(yè)務(wù)層設(shè)計(jì)了業(yè)務(wù)接口類、業(yè)務(wù)工廠、業(yè)務(wù)實(shí)現(xiàn)類,并要求每個(gè)業(yè)務(wù)對(duì)象定義業(yè)務(wù)接口,即定義業(yè)務(wù)對(duì)象所有的操作方法;同時(shí)接口會(huì)隨著業(yè)務(wù)的更新增加新方法或擴(kuò)展為新接口。業(yè)務(wù)層結(jié)構(gòu)類圖,如圖2-5所示:
圖2-5 業(yè)務(wù)層的結(jié)構(gòu)類圖
2.2.3 持久層設(shè)計(jì)
該系統(tǒng)為實(shí)現(xiàn)持久層(位于業(yè)務(wù)層和數(shù)據(jù)庫(kù)層之間一個(gè)邏輯層次),使用了目前主流的開(kāi)源O/R(Object/ Relational)映射框架Hibernate。設(shè)計(jì)持久層可封裝對(duì)象的持久化行為,如:對(duì)象在永久性存儲(chǔ)介質(zhì)中的寫(xiě)入、讀取、刪除操作。持久層框架,如圖2-6所示:
2.2.4 系統(tǒng)數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)
數(shù)據(jù)庫(kù)相類分為兩種:實(shí)體類(Entity Class)和會(huì)話類(Session Class)。
實(shí)體類指的是將表中每一個(gè)記錄對(duì)應(yīng)該類的一個(gè)相關(guān)實(shí)例,用于對(duì)表記錄的封裝。而表中所有記錄的操作要一一對(duì)應(yīng)會(huì)話類相。
此類設(shè)計(jì)模式不僅實(shí)現(xiàn)程序模塊化,而且利于開(kāi)發(fā)、維護(hù),但在其實(shí)現(xiàn)過(guò)程中需要“因地制宜”,不同的應(yīng)用程序需不同技術(shù)來(lái)實(shí)現(xiàn),而EJB在該方面更容易實(shí)現(xiàn)。
系統(tǒng)登錄界面中,該系統(tǒng)為了方便所有用戶實(shí)現(xiàn)其業(yè)務(wù)職能,進(jìn)入主界面和人機(jī)交互便捷、順暢,特別的為系統(tǒng)管理、維護(hù)人員以及一般職員等不同角色人性化的設(shè)置了相應(yīng)的訪問(wèn)入口。
就開(kāi)發(fā)者而言,只需將代碼的重復(fù)使用方法掌握即可。所需Web視圖的數(shù)量會(huì)隨著系統(tǒng)功能的增多而增加,可將眾多頁(yè)面分類,即使有不同的處理對(duì)象,但有基本相似的處理方式。
[1] [美]Craig A.Berry(著)邱仲潘(譯).實(shí)用J2EE設(shè)計(jì)模式編程指南.電子工業(yè)出版社2004
[2] 劉安,劉元元.我國(guó)第三方物流存在的問(wèn)題及有效對(duì)策.天津,現(xiàn)代財(cái)經(jīng),2006.5