2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p>  智能硬件阿里云服務(wù)器端應(yīng)用開發(fā)</p><p> 學(xué)院專業(yè)學(xué)生姓名學(xué)生學(xué)號(hào)指導(dǎo)教師提交日期軟件學(xué)院</p><p> 軟件工程</p><p><b>  摘 要</b></p><p>  智能硬件是繼智能手機(jī)之后的一個(gè)新的科技概

2、念,通過智能手機(jī)與硬件結(jié)合的方式,對(duì)傳統(tǒng)硬件設(shè)備進(jìn)行改造。硬件通過無線藍(lán)牙通信與智能手機(jī)進(jìn)行通訊,進(jìn)而與云端服務(wù)器進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)互聯(lián)網(wǎng)服務(wù)的加載,形成“云+端”的典型架構(gòu)。服務(wù)器端存儲(chǔ)用戶及其硬件設(shè)備的使用數(shù)據(jù),具備了大數(shù)據(jù)等附加價(jià)值。</p><p>  該平臺(tái)構(gòu)建了以智能硬件產(chǎn)品為核心,通過產(chǎn)品線連接各硬件用戶、銷售方和經(jīng)銷商的業(yè)務(wù)網(wǎng)絡(luò),從而實(shí)現(xiàn)產(chǎn)品涉眾通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)分析,實(shí)現(xiàn)資源共享。由于該平臺(tái)涉及多

3、機(jī)構(gòu)的用戶,用戶基數(shù)較大,用戶權(quán)限關(guān)系復(fù)雜而且變動(dòng)大。需要訪問控制的資源多,分布廣。對(duì)資源的操作復(fù)雜。既要保證平臺(tái)信息資源的安全性,同時(shí)又要保證系統(tǒng)的靈活性與易訪問性。</p><p>  為此,本文專門研究并實(shí)現(xiàn)了該平臺(tái)的用戶管理B/S子系統(tǒng)和智能硬件管理C/S子系統(tǒng)。用戶管理B/S子系統(tǒng)為管理員提供用戶管理、角色管理、權(quán)限管理、資源文件管理等功能。為所有的用戶提供單點(diǎn)登錄功能。應(yīng)用RBAC(基于角色的訪問控制

4、策略),設(shè)計(jì)了一套角色結(jié)構(gòu)與訪問規(guī)則,以便快速地對(duì)用戶進(jìn)行權(quán)限授予與權(quán)限回收,高效地管理用戶與控制訪問權(quán)限。登錄方面,應(yīng)用基于經(jīng)紀(jì)人的單點(diǎn)登錄模型,使用Session作為Ticket認(rèn)證設(shè)計(jì)了單點(diǎn)登錄功能,方便用戶訪問多個(gè)平臺(tái)服務(wù)的內(nèi)容,在經(jīng)過首次身份認(rèn)證之后可以避免累贅的重復(fù)登錄。智能硬件管理C/S子系統(tǒng)為用戶提供智能硬件數(shù)據(jù)上傳與數(shù)據(jù)查詢共享功能。硬件與服務(wù)器之間通過智能手機(jī)進(jìn)行通訊,進(jìn)而硬件與云端服務(wù)器進(jìn)行數(shù)據(jù)交互。</p&

5、gt;<p>  本系統(tǒng)基于WAMP的Web應(yīng)用程序平臺(tái)實(shí)現(xiàn)了上述功能。通過ThinkPHP的Web應(yīng)用開發(fā)框架實(shí)現(xiàn)MVC和AOP(面向切面編程)的系統(tǒng)架構(gòu),將用戶管理與硬件管理子系統(tǒng)集成封裝為基本服務(wù)模塊,以標(biāo)準(zhǔn)接口來實(shí)現(xiàn)模塊間的通信,使其能被平臺(tái)其他模塊使用,達(dá)到較高的復(fù)用性。</p><p>  關(guān)鍵詞:智能硬件;用戶管理;訪問控制;單點(diǎn)登錄;AOP面向切面編程;ThinkPHP ;</

6、p><p><b>  Abstract</b></p><p>  Artificial Neuron Network (ANN) simulates human being’s brain function and build the network structure. Convolutional Neural Network (CNN) have many adv

7、antage, such as ……</p><p>  (2) This paper introduces the common pretreatment method of image, such as collecting image, normalization, graying and binarization. And apply these to the handwritten numeral re

8、cognition experiment and handwritten numerals writer recognition experiments.</p><p>  Keywords: Writer recognition;Convolutional Neural Network;Handwritten character recognition</p><p><b>

9、;  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  目 錄III</b></p><p><b>  第一章緒論1</b></p><p>

10、  1.1課題背景1</p><p>  1.2課題意義1</p><p>  1.3主要研究內(nèi)容2</p><p>  1.4論文結(jié)構(gòu)3</p><p>  第二章相關(guān)基礎(chǔ)知識(shí)和關(guān)鍵技術(shù)介紹5</p><p>  2.1WAMP與ThinkPHP5</p><p>  

11、2.1.1PHP的設(shè)計(jì)理念及特點(diǎn)5</p><p>  2.1.2WAMP的Web應(yīng)用程序平臺(tái)6</p><p>  2.1.3ThinkPHP6</p><p>  2.2面向切面編程(Aspect Oriented Programme)7</p><p>  2.3訪問控制策略8</p><p>

12、;  2.4單點(diǎn)登錄技術(shù)9</p><p>  2.5本章小結(jié)10</p><p>  第三章用戶管理與智能硬件管理子系統(tǒng)需求分析11</p><p>  3.1系統(tǒng)設(shè)計(jì)概述11</p><p>  3.1.1系統(tǒng)需求目標(biāo)11</p><p>  3.1.2系統(tǒng)需求描述11</p>

13、<p>  3.2功能性需求12</p><p>  3.2.1用戶管理13</p><p>  3.2.2角色權(quán)限管理14</p><p>  3.2.3資源文件管理16</p><p>  3.2.4智能硬件管理17</p><p>  3.3非功能性需求18</p>

14、<p>  3.4本章小結(jié)19</p><p>  第四章系統(tǒng)設(shè)計(jì)20</p><p>  4.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)20</p><p>  4.2基于角色的用戶管理模塊設(shè)計(jì)22</p><p>  4.2.1用戶權(quán)限管理模型設(shè)計(jì)22</p><p>  4.2.2類圖設(shè)計(jì)23</

15、p><p>  4.3智能硬件管理模塊設(shè)計(jì)24</p><p>  4.3.1智能硬件數(shù)據(jù)交互架構(gòu)設(shè)計(jì)24</p><p>  4.3.2智能硬件數(shù)據(jù)交互模塊分解25</p><p>  4.4數(shù)據(jù)庫設(shè)計(jì)26</p><p>  4.4.1E-R圖設(shè)計(jì)26</p><p>  4

16、.4.2數(shù)據(jù)庫表設(shè)計(jì)27</p><p>  4.5登錄認(rèn)證模塊設(shè)計(jì)31</p><p>  4.5.1基于Session的單點(diǎn)登錄架構(gòu)設(shè)計(jì)31</p><p>  4.6本章小結(jié)32</p><p>  第五章系統(tǒng)實(shí)現(xiàn)33</p><p>  5.1面向切面的軟件架構(gòu)實(shí)現(xiàn)33</p>

17、;<p>  5.1.1“獲得用戶角色”的Behavior 封裝33</p><p>  5.1.2“獲得用戶角色”的Behavior調(diào)用。34</p><p>  5.2用戶管理模塊的實(shí)現(xiàn)35</p><p>  5.3角色權(quán)限資源管理模塊實(shí)現(xiàn)42</p><p>  5.3.1角色管理模塊42</p

18、><p>  5.3.2權(quán)限管理模塊46</p><p>  5.3.3資源管理模塊50</p><p>  5.4登錄認(rèn)證模塊的實(shí)現(xiàn)52</p><p>  5.4.1基于Session的單點(diǎn)登錄實(shí)現(xiàn)52</p><p>  5.4.2基于Session的單點(diǎn)登錄實(shí)現(xiàn)演示55</p>&

19、lt;p>  5.5智能硬件管理模塊的實(shí)現(xiàn)56</p><p>  5.5.1智能硬件使用數(shù)據(jù)上傳56</p><p>  5.5.2智能硬件使用數(shù)據(jù)查詢61</p><p>  5.6本章總結(jié)61</p><p>  第六章系統(tǒng)測試62</p><p>  6.1測試方法及測試環(huán)境62&

20、lt;/p><p>  6.2測試用例62</p><p>  6.2.1用戶管理模塊測試62</p><p>  6.2.2角色權(quán)限資源管理功能測試64</p><p>  6.2.3智能硬件管理模塊測試65</p><p>  6.2.4單點(diǎn)登錄模塊測試66</p><p>

21、  6.3本章小結(jié)67</p><p><b>  總結(jié)與期望68</b></p><p>  1.論文工作總結(jié)68</p><p>  2.工作展望68</p><p><b>  參考文獻(xiàn)70</b></p><p><b>  致謝71<

22、;/b></p><p><b>  緒論</b></p><p><b>  課題背景</b></p><p>  為了提高智能硬件的使用服務(wù)水平,需要建立一個(gè)智能硬件信息公共服務(wù)的平臺(tái),積極探索云端數(shù)據(jù)與智能硬件的全面深度融合,以信息化促進(jìn)智能硬件服務(wù)水平的改善,充分發(fā)揮云端數(shù)據(jù)在智能硬件信息交互的支撐作用。該平

23、臺(tái)構(gòu)建以產(chǎn)品為核心,通過產(chǎn)品線連接各硬件用戶、銷售方和經(jīng)銷商的業(yè)務(wù)網(wǎng)絡(luò),從而實(shí)現(xiàn)產(chǎn)品涉眾通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)分析,實(shí)現(xiàn)資源共享。建設(shè)覆蓋全智能硬件產(chǎn)品和各級(jí)用戶的公共信息服務(wù)平臺(tái),實(shí)現(xiàn)用戶分級(jí)管理,落實(shí)智能硬件信息資源的共建共享,實(shí)現(xiàn)產(chǎn)品數(shù)據(jù)的信息化。</p><p>  目前智能硬件端存在如下問題:用戶分布廣泛,由于基礎(chǔ)數(shù)據(jù)不統(tǒng)一、各系統(tǒng)彼此獨(dú)立,信息相對(duì)封閉,數(shù)據(jù)共享機(jī)制尚未建立,各系統(tǒng)之間缺乏協(xié)調(diào),導(dǎo)致信息相對(duì)

24、封閉,基本上處于“信息孤島”狀態(tài)。由于產(chǎn)品間未實(shí)現(xiàn)數(shù)據(jù)貫通等原因,無法形成協(xié)同工作的配合,系統(tǒng)的重復(fù)利用性比較低。</p><p><b>  課題意義</b></p><p>  由于該平臺(tái)將會(huì)被多級(jí)的用戶所使用(從銷售方超級(jí)管理員、銷售方普通管理員到生產(chǎn)商管理員、智能硬件基礎(chǔ)用戶),用戶結(jié)構(gòu)比較復(fù)雜、用戶基數(shù)較大,因此組織結(jié)構(gòu)的管理十分重要。另外,由于智能硬件云端

25、平臺(tái)中的信息資源對(duì)于這些不同級(jí)別的用戶的保密性有所不同,負(fù)責(zé)不同工作內(nèi)容的用戶所要使用的服務(wù)也有所不同,因此對(duì)于用戶訪問平臺(tái)權(quán)限的管理與控制同樣十分重要?;谝陨媳尘?,本課題將研究該平臺(tái)的用戶管理與文件管理子系統(tǒng),設(shè)計(jì)一套完善的機(jī)制,既方便用戶的管理,又保證平臺(tái)信息資源的安全性。這對(duì)于研究企業(yè)信息化管理、信息安全保護(hù)具有切實(shí)、重要的意義。</p><p>  本次畢業(yè)設(shè)計(jì)將開發(fā)該系統(tǒng)的用戶管理與智能硬件管理子系統(tǒng)

26、,包括其分析、設(shè)計(jì)與實(shí)現(xiàn),包含以下重要功能:</p><p>  用戶管理:包括新增用戶、編輯用戶信息等功能</p><p>  角色權(quán)限管理:提供管理員管理本用戶權(quán)限的方法與機(jī)制,包括新增角色、編輯角色、刪除角色;</p><p>  用戶認(rèn)證登錄:提供密碼登錄驗(yàn)證機(jī)制,保護(hù)系統(tǒng)安全</p><p>  資源文件管理:提供管理員上傳、編輯、

27、刪除產(chǎn)品資源等功能。</p><p>  智能硬件管理:提供移動(dòng)端數(shù)據(jù)上傳和查看數(shù)據(jù)功能。</p><p><b>  主要研究內(nèi)容</b></p><p>  文本關(guān)鍵詞匯及其解釋如表1-1所示:</p><p><b>  表1-1本文術(shù)語表</b></p><p>  

28、本文主要研究智能硬件云端平臺(tái)的用戶管理與智能硬件管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。從軟件工程的生命周期來敘述,將覆蓋該子系統(tǒng)的需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測試等各個(gè)階段,本文將會(huì)給出該子系統(tǒng)在以上各個(gè)階段的詳細(xì)記錄。</p><p>  技術(shù)應(yīng)用方面,在系統(tǒng)架構(gòu)上本文將涉及AOP(面向切面編程)以及WAMP組合ThinkPHP應(yīng)用程序開發(fā)框架。在用戶管理上將側(cè)重研究用戶的訪問權(quán)限問題,探討基于角色的用戶訪問控制;該系

29、統(tǒng)是一個(gè)Web應(yīng)用系統(tǒng),本文將涉及其認(rèn)證登錄問題,平衡易用性與安全性,實(shí)現(xiàn)基于Session的單點(diǎn)登錄。智能硬件管理上主要研究服務(wù)器如何跟移動(dòng)端進(jìn)行準(zhǔn)確的數(shù)據(jù)交互,將數(shù)據(jù)信息合理地分配給用戶角色。</p><p>  本次Web應(yīng)用的開發(fā)在Microsoft Windows 7 操作系統(tǒng)上完成,使用Eclipse開發(fā)工具,apache2.4.9服務(wù)器,數(shù)據(jù)庫采用 mysql5.6.17。</p>&

30、lt;p><b>  圖1-1系統(tǒng)部署圖</b></p><p>  本系統(tǒng)的部署如圖1-1所示:</p><p>  Pc客戶端運(yùn)行環(huán)境的要求:Windows操作系統(tǒng),瀏覽器IE6.0或以上。</p><p>  服務(wù)器端運(yùn)行環(huán)境要求:搭建wamp環(huán)境,Windows操作系統(tǒng),apache2.4.9服務(wù)器,mysql5.6.17或以上數(shù)

31、據(jù)庫,php5.5或以上。</p><p><b>  論文結(jié)構(gòu)</b></p><p>  本論文將分為六章,各章的安排如下:</p><p>  第一章介紹本課題研究背景以及課題意義,同時(shí)大致地描述了本項(xiàng)目將要設(shè)計(jì)與實(shí)現(xiàn)的功能,以及將會(huì)采用的技術(shù)方案。</p><p>  第二章介紹本次課題研究涉及的關(guān)鍵技術(shù)知識(shí),架

32、構(gòu)上包括ThinkPHP與AOP(面向切面編程),子模塊技術(shù)包括RBAC(基于角色的訪問控制)、單點(diǎn)登錄技術(shù)。</p><p>  第三章詳細(xì)闡述用戶管理與智能硬件管理子系統(tǒng)的需求分析,包括功能性描述(將會(huì)用具體的用例來定義)以及非功能性需求。</p><p>  第四章闡述該子系統(tǒng)的設(shè)計(jì),包括應(yīng)用ThinkPHP、AOP的架構(gòu)設(shè)計(jì),分模塊包括用戶管理、角色管理、權(quán)限資源文件管理、智能硬件

33、管理的模塊設(shè)計(jì)。</p><p>  第五章敘述關(guān)鍵技術(shù)在本次研究中如何得被應(yīng)用,系統(tǒng)如何實(shí)現(xiàn)</p><p>  第六章是對(duì)本次開發(fā)的系統(tǒng)進(jìn)行測試,記錄了詳細(xì)的測試用例以及測試結(jié)果。</p><p>  相關(guān)基礎(chǔ)知識(shí)和關(guān)鍵技術(shù)介紹</p><p>  WAMP與ThinkPHP</p><p>  PHP的設(shè)計(jì)理念及

34、特點(diǎn)</p><p>  PHP是一種通用開源的腳本語言,PHP 的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁。PHP的核心架構(gòu)如下圖:</p><p>  圖2-1 php核心架構(gòu)</p><p>  如圖所示:php可分為4層體系:</p><p>  1.Zend引擎:Zend整

35、體是用純c實(shí)現(xiàn),是php的內(nèi)核部分,它將php代碼編譯為可執(zhí)行opcode的處理并實(shí)現(xiàn)相應(yīng)的處理方法、實(shí)現(xiàn)了基本的數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配及管理、提供了供外部調(diào)用的api方法。</p><p>  2.Extensions:圍繞著zend引擎,extensions通過組件式的方式提供各種基礎(chǔ)服務(wù),內(nèi)置函數(shù)、標(biāo)準(zhǔn)庫等都是通過extension來實(shí)現(xiàn),用戶也可以根據(jù)需要實(shí)現(xiàn)自己的extension以達(dá)到功能擴(kuò)展、性能優(yōu)化等

36、目的。</p><p>  3.Sapi:Sapi全稱是Server Application Programming Interface,也就是服務(wù)端應(yīng)用編程接口,sapi通過一系列鉤子函數(shù),使得php可以和外部進(jìn)行交互數(shù)據(jù),通過sapi成功的將php本身和上層應(yīng)用解耦隔離。</p><p>  4.上層應(yīng)用:這就是編寫的php程序,通過不同的sapi方式得到各種各樣的應(yīng)用模式,如通過we

37、bserver實(shí)現(xiàn)web應(yīng)用、在命令行下以腳本方式運(yùn)行等等。</p><p>  WAMP的Web應(yīng)用程序平臺(tái)</p><p>  WAMP是指在Windows系統(tǒng)上集成Apache、MySQL和PHP的環(huán)境,可以快速搭建配置Web服務(wù)器。WAMP平臺(tái)由幾個(gè)組件組成,呈分層結(jié)構(gòu)。每一層都提供了整個(gè)軟件的一個(gè)關(guān)鍵部分:</p><p>  windows:處在最低層,

38、提供操作系統(tǒng)。</p><p>  Apache:次低層是,它是一個(gè) Web 服務(wù)器。Apache 提供可讓用戶獲得 Web 頁面的一款穩(wěn)定的、支持關(guān)鍵任務(wù)的服務(wù)器,PHP 組件實(shí)際上是在 Apache 中,動(dòng)態(tài)頁面可以通過 Apache 和 PHP 創(chuàng)建。</p><p>  MySQL:提供數(shù)據(jù)存儲(chǔ)端。是一個(gè)非常強(qiáng)大的、適合運(yùn)行大型復(fù)雜站點(diǎn)的數(shù)據(jù)庫。在 Web 應(yīng)用程序中,所有數(shù)據(jù)、產(chǎn)

39、品、帳戶和其他類型的信息都存放在這個(gè)數(shù)據(jù)庫中,實(shí)現(xiàn)數(shù)據(jù)的持久化,php動(dòng)態(tài)頁面通過服務(wù)器使用SQL 語言可以很容易地查詢這些信息。</p><p>  PHP:可以將 WAMP 系統(tǒng)所有其他的組件粘合在一起。</p><p><b>  ThinkPHP</b></p><p>  ThinkPHP是一個(gè)輕量級(jí)PHP開發(fā)框架,適用于簡化企業(yè)級(jí)應(yīng)

40、用開發(fā)和敏捷WEB應(yīng)用開發(fā)。遵循Apache2開源協(xié)議發(fā)布,從Struts結(jié)構(gòu)移植過來并做了改進(jìn)和完善,同時(shí)也借鑒了國外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的思想和TagLib(標(biāo)簽庫)、RoR的ORM映射和ActiveRecord模式。</p><p>  ThinkPHP中的MVC分層大致體現(xiàn)在:</p><p>  模型(M):模型的定義由Mo

41、del類來完成,負(fù)責(zé)存儲(chǔ)后臺(tái)數(shù)據(jù)??刂破鳎–):應(yīng)用控制器(核心控制器App類)和Action控制器都承擔(dān)了控制器的角色,Action控制器完成業(yè)務(wù)過程控制,而應(yīng)用控制器負(fù)責(zé)調(diào)度控制。視圖(V):由View類和模板文件組成,模板做到了100%分離,可以獨(dú)立預(yù)覽和制作。</p><p>  圖2-2 MVC架構(gòu)</p><p>  ThinkPHP引入了CBD(核心Core+行為Behav

42、ior+驅(qū)動(dòng)Driver)架構(gòu)模式,提供了面向切面編程的功能,可以在行為層(Behavior)添加“行為”邏輯,在應(yīng)用層(Action)添加自己的標(biāo)簽位置來調(diào)用“行為”。而標(biāo)簽位置相當(dāng)于AOP概念中的“切面”,行為都是圍繞這個(gè)“切面”來進(jìn)行編程。AOP的概念將在下一節(jié)中詳細(xì)說明。</p><p>  面向切面編程(Aspect Oriented Programme)</p><p>  面

43、向切面編程(Aspect Oriented Programming,AOP)是一種編程思想。AOP主要實(shí)現(xiàn)的目的是針對(duì)業(yè)務(wù)處理過程中的具有相同功能的切面進(jìn)行提取,它所面對(duì)的是處理過程中的某個(gè)步驟或階段,以獲得邏輯過程中各部分之間低耦合性的隔離效果。AOP的編程,就是把我們?cè)谀硞€(gè)方面的功能提出來與一批對(duì)象進(jìn)行隔離,這樣與一批對(duì)象之間降低了耦合性,可以就某個(gè)功能進(jìn)行編程。例如應(yīng)用程序有迭代的需求,在AOP的架構(gòu)下就只需要更改對(duì)應(yīng)的功能,而不

44、用再所有調(diào)用到該功能的地方都進(jìn)行更改代碼。有了 AOP,我們可以定義應(yīng)用于跨模塊的、彼此不同的對(duì)象模型的交叉關(guān)系。AOP 同時(shí)還可以讓我們層次化功能性而不是嵌入功能性,從而使得代碼有更好的可讀性和易于維護(hù)。</p><p>  AOP包含以下幾個(gè)基本概念:aspect(切面):實(shí)現(xiàn)了cross-cutting功能,是針對(duì)切面的模塊。jointpoint(連接點(diǎn)):連接點(diǎn)是切面插入應(yīng)用程序的地方,該點(diǎn)能被方法調(diào)用,

45、而且也會(huì)被拋出意外。連接點(diǎn)是應(yīng)用程序提供給切面插入的地方,可以添加新的方法。advice(處理邏輯):advice是我們切面功能的實(shí)現(xiàn),它通知程序新的行為。pointcut(切點(diǎn)):pointcut可以控制你把哪些advice應(yīng)用于jointpoint上去。</p><p>  圖2-3 AOP基本概念關(guān)系圖</p><p><b>  訪問控制策略</b><

46、/p><p>  訪問控制的定義是根據(jù)用戶被預(yù)定義的權(quán)限來限制用戶對(duì)某些信息的的訪問。訪問控制的功能可以分成以下三種類型敘述:1.防止非法的主體進(jìn)入被保護(hù)的系統(tǒng);2.允許合法的主體進(jìn)入受保護(hù)的系統(tǒng);3.防止合法的主體進(jìn)行未授權(quán)的訪問。</p><p>  基于角色的訪問控制策略——RBAC</p><p>  RBAC的主要目的是為了防止用戶無限制地訪問系統(tǒng)資源。為了達(dá)

47、到目的,這個(gè)模型引入了角色的概念,同時(shí)把用戶與角色聯(lián)系起來。訪問的權(quán)限與角色相關(guān)聯(lián)。角色是企業(yè)為了組織活動(dòng)使用的典型概念。因?yàn)槲覀兛梢园压局械陌踩枨笈c角色和責(zé)任連接起來,所以RBAC可以應(yīng)用于企業(yè)的安全模型。結(jié)合智能硬件云端服務(wù)器平臺(tái)的當(dāng)前應(yīng)用情況,更適合于應(yīng)用RBAC的策略。</p><p>  如圖2-4所示,RBAC由四個(gè)基本要素構(gòu)成,即用戶(User)、角色(Role)、會(huì)話(Session)、許可權(quán)

48、(Permission)。在一個(gè)系統(tǒng)中,定義并存在著多個(gè)用戶、角色,同時(shí)對(duì)每個(gè)角色設(shè)置多個(gè)授權(quán)關(guān)系,稱之為訪問許可權(quán)的授予(Permission Assignment)。在RBAC中,用戶和角色,角色和權(quán)限的關(guān)系是多對(duì)多的關(guān)系。通過定義角色分離了用戶與權(quán)限之間的直接關(guān)聯(lián),方便管理員進(jìn)行人員管理和授權(quán)。授權(quán)機(jī)制可以視之為在系統(tǒng)內(nèi)通過特定的操作(Action)將主體與客體聯(lián)系起來,語義可以是允許讀、允許修改等。在一個(gè)系統(tǒng)中,根據(jù)系統(tǒng)的不同,

49、客體的種類也不同,如在操作系統(tǒng)中考慮的客體一般是文件、目錄、端口、設(shè)備等,操作則為讀取、寫入、打開、關(guān)閉和運(yùn)行等。RBAC模型中授權(quán)就是將這些客體的訪問權(quán)限在可靠的控制下連帶角色所需要的操作一起提供給那些角色所代表的用戶。通過授權(quán)的管理機(jī)制,可以給一個(gè)角色以多個(gè)訪問許可權(quán),而一個(gè)訪問許可權(quán)也可以賦予多個(gè)角色,同時(shí)一個(gè)用戶可以扮演多個(gè)角色,一個(gè)角色也可以接納多個(gè)用戶。</p><p>  圖2-4 RBAC模型&l

50、t;/p><p>  在一個(gè)RBAC模型的系統(tǒng)中,每個(gè)用戶進(jìn)入系統(tǒng)得到自己的控制時(shí),就得到了一個(gè)會(huì)話。每個(gè)會(huì)話是動(dòng)態(tài)產(chǎn)生的,從屬于一個(gè)用戶。只要靜態(tài)定義過這些角色與該用戶的關(guān)系,會(huì)話根據(jù)用戶的要求負(fù)責(zé)將它所代表的用戶映射到多個(gè)角色中去。一個(gè)會(huì)話可能激活的角色是用戶的全部角色的一個(gè)子集,對(duì)于用戶而言,在一個(gè)會(huì)話內(nèi)可獲得全部被激活的角色所代表的訪問許可權(quán)。角色和會(huì)話的設(shè)置帶來的好處是容易實(shí)施最小特權(quán)原則(Least-Pr

51、ivilege Principle)。所謂最小特權(quán)原則是將超級(jí)用戶的所有特權(quán)分解成一組細(xì)粒度的特權(quán)子集,定義成不同的“角色”,分別賦予不同的用戶,每個(gè)用戶僅擁有完成其工作所必須的最小特權(quán),避免了超級(jí)用戶的誤操作或其身份被假冒后而產(chǎn)生的安全隱患。</p><p><b>  單點(diǎn)登錄技術(shù)</b></p><p>  單點(diǎn)登錄(SSO,Single Sign On)技術(shù)是

52、目前被廣泛應(yīng)用于企業(yè)應(yīng)用中的服務(wù)解決方案,其定義是在互相信任的應(yīng)用程序之間,用戶只需要進(jìn)行一次登錄,就可以訪問全部的應(yīng)用程序。相較于傳統(tǒng)的登錄方式,單點(diǎn)登錄有以下兩個(gè)優(yōu)勢:1.對(duì)用戶而言減少了登錄認(rèn)證的次數(shù),免去在反復(fù)輸入用戶信息進(jìn)行用戶驗(yàn)證的累贅步驟,這對(duì)于用戶體驗(yàn)的提升是不言而喻的;2.對(duì)系統(tǒng)而言,各系統(tǒng)之間通過信任關(guān)系來達(dá)成身份的自動(dòng)認(rèn)證,減少用戶信息的管理成本??偠灾?,單點(diǎn)登錄技術(shù)對(duì)于提高系統(tǒng)的易用性、安全性有重要意義,但對(duì)于

53、設(shè)計(jì)、開發(fā)上的難度上相對(duì)提高。</p><p>  目前單點(diǎn)登錄的架構(gòu)模型大致可以分為以下幾類:基于經(jīng)紀(jì)人(Broker Based)的模型、基于代理的模型、基于網(wǎng)關(guān)的模型、基于令牌(Token Based)的模型。</p><p>  從可實(shí)施性、管理型、安全性和易用性等維度綜合考量各種模型的優(yōu)缺點(diǎn),結(jié)合智能硬件云端服務(wù)器平臺(tái)的當(dāng)前應(yīng)用情況,本文采用基于經(jīng)紀(jì)人的模型,設(shè)計(jì)了該平臺(tái)的用戶身

54、份認(rèn)證模塊。</p><p>  基于經(jīng)紀(jì)人的單點(diǎn)登錄模型維護(hù)了一個(gè)專門用于管理用戶賬號(hào)以及用戶身份認(rèn)證的服務(wù)器。該模型可以描述成三個(gè)部分:客戶端、認(rèn)證服務(wù)器、應(yīng)用服務(wù)器。認(rèn)證服務(wù)器即本模型中的“經(jīng)紀(jì)人”,用戶訪問過程中的身份認(rèn)證事務(wù)都由認(rèn)證服務(wù)器來完成?;诮?jīng)紀(jì)人的單點(diǎn)登錄模型工作流程如下:1.用戶訪問應(yīng)用服務(wù)器前被定位至認(rèn)證服務(wù)器進(jìn)行驗(yàn)證登錄;2.認(rèn)證服務(wù)器完成身份驗(yàn)證,并且維護(hù)用戶本次訪問過程中的登錄信息;

55、3.應(yīng)用服務(wù)器到認(rèn)證服務(wù)器獲得用戶的登錄信息;4用戶使用該登錄信息訪問應(yīng)用服務(wù)器。基于經(jīng)紀(jì)人的典型應(yīng)用系統(tǒng)為美國麻省理工大學(xué)的Kerberos認(rèn)證系統(tǒng)。</p><p>  基于經(jīng)紀(jì)人的單點(diǎn)登錄模型中一個(gè)關(guān)鍵概念是Ticket.Ticket是用戶記錄用戶登錄狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。目前的Ticket實(shí)現(xiàn)機(jī)制可以分為Session與Cookie兩類。Cookie保存于客戶端,而Session則由服務(wù)器端維護(hù),客戶端僅維護(hù)相

56、對(duì)應(yīng)的 SessionID來實(shí)現(xiàn)標(biāo)識(shí)。</p><p><b>  本章小結(jié)</b></p><p>  本章介紹了本文研究的“智能硬件云端服務(wù)器平臺(tái)”所涉及的關(guān)鍵知識(shí):包括開發(fā)框架,架構(gòu)使用的PHP與ThinkPHP以及面向切面編程(AOP);訪問控制策略,著重介紹本文將會(huì)用到的基于角色的訪問控制(RBAC);單點(diǎn)登錄技術(shù)著重介紹基于經(jīng)紀(jì)人的模型,以及認(rèn)證票據(jù)tic

57、ket的概念。</p><p>  用戶管理與智能硬件管理子系統(tǒng)需求分析</p><p><b>  系統(tǒng)設(shè)計(jì)概述</b></p><p><b>  系統(tǒng)需求目標(biāo)</b></p><p>  為了提高智能硬件的使用服務(wù)水平,需要建立一個(gè)智能硬件信息公共服務(wù)的平臺(tái)。該平臺(tái)構(gòu)建了以智能硬件產(chǎn)品為核心,

58、通過產(chǎn)品線連接各硬件用戶、銷售方和經(jīng)銷商的業(yè)務(wù)網(wǎng)絡(luò),從而實(shí)現(xiàn)產(chǎn)品涉眾通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)分析,實(shí)現(xiàn)資源共享。由于該平臺(tái)涉及多機(jī)構(gòu)的用戶,用戶基數(shù)較大,用戶權(quán)限關(guān)系復(fù)雜而且變動(dòng)大。需要訪問控制的資源多,分布廣。對(duì)資源的操作復(fù)雜。既要保證平臺(tái)信息資源的安全性,同時(shí)又要保證系統(tǒng)的靈活性與易訪問性。為此,本文設(shè)計(jì)并實(shí)現(xiàn)用戶管理與智能硬件管理子系統(tǒng),以滿足上述需求。</p><p><b>  系統(tǒng)需求描述</

59、b></p><p>  通過對(duì)“智能硬件服務(wù)器端應(yīng)用”的調(diào)研,總結(jié)出“用戶管理與智能硬件管理”子系統(tǒng)可以分為以下幾個(gè)子模塊:用戶管理、角色權(quán)限管理、資源文件管理、智能硬件管理、單點(diǎn)登錄。表3-1中給出了對(duì)用戶的每一個(gè)功能需求的描述。</p><p>  表3-1 用戶需求說明表</p><p>  上表列出的各項(xiàng)業(yè)務(wù)需求的模塊從屬之間的關(guān)系如圖3-1所示:&

60、lt;/p><p>  圖3-1功能模塊關(guān)系圖</p><p><b>  功能性需求</b></p><p>  針對(duì)上一節(jié)所描述的業(yè)務(wù)需求,本系統(tǒng)的用例圖如圖3-2所示:</p><p>  圖3-2 用戶管理與智能硬件管理子系統(tǒng)用例圖</p><p>  本系統(tǒng)各個(gè)用例的說明表如表3-2 至3-

61、15所示。</p><p><b>  用戶管理</b></p><p>  表 3-2 查看用戶列表用例表</p><p>  表3-3修改用戶用例表</p><p><b>  角色權(quán)限管理</b></p><p>  表3-4 查看角色列表用例表</p>

62、<p>  表3-5 創(chuàng)建角色用例表</p><p>  表3-6修改角色用例表</p><p>  表3-7 查看權(quán)限列表用例表</p><p>  表3-8 創(chuàng)建權(quán)限用例表</p><p>  表3-9修改權(quán)限用例表</p><p><b>  資源文件管理</b></p>

63、;<p>  表3-10 查看資源列表用例表</p><p>  表3-11 創(chuàng)建資源用例表</p><p>  表3-12刪除權(quán)限用例表</p><p><b>  智能硬件管理</b></p><p>  表3-13 數(shù)據(jù)上傳用例表</p><p>  表3-14 查看硬件產(chǎn)品列

64、表用例表</p><p>  表3-15 查看硬件產(chǎn)品數(shù)據(jù)列表用例表</p><p><b>  非功能性需求</b></p><p>  與本文系統(tǒng)相關(guān)的非功能性需求包括運(yùn)行期和開發(fā)期兩個(gè)質(zhì)量屬性方面。本文以這些質(zhì)量屬性驅(qū)動(dòng)本文的軟件體系結(jié)構(gòu)設(shè)計(jì)。提出了基于AOP的系統(tǒng)和基于RBAC的訪問控制架構(gòu)系統(tǒng)實(shí)現(xiàn)方案。</p><

65、p>  1.運(yùn)行期的質(zhì)量屬性</p><p>  (1)性能。性能是指軟件系統(tǒng)及時(shí)提供相應(yīng)服務(wù)的能力。具體而言,性能包括速度、吞吐量和持續(xù)高速性這三方面的要求。</p><p> ?。?)安全性。指軟件系統(tǒng)同時(shí)兼顧向合法用戶提供服務(wù),又阻止非授權(quán)使用功能的能力。</p><p> ?。?)易用性。指軟件系統(tǒng)易于使用的程度。</p><p&g

66、t; ?。?)可用性。可用性與易用性不相同??捎眯灾赶到y(tǒng)長時(shí)間無故障運(yùn)行的能力。</p><p> ?。?)可伸縮性。指當(dāng)用戶增加時(shí),軟件系統(tǒng)維持高服務(wù)質(zhì)量的能力。</p><p>  (6)互操作性。指本軟件系統(tǒng)與其他系統(tǒng)交換數(shù)據(jù)和相互調(diào)用服務(wù)的難易程度。</p><p> ?。?)可靠性。軟件系統(tǒng)在一定時(shí)間內(nèi)無故障運(yùn)行的能力。</p><p&

67、gt;  (8)健壯性。也稱容錯(cuò)性。是指軟件系統(tǒng)在異常情況仍能夠正常運(yùn)行的能力。</p><p>  2、開發(fā)期的質(zhì)量屬性</p><p>  (1)易理解性。是指系統(tǒng)設(shè)計(jì)能被開發(fā)人員理解的難易程度。</p><p> ?。?)可擴(kuò)展性。為適應(yīng)新需求或者需求變化,為軟件增加功能的能力。有些時(shí)候,稱之為靈活性。</p><p> ?。?)可重用

68、性。重用軟件系統(tǒng)或其中一部分的能力的難易程度。</p><p> ?。?)可測試性。對(duì)軟件測試以證明其滿足需求規(guī)約的難易程度。在實(shí)際的項(xiàng)目中,主要指進(jìn)行單元測試等難易程度。</p><p> ?。?)可維護(hù)性。修改Bug,增加功能,提高質(zhì)量屬性。</p><p> ?。?)可移植性。將軟件系統(tǒng)從一個(gè)運(yùn)行環(huán)境轉(zhuǎn)移到另一個(gè)不同的運(yùn)行環(huán)境的難易程度。</p>

69、<p>  在企業(yè)計(jì)算環(huán)境中,互操作性是主要關(guān)注的問題。企業(yè)網(wǎng)中聚集了以前屬于各個(gè)部門和分部的計(jì)算資源,目的是允許整個(gè)網(wǎng)上的用戶訪問各個(gè)系統(tǒng)上的數(shù)據(jù)。</p><p><b>  本章小結(jié)</b></p><p>  本章描述了在“智能硬件云服務(wù)器”的背景下,開發(fā)用戶管理與智能硬件管理子系統(tǒng)的詳細(xì)需求分析。本章第一節(jié)給出了目前該平臺(tái)的情況,同時(shí)給出了整體的

70、系統(tǒng)需求描述。第二節(jié)描述了功能性需求,以具體的用例的形式描述了不同用戶在該系統(tǒng)中所需要的操作。第三節(jié)從開發(fā)期到運(yùn)行期不同的角度考量本系統(tǒng),給出了非功能需求,闡述了具體功能以外的需求。經(jīng)過本章的分析,提出了開發(fā)用戶管理與智能硬件管理的不同維度的要求,意在指導(dǎo)該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  系統(tǒng)結(jié)構(gòu)

71、設(shè)計(jì)</b></p><p>  該系統(tǒng)采用MVC(模型-視圖-控制器)結(jié)合AOP(面向切面編程)的架構(gòu)系統(tǒng),利用了thinkphp框架的多層MVC架構(gòu)控制前臺(tái)業(yè)務(wù)邏輯處理,CBD(核心Core+行為Behavior+驅(qū)動(dòng)Driver)的行為控制整合后臺(tái)提供的服務(wù),MVC通過行為標(biāo)簽調(diào)用后臺(tái)Behavior,完成為用戶所提供的功能。</p><p>  圖 4-1 智能硬件云端

72、服務(wù)器 —— 用戶管理與智能硬件管理子系統(tǒng)系統(tǒng)框架圖</p><p>  用戶管理作為智能硬件云端服務(wù)器的一個(gè)子服務(wù),作用一是用于維護(hù)整個(gè)教育機(jī)構(gòu)的結(jié)構(gòu)信息與用戶信息,二是用于管理這些用戶對(duì)整個(gè)平臺(tái)的控制訪問。如前文所說,該智能硬件云端服務(wù)器是以產(chǎn)品為核心,通過產(chǎn)品線連接各硬件用戶、銷售方和經(jīng)銷商的業(yè)務(wù)網(wǎng)絡(luò)。在這樣的應(yīng)用背景下,設(shè)計(jì)該平臺(tái)的用戶管理系統(tǒng)必須要考慮模塊之間的復(fù)用性。因此該系統(tǒng)采用AOP(面向切面編程

73、)的架構(gòu),將功能模塊作為“切面”來開發(fā),將模塊間共用的功能集成到CBD層的“行為”中,以便這些行為能被平臺(tái)中其他子系統(tǒng)所使用。</p><p>  該架構(gòu)大致可以分為四個(gè)部分:</p><p><b>  1.View視圖層</b></p><p>  視圖層是直接與用戶進(jìn)行數(shù)據(jù)交互的組件,通過調(diào)用Action層中各個(gè)模塊的功能,實(shí)現(xiàn)查詢數(shù)據(jù)及

74、更新數(shù)據(jù)。ThinkPHP的框架提供了U方法,用于URL的動(dòng)態(tài)生成,方便將View層的Tpl視圖模板綁定到Action層的具體模塊中的功能,確保項(xiàng)目在移植過程中不受環(huán)境的影響。</p><p><b>  2.Action層</b></p><p>  Action層按系統(tǒng)功能模塊劃分,功能模塊即系統(tǒng)所實(shí)現(xiàn)的功能集合,每個(gè)功能模塊維護(hù)各自的服務(wù)執(zhí)行流程以及服務(wù)操作的數(shù)

75、據(jù)。例角色管理維護(hù)了角色管理所包含的操作邏輯以及角色信息數(shù)據(jù)庫,在角色管理中進(jìn)行功能的開發(fā)或者優(yōu)化都只需要在本模塊中進(jìn)行。</p><p>  Action層更加關(guān)注業(yè)務(wù)邏輯的流程,具體的實(shí)現(xiàn)方法通過調(diào)用CBD層中的Behavior實(shí)現(xiàn),Action只需要知道這些Behavior所提供的標(biāo)簽接口,通過標(biāo)簽調(diào)用的方法使用這些功能。例如角色管理模塊提供了角色權(quán)限查詢服務(wù),則僅需要利用接口調(diào)用對(duì)應(yīng)Behavior,給出

76、定義的查詢參數(shù),Behavior即可以用規(guī)定的格式返回查詢的結(jié)果。</p><p><b>  3.CBD層</b></p><p>  CBD層是整個(gè)平臺(tái)的核心,提供所有后臺(tái)服務(wù),定義了核心功能的具體實(shí)現(xiàn)方法。行為既可以獨(dú)立調(diào)用,也可以綁定到某個(gè)標(biāo)簽中進(jìn)行偵聽,在Action層的重要位置設(shè)置了標(biāo)簽用以標(biāo)記,當(dāng)應(yīng)用程序運(yùn)行到這個(gè)標(biāo)簽的時(shí)候,就會(huì)被攔截下來,統(tǒng)一執(zhí)行相關(guān)

77、的行為,相當(dāng)于AOP編程中的“切面”,給某一個(gè)標(biāo)簽綁定相關(guān)行為就成了一種類AOP編程的思想。</p><p><b>  4.Model層</b></p><p>  Model層定義了系統(tǒng)具體的數(shù)據(jù)模型實(shí)體,每一個(gè)模型里定義了具體字段及與數(shù)據(jù)庫字段的映射。ThinkPHP的框架提供了M方法,CBD層通過M方法調(diào)用Model,動(dòng)態(tài)生成SQL語句,防止了SQL語句的注入

78、,提高了系統(tǒng)的安全性。</p><p>  基于角色的用戶管理模塊設(shè)計(jì)</p><p>  本節(jié)包含用戶權(quán)限管理模型,設(shè)計(jì),類圖設(shè)計(jì)結(jié)果。</p><p>  用戶權(quán)限管理模型設(shè)計(jì)</p><p>  如第一章所說,該智能硬件服務(wù)平臺(tái)的用戶管理問題中,對(duì)于用戶訪問平臺(tái)權(quán)限的管理與控制十分的重要。訪問控制控制的主要目的是防止用戶無限制地訪問平臺(tái)

79、內(nèi)的信息,通過這樣的機(jī)制來保證平臺(tái)內(nèi)信息的安全性。但是又考慮到該平臺(tái)的用結(jié)構(gòu)相對(duì)復(fù)雜、用戶基數(shù)較大等因素,如果采用傳統(tǒng)的訪問控制模型,將可能出現(xiàn)的問題是:超級(jí)管理員需要單獨(dú)管理平臺(tái)內(nèi)全部用戶的每一項(xiàng)權(quán)限,不堪重負(fù)。</p><p>  為了解決這個(gè)問題,系統(tǒng)引入了RBAC的概念。RBAC實(shí)現(xiàn)了這樣一種權(quán)限控制體制:利用角色這一個(gè)中間元素,把細(xì)粒度的權(quán)限與角色關(guān)聯(lián)起來,再將角色指派給特定的用戶,因此用戶便可以獲得角

80、色內(nèi)特定的權(quán)限,對(duì)平臺(tái)進(jìn)行訪問。角色是在復(fù)雜的機(jī)構(gòu)組織中為了組織事務(wù)所使用的典型概念,因此我們將機(jī)構(gòu)組織中的安全需求與角色責(zé)任連接起來,達(dá)到規(guī)范、方便管理的目的,保證機(jī)構(gòu)組織的安全性。</p><p>  圖4-2基于角色的用戶權(quán)限管理模型結(jié)構(gòu)圖</p><p>  圖4-2所示的RBAC模型可以分以下幾點(diǎn)描述:</p><p>  權(quán)限:操作與要操作的資源對(duì)象綁定

81、,定義為權(quán)限,描述了獲得該權(quán)限的角色的權(quán)力與責(zé)任,權(quán)限是保證信息資源安全性的一個(gè)重要元素,通過規(guī)定權(quán)限,資源便有了最基本的訪問控制。</p><p>  角色與權(quán)限分配:角色是產(chǎn)品中一組特定權(quán)限的集合。角色與權(quán)限是多對(duì)多的關(guān)系,由產(chǎn)品管理員管理權(quán)限分配,將特定的權(quán)限分配給特定的角色。每個(gè)產(chǎn)品都有一組本產(chǎn)品的權(quán)限列表,僅本產(chǎn)品管理員可見。在“角色—權(quán)限”列表中,以“角色”為列維度,以“權(quán)限”為行維度,映射成對(duì)應(yīng)的二

82、維表,則二維表中每一個(gè)元素決定了某角色是否具備某權(quán)限。二維表中每一個(gè)元素的值由機(jī)構(gòu)管理員賦予。</p><p>  用戶與角色指派:用戶從屬于特定的產(chǎn)品,受該產(chǎn)品產(chǎn)品管理員的管理。角色指派操作模型化了用戶能夠扮演的角色,由本產(chǎn)品的產(chǎn)品管理員進(jìn)行操作,在創(chuàng)建用戶時(shí)指定用戶的角色,或者編輯用戶時(shí)修改用戶的角色。在本系統(tǒng)中,用戶與角色為多對(duì)一關(guān)系,即一個(gè)角色可能被指派給一個(gè)或多個(gè)的用戶。</p><

83、p>  會(huì)話:RBAC模型包含了一系列的會(huì)話,每個(gè)會(huì)話映射在一個(gè)用戶與其角色之間。當(dāng)用戶訪問平臺(tái),建立一個(gè)會(huì)話時(shí),他們便激活他們被指派的角色。每個(gè)會(huì)話與單獨(dú)的用戶關(guān)聯(lián),盡管每個(gè)用戶可以參與一或多個(gè)會(huì)話。提供給用戶的權(quán)限是那些被指派給在用戶會(huì)話中激活的角色的權(quán)限,獨(dú)立于其他系統(tǒng)用戶建立的會(huì)話。</p><p>  約束:約束描述了將權(quán)限分配給角色時(shí)、角色被指派給用戶時(shí)以及Session激活用戶角色時(shí)的應(yīng)當(dāng)遵守

84、的限制條件。</p><p><b>  類圖設(shè)計(jì)</b></p><p>  本系統(tǒng)的用戶管理類圖如4-3所示:</p><p>  圖4-3 基于角色的用戶管理類圖</p><p>  智能硬件管理模塊設(shè)計(jì)</p><p>  智能硬件數(shù)據(jù)交互架構(gòu)設(shè)計(jì)</p><p>

85、  圖4-4 智能硬件數(shù)據(jù)交互設(shè)計(jì)架構(gòu)圖</p><p>  如圖 4-4所示,智能硬件云服務(wù)器不會(huì)直接與智能硬件進(jìn)行數(shù)據(jù)交互,而是通過移動(dòng)端app先收集智能硬件使用數(shù)據(jù),再通過標(biāo)準(zhǔn)的HTTP協(xié)議,以Json數(shù)據(jù)格式進(jìn)行數(shù)據(jù)交互,移動(dòng)端和服務(wù)器形成了C/S的架構(gòu)。具體功能分為數(shù)據(jù)上傳和查詢數(shù)據(jù)兩個(gè)模塊:</p><p>  1.數(shù)據(jù)上傳是智能硬件管理子系統(tǒng)的核心功能,是云端獲得智能硬件數(shù)據(jù)

86、的重要渠道。在用戶使用了智能硬件后,使用數(shù)據(jù)首先保存在移動(dòng)端的數(shù)據(jù)庫中,在用戶使用云端賬號(hào)登錄到移動(dòng)端的時(shí)候,移動(dòng)端檢索出尚未和云端同步的智能硬件使用數(shù)據(jù),并上傳數(shù)據(jù)到云端中進(jìn)行記錄。同時(shí)用戶的基本信息,如用戶等級(jí)、用戶金幣數(shù)和其他用戶信息也會(huì)上傳到云端進(jìn)行數(shù)據(jù)同步。</p><p>  2.查詢智能硬件數(shù)據(jù)是連接用戶管理模塊與智能硬件管理模塊的重要橋梁。在用戶上傳了智能硬件的使用數(shù)據(jù)之后,智能硬件云端服務(wù)器的多

87、級(jí)用戶都能通過各自不同的用戶身份,在云端查詢到自己關(guān)注的智能硬件使用數(shù)據(jù)。</p><p>  智能硬件數(shù)據(jù)交互模塊分解</p><p>  由于該智能硬件產(chǎn)品的主要用戶是年齡較小的寶寶用戶,而云端平臺(tái)的賬號(hào)注冊(cè)方式是采用電話號(hào)碼的注冊(cè)方式,不適用于寶寶,因此通常情況下由家長注冊(cè)云端賬號(hào)并進(jìn)行數(shù)據(jù)交互,并將寶寶用戶和家長用戶劃分到同一個(gè)用戶組。用戶上傳數(shù)據(jù)時(shí)由家長用戶上傳,并將智能硬件與用

88、戶所在的用戶組發(fā)生關(guān)聯(lián),這樣只需家庭組內(nèi)一個(gè)用戶上傳數(shù)據(jù),其他用戶都能夠從云端共享家庭組內(nèi)的智能硬件數(shù)據(jù)。</p><p>  表 4-1 數(shù)據(jù)上傳模塊IPO表</p><p>  表 4-2 查詢數(shù)據(jù)模塊IPO表</p><p><b>  數(shù)據(jù)庫設(shè)計(jì)</b></p><p><b>  E-R圖設(shè)計(jì)<

89、/b></p><p>  E-R圖(實(shí)體-聯(lián)系圖,Entity-Relation Diagram)用來建立數(shù)據(jù)模型,包括三個(gè)基本構(gòu)成要素:</p><p>  實(shí)體(Entity):客觀存在且可區(qū)分的事物,相同屬性的實(shí)體擁有一樣的性質(zhì)和特征。</p><p>  屬性(Attribute):實(shí)體所具有的性質(zhì),一個(gè)實(shí)體可以擁有多個(gè)屬性。</p>

90、<p>  聯(lián)系(Relationship):實(shí)體與實(shí)體之間或?qū)嶓w內(nèi)部的關(guān)系。</p><p>  在本子系統(tǒng)中,具體的數(shù)據(jù)庫 E-R 圖如圖 4-5所示。</p><p>  圖 4-5 數(shù)據(jù)庫 E-R 設(shè)計(jì)圖</p><p><b>  數(shù)據(jù)庫表設(shè)計(jì)</b></p><p>  本子系統(tǒng)主要包含八張數(shù)據(jù)庫實(shí)

91、體表,五張關(guān)系表,具體的數(shù)據(jù)庫表清單及各表描述如表4-3所示:</p><p>  表4-3數(shù)據(jù)庫表清單</p><p>  對(duì)于用戶管理子系統(tǒng),用戶表(User)或用戶組表(Group)表于角色表(Role)通過角色編號(hào)關(guān)聯(lián),即可獲知用戶屬于哪個(gè)角色;再通過查詢角色權(quán)限表(RO),即可得知某用戶具有哪些操作權(quán)限;最后通過操作權(quán)限資源表(OR),即可得知用戶能具體如何操作哪些資源。用戶登

92、錄時(shí),根據(jù)用戶賬戶將4個(gè)表關(guān)聯(lián)(User->Role->Operation->Resource),即可取出該用戶對(duì)應(yīng)的權(quán)限值,據(jù)此,系統(tǒng)就可以判定用戶可以執(zhí)行何種操作。</p><p>  對(duì)于智能硬件管理子系統(tǒng),用戶表(User)與用戶組表(Group)通過用戶編號(hào)關(guān)聯(lián),即可知道用戶屬于哪個(gè)用戶組;再通過查詢用戶組產(chǎn)品列表關(guān)聯(lián)表(GP),即可得知該用戶組擁有什么產(chǎn)品;最后通過產(chǎn)品編號(hào)查詢牙刷(

93、Yashua)或臺(tái)燈(Taideng)的智能硬件使用數(shù)據(jù)表,即可獲得用戶所擁有的產(chǎn)品使用數(shù)據(jù)。用戶查詢或更新產(chǎn)品數(shù)據(jù)時(shí),根據(jù)用戶賬號(hào)將4個(gè)表關(guān)聯(lián)(User->Group->Productcata->Yashua),即可獲得用戶所擁有產(chǎn)品的使用數(shù)據(jù)。</p><p>  詳細(xì)的數(shù)據(jù)表設(shè)計(jì)如下:</p><p>  用戶表詳細(xì)設(shè)計(jì)如表 4-4所示:</p>&l

94、t;p>  表 4-4 用戶表(User)</p><p>  角色表詳細(xì)設(shè)計(jì)如表 4-5所示:</p><p>  表 4-5 角色表(Role)</p><p>  用戶角色關(guān)聯(lián)表詳細(xì)設(shè)計(jì)如表 4-6所示:</p><p>  表 4-6 用戶角色關(guān)聯(lián)表(UR)</p><p>  用戶組表詳細(xì)設(shè)計(jì)如表 4-

95、7所示:</p><p>  表 4-7 用戶組表(Group)</p><p>  用戶用戶組關(guān)聯(lián)表詳細(xì)設(shè)計(jì)如表 4-8所示:</p><p>  表 4-8 用戶用戶組關(guān)聯(lián)表(UG)</p><p>  操作權(quán)限表詳細(xì)設(shè)計(jì)如表 4-9所示:</p><p>  表 4-9 操作權(quán)限表(Operation)</

96、p><p>  角色權(quán)限關(guān)聯(lián)表詳細(xì)設(shè)計(jì)如表 4-10所示:</p><p>  表 4-10 角色權(quán)限關(guān)聯(lián)表(RO)</p><p>  資源表詳細(xì)設(shè)計(jì)如表 4-11所示:</p><p>  表 4-11 資源表(Resource)</p><p>  操作權(quán)限資源關(guān)聯(lián)設(shè)計(jì)如表 4-12所示:</p>&l

97、t;p>  表 4-12 操作權(quán)限資源關(guān)聯(lián)表(OR)</p><p>  產(chǎn)品列表表詳細(xì)設(shè)計(jì)如表 4-13所示:</p><p>  表 4-13 產(chǎn)品列表表(Productcata)</p><p>  用戶組產(chǎn)品列表關(guān)聯(lián)表詳細(xì)設(shè)計(jì)如表 4-14所示:</p><p>  表 4-14 用戶組產(chǎn)品列表關(guān)聯(lián)表(GP)</p>

98、<p>  智能牙刷表詳細(xì)設(shè)計(jì)如表 4-15所示:</p><p>  表 4-15 智能牙刷表(Yashua)</p><p>  智能臺(tái)燈表詳細(xì)設(shè)計(jì)如表 4-16所示:</p><p>  表 4-16 智能臺(tái)燈表(Taideng)</p><p><b>  登錄認(rèn)證模塊設(shè)計(jì)</b></p>

99、;<p>  基于Session的單點(diǎn)登錄架構(gòu)設(shè)計(jì)</p><p>  圖4-6 基于Session的單點(diǎn)登錄設(shè)計(jì)架構(gòu)圖</p><p>  如圖 4-6所示,單點(diǎn)登錄認(rèn)證的流程如下:</p><p>  1.用戶發(fā)起請(qǐng)求訪問平臺(tái)中的某一應(yīng)用服務(wù)(如圖應(yīng)用系統(tǒng)1),此時(shí)該應(yīng)用服務(wù)模塊檢測是否有用戶的登錄Session。若用戶未登錄,則本次的訪問會(huì)被鏈接

100、到認(rèn)證服務(wù)。 </p><p>  2.認(rèn)證服務(wù)器檢測在本次訪問的Session中若沒有檢測到用戶的登錄信息,重定向至認(rèn)證服務(wù),認(rèn)證服務(wù)模塊向用戶返回登錄入口跳轉(zhuǎn)至第3步;若檢測到用戶的登錄信息,會(huì)向應(yīng)用服務(wù)返回用戶的登錄信息,跳轉(zhuǎn)至第5步。</p><p>  3.用戶輸入登錄的驗(yàn)證信息(平臺(tái)中的用戶名、密碼),認(rèn)證服務(wù)端通過匹配數(shù)據(jù)庫中的用戶名和用戶密碼,返回登錄結(jié)果。此為用戶在訪問整

101、個(gè)平臺(tái)唯一的一次登錄操作。</p><p>  4.用戶成功登錄,認(rèn)證服務(wù)模塊將用戶登錄的Session信息進(jìn)行序列化,保存在認(rèn)證服務(wù)的服務(wù)器端。</p><p>  5.認(rèn)證服務(wù)器將Session中的用戶登錄信息轉(zhuǎn)換成JSON格式通過HTTP協(xié)議傳輸返回到應(yīng)用服務(wù)器,應(yīng)用服務(wù)的服務(wù)器上重新構(gòu)建Session信息,保存當(dāng)前用戶訪問當(dāng)前應(yīng)用服務(wù)器的登錄信息(Userid等)。</p&g

102、t;<p>  6.用戶在持續(xù)訪問平臺(tái)服務(wù)的過程中,只要用戶沒有退出平臺(tái),登錄信息便保存在認(rèn)證服務(wù)器上被序列化的Session中;當(dāng)用戶訪問另一個(gè)服務(wù)模塊時(shí),該服務(wù)模塊只要向認(rèn)證服務(wù)器請(qǐng)求序列化的Session信息,服務(wù)器重復(fù)第5步便可獲得當(dāng)前登錄用戶的用戶信息,不需要重復(fù)驗(yàn)證當(dāng)前用戶的用戶信息。</p><p><b>  本章小結(jié)</b></p><p&

103、gt;  本章闡述了“用戶管理與智能硬件管理“子系統(tǒng)的設(shè)計(jì)。第一節(jié)從總體上著眼,給出了該子系統(tǒng)的架構(gòu)設(shè)計(jì),主要考慮該子系統(tǒng)后期如何接入到智能硬件阿里云端服務(wù)器平臺(tái),并且能夠?qū)崿F(xiàn)復(fù)用。第二節(jié)介紹了本系統(tǒng)如何應(yīng)用RBAC技術(shù)來設(shè)計(jì)用戶管理模塊。第三節(jié)介紹了本系統(tǒng)如何應(yīng)用“云+端”的典型架構(gòu)設(shè)計(jì)智能硬件管理模塊。第四節(jié)介紹了本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),從數(shù)據(jù)層描述了如何設(shè)計(jì)各個(gè)元素。第五節(jié)介紹了如何應(yīng)用基于經(jīng)紀(jì)人的單點(diǎn)登錄設(shè)計(jì)本系統(tǒng)的登陸認(rèn)證模塊。經(jīng)

104、過本章的設(shè)計(jì)描述,系統(tǒng)在實(shí)現(xiàn)方面有了清晰的指向與準(zhǔn)備。</p><p><b>  系統(tǒng)實(shí)現(xiàn)</b></p><p>  面向切面的軟件架構(gòu)實(shí)現(xiàn)</p><p>  實(shí)現(xiàn)AOP(面向切面編程軟件架構(gòu))的方法有許多種,其中基于PHP的主流框架包括ThinkPHP,Canphp,Zend Framework等。在結(jié)合了本系統(tǒng)的應(yīng)用背景,權(quán)衡各種框架

105、的優(yōu)劣之后,我們選擇了ThinkPHP框架來實(shí)現(xiàn)AOP架構(gòu)。</p><p>  Thinkphp框架本身的CBD(核心Core+行為Behavior+驅(qū)動(dòng)Driver)架構(gòu)采用了AOP的架構(gòu),并提供用戶自己構(gòu)建Behavior行為,可以不需要安裝其他的工具就可以實(shí)現(xiàn)面向切面編程。</p><p>  “獲得用戶角色”的Behavior 封裝</p><p>  添

106、加CBD層的Behavior,命名規(guī)則必須為”behaviorname”+”Behavior”,如” getRoleTicketBehavior”,并繼承”Behavior”類,Behavior會(huì)被識(shí)別到并加入到Behavior的標(biāo)簽中,以監(jiān)聽被調(diào)用行為。Behavior中主要處理數(shù)據(jù)的邏輯寫在run函數(shù)里。根據(jù)用戶userid獲取用戶角色信息,代碼如下。</p><p>  “獲得用戶角色”的Behavior調(diào)

107、用。</p><p>  調(diào)用Behavior,查詢用戶的角色信息的步驟如下:</p><p>  1.在Action層通過B(’tag’,’params’)方法調(diào)用Behavior,其中標(biāo)簽tag為之前定義的Behavior名(在這里是’getRoleTicket’),params為傳入Behavior的參數(shù),通常以鍵值對(duì)數(shù)組的形式傳入數(shù)據(jù)。</p><p>  

108、2.系統(tǒng)檢測到標(biāo)簽庫中對(duì)應(yīng)的Behavior,運(yùn)行其中的run函數(shù),執(zhí)行主要邏輯后,將需要返回的信息以鍵值對(duì)數(shù)組(這里是’roleTicket’)的形式寫入SESSIOIN中。</p><p>  3.通過調(diào)用SESSION中的數(shù)據(jù),即可獲得返回?cái)?shù)據(jù)。Behavior中將數(shù)據(jù)寫到SESSION里而不直接返回?cái)?shù)據(jù)的好處是系統(tǒng)可以在任何地方獲取數(shù)據(jù),而不是每次想要獲取數(shù)據(jù)都必須調(diào)用Behavior。</p>

109、;<p><b>  用戶管理模塊的實(shí)現(xiàn)</b></p><p>  用戶管理模塊主要實(shí)現(xiàn)用戶組的分配,用戶角色的分配,以及根據(jù)用戶對(duì)資源的權(quán)限來達(dá)到訪問控制的實(shí)現(xiàn)。</p><p>  圖 5-1 用戶管理——主頁用戶界面</p><p>  用戶成功登錄后,系統(tǒng)調(diào)用后臺(tái)getTicket的Behavior,分別通過“用戶-&g

110、t;角色->權(quán)限->資源”和“用戶->用戶組->角色->權(quán)限->資源”兩條路徑獲取用戶所擁有的資源及其權(quán)限。其中根目錄類型的資源用于生成用戶首頁的根目錄,如圖5-1所示:僅當(dāng)用戶擁有模塊的訪問權(quán)限,該模塊才能在根目錄中顯示。</p><p>  獲取用戶權(quán)限的getTicket行為關(guān)鍵代碼如下:</p><p>  圖 5-2 用戶管理——查詢用戶列表用

111、戶界面</p><p>  圖 5-3 用戶管理——分配角色用戶界面</p><p>  如圖5-3,進(jìn)入用戶列表界面后選擇用戶,可以更改用戶的角色,添加或者刪除。用戶進(jìn)入頁面時(shí),讀取用戶在SESSION中權(quán)限的ticket,如果在該模塊中用戶權(quán)限大于2,則顯示分配權(quán)限按鈕。</p><p>  圖 5-4 用戶管理——查詢用戶組列表用戶界面</p>

112、<p>  圖 5-5 用戶管理——分配用戶組角色用戶界面</p><p>  圖 5-6 用戶管理——管理用戶組用戶用戶界面</p><p>  如圖5-4至圖5-6所示,管理員可以新增用戶組,分配用戶組角色,修改用戶組內(nèi)的成員組成。</p><p><b>  關(guān)鍵代碼如下:</b></p><p>  角

113、色權(quán)限資源管理模塊實(shí)現(xiàn)</p><p>  角色權(quán)限資源管理模塊主要實(shí)現(xiàn),對(duì)角色授權(quán),對(duì)權(quán)限關(guān)聯(lián)資源及其操作權(quán)限等級(jí),最終達(dá)到形成角色對(duì)應(yīng)能有對(duì)哪些文件進(jìn)行操作及其操作權(quán)限關(guān)系的目的。其中權(quán)限級(jí)別分為4個(gè),查詢、新增、修改和刪除,權(quán)限等級(jí)對(duì)應(yīng)為1、2、3和4。</p><p><b>  角色管理模塊</b></p><p>  圖 5-7 角

114、色管理——查看角色列表用戶界面</p><p>  如圖5-7所示,用戶進(jìn)入頁面時(shí),讀取用戶在SESSION中權(quán)限的ticket,如果用戶在該模塊的權(quán)限大于1,則顯示新增角色按鈕;如果用戶權(quán)限大于2,則顯示分配權(quán)限按鈕。</p><p>  圖 5-8 角色管理——新增角色用戶界面</p><p>  圖 5-9 角色管理——分配角色權(quán)限用戶界面</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論