于蕭榕
摘要:該文提供一種基于云計(jì)算的船舶航運(yùn)信息服務(wù)系統(tǒng),利用J2EE、C#和SQL Server2005進(jìn)行開(kāi)發(fā),圍繞船舶和水運(yùn)物流為主線,形成一個(gè)交互式電子商務(wù)信息交易平臺(tái),將長(zhǎng)江水運(yùn)優(yōu)勢(shì)和地方經(jīng)濟(jì)發(fā)展有機(jī)結(jié)合起來(lái),引導(dǎo)水運(yùn)、經(jīng)濟(jì)、產(chǎn)業(yè)的良性互動(dòng)。
關(guān)鍵詞:云計(jì)算;J2EE;航運(yùn)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)16-3699-02
Abstract: This article provides a Shipping Information Service Platform based on Cloud Computing management system. The use of J2EE, C # and SQL Server2005 to develop, Around the ship and shipping logistics as the main clue,take an interactive e-commerce trading platform. The Yangtze River waterway advantage and local economic development organically, interactive guide water transportation, economy, industry.
Key words: cloud computing; J2EE; shipping
長(zhǎng)江橫貫東西,通江達(dá)海,全長(zhǎng)六千多公里,自古就是我國(guó)重要的水上交通大動(dòng)脈,有著“黃金水道”的美譽(yù), 中國(guó)還有大小天然河流5800多條,總長(zhǎng)40萬(wàn)公里,現(xiàn)已辟為航道的里程約是10 萬(wàn)公里,其中7 萬(wàn)公里可通航機(jī)動(dòng)船只,而且水運(yùn)具有運(yùn)能大、能耗小、成本低、占地少、污染輕等突出優(yōu)勢(shì)。統(tǒng)計(jì)顯示,近5年來(lái),長(zhǎng)江航運(yùn)持續(xù)快速發(fā)展,貨運(yùn)量、周轉(zhuǎn)量和港口吞吐量以年均兩位數(shù)的速度迅速增長(zhǎng)。2011年長(zhǎng)江干線貨運(yùn)量突破16億噸,連續(xù)7年超過(guò)美國(guó)密西西比河和歐洲萊茵河,已成為世界內(nèi)河運(yùn)輸最繁忙、運(yùn)量最大的通航河流。
為完善長(zhǎng)江流域的水運(yùn)市場(chǎng),積聚長(zhǎng)江及內(nèi)河流域船舶建造人氣。因此,建立一個(gè)基于云計(jì)算的航運(yùn)信息服務(wù)平臺(tái),通過(guò)發(fā)布航運(yùn)信息、貨運(yùn)信息、航線信息,建立水上的運(yùn)輸物流平臺(tái);通過(guò)發(fā)布船舶交易信息、船舶產(chǎn)品交易信息,建立網(wǎng)絡(luò)交易信息發(fā)布平臺(tái);通過(guò)發(fā)布船舶企業(yè)信息、船舶修造信息、特殊崗位信息、人才信息等,實(shí)現(xiàn)吸引船東到長(zhǎng)江流域的船舶制造企業(yè)進(jìn)行造船,船舶制造企業(yè)招收高素質(zhì)的技術(shù)工人,船員合理流動(dòng),內(nèi)河碼頭運(yùn)輸效能提高等。
1 系統(tǒng)的整體框架
根據(jù)本項(xiàng)目的業(yè)務(wù)需求,綜合經(jīng)濟(jì)性、靈活性、集成性和擴(kuò)展性的要求,決定在本項(xiàng)目采用J2EE框架來(lái)開(kāi)發(fā)[1],平臺(tái)采用B/S模式,后臺(tái)數(shù)據(jù)庫(kù)為SQL Server 2005中文企業(yè)版。
1)系統(tǒng)的數(shù)據(jù)模型
第一層為表示層,位于最外層,直接呈現(xiàn)在用戶面前用于顯示數(shù)據(jù)與信息,并為用戶提供一種交互式界面,如首頁(yè)的查詢檢索頁(yè)面、后臺(tái)信息發(fā)布頁(yè)面等。第二層為中間層,通過(guò)Web Service與數(shù)據(jù)庫(kù)進(jìn)行連接,負(fù)責(zé)處理用戶輸入的信息,將這些信息發(fā)送給數(shù)據(jù)庫(kù)層進(jìn)行修改或保存,或調(diào)用數(shù)據(jù)庫(kù)層中的函數(shù)讀出數(shù)據(jù),它是聯(lián)系表示層和數(shù)據(jù)庫(kù)層的橋梁,絕大部分的業(yè)務(wù)邏輯都在這一層[2-3]。第三層為數(shù)據(jù)庫(kù)層,用來(lái)處理數(shù)據(jù)庫(kù)數(shù)據(jù),如對(duì)數(shù)據(jù)進(jìn)行增加、修改、刪除及查詢等操作,這一層的設(shè)計(jì)要嚴(yán)格遵循數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)中的第三范式要求,確保較小的數(shù)據(jù)冗余度[4-5]。
系統(tǒng)J2EE技術(shù)框架調(diào)用過(guò)程如下圖:
2)系統(tǒng)中的用戶權(quán)限控制
由于采用的是B/S模式,因此系統(tǒng)的用戶權(quán)限配置很重要。本系統(tǒng)采用用戶-角色-模塊的三層設(shè)計(jì)模式,第一層為用戶,第二層為角色,第三層為系統(tǒng)模塊。此模型將系統(tǒng)的模塊權(quán)限與用戶分開(kāi),將角色作為一個(gè)中間層,用戶與角色之間建立關(guān)系,角色與模塊權(quán)限之間建立關(guān)系,而用戶和模塊權(quán)限之間沒(méi)有直接的關(guān)系。用戶與角色的關(guān)系是,一個(gè)用戶可以對(duì)應(yīng)一個(gè)角色,一個(gè)角色也可以同時(shí)包含一個(gè)或多個(gè)用戶。同樣,角色與模塊之間也是多對(duì)多的關(guān)系,并且可以設(shè)置角色對(duì)模塊的具體操作權(quán)限(瀏覽、查詢、添加、修改和刪除)。用戶訪問(wèn)模塊時(shí),通過(guò)其所在的角色對(duì)模塊的訪問(wèn)權(quán)限來(lái)獲得訪問(wèn)該模塊的權(quán)限,當(dāng)用戶進(jìn)入模塊后,用戶的所有操作都要經(jīng)過(guò)權(quán)限判斷,不具備操作權(quán)限時(shí),則給出提示信息,禁止操作繼續(xù)。這種分層的管理模式使用戶對(duì)系統(tǒng)數(shù)據(jù)的每一步操作都要進(jìn)行權(quán)限判斷和驗(yàn)證,從而有效地保證系統(tǒng)安全、可靠地運(yùn)行。
2 系統(tǒng)使用的關(guān)鍵技術(shù)
1) 系統(tǒng)安全及權(quán)限認(rèn)證技術(shù)
系統(tǒng)采用全局會(huì)話安全權(quán)限過(guò)濾,未經(jīng)驗(yàn)證的用戶不能得到會(huì)話標(biāo)記,所以無(wú)法登錄和使用本系統(tǒng)。本系統(tǒng)采用用戶-角色-模塊的三層設(shè)計(jì)模式,第一層為用戶,第二層為角色,第三層為系統(tǒng)模塊。此模型將系統(tǒng)的模塊權(quán)限與用戶分開(kāi),將角色作為一個(gè)中間層,用戶與角色之間建立關(guān)系,角色與模塊權(quán)限之間建立關(guān)系,而用戶和模塊權(quán)限之間沒(méi)有直接的關(guān)系,未經(jīng)賦權(quán)的用戶將無(wú)法進(jìn)行越權(quán)操作。如某航運(yùn)公司具有發(fā)布船源信息、發(fā)布航線信息、發(fā)布船舶交易信息、發(fā)布招聘信息等權(quán)限,可根據(jù)上述權(quán)限建立航運(yùn)公司角色,賦權(quán)給所有航運(yùn)公司;再建立船舶中介公司角色,設(shè)置該角色權(quán)限為船源信息、貨源信息發(fā)布、船舶交易信息發(fā)布、船舶產(chǎn)品信息發(fā)布、發(fā)布人才招聘信息、發(fā)布求職信息等權(quán)限,并賦權(quán)給所有船舶中介公司。
2) 綜合信息的自動(dòng)獲取
本獲取方式采用了Java及多線程技術(shù),對(duì)任何互聯(lián)網(wǎng)指定的一個(gè)或多個(gè)網(wǎng)站進(jìn)行網(wǎng)絡(luò)探究,并通過(guò)網(wǎng)頁(yè)代碼分析、網(wǎng)頁(yè)層次探究、網(wǎng)頁(yè)鏈接分析等技術(shù)手段,最終將互聯(lián)網(wǎng)信息獲取并保存到系統(tǒng)數(shù)據(jù)庫(kù),具有速度快,效率高等特點(diǎn)。但是由于互聯(lián)網(wǎng)信息復(fù)雜多變,所以抓取效果不盡相同。在綜合信息的發(fā)布中,應(yīng)用了該技術(shù),將信息自動(dòng)從相關(guān)網(wǎng)站獲取,但由于格式受限,所有的信息都需要人工再次排版,校核,以確保對(duì)外發(fā)布美觀,正確。
3) 全文檢索技術(shù)
本項(xiàng)目運(yùn)作一段時(shí)間后,發(fā)布的信息內(nèi)容將越來(lái)越多,而全文檢索能夠讓用戶輸入檢索關(guān)鍵詞后,系統(tǒng)能快速返回給用戶在全范圍內(nèi)符合查找條件的記錄, 從而有效地利用資源,更好地滿足用戶需求[6]。本項(xiàng)目使用SQL Server Management Studio建立表的全文檢索,全文檢索要求唯一索引,故需要在相關(guān)表建立唯一聚集索引,通過(guò)開(kāi)發(fā)檢索存儲(chǔ)過(guò)程得到檢索結(jié)果集,返回給前臺(tái)的調(diào)用查詢頁(yè)面,并由前臺(tái)頁(yè)面進(jìn)行分頁(yè)[7]。而且全文檢索的性能的優(yōu)劣決定了用戶體驗(yàn)的優(yōu)劣,提高全文檢索的性能是目前最迫切的問(wèn)題,在本項(xiàng)目中該技術(shù)正處于開(kāi)發(fā)階段。
4) 系統(tǒng)安全技術(shù)
① 安裝一個(gè)功能強(qiáng)大的硬件防火墻可以有效防御外界對(duì)Web服務(wù)器的攻擊,還可通過(guò)安裝非法入侵監(jiān)測(cè)系統(tǒng),提升防火墻的性能,達(dá)到監(jiān)控網(wǎng)絡(luò)、執(zhí)行立即攔截動(dòng)作以及分析過(guò)濾封包和內(nèi)容的動(dòng)作,當(dāng)有入侵者攻擊時(shí)可以立刻有效終止服務(wù)。
② 數(shù)據(jù)庫(kù)服務(wù)器和Web服務(wù)器的分離,進(jìn)一步提高了系統(tǒng)的安全性,對(duì)外網(wǎng)只暴露web服務(wù)器,用戶只能通過(guò)Web服務(wù)器訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,而不能直接訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器。
③ 數(shù)據(jù)庫(kù)的自動(dòng)備份,對(duì)服務(wù)器上的數(shù)據(jù)自動(dòng)定期進(jìn)行備份是很重要的。網(wǎng)站的核心是數(shù)據(jù),數(shù)據(jù)一旦遭到破壞,后果不堪設(shè)想。數(shù)據(jù)庫(kù)的備份方案采用本地自動(dòng)備份和遠(yuǎn)程備份。
④ 防止SQL注入技術(shù)
目前部分網(wǎng)站沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,使應(yīng)用程序存在安全隱患,其中最容易忽略的問(wèn)題就是SQL注入漏洞的問(wèn)題。通過(guò)提交數(shù)據(jù)的JS正則驗(yàn)證可以屏蔽這一問(wèn)題,比如URL、表單等提交信息時(shí),通過(guò)一段防止SQL注入的過(guò)濾代碼即可防止出錯(cuò)信息暴露,或者通過(guò)轉(zhuǎn)向,當(dāng)系統(tǒng)出錯(cuò)時(shí)轉(zhuǎn)到一個(gè)提示出錯(cuò)的頁(yè)面等。
3 結(jié)束語(yǔ)
構(gòu)建一個(gè)基于云計(jì)算的航運(yùn)信息服務(wù)平臺(tái),該平臺(tái)圍繞船舶和水運(yùn)物流為主線,拓展到相關(guān)的船舶產(chǎn)業(yè)和服務(wù)中,使各個(gè)環(huán)節(jié)形成一個(gè)整體,各取所需,發(fā)揮所長(zhǎng),實(shí)現(xiàn)了各類客戶不同需求的無(wú)縫對(duì)接。
參考文獻(xiàn):
[1] 黃煙波,張紅宇,李建華. 基于Struts和Hibernate的J2EE架構(gòu)[J].計(jì)算機(jī)時(shí)代,2004(10):29-30.
[2] 孫宏彬,蘇長(zhǎng)齡. 基于 J2EE 三層結(jié)構(gòu)分布系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].齊齊哈爾大學(xué)學(xué)報(bào),2002,18(4).
[3] 孫衛(wèi)琴.Java網(wǎng)絡(luò)編程精解[M].北京:電子工業(yè)出版社,2007:150-154.
[4] 余敏.基于J2EE平臺(tái)的Web服務(wù)技術(shù)研究與實(shí)現(xiàn)[J].教育技術(shù)導(dǎo)刊,2009(4):122-123.
[5] 詹建飛.J2ME開(kāi)發(fā)精解[M].北京:電子工業(yè)出版社,2006.
[6] 岳中原.詞典與統(tǒng)計(jì)相結(jié)合的中文分詞的研究[D].武漢:武漢理工大學(xué),2010:23-41.
[7] 柴寶杰.中文自動(dòng)分詞若干技術(shù)的研究[D].秦皇島:燕山大學(xué),2007:33-47.