• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Android智能手機(jī)的云服務(wù)應(yīng)用研究

      2013-10-10 01:56:42江燕良黃海于
      關(guān)鍵詞:服務(wù)器端分塊客戶端

      江燕良,黃海于

      (西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都610031)

      引 言

      隨著數(shù)字化和互聯(lián)網(wǎng)的飛速發(fā)展,特別是 Web2.0技術(shù)的發(fā)展,互聯(lián)網(wǎng)上的數(shù)據(jù)量呈現(xiàn)高速增長(zhǎng)的態(tài)勢(shì),導(dǎo)致互聯(lián)網(wǎng)數(shù)據(jù)處理能力相對(duì)不足;同時(shí)互聯(lián)網(wǎng)上存在著大量處于閑置狀態(tài)的計(jì)算設(shè)備和存儲(chǔ)資源,如果將其聚合起來統(tǒng)一調(diào)度和提供服務(wù),則可以大大提高利用率,讓更多的用戶從中受益。云計(jì)算就是基于這種考慮,通過虛擬化技術(shù)將資源進(jìn)行整合,形成龐大的計(jì)算與存儲(chǔ)網(wǎng)絡(luò),從而更好地為用戶服務(wù)[1]。隨著移動(dòng)終端的普及,將移動(dòng)終端和云計(jì)算相結(jié)合形成移動(dòng)云計(jì)算,可以很好地滿足用戶隨時(shí)隨地的資源訪問和事務(wù)處理的需求,同時(shí)也可以解決移動(dòng)終端在資源上不足的問題。移動(dòng)云計(jì)算的概念,就是利用云計(jì)算技術(shù)來解決移動(dòng)終端的存儲(chǔ)和數(shù)據(jù)處理等問題,幫助用戶擺脫硬件設(shè)備、存儲(chǔ)設(shè)備、應(yīng)用程序等條件的限制,將移動(dòng)終端應(yīng)用的“計(jì)算”從終端轉(zhuǎn)移到服務(wù)器端,從而弱化對(duì)移動(dòng)終端設(shè)備的處理要求[2]。

      Android系統(tǒng)是Google公司最新推出的移動(dòng)設(shè)備軟件平臺(tái),與其他Symbian、Windows Mobile手機(jī)操作系統(tǒng)相比,其源代碼完全開放,任何人和機(jī)構(gòu)都可以免費(fèi)使用。Android系統(tǒng)具有強(qiáng)大的應(yīng)用層API和豐富的傳感器接入功能,其開放的平臺(tái)有利于開發(fā)者開發(fā)出各類應(yīng)用軟件,是一個(gè)真正意義上的開放性移動(dòng)設(shè)備綜合平臺(tái),基于Android系統(tǒng)的研發(fā)己經(jīng)成為熱門的方向[3]。

      針對(duì)當(dāng)前老年人或兒童出現(xiàn)迷路或走失等危機(jī)情況的應(yīng)急處理等應(yīng)用需求,本文提出了一種云服務(wù)下基于Android移動(dòng)智能終端信息采集和處理的基礎(chǔ)架構(gòu)。該架構(gòu)基于手機(jī)云計(jì)算平臺(tái)Openmobster,將其部署在PC上作為服務(wù)器,利用周圍的無線網(wǎng)絡(luò)資源,使其與Android手機(jī)客戶端建立即時(shí)通信,根據(jù)平臺(tái)自身的推送和同步機(jī)制,實(shí)現(xiàn)數(shù)據(jù)的上傳和下發(fā)。該架構(gòu)使云計(jì)算真正的“落地”,實(shí)實(shí)在在地為手機(jī)提供服務(wù)。

      1 總體設(shè)計(jì)

      1.1 總體拓?fù)浣Y(jié)構(gòu)

      由于設(shè)計(jì)采用的測(cè)試環(huán)境是由無線路由器搭建的無線網(wǎng)絡(luò)環(huán)境,考慮到網(wǎng)絡(luò)覆蓋范圍的局限性,當(dāng)用戶從一個(gè)網(wǎng)絡(luò)區(qū)域移動(dòng)到另一個(gè)網(wǎng)絡(luò)區(qū)域時(shí),數(shù)據(jù)的交互會(huì)發(fā)生中斷,因此在不同的網(wǎng)絡(luò)區(qū)域都搭建Openmobster云服務(wù)器,即使手機(jī)跟之前的服務(wù)器連接發(fā)生了中斷,只需跟當(dāng)前的服務(wù)器重新建立連接,數(shù)據(jù)便從中斷處繼續(xù)上傳到當(dāng)前的服務(wù)器,最后只需把這些不同服務(wù)器端數(shù)據(jù)庫的數(shù)據(jù)匯總到一個(gè)統(tǒng)一的數(shù)據(jù)庫,需要時(shí)還可以下載到手機(jī)端查閱??傮w拓?fù)浣Y(jié)構(gòu)圖如圖1所示。

      圖1 總體拓?fù)浣Y(jié)構(gòu)

      1.2 總體架構(gòu)

      本文設(shè)計(jì)的基于Android平臺(tái)開發(fā)云應(yīng)用的基礎(chǔ)框架包含以下幾個(gè)主要部分:Mysql數(shù)據(jù)庫服務(wù)器、Openmobster云平臺(tái)、Web網(wǎng)頁服務(wù)器、Android手機(jī)客戶端和無線網(wǎng)絡(luò)。本設(shè)計(jì)采用了C/S模式和B/S模式相結(jié)合的方式,服務(wù)器主要采用Openmobster手機(jī)云平臺(tái)內(nèi)嵌的JBoss服務(wù)器,并將其與Mysql數(shù)據(jù)庫和Web網(wǎng)頁連接起來;客戶端采用安裝了云平臺(tái)客戶端的Android智能手機(jī)。云服務(wù)器端和手機(jī)客戶端根據(jù)云平臺(tái)自身的網(wǎng)絡(luò)通信機(jī)制,利用周圍的無線網(wǎng)絡(luò)資源,建立即時(shí)通信。然后通過Web網(wǎng)頁下發(fā)數(shù)據(jù)請(qǐng)求命令,用戶的手機(jī)客戶端接收并解析命令請(qǐng)求,將數(shù)據(jù)上傳到服務(wù)器端的數(shù)據(jù)庫??傮w架構(gòu)圖如圖2所示。

      圖2 總體架構(gòu)圖

      2 服務(wù)器端設(shè)計(jì)

      服務(wù)器端采用開源的Openmobster手機(jī)云平臺(tái)來搭建即時(shí)通信服務(wù)器,并根據(jù)系統(tǒng)的需要進(jìn)行了改進(jìn)和優(yōu)化。該平臺(tái)是一個(gè)向本地手機(jī)程序提供“云”服務(wù)的平臺(tái),它內(nèi)嵌了一個(gè)基于J2EE的開放源代碼的應(yīng)用服務(wù)器JBoss。在JBoss服務(wù)器啟動(dòng)后,可以通過PC的瀏覽器啟動(dòng)控制臺(tái)。JBoss的控制臺(tái)是個(gè)界面簡(jiǎn)陋的控制臺(tái),和其他商業(yè)化服務(wù)器的控制臺(tái)差別很大,一點(diǎn)都不直觀。因此考慮將控制臺(tái)改造成網(wǎng)頁的形式,這樣既方便用戶操作,而且界面也更直觀。

      為了在該平臺(tái)的服務(wù)器跟手機(jī)終端之間實(shí)現(xiàn)通信,需要在JBoss控制臺(tái)程序中新增一條命令,相應(yīng)地在服務(wù)器端也要新增處理這個(gè)命令的代碼,用控制臺(tái)發(fā)命令,讓服務(wù)器發(fā)Push消息給手機(jī)上的Service。服務(wù)器端的總體設(shè)計(jì)流程主要分為以下幾步:

      ① 對(duì)控制臺(tái)代碼進(jìn)行分析,找出控制臺(tái)的命令與類的對(duì)應(yīng)關(guān)系。

      ② 新增一個(gè)命令類,并且修改配置文件,使控制臺(tái)可以運(yùn)行新命令請(qǐng)求。

      ③ 在服務(wù)器端也新增了一個(gè)對(duì)應(yīng)控制臺(tái)新命令請(qǐng)求的類,繼承自MobileServiceBean,放在服務(wù)器端處理新增的命令請(qǐng)求。

      ④在服務(wù)器端建立一條Push通道。當(dāng)新增的命令請(qǐng)求類在收到命令時(shí)就會(huì)通過這個(gè)Push通道向手機(jī)上的Service發(fā)Push消息。

      ⑤ 將控制臺(tái)改造成網(wǎng)頁的形式來下發(fā)命令請(qǐng)求。

      ⑥ 手機(jī)客戶端處理完命令請(qǐng)求,將處理結(jié)果封裝上傳到服務(wù)器端的數(shù)據(jù)庫。

      3 客戶端設(shè)計(jì)

      客戶端的設(shè)計(jì)包括手機(jī)即時(shí)通信客戶端和Web即時(shí)通信客戶端。

      Web即時(shí)通信客戶端基于JavaEE,利用Openmobster云平臺(tái)的JBoss服務(wù)器對(duì)JSP網(wǎng)頁文件進(jìn)行熱部署,通過登錄到即時(shí)通信服務(wù)器端與手機(jī)客戶端進(jìn)行通信。

      在移動(dòng)互聯(lián)網(wǎng)中,Android智能終端通過WiFi或者GPRS連接到互聯(lián)網(wǎng)[4]。手機(jī)即時(shí)通信客戶端通過激活手機(jī)設(shè)備連接到服務(wù)器,然后以Java bean的傳輸協(xié)議形式,對(duì)協(xié)議進(jìn)行解析并執(zhí)行相應(yīng)的命令操作,最后再將處理的結(jié)果封裝成bean的對(duì)象在客戶端與服務(wù)器之間進(jìn)行傳輸。

      4 數(shù)據(jù)庫設(shè)計(jì)

      通常情況下用戶將自己的數(shù)據(jù)信息上傳到數(shù)據(jù)庫,其他用戶通過登錄數(shù)據(jù)庫的方式來共享數(shù)據(jù)信息。針對(duì)大文件的管理與共享,為了提高上傳和下載的效率,避免大文件上傳或下載失敗時(shí)將整個(gè)文件重新上傳或下載,實(shí)現(xiàn)了對(duì)文件的分割以及文件的合并操作。

      (1)文件分塊

      將一個(gè)較大的文件上傳到數(shù)據(jù)庫時(shí),上傳速度往往會(huì)受到網(wǎng)絡(luò)寬帶的影響。針對(duì)較大文件的保存與管理,對(duì)文件進(jìn)行分塊,根據(jù)網(wǎng)絡(luò)的帶寬設(shè)置文件塊的大小。

      (2)分塊文件上傳

      文件分塊上傳的時(shí)候,遍歷要上傳的文件所在的路徑,當(dāng)查找到要上傳的文件時(shí),根據(jù)文件分塊的大小,計(jì)算文件分割的塊數(shù)和最后一個(gè)文件塊的大小,從第一個(gè)文件塊開始上傳。當(dāng)文件在上傳的過程中由于網(wǎng)絡(luò)或者其他原因,使得服務(wù)器數(shù)據(jù)庫與客戶端的連接斷開,導(dǎo)致文件上傳中斷,在客戶端與服務(wù)器端數(shù)據(jù)庫重新建立連接后,需要續(xù)傳文件,這時(shí)就要通過上次上傳過程中記錄的文件路徑和名稱以及相應(yīng)的文件塊編號(hào),找到上次上傳文件的斷點(diǎn)。續(xù)傳文件時(shí),依然要遍歷文件所在的路徑,通過文件路徑和名稱找到對(duì)應(yīng)的文件,再使用文件塊的編號(hào)和文件塊的大小獲取下一次文件要上傳的位置。

      (3)分塊文件下載

      下載的時(shí)候根據(jù)相關(guān)的查詢條件,使用sql語句,根據(jù)文件編號(hào)、文件路徑、文件名稱、文件塊編號(hào)以及文件塊是否已經(jīng)下載等標(biāo)志查找符合條件的記錄。當(dāng)文件在下載的過程中由于網(wǎng)絡(luò)或者其他原因,使得服務(wù)器數(shù)據(jù)庫與客戶端的連接斷開,導(dǎo)致文件下載中斷,在客戶端與服務(wù)器端數(shù)據(jù)庫重新建立連接后,需要繼續(xù)下載文件,查詢條件不變,確保搜查出來的記錄是相同的,根據(jù)上次下載過程中標(biāo)記的文件路徑和名稱以及相應(yīng)的文件塊編號(hào),找到相應(yīng)斷點(diǎn)。將對(duì)應(yīng)的記錄繼續(xù)下載,直到所有的記錄下載完成。

      (4)分塊文件合并

      文件的合并是文件合并下載過程中的一部分,即每次下載某條記錄中的文件內(nèi)容時(shí),先判斷該文件塊屬于哪個(gè)文件。用戶根據(jù)文件名稱、文件路徑等信息查找自己需要的文件,如果存在符合條件的記錄,就依次訪問這些記錄,并將每條記錄中的文件內(nèi)容讀取出來,寫入相應(yīng)的文件中。所有記錄被訪問完的同時(shí),所有的文件分塊都被寫到了相應(yīng)文件中,即不會(huì)出現(xiàn)文件內(nèi)容的覆蓋問題,也不會(huì)額外的占用存儲(chǔ)空間。

      5 追蹤定位功能的實(shí)現(xiàn)

      老年人或小孩遇到迷路或走失等危急情況時(shí),通過遠(yuǎn)程控制的方式,向老人或小孩的手機(jī)發(fā)送指令,定位手機(jī)當(dāng)前的位置并顯示在地圖上,然后將位置信息截圖并上傳到服務(wù)器上,用戶便可以從服務(wù)器數(shù)據(jù)庫獲取老人或小孩的位置信息,幫助他們脫離危險(xiǎn)。該功能的設(shè)計(jì)處理流程如圖3所示。

      圖3 追蹤定位功能處理流程圖

      該功能的實(shí)現(xiàn)首先通過服務(wù)器端網(wǎng)頁下發(fā)控制指令并封裝,然后服務(wù)器端的相應(yīng)接口定時(shí)檢測(cè)數(shù)據(jù)對(duì)象是否發(fā)生更新,并將更新的數(shù)據(jù)對(duì)象推送給手機(jī)客戶端,手機(jī)客戶端接收并解析該對(duì)象,執(zhí)行相應(yīng)的指令操作。其次,對(duì)指令操作的結(jié)果進(jìn)行封裝并分塊,然后將其上傳到服務(wù)器端的數(shù)據(jù)庫。最后,將這些分塊的數(shù)據(jù)包下載并合并,提供給用戶。定位追蹤功能的實(shí)現(xiàn)流程如圖4所示。

      ① 用戶通過瀏覽器打開網(wǎng)頁,選擇需要下發(fā)的命令,然后輸入用戶名和密碼,點(diǎn)擊“確定”后調(diào)起JSP代碼。JSP代碼將網(wǎng)頁請(qǐng)求封裝的各功能選項(xiàng)字段取出,封裝進(jìn)一個(gè)數(shù)據(jù)對(duì)象中。

      ②在服務(wù)器端定義的用于下發(fā)的Channel會(huì)定期調(diào)用相關(guān)接口對(duì)上面的封裝數(shù)據(jù)對(duì)象進(jìn)行檢查,一旦發(fā)現(xiàn)有新插入的數(shù)據(jù),會(huì)通過對(duì)應(yīng)的接口取出該數(shù)據(jù),將其封裝到bean對(duì)象中,通過Openmobster推送給手機(jī)終端。

      ③ 終端這邊后臺(tái)模塊中的服務(wù)同樣建立了對(duì)應(yīng)云端Channel的處理,一旦收到Channel的下發(fā)通知,通過發(fā)送Intent的方式啟動(dòng)一個(gè)Activity[4],這個(gè)Activity在啟動(dòng)過程中可以通過bean的相關(guān)接口讀出對(duì)應(yīng)用戶名和通道下發(fā)的bean對(duì)象,通過bean的一些方法解析并獲取下發(fā)通知中的各功能項(xiàng)數(shù)據(jù)字段,調(diào)用Android平臺(tái)提供的各接口,完成對(duì)手機(jī)的遠(yuǎn)程控制功能。

      ④將遠(yuǎn)程控制處理的結(jié)果封裝到一個(gè)新的bean對(duì)象里,然后注冊(cè)一個(gè)用于上傳的Channel,對(duì)數(shù)據(jù)包進(jìn)行分塊處理,最終將所有分塊上傳到服務(wù)器的數(shù)據(jù)庫。

      圖4 定位追蹤功能實(shí)現(xiàn)流程圖

      ⑤ 從服務(wù)器下載并合并各個(gè)數(shù)據(jù)塊,獲取上傳到服務(wù)器的數(shù)據(jù)信息。

      6 實(shí)現(xiàn)結(jié)果

      本文通過對(duì)Openmobster手機(jī)云計(jì)算平臺(tái)的研究,結(jié)合Android智能移動(dòng)終端,設(shè)計(jì)了開發(fā)移動(dòng)云應(yīng)用的基礎(chǔ)架構(gòu),由于該平臺(tái)自身的限制,不能同時(shí)管理多個(gè)手機(jī)客戶端,基于此缺陷設(shè)計(jì)了一種拓?fù)浣Y(jié)構(gòu),在服務(wù)器側(cè)連接了Mysql數(shù)據(jù)庫,用于數(shù)據(jù)的存儲(chǔ)和管理,使不同的用戶將數(shù)據(jù)上傳到不同的服務(wù)器數(shù)據(jù)庫,最后再將這些數(shù)據(jù)匯總到一個(gè)數(shù)據(jù)庫服務(wù)器,達(dá)到數(shù)據(jù)共享的目標(biāo)。另外,通過對(duì)該平臺(tái)控制臺(tái)代碼的研究,將該平臺(tái)的控制臺(tái)改造成網(wǎng)頁的形式,極大地方便了服務(wù)器跟手機(jī)客戶端之間的交互操作。

      最后,利用該架構(gòu)實(shí)現(xiàn)了一個(gè)追蹤定位的應(yīng)用實(shí)例,不僅安全可靠,而且方便有效。最大程度地滿足了用戶的需求,更驗(yàn)證了該架構(gòu)具有極高的研究?jī)r(jià)值和意義。

      結(jié) 語

      本文設(shè)計(jì)的開發(fā)移動(dòng)云應(yīng)用的基礎(chǔ)架構(gòu),既具有傳統(tǒng)的C/S模式和B/S模式的優(yōu)異功能,同時(shí)又結(jié)合了最先進(jìn)的移動(dòng)“云”計(jì)算的設(shè)計(jì)理念。在服務(wù)器端使用了Openmobster手機(jī)云平臺(tái),該平臺(tái)的底層支持功能強(qiáng)大,為系統(tǒng)的通信連接,即數(shù)據(jù)的上傳與下發(fā),提供了良好的保障??蛻舳瞬捎肁ndroid手機(jī)平臺(tái),由于Android提供了豐富的接口,具有良好的可擴(kuò)展性[5]。但是不能忽視的是,設(shè)計(jì)目前還存在很多漏洞,比如平臺(tái)的數(shù)據(jù)同步算法、數(shù)據(jù)上傳的效率等問題。這些漏洞和不足,將會(huì)是筆者以后繼續(xù)研究的方向。

      [1]王鵬,董靜宜.一種云計(jì)算架構(gòu)的實(shí)現(xiàn)方法研究[J].計(jì)算機(jī)工程與科學(xué),2009,31(1):11-13.

      [2]江燕良.基于Android智能終端的遠(yuǎn)程控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(8):129-132.

      [3]姚顯星,劉衛(wèi)國.Android的架構(gòu)與應(yīng)用開發(fā)研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008(11):76-79.

      [4]耿東久,索岳,陳渝,等.基于Android手機(jī)的遠(yuǎn)程訪問和控制系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2011,31(2):559-561.

      [5]張京,劉甫迎.基于Android云計(jì)算消息框架(C2DM)的FoxNews_M(jìn)ID手持移動(dòng)系統(tǒng)的研究[J].計(jì)算機(jī)科學(xué),2011,38(10A):461-463.

      猜你喜歡
      服務(wù)器端分塊客戶端
      分塊矩陣在線性代數(shù)中的應(yīng)用
      縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      孵化垂直頻道:新聞客戶端新策略
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      反三角分塊矩陣Drazin逆新的表示
      基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
      在Windows中安裝OpenVPN
      基于多分辨率半邊的分塊LOD模型無縫表達(dá)
      客戶端空間數(shù)據(jù)緩存策略
      彭山县| 赫章县| 西安市| 滨海县| 黎平县| 桂林市| 博湖县| 偏关县| 商城县| 晋中市| 岳阳市| 清流县| 科技| 舟曲县| 黄龙县| 澄城县| 县级市| 北辰区| 长沙市| 塔河县| 綦江县| 寿宁县| 清水河县| 彰化县| 休宁县| 天水市| 胶州市| 涿州市| 丰台区| 那坡县| 靖西县| 中西区| 旌德县| 梅河口市| 新平| 山东| 伊川县| 兖州市| 政和县| 华池县| 泗水县|