(湖南大學(xué) 計(jì)算機(jī)與通信學(xué)院, 長沙 410082)
摘 要:
國內(nèi)外政策描述規(guī)范方面的研究,主要有四個流派:KAoS、Rei、Ponder和PRAL。首先對這幾個流派進(jìn)行了詳細(xì)的介紹,利用舉例的方式闡述它們政策的表示方法、政策類型,同時概括介紹了它們的政策沖突發(fā)現(xiàn)和解決方法。按照政策表達(dá)、政策類型、政策沖突解決和政策的制定工具這幾個角度對四個流派進(jìn)行分析和比較,指出它們各自的優(yōu)勢與不足。最后,總結(jié)分析了當(dāng)前研究的特點(diǎn)和不足,指出了未來的研究方向。
關(guān)鍵詞:政策; 描述規(guī)范; 政策沖突; 本體
中圖分類號:TP309文獻(xiàn)標(biāo)志碼:A
文章編號:10013695(2009)04121705
Overview of policy description specification research
HU Jun, WANG Baiyun
(College of Computer Communication, Hunan University, Changsha 410082, China)
Abstract:
The mainstream of research on policy description specification in the world includes KAoS, Rei, Ponder and PRAL. Firstly, introduced these specifications in detail and sequence, by illustrating their expressing way. Meanwhile, this paper briefly introduced the strategy of policy conflict detection and resolution. Then, according to the angles of policy description, policy types, policy conflict resolutions and policy tools, compared these four genres and showing their strengths and limitations. At last, summarizing the characteristic and flaw of currently research, proposed the future research direction.
Key words:policy; description specification; policy conflict; ontology
0 引言
政策這一術(shù)語在人類社會的社會管理領(lǐng)域已經(jīng)得到了廣泛使用。在社會管理中,政策是指導(dǎo)人們在社會環(huán)境中活動的各種行為規(guī)范和行動準(zhǔn)則,通過政策來約束并指導(dǎo)人類的社會活動,以此來維持社會的秩序。隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,政策這一概念被逐漸應(yīng)用于計(jì)算機(jī)與網(wǎng)絡(luò)的各個領(lǐng)域,包括數(shù)據(jù)庫安全、大型分布式網(wǎng)絡(luò)和多agent系統(tǒng)等。
政策[1~3]是系統(tǒng)對在某種狀態(tài)下所作行為選擇的一種陳述性描述,它影響著政策域中實(shí)體的行為,通過把政策與系統(tǒng)運(yùn)行機(jī)制分離的方法,使政策獨(dú)立于系統(tǒng)之外,在系統(tǒng)運(yùn)行情況下動態(tài)地改變實(shí)體的行為,從而大大降低人直接管理系統(tǒng)的復(fù)雜度。然而,僅僅擁有政策是不夠的,因?yàn)檎弑旧硎且环N抽象的概念,在實(shí)際應(yīng)用時必須把這種抽象的概念描述出來,使政策域內(nèi)的成員能夠理解這些政策,則需要建立一種統(tǒng)一的標(biāo)準(zhǔn)和格式來描述。只有建立一套完整的政策描述規(guī)范,整個系統(tǒng)才能夠在政策的約束、指導(dǎo)和驅(qū)動下有條不紊地運(yùn)行,不至于因?yàn)檎Z義理解上的不一致而發(fā)生行為、決策的混亂。不同的應(yīng)用環(huán)境,如普適計(jì)算環(huán)境、分布式環(huán)境和自治計(jì)算環(huán)境,對政策描述規(guī)范的要求是不同的,依據(jù)這些環(huán)境建立的政策描述規(guī)范也有各自不同的特色。
現(xiàn)階段國內(nèi)外已經(jīng)提出了多種不同的政策描述規(guī)范。為了更清晰地了解各種政策描述規(guī)范的特點(diǎn)以及它們的發(fā)展趨勢,本文詳細(xì)介紹了國內(nèi)外幾個主流的政策描述規(guī)范,包括KAoS、Rei、Ponder和PRAL,采用舉例說明的手法介紹政策表示的形式,并主要從四個角度對這幾種政策描述規(guī)范進(jìn)行比較,指出它們的優(yōu)勢與不足。
1 國內(nèi)外研究現(xiàn)狀
政策的描述規(guī)范是依據(jù)政策的描述語言建立起來的一整套形式化標(biāo)準(zhǔn),使得政策域中的成員能夠贊同一致的理解政策的語義。本章將對國內(nèi)外政策描述規(guī)范方面的研究現(xiàn)狀進(jìn)行詳細(xì)介紹,按照不同的研究流派依次進(jìn)行闡述,并舉例說明他們的政策描述方法,最后簡要了解各個流派提出的政策沖突的發(fā)現(xiàn)和消解方法。
1.1 國外研究
1.1.1 KAoS
KAoS[4~10]是組件化agent服務(wù)的一個集合,與當(dāng)前幾個比較流行的agent框架(包括NOMADS[11]、DARPA CoABS網(wǎng)格[12]、CORBA[13]和Voyager[14]等)兼容。KAoS不僅適用于動態(tài)和復(fù)雜的軟件agent應(yīng)用環(huán)境,也適用于一般目的的網(wǎng)格計(jì)算和網(wǎng)絡(luò)服務(wù)環(huán)境。
KAoS的政策類型主要分為權(quán)利(authorization)政策和責(zé)任(obligation)政策,它們都是模態(tài)政策,即正模態(tài)的權(quán)利表示允許,負(fù)模態(tài)的權(quán)利表示禁止;正模態(tài)的責(zé)任表示要求,負(fù)模態(tài)的責(zé)任表示不要求。KAoS在政策的描述中利用了本體論[15]的方法來定義政策以及與政策相關(guān)的一些概念,建立了KAoS政策本體(KAoS policy ontology,KPO)。在對政策本體的表示中,當(dāng)今比較流行的方法是采用基于描述邏輯的知識標(biāo)記語言DAML+OIL[16]來描述KPO,以類的形式來表示政策相關(guān)的概念,以屬性的形式來表示概念間的相互關(guān)系。利用DAML來描述KPO時,為了能夠刻畫和標(biāo)志一個具體的政策,在KAoS的政策描述規(guī)范中定義了一些政策的相關(guān)屬性,如政策號(ID)、動作控制(controls)、優(yōu)先級(priority)、更新時間(update time stamp)和執(zhí)行地點(diǎn)(site of enforcement)等,這些屬性和屬性對應(yīng)的值將會以類、類的屬性或者類的實(shí)例形式存在于KPO中。在系統(tǒng)運(yùn)行時,政策運(yùn)行引擎會根據(jù)需要動態(tài)地加載相關(guān)的類、屬性或是實(shí)例,而對用戶完全透明。
DAML表示政策的例子如下:
〈daml:Class rdf:ID=\"IntoStaPasssenger\"〉
〈rdfs:subClassOf rdf:resource=\"Passenger\"/〉
〈rdfs:subClass Of〉
〈daml:Restriction〉
〈daml:onProperty rdf:resource=\"#hasState\"/〉
〈daml:toClass rdf:resource=\"#EnteringIntoStation\"/〉
〈/daml:Restriction〉
〈/rdfs:subClassOf〉
〈/daml:Class〉
〈daml:Class rdf:ID=\"P1Action\"〉
〈rdfs:subClassOf rdf:resource=\"#TicketCheck Action\"/〉
〈rdfs:subClassOf〉
〈daml:Restriction〉
〈daml:onProperty rdf:resource=\"#hasSubject\"/〉
〈daml:toClass rdf:resource=\"#SationAttendant\"/〉
〈/daml:Restriction〉
〈/rdfs:subClassOf〉
〈rdfs:subClassOf〉
〈daml:Restriction〉
〈daml:onProperty rdf:resource=\"#hasObject\"/〉
〈daml:toClass rdf:resource=\"#IntoStaPassenger\"/〉
〈/daml:Restriction〉
〈/rdfs:subClassOf〉
〈daml:Class〉
〈policy:PosAuthorizationPolicy rdf:ID=\"P1\"〉
〈pollicy:controls rdf:resource=\"#P1Action\"/〉
〈policy:hasSiteOfEnforcement rdf:resource=\"#ActorSite\"/〉
〈policy:hasPriority〉6〈/policy:hasPriority〉
〈policy:hasUpdateTimeStamp〉6431675764〈/policy:hasUpdateTimeStam〉
〈/policy:PosAuthorizationPolicy〉
以上代碼舉例說明了用DAML表示的一個具體政策,它是正模態(tài)權(quán)利政策的一個實(shí)例,表示語義是:列車員(stationAttendant)有權(quán)利對將要進(jìn)入車站的乘客(intoStaPassenger)進(jìn)行檢票。其中黑體加粗部分表示的是一個具體政策P1,并且在政策體內(nèi)定義了執(zhí)行動作、執(zhí)行地點(diǎn)、優(yōu)先級和更新時間戳屬性。 在系統(tǒng)運(yùn)行時,政策引擎便會根據(jù)政策的controls屬性動態(tài)地加載動作(action)本體中的P1Action類,根據(jù)hasSiteOfEnforcement屬性加載地點(diǎn)(place)本體的ActorSite類。
KAoS按照其政策類型將政策沖突分為三種:允許和禁止(同一主體既允許做又禁止做某一動作)、禁止和要求(同一主體既被禁止做又被要求做某一動作)、要求和不要求(同一主體既被要求又不要求做某一動作)。KAoS同時又指出發(fā)生這三種政策沖突必須滿足的條件是兩個政策之間,它們的政策主體、政策客體以及政策的動作分別有交集,且它們的政策沖突類型符合以上三種之一。 KAoS按照這一規(guī)律提出了政策的發(fā)現(xiàn)和消解算法:首先對政策本體庫中的政策進(jìn)行依次推理,檢測是否有滿足以上規(guī)律的沖突存在,若發(fā)現(xiàn)了沖突,則根據(jù)政策之間的優(yōu)先關(guān)系,采取和諧策略來消解沖突。
另外,為了減輕人工管理的負(fù)擔(dān),KAoS設(shè)計(jì)了一款功能強(qiáng)大的GUI政策管理工具KPAT,用于對整個政策庫進(jìn)行方便的管理。然而KPAT操作過于復(fù)雜,它只適合受過專門培訓(xùn)的政策管理者使用,一般的政策管理用戶無法直接使用。
1.1.2 Rei
Rei[1,17~19]作為一種政策描述規(guī)范,集成了對政策描述、分析和推理的支持,適用于普適計(jì)算的環(huán)境,它采用Prolog邏輯語言作為政策的描述語言(RDF、OWL語言也已經(jīng)應(yīng)用到描述Rei政策中)。Prolog語言是一種基于道義邏輯的政策描述語言,它支持多種類型政策的表示,包括安全、私有、管理和會話等。Prolog語言把政策體分成政策的執(zhí)行主體和政策的執(zhí)行內(nèi)容(政策對象)兩部分,利用has連接詞把它們關(guān)聯(lián)起來,表示一個完整的政策語句。
Rei定義了四種政策對象,分別是允許(rights)、禁止(prohibition)、職責(zé)(obligation)、免除責(zé)任(dispensation)。這四種政策對象正好對應(yīng)了KAoS中正負(fù)模態(tài)的權(quán)利政策和責(zé)任政策。政策對象采用policyObject(action, conditions)的形式來表示。其中,policyObject代表了四種政策對象之一;action表示與政策執(zhí)行主體相對應(yīng)的動作,conditions是對政策主體、動作以及其他一些必要的條件限制。
Action采用四元組的形式進(jìn)行表示:action(actionName, targetObjects, preConditions,effects)。其中actionName表示動作名;targetObjects表示動作的對象; preConditions表示動作產(chǎn)生的先決條件;effects表示動作結(jié)束后產(chǎn)生的結(jié)果。同時Rei還給出了四個動作描述算子,即sequence(動作順序)、nondeterministic(任選一個動作)、repetition(重復(fù)某動作)和once(僅執(zhí)行一次),用來描述復(fù)雜的動作。Rei給出了描述condition的三個邏輯算子,即AND、OR和NOT,通過它們的組合來描述復(fù)雜的條件。
Rei的一個完整的政策語句表示如下:has(subject, policyObject),表示政策的執(zhí)行主體擁有某種政策對象。這里的政策主體(subject)必須滿足政策對象(policyObject)中的條件限制(conditions),能以URL或者變量的形式來表示,代表特定的領(lǐng)域?qū)嶓w或?qū)嶓w集。
表1舉例介紹了Rei的政策語句的描述格式,表中的政策動作、政策對象和政策語句是一個依次組合的過程。還是以之前的例子為例,列車員(trainattendant)有權(quán)利對將要進(jìn)入車站的乘客(passenger)進(jìn)行檢票。如表1所示,Rei以“has(subject, policyObject)”的形式來表示這個政策,包括subject和policyObject,而policyObject又由兩部分組成,分別是政策動作(action)和條件限制(condition)。其中,政策動作以四元組的形式進(jìn)行描述,具體來描述動作的內(nèi)容或者屬性??梢钥吹剑琑ei通過這種固定格式的政策語句,基本上可以滿足政策描述的要求。
Rei設(shè)計(jì)了四種speech acts用于系統(tǒng)運(yùn)行時動態(tài)請求和修改政策,而不必對原政策進(jìn)行直接修改,分別是授權(quán)(delegate)、收回權(quán)利(revoke)、請求(request)和取消請求(cancel)。Speech acts是一類特殊的動作,在分布式和復(fù)雜的環(huán)境中,Rei可以利用speech acts來改變政策主體的政策對象,動態(tài)地交換實(shí)體之間的權(quán)利和義務(wù)。
Rei的沖突類型與KAoS一樣也是這三種,即允許和禁止、禁止和要求、要求和不要求。Rei采用定義元政策的方法來消解沖突,包括兩種類型的元政策:a) 定義一種優(yōu)先級關(guān)系的元政策用于解決沖突;b)定義一種模態(tài)優(yōu)先關(guān)系的元政策。Rei的沖突發(fā)現(xiàn)和消解的過程如下:當(dāng)Rei的政策引擎對政策本體庫中的政策進(jìn)行推理時,如果發(fā)現(xiàn)這三種沖突類型之一,則聲明產(chǎn)生了沖突;然后,政策管理者可以根據(jù)要求定義一個元政策,政策引擎根據(jù)該元政策來進(jìn)行沖突的消解處理。
另外,Rei沒有提供GUI政策管理工具,用于政策的制定、修改和執(zhí)行。
1.1.3 Ponder
Ponder[17~25]是基于公共信息模型(common information model,CIM)的、面向?qū)ο蟮年愂鲂哉呙枋稣Z言,主要應(yīng)用于描述分布式環(huán)境中的安全策略和管理策略。
Ponder的政策類型主要分為基本政策類型和復(fù)合政策類型兩類。其中,基本政策類型定義了在分布式環(huán)境中可能會用到的政策類型,包括權(quán)利、 授權(quán)、 信息篩選 (information filtering)、保留 (refrain)和職責(zé)政策。Ponder的復(fù)合政策類型是指以一定條件和規(guī)則組合起來的基本政策類型的政策集或政策組,包括組、角色組、角色繼承組、關(guān)系組和管理結(jié)構(gòu)組。Ponder的復(fù)合政策類型扮演了組織和管理基本政策類型政策的作用,使得基本政策類型的政策可以按照各自的結(jié)構(gòu)特點(diǎn)和政策之間的相互關(guān)系,分門別類地進(jìn)行存放和管理。這種方式符合系統(tǒng)管理員操作的自然方式,提供了共有政策定義的可重復(fù)利用特性,方便了對政策的管理。
Ponder在政策語句的描述上采用面向?qū)ο蟮姆椒ǎ凑疹愃朴陬惤Y(jié)構(gòu)的形式對政策進(jìn)行封裝,整個政策類稱為Ponder的一條政策語句。舉例來說,Ponder描述一個權(quán)利政策可以用四元組的形式policy(subject,object,action,conditions)表示,即在Ponder的政策類里面包括政策主體、政策客體、動作和執(zhí)行條件這些政策屬性(其中執(zhí)行條件是可選的屬性),它們以定義變量的形式存在于政策類中。同時Ponder提供了一種參數(shù)化的政策實(shí)例化方式,可以實(shí)例化多個同類型的政策。
權(quán)利政策語句結(jié)構(gòu)如下:
inst (anth+|auth) policyName“{”
subject [〈type〉] domainScopeExpression;
target [〈type〉] domainScopeExpression;
actionactionlist;
{whenconstraintExpression;]“}”
其中,左邊黑體加粗的部分是政策的關(guān)鍵字,對應(yīng)了政策的四元組結(jié)構(gòu);右邊部分是政策的具體內(nèi)容,分別按照各個政策的關(guān)鍵字進(jìn)行填寫,用來定義一個具體的權(quán)利政策。
Ponder的兩種政策結(jié)構(gòu)舉例如下:
a)一般形式
inst auth+ CheckPolicy{
subjects=/StationAttendant;
target〈PolicyT〉 t=/Passenger;
actionSecurityCheck(),TiclketCheck();
whent.state=“進(jìn)站”
}
b)參數(shù)化定義方式
type auth+policyOpsT(subject s,target〈PollicyT〉t){
actionSecurityCheck().TicketCheck();
whent.state=“進(jìn)站”;}
inst auth+CheckPolicy=policyOpsT(/StationAttendant,/Passenger);
以上顯示了Ponder的兩種政策結(jié)構(gòu)描述的同一個政策。同樣舉這樣一個政策例子,其語義是:列車員有權(quán)利對進(jìn)站的乘客進(jìn)行檢票??梢钥吹?,利用Ponder的參數(shù)化實(shí)例政策的方式不僅可以方便地定義政策,而且還減少了代碼的重復(fù)率。因?yàn)樵诙x政策內(nèi)容重復(fù)的政策時,不需要再重新寫政策體,而只要增加一句參數(shù)化實(shí)例的語句就可以定義一個新的政策。
與KAoS和Rei不同,Ponder沒有定義固定的沖突政策類型。它采用自定義沖突政策類型的方式,按照用戶的特殊要求,自由地來指定沖突的情況。具體來說,Ponder提出了一種自定義沖突的元政策,它們是一種特殊的復(fù)合政策,用來描述各種自定義的沖突情況。Ponder的沖突發(fā)現(xiàn)和消解的過程如下:Ponder的政策沖突檢測工具會對這些自定義的沖突元政策進(jìn)行推理,按照自定義沖突元政策所描述的各類沖突情況,發(fā)現(xiàn)政策庫中相應(yīng)的政策沖突。在進(jìn)行沖突消解時,Ponder并不是通過修改政策來消解沖突,而是采用禁止沖突的政策在同一地點(diǎn)或同一時間執(zhí)行的方法來避免沖突的發(fā)生。
另外,Ponder提供了多種GUI政策管理工具,用于政策的制定、修改和執(zhí)行。
1.2 國內(nèi)研究
國內(nèi)相關(guān)方面的研究主要以浙江大學(xué)的高濟(jì)教授及其研究團(tuán)隊(duì)為代表。他們的主要研究是把政策應(yīng)用于多agent協(xié)同的體系中,通過對政策的描述使agent能夠理解政策的語義,指導(dǎo)并驅(qū)動agent的動作和行為,實(shí)現(xiàn)資源和服務(wù)的自主協(xié)同。他們提出一種政策表示和配置語言PRAL[26~33](policy representation and assignment language),作為易于用戶理解的和使用的政策陳述性語言。
PRAL采用面向?qū)ο蟮慕Y(jié)構(gòu)化表示形式來描述政策,把政策定義為共享本體論中內(nèi)嵌的概念“policy”。同時,PRAL給出政策類型的定義,包括三類政策:授權(quán)、職責(zé)和協(xié)商。其中授權(quán)和職責(zé)都是模態(tài)政策,表示可以(禁止)做什么和需要(不需要)做什么。協(xié)商政策指示agent在協(xié)商中的策略。
PRAL給出政策描述結(jié)構(gòu)的定義,包括政策名、政策類型、政策處理、政策目標(biāo)對象、政策激活模式和政策建立或更新時間。其中政策的目標(biāo)對象和政策激活模式采用條件表達(dá)式的方式進(jìn)行定義,如下所示:
Concept Policy
Name: type string mode necessary;
PolicyType: type PolicyType mode necessary;
Processing: type ProcesssingType;
Target: type conditionexpression;
Trigger: type conditionexpression;
Update: type date mode necessary;
End Policy
其中政策的處理采用processingType::={〈操作調(diào)用式〉|〈規(guī)則〉|〈規(guī)則組〉}*的形式統(tǒng)一表示動作、目標(biāo)、效用函數(shù)三類政策的處理活動。具體政策處理的類型說明如下:
a)操作調(diào)用式分成兩類,即動作調(diào)用式和效用調(diào)用式。前者是agent模型采用的形式,以“$”作為前綴;后者是面向效用函數(shù)的調(diào)用式,以“#”作為前綴。
b)規(guī)則是指有條件的處理活動,其左部是條件表達(dá),右部是多個動作函數(shù)調(diào)用式、多個效用函數(shù)調(diào)用式或者多個目標(biāo)調(diào)用式。
c)規(guī)則組是多種不同處理活動的一種組合,包括動作、目標(biāo)和效用函數(shù)。規(guī)則組提供了推理方式(f|b|p)、規(guī)則的選用策略(first|all)、循環(huán)使用(y|n)和規(guī)則組激活條件等各類設(shè)置選項(xiàng),滿足了政策規(guī)則綜合處理各類活動的要求。
舉例說明利用PRAL政策語言定義的一個實(shí)際例子,如下:
Policy
Name:HandleCheckPolicy
PolicyType:Authorization;
Processing:(ruleGroup HandleCheckResult);
Target: Passenger
Trigger:(@CheckingTicket
CheckResult:?v
DateofChecking:?d
TrainNumOfChecking:?z)
Update:200818
End Policy
ruleGroup HandleCheckResult
mode:p;
select:first;
loop:n;
firePattern;
ruleList:
(—>($=?v“Invalidation”))
($PassesProcessing.ForbiddenEntry)
(—>($=?v“Validation”))
($PassesProcessing.PermitEntry)
End HandleCheckResult
這個具體政策的語義是:列車員有權(quán)利對乘客進(jìn)行檢票,根據(jù)檢票結(jié)果,如果乘客的票是合法的,則允許進(jìn)站;否則禁止其進(jìn)站??梢钥吹?,這個政策在處理類型上采用的是規(guī)則組(ruleGroup)的形式,它表示為這樣一個規(guī)則組:按照產(chǎn)生式推理的方法(mode p)對觸發(fā)條件(trigger)進(jìn)行推理,根據(jù)推理的結(jié)果,如果檢查結(jié)果(checkResult)是無效的(invalidation),則作出禁止進(jìn)入(forbidenEntry)的動作;否則作出允許進(jìn)入(permitEntry)的動作。
2 各類政策描述規(guī)范的對比
研究者提出的各種政策描述規(guī)范都是基于不同應(yīng)用領(lǐng)域要求的,都具有各自的特性,因此,在對它們進(jìn)行比較的時候也應(yīng)該從不同的方面進(jìn)行綜合考慮。歸結(jié)起來,可以從以下幾方面進(jìn)行考慮:政策表達(dá)、政策類型、政策沖突解決和政策的制定工具。
a)在政策表達(dá)的能力上,KAoS是最強(qiáng)的,Rei和PRAL相對KAoS要弱,但比Ponder要強(qiáng)。KAoS利用本體論的方法定義一些相關(guān)概念,具體來說,就是KAoS把任何需要表達(dá)的詞匯都作為一個概念,然后用一種知識描述語言(如DAML)來描述這些概念。而KAoS的政策本身也是一個概念,在定義一個政策時,通過一個或多個政策相關(guān)概念的語義組合,來描述政策這個概念。這如同漢語中的短語一樣,為了表述這個短語的意思,它可以由一個或幾個詞匯組合而成。正如1.2節(jié)舉的例子,對于這樣一個政策:列車員有權(quán)利對將要進(jìn)入車站的乘客進(jìn)行檢票。將“進(jìn)入車站的乘客”看做一個概念,作為政策動作P1Action的政策客體,而這個概念又在本體中進(jìn)行定義,定義為“進(jìn)入車站”和“乘客”兩個概念的組合。不管政策語句多復(fù)雜,總能按照這種概念分解的方法把它描述清楚。所以,KAoS在政策的表達(dá)能力上是最強(qiáng)的。Rei是一種基于邏輯的語言,其政策由特定的邏輯語句組成,利用Rei定義的四種動作描述算子和三種條件邏輯算子來描述復(fù)雜的動作和復(fù)雜的條件,因此可以描述復(fù)雜的政策;PRAL在政策的處理上采用processingType::={〈操作調(diào)用式〉|〈規(guī)則〉|〈規(guī)則組〉}*的形式來統(tǒng)一表示動作、目標(biāo)、效用函數(shù)三類政策的處理活動,因此也有能力表示復(fù)雜的政策。盡管Rei和PRAL都有表示復(fù)雜政策的能力,但是相比KAoS還是要弱些,因?yàn)镵AoS幾乎可以表達(dá)所有的政策(不考慮語句復(fù)雜程度)。Ponder在四者中其表達(dá)能力是最弱的,因?yàn)楸M管Ponder的一個政策可以表達(dá)多個動作(如PRAL政策定義的例子,定義了兩個動作SecurityCheck和TicketCheck),但是它無法表達(dá)動作之間的復(fù)雜關(guān)系,如動作先后、對執(zhí)行哪個動作的選擇等,同時它也沒有提供邏輯算子用于表達(dá)復(fù)雜的條件。
在政策的語句結(jié)構(gòu)方面,KAoS最為復(fù)雜,因?yàn)樗豢紤]表達(dá)復(fù)雜的政策而不考慮政策語句的繁瑣問題,對政策語句中的每個概念要求描述清楚,這必將牽涉到許多相關(guān)的概念定義,使得KAoS定義的政策顯得非常臃腫和復(fù)雜。Rei在定義簡單的政策時是最為簡潔的(邏輯語句本身符合人類理解的思維),而在定義一定復(fù)雜的政策時就顯得相當(dāng)復(fù)雜和難以理解(邏輯符號過多,復(fù)雜度呈指數(shù)上升)。Ponder和PRAL都是面向?qū)ο蟮恼Z言,它們所定義的政策格式都是面向用戶的,設(shè)計(jì)本身是站在用戶的角度進(jìn)行考慮的,所以政策語句易于用戶理解,結(jié)構(gòu)比較簡潔。
b)政策類型方面,可以看到各種政策描述規(guī)范都有,就是它們都包括權(quán)利政策和職責(zé)政策(都具有正負(fù)模態(tài))。其中PRAL政策語言主要用于多agent體系中實(shí)現(xiàn)agent之間的自主協(xié)作,因此它增加了協(xié)商政策,以求更規(guī)范化地表達(dá)agent之間的協(xié)商策略。另外,盡管Rei也只提供了權(quán)利和職責(zé)兩類政策,但是它還提供了四種特殊操作(speech acts),即授權(quán)、收回權(quán)利、請求和取消請求,用于系統(tǒng)運(yùn)行時動態(tài)請求和修改政策,而不必直接去修改這些政策(直接修改必須使系統(tǒng)停止運(yùn)行),非常適合普適計(jì)算的環(huán)境。Ponder的政策類型最為豐富,它不僅對單個政策進(jìn)行分類,而且還提供了一種多個政策的組合政策類型,分別稱為基本政策類型和復(fù)合政策類型。其中基本政策類型包括權(quán)利、職責(zé)、信息篩選和授權(quán)等,能夠滿足分布式環(huán)境中描述安全策略和管理策略的要求;復(fù)合政策類型是由基本政策組合而成的,利用它們能夠把基本政策進(jìn)行分類合成以反映組織結(jié)構(gòu),保存了系統(tǒng)管理員操作的自然方式,方便了大型、復(fù)雜企業(yè)中對政策的管理。
c)對于政策的沖突,KAoS、Rei和Ponder都提出了各自的發(fā)現(xiàn)和消解策略,而PRAL尚未進(jìn)行這方面的研究。KAoS提出政策沖突可分為允許和禁止、禁止和要求、要求和不要求三類。按照這三類政策沖突的沖突發(fā)生條件設(shè)計(jì)了KAoS的政策沖突的發(fā)現(xiàn)和消解算法。其中政策沖突的消解提出了一種和諧策略,用于妥善處理沖突的政策。Rei和Ponder都提出了設(shè)計(jì)元政策(MetaPolicies)來消解沖突,但是它們的思想是不同的。其中Ponder提出的元政策主要用于政策沖突的發(fā)現(xiàn),而Rei提出的元政策主要用于沖突的消解。
d)政策制定工具的設(shè)計(jì)是為了隱藏政策定義的復(fù)雜性,方便政策的定義,減少政策管理員的工作量。在四種類型的政策描述規(guī)范中,Rei和PRAL尚未設(shè)計(jì)出制定政策的圖形工具,而KAoS和Ponder都提出了圖形化界面的政策管理工具,不僅可以制定政策,而且可以對政策進(jìn)行增加、刪除、修改和查找,有效地提高了政策管理的效率和可靠性。其中KAoS設(shè)計(jì)了一款功能強(qiáng)大的政策管理工具KPAT。然而KPAT操作過于復(fù)雜,它只適合受過專門培訓(xùn)的政策管理者使用,一般的政策管理用戶無法直接使用。
表2顯示了四類政策描述規(guī)范從不同角度進(jìn)行比對的結(jié)果。其中政策表達(dá)又可以從表達(dá)能力的強(qiáng)弱和語句結(jié)構(gòu)的復(fù)雜性兩個角度來體現(xiàn)。
3 結(jié)束語
通過對各類政策描述規(guī)范進(jìn)行比較與分析發(fā)現(xiàn),四種政策描述規(guī)范(KAoS、Rei、Ponder和PRAL)在政策描述、政策的類型、政策沖突的發(fā)現(xiàn)和解決方法以及政策制定工具等方面具有不同的特點(diǎn);同時,它們在這些方面也有自己的優(yōu)勢與不足。根據(jù)這些比較結(jié)果,不難看出未來的發(fā)展方向,歸納如下:
a)由于基于本體的政策描述方法使用概念來描述各種政策以及政策相關(guān)詞匯,具有強(qiáng)大的描述能力,同時方便政策的分析和推理,是當(dāng)前政策描述技術(shù)的發(fā)展趨勢。
b)KAoS在政策沖突的發(fā)現(xiàn)和消解方面其理論與技術(shù)已經(jīng)相當(dāng)成熟,但是它在沖突類型的選擇上不夠全面,可以考慮引入Ponder自定義沖突元政策的方法來處理更加多樣的沖突類型。
c)一款簡單易用、功能齊全的GUI政策制定工具可以減少管理員的工作量,在未來的政策描述規(guī)范研究中都必須予以考慮。
參考文獻(xiàn):
[1]KAGAL T, FININ T, JOSHI A. A policy language for a pervasive computing environment [C]//Proc of the 4th IEEE International Workshop on Policies for Distributed Systems and Networks. 2003.
[2]DAMIANOU N C. A policy framework for management of distributed systems[D]. London: Faculty of Engineering, University of London, 2002.
[3]CHADHA R, KANT L. Policydriven mobile Ad hoc network management [M]. [S.l.]:WileyIEEE Press, 2007.
[4]USZOK A, BRADSHAW J M, JEFFERS R, et al. KAoS policy and domain services: toward a descriptionlogic approach to policy representation, deconfliction, and enforcement [C]//Proc of POLICY 2003.Lake Como:IEEE Press, 2003.
[5]BRADSHAW J M, DUTFIELD S. BENOIT P, et al. KAoS: toward an industrialstrength open agent architecture [M]//Software agents. Cambridge:MIT Press:1997.
[6]BRADSHAW J M, USZOK A, JEFFERS R, et al. Representation and reasoning for DAMLbased policy and domain services in KAoS and nomads[C]//Proc of the 2nd International Joint Conference on Autonomous Agents and Multiagent Systems. 2003.
[7]USZOK A, BRADSHAW J M, HAYES P, et al. DAML reality check: a case study of KAoS domain and policy services [C]//Proc of International Semantic Web Conference. 2003.
[8]TONTI G. BRADSHAW J M, JEFFERS R, et al. Semantic Web languages for policy representation and reasoning: a comparison of KAoS, Rei, and Ponder[C]//Proc of ISWC’03. 2003.
[9]MOREAU L, BRADSHAW J, BREEDY M, et al. Behavioural specification of grid services with the KAoS policy language [C]//Proc of the 5th IEEE International Symposium on Cluster Computing and the Grid. 2005.
[10]USZOK A, BRADSHAW J M, JOHNSON M, et al. KAoS policy management for semantic Web services [J]. IEEE Intelligent Systems , 2004, 19(4):3241.
[11]SURI N, BRADSHAW J M, BREEDY M R. et al. NOMADS: toward an environment for strong and safe agent mobility [C]//Proc of Autonomous Agents. New York: ACM Press, 2000.
[12] KAHN M, CICALESE C. CoABS grid scalability experiments [C]//Proc of 2nd International Workshop on Infrastructure for Scalable MultiAgent Systems at the 5th International Conference on Autonomous Agents. New York: ACM Press, 2001.
[13]ORFALI R, HARKEY D. Common object request broker architecture[EB/OL].(20060718) [20080120].http://en.wikipedia.org/wiki/CORBA.
[14]JONES N. Voyager edge[EB/OL].(20071210)[20080120]. htttp://www.recursionsw.com/osi.asp.
[15]SURE Y, ERDMANN M, ANGELE J, et al. OntoEdit:collaborative ontology development for the semantic Web[C]//Proc of the 1st International Semantic Web Conference. Sardinia, Italy:Springer, 2002.
[16]史忠植, 董明楷, 蔣運(yùn)承, 等. 語義Web的邏輯基礎(chǔ)[J]. 中國科學(xué) E輯, 2004, 34(10): 11231138.
[17]KAGAL L. Rei: a policy language for the MeCentric project, HPL2002270[R]. Palo Alto: Enterprise Systems Data Management Laboratory, HP Laboratories, 2002.
[18]KAGAL L. A policy specification language for governing open, dynamic distributed environments [D]. Baltimore County: University of Maryland, 2004.
[19]DAMIANOU N, DULAY N, LUPU E, et al. The Ponder policy specification language [C]//Proc of Policy Workshop. Bristol: SpringerVerlag, 2001.
[20]DULAY N, LUPU E, SLOMAN M, et al. A policy deployment model for the Ponder language [D]. [S.l.]: Department of Computing, Imperial College, 2001.
[21]LYMBEROPOULOS L, LUPU E, SLOMAN M. An adaptive policy based framework for network services management [J]. Journal of Network and Systems Management, 2003, 11(3):277303.
[22]LYMBEROPOULOS L, LUPU E, SLOMAN M. Ponder policy implementation and validation in a CIM and differentiated services framework [C]//Proc of the 9th IEEE/IFIP Network Operations and Management Symposium. 2004.
[23]Object constraint language specification [S].1997.
[24]BANDARA A K, LUPU E C, RUSSO A. Using event calculus to formalise policy specification and analysis [C]//Proc of the 4th IEEE International Workshop on Policies for Distributed Systems and Networks. 2005.
[25]RUBIOLOYOLA J. A methodological approach to policy refinement in policybased management systems [D]. [S.l.]: The Technical University of Catalonia, 2007.
[26]胡軍, 高濟(jì). 面向自治計(jì)算的基于政策的多agent協(xié)同體系研究[D].杭州:浙江大學(xué), 2006.
[27]胡軍, 李長云. 基于政策的多主體協(xié)作維護(hù)機(jī)制[J]. 計(jì)算機(jī)工程與應(yīng)用, 2007, 43(6):2730.
[28]廖備水,高濟(jì). 基于PDCagent的面向服務(wù)的自治計(jì)算研究[D]. 杭州:浙江大學(xué), 2006.
[29]高濟(jì), 袁成祥, 王進(jìn). 支持agent社交活動的方法體系SASA5[J]. 計(jì)算機(jī)學(xué)報, 2005, 28(5): 838848.
[30]HU Jun, GAO Ji. IMCAG: infrastructure for managing and controlling agent grid [C]//Proc of the 2nd International Workshop on Grid and Cooperative Computing. Berlin:SpringerVerlag. 2003:161165.
[31]LIAO Beishui, GAO Ji, HU Jun, et al. A model of agentenabling autonomic grid service system [C]//Proc of the 3rd International Conference on Grid and Cooperative Computing. Berlin:SpringerVerlag, 2004:839842.
[32] LIAO Beishui, GAO Ji. A model of multiagent system based on policies and contracts [C]//Proc of the 4th International Central and Eastern European Conference on MultiAgent Sytems. Berlin: SpringerVerlag, 2005: 1517.
[33]LIAO Beishui, GAO Ji. An automatic policy refinement mechanism for policydriven grid service systems [C]//Proc of the 4th International Conference on Grid and Cooperative Computing. Berlin: SpringerVerlag, 2005:166171.