譚睿 林輝 康澤昆
摘 要:醫(yī)療與養(yǎng)老在中老年群體中一直有很大需求,然而長(zhǎng)期以來,醫(yī)療與養(yǎng)老的提供方卻很難與需要醫(yī)養(yǎng)服務(wù)的需求方良好對(duì)接,從而產(chǎn)生資源浪費(fèi)。設(shè)計(jì)醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng),將很好改善此情況。在該系統(tǒng)中,熱線接線員可將用戶需求進(jìn)行記錄,并派發(fā)到相關(guān)服務(wù)提供方。該系統(tǒng)還提供了一系列諸如工作量統(tǒng)計(jì)、管理員設(shè)置、熱線管理等功能。在系統(tǒng)設(shè)計(jì)中采用了基于規(guī)則的專家系統(tǒng)和帶有繼承的基于角色訪問控制,從而達(dá)到優(yōu)化流程和解耦系統(tǒng)模塊的目的。
關(guān)鍵詞:管理系統(tǒng);RBAC;專家系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:There is always a great demand of medical and healthcare resources in middle-aged group,but it is difficult to match the medical and healthcare provider with the demander for a long time,hence the resources are wasted sometimes.The design and implementation of VCMS hotline subsystem will surely improve this situation.In this system,hotline operator can record the demand of users and the VCMS system will dispatch the demands to appropriate providers.In the meantime,workload account of operator,hotline manager settings,hotline settings are also provided by system.During the design period of system,Rule Based Expert System(RBES) and Role-Based policies Access Control(RBAC)with inheritance is adopted to optimize the process and decouple modules of system.
Keywords:management system;RBAC;expert system1 引言(Introduction)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,以及“互聯(lián)網(wǎng)+”戰(zhàn)略的實(shí)施,互聯(lián)網(wǎng)在各個(gè)傳統(tǒng)行業(yè)中的應(yīng)用愈來愈多。在許多傳統(tǒng)系統(tǒng)中,成員類別多、數(shù)量多、權(quán)限管理復(fù)雜,許多復(fù)雜系統(tǒng)甚至難以使用傳統(tǒng)的中心化的權(quán)限控制模式,因系統(tǒng)復(fù)雜性的提升和可重用性的要求使得系統(tǒng)需要細(xì)粒度的設(shè)計(jì),而細(xì)粒度的設(shè)計(jì)會(huì)使得對(duì)其的控制受到限制,因而需要對(duì)訪問控制進(jìn)行科學(xué)設(shè)計(jì)與管理。
在醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng)中,引入了基于角色的訪問控制來解決多角色多用戶組的權(quán)限管理,并通過引入基于規(guī)則的專家系統(tǒng)(Rule-Based Expert Systems,RBES),使用符合JSR-94規(guī)范的Java規(guī)則引擎,達(dá)到將部分業(yè)務(wù)邏輯的決策從代碼中分離的目的,從而使得規(guī)則邏輯的更新更加實(shí)時(shí)、靈活。同時(shí)由于分離后的業(yè)務(wù)規(guī)則與Java代碼解耦,使用以上技術(shù)可使決策脫離Java代碼,規(guī)則維護(hù)更加便利。
2 相關(guān)技術(shù)簡(jiǎn)介(Introduction of related technology)
RBAC的全稱是Role-Based Access Control,意即基于角色的訪問控制。在RBAC中,角色與權(quán)限相聯(lián)系,用戶被視為合適的角色的成員,從而得到這些角色相對(duì)應(yīng)的權(quán)限。通過這樣的設(shè)計(jì),大大簡(jiǎn)化了權(quán)限的管理[1]。
JAVA規(guī)則引擎是指使用預(yù)定義的語義規(guī)則來進(jìn)行決策,它可以被嵌入到其他應(yīng)用系統(tǒng)中,接受應(yīng)用系統(tǒng)的輸入,根據(jù)規(guī)則文件中的對(duì)應(yīng)規(guī)則進(jìn)行判斷[2]。Drools是一種JAVA規(guī)則引擎,它提供了規(guī)則引擎、基于web的規(guī)則管理平臺(tái)和其他IDE的插件,是目前較為流行的JAVA規(guī)則引擎。
SSM是一種目前非常流行的開源web應(yīng)用程序框架,它是Struts、Spring和Mybatis的組合。SSM框架是一種MVC設(shè)計(jì)模式的體現(xiàn)。MVC(模型,視圖,控制器)是一種用于交互式的應(yīng)用程序的體系結(jié)構(gòu)設(shè)計(jì)模式,它將交互式應(yīng)用構(gòu)架分為三個(gè)獨(dú)立的模塊,其一是模型模塊,主要用于數(shù)據(jù)表示和業(yè)務(wù)邏輯部分;其二是視圖模塊,主要用于提供數(shù)據(jù)的呈現(xiàn)和用戶輸入;其三為控制器模塊,用于對(duì)請(qǐng)求進(jìn)行調(diào)度并進(jìn)行流控制[3]。
3 需求分析和用例設(shè)計(jì)(Requirements analysis and
use-case design)
3.1 需求分析
隨著現(xiàn)代社會(huì)的發(fā)展,人們對(duì)于醫(yī)療保健方面的需求越來越大,社區(qū)醫(yī)療保健已成為當(dāng)今醫(yī)療領(lǐng)域的研究熱點(diǎn)之一。針對(duì)國內(nèi)社區(qū)醫(yī)療服務(wù)現(xiàn)狀和居民需求,已經(jīng)開發(fā)出了全線上的社區(qū)服務(wù)中心系統(tǒng)。在全線上平臺(tái)的社區(qū)服務(wù)中心系統(tǒng)中,社區(qū)居民可以在任何時(shí)刻,在覆蓋服務(wù)范圍內(nèi)享受所需的社區(qū)公共服務(wù)。但由于該系統(tǒng)的用戶包含了大量中老年人群,該人群對(duì)互聯(lián)網(wǎng)較不熟悉,因而需要建立醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng),幫助這一群體的用戶解決就診和養(yǎng)老方面的困難,提升用戶與服務(wù)機(jī)構(gòu)之間關(guān)系建立的效率。
在醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng)中,熱線接線員接聽有就診或保健需求的用戶的來電,根據(jù)需求查詢能滿足其需求的服務(wù)機(jī)構(gòu),通過平臺(tái)智能派單向服務(wù)機(jī)構(gòu)發(fā)出服務(wù)請(qǐng)求,由服務(wù)機(jī)構(gòu)派出員工為用戶提供醫(yī)療服務(wù)。其中,派單等業(yè)務(wù)邏輯由已有的社區(qū)服務(wù)中心系統(tǒng)提供接口。熱線系統(tǒng)主要需要解決需求為:接線員的下單,對(duì)熱線下單訂單的增改刪查、工作量統(tǒng)計(jì)和熱線人事管理等。
3.2 用例設(shè)計(jì)
為了能讓熱線工作人員更便捷地向用戶提供服務(wù),我們?cè)谙到y(tǒng)中劃分出三種角色:開發(fā)人員、熱線接線員和熱線管理員。其中,我們基于RBAC模型設(shè)計(jì)了熱線管理員與熱線接線員等角色之間的繼承關(guān)系。圖1為熱線服務(wù)的角色和主要用例。
(1)開發(fā)人員相關(guān)用例的設(shè)計(jì)
由于系統(tǒng)的使用對(duì)象是熱線工作人員,所以不具有一般意義上的個(gè)人注冊(cè)功能,系統(tǒng)主要讓開發(fā)人員(角色)承擔(dān)了熱線工作人員賬號(hào)的創(chuàng)建任務(wù)。在軟件的實(shí)際使用環(huán)境中,熱線管理員應(yīng)主動(dòng)聯(lián)系開發(fā)人員(角色)在系統(tǒng)中將用戶級(jí)別設(shè)置為熱線管理員級(jí)別。開發(fā)人員(角色)在使用“建立角色”功能時(shí),需要輸入所建立角色信息和類別(熱線管理員、熱線接線員等)、所在熱線號(hào)碼等。開發(fā)人員在使用新建熱線功能時(shí),需要確定熱線名稱、熱線號(hào)碼、熱線服務(wù)范圍并設(shè)立一位管理員。開發(fā)人員在使用熱線管理功能時(shí),可實(shí)現(xiàn)熱線的增改刪查。對(duì)熱線的部分修改操作,可能會(huì)導(dǎo)致相關(guān)聯(lián)的熱線接線員和管理員的相關(guān)記錄級(jí)聯(lián)修改。
(2)熱線接線員用例的設(shè)計(jì)
創(chuàng)建請(qǐng)求單是所有熱線相關(guān)角色用戶都具有的功能,熱線接線員通過“創(chuàng)建請(qǐng)求單”功能,可以為有醫(yī)療需求的用戶向服務(wù)機(jī)構(gòu)發(fā)出服務(wù)請(qǐng)求。請(qǐng)求單信息包含創(chuàng)建人ID、服務(wù)對(duì)象、服務(wù)項(xiàng)目、服務(wù)機(jī)構(gòu)等。
(3)熱線管理員特殊用例的設(shè)計(jì)
熱線管理員除繼承了熱線接線員全部角色功能外,同時(shí)包括增改刪查接線員和人員工作量統(tǒng)計(jì)子模塊。熱線管理員通過“人員工作量統(tǒng)計(jì)”功能,可以統(tǒng)計(jì)在特定日期段之內(nèi),每個(gè)接線員的工作量。呈現(xiàn)的信息包含姓名、請(qǐng)求單數(shù)量、服務(wù)項(xiàng)目數(shù)量。同時(shí),熱線管理員可以將管理權(quán)限轉(zhuǎn)移。為符合實(shí)際使用環(huán)境的需要,管理權(quán)限只能轉(zhuǎn)移到同一熱線的另一名熱線員名下,同時(shí)自身將降權(quán)。
4 系統(tǒng)核心設(shè)計(jì)(Core design of the system)
4.1 權(quán)限控制核心邏輯設(shè)計(jì)
在數(shù)據(jù)庫中,Roles表主要用于存儲(chǔ)角色信息,Permissions表主要用于存儲(chǔ)權(quán)限信息,Rolepermission則主要存儲(chǔ)角色與權(quán)限的一對(duì)多關(guān)系。此外,還有Userrole表用于存儲(chǔ)用戶與角色的對(duì)應(yīng)關(guān)系,Users表用于存儲(chǔ)用戶信息。
當(dāng)合法用戶登錄時(shí),系統(tǒng)首先檢查Userrole表確定其對(duì)應(yīng)的一個(gè)角色,再根據(jù)該角色在Role中遞歸查找其對(duì)應(yīng)的父角色,不斷查詢直到角色集合不再增加為止。由于這一步驟,良好的解決了諸如熱線管理員同時(shí)繼承有熱線接線員全部角色對(duì)應(yīng)權(quán)限的角色繼承問題,從而確定了該用戶所屬的全部角色繼承樹。最后,根據(jù)該用戶所屬的全部角色,再根據(jù)Rolepermission表確定該用戶可操作的權(quán)限集合,再根據(jù)Permissions表確定其有權(quán)訪問的具體資源和頁面。當(dāng)用戶所訪問的資源超出了其所定義的權(quán)限時(shí),框架將提前檢查到并拒絕越權(quán)提供服務(wù)。
在醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng)中,使用帶有繼承關(guān)系的RBAC設(shè)計(jì),既保持了用戶與權(quán)限之間的松耦合性,也同時(shí)保持了權(quán)限更改的靈活性、便捷性、繼承性等特性。從而使得用戶權(quán)限控制更加科學(xué)。
4.2 Drools專家系統(tǒng)設(shè)計(jì)
Drools是一種基于規(guī)則的專家系統(tǒng)的具體實(shí)現(xiàn),是Jboss旗下的Java規(guī)則引擎。Drools將規(guī)則存放在后綴名為.drl的文本文件中,drl規(guī)則的簡(jiǎn)化格式如下:
rule "規(guī)則名稱"
end
使用Drools后,即將一些事件傳入,然后由Drools規(guī)則引擎根據(jù)預(yù)定義的規(guī)則進(jìn)行判斷,然后做出相應(yīng)的動(dòng)作,產(chǎn)生動(dòng)作流。其典型結(jié)構(gòu)[4]如圖3所示。
Drools規(guī)則在改變之后無需編譯即可動(dòng)態(tài)運(yùn)行,用戶可在線修改規(guī)則而服務(wù)器不需要停機(jī),提高適應(yīng)能力和動(dòng)態(tài)運(yùn)行能力。
在醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng)中,使用RBAC將用戶與適當(dāng)權(quán)限綁定。具體代碼中,出于將代碼與規(guī)則分離解耦的目的,將實(shí)際請(qǐng)求資源的權(quán)限與角色間關(guān)聯(lián)的判斷分離到Drools規(guī)則文件中,從而達(dá)到優(yōu)化系統(tǒng)的目的。部分代碼如下:5 結(jié)論(Conclusion)
醫(yī)養(yǎng)結(jié)合社區(qū)服務(wù)中心熱線系統(tǒng)的設(shè)計(jì)中,使用基于規(guī)則的專家系統(tǒng)(RBES)和基于角色訪問控制(RBAC)技術(shù),在松耦合、靈活性、便捷性、動(dòng)態(tài)性等方面對(duì)系統(tǒng)進(jìn)行了優(yōu)化。這些優(yōu)化方法可用于廣泛的互聯(lián)網(wǎng)應(yīng)用系統(tǒng)中,對(duì)于同類型的管理系統(tǒng)有較好的適用性。
參考文獻(xiàn)(References)
[1] Sandhu R S,et al.Role-Based Access Control Models yz[J].IEEE computer,1996,29(2):38-47.
[2] Li M,et al.Design and Realization of Transformer Fault Diagnostic Expert System Based on Drools[C].2015 International Conference on Computational Intelligence and Communication Networks(CICN).IEEE,2015:1583-1588.
[3] Wojciechowski J,et al.MVC Model,Struts Framework and File Upload Issues in Web Applications Based on J2EE Platform[C].Modern Problems of Radio Engineering,Telecommunications and Computer Science,2004.Proceedings of the International Conference.IEEE,2004:342-345.
[4] Fobel A,Subramanian N.Comparison of the Performance of Drools and Jena Rule-Based Systems for Event Processing on the Semantic Web[C].2016 IEEE 14th International Conference on Software Engineering Research,Management and Applications(SERA).IEEE,2016:24-30.
作者簡(jiǎn)介:
譚 睿(1995-),男,本科生.研究領(lǐng)域:軟件工程.
林 輝(1994-),男,本科生.研究領(lǐng)域:計(jì)算機(jī)科學(xué)與技術(shù).
康澤昆(1994-),男,本科生.研究領(lǐng)域:軟件工程.