摘要:JavaEE架構(gòu)具有的多層次、分布式、基于組件等企業(yè)級(jí)應(yīng)用開(kāi)發(fā)特性使其在旅游電子商務(wù)平臺(tái)開(kāi)發(fā)中有不可替代的優(yōu)勢(shì)。對(duì)旅游電子商務(wù)平臺(tái)進(jìn)行了系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)和功能模塊設(shè)計(jì),探討了利用JavaEE技術(shù)進(jìn)行旅游電子商務(wù)平臺(tái)設(shè)計(jì)開(kāi)發(fā)的方法。
關(guān)鍵詞:JavaEE;旅游電子商務(wù)平臺(tái);系統(tǒng)設(shè)計(jì)
中圖分類(lèi)號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)04-0712-03
Designing and Developing of Tourism Electronic Commerce Platform Based on JavaEE Structure
ZOU Li-yan, YANG Fu-qun, GAO Chun-bo, XU Li
( College of Information Management and Engineering, Jishou University, Zhang Jiajie 427000, China)
Abstract: The enterprise application characteristics of multi-directed, distributed and component-base make JavaEE structure become the very tool for developing tourism electronic commerce platform. This paper analyzes the system logic structure design and function components design of tourism electronic commerce platform, demonstrates the way to use JavaEE technology to design and develop tourism electronic commerce platform.
Key words: JavaEE; tourism electronic commerce platform; system designing
1 概述
隨著信息技術(shù)的迅速普及,旅游業(yè)向著網(wǎng)絡(luò)化、多元化方向發(fā)展,傳統(tǒng)旅游業(yè)的單位性、地域性和國(guó)界性正在被打破。電子商務(wù)作為一種新型的商務(wù)手段和信息技術(shù),彌補(bǔ)了傳統(tǒng)旅游模式中旅游目的地與游客之間存在的信息不對(duì)稱(chēng),成為眾多景點(diǎn)、旅游企業(yè)和旅游管理部門(mén)競(jìng)相采用的方式。因此,旅游電子商務(wù)平臺(tái)的研發(fā)成為旅游行業(yè)和軟件行業(yè)的熱門(mén)課題。
旅游電子商務(wù)平臺(tái)是一個(gè)以互聯(lián)網(wǎng)為基礎(chǔ),結(jié)合網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)和多媒體技術(shù)的公共電子商務(wù)平臺(tái)和信息服務(wù)平臺(tái)。它不但能為各類(lèi)旅游電子商務(wù)系統(tǒng)提供整體的運(yùn)行環(huán)境和完善的功能服務(wù),而且為這些系統(tǒng)之間的數(shù)據(jù)交換、功能擴(kuò)展和商務(wù)運(yùn)營(yíng)等活動(dòng)提供全面的系統(tǒng)級(jí)支持。
為了構(gòu)建一個(gè)集景點(diǎn)介紹、票務(wù)預(yù)訂、特產(chǎn)購(gòu)買(mǎi)、資訊交流為一體的旅游電子商務(wù)平臺(tái),在遵循旅游電子商務(wù)一般流程及內(nèi)容的基礎(chǔ)上,筆者針對(duì)旅游電子商務(wù)中數(shù)據(jù)分布式處理、可移植性和信息實(shí)時(shí)發(fā)布的特點(diǎn),擬采用基于JavaEE架構(gòu)的多層軟件開(kāi)發(fā)方法,為顧客提供一個(gè)透明齊全的開(kāi)放式平臺(tái)。
2 平臺(tái)技術(shù)特點(diǎn)及優(yōu)勢(shì)
2.1 JavaEE架構(gòu)
JavaEE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級(jí)應(yīng)用模型(enterprise application model)。在這樣的一個(gè)系統(tǒng)中,可按照功能分為不同的組件,這些組件又可在不同計(jì)算機(jī)上,并且處于相應(yīng)的層次(tier)中。JavaEE采用的是多層的分布式架構(gòu)模型,模型由組件組成,應(yīng)用程序的邏輯根據(jù)功能劃分被封裝在各組件中。JavaEE中的大量組件部署在不同的機(jī)器中,這也是分布式架構(gòu)的體現(xiàn),而且通常這些機(jī)器一般都具有不同的物理地址。
2.2 優(yōu)勢(shì)
JavaEE平臺(tái)對(duì)分布式企業(yè)應(yīng)用開(kāi)發(fā)而言,在保存企業(yè)現(xiàn)有IT資產(chǎn)減少重復(fù)性投入的同時(shí)也滿(mǎn)足了未來(lái)商業(yè)應(yīng)用的需要,尤其是針對(duì)數(shù)據(jù)量大、異構(gòu)的旅游電子商務(wù)系統(tǒng)來(lái)說(shuō),具有一定的優(yōu)點(diǎn):
1)JavaEE建立了企業(yè)應(yīng)用開(kāi)發(fā)所需要的一些技術(shù)標(biāo)準(zhǔn),如企業(yè)業(yè)務(wù)組件(EJB)等;
2)JavaEE自身具備完善的目錄服務(wù)支持、高度的安全機(jī)制、高效的性能展現(xiàn)等眾多技術(shù)優(yōu)勢(shì)技術(shù),并且基于開(kāi)放的標(biāo)準(zhǔn),可以促進(jìn)技術(shù)的更好的發(fā)展;
3)JavaEE為企業(yè)級(jí)系統(tǒng)提供了完美的機(jī)制和統(tǒng)一開(kāi)發(fā)平臺(tái),不僅簡(jiǎn)化開(kāi)發(fā)過(guò)程,也使得Web應(yīng)用程序資源利用率更高。讓系統(tǒng)具有高可用性、高可擴(kuò)充性、易維護(hù)性;
4)JavaEE縮短了產(chǎn)品研發(fā)的時(shí)間,絕大多數(shù)的供應(yīng)商的產(chǎn)品是遵循JavaEE標(biāo)準(zhǔn)而開(kāi)發(fā)的,因此開(kāi)發(fā)者可以擺脫中間件的困擾而專(zhuān)注于各自業(yè)務(wù)邏輯的應(yīng)用開(kāi)發(fā);
5)JavaEE使用負(fù)載平衡策略,是系統(tǒng)軟硬件資源利用率及性能表現(xiàn)最大化,能夠消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署,實(shí)現(xiàn)可高度伸縮的系統(tǒng)。
3 系統(tǒng)總體設(shè)計(jì)
3.1 系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)采用JavaEE的多層的分布式架構(gòu)模型,該架構(gòu)分為3層:客戶(hù)端層、中間服務(wù)層(包括Web應(yīng)用層、EJB層)、數(shù)據(jù)庫(kù)層在各層中采用相應(yīng)的技術(shù)進(jìn)行系統(tǒng)設(shè)計(jì)和開(kāi)發(fā),其系統(tǒng)邏輯結(jié)構(gòu)如圖1所示。
由圖1可見(jiàn)該平臺(tái)中各部分與模式緊密聯(lián)系,客戶(hù)端(即客戶(hù)端瀏覽器)通過(guò)HTML向最終用戶(hù)顯示被請(qǐng)求信息,web層(struts2為框架)使用JSP(Java ServerPages),Serverlet完成動(dòng)態(tài)內(nèi)容顯示和流程邏輯控制,主要用來(lái)處理來(lái)自客戶(hù)端的請(qǐng)求和調(diào)用相應(yīng)的業(yè)務(wù)邏輯,并把結(jié)果以動(dòng)態(tài)網(wǎng)頁(yè)的形式返回到客戶(hù)端;EJB容器(Hibernate為架構(gòu))完成所有的數(shù)據(jù)邏輯操作,通過(guò)服務(wù)器端程序(Servlet)將用戶(hù)的合法需求交給后臺(tái)的數(shù)據(jù)庫(kù)(Spring為框架),處理完成后返回給客戶(hù)端,由客戶(hù)端進(jìn)行顯示。系統(tǒng)是一個(gè)基于MVC模式和JavaEE多層架構(gòu)的一個(gè)框架體系,該體系以Struts2,Spring,Hibemate三大框架為主,Ajax為輔,依托JavaEE分層體系。具體來(lái)說(shuō),struts2負(fù)責(zé)web應(yīng)用強(qiáng)大的表現(xiàn)處理,spring負(fù)責(zé)裝配解耦復(fù)雜的業(yè)務(wù)邏輯處理對(duì)象,Hibemate負(fù)責(zé)處理數(shù)據(jù)對(duì)象的0/R映射及持久化,使用Ajax技術(shù)可以更加方便有效提高開(kāi)發(fā)效率以及客戶(hù)滿(mǎn)意度。采用這個(gè)集成架構(gòu)開(kāi)發(fā)出來(lái)的web應(yīng)用,不僅在JavaEE劃分的層次之間擁有更低的耦合性,而且整個(gè)應(yīng)用的靈活性和可維護(hù)性也得到了更大的提高,同時(shí)Ajax技術(shù)不僅提高了整個(gè)應(yīng)用的開(kāi)發(fā)效率而且提高了整個(gè)系統(tǒng)的人性化滿(mǎn)意度。
3.2 系統(tǒng)功能模塊
一般來(lái)說(shuō),旅游電子商務(wù)平臺(tái)是為國(guó)內(nèi)外游客提供從旅游導(dǎo)航到網(wǎng)上支付全程服務(wù)的平臺(tái),包括景點(diǎn)管理、酒店預(yù)訂、旅行社預(yù)訂、票務(wù)預(yù)訂、旅游線(xiàn)路、購(gòu)物管理、會(huì)員社區(qū)、會(huì)員管理和旅游資訊等,其平臺(tái)的功能結(jié)構(gòu)如圖2所示。
1)景點(diǎn)管理。對(duì)景點(diǎn)進(jìn)行全面介紹,包括景點(diǎn)地理位置、景色、門(mén)票等基本信息以及景點(diǎn)特色文化的介紹;引入頂尖的在線(xiàn)“虛擬旅游”技術(shù),實(shí)現(xiàn)景點(diǎn)的網(wǎng)上虛擬實(shí)景,為游客提供在線(xiàn)的完美“試玩”體驗(yàn),在此基礎(chǔ)上為自駕游、自助游等游客提供一站式、全面性的出游解決方案。
2)酒店預(yù)訂。通過(guò)酒店預(yù)訂服務(wù)中心,為會(huì)員提供即時(shí)預(yù)訂服務(wù)。平臺(tái)將與其合作酒店的信息全部展示給游客,經(jīng)過(guò)與合作酒店協(xié)商為會(huì)員提供相應(yīng)優(yōu)惠房?jī)r(jià),甚至提供酒店保留房為會(huì)員出行提供更多保障。
3)票務(wù)預(yù)定。通過(guò)全國(guó)聯(lián)網(wǎng)的機(jī)票預(yù)訂、配送和機(jī)場(chǎng)的現(xiàn)場(chǎng)服務(wù)系統(tǒng)及火車(chē)預(yù)訂系統(tǒng),為會(huì)員提供國(guó)際和國(guó)內(nèi)機(jī)票的查詢(xún)預(yù)訂服務(wù),為會(huì)員旅行提供更加便捷的服務(wù)。
4)旅行社預(yù)訂。通過(guò)旅行社預(yù)訂服務(wù)中心,為會(huì)員提供即時(shí)預(yù)訂服務(wù)。平臺(tái)將與其合作旅行社的信息全部展示給游客,包括旅行社導(dǎo)游的信息,提供周到體貼的出行服務(wù)。
5)旅游線(xiàn)路。根據(jù)現(xiàn)代年輕人自由享受與深度體驗(yàn)的度假休閑方式,為會(huì)員提供自由行、結(jié)伴游、半自助游、自駕游等多種度假方式產(chǎn)品。提供豐富多樣的酒店、航班、輪船、火車(chē)、專(zhuān)線(xiàn)巴士等搭配完善的配套服務(wù),提供全面的景點(diǎn)路線(xiàn)信息,如旅游線(xiàn)路分類(lèi)、最新旅游線(xiàn)路(推薦旅游線(xiàn)路)、特價(jià)旅游線(xiàn)路(促銷(xiāo)旅游線(xiàn)路)、旅游經(jīng)營(yíng)線(xiàn)路排行、線(xiàn)路搜索等,并引進(jìn)Google地圖的應(yīng)用,為會(huì)員打造獨(dú)具個(gè)性的旅游方案。
6)購(gòu)物管理。游客在網(wǎng)站上進(jìn)行旅游商品的瀏覽和購(gòu)買(mǎi),提交訂單后,可以通過(guò)網(wǎng)上銀行進(jìn)行網(wǎng)上支付服務(wù)。提供一個(gè)安全可靠的網(wǎng)上支付環(huán)境,消除游客的顧慮,調(diào)動(dòng)其購(gòu)買(mǎi)旅游產(chǎn)品的積極性。
7)會(huì)員管理。允許互聯(lián)網(wǎng)用戶(hù)注冊(cè)、登陸系統(tǒng)設(shè)置個(gè)人信息等,以及對(duì)會(huì)員的管理。
8)會(huì)員社區(qū)。會(huì)員社區(qū)是個(gè)虛擬的空間,為會(huì)員提供了一個(gè)虛擬的交流場(chǎng)所,分享旅行信息和心得,幫助會(huì)員解決旅途問(wèn)題;同時(shí),通過(guò)會(huì)員在本平臺(tái)的信息反饋和對(duì)各景點(diǎn)、酒店等進(jìn)行的客觀評(píng)價(jià),督促當(dāng)?shù)毓芾聿块T(mén)和旅游企業(yè)提高服務(wù)質(zhì)量,促進(jìn)旅游業(yè)的發(fā)展。
9)旅游資訊。旅游資訊是為會(huì)員提供的附加服務(wù)。由線(xiàn)上交互式平臺(tái)信息與線(xiàn)下旅行叢書(shū)、雜志形成立體式資訊組合。新聞公告、風(fēng)俗文化和溫馨貼士等資訊的及時(shí)更新發(fā)布。為會(huì)員出行提供更多保障,致力成為優(yōu)秀的度假旅行服務(wù)平臺(tái)。
4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1 系統(tǒng)層次結(jié)構(gòu)
旅游電子商務(wù)系統(tǒng)采用適合開(kāi)發(fā)基于互聯(lián)網(wǎng)的多層次的JavaEE規(guī)范標(biāo)準(zhǔn)。從具體技術(shù)實(shí)現(xiàn)邏輯上,旅游電子商務(wù)系統(tǒng)劃分為客戶(hù)端層、中間服務(wù)層、數(shù)據(jù)庫(kù)層3個(gè)模塊結(jié)構(gòu)層次,如圖3所示。
1)表示層。用來(lái)與用戶(hù)進(jìn)行交互,并把來(lái)自系統(tǒng)的信息顯示給用戶(hù)。JavaEE平臺(tái)支持不同類(lèi)型的用戶(hù)。運(yùn)行在客戶(hù)機(jī)上,用來(lái)實(shí)現(xiàn)企業(yè)級(jí)系統(tǒng)的操作界面,負(fù)責(zé)系統(tǒng)與客戶(hù)間的交互。為用戶(hù)使用此系統(tǒng)提供多終端接入方式,通過(guò)瀏覽器進(jìn)行系統(tǒng)界面交互,也可以與辦公自動(dòng)化集成展現(xiàn)。
2)中間服務(wù)層。包括Web層和EJB容器。處于一個(gè)或多個(gè)WEB服務(wù)器上,使用Servlet和Jsp完成數(shù)據(jù)顯示和流程邏輯控制,EJB容器解決了企業(yè)級(jí)應(yīng)用底層的問(wèn)題,如事務(wù)處理、生命周期、狀態(tài)管理、多線(xiàn)程安全管理等。通過(guò)應(yīng)用程序客戶(hù)端或WEB應(yīng)用可以遠(yuǎn)程訪(fǎng)問(wèn)。處理應(yīng)用的核心業(yè)務(wù)邏輯。通過(guò)處理客戶(hù)請(qǐng)求,調(diào)用相應(yīng)的邏輯塊,產(chǎn)生表示邏輯,在所接受的客戶(hù)端請(qǐng)求的基礎(chǔ)上,對(duì)用戶(hù)的請(qǐng)求產(chǎn)生相應(yīng)的回應(yīng),并把結(jié)果以網(wǎng)頁(yè)的形式返回到客戶(hù)端。完成景點(diǎn)管理、預(yù)訂管理、網(wǎng)上支付等應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯處理,另外包括支持業(yè)務(wù)應(yīng)用的支撐模塊,如權(quán)限管理、系統(tǒng)管理等等。
3)數(shù)據(jù)庫(kù)層。由大型數(shù)據(jù)庫(kù)系統(tǒng)組成,采用Oracle9i,存儲(chǔ)商業(yè)數(shù)據(jù)以及與數(shù)據(jù)存取相關(guān)的邏輯。該層為企業(yè)的信息服務(wù)系統(tǒng)提供服務(wù),為中間服務(wù)層提供數(shù)據(jù)存儲(chǔ)機(jī)制,并提供相關(guān)數(shù)據(jù)使用及查詢(xún)接口,同時(shí)處理和其他的數(shù)據(jù)交換和消息傳遞。
4.2 系統(tǒng)架構(gòu)設(shè)計(jì)
基于分布式Web應(yīng)用的B/S結(jié)構(gòu)模式和系統(tǒng)的多模塊劃分,為了提高系統(tǒng)的可擴(kuò)展性,并且要減少層與層之間的耦合度,系統(tǒng)的表示層、數(shù)據(jù)庫(kù)層、業(yè)務(wù)邏輯層分別采用目前輕量級(jí)架構(gòu)中的Struts技術(shù)、Hibernate技術(shù)和Spring技術(shù)來(lái)實(shí)現(xiàn)。使用由Struts、Hibernate和Spring整合而成的架構(gòu),設(shè)計(jì)的目標(biāo)是要提供一個(gè)簡(jiǎn)潔的,功能完善的Web框架,提高組件的可復(fù)用性,降低層與層之間的耦合度,有利于系統(tǒng)的可擴(kuò)展性和可維護(hù)性等。經(jīng)整合后系統(tǒng)的架構(gòu)圖如圖4所示。
如圖4所示,Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),它負(fù)責(zé)表現(xiàn)層中模型-視圖-控制器模式的分離;Hibernate負(fù)責(zé)提供持久化服務(wù),Spring作為輕量級(jí)容器來(lái)管理業(yè)務(wù)邏輯和事務(wù)處理。具體做法是:依據(jù)系統(tǒng)的需求通過(guò)使用面向?qū)ο蟮姆治龇椒ㄌ岢鲆粋€(gè)模型,將這些模型采用Java語(yǔ)言設(shè)計(jì)出基本的Java對(duì)象,然后寫(xiě)出基本的DAO實(shí)現(xiàn)和Hibernate的級(jí)聯(lián)實(shí)現(xiàn),采用Hibernate框架實(shí)現(xiàn)的DAO類(lèi)以及級(jí)聯(lián)方式來(lái)實(shí)現(xiàn)Java類(lèi)與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪(fǎng)問(wèn),然后由Spring來(lái)完成業(yè)務(wù)邏輯處理和事務(wù)處理。表示層可通過(guò)頁(yè)面模型(Model)、視圖(View)、控制器(Controller)和Spring配置文件等來(lái)實(shí)現(xiàn),數(shù)據(jù)持久層主要由對(duì)象-關(guān)系映射文件、Spring配置文件和DAO類(lèi)等來(lái)實(shí)現(xiàn)。
5 結(jié)束語(yǔ)
本文分析了旅游電子商務(wù)平臺(tái)功能模塊,給出了一種能夠有效地滿(mǎn)足目前現(xiàn)代旅客實(shí)際需求的系統(tǒng)構(gòu)建方法,即采用JavaEE技術(shù)設(shè)計(jì)構(gòu)建的旅游電子商務(wù)平臺(tái)。通過(guò)試運(yùn)行,該平臺(tái)基本能夠有效地滿(mǎn)足旅客對(duì)景點(diǎn)的了解,酒店、旅行社、票務(wù)的預(yù)定,旅游產(chǎn)品的購(gòu)買(mǎi)和會(huì)員的互動(dòng)交流,較大地滿(mǎn)足了旅客的個(gè)性化需求。當(dāng)然,目前利用JaveEE開(kāi)發(fā)企業(yè)級(jí)的旅游電子商務(wù)應(yīng)用仍處于探索階段,存在著大規(guī)模商務(wù)數(shù)據(jù)有效交換、異構(gòu)環(huán)境中與其他旅游商務(wù)系統(tǒng)的接口通信等問(wèn)題。此外,如何針對(duì)不同功能的系統(tǒng)設(shè)計(jì)更合理的系統(tǒng)框架,也有待進(jìn)一步研究。
參考文獻(xiàn):
[1] 李振宇.校園信息門(mén)戶(hù)系統(tǒng)的研究與實(shí)現(xiàn)[D].大連:大連海事大學(xué),2006.
[2] 董洪杉,竇延平.利用Hibernate的J2EE數(shù)據(jù)持久層的解決方案[J].計(jì)算機(jī)工程,2004(S1).
[3] 陳峰,薛士權(quán).通用關(guān)系數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)層的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2003(22).
[4] 殷利,孫飛,葛銘.在J2EE的體系結(jié)構(gòu)上構(gòu)建基于XML的Web信息系統(tǒng)[J].電腦知識(shí)與技術(shù),2005(6).
[5] 肖茂兵,盧振環(huán).JavaEE應(yīng)用技術(shù)框架選型[J].華南金融電腦,2006(8).
[6] 任建豪,李成忠.基于J2EE架構(gòu)的企業(yè)卡資源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].成都信息工程學(xué)院學(xué)報(bào),2005(5).
[7] 唐青松.基于J2EE的手機(jī)短信平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù),2008(6).
[8] 李杰.基于ORM的輕量級(jí)數(shù)據(jù)持久化技術(shù)研究及應(yīng)用[J].計(jì)算機(jī)科學(xué),2010(9).