【正文】
司的日常管理工作需求,本系統(tǒng)必須支持以下功能模塊:公司信息管理模塊、物業(yè)項(xiàng)目管理模塊、業(yè)主信息管理模浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文) 7 塊、物業(yè)繳費(fèi)管理模塊。圖 23詳細(xì)描述了本系統(tǒng)的功能性需求結(jié)構(gòu)圖。 舟山市物業(yè)管理系統(tǒng)物 業(yè) 公 司 管 理 模 塊信 息 機(jī) 賬 號(hào) 管 理 模 塊物 業(yè) 項(xiàng) 目 管 理 模 塊業(yè) 主 信 息 管 理 模 塊物 業(yè) 繳 費(fèi) 管 理 模 塊小 區(qū) 信 息 管 理樓 宇 信 息 管 理房 屋 信 息 管 理物 業(yè) 費(fèi) 創(chuàng) 建物 業(yè) 費(fèi) 錄 入物 業(yè) 費(fèi) 審 核 圖 23 物業(yè)管理系統(tǒng)業(yè)務(wù)功能需求 結(jié)構(gòu)圖 (1) 物業(yè)公司管理模塊:該模塊主要是管理物業(yè)公司的基本信息。 (2) 信息機(jī)賬號(hào)管理模塊:信息機(jī)賬號(hào)是指 Open MAS 服務(wù)器上注冊(cè)的賬號(hào),每個(gè)物業(yè)公司都擁有一個(gè)賬號(hào),并且該公司所有短信業(yè)務(wù)都使用該賬號(hào)。 (3) 物業(yè)項(xiàng)目管理模塊:物業(yè)項(xiàng)目是指物業(yè)公司所管理的住宅小區(qū)或?qū)懽謽堑?,具體又包括了小區(qū)的基本信息管理、樓宇信息管理和房屋信息管理。 (4) 業(yè)主信息管理模塊:業(yè)主信息是指小區(qū)業(yè)主的基本信息及家庭成員信息,業(yè)主信息的房屋信息與物業(yè)項(xiàng)目信息關(guān)聯(lián)。 (5) 物業(yè)繳費(fèi)管理模塊:物業(yè)繳費(fèi)主要是指物業(yè)費(fèi)的收繳, 本模塊主要實(shí)現(xiàn)物業(yè)費(fèi)繳費(fèi)的流程, 以及物業(yè)費(fèi)信息的查看和檢索。 系統(tǒng)架構(gòu)設(shè)計(jì) 本系統(tǒng)采用 Struts + hibernate + Spring 架構(gòu)進(jìn)行 Web 系統(tǒng)的 開發(fā) ,同時(shí)為了解決批量短信發(fā)送后一直處于等待狀態(tài)的系統(tǒng)瓶頸,將短信發(fā)送服務(wù)設(shè)計(jì)成一個(gè)單獨(dú)的應(yīng)用程序,并通過 Java 消息機(jī)制進(jìn)行通信和同步。 本系統(tǒng)的采用 Hibernate 框架實(shí)現(xiàn)數(shù)據(jù)的持久化操作,不過在批量數(shù)據(jù)處理時(shí)考慮到執(zhí)行效率以及內(nèi)存占用等因素,采用了直接調(diào)用 JDBC 接口來實(shí)現(xiàn),同時(shí)浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文) 8 也在數(shù)據(jù)系統(tǒng)中創(chuàng)建存儲(chǔ)過程和觸發(fā)器以提高數(shù)據(jù)存儲(chǔ)的效率。 本系統(tǒng)控制層采用 Struts 框架 的 Action 來處理業(yè)務(wù)邏輯 , Action 返回的數(shù)據(jù)為 Json 格式,可以被前臺(tái)的 JavaScript 腳本語(yǔ)言處理,從而進(jìn)行顯示。 Spring 框架是一個(gè)分層架構(gòu),由 7 個(gè)定義良好的模塊組成。本系統(tǒng)使用了Spring的核心容器、 Spring上下文、 Spring AOP等組件。同時(shí)本系統(tǒng)還采用了 Spring的子項(xiàng)目,包括 Spring JMS、 Spring Security 等組件。 物 業(yè) 管 理 系 統(tǒng) W e b 應(yīng) 用 程 序S p r i n g J M S A P IJ M S A P I發(fā) 送 消 息A c t i v e M Q 消息 服 務(wù) 器短 信 服 務(wù) 程 序消息監(jiān)聽S p r i n g J M S A P IJ M S A P IH i b e r n a t eO p e n M A S 服 務(wù) 器調(diào) 用 W e b 服 務(wù)數(shù) 據(jù) 庫(kù) 數(shù) 據(jù) 存 取表 現(xiàn) 層 J S P 頁(yè) 面Spring容器S t r u t s A c t i o nW e b 瀏 覽 器RequestResponse數(shù) 據(jù) 持 久 化H i b e r n a t eD A O數(shù) 據(jù) 存 取 S e r v i c e 層 處 理 業(yè) 務(wù) 邏 輯Json數(shù)據(jù) 圖 24 物業(yè)管理系統(tǒng)整體架構(gòu) 設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì) 通過對(duì)系統(tǒng)業(yè)務(wù)需求的分析,我們抽象出以下幾個(gè)實(shí)體對(duì)象:公司、短信賬號(hào)、短信、小區(qū)、樓宇、房產(chǎn)、業(yè)主、家庭成員、物業(yè)費(fèi)項(xiàng)目、物業(yè)費(fèi) ,另外還有一張業(yè)主 房屋關(guān)系表。 各個(gè)實(shí)體對(duì)象之間的關(guān)系均為一對(duì)多關(guān)系,包括:公司— 小區(qū)、公司 — 短信賬號(hào)、小區(qū) — 樓宇、樓宇 — 房產(chǎn)、業(yè)主 — 房產(chǎn)、業(yè)主 — 家庭浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文) 9 成員、小區(qū) — 物業(yè)費(fèi)項(xiàng)目、物業(yè)費(fèi)項(xiàng)目 — 物業(yè)費(fèi)、業(yè)主 — 物業(yè)費(fèi)。 圖 25 描述了系統(tǒng)實(shí)體對(duì)象的數(shù)據(jù)庫(kù)表結(jié)構(gòu),及其它們之間的關(guān)系。 公司公司編號(hào)公司名稱公司法人公司執(zhí)照公司電話公司地址注冊(cè)時(shí)間注冊(cè)資金公司描述是否啟用...intvarchar(50)varchar(50)varchar(50)varchar(50)varchar(200)datetimeintvarchar(200)bitpk小區(qū)小區(qū)編號(hào)小區(qū)名稱公司編號(hào)所在地區(qū)所在街道詳細(xì)地址交付時(shí)間小區(qū)規(guī)模小區(qū)類型小區(qū)描述是否啟用...intvarchar(50)intvarchar(50)varchar(50)varchar(200)datetimeintvarchar(50)varchar(200)bitpkfk樓宇樓宇編號(hào)樓號(hào)小區(qū)編號(hào)樓宇類型層數(shù)跳過層數(shù)單元數(shù)單元標(biāo)識(shí)每層戶數(shù)樓宇描述是否啟用...intintintvarchar(50)intvarchar(50)intvarchar(50)intvarchar(200)bitpkfk房屋房屋編號(hào)樓宇編號(hào)房號(hào)房屋面積是否入住描述...intintvarchar(50)floatbitvarchar(200)pkfk業(yè)主業(yè)主編號(hào)房號(hào)業(yè)主姓名房屋面積手機(jī)號(hào)碼性別名族籍貫生日婚否工作單位個(gè)人愛好證件類型證件編號(hào)家庭電話領(lǐng)房時(shí)間裝修時(shí)間入住時(shí)間車位號(hào)車牌號(hào)車型號(hào)儲(chǔ)藏室使用狀況其他地址緊急聯(lián)系人緊急電話描述...intvarchar(50)intfloatvarchar(50)varchar(50)varchar(50)varchar(50)datetimebitvarchar(100)varchar(100)varchar(50)varchar(50)varchar(50)datetimedatetimedatetimevarchar(50)varchar(50)varchar(50)varchar(50)varchar(50)varchar(200)varchar(50)varchar(50)varchar(200)pk家庭成員成員編號(hào)業(yè)主編號(hào)成員姓名關(guān)系證件編號(hào)聯(lián)系電話...intintvarchar(50)varchar(50)varchar(50)varchar(50)pkfk房屋業(yè)主編號(hào)房屋編號(hào)業(yè)主編號(hào)Intintintpkfk1fk2物業(yè)費(fèi)項(xiàng)目編號(hào)小區(qū)編號(hào)項(xiàng)目名稱繳費(fèi)年份繳費(fèi)月份創(chuàng)建時(shí)間創(chuàng)建人員...intintvarchar(100)intintdatetimevarchar(50)pkfk物業(yè)費(fèi)編號(hào)項(xiàng)目編號(hào)房屋編號(hào)業(yè)主編號(hào)繳費(fèi)年份繳費(fèi)月份繳費(fèi)日期應(yīng)收金額實(shí)收金額收費(fèi)人員錄入人員錄入時(shí)間審核時(shí)間審核人員狀態(tài)備注...intintintintintintdatetimefloatfloatvarchar(50)varchar(50)datetimedatetimevarchar(50)varchar(50)textpkfk1fk3fk2短信賬號(hào)編號(hào)賬號(hào)名稱上行地址下行地址用戶名密碼擴(kuò)展碼公司編號(hào)...intvarchar(50)varchar(200)varchar(200)varchar(50)varchar(50)intintpkfk歷史短信編號(hào)短信賬號(hào)接收人狀態(tài)短信類別發(fā)送時(shí)間發(fā)送人短信內(nèi)容...intinttextvarchar(0)intdatetimevarchar(50)varchar(200)pkfk 圖 25 物業(yè)管理系統(tǒng)業(yè)務(wù)功能模塊數(shù)據(jù)庫(kù)關(guān)系圖 基于角色的訪問控制系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)表設(shè)計(jì)在第四章中詳細(xì)描述。 小結(jié) 本章對(duì)系統(tǒng)需求展開了詳細(xì)的分析,包括系統(tǒng)的業(yè)務(wù)功能需求和非業(yè)務(wù)功能需求(如:權(quán)限控制、日志系統(tǒng)等),接著給出了系統(tǒng)架構(gòu)設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)。浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文) 10 第 三 章 物業(yè)管理系統(tǒng)安全平臺(tái)構(gòu)建 RBAC 基本模型 1992 年, Ferraiolo 等人提出了基于角色的訪問控制模型 [1]。在 RBAC 模型中,權(quán)限( Permission)直接通過角色( Role)起作用,用戶( User)被賦予一個(gè)或多個(gè)角色進(jìn)而獲取角色的權(quán)限 , 這很大程度上 簡(jiǎn)化了權(quán)限的管理。在這種權(quán)限模式下,用戶的角色轉(zhuǎn)換變得很容易實(shí)現(xiàn)。角色針對(duì)組織中的各種單一功能進(jìn)行創(chuàng)建,用戶依據(jù)他們的責(zé)任和職位被指派一個(gè)或多個(gè)角色,用戶對(duì)信息的訪問在指派角色的基礎(chǔ)上被管制。 1996 年, Sandhu 發(fā)布了 RBAC96 的 RBAC 基本 模型 [2],圖 36 顯示了 RBAC的基本模型。該模型中有三個(gè)實(shí)體集合和一個(gè)會(huì)話集合,叫做用戶( User)、角色( Role)、權(quán)限( Permission)以及會(huì)話( Session),還包括了兩對(duì)關(guān)系,用戶角色分配( UA)和角色權(quán)限分配( PA),這兩對(duì)關(guān)系都是 多對(duì)多的關(guān)系。一個(gè)用戶可以是多個(gè)角色的成員,一個(gè)角色也可以擁有多個(gè)用戶;同樣的,一個(gè)角色可以擁有多個(gè)權(quán)限,同一個(gè)權(quán)限也可以分配給多個(gè)角色。 RBAC 的關(guān)鍵就體現(xiàn)在這兩個(gè)關(guān)系中。最終,是用戶執(zhí)行權(quán)限,角色作為中介使得用戶執(zhí)行權(quán)限。 U s e r R o l e P e r m i s s i o nU AP AS e s s i o nU s e r _ S e s s i o n sS e s s i o n _ R o l e s 圖 36 RBAC 基本模型 RBAC 擴(kuò)展模型 RBAC 基本模型簡(jiǎn)化了權(quán)限的管理,使得可以靈活配置用戶所擁有的權(quán)限,浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文) 11 但是它并不能滿足所有的需求 。例如:在物業(yè)管理系統(tǒng)中,公司管理員可以查看該公司管理的所有小區(qū)的業(yè)主信息、繳費(fèi)信息等,但是小區(qū)管理員只能查看自己小區(qū)的信息。同樣, A 物業(yè)公司只能查看自己公司管理的小區(qū)信息,而不能查看B 公司的小區(qū)新。如果 要求 RBAC 基本模型實(shí)現(xiàn)上述控制,將會(huì)導(dǎo)致權(quán)限集合的擴(kuò)散,使得用戶能夠訪問權(quán)限范圍之外的數(shù)據(jù)。 經(jīng)過分析不難發(fā)現(xiàn),凡是涉及業(yè)務(wù)邏輯的控制,使用 RBAC 基本模型進(jìn)行權(quán)限管理是比較困難的。 RBAC 基本模型優(yōu)勢(shì)在于解決 對(duì)象(資源)層面上的權(quán)限管理,即執(zhí)行者能否操作某個(gè)對(duì)象,能夠?qū)ζ溥M(jìn)行何種操作。而對(duì)于數(shù)據(jù)層面上的權(quán)限管理, RBAC 基本模型在實(shí)現(xiàn)校驗(yàn)上是非常低效和復(fù)雜的。為此,本課題根據(jù)實(shí)際的我業(yè)務(wù)需求,對(duì) RBAC 基本模型進(jìn)行擴(kuò)展,設(shè)計(jì)了符合物業(yè)管理系統(tǒng)需求的權(quán)限管理模型 —— RBAC 擴(kuò)展模型,圖 37 顯示了 RBAC 擴(kuò)展模型: U s e r R o l e P e r m i s s i o nU A P AG r o u pG AS e s s i o nU s e r _ S e s s i o n S e s s i o n _ R o l eS e s s i o n _ G r o u pM o d u l eM AR e s o u r c eR A 圖 37 RBAC 擴(kuò)展模型 比較 RBAC 基本模型和 RBAC 擴(kuò)展模型,我們可以看到 在 RBAC 擴(kuò)展模型中 增加了三個(gè)對(duì)象集合和三對(duì)關(guān)系,他們分別是:用戶 組( Group)、模塊( Module)、資源( Resource)和用戶 用戶組分配( GA)、角色模塊分配( MA)、權(quán)限資源分配( RA) 。 基本要素 用戶( User) :在這個(gè)模型中用戶是指直接操作本系統(tǒng)的人,如:物業(yè)公司的工作人員。 角色( Role): 是物業(yè)公司中特定的一種工作職責(zé)或者是職位,如:公司管理員、會(huì)計(jì)等。屬于同一角色的用戶,他們一般是同一職位或是擁有相同責(zé)任的一浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文) 12 組人,他們對(duì)本系統(tǒng)有著相同的操作功能。 用戶組( Group):表示能夠訪問同一批數(shù)據(jù)的一組用 戶的集合,例如: A 公司用戶組,表示屬于該組的用戶都能夠訪問 A 公司的所有數(shù)據(jù); A1 小區(qū)用戶組,表示屬于該組的用戶都能訪問 A1 小區(qū)的所有數(shù)據(jù)。 模塊( Module):表示一系列功能操作的集合,例如:用戶信息管理(包括了用戶的增、刪、改功能),物業(yè)繳費(fèi)管理(包括了物業(yè)費(fèi)創(chuàng)