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