摘要:CSCW系統(tǒng)中用戶和訪問對(duì)象的數(shù)量逐漸增多,使得系統(tǒng)的管理工作日益繁重。委托授權(quán)機(jī)制能較好地解決CSCW中授權(quán)管理復(fù)雜的問題。為了有利于原型系統(tǒng)或?qū)嶋H應(yīng)用系統(tǒng)的設(shè)計(jì)和開發(fā),在面向CSCW基于角色一活動(dòng)的委托模型RABDM for CSCW(Role-Activity Based Delegation Model for CSCW)的基礎(chǔ)上,利用統(tǒng)一建模語(yǔ)言UML(Unifled Modeling Language)對(duì)其進(jìn)行面向?qū)ο蟮目梢暬o態(tài)建模和動(dòng)態(tài)建模。
關(guān)鍵詞:計(jì)算機(jī)支持協(xié)同工作;委托授權(quán);RABDM for CSCW;可視化建模
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1006-8228(2011)08-17-03
引言
計(jì)算機(jī)支持的協(xié)同工作CSCW(Computer SupportedCooperative Work)是指一組用戶在一個(gè)共享的工作環(huán)境中協(xié)作完成一個(gè)任務(wù)。CSCW從本質(zhì)上講是通過計(jì)算機(jī)技術(shù)使處于不同地理位置的人們能夠一起工作,而感覺不到地理位置的差異,使計(jì)算機(jī)從傳統(tǒng)的只能提高個(gè)體工作效率變?yōu)槟芴岣呷后w工作效率。近年來,CSCW的研究在理論和技術(shù)方面都有很大的進(jìn)展,在許多領(lǐng)域得到廣泛的應(yīng)用。它提供了一個(gè)開放的、分布式協(xié)同工作環(huán)境,可以實(shí)現(xiàn)信息共享、多媒體通信、協(xié)作管理,支持多用戶同步或異步合作。但由于CSCW系統(tǒng)中各個(gè)用戶的地位、職責(zé)不同,使得各數(shù)據(jù)的共享范圍不同,因此需要一定的訪問控制策略,來保證CSCW系統(tǒng)中協(xié)同工作的正常運(yùn)行。
1、面向CSCW基于角色——活動(dòng)的委托模型
基于角色的訪問控制RBAC(Role Base Access Control),在用戶和權(quán)限之間引入角色的概念,將訪問權(quán)限分配給角色,系統(tǒng)中的用戶擔(dān)任一定的角色,用戶通過角色與權(quán)限間接聯(lián)系。應(yīng)用系統(tǒng)中的用戶一般數(shù)量比較多而且會(huì)經(jīng)常變動(dòng),對(duì)用戶直接授權(quán)會(huì)增加授權(quán)管理的復(fù)雜性。與用戶相比,角色一般數(shù)量相對(duì)較少且相對(duì)穩(wěn)定。角色實(shí)際上是與特定崗位相關(guān)的一個(gè)權(quán)限集合,當(dāng)用戶改變時(shí)只需進(jìn)行角色的撤消和重新分配,這樣就降低了授權(quán)管理的復(fù)雜性。在分布式環(huán)境下,系統(tǒng)的管理工作非常繁重。由于RBAC策略采用集中式管理,而隨著CSCW系統(tǒng)中用戶和訪問對(duì)象的數(shù)量逐漸增多,僅僅依靠某些管理人員采用傳統(tǒng)的集中式授權(quán)管理方式,需要管理人員參與系統(tǒng)全部的授權(quán)活動(dòng),系統(tǒng)的管理負(fù)擔(dān)將會(huì)加重,不能滿足異構(gòu)分布式CSCW環(huán)境下安全體系構(gòu)建的要求,集中式的授權(quán)服務(wù)器管理工作因復(fù)雜而龐大將不堪重負(fù)。委托授權(quán)機(jī)制能較好地解決CSCW中授權(quán)管理復(fù)雜的問題。委托授權(quán)的本質(zhì)是用戶將自己所擁有的權(quán)限轉(zhuǎn)授給其他用戶,使其代表自己行使一定的職責(zé)。委托授權(quán)將分布式環(huán)境下的集中式授權(quán)管理工作分散實(shí)施,提高了分布式CSCW系統(tǒng)的伸縮性,適合分布式CSCW系統(tǒng)的授權(quán)管理模式。文獻(xiàn)[3]提出了面向CSCW基于角色一活動(dòng)的委托模型RABDM for CSCW(Role-ActivityBased Delegation Model for CSCW),如圖1所示。
2、RABDM for CSCW面向?qū)ο蟮目梢暬?/p>
2.1 面向?qū)ο蠓椒ê吞匦?/p>
面向?qū)ο蟮姆椒ㄊ且环N運(yùn)用對(duì)象、類、繼承、封裝、聚合、消息傳遞和多態(tài)性等概念來構(gòu)造系統(tǒng)的軟件開發(fā)方法。面向?qū)ο蠓椒ǖ幕舅枷胧牵簭默F(xiàn)實(shí)世界中客觀存在的事物(即對(duì)象)出發(fā)來構(gòu)造軟件系統(tǒng),并在系統(tǒng)構(gòu)造中盡可能運(yùn)用人類自然的思維方式。面向?qū)ο蠓椒ǖ闹饕匦允牵悍庋b性、繼承性和多態(tài)性。
2.2 統(tǒng)一建模語(yǔ)言UML
統(tǒng)一建模語(yǔ)言UML(Unified Modeling Language)是一種面向?qū)ο蟮目梢暬UZ(yǔ)言。它支持面向?qū)ο笙到y(tǒng)的分析、設(shè)計(jì)、實(shí)現(xiàn)和交付等,可用于系統(tǒng)的理解、設(shè)計(jì)、瀏覽、維護(hù)和信息控制。UML中定義了五類模型圖,分別為用例圖、靜態(tài)圖(類圖、對(duì)象圖和包圖)、行為圖(狀態(tài)圖和活動(dòng)圖)、交互圖(時(shí)序圖和合作圖)、實(shí)現(xiàn)圖(構(gòu)件圖和部署圖)。
2.3 RABDM for CSCW的可視化建模
在異構(gòu)分布式CSCW環(huán)境中,RABDM for CSCW較好解決了CSCW系統(tǒng)缺少委托授權(quán)的問題,是一種在異構(gòu)分布式CSCW環(huán)境下解決委托問題較為完備的模型。為了縮短理論安全模型形式化、抽象性和實(shí)際應(yīng)用系統(tǒng)開發(fā)之間的差距,支持系統(tǒng)面向?qū)ο蟮姆治雠c設(shè)計(jì),我們采用面向?qū)ο蟮乃枷肜肬ML對(duì)RABDM for CSCW進(jìn)行可視化建模。
RABDM for CSCW的用例建模,主要從用戶角度描述系統(tǒng)的對(duì)外功能。對(duì)于這些功能的實(shí)施者可以分為以下四類:系統(tǒng)管理員、系統(tǒng)安全員、系統(tǒng)審計(jì)員和普通用戶。這四類用戶分別完成不同的工作:系統(tǒng)管理員完成用戶和普通角色的管理;系統(tǒng)安全員負(fù)責(zé)管理約束規(guī)則庫(kù),實(shí)施角色、許可和會(huì)話約束規(guī)則;系統(tǒng)審計(jì)員主要完成對(duì)系統(tǒng)管理員授權(quán)管理操作的跟蹤監(jiān)視,以及對(duì)普通用戶委托授權(quán)和應(yīng)用系統(tǒng)數(shù)據(jù)訪問的審計(jì)等;普通用戶主要是在系統(tǒng)中創(chuàng)建與撤銷會(huì)話、進(jìn)行角色委托等。RABDM for CSCW用例如圖2所示。
RABDM for CSCW的靜態(tài)建模,主要是根據(jù)RABDMfor CSCW模型定義七個(gè)實(shí)體類及類之間的關(guān)聯(lián)、泛化關(guān)系及關(guān)聯(lián)的多重性并分別標(biāo)示主要的屬性和方法。RABDM forCSCW模型中七個(gè)實(shí)體類分別是,用戶、普通角色、委托角色組、會(huì)話、任務(wù)、許可和約束。其中約束類被泛化為角色委托約束、角色指派約束、許可約束和會(huì)話約束等子類。這些子類繼承類公用的屬性和方法,同時(shí)具有自身特有的屬性和方法。用戶、普通角色、委托角色組三個(gè)類之間是多對(duì)多的關(guān)系,用戶和會(huì)話之間是一對(duì)多的關(guān)系,角色和任務(wù)是一對(duì)一的關(guān)系,任務(wù)和許可之間是多對(duì)多的關(guān)系等。類的關(guān)系如圖3所示。
RABDM for CSCW動(dòng)態(tài)建模的任務(wù)是描述系統(tǒng)的動(dòng)態(tài)行為,顯示對(duì)象在系統(tǒng)運(yùn)行期間不同時(shí)刻的動(dòng)態(tài)交互過程。為了清楚地表示對(duì)象之間交互作用過程的時(shí)間順序,我們用時(shí)序圖為系統(tǒng)動(dòng)態(tài)建模。為用戶分配角色的時(shí)序圖如圖4所示。
為用戶分配角色的時(shí)序圖所表示的對(duì)象之間的交互過程為:(1)系統(tǒng)管理員通過函數(shù)initiate()啟動(dòng)UA接口。(2)UA接口通過函數(shù)initiate()啟動(dòng)UA控制臺(tái)。(3)UA控制臺(tái)通過函數(shù)getuserlist()向用戶實(shí)體獲取用戶列表。(4)UA控制臺(tái)通過函數(shù)showuserlist()讓UA接口顯示用戶列表。(5)UA控制臺(tái)通過函數(shù)getrolelist()向角色實(shí)體獲取角色列表。(6)UA控制臺(tái)通過函數(shù)showrolelist()讓UA接口顯示角色列表。(7)系統(tǒng)管理員通過函數(shù)seleemser()在UA接口來選擇用戶。(8)系統(tǒng)管理員通過函數(shù)seleetroles()在UA接口來選擇角色。(9)UA接口通過函數(shù)setUA()在UA控制臺(tái)為用戶分配角色。(10)UA控制臺(tái)通過函數(shù)checkUA()檢查UA約束實(shí)體的約束條件。(11)如果為用戶分配的角色滿足約束條件,則UA控制臺(tái)通過函數(shù)addUA()向UA實(shí)體添加角色;如果為用戶分配的角色不滿足約束條件,則分配結(jié)果無(wú)效。(12)最后,UA控制臺(tái)通過函數(shù)showresult()在UA接口顯示系統(tǒng)管理員為用戶分配角色的結(jié)果。
用戶可以將自己具有的角色委托給其他用戶,使其代表自己行使一定職權(quán)。用戶之間進(jìn)行委托授權(quán)時(shí)序圖如圖5所示。
用戶之間委托授權(quán)時(shí)序圖中各函數(shù)說明如下。
(1)initiate():?jiǎn)?dòng)委托授權(quán)接口;
(2)initiate():?jiǎn)?dòng)委托授權(quán)控制臺(tái);
(3)getuserlist():獲取用戶列表:
(4)showuserlist():顯示用戶列表;
(5)getrolelist():獲取角色列表;
(6)showrolelist():顯示角色列表;
(7)selectuser():選擇用戶;
(8)selectroles():選擇角色;
(9)setdelegation():進(jìn)行角色委托授權(quán);
(10)checkdelegation():檢查委托的角色;
(11)adddelegation():若滿足約束條件,將委托角色授權(quán)給另一用戶;
(12)showresult():顯示委托授權(quán)結(jié)果。
3、結(jié)束語(yǔ)
本文根據(jù)面向CSCW基于角色一活動(dòng)的委托授權(quán)模型RABDM for CSCW,采用面向?qū)ο蟮脑O(shè)計(jì)思想,利用UML通過用例圖、類關(guān)系圖和時(shí)序圖進(jìn)行了可視化靜態(tài)建模和動(dòng)態(tài)建模,這項(xiàng)工作有助于原形系統(tǒng)或?qū)嶋H應(yīng)用系統(tǒng)的設(shè)計(jì)和開發(fā)。利用本文的建模結(jié)果來實(shí)現(xiàn)CSCW委托授權(quán)的原形系統(tǒng),是我們下一步需要開展的研究工作。
參考文獻(xiàn):
[1]史美林,向勇,楊光信.計(jì)算機(jī)支特的協(xié)同工作理論與應(yīng)用[M].清華大學(xué)出版社,1999.
[2]龔能,李玉順,史美林.協(xié)作環(huán)境中的關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)科學(xué),2005.32(9):230-233.
[3]張志勇,普杰信.異構(gòu)分布式CSCW委托授權(quán)模型及其訪問控制[J].計(jì)算機(jī)工程,2006.32(12):71-73.
[4]張志勇,普杰信.一種擴(kuò)展的委托授權(quán)模型及其面向?qū)ο蟮慕J].計(jì)算機(jī)應(yīng)用與軟件.2005.22(9):30-32.
[5]Grady Booch,James Rumbaugh,lvar Jacobson.UML用戶指南[M].機(jī)械工業(yè)出版社,2001.
[6]刁成嘉.面向?qū)ο蠹夹g(shù)導(dǎo)論——系統(tǒng)分析與設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2004.
[7]張志勇,楊林,馬建峰,普杰信.CSCW系統(tǒng)訪問控制模型及其基于可信計(jì)算技術(shù)的實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2007.34(9):117-121.124
[8]朱君,湯庸.基于角色和任務(wù)的CSCW系統(tǒng)訪問控制技術(shù)研究[J].計(jì)算機(jī)科學(xué),2010.37(7):130~133.