項(xiàng) 佳,于寶成*
1.武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北武漢430205;2.智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室(武漢工程大學(xué)),湖北武漢430205
?
基于云數(shù)據(jù)庫(kù)的公共自行車管理軟件平臺(tái)
項(xiàng)佳1,2,于寶成1,2*
1.武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北武漢430205;
2.智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室(武漢工程大學(xué)),湖北武漢430205
摘要:針對(duì)公共自行車租、還不便,信息未及時(shí)反饋給工作人員以及用戶等問(wèn)題,提出了基于云數(shù)據(jù)庫(kù)的公共自行車管理軟件平臺(tái).該平臺(tái)包括管控終端,中心控制網(wǎng)關(guān)、數(shù)據(jù)監(jiān)控服務(wù)以及公共自行車管理系統(tǒng)四大模塊.公共自行車管理系統(tǒng)采用J2EE、Struts、Spring、Hibernate等框架來(lái)設(shè)計(jì),并在數(shù)據(jù)庫(kù)層采用云數(shù)據(jù)庫(kù)存儲(chǔ)的技術(shù)來(lái)管理和處理數(shù)據(jù).云數(shù)據(jù)庫(kù)將底層的關(guān)系型數(shù)據(jù)庫(kù)抽象成一系列的服務(wù)節(jié)點(diǎn),并給予定制的結(jié)構(gòu)化查詢語(yǔ)言進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn),同時(shí)云數(shù)據(jù)庫(kù)對(duì)外提供一個(gè)有效的統(tǒng)一資源定位符(URL),用戶通過(guò)這個(gè)URL可以很方便的訪問(wèn)云數(shù)據(jù)庫(kù),進(jìn)而實(shí)現(xiàn)租、還自行車的操作.研究表明將各個(gè)自行車站點(diǎn)的信息部署在云數(shù)據(jù)庫(kù)中來(lái)進(jìn)行統(tǒng)一的管理,可以有效地提高信息的訪問(wèn)效率,方便用戶租、還自行車,滿足系統(tǒng)的應(yīng)用需求.
關(guān)鍵詞:管控終端;云數(shù)據(jù)庫(kù);自行車管理系統(tǒng)
隨著“綠色出行,低碳環(huán)保”理念的深入人心,以及交通擁堵和環(huán)境污染等問(wèn)題越來(lái)越嚴(yán)重,公共交通尤其是公共自行車受到了人們的喜愛和贊譽(yù).公共自行車憑借其使用便捷、低碳環(huán)保、健身節(jié)能等諸多優(yōu)勢(shì),是解決城市交通“最后一公里”的最佳選擇,也是緩解城市交通擁擠、提高公共交通分擔(dān)率、減少私家車出行的一項(xiàng)行之有效的舉措.但是目前還存在公共自行車管理不合理及站點(diǎn)信息統(tǒng)計(jì)及更新滯后、管理人員不能及時(shí)了解到站點(diǎn)的具體信息等問(wèn)題,也不能將各個(gè)站點(diǎn)的信息進(jìn)行匯總、管理以及分析,這都影響了公共自行車的進(jìn)一步發(fā)展.
針對(duì)以上現(xiàn)狀,設(shè)計(jì)基于云數(shù)據(jù)庫(kù)的公共自行車管理軟件平臺(tái),該平臺(tái)是將云數(shù)據(jù)庫(kù)技術(shù)和大數(shù)據(jù)分析系統(tǒng)進(jìn)行集成,充分運(yùn)用J2EE的JSP、SSH框架等相關(guān)技術(shù)而開發(fā)出來(lái)的.通過(guò)該管理系統(tǒng),自行車以及鎖止器等幾部分的有機(jī)結(jié)合,構(gòu)建出來(lái)的公共自行車管理系統(tǒng)平臺(tái),使管理人員對(duì)自行車站點(diǎn)的管理,自行車的借還等操作更加便利與及時(shí).
云數(shù)據(jù)庫(kù)是部署和虛擬化在云計(jì)算環(huán)境中的數(shù)據(jù)庫(kù),由于每臺(tái)計(jì)算機(jī)都可以作為云數(shù)據(jù)庫(kù)中的一個(gè)存儲(chǔ)節(jié)點(diǎn),所以云數(shù)據(jù)庫(kù)不必花銷很大就可以大容量的存儲(chǔ)數(shù)據(jù)[1].云數(shù)據(jù)庫(kù)和傳統(tǒng)的分布式數(shù)據(jù)庫(kù)都是把數(shù)據(jù)放在不同的位置上,但相比較分布式數(shù)據(jù)庫(kù)而言,云數(shù)據(jù)庫(kù)則具有很好的可擴(kuò)展性,采用更加簡(jiǎn)單的數(shù)據(jù)模型、對(duì)元數(shù)據(jù)和應(yīng)用數(shù)據(jù)進(jìn)行了分離,使云數(shù)據(jù)庫(kù)在存儲(chǔ)和處理大量數(shù)據(jù)時(shí)具有很明顯的優(yōu)勢(shì).
2.1云數(shù)據(jù)庫(kù)的特點(diǎn)
用戶在使用云數(shù)據(jù)庫(kù)的時(shí)候,系統(tǒng)會(huì)屏蔽掉底層一些細(xì)節(jié)性的問(wèn)題,使用起來(lái)非常方便,就像在自己的計(jì)算機(jī)上操作本地的數(shù)據(jù)庫(kù)一樣,同時(shí)又能獲得本地計(jì)算機(jī)無(wú)法企及的存儲(chǔ)和處理能力.云數(shù)據(jù)庫(kù)具有如下的優(yōu)點(diǎn):1)可移植性:由于云數(shù)據(jù)庫(kù)采用云計(jì)算的技術(shù),所以很輕松能將數(shù)據(jù)庫(kù)從一個(gè)地方移到另一個(gè)地方. 2)高可用性:云數(shù)據(jù)存儲(chǔ)中某一個(gè)節(jié)點(diǎn)失效,也不會(huì)影響整個(gè)云數(shù)據(jù)庫(kù)的使用. 3)動(dòng)態(tài)可擴(kuò)展:可根據(jù)用戶的需求進(jìn)行無(wú)限制的存儲(chǔ)擴(kuò)展. 4)較低的使用代價(jià):用戶可以按照存儲(chǔ)容量和帶寬的需求付費(fèi)使用. 5)易用性:用戶不必知道數(shù)據(jù)庫(kù)的細(xì)節(jié),只需要獲得云數(shù)據(jù)庫(kù)服務(wù)提供商提供的一個(gè)有效的鏈接字符串就可以進(jìn)行對(duì)云數(shù)據(jù)庫(kù)的存儲(chǔ)和其他功能的使用[2].
2.2云數(shù)據(jù)庫(kù)的數(shù)據(jù)訪問(wèn)
云數(shù)據(jù)庫(kù)在使用時(shí),首先對(duì)用戶提供一個(gè)有效的URL,用戶可以通過(guò)這個(gè)URL訪問(wèn)當(dāng)前的云數(shù)據(jù)庫(kù),當(dāng)用戶請(qǐng)求訪問(wèn)云數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),實(shí)際上就是先向云數(shù)據(jù)管理系統(tǒng)請(qǐng)求一份分區(qū)映射圖,在用戶發(fā)送數(shù)據(jù)請(qǐng)求前,云數(shù)據(jù)管理系統(tǒng)里會(huì)存放著各個(gè)區(qū)域中的映射圖,而且每個(gè)區(qū)域的數(shù)據(jù)都對(duì)應(yīng)著一個(gè)特定的鍵值對(duì),系統(tǒng)根據(jù)用戶想要查找數(shù)據(jù)的鍵值在分區(qū)映射圖中找到自己所需數(shù)據(jù)的存儲(chǔ)位置,確定數(shù)據(jù)的存儲(chǔ)位置后,就可以向該區(qū)域的數(shù)據(jù)節(jié)點(diǎn)發(fā)送請(qǐng)求,最后,由該區(qū)域的數(shù)據(jù)節(jié)點(diǎn)把用戶所需的數(shù)據(jù)返回給用戶,用戶便得到了想要訪問(wèn)的數(shù)據(jù)[3].其數(shù)據(jù)訪問(wèn)如圖1所示.
圖1 云數(shù)據(jù)庫(kù)中的數(shù)據(jù)訪問(wèn)Fig. 1 Data access of cloud database
基于云數(shù)據(jù)庫(kù)的公共自行車管理軟件平臺(tái)主要由管控終端,中心控制網(wǎng)關(guān)、數(shù)據(jù)監(jiān)控服務(wù)以及公共自行車管理系統(tǒng)幾個(gè)部分組成.其總體架構(gòu)如圖2所示.管控終端通過(guò)RFID讀卡器采集自行車租借記錄以及每個(gè)用戶所持卡的信息,并對(duì)這項(xiàng)工作過(guò)程進(jìn)行控制,然后將數(shù)據(jù)發(fā)送給中心控制網(wǎng)關(guān).中心控制網(wǎng)關(guān)將收到的數(shù)據(jù)通過(guò)無(wú)線通信上傳到后臺(tái)服務(wù)器,將其給數(shù)據(jù)監(jiān)控服務(wù)進(jìn)行處理,存儲(chǔ)并更新數(shù)據(jù)庫(kù)中的數(shù)據(jù).而公共自行車管理軟件主要是相關(guān)工作人員對(duì)自行車借還信息,站點(diǎn)信息以及卡信息的管理.
圖2 公共自行車管理平臺(tái)的總體架構(gòu)圖Fig. 2 Overall structure diagram of management platform of public bicycle
管控終端通過(guò)管理終端和鎖止器對(duì)自行車的借還進(jìn)行管理與控制,其中鎖止器通過(guò)識(shí)別用戶卡的信息,來(lái)控制用戶借還自行車,它是用戶實(shí)現(xiàn)借還車輛的控制系統(tǒng),具有合法身份的用戶可在停車器上方便的借還車輛.與此同時(shí),管理終端還會(huì)根據(jù)系統(tǒng)的設(shè)置每隔一段時(shí)間間隔向中心控制的服務(wù)器發(fā)送自行車的租還記錄,方便管理人員及時(shí)進(jìn)行管理及調(diào)度.
中心控制網(wǎng)關(guān)實(shí)現(xiàn)上層和下層系統(tǒng)之間的數(shù)據(jù)交互,主要應(yīng)用TCP?IP網(wǎng)絡(luò)通信和串口通信,中心控制網(wǎng)關(guān)根據(jù)協(xié)議中相關(guān)字段的說(shuō)明,將數(shù)據(jù)按照協(xié)議規(guī)則在wifi和3G網(wǎng)絡(luò)中傳輸,使得中心控制網(wǎng)關(guān)、管控終端和管控中心之間的網(wǎng)絡(luò)連接暢通有序.
數(shù)據(jù)監(jiān)控服務(wù)主要是管控終端的數(shù)據(jù)進(jìn)行監(jiān)控,同時(shí)與云數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互,以及對(duì)各種網(wǎng)點(diǎn)進(jìn)行監(jiān)控,及時(shí)發(fā)現(xiàn)存在問(wèn)題的網(wǎng)點(diǎn).
公共自行車管理系統(tǒng)是對(duì)自行車借還、用戶卡信息管理、站點(diǎn)管理而開發(fā)的信息管理系統(tǒng).
基于云數(shù)據(jù)庫(kù)的公共自行車管理系統(tǒng)是基于B/S模式的信息管理系統(tǒng),系統(tǒng)采用SSH框架來(lái)實(shí)現(xiàn),使整個(gè)系統(tǒng)的層次分明,管理人員只需要登錄系統(tǒng)通過(guò)瀏覽器向服務(wù)器發(fā)出請(qǐng)求,核心的功能都會(huì)在服務(wù)器端實(shí)現(xiàn).
4.1系統(tǒng)模型
基于云數(shù)據(jù)庫(kù)的公共自行車管理系統(tǒng)包括卡管理、自行車管理、查詢統(tǒng)計(jì)、后臺(tái)管理、系統(tǒng)管理等功能.自行車管理提供添加、刪除站點(diǎn),查詢站點(diǎn)的租還車的情況,車丟失(損壞)登記,自行車入庫(kù)出庫(kù)管理等功能.卡管理提供售卡、充值、卡掛失、卡注銷、卡上鎖解鎖等功能.查詢統(tǒng)計(jì)提供卡充值記錄查詢、租還車記錄、某時(shí)間段的總收入支出的統(tǒng)計(jì)、單輛車租、還記錄查詢、統(tǒng)計(jì)所有車輛的租用次數(shù)、統(tǒng)計(jì)某一個(gè)站點(diǎn)車輛的租、還車次數(shù)等功能.后臺(tái)管理提供費(fèi)率設(shè)置、對(duì)某時(shí)間的營(yíng)業(yè)額的統(tǒng)計(jì)等功能.系統(tǒng)管理提供查看修改用戶信息、管理系統(tǒng)用戶權(quán)限等功能.系統(tǒng)功能模型如圖3所示.
圖3 系統(tǒng)功能模型圖Fig. 3 Function model diagram of system
4.2系統(tǒng)結(jié)構(gòu)
整個(gè)系統(tǒng)采用SSH三大框架來(lái)實(shí)現(xiàn),主要包括Struts實(shí)現(xiàn)的表示層,Spring實(shí)現(xiàn)的業(yè)務(wù)邏輯層,Hibernate實(shí)現(xiàn)的數(shù)據(jù)持久層以及數(shù)據(jù)庫(kù)相關(guān)操作的數(shù)據(jù)庫(kù)層.其結(jié)構(gòu)如圖4所示.表現(xiàn)層在Struts中實(shí)現(xiàn)JSP技術(shù)和標(biāo)簽庫(kù),ActionServlet和Action是struts業(yè)務(wù)邏輯控制層的核心組件,表示層提供程序與用戶之間交互的界面.業(yè)務(wù)邏輯層用于處理程序中的各種業(yè)務(wù)邏輯,是通過(guò)Spring實(shí)現(xiàn)的,也是整個(gè)系統(tǒng)邏輯的核心部分,既要與表示層交互,又要與數(shù)據(jù)持久層中的數(shù)據(jù)對(duì)象交互.數(shù)據(jù)持久層由Hibernate框架組成,與數(shù)據(jù)庫(kù)打交道,將關(guān)系數(shù)據(jù)庫(kù)映射成一個(gè)個(gè)的對(duì)象,使得系統(tǒng)操作數(shù)據(jù)庫(kù)更加方便.每一層都是相互獨(dú)立,通過(guò)一個(gè)通信接口而相互聯(lián)系.
圖4 系統(tǒng)結(jié)構(gòu)圖Fig. 4 Structure diagram of system
4.3系統(tǒng)實(shí)現(xiàn)
4.3.1表示層表示層是用Struts框架來(lái)實(shí)現(xiàn),它的核心是ActionServlet組件.當(dāng)用戶發(fā)送一個(gè)請(qǐng)求時(shí),利用ActionServlet將請(qǐng)求發(fā)給相應(yīng)的Action映射器,此時(shí),Action映射器查找所要調(diào)用的Action對(duì)象,并返回該對(duì)象的代理,然后Action代理將從配置管理器中讀取Struts的相關(guān)配置(struts.xml),當(dāng)Action處理請(qǐng)求后,將返回的結(jié)果通過(guò)JSP等網(wǎng)頁(yè)的形式顯示在瀏覽器中返回給用戶. ActionServ?let將在struts.xml客戶端配置文件基礎(chǔ)上實(shí)現(xiàn)輸入、處理和輸出[5].以用戶登錄注冊(cè)為例,當(dāng)用戶運(yùn)行用戶注冊(cè)頁(yè)面page-register.jsp,注冊(cè)頁(yè)面中的信息將被發(fā)送到控制器,根據(jù)配置文件信息,該控制器在MVC的商業(yè)模式中將創(chuàng)建一個(gè)JavaBean文件registerform.java. registerform.java是用來(lái)處理業(yè)務(wù)模式.登記成功后,系統(tǒng)將調(diào)用文件login.jsp登錄,否則,用戶應(yīng)重新注冊(cè).
4.3.2業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層在系統(tǒng)中負(fù)責(zé)所有的業(yè)務(wù)邏輯,它是表示層和數(shù)據(jù)持久層之間的中間層,它負(fù)責(zé)包裝由數(shù)據(jù)持久層提供的數(shù)據(jù)對(duì)象,同時(shí)它還為表示層提供功能接口.系統(tǒng)采用Spring框架來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯層,Spring中的Spring Core模塊是Spring的核心容器,它實(shí)現(xiàn)了IoC模式和Spring框架的基本功能,通過(guò)其中的BeanFacto?ry類負(fù)責(zé)配置與管理JavaBean.同時(shí),Spring中提供的DAO模塊,不僅提供了JDBC的抽象層,還提供了對(duì)聲明式和編程式事務(wù)的支持,使得業(yè)務(wù)邏輯層與數(shù)據(jù)持久層的交互大大簡(jiǎn)化了.
4.3.3數(shù)據(jù)持久層數(shù)據(jù)持久層主要使用了Hi?bernate框架來(lái)解決對(duì)象關(guān)系不匹配問(wèn)題,主要定義與數(shù)據(jù)庫(kù)交互的類和接口,由Java對(duì)象持久化類、Hibernate映射文件以及Hibernate配置文件組成,實(shí)現(xiàn)由對(duì)象(Object)到關(guān)系數(shù)據(jù)庫(kù)(Relational)的映射(Mapping).持久化類是操作對(duì)象,用于描述數(shù)據(jù)表的結(jié)構(gòu),Hibernate映射文件指定持久化類與數(shù)據(jù)表之間的關(guān)系,Hibernate配置文件用于指定Hibernate的屬性信息等,如數(shù)據(jù)庫(kù)的連接信息等. Hibernate封裝了數(shù)據(jù)庫(kù)的訪問(wèn)細(xì)節(jié),并一直維護(hù)著實(shí)體類與關(guān)系型數(shù)據(jù)庫(kù)中數(shù)據(jù)表之間的映射關(guān)系.業(yè)務(wù)邏輯層的業(yè)務(wù)處理可以通過(guò)Hiber?nate提供的API接口進(jìn)行數(shù)據(jù)庫(kù)操作,常用的接口有Configuration接口、Session接口、SessionFactory接口等,利用這些接口可以獲取到數(shù)據(jù)連接、對(duì)數(shù)據(jù)進(jìn)行持久化操作、HQL查詢等.
4.3.4數(shù)據(jù)庫(kù)層數(shù)據(jù)庫(kù)層采用MySQL作為數(shù)據(jù)庫(kù)服務(wù)器,主要存儲(chǔ)系統(tǒng)的應(yīng)用數(shù)據(jù).在數(shù)據(jù)庫(kù)層我們采用云數(shù)據(jù)庫(kù)的一些技術(shù)對(duì)各個(gè)網(wǎng)點(diǎn)的數(shù)據(jù)進(jìn)行統(tǒng)一的收集與管理,以便于數(shù)據(jù)共享和數(shù)據(jù)同步[6].系統(tǒng)先將自行車各個(gè)站點(diǎn)數(shù)據(jù)庫(kù)中收集的數(shù)據(jù),以站點(diǎn)為單位存儲(chǔ)在一個(gè)云數(shù)據(jù)庫(kù)中,采用鍵/值的數(shù)據(jù)模型,這樣每個(gè)分站點(diǎn)的數(shù)據(jù)庫(kù)便擁有一個(gè)指定的鍵/值,同時(shí)這些分站點(diǎn)的鍵/值對(duì)也形成了一張映射圖,通過(guò)這張映射圖,加上給用戶提供的一個(gè)有效的訪問(wèn)云數(shù)據(jù)庫(kù)的URL,用戶便可以很輕松的訪問(wèn)到云數(shù)據(jù)庫(kù)中所需要的數(shù)據(jù).
以上闡述了云數(shù)據(jù)庫(kù)的一些相關(guān)技術(shù)、云數(shù)據(jù)庫(kù)的優(yōu)勢(shì)及整個(gè)公共自行車管理平臺(tái),并詳細(xì)概述了基于云數(shù)據(jù)庫(kù)的公共自行車管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).系統(tǒng)在設(shè)計(jì)的過(guò)程中充分利用了SSH三大J2EE的框架,并在數(shù)據(jù)庫(kù)上采用云數(shù)據(jù)庫(kù)的技術(shù)進(jìn)行統(tǒng)一的管理,縮短了系統(tǒng)開發(fā)周期,實(shí)現(xiàn)代碼分離,提高了系統(tǒng)的可維護(hù)性和可重用性,具有良好的可擴(kuò)展性,并解決了數(shù)據(jù)的集中和共享問(wèn)題,便于管理.
參考文獻(xiàn):
[1]CHEN K,ZHENG W M. Cloud computing:System in?stances and current research[J]. Journal of software,2009,20(5):I227-I348.
[2]青欣,胥光輝,戢瑤,等.云數(shù)據(jù)庫(kù)應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(5):37-41. QING X,XU G H,JI Y,et al. Research on application of cloud database[J]. Computer technology and develop?ment,2013(5):37-41.
[3]林子雨,賴永炫,林琛,等.云數(shù)據(jù)庫(kù)研究[J].軟件學(xué)報(bào),2012(5):1148-1166. LIN Z Y,LAI Y X,LIN C,et al. Research on cloud da?tabases[J]. Journal of software,2012(5):1148-1166.
[4]周小華.無(wú)樁式公共自行車租賃系統(tǒng)的研究與實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2013.
[5]張銳麗,石云.基于Struts+Hibernate架構(gòu)的圖書信息管理系統(tǒng)研究[J].科技信息,2009(33):1128. ZHANG R L,SHI Y. Research on library information management system based on Struts and Hibernate architecture[J]. Scientific and technological informa?tion,2009(33):1128.
[6]何可.物聯(lián)網(wǎng)關(guān)鍵技術(shù)及其發(fā)展與應(yīng)用[J].射頻世界,2010(1):32-35. HE K. The key technology of IOT with development and application[J]. Radio frequency ubiquitous journal,2010(1):32-35.
本文編輯:陳小平
Management Software Platform of Public Bicycle Based on Cloud Database
XIANG Jia,YU Baocheng
1. School of Computer Science and Engineering,Wuhan Institute of Technology,Wuhan 430205,China;
2. Hubei Key Laboratory of Intelligent Robot(Wuhan Institute of Technology),Wuhan 430205,China
Abstract:Considering that the renting bicycle is not convenient and the information can not be conveyed to the staff and user timely,we constructed a software platform of public bicycle management system based on the cloud database. The platform is divided into four modules:control terminal,central control gateway,data moni?toring service,and management system of public bicycle. The public bicycle management system,designed by the framework of J2EE,Struts,Spring,and Hibernate,applies the cloud technology to manage and process data in the database layer. What's more,the cloud database abstracts the underlying relational database into a series of service nodes,which gives the customized structured query language for database access,and provides an effective uniform resource locator(URL),so the user can access the cloud database through the URL to achieve the aim of renting and returning the bicycle. The study indicated if we put the information of different bicycle rental sites in the cloud database to carry out a unified management,the efficiency of accessing informa?tion could be improved to some extent,which is more convenient for the user to rent and return bicycle,meeting the application requirement of the system.
Keywords:control terminal;cloud database;bicycle management system
*通訊作者:于寶成,副教授,博士. E-mail:75583105@qq.com
作者簡(jiǎn)介:項(xiàng)佳,碩士研究生. E-mail:904989536@qq.com
收稿日期:2015-10-21
文章編號(hào):1674 - 2869(2016)01 - 0093 - 05
中圖分類號(hào):TP275
文獻(xiàn)標(biāo)識(shí)碼:A
doi:10. 3969/j. issn. 1674?2869. 2016. 01. 017