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