国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Eclipse的RBAC通用插件的設(shè)計(jì)與實(shí)現(xiàn)

2009-03-02 09:33:12張曉群董麗麗
現(xiàn)代電子技術(shù) 2009年4期
關(guān)鍵詞:角色插件

張曉群 董麗麗

摘 要:基于角色的訪問(wèn)控制(RBAC)技術(shù)解決了大型企業(yè)信息系統(tǒng)中復(fù)雜的安全訪問(wèn)問(wèn)題。為了提高軟件的可重用性,縮短應(yīng)用系統(tǒng)的開發(fā)周期,研究并開發(fā)通用的RBAC插件,使其能夠集成于各種企業(yè)信息系統(tǒng)中完成該信息系統(tǒng)的權(quán)限控制需求。分析Eclipse的工作機(jī)制以及基于OSGI規(guī)范的插件實(shí)現(xiàn)原理,提出在Eclipse 平臺(tái)上設(shè)計(jì)和實(shí)現(xiàn)一個(gè)通用RBAC插件的設(shè)計(jì)方法,并運(yùn)用Eclipse的插件開發(fā)方法實(shí)現(xiàn)通用的RBAC插件。

關(guān)鍵詞:Eclipse;OSGI;Bundle;RBAC;角色;插件;PDE

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004-373X(2009)04-093-03

Design and Implementation of RBAC Universal Plug-in Based on Eclipse

ZHANG Xiaoqun,DONG Lili

(Department of Information & Control,Xi′an University of Architecture & Technology,Xi′an,710055,China)

Abstract:Role-based Access Control (RBAC) is applied in information system of Enterprise to meet complicated permission administrate.In order to increase reuseability of software and shorten developmental time of information system,it is necessary to study and implement a universal RBAC plug-in which can be integrated with different Enterprise information system to solve its permission administrate.Eclipse′s work mechanism and implementation principle of plug-in is analysed,a method can be used to design and implement universal plug-in on the Eclipse platform.Finally,universal RBAC plug-in is developed in PDE by using method of Eclipse plug-in development.

Keywords:Eclipse;OSGI;Bundle;RBAC;role;plug-in;PDE

0 引 言

訪問(wèn)控制作為國(guó)際化標(biāo)準(zhǔn)組織定義的5項(xiàng)標(biāo)準(zhǔn)安全服務(wù)之一,是實(shí)現(xiàn)信息系統(tǒng)安全的一項(xiàng)重要機(jī)制[1-4]。作為訪問(wèn)控制技術(shù)之一且基于角色的訪問(wèn)控制(Role Based Access Control,RBAC)已在許多大型企業(yè)的信息系統(tǒng)中發(fā)揮了強(qiáng)大的優(yōu)勢(shì)。在將RBAC技術(shù)應(yīng)用于大型企業(yè)的信息系統(tǒng)中時(shí),需要在不同的應(yīng)用系統(tǒng)中重復(fù)地編寫實(shí)現(xiàn)RBAC功能的代碼,這種重復(fù)性的勞動(dòng)造成了人力和物力的極大浪費(fèi),也增加系統(tǒng)開發(fā)成本。

為了提高軟件的可重用性,縮短應(yīng)用系統(tǒng)的開發(fā)周期,這里的主旨在于開發(fā)一個(gè)通用的擴(kuò)展RBAC插件,使得它能與不同的應(yīng)用系統(tǒng)進(jìn)行無(wú)縫集成,完成應(yīng)用系統(tǒng)的訪問(wèn)權(quán)限控制功能,以縮短應(yīng)用系統(tǒng)的開發(fā)周期。

1 Eclipse插件體系結(jié)構(gòu)

Eclipse是IBM投入巨資開發(fā)的一個(gè)開放的、可集成的、基于Java的應(yīng)用軟件開發(fā)和運(yùn)行的通用平臺(tái)。Eclipse的體系結(jié)構(gòu)是一個(gè)基于微內(nèi)核的插件體系結(jié)構(gòu)[5-7],如圖1所示。

平臺(tái)運(yùn)行時(shí)是Eclipse的微內(nèi)核,它負(fù)責(zé)Eclipse環(huán)境中其他功能部件(即插件)的自動(dòng)安裝、啟動(dòng)、運(yùn)行和卸載。Eclipse之所以能夠?qū)崿F(xiàn)插件的動(dòng)態(tài)協(xié)作功能,是由于它采用了OSGI規(guī)范作為其插件體系結(jié)構(gòu)。Eclipse的內(nèi)核由2部分組成:org.eclipse.osgi和org.eclipse.core,其中org.eclipse.osgi就是Eclipse對(duì)OSGI框架的實(shí)現(xiàn),它的功能是在Eclipse中實(shí)現(xiàn)Bundle的安裝、觸發(fā)、卸載及Service的注冊(cè)、卸載和調(diào)用。

OSGI(Open Service Gateway Initiative)為通過(guò)網(wǎng)絡(luò)向設(shè)備提供服務(wù)建立開放的標(biāo)準(zhǔn)?;贠SGI規(guī)范的硬件設(shè)備,能夠訪問(wèn)控制在網(wǎng)絡(luò)任何位置的其他設(shè)備,并且網(wǎng)絡(luò)設(shè)備可以被隨時(shí)安裝、更新、刪除而不影響其他設(shè)備的運(yùn)行,即硬件的“熱插拔”技術(shù)。Eclipse將OSGI規(guī)范應(yīng)用到軟件業(yè),實(shí)現(xiàn)了軟件的“熱插拔”技術(shù)。

Framework是OSGI規(guī)范的核心,它在Java虛擬機(jī)基礎(chǔ)上定義了Bundle(或稱為插件)的模塊管理、生命周期管理以及服務(wù)管理[8,9]。

(1) 模塊管理層定義了模塊的類裝載機(jī)制和元數(shù)據(jù)信息。元數(shù)據(jù)信息描述了Bundle的名稱、版本號(hào)、提供商、依賴庫(kù)、Import-Package和Export-Package等。其中Import-Package和Export-Package屬性使得基于Eclipse開發(fā)的軟件能夠?qū)崿F(xiàn)代碼共享。

(2) 生命周期管理層定義了Bundle的6個(gè)狀態(tài)及其對(duì)6個(gè)狀態(tài)的管理。Eclipse通過(guò)OSGI的類裝載機(jī)制和對(duì)6個(gè)狀態(tài)的管理實(shí)現(xiàn)了插件的“懶裝載”機(jī)制。即當(dāng)插件被使用時(shí),才被裝入系統(tǒng),占用內(nèi)存空間;當(dāng)不被使用時(shí),被清除內(nèi)存。

(3) 服務(wù)管理層在模塊層和生命周期層的基礎(chǔ)上定義了Bundle的服務(wù)注冊(cè)、服務(wù)引用、服務(wù)監(jiān)聽,實(shí)現(xiàn)了Bundle間的動(dòng)態(tài)協(xié)作服務(wù)。

由于Eclipse實(shí)現(xiàn)了OSGI框架,它才具有插件的動(dòng)態(tài)裝載功能,實(shí)現(xiàn)了軟件的“熱插拔”技術(shù)。

2 基于角色的訪問(wèn)控制(RBAC)模型

基于角色的訪問(wèn)控制的思想是在用戶和權(quán)限之間插入“角色”,角色代表了對(duì)系統(tǒng)資源具有的訪問(wèn)權(quán)限。用戶只有擁有了某個(gè)角色,才擁有該角色具有的權(quán)限。這種關(guān)聯(lián)關(guān)系實(shí)現(xiàn)了用戶與權(quán)限的邏輯分離,方便了授權(quán)管理。圖2給出了RBAC的模型。下面給出RBAC模型的語(yǔ)義定義[10]:

USERS,ROLES,OBS,OPS,PRMS

UA罸SERS×ROLES用戶集合到角色集合的多對(duì)多的分配關(guān)系。用戶-角色分配 (r:ROLES)→2USERS,角色到用戶的映射關(guān)系表示為:

assigned-users(r)={u∈USERS|(u,r)∈UA}。

PRMS=2(OPS×OBS)操作權(quán)限的集合。

PA罰RMS×ROLES權(quán)限集合到角色集合的多對(duì)多的分配關(guān)系。角色到權(quán)限映射關(guān)系表示為:

assigned-permissions(r)={p∈PRMS|(p,r)∈PA}。

SESSIONS會(huì)話集合。

用戶與會(huì)話之間的映射關(guān)系為:user_session(u:USERS) →2SESSIONS,表示一個(gè)用戶可以建立多個(gè)會(huì)話。

會(huì)話與角色之間的映射關(guān)系:

session_role(s:SESSIONS)→2ROLES,會(huì)話si到角色集合的映射關(guān)系,使會(huì)話獲得角色的權(quán)限:Session_roles(si)羬r∈ROLES|(session_users(si),r∈UA)

3 通用RBAC插件的設(shè)計(jì)

RBAC插件能夠與不同的應(yīng)用系統(tǒng)集成,也就是說(shuō)它能適應(yīng)不同的企業(yè)要求,根據(jù)不同企業(yè)的組織結(jié)構(gòu)生成適應(yīng)該企業(yè)的角色關(guān)系圖以及角色的權(quán)限關(guān)系。用面向?qū)ο蟮姆椒▽?duì)RBAC進(jìn)行分析,主要分為:部門類、角色類、用戶類、權(quán)限類和資源類。圖3是RBAC插件的類結(jié)構(gòu)圖。

圖3 RBAC類結(jié)構(gòu)

對(duì)RBAC插件的通用性首先要考慮對(duì)多數(shù)據(jù)庫(kù)的支持。由于不同的用戶習(xí)慣使用的數(shù)據(jù)庫(kù)也可能不同,例如,有些用戶習(xí)慣使用SQL Server數(shù)據(jù)庫(kù),而另一些用戶習(xí)慣使用Oracle數(shù)據(jù)庫(kù),因此,插件所面臨的后臺(tái)數(shù)據(jù)庫(kù)類型可能是多種多樣的。為了使插件能適應(yīng)各種數(shù)據(jù)庫(kù),采用圖4所示的類層次結(jié)構(gòu)來(lái)支持多數(shù)據(jù)庫(kù)。其中:DBOperate是一個(gè)接口類,在數(shù)據(jù)庫(kù)操作類的代碼中相對(duì)不變;AbstractDBOperate類是一個(gè)抽象類,提供數(shù)據(jù)庫(kù)操作的默認(rèn)實(shí)現(xiàn)。各數(shù)據(jù)庫(kù)獨(dú)有的操作方法由各自的類實(shí)現(xiàn)。

對(duì)通用性要考慮的第二點(diǎn)是對(duì)代碼共享的支持。

圖4 數(shù)據(jù)庫(kù)操作類

用戶管理模塊作為可共享的代碼,供應(yīng)用系統(tǒng)中的用戶基本信息管理模塊使用,因此,將用戶管理模塊作為提供包(Export-Package)在插件元數(shù)據(jù)信息中說(shuō)明。并將用戶類定義為該插件的一個(gè)新的擴(kuò)展點(diǎn),供第三方繼續(xù)擴(kuò)展。

4 插件的實(shí)現(xiàn)

擴(kuò)展RBAC插件為用戶呈現(xiàn)的界面為功能導(dǎo)航器、搜索視圖和功能編輯器幾個(gè)視圖。由功能導(dǎo)航器可以導(dǎo)航到用戶管理、角色管理、授權(quán)管理、會(huì)話管理和資源管理幾個(gè)功能模塊中,在功能編輯器視圖中實(shí)現(xiàn)各個(gè)模塊的功能。該插件在Eclipse平臺(tái)上,應(yīng)用插件開發(fā)工具PDE來(lái)開發(fā),對(duì)Eclipse平臺(tái)的透視圖org.eclipse.ui.perspectives、視圖org.eclipse.ui.views和編輯器org.eclipse.ui.editors等幾個(gè)主要擴(kuò)展點(diǎn)進(jìn)行了擴(kuò)展。

下面是通用的RBAC插件部分功能實(shí)現(xiàn)的plugin.xml文件。

<?xml version="1.0" encoding="UTF-8" ?>

<?eclipse version="3.2"?>

<plugin id="rbac" name="Rbac 插件"version="1.0.0"provider-name=""class="rbac.RbacPlugin">

<runtime>

<library name="rbac.jar">

<export name="*" />

</library>

<library name="lib\mysql-connector-java-3.0.17-ga-bin.jar" />

<library

</runtime>

<requires>

<import plugin="org.eclipse.ui" />

<import plugin="org.eclipse.core.runtime" />

</requires>

<extension point="org.eclipse.ui.perspectives">

<perspective name="RBAC管理" icon="" id="perspective.rbacPerspective" class="perspective.rbacPerspective" />

</extension>

<extension point="org.eclipse.ui.editors">

<editor name="角色信息管理" icon=""

class="archive.RoleEditor" id="archive.RoleEditor" />

</extension>

</plugin>

5 結(jié) 語(yǔ)

分析了Eclipse插件體系結(jié)構(gòu)和工作機(jī)制,并給出了RBAC通用插件的設(shè)計(jì)模型。在Eclipse平臺(tái)上運(yùn)用Eclipse插件開發(fā)方法,開發(fā)了通用的RBAC插件。RBAC通用插件已被集成進(jìn)各種大型企業(yè)的應(yīng)用系統(tǒng)中,保障了信息的安全,縮短了應(yīng)用系統(tǒng)的開發(fā)周期。

參 考 文 獻(xiàn)

[1]黃益民,平玲娣,潘雪增.一種基于角色的訪問(wèn)控制擴(kuò)展模型及其實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展,2003(10):1 521-1 528.

[2]李帆,鄭緯民.基于角色與組織的訪問(wèn)控制模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(26):2 136-2 140.

[3]許春根,江子,嚴(yán)悍.基于角色訪問(wèn)控制的動(dòng)態(tài)建模[J].計(jì)算機(jī)工程,2002,28(1):116-118.

[4]Sandhu R,Coyne E,Feinstein H,et al.Role-based Access Control Model.IEEE Computer,1996,29(2):38-47.

[5]陳剛.Eclipse從入門到精通[M].北京:清華大學(xué)出版社,2005.

[6]劉亞賓,楊紅.精通Eclipse[M].北京:清華大學(xué)出版社,2005.

[7]張?jiān)茲徚?Eclipse精要與高級(jí)開發(fā)技術(shù)[M].北京:電子工業(yè)出版社,2005.

[8]佚名.Eclipse平臺(tái)入門.http://www-900.ibm.com/developerWorks/cn/linux/opensource/os-ecov /index.sht,2008.

[9]Blue Davy.OSGI實(shí)戰(zhàn).http://www.riawork.org,2007.

[10]Ferraiolo D,Sandhu R.Proposed NIST Standard for Role-based Access Control [J].ACM Transactions on Information and System Security,2001,4(3):224-274.

作者簡(jiǎn)介 張曉群 女,1965年出生,工程師。研究方向?yàn)榉植际较到y(tǒng)及計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用。

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

猜你喜歡
角色插件
自編插件完善App Inventor與樂(lè)高機(jī)器人通信
電子制作(2019年22期)2020-01-14 03:16:34
基于jQUerY的自定義插件開發(fā)
軟件(2016年6期)2017-02-06 00:28:36
當(dāng)前報(bào)紙媒體記者的角色定位
《冰雪奇緣》開啟迪士尼劇本角色新模式
戲劇之家(2016年20期)2016-11-09 22:55:02
人力資源開發(fā)與智力資本提升的關(guān)系探析
普通高等學(xué)校思想政治教育輔導(dǎo)員角色問(wèn)題研究
關(guān)于動(dòng)畫人物角色設(shè)定中的服飾設(shè)計(jì)研究
農(nóng)民工子女融合教育:教師的角色與使命
MapWindowGIS插件機(jī)制及應(yīng)用
基于Revit MEP的插件制作探討
景东| 民和| 宕昌县| 延吉市| 利津县| 辽阳市| 黄骅市| 永寿县| 丰城市| 三都| 驻马店市| 大新县| 石台县| 石柱| 天门市| 宝坻区| 军事| 乌海市| 辽宁省| 敦化市| 邳州市| 庆元县| 尉氏县| 鹤壁市| 手游| 昌邑市| 抚松县| 灌云县| 拉孜县| 永兴县| 沂源县| 金秀| 乡宁县| 南丰县| 文成县| 靖远县| 甘德县| 庐江县| 唐海县| 灌阳县| 临泽县|