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

基于手機的圖書共享系統設計與實現

2017-06-19 19:32:03鐘愛青
現代計算機 2017年13期
關鍵詞:數據庫用戶系統

鐘愛青

(廣東省機械高級技工學校,廣州 510450)

基于手機的圖書共享系統設計與實現

鐘愛青

(廣東省機械高級技工學校,廣州 510450)

設計與實現一個手機圖書共享系統,便于學校師生圖書共享,用戶通過手機將自己不用的圖書共享出去,另外的用戶通過手機App查找自己附近位置的圖書并聯系圖書持有人借書,實現圖書資源共享。該系統基于移動互聯網實現方案,分為服務器端,手機端、業務邏輯集中在服務器端,手機端作為顯示媒介,服務器端實現基于集群的負載均衡以及分布式緩存,保證系統具有高可用性、高可靠性以及高性能。

共享圖書;移動互聯網;手機App

1 系統的背景與目標

目前,圖書越來越貴,而大部分學生看完之后就不會再看,最后是當成了廢紙賣掉或者扔掉,造成了資源的極大浪費,而有的學生卻因為資金不夠而看不到想要的書;而智能手機的迅速普及及手機App迅速發展,為兩者的結合互補提供了渠道。學生可以利用移動設備實現書本的流通,為學生在工作生活中提供一個最高效的共享平臺。

目標:搭建結構清晰、功能簡單、內容簡要、界面美觀的手機圖書共享系統。

2 用戶需求

用戶可以把自己的紙質書或者電子書和別人一起分享,分享越多信用分越高,同時可以指定借書費用,對于貴重的書可以收取一定的費用。用戶可以查到朋友或附近的人共享出來的圖書以及讀什么類型的圖書,互相借閱。用戶可以加入相同興趣的讀書群,和朋友一起討論圖書內容,交流心得。用戶可以邀請朋友加入共享圖書,只要加入的人越來越多,那么大家就可以擁有一個巨大的免費圖書館。用戶可以通過掃描ISBN條形碼,一鍵共享自己的圖書。

3 項目技術難點

LBS應用包含了海量的地理位置信息,對海量地理信息的查詢、處理、分析是LBS應用最基本最主要的技術問題。

傳統的關系型數據庫主要設計應用于企業系統,對于海量數據處理在性能與方便性上效果并不好。而隨著Google發表了專門用于大數據處理的非關系型數據庫BigTable的設計,市場上出現了許多優秀的直接支持地理位置操作的非關系型數據庫 (也就是NoSQL數據庫),經過多年的發展,它們已經具有了很高的性能及操作方便性,其中的佼佼者就是MongoDB。

對于基于位置信息的應用,關鍵功能是用戶可以查找基于某個位置一定范圍內的信息查詢,這樣的需求我們可以采用傳統的關系型數據庫技術,也可以采用先進的非關系型數據庫技術。

以關系型數據庫MySQL為實現例子,我們只需要寫一條SQL就可以實現:

但是該SQL使用了大量的函數計算,每條SQL的計算量都會非常大,也不能很好的利用數據庫緩存,在海量數據應用中,性能將會非常的差,對于用戶是非常糟糕的體驗。

而MongoDB在設計時就已經考慮到大數據及地理位置處理的特點,所以MongoDB在底層上就支持大數據查詢分析,支持地理位置索引,在底層API內置了用于地理位置的查詢及距離計算;同時,作為非關系型數據庫,MongoDB還擁有高性能,支持復雜查詢,支持完全索引,支持集合存取等特性,即使不應用于地理位置處理,也可以用于大型的數據庫應用系統。

以MongoDB為例子,我們要實現上面的功能,只需要調用MongoDB的一個內置命令就可以得到我們想要的結果:

db.runCommand(command)是一個工具方法,用于執行數據庫的命令,command表示數據庫的一個命令,在我們的例子中,command就是 {geoNear:"books", near:[113.360137,23.161534],num:100},表示查詢在[113.360137,23.161534]位置的最多100本圖書。返回結果是一個數據集,包含了圖書信息等,默認按距離由近到遠排序。因為geoNear是MongoDB內置于用于地理位置處理的函數,在性能上已經做了優化,所以該查詢效率非常高,在大型應用下也有非常好的效果。

MongoDB還有很多其他功能用于支持地理位置信息處理,如geointersect,geowithin,near等。

例子1,查詢指定位置的圖書,并按距離排序:

有兩個命令可以用:$near或$nearSphere,兩個命令的操作方法一樣,需要傳入指定的地理空間坐標,返回坐標范圍內的圖書,不同的是$nearSphere返回的范圍是球面,而$near是正方形。

操作如下:

該結果表示返回坐標[113.360137,23.161534]附近的100個圖書信息,然后按照距離從近到遠排序。如果不指定返回數量,默認返回100條信息,如果要指定數量,則使用limit條件指定。如:

也可以指定查詢的空間最大距離 ,使用條件$maxDistance指定,如:

> db.books.find ({'coordinate':{$near:[113.360137, 23.161534],$maxDistance:30}})

例子1,查詢指定位置的圖書,并按距離排序,并顯示距離:

我們可以使用例子1的結果然后再計算距離,但是需要計算多一次,如果用$geoNear查詢則可以一次返回結果,$geoNear與$near功能更強大,提供了更多的參數,也返回了更多的信息。如:

該方法返回的結果包含了更多的詳細信息,如時間、數量、距離等,例如results中的dis,它表示了與目標坐標的距離。

4 設計方案

與一般的企業系統一樣,手機App也遵循通用的軟件設計原則,如最基本的三層架構設計原則:數據層、業務層、展示層,分別代表了對數據的不同處理方式:數據存儲,數據加工,數據顯示。數據層是最核心的一層,因為它是數據存取的地方,是整個系統的核心資產,是連接底層數據庫與業務層的渠道;業務層是系統的邏輯,將數據層取得的數據按照用戶期望的邏輯加工處理,然后提交給展示層顯示;展示層是直接面對用戶的地方,它將業務層加工好的數據展示在用戶界面上,展示層的質量代表了整個系統的質量。

(1)數據層

數據層是數據存取的地方,主要任務就是與關系型數據庫或者NoSQL數據庫或者文件服務器打交道,保存用戶提交的數據或文件,返回用戶請求的數據或文件給業務層,考慮到用戶的請求量非常巨大,而大部分數據庫處理能力有限,所以加上緩存模塊非常有必要。數據庫數據是存放于硬盤,而緩存一般存放于內存中,因為內存讀寫速度遠遠快于硬盤,當前內存也已經相當便宜,所以使用內存作為緩存模塊非常適合。如下圖1:

圖1 總體架構圖

業務層向數據層請求數據時,數據層首先將請求的參數轉成一個關鍵字,然后根據關鍵字去緩存模塊中查找數據,如果命中(即查到),則返回緩存的數據給用戶,如果沒有命中,則去數據庫抓取數據,并將結果數據作為值,請求參數作為關鍵字存入緩存模塊中,然后返回結果數據給用戶。當然,并不是所有數據都要緩存,緩存只適用于很少變動的數據,對于經常變動的數據,緩存并沒有效果,還會因為寫入緩存的次數增多給系統造成新的負擔,不同的緩存數據可以設置不同的緩存有效期,基本不變的數據的緩存期可以設置長一些,變動相對頻繁的則可以設置短一些。

(2)業務層

業務層體現了系統的邏輯,它將數據層取得的數據按照用戶期望的邏輯加工處理,然后提交給展示層顯示給用戶。業務層一般以接口的方式暴露給展示層調用,由接口以HTTP/HTTPS的方式在網絡中暴露出來,所以業務層需要考慮到安全的設置,確保接口的調用只能由已經認證的請求者調用。

(3)展示層

展示層也就是我們通常所說的UI,由于它直接面對用戶,一個UI的質量一定程度上代表了App的質量,一個好的UI會吸引用戶使用,相反,一個界面難看,操作不友好的UI,用戶基本不會用。展示層調用業務層的接口,包括請求數據與保存數據。它是整個App展最復雜的一層,要考慮界面的美觀,操作的友好性,手機與平板的界面布局,不同屏幕大小的適配等。展示層調用業務層的接口必須是異步回調,不能使用UI主線程,因為網絡等不同原因,獲取或保存數據可能是一個比較耗時的操作,如果用線程同步的方式,必然會阻塞UI主線程,也就是我們常見的界面卡死問題。展示層還需要考慮網絡狀態,根據網絡狀態采用不同的處理方式。如果用戶請求數據時,網絡已經不可用,則需要向用戶提示網絡不可用,如果在展示層有做數據緩存,則可以用之前緩存的數據展示給用戶;保存數據時也一樣,可以提示網絡不可用,數據不會保存,或者先將數據保存到手機緩存上,等網絡可用時,再提交數據到業務層保存。

如圖2所示,系統包括前端App和服務器端Web服務兩個部分,App主要用iOS,Web服務用RESTful WebService框架。

圖2 系統開發框架

iOS開發需要使用蘋果公司提供的Xcode開發工具及SDK,同時還需要在蘋果開發者網站開通開發者帳號。使用Xcode工具及Object-C語言就可以調用SDK提供的各種UI控件及API。

RESTfulWebService是一種輕量級的網絡服務開發框架,它完全基于HTTP協議實現,不需要額外的傳輸協議,還可以利用緩存來提高速度,在性能、效率和易用性上都優于其他網絡服務。RESTfulWebService是基于URL的,一個URL代表了一個資源,對URL的調用即是對業務層接口的調用。返回結果一般有純文本,JSON,XML,通常用的是JSON,因為相比于XML,JSON有體積小的優點,相比于純文本,JSON是一個格式化文本,可以更好地讀寫。

表1 書本信息

表3 書本預約信息

表2 書本圖片

表4 用戶信息

表5 用戶書本記錄

表6 用戶信用記錄

下面圖3-圖8為各個頁面效果圖。

圖3首頁效果圖

圖4 出借頁面

圖5 圖書信息頁面

圖6 借書頁面

圖7 搜索頁面

圖8 信用頁面

[1]徐凱.跨終端Web.電子工業出版社,2014.

[2](美)奎文(Cravens,J.),巴特福德(Burtoft,J.).HTML5敏捷實踐.電子工業出版社,2013.

Design and Im p lementation of a Book Sharing App Based on Phone

ZHONG Ai-qing
(Guangdong Machinery Technician College,Guangzhou 510450)

Design and implements a book sharing App which aims to share books between students or teachers.Users can share the book they don't need any more with the App easily,other users can find the book with LBS search function in the App and borrow the book with few steps.The system is based on themobile Internet,and includes server sidemodule,mobile App module.Server side serves as business center and mobile App serves as user interface.Server sidemodule implementswith load balance cluster and distributed cache and with abilities of high availability,high reliability aswell as high performance

鐘愛青(1984-),女,本科,中級職稱,研究方向為計算機科學與技術

2017-01-17

2017-05-01

1007-1423(2017)13-0071-06

10.3969/j.issn.1007-1423.2017.13.017

Book Sharing;Mobile Internet;Phone App

猜你喜歡
數據庫用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 99视频精品全国免费品| 亚洲精品高清视频| 国产亚洲精品在天天在线麻豆| 狼友视频一区二区三区| 日韩在线第三页| 久久婷婷色综合老司机| 亚洲国产日韩在线成人蜜芽| 国产91小视频| 国产一二三区在线| 色综合天天综合| 久久综合一个色综合网| 国产成熟女人性满足视频| 国内视频精品| 超碰aⅴ人人做人人爽欧美 | 成人免费午夜视频| 日本午夜三级| 亚洲无码四虎黄色网站| 国产凹凸一区在线观看视频| 日韩午夜福利在线观看| 毛片大全免费观看| 米奇精品一区二区三区| 五月激情婷婷综合| 成人午夜久久| 亚洲精品高清视频| 亚洲第一成年网| 亚洲国产欧洲精品路线久久| 国产成人三级在线观看视频| 亚洲精品无码高潮喷水A| 99爱在线| 亚洲精品卡2卡3卡4卡5卡区| 99久久这里只精品麻豆| 又爽又大又光又色的午夜视频| 久久综合干| 高清色本在线www| 丁香六月激情婷婷| 制服无码网站| 精品视频在线观看你懂的一区| 亚洲一区二区在线无码| 人人爱天天做夜夜爽| 久久国产高清视频| 国产成人精品一区二区不卡| 91久久大香线蕉| 国产成人你懂的在线观看| 国产微拍精品| 亚洲精品老司机| 色综合手机在线| 伊人激情综合网| 综合色在线| 欧美a在线看| 亚洲不卡av中文在线| 中文字幕1区2区| 日本人又色又爽的视频| 99热这里只有免费国产精品| 97se亚洲综合在线韩国专区福利| 久久精品国产亚洲麻豆| 国产精品亚洲欧美日韩久久| 亚洲成人播放| 日本精品αv中文字幕| 国产凹凸视频在线观看| 国产区人妖精品人妖精品视频| 天天躁夜夜躁狠狠躁躁88| 国产成年女人特黄特色毛片免| 91亚瑟视频| 一级爱做片免费观看久久| 天天色综合4| 欧美亚洲综合免费精品高清在线观看| 青青青伊人色综合久久| 国产真实乱子伦视频播放| 亚洲伊人电影| 国产欧美日韩视频一区二区三区| 国产一区二区三区在线观看视频| 91小视频在线播放| 青草视频在线观看国产| 国国产a国产片免费麻豆| 亚洲国产精品无码久久一线| 欧美激情伊人| 中文字幕亚洲综久久2021| 精品91视频| 国产超碰一区二区三区| 亚洲黄色成人| 欧美国产视频| 午夜欧美理论2019理论|