999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MongoDB的移動信息分享平臺①

2016-06-15 03:50:46王振鐸王振輝王紅剛陳綏陽西安思源學院電子信息工程學院西安700西安翻譯學院工程技術學院西安700西安交通大學信息科學系西安7004
計算機系統應用 2016年4期

王振鐸,王振輝,王紅剛,陳綏陽,(西安思源學院 電子信息工程學院,西安 700)(西安翻譯學院 工程技術學院,西安 700)(西安交通大學 信息科學系,西安 7004)

?

基于MongoDB的移動信息分享平臺①

王振鐸1,王振輝2,王紅剛1,陳綏陽1,3
1(西安思源學院 電子信息工程學院,西安 710032)
2(西安翻譯學院 工程技術學院,西安 710021)
3(西安交通大學 信息科學系,西安 710043)

摘 要:目前應用系統已經由PC轉移到移動設備上,高校正處于建設智慧校園的高峰期.急需構建基于移動設備的信息分享平臺.在數據庫選擇上選擇NoSql數據庫中的Mongodb作為數據存儲數據庫,根據高校的特點,設計并實現了一個信息分享平臺.實際應用表明,該平臺操作簡便、運行穩定,方便了師生的使用.

關鍵詞:信息分享; MongoDB; Andriod; 移動

隨著微信、微博等一系列移動應用的推廣,人們對移動互聯網有了更深入的認識.手機不再是一個傳統單一的打電話、發短信的工具.它可以解決工作和生活中的任何問題.人們的工作、生活、娛樂正在從PC互聯網向移動互聯網過度.大多數高校都加快了智慧校園的建設工作.這一舉措無疑加快了高校網絡設備和電腦等設備的更新換代.為師生提供了良好的硬件設施.但其上運行的是大多是教學和行政辦公系統,缺乏具有高校特色的應用.筆者查閱文獻發現,還沒有基于移動設備的高校信息分享平臺.為此,在我校智慧校園建設的基礎上,開發了該平臺.

1 系統概述

系統的建設目標是為全校人員提供了一個交流的平臺,學校的領導、各職能部門、教師和學生,均可以利用此平臺發布消息、通知以及新聞.教師和學生可以隨時掌握學校、班級的各種信息、以及學校周邊的生活環境.系統功能結構圖如圖1所示.

(1)登錄注冊: 為了方便系統的維護和管理,系統有注冊和登錄的功能.

(2)發布新聞: 系統中的用戶可以隨時、隨地發布自己的所見所聞,平臺上的用戶隨時可以查閱.

(3)發表評論: 新聞信息發布后,其他閱讀者可以發表自己的見解和想法.

(4)添加好友: 平臺針對高校,應體現信息共享的優勢,所以,在新聞發布的過程中,可以隨時將朋友加入到平臺中.

(5)直接撥號功能: 根據用戶注冊時提供的電話,系統提供直接撥號通話功能.

(6)即時聊天功能: 文字交流功能,類似聊天工具.

(7)周邊信息查詢: 為入學新生提供學校周邊信息查詢的功能,使他們盡快熟悉學校周邊的各種信息.

(8)照片上傳: 發布信息可以上傳照片,使系統的功能更加擴展.

圖1 系統功能結構圖

該系統的開發的軟件環境是,如表1所示.

表1 系統開發環境

2 系統的體系結構設計

為了充分發揮客戶端的處理能力、增強用戶體驗,系統采用C/S架構,這中結構的優點是很多工作可以由客戶端處理后再提交給服務器.本系統的客戶端安裝在Android智能手機中,負責與用戶交互,用戶有什么請求,可以通過操作客戶端程序來實現,程序會根據用戶的操作來判斷用戶的請求,判斷完成后會自動向服務器發送請求.當服務器收到客戶端的請求后,首先判斷用戶的請求類型,再做相應處理,將處理結果返回給客戶端,客戶端在將服務器返回的結果顯示給用戶.

2.1客戶端(Android端)架構設計

客戶端發送請求,服務器收到請求之后,將數據封裝到響應對象中,接收請求數據.

在Android技術中適合這項工作的有兩個技術:一個是在Activity中開辟一個子線程,通過子線程來發送請求,但是這種方式的不足之處在于,此時的子線程必須要一個開辟它的Activity對象才可以.而當界面不存在的時候,Activity對象也將出棧,也就是說Activity對象不存在,若發生這種情況,就無法接收網絡請求數據了.在這種情況下,就必須采用Android組件Service來完成這項工作.Service不依賴任何對象,它是完全獨立存在的,就算Activity對象不存在,它也可以照常工作.

但Android中Service組件是獨立存在的,如何才能把Activity和Service聯系起來呢?Android提供了另一種機制,Broadcast,利用Broadcast就可以在Activity和Service之間傳遞數據,這樣一來就可以將用戶在Activity上的操作類型傳遞到Service中,在通過服務向服務器發送請求,此時就可以將服務器傳回來的數據通過廣播帶到Activity中并顯示的客戶端界面上.客戶端架構如圖2所示.

圖2 Android總體架構

2.2服務器端架構設計

服務器端的開發采用分層的思想[1].服務器端的核心是控制層,客戶端發送的Request請求,由Servlet攔截,控制層通過調用后臺處理模塊,實現請求所需的業務功能,然后將Response響應結果返回給客戶端.服務端的總體結構后有以下層次組成: 控制層、業務層、數據庫層.其中,控制層,控制頁面數據的流向,用Servlet實現.業務層,實體層和數據訪問層,用JavaBean實現.數據庫層,是永久保存數據的地方,用MongoDB實現.服務器端架構如圖3所示.

圖3 服務器端架構

3 MongoDB選擇依據

MongoDB是一個高性能、開源、模式自由(schema-free)的文檔型數據庫,是云計算平臺中NoSql數據庫用的較多的一個[1].它在許多場景下可用于替代傳統的關系型數據庫,具有以下特性:

(1)跨平臺: MongoDB服務端可運行在Linux、Windows等平臺上,支持32位和64位應用,默認端口為27017.最好運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB.

(2)高效的傳統存儲方式: 支持二進制數據及大型對象(如照片或圖片).

(3)面向集合的存儲: 適合存儲對象及JSON形式的數據.

(4)支持豐富類型的數據存儲.

以上三個特性,使其非常適合大數據的要求,具備網站實時數據存儲所需的復制及高度伸縮性[2].同時,它可以非常適合存放大尺寸,非重要價值的數據,非常適合互聯網上數據的存儲.其它基于手機信息共享系統大多采用MySql關系數據庫系統,筆者首次采用云計算環境下的MongoDB數據庫作為信息共享平臺的后臺數據庫.

4 數據庫設計

為了提高系統的性能,本系統的數據庫由服務器端的數據庫和Android客戶端數據庫兩部分構成.其中服務器端采用MongoDB,客戶端采用SQLite數據庫,以下是具體的設計:

4.1服務器端數據庫設計

服務器端數據庫包括以下10張數據表:

(1)用戶表: (用戶編號,昵稱,姓名,手機號碼,密碼,性別,年齡,頭像編號,電子郵件,個性簽名,個人簡介);

(2)頭像表: (頭像編號,頭像狀態,頭像地址);

(3)好友關系表: (甲用戶編號,乙用戶編號,);

(4)新聞信息表: (新聞編號,用戶編號,新聞文字信息,發布時間,點贊次數,經度,信息,緯度信息,發布時所在地址信息);

(5)新聞評論表: (評論編號,新聞編號,用戶編號,評論的文字信息,評論時間,點贊次數);

(6)圖片表: (圖片編號,新聞編號,商品編號,商品評論編號,圖片地址);

(7)餐廳信息表: (餐廳編號,餐廳名稱,餐廳簡介,頭像編號,聯系電話,聯系人姓名,餐廳地址,經度信息,緯度信息);

(8)商品表: (商品編號,餐廳編號,商品名稱,商品原價,商品現價,商品總數,評分,添加時間);

(9)訂單表: (訂單編號,商品編號,用戶編號,餐廳編號,價格,完成狀態,下單時間);

(10)商品評論表: (商品評論編號,用戶編號,評論文字,評分,評論時間)

4.2Android客戶端數據庫設計

Android端的數據庫與服務端的數據庫的區別在于,服務端存儲的是所有的數據,而Android本地數據庫(SQLite)[3],只保存用戶的個人數據.

這樣做的優點在于能夠提高用戶體驗.試想上網速度不穩定時,當啟動程序,從遠程的服務上讀取信息,可能是字符信息,也可能是二進制信息,有時會等很久,服務器才有響應,在這種情況下,數據沒有回來之前,用戶是什么都看不到的,即界面上什么也沒有,為了避免這種情況,保證用戶在服務器有無響應的情況下,用戶界面能夠正常顯示,我們設計了本地數據庫,將上一次的數據先存儲到本地,在啟動程序的時候,先從本地獲取數據,這樣速度加快了,用戶幾乎感受不到延遲現象,當遠端服務的實時數據傳回之后,將實時數據顯示的界面上,這樣效果就更好.

經過分析,需要將以下信息保存在本地數據庫,分別是:

(1)新聞信息表: (序號,新聞編號,用戶編號,新聞文字信息,發布時間,點贊次數,經度,信息,緯度信息,發布時所在地址信息);

(2)聯系人表: (序號,用戶編號,昵稱,姓名,手機號碼,密碼,性別,年齡,頭像編號,電子郵件,個性簽名,個人簡介);

(3)聊天記錄表(序號,用戶1編號,用戶2編號,發送者編號,文字內容,圖片地址,時間).

5 關鍵技術

5.1Json格式數據的解析與封裝

JSON是一種輕量級的數據交換格式[4].它基于JavaScript的一個子集.JSON采用完全獨立于語言的文本格式,使用了類似于C語言家族的習慣.這些特性使JSON成為理想的數據交換語言.系統中MongoDB數據采用的是JSON格式存儲,原因是JSON格式數據的傳輸性能好,而且有利于Android客戶端的接收和解析.以下給出解析和封裝的例子,以Java語言為例,假設Json格式如下:

說明: 代碼中Gson是谷歌提供的一個類,Gson是 Google 提供的用來在 Java 對象和 JSON 數據之間進行映射的 Java 類庫[5].可以將一個 JSON 字符串轉成一個 Java 對象,反之亦然.

5.2頭像的拍攝選取裁剪

本系統的登錄功能,允許用戶添加頭像標志,在朋友圈中,大多使用自己的照片,但照片或用手機隨機拍攝的個人照太大,不能作為登錄的圖像標志,這時就需要對照片進行裁剪,使其滿足頭像的尺寸要求,故本系統中,筆者自行編寫了一個頭像選取裁剪程序,代碼如下:

5.3基于LBS的定位與反地址編碼

系統的周邊信息查詢功能,需要對地址進行定位和反地址編碼[6],該功能實踐步驟如下:

1)申請密鑰

下面為申請密鑰的地址,在此就不在贅述.

http:.lbsyun.baidu.com/apiconsole/key

2)添加必備jar包,如下圖4所示.

圖4 jar包圖

3)配置清單文件添加開發秘鑰

同時需要添加所需權限,這里就不贅述了.

4)核心代碼

6 系統測試

為了保證系統的正常使用,對系統進行了測試,系統的測試環境如下:

(1)服務器環境:系統:Windows 7硬件: 4G內存、雙核CPU主頻2.2GHz、500G硬盤

(2)軟件環境:

Eclipse IDE for Java EE Developers、tomcat7.0、MongoDB2.6

(3)Android手機:系統: Android 4.4.2

硬件: 1G內存、四核CPU、主頻1.3GHz、8GSDcard

同時,經過詳細的系統測試,各功能均能夠正常使用,界面響應操作流暢,證明系統的可操作性、性能均達到了預期要求.

在測試過程中,我們關注了功能和性能兩個部分,二者中最重要、最關鍵的是系統的性能.這里我們用常用的關系數據庫Mysql和本系統采用的MongoDB數據庫以新聞表為例進行了測試和比較.測試數據定為1億條,在插入數據時,MongoDB執行速度0.058秒,Mysql執行速度0.153秒,效率遠遠低于MongoDB數據庫,而在查詢性能上,MongoDB的速度約為0.003秒,也是遠遠高出Mysql數據庫3倍左右時間的.

該實驗證明,此共享平臺選擇MongoDB數據庫以及采用的開發技術是正確的.

7 結語

本文應用多種新技術開發一個基于Android的移動信息分享平臺,主要技術有Java、服務器技術、MongoDB數據庫、Http協議、Android開發相關技術,以及基于百度的LBS定位和反編碼等.系統具有技術新、功能全面、操作簡便等特點,可以滿足移動信息共享的需求,經過系統測試,證明系統具有一定的先進性,并具有實際的應用價值.但本系統仍有功能拓展的空間,同時數據的安全性在后期使用中,需要進一步加強[6].

參考文獻

1于源,王寧,胡剛,邵珂珂.基于Qt和ARM的無線點菜系統的設計與開發.數字技術與應用,2015,(1):158–159.

2邸錚.MongoDB在煤炭行業GIS數據存儲方面的應用.煤炭技術,2013,32(4): 200–202.

3嚴霄鳳,張德馨.大數據研究.計算機技術與發展,2013,(4): 168–172.

4曹宇,陳海峰.基于JSON、JavaScript、HTML5和前端存儲技術的均衡運算框架.實驗室研究與探索,2014,(5):116–119.

5沈美,于翔.淺析在Android系統中JSON和GSON的用法.電腦編程技巧與維護,2014,(24):81–83.

6陳偉鶴,李文靜,朱江.基于社交網絡好友攻擊的位置隱私保護模型.計算機工程與科學,2015,(4):692–698.

Mobile Information Sharing Platform Based on MongoDB

WANG Zhen-Duo1,WANG Zhen-Hui2,WANG Hong-Gang1,CHEN Sui-Yang1,3
1(School of Electronic & information,College of Siyuan,Xi’an 710038,China)
2(School of Technology and Engineering,Xi’an Fanyi University,Xi’an 710105,China)3(School of Information and Science,Xi’an Jitong University,Xi’an 710049,China)

Abstract:At present,the application system has shifted from PC to mobile devices,and the university is in the peak period of building the wisdom of the campus.It is in urgent need of building information sharing platform based on mobile devices.At first,MongoDB is chose to store data.According to the characteristics of the University,an information sharing platform is designed and implemented.Practical application shows that the system has the advantages of simple operation,stable running,convenient using for the teachers and students.

Key words:information sharing; MongoDB; Andriod; mobile

基金項目:①陜西省教育廳自然科學研究課題(14JK2087)

收稿時間:2015-07-29;收到修改稿時間:2015-09-16

主站蜘蛛池模板: 亚洲色精品国产一区二区三区| 一级做a爰片久久毛片毛片| 亚洲成在人线av品善网好看| 久久美女精品国产精品亚洲| 国产色伊人| 国产青榴视频在线观看网站| 免费国产福利| 在线另类稀缺国产呦| 色偷偷综合网| 国产微拍一区| 一级爱做片免费观看久久| 亚洲欧美另类日本| 国产伦片中文免费观看| 欧美区一区| 成人亚洲视频| 日本道综合一本久久久88| 波多野结衣第一页| 国产精品久久久久久影院| 久久这里只有精品2| 无码av免费不卡在线观看| 亚洲精品高清视频| 草草影院国产第一页| 欧美性天天| 97成人在线视频| 黄片一区二区三区| 国产大片喷水在线在线视频| 日本不卡在线播放| 爱做久久久久久| 99福利视频导航| 亚洲人成日本在线观看| 国产精品亚洲专区一区| 国产精品jizz在线观看软件| 亚洲成人动漫在线观看| 曰韩免费无码AV一区二区| 日韩欧美中文在线| 91亚洲视频下载| 手机成人午夜在线视频| 成人午夜网址| 欧美一级一级做性视频| 亚洲水蜜桃久久综合网站| 亚洲欧洲日韩综合| 欧美精品亚洲精品日韩专| 天天摸天天操免费播放小视频| 国产欧美视频在线观看| 午夜精品一区二区蜜桃| 国产成人av一区二区三区| 国产精品浪潮Av| 国产欧美视频综合二区| 免费无码又爽又黄又刺激网站| 一个色综合久久| 欧美国产日产一区二区| 国产亚洲欧美日本一二三本道| 97国产精品视频人人做人人爱| 综合色区亚洲熟妇在线| 波多野结衣一二三| 国产毛片久久国产| 玖玖免费视频在线观看| 欧美性天天| 亚洲综合二区| 伊人欧美在线| 欧美日韩资源| 91精品啪在线观看国产| 午夜国产不卡在线观看视频| 中文字幕波多野不卡一区| 国产91小视频| 欧美日韩va| 国产亚洲精品无码专| 国产对白刺激真实精品91| 国产剧情无码视频在线观看| 国产色伊人| 精品国产福利在线| 国产极品美女在线观看| 欧美不卡视频一区发布| 1024国产在线| AⅤ色综合久久天堂AV色综合| 一级不卡毛片| 亚洲 日韩 激情 无码 中出| 狂欢视频在线观看不卡| 国产一级做美女做受视频| 欧美全免费aaaaaa特黄在线| 天堂网亚洲综合在线| 九色视频最新网址|