(無錫開放大學后勤與裝備保障部,無錫市,214021) 杜 俊
隨著社會經濟的發展,旅游業已成為全球經濟中發展勢頭最強勁與規模最大的產業之一,也是我國經濟發展的支柱產業之一。旅游業作為一個獨立的產業,能起到促進其他產業發展、優化國民經濟結構的作用。網絡時代的到來,Internet技術的出現,使人們借助互聯網絡廣泛地從事商品與服務的電子化交易成為可能,這不僅大大擴展了交易范圍,而且可以有效地縮短交易時間、降低交易成本。當前,傳統企業紛紛應用Internet技術,以實現企業信息化和增強企業的市場競爭力。電子商務高速發展,越來越多的用戶使用電子商務,它是現代社會發展以及網絡趨勢所向。在各行各業應用IT技術的同時,傳統旅游業也插上了電子商務雙翼,從本質上改變了旅游業的管理模式和行為模式。
從全球范圍來看旅游電子商務已經成為旅游業發展不可逆轉的趨勢。目前,在歐美等發達國家,正在大力發展低成本,高效益的旅游電子商務。旅游電子商務已經成為整個電子商務領域最為突出的部分。資料顯示,全球旅游電子商務連續5年以350%以上的速度增長,一度占到全球電子商務總額的20%以上。美國美林公司的調查指出,2012年全美在線旅游銷售收入占旅游市場總收入的39%。2005年這個比例是30%,2009年為25%,2003年為21%。2014年,美國在線旅行市場預計將達到910億美元,旅游服務約50%的業務都將在網絡上進行。相比之下,目前國內旅游電子商務同國外存在較大差距。未來10年間,我國旅游業將保持年均10.4%的增長速度。根據我國政府的產業規劃,2020年,我國旅游業總收入將超過3.3萬億元,達到國內生產總值的8%。然而,我國旅游業目前還處于粗放型階段,效益還比較低,與世界水平的差距還是很明顯的,差距主要表現在資源整合、營銷手段、企業競爭力等方面。我國目前的旅游電子商務收入,在整個旅游業收入中所占的比重還沒有超過10%。據旅游行業權威人士透露,我國旅游業信息化水平至少落后于國際水平10~15年年。目前,我國的旅游電子商務平臺主要存在以下幾方面不足。
綜合性網絡公司中,大部分網站都不同程度地涉及了旅游的內容,如新浪網生活空間的旅游頻道、搜狐和網易的旅游欄目、中華網的旅游網站,都顯示出旅游信息的巨大生命力和市場空間。但它們僅僅作為其網站的一部分,沒有能夠充分體現旅游信息的全面性、權威性和實用性,只是對現有網站內容的擴充。
從開發技術上講,目前大部分旅游電子商務網站均基于Windows平臺,采用ASP技術。這樣,系統運行性能、擴展性能和安全性都比較差,不能隨著不斷變化的客戶需求而變化,限制了旅游電子商務優勢的發揮。另外,采用的軟件架構滯后,不利于團隊合作開發,系統升級、維護艱難。
在專業旅游網站中,國內互聯網上旅游專業站點十分有限,而且絕大多數是簡單的企業介紹,屈指可數的一些信息網站更多的是停留在專業門戶階段,條目太少,內容主要包括國內主要的旅游線路、景點介紹、往返程工具、價格和游記作品等最基礎的信息,既沒有分類又沒有及時更新,甚至僅有條目沒有內容,嚴重缺乏客戶體驗。還有部分專業旅游網站內容尚可,也有預訂旅游線路等功能,但線路產品展臺簡陋,沒有設置最新旅游線路、促銷旅游線路、旅游經營排行等欄目,難以激起瀏覽者預訂旅游線路的欲望。有的專業旅游網站前臺,不能提供瀏覽旅游線路查詢和訂單查詢功能,后臺不能進行旅游線路管理、會員管理及訂單管理等功能,因此在經營上難有大的起色。
3.1.1 Spring簡介
Spring是一個輕量的控制反轉和面向切面的容器框架,下面描述Spring的有關特性。
第一,輕量。從大小與開銷兩方面而言,Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發布,并且Spring所需的處理開銷也是微不足道的。,此外,Spring是非侵入式的,Spring應用中的對象不依賴于Spring的特定類。
第二,面向切面。Spring包含對面向切面編程(AspectOrientedProgramming,AOP)的豐富支持,允許通過分離應用的業務邏輯與系統服務進行內聚性的開發。應用對象只做它們應該做的,完成業務邏輯,它們并不負責其它的系統關注點。
第三,控制反轉。軟件設計方法及設計模式的發展,共產生了3種類調用的方法:自己創建、工廠模式、外部注入。其中,外部注入即為控制反轉/依賴注入的模式。所謂控制反轉,就是由容器來控制業務對象之間的依賴關系,而非傳統方式中由代碼來直接操控。
3.1.2 MVC結構
系統主體結構采用MVC架構,MVC指的是模型(Model)、視圖(View)和控制器(Controller)。使用MVC的目的是將模型和視圖的實現代碼分離,從而使同一個程序可以使用不同的表現形式。在本系統中,為了今后能夠開發出Web Service等其他新的表現形式,最便捷的方式就是能夠重用原有的業務邏輯和數據訪問代碼。如果系統使用了MVC的架構,服務層和數據表現層是相互分離的,那么,就可以方便地在Web Service中調用原來的服務層代碼,大大減少重復開發的工作。
3.1.3 SSH框架
SSH是Struts、Spring、Hibernate三種技術的有機融合,是目前應用最廣泛的J2EE架構。Struts是目前較為流行的基于MVC的框架,它主要充當控制器的角色,負責接收用戶的輸入,調用服務層的方法后,將得到的結果返回給數據表現層。Hibernate充當模型的角色,它使用XML文件將數據庫的字段和實體類字段之間的關系對應起來,將關系型數據庫的數據在程序中直接變為程序中的對象。
經前期調研,確定電子商務系統功能主要包括前臺和后臺兩部分。系統前臺部分主要包括:旅游線路產品展臺(最新旅游線路、促銷旅游線路、黃金旅游排行榜)、旅游產品查詢、旅游產品訂購(選購旅游線路、收銀臺)、用戶登錄(會員注冊、會員登錄、會員資料修改)、旅游公告及訂單查詢。(詳見圖1)
系統后臺部分主要對系統內的一些數據進行有效管理,包括旅游線路信息管理,會員管理、訂單管理及公告管理。(詳見圖2)

圖1 旅游電子商務平臺前臺功能結構圖

圖2 旅游電子商務平臺后臺功能結構圖
本系統主要是以SSH框架為基礎技術實現的。在MVC框架中,所有的請求都由DispatchServlet前臺控制器負責轉發到業務控制器中。Controller負責控制流程,由DispatchServlet負責讀取applicationContext.xml,并使用HandlerMapping來查找對應的Controller組件;Model由系統狀態Form Bean和商業邏輯的javaBean來構建:View是由JSP和Spring提供的自定義標簽實現的。因此,在Spring系統的開發中,開發者需要開發的類只有Controller類和Form Bean。在Spring-Hibernate的框架中,還要加上與數據庫交互的持久類。設計包括Hibernate層設計、Controller類設計、Form Bean類設計及View層設計。下面Hibernate層和Controller類設計為例,闡述系統架構設計。
3.3.1 Hibernate層設計
使用HibernateSynchronizer能夠自動生成Hibernate配置文件、映射文件、持久化類和數據訪問類。使用HibernateSynchronizer可以大大縮短Hibernate開發的時間,Hibernate層設計是筆者的一個工作重點。
目前,有很多工具可以實現Hibernate應用的自動化,HibernateSynchronizer是比較優秀的Hibernate自動化工具,能夠提高開發的效率。Hibernate Synchronizer是Eclipse的一個插件,Hibernate Synchronizer提供了圖形化的實體關系視圖,通過這個視圖可以簡單地從一個數據庫連接中生成Hibernate對象-關系映射文件,也能夠生成Hibernate配置文件,還可以自動生成持久化類以及通用的DAO類。而且,對映射文件的任何改變,都可以使自動生成的持久化類和DAO類隨之改變。
第一,通過Hibernate提供的插件Hibernate Synchronizer導出數據表,實現O/RMapping(對象關系映射)。通過Hibernate提供的插件導出數據表,自動生成后綴為hbm.xml的映射文件即可,然后把生成的文件hbm.xml文件注冊到Spring-Hibernate的配置文件hibernate_context.xml中。
第二,創建數據對象模型。完成對象關系映射后,需要創建數據對象,用于承載數據,以方便DAO層和業務層進行數據傳遞。可利用插件自動生成數據對象模型。
持久層的作用主要是對數據庫的數據進行增、刪、改、查、有了這一層接口后,如果不采用Hibernate的話,可以添換DAO層的Hibernate實現。DAO層使用一個類文件Dao,在一個類里定義所有方法,這樣便于集中維護。
3.3.2 Controller類設計
在本系統中Controller類是Action類文件,負責控制流程,處理業務邏輯,需要繼承SimpleFormController、 AbstractCommandController、MultiActionController等基類。通過依賴注入(DI),實現控制反轉(IoC)以及面向切面編程(AOP)的思路設計,是筆者工作的又一重點。
IoC的優點:把對象生成放到XML之中定義,當需要換一個實現子類時將變得非常簡單,只要修改XML即可。
IoC的缺點:第一,生成一個對象的步驟變復雜,需要開發者有一個從傳統編程方式到IoC方式的適應過程。第二,由于對象的生成使用了Java反射機制,在運行速度上有些損失。
從以上對IoC優缺點的分析可以看出,業務邏輯層使用Spring框架控制反轉(IoC)的模式,組件間的關系從程序內部提到外部容器來管理,使得業務邏輯組件在運行期被注入到Spring容器中,降低了對象間的耦合度,提高系統的可維護性。
該旅游電子商務平臺采用Spring的依賴注入機制,減少了組件之間的依賴,提高了系統的可移植性,有利于平臺后期的維護和擴展。依賴注入主要通過setter方法注入(setterInjection,也稱為設值注入)和構造方法注入(ContrutorInjection)兩種方式實現。基于setter的依賴注入,主要借助屬性的setter方法將低層實例傳遞給高層;基于構造函數的依賴注入,主要是借助構造方法將底層實例傳遞給高層。因該系統數據表中的字段較多,采用設值注入(即get/set方法)較為簡單,而且比較符合程序員的編程習慣,所以,該系統采用通過設值注入方法實現依賴注入。
旅游電子商務平臺是基于專業旅游電子商務全新概念的旅游管理系統,平臺結合本地旅游特色,界面美觀、操作方便,用戶可以通過該平臺獲得豐富的旅游信息和服務,游客通過多種方式進行互動。系統基于SSH框架模式開發,保證了系統訪問和后臺維護的實用性,又實現了旅游電子商務管理的專業級服務,滿足了旅游人員對旅游電子商務平臺的旅游線路信息瀏覽和線路預訂的豐富性和實時性的需求,以及旅游管理者對系統維護的便利性需求,該電子商務平臺今后還將開發手機版和英文版。
[1]孫志杰,盧雷.基于數據庫中間件技術的Web應用數據訪問的實現[J].計算機系統應用,2008(1):87-89.
[2]王魯彬,翟景春,崔旭濤.基于層次分析法的網絡安全系統脆性分析[J].現代計算機,2008(6):50-53.
[3]肖燕娟.Java對象持久層的檢索性能優化研究[J].現代計算機,2008(6):164-167.
[4]賈國芳.通用數據訪問組件的設計與實現[J].現代計算機,2008(6):191-194.
[5]孫衛琴.精通HIBERNATE:Java對象持久化技術詳解[M].北京:電子工業出版社2005:128-158.
[6]沈蘭,曹春益.旅游電子商務網站策劃及推廣方案分析[J].科技信息,2012(09):25