(無(wú)錫開(kāi)放大學(xué)后勤與裝備保障部,無(wú)錫市,214021) 杜 俊
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,旅游業(yè)已成為全球經(jīng)濟(jì)中發(fā)展勢(shì)頭最強(qiáng)勁與規(guī)模最大的產(chǎn)業(yè)之一,也是我國(guó)經(jīng)濟(jì)發(fā)展的支柱產(chǎn)業(yè)之一。旅游業(yè)作為一個(gè)獨(dú)立的產(chǎn)業(yè),能起到促進(jìn)其他產(chǎn)業(yè)發(fā)展、優(yōu)化國(guó)民經(jīng)濟(jì)結(jié)構(gòu)的作用。網(wǎng)絡(luò)時(shí)代的到來(lái),Internet技術(shù)的出現(xiàn),使人們借助互聯(lián)網(wǎng)絡(luò)廣泛地從事商品與服務(wù)的電子化交易成為可能,這不僅大大擴(kuò)展了交易范圍,而且可以有效地縮短交易時(shí)間、降低交易成本。當(dāng)前,傳統(tǒng)企業(yè)紛紛應(yīng)用Internet技術(shù),以實(shí)現(xiàn)企業(yè)信息化和增強(qiáng)企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力。電子商務(wù)高速發(fā)展,越來(lái)越多的用戶使用電子商務(wù),它是現(xiàn)代社會(huì)發(fā)展以及網(wǎng)絡(luò)趨勢(shì)所向。在各行各業(yè)應(yīng)用IT技術(shù)的同時(shí),傳統(tǒng)旅游業(yè)也插上了電子商務(wù)雙翼,從本質(zhì)上改變了旅游業(yè)的管理模式和行為模式。
從全球范圍來(lái)看旅游電子商務(wù)已經(jīng)成為旅游業(yè)發(fā)展不可逆轉(zhuǎn)的趨勢(shì)。目前,在歐美等發(fā)達(dá)國(guó)家,正在大力發(fā)展低成本,高效益的旅游電子商務(wù)。旅游電子商務(wù)已經(jīng)成為整個(gè)電子商務(wù)領(lǐng)域最為突出的部分。資料顯示,全球旅游電子商務(wù)連續(xù)5年以350%以上的速度增長(zhǎng),一度占到全球電子商務(wù)總額的20%以上。美國(guó)美林公司的調(diào)查指出,2012年全美在線旅游銷售收入占旅游市場(chǎng)總收入的39%。2005年這個(gè)比例是30%,2009年為25%,2003年為21%。2014年,美國(guó)在線旅行市場(chǎng)預(yù)計(jì)將達(dá)到910億美元,旅游服務(wù)約50%的業(yè)務(wù)都將在網(wǎng)絡(luò)上進(jìn)行。相比之下,目前國(guó)內(nèi)旅游電子商務(wù)同國(guó)外存在較大差距。未來(lái)10年間,我國(guó)旅游業(yè)將保持年均10.4%的增長(zhǎng)速度。根據(jù)我國(guó)政府的產(chǎn)業(yè)規(guī)劃,2020年,我國(guó)旅游業(yè)總收入將超過(guò)3.3萬(wàn)億元,達(dá)到國(guó)內(nèi)生產(chǎn)總值的8%。然而,我國(guó)旅游業(yè)目前還處于粗放型階段,效益還比較低,與世界水平的差距還是很明顯的,差距主要表現(xiàn)在資源整合、營(yíng)銷手段、企業(yè)競(jìng)爭(zhēng)力等方面。我國(guó)目前的旅游電子商務(wù)收入,在整個(gè)旅游業(yè)收入中所占的比重還沒(méi)有超過(guò)10%。據(jù)旅游行業(yè)權(quán)威人士透露,我國(guó)旅游業(yè)信息化水平至少落后于國(guó)際水平10~15年年。目前,我國(guó)的旅游電子商務(wù)平臺(tái)主要存在以下幾方面不足。
綜合性網(wǎng)絡(luò)公司中,大部分網(wǎng)站都不同程度地涉及了旅游的內(nèi)容,如新浪網(wǎng)生活空間的旅游頻道、搜狐和網(wǎng)易的旅游欄目、中華網(wǎng)的旅游網(wǎng)站,都顯示出旅游信息的巨大生命力和市場(chǎng)空間。但它們僅僅作為其網(wǎng)站的一部分,沒(méi)有能夠充分體現(xiàn)旅游信息的全面性、權(quán)威性和實(shí)用性,只是對(duì)現(xiàn)有網(wǎng)站內(nèi)容的擴(kuò)充。
從開(kāi)發(fā)技術(shù)上講,目前大部分旅游電子商務(wù)網(wǎng)站均基于Windows平臺(tái),采用ASP技術(shù)。這樣,系統(tǒng)運(yùn)行性能、擴(kuò)展性能和安全性都比較差,不能隨著不斷變化的客戶需求而變化,限制了旅游電子商務(wù)優(yōu)勢(shì)的發(fā)揮。另外,采用的軟件架構(gòu)滯后,不利于團(tuán)隊(duì)合作開(kāi)發(fā),系統(tǒng)升級(jí)、維護(hù)艱難。
在專業(yè)旅游網(wǎng)站中,國(guó)內(nèi)互聯(lián)網(wǎng)上旅游專業(yè)站點(diǎn)十分有限,而且絕大多數(shù)是簡(jiǎn)單的企業(yè)介紹,屈指可數(shù)的一些信息網(wǎng)站更多的是停留在專業(yè)門(mén)戶階段,條目太少,內(nèi)容主要包括國(guó)內(nèi)主要的旅游線路、景點(diǎn)介紹、往返程工具、價(jià)格和游記作品等最基礎(chǔ)的信息,既沒(méi)有分類又沒(méi)有及時(shí)更新,甚至僅有條目沒(méi)有內(nèi)容,嚴(yán)重缺乏客戶體驗(yàn)。還有部分專業(yè)旅游網(wǎng)站內(nèi)容尚可,也有預(yù)訂旅游線路等功能,但線路產(chǎn)品展臺(tái)簡(jiǎn)陋,沒(méi)有設(shè)置最新旅游線路、促銷旅游線路、旅游經(jīng)營(yíng)排行等欄目,難以激起瀏覽者預(yù)訂旅游線路的欲望。有的專業(yè)旅游網(wǎng)站前臺(tái),不能提供瀏覽旅游線路查詢和訂單查詢功能,后臺(tái)不能進(jìn)行旅游線路管理、會(huì)員管理及訂單管理等功能,因此在經(jīng)營(yíng)上難有大的起色。
3.1.1 Spring簡(jiǎn)介
Spring是一個(gè)輕量的控制反轉(zhuǎn)和面向切面的容器框架,下面描述Spring的有關(guān)特性。
第一,輕量。從大小與開(kāi)銷兩方面而言,Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布,并且Spring所需的處理開(kāi)銷也是微不足道的。,此外,Spring是非侵入式的,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。
第二,面向切面。Spring包含對(duì)面向切面編程(AspectOrientedProgramming,AOP)的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)服務(wù)進(jìn)行內(nèi)聚性的開(kāi)發(fā)。應(yīng)用對(duì)象只做它們應(yīng)該做的,完成業(yè)務(wù)邏輯,它們并不負(fù)責(zé)其它的系統(tǒng)關(guān)注點(diǎn)。
第三,控制反轉(zhuǎn)。軟件設(shè)計(jì)方法及設(shè)計(jì)模式的發(fā)展,共產(chǎn)生了3種類調(diào)用的方法:自己創(chuàng)建、工廠模式、外部注入。其中,外部注入即為控制反轉(zhuǎn)/依賴注入的模式。所謂控制反轉(zhuǎn),就是由容器來(lái)控制業(yè)務(wù)對(duì)象之間的依賴關(guān)系,而非傳統(tǒng)方式中由代碼來(lái)直接操控。
3.1.2 MVC結(jié)構(gòu)
系統(tǒng)主體結(jié)構(gòu)采用MVC架構(gòu),MVC指的是模型(Model)、視圖(View)和控制器(Controller)。使用MVC的目的是將模型和視圖的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。在本系統(tǒng)中,為了今后能夠開(kāi)發(fā)出Web Service等其他新的表現(xiàn)形式,最便捷的方式就是能夠重用原有的業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)代碼。如果系統(tǒng)使用了MVC的架構(gòu),服務(wù)層和數(shù)據(jù)表現(xiàn)層是相互分離的,那么,就可以方便地在Web Service中調(diào)用原來(lái)的服務(wù)層代碼,大大減少重復(fù)開(kāi)發(fā)的工作。
3.1.3 SSH框架
SSH是Struts、Spring、Hibernate三種技術(shù)的有機(jī)融合,是目前應(yīng)用最廣泛的J2EE架構(gòu)。Struts是目前較為流行的基于MVC的框架,它主要充當(dāng)控制器的角色,負(fù)責(zé)接收用戶的輸入,調(diào)用服務(wù)層的方法后,將得到的結(jié)果返回給數(shù)據(jù)表現(xiàn)層。Hibernate充當(dāng)模型的角色,它使用XML文件將數(shù)據(jù)庫(kù)的字段和實(shí)體類字段之間的關(guān)系對(duì)應(yīng)起來(lái),將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)在程序中直接變?yōu)槌绦蛑械膶?duì)象。
經(jīng)前期調(diào)研,確定電子商務(wù)系統(tǒng)功能主要包括前臺(tái)和后臺(tái)兩部分。系統(tǒng)前臺(tái)部分主要包括:旅游線路產(chǎn)品展臺(tái)(最新旅游線路、促銷旅游線路、黃金旅游排行榜)、旅游產(chǎn)品查詢、旅游產(chǎn)品訂購(gòu)(選購(gòu)旅游線路、收銀臺(tái))、用戶登錄(會(huì)員注冊(cè)、會(huì)員登錄、會(huì)員資料修改)、旅游公告及訂單查詢。(詳見(jiàn)圖1)
系統(tǒng)后臺(tái)部分主要對(duì)系統(tǒng)內(nèi)的一些數(shù)據(jù)進(jìn)行有效管理,包括旅游線路信息管理,會(huì)員管理、訂單管理及公告管理。(詳見(jiàn)圖2)
圖1 旅游電子商務(wù)平臺(tái)前臺(tái)功能結(jié)構(gòu)圖
圖2 旅游電子商務(wù)平臺(tái)后臺(tái)功能結(jié)構(gòu)圖
本系統(tǒng)主要是以SSH框架為基礎(chǔ)技術(shù)實(shí)現(xiàn)的。在MVC框架中,所有的請(qǐng)求都由DispatchServlet前臺(tái)控制器負(fù)責(zé)轉(zhuǎn)發(fā)到業(yè)務(wù)控制器中。Controller負(fù)責(zé)控制流程,由DispatchServlet負(fù)責(zé)讀取applicationContext.xml,并使用HandlerMapping來(lái)查找對(duì)應(yīng)的Controller組件;Model由系統(tǒng)狀態(tài)Form Bean和商業(yè)邏輯的javaBean來(lái)構(gòu)建:View是由JSP和Spring提供的自定義標(biāo)簽實(shí)現(xiàn)的。因此,在Spring系統(tǒng)的開(kāi)發(fā)中,開(kāi)發(fā)者需要開(kāi)發(fā)的類只有Controller類和Form Bean。在Spring-Hibernate的框架中,還要加上與數(shù)據(jù)庫(kù)交互的持久類。設(shè)計(jì)包括Hibernate層設(shè)計(jì)、Controller類設(shè)計(jì)、Form Bean類設(shè)計(jì)及View層設(shè)計(jì)。下面Hibernate層和Controller類設(shè)計(jì)為例,闡述系統(tǒng)架構(gòu)設(shè)計(jì)。
3.3.1 Hibernate層設(shè)計(jì)
使用HibernateSynchronizer能夠自動(dòng)生成Hibernate配置文件、映射文件、持久化類和數(shù)據(jù)訪問(wèn)類。使用HibernateSynchronizer可以大大縮短Hibernate開(kāi)發(fā)的時(shí)間,Hibernate層設(shè)計(jì)是筆者的一個(gè)工作重點(diǎn)。
目前,有很多工具可以實(shí)現(xiàn)Hibernate應(yīng)用的自動(dòng)化,HibernateSynchronizer是比較優(yōu)秀的Hibernate自動(dòng)化工具,能夠提高開(kāi)發(fā)的效率。Hibernate Synchronizer是Eclipse的一個(gè)插件,Hibernate Synchronizer提供了圖形化的實(shí)體關(guān)系視圖,通過(guò)這個(gè)視圖可以簡(jiǎn)單地從一個(gè)數(shù)據(jù)庫(kù)連接中生成Hibernate對(duì)象-關(guān)系映射文件,也能夠生成Hibernate配置文件,還可以自動(dòng)生成持久化類以及通用的DAO類。而且,對(duì)映射文件的任何改變,都可以使自動(dòng)生成的持久化類和DAO類隨之改變。
第一,通過(guò)Hibernate提供的插件Hibernate Synchronizer導(dǎo)出數(shù)據(jù)表,實(shí)現(xiàn)O/RMapping(對(duì)象關(guān)系映射)。通過(guò)Hibernate提供的插件導(dǎo)出數(shù)據(jù)表,自動(dòng)生成后綴為hbm.xml的映射文件即可,然后把生成的文件hbm.xml文件注冊(cè)到Spring-Hibernate的配置文件hibernate_context.xml中。
第二,創(chuàng)建數(shù)據(jù)對(duì)象模型。完成對(duì)象關(guān)系映射后,需要?jiǎng)?chuàng)建數(shù)據(jù)對(duì)象,用于承載數(shù)據(jù),以方便DAO層和業(yè)務(wù)層進(jìn)行數(shù)據(jù)傳遞??衫貌寮詣?dòng)生成數(shù)據(jù)對(duì)象模型。
持久層的作用主要是對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行增、刪、改、查、有了這一層接口后,如果不采用Hibernate的話,可以添?yè)QDAO層的Hibernate實(shí)現(xiàn)。DAO層使用一個(gè)類文件Dao,在一個(gè)類里定義所有方法,這樣便于集中維護(hù)。
3.3.2 Controller類設(shè)計(jì)
在本系統(tǒng)中Controller類是Action類文件,負(fù)責(zé)控制流程,處理業(yè)務(wù)邏輯,需要繼承SimpleFormController、 AbstractCommandController、MultiActionController等基類。通過(guò)依賴注入(DI),實(shí)現(xiàn)控制反轉(zhuǎn)(IoC)以及面向切面編程(AOP)的思路設(shè)計(jì),是筆者工作的又一重點(diǎn)。
IoC的優(yōu)點(diǎn):把對(duì)象生成放到XML之中定義,當(dāng)需要換一個(gè)實(shí)現(xiàn)子類時(shí)將變得非常簡(jiǎn)單,只要修改XML即可。
IoC的缺點(diǎn):第一,生成一個(gè)對(duì)象的步驟變復(fù)雜,需要開(kāi)發(fā)者有一個(gè)從傳統(tǒng)編程方式到IoC方式的適應(yīng)過(guò)程。第二,由于對(duì)象的生成使用了Java反射機(jī)制,在運(yùn)行速度上有些損失。
從以上對(duì)IoC優(yōu)缺點(diǎn)的分析可以看出,業(yè)務(wù)邏輯層使用Spring框架控制反轉(zhuǎn)(IoC)的模式,組件間的關(guān)系從程序內(nèi)部提到外部容器來(lái)管理,使得業(yè)務(wù)邏輯組件在運(yùn)行期被注入到Spring容器中,降低了對(duì)象間的耦合度,提高系統(tǒng)的可維護(hù)性。
該旅游電子商務(wù)平臺(tái)采用Spring的依賴注入機(jī)制,減少了組件之間的依賴,提高了系統(tǒng)的可移植性,有利于平臺(tái)后期的維護(hù)和擴(kuò)展。依賴注入主要通過(guò)setter方法注入(setterInjection,也稱為設(shè)值注入)和構(gòu)造方法注入(ContrutorInjection)兩種方式實(shí)現(xiàn)?;趕etter的依賴注入,主要借助屬性的setter方法將低層實(shí)例傳遞給高層;基于構(gòu)造函數(shù)的依賴注入,主要是借助構(gòu)造方法將底層實(shí)例傳遞給高層。因該系統(tǒng)數(shù)據(jù)表中的字段較多,采用設(shè)值注入(即get/set方法)較為簡(jiǎn)單,而且比較符合程序員的編程習(xí)慣,所以,該系統(tǒng)采用通過(guò)設(shè)值注入方法實(shí)現(xiàn)依賴注入。
旅游電子商務(wù)平臺(tái)是基于專業(yè)旅游電子商務(wù)全新概念的旅游管理系統(tǒng),平臺(tái)結(jié)合本地旅游特色,界面美觀、操作方便,用戶可以通過(guò)該平臺(tái)獲得豐富的旅游信息和服務(wù),游客通過(guò)多種方式進(jìn)行互動(dòng)。系統(tǒng)基于SSH框架模式開(kāi)發(fā),保證了系統(tǒng)訪問(wèn)和后臺(tái)維護(hù)的實(shí)用性,又實(shí)現(xiàn)了旅游電子商務(wù)管理的專業(yè)級(jí)服務(wù),滿足了旅游人員對(duì)旅游電子商務(wù)平臺(tái)的旅游線路信息瀏覽和線路預(yù)訂的豐富性和實(shí)時(shí)性的需求,以及旅游管理者對(duì)系統(tǒng)維護(hù)的便利性需求,該電子商務(wù)平臺(tái)今后還將開(kāi)發(fā)手機(jī)版和英文版。
[1]孫志杰,盧雷.基于數(shù)據(jù)庫(kù)中間件技術(shù)的Web應(yīng)用數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(1):87-89.
[2]王魯彬,翟景春,崔旭濤.基于層次分析法的網(wǎng)絡(luò)安全系統(tǒng)脆性分析[J].現(xiàn)代計(jì)算機(jī),2008(6):50-53.
[3]肖燕娟.Java對(duì)象持久層的檢索性能優(yōu)化研究[J].現(xiàn)代計(jì)算機(jī),2008(6):164-167.
[4]賈國(guó)芳.通用數(shù)據(jù)訪問(wèn)組件的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2008(6):191-194.
[5]孫衛(wèi)琴.精通HIBERNATE:Java對(duì)象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社2005:128-158.
[6]沈蘭,曹春益.旅游電子商務(wù)網(wǎng)站策劃及推廣方案分析[J].科技信息,2012(09):25