999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web Services改進的統一權限系統的研究與實現

2015-05-30 01:26:57劉瑋瑋黃清政
計算機時代 2015年5期

劉瑋瑋 黃清政

摘 要: 在改進傳統權限系統不足之處的基礎上,研究實現了基于Web Services技術的統一權限系統架構。采用這樣的架構,可以將權限系統封裝成從業務系統中獨立出來SOA體系服務,為多個不同的業務系統共享,業務系統不必再關心權限方面的細節。相對于其他類似系統主要關注對數據的整合,該統一權限系統主要關注功能的整合,目的是改變目前權限管理的模式,讓權限的管理更加全局化,讓維護和升級更加容易。

關鍵詞: Web Services; 統一權限; J2EE; SOA

中圖分類號:TP393.07 文獻標志碼:A 文章編號:1006-8228(2015)05-38-03

Abstract: To improve the traditional authority system, this paper studies and implements a unified authority system architecture based on the technology of Web Services. With this architecture, the authority system can be encapsulated as a SOA service independent from the business system, a number of different business systems can share the authority system without considering the details of authority. Compared with other similar systems mainly focus on data integration, this unified authority system mainly focus on the function integration, intents to change the current authority management mode, and makes the management of authority more global, makes the maintenance and upgrading more easy.

Key words: Web Services; unified authority; J2EE; SOA

0 引言

在任何信息系統中,權限管理都處于核心地位。權限管理既要保障系統的安全,又要方便管理和使用。由于日常信息系統經常要修改功能和增加新模塊,這需要和軟件供應商進行溝通,常會因時間或經費的原因放棄一些很好的想法,系統也因此更新慢或長時間不更新,不能滿足日益增長的需求。如OA系統、CRM系統、CRU系統、稽核系統等,這些系統中對權限控制方面的要求都非常高,特別是跟管理和財務掛鉤的CRU和CRM系統,要花大量精力在權限系統的設計和開發上。

目前比較流行的權限系統架構大多數是采用代碼復用和數據庫結構復用的方式集成到具體的業務系統中[1],對于不同架構、不同部署環境的軟件,在開發、維護、使用中都可能存在不易維護、不能支持不同平臺和架構、不方便共享數據、系統安全性低等問題。如單點登錄系統的應用領域主要是對已存在的多個系統之間的身份認證。主要解決在多個系統之間訪問時不必多次登錄的問題,即自動登錄,并沒有關注整個信息系統中權限的統一管理和子系統權限管理的問題。Portal系統關注的是已存在系統間信息的整合,是通過一種機制,讓用戶能在一個頁面中集成更多系統的信息,并能在各系統之間順利的訪問[2],而不是建立一個更方便操作、易維護、易擴展的權限管理控制框架。

本文采用Web Services技術解決了這些問題,業務系統只保留權限查詢和讀取系統共用數據的功能,實現的系統通過兩個方式向業務系統提供服務:通過Web Services向子系統提供權限查詢服務;通過Web頁面服務向子系統提供權限管理服務(功能登記、權限授予、權限變更等)。

1 系統的設計

1.1 權限控制的方式

統一權限系統和業務系統之間是依賴和被依賴的關系。對最終用戶而言,統一權限系統和業務系統是一個整體,對業務系統程序開發員而言,他們只需要在自己的程序中調用統一權限系統客戶端接口即可,并不需要知道統一權限系統是如何實現的。每個業務系統及其功能操作都必須在“統一權限系統”中注冊,注冊層次分為三級結構:

⑴ 系統,所有需要進行權限控制的業務系統都必須在統一權限中注冊,并獲得惟一的業務系統序號,本文稱之為SystemID。SystemID是兩位數字,其可取值范圍規定為10-99。

⑵ 模塊,業務系統中的所有模塊都要在統一權限系統中對應的系統下注冊,并獲得惟一的模塊序號,本文稱之為ModuleID。模塊是屬于某個系統的。模塊序號是五位數字,由兩位業務系統序號和三位模塊流水號組成:ModuleID=SystemID+三位流水號。

⑶ 操作,業務系統中的所有操作都要在統一權限系統中對應的模塊下注冊,并獲得惟一的操作序號,本文稱之為OprationID。操作是屬于某個模塊的,操作是最終節點(即樹的葉子節點)。操作由語義表示其具體的功能,如“增加公告”,“修改公告”等,操作序號是八位數字,由五位模塊流水號和三位流水號組成,如下:OprationID=ModuleID+三位流水號。

為使權限的維護和使用更加方便,統一權限系統中保留了一些基本權限,如瀏覽、增加、刪除、修改、授權、統計等,基本權限的語義是不會改變的,作為系統的默認數據存儲在數據庫中。每個基本權限都有一個“基本權限代碼”, 本文稱之為BaseRightCode,比如“增加”的基本權限代碼是“A”,“刪除”的基本權限代碼是“D”等等。

1.2 基于角色的權限管理

基于角色的訪問控制方法的思想是把對用戶的授權分成兩部份,用角色來充當用戶行駛權限的中介,用戶與角色之間,以及角色與權限之間就形成了兩個多對多的關系,權限配置工作是組織角色權限的工作步驟之一,只有角色具有相應的權限后,用戶委派才能具有實際意義[3]。系統提供角色定義工具允許用戶根據自己的需要(職權、職位以及分擔的權利和責任)定義相應的角色。角色之間有相應的繼承關系,當一個角色r1繼承另一個角色r2時,r1就自動擁有了r2的訪問權限(表示r1->r2)[4],角色繼承關系提供了對已有角色的擴充和分類的手段,使定義新的角色可以在已有角色的基礎上進行,擴充就是通過增加父角色的權限去定義子角色,而分類通過不同子角色繼承同一父角色來體現。另外還允許多繼承,即一個角色繼承多個父角色,多繼承體現對角色的綜合能力。

系統采用口令來鑒別用戶身份以達到安全保護的目的。用戶的系統訪問可以用訪問規則表示,根據安全策略用訪問規則給用戶授權,一條訪問規則可以寫成四元組的形式(u,o,t,p),可用已有權限表示形式重新表示為(u,P)。訪問控制就是要處理怎樣表達和核對訪問規則的問題,系統的訪問控制分為模塊級控制和界面元素級控制[5]。

1.3 系統權限認證流程

用戶通過統一權限系統提供的單一入口登錄,獲得用戶瘦令牌。當用戶訪問業務系統時,業務系統首先判斷用戶的瘦令牌中是否有相關的權限數據,如果有,則直接取出,如果沒有,則訪問統一權限系統獲取權限數據,服務器在響應時,按“被請求一次,優先級就加一”的策略來改變該權限數據的優先級別,然后驗證權限數據來決定是否執行操作。可以用一個三元組表示一個權限數據,如下:權限數據AuthorityData=(操作Operation,范圍Range,期限Time),簡寫為:AD=(O,Range,T)。

對于一個角色所擁有的所有權限,可以表示為:

角色擁有的權限Role AuthorityData=(角色Role,權限數據AD[i])

簡寫為RAD=(Role,AD[j]),其中j為大于等于0的整數

對于一個用戶所擁有的所有權限,可以表示為:

用戶擁有的權限User AuthorityData=(角色Role[i],權限數據[i])

簡寫為UAD=(Role[i],AD[i][j]),其中i和j為大于等于0的整數

2 系統實現的關鍵技術

2.1 Web Services關鍵技術

XML Web Service是利用XML規范作為數據的標準格式,利用Web的HTTP端口作為網絡信息傳遞的端口而制作的一種遠程的處理服務程序。使用Web Service時在服務端制作信息處理服務程序,在客戶端(數據接收端)制作SOAP代理程序,負責實際Web Service的調用以及數據轉換[6]。WSDL (Web Services Description Language)規范是一個描述接口、語義以及Web服務為了響應請求需要經常處理的工作的XML文檔,這將使簡單的服務可以方便、快速地被描述和記錄。

SOAP(Simple Object Access Protocol)代理程序提供客戶端其他程序的調用,代理調用程序向Web Service發出數據處理請求,將Web Service傳回的XML數據轉換為調用程序規定的數據格式[7]。當商業用戶通過UDDI找到WSDL描述文檔后,可以通過 SOAP 調用所建立的Web服務中的一個或多個操作。

2.2 采用Apache Axis序列化和反序列化器

Axis是Apache組織推出的SOAP引擎,Axis項目是Apache組織著名的SOAP項目的后繼項目。Axis為開發者提供了大量的序列化/反序列化器,能夠滿足大部分應用。

序列化/反序列化器在英文中的對應翻譯是Serializer/Deserializer,一個序列化器的功能是遵循一定的映射規則和編碼風格,將一種類型的JAVA對象通過某種特定的機制,轉換成為XML描述的形式[8];反序列化器的功能是序列化器所做工作的逆操作,兩者相輔相成,成對出現。Axis中的序列化/反序列化器采用設計范式中的工廠模式,每一個Serializer惟一對應一個SerializerFactory;每一個Deserializer惟一對應一個DeserializerFactory。一種類型的JAVA對象具體要采用哪個序列化/反序列化器需要在提供Web服務的服務器和調用Web服務的客戶端分別配置。本文就是采用Axis提供的序列化/反序列化器將對象轉換成XML描述的形式,在統一權限系統和業務系統之間傳輸。

2.3 Web+EJB組成真正的多層結構

對于統一權限系統來說,事務機制是非常必要的。如果沒有事務完整性支持,系統在用戶訪問量變大時,就有可能發生各種不可能發生的邏輯錯誤。由于EJB容器對CMP實現有事務機制的緩存優化,因此CMP特別適合多個用戶同時更新同一個數據源的情況,CMP這種嚴格的事務完整性保證多個用戶同時操作一個數據記錄時,能夠保證性能優化和數據的完整性。EJB容器不但在單機中提供了對象池和緩存,而且可以跨服務器實現動態負載平衡,這些都無需開發者自己編寫任何軟件代碼。

3 系統的發布與優化

很多IDE工具提供了非常方便的方法(如JBuilderX的Web Services Designer),可以圖形化的將Java類或SessionBean中的方法發布成Web Services服務,當然也可以自己手工創建部署描述符來部署服務[9]。對于復雜的公用數據,如組織結構樹、數據集等,可以通過Map、Collection等復雜的對象傳遞給業務系統,在RPC調用時,Web Services服務器端通過序列化器將Java對象序列化成XML字串,然后加入到SOAP消息中,客戶端在得到結果后也通過序列化器把XML字串反序列化成一個Java對象。

將客戶端程序訪問Web Services所需要的基本參數放在配置文件里,業務系統只要修改其中的三個參數,即可完成與統一權限系統之間的連接。不管“統一權限系統”與業務系統是否在同一臺服務器上,部署都是非常簡單的。

localhost:7001<!—統一權限系統的服務器地址和端口-->

/UASWeb<!—統一權限系統的虛擬

目錄名稱-->

/UASWeb/services

<!—WSDL Server URL Root-->

采用統一權限系統后,獨立性增強了,和業務系統的耦合度也降低了,但業務系統需要頻繁地通過Web Services請求數據,這就對系統的性能提出了更高的要求。本文采取以下幾個措施來提高性能。

措施之一,對角色增加類別字段,不同類型的角色擁有不同的屬性,如權限的繼承性,與用戶的對應關系等,以適合不同子系統的需求。

措施之二,更加靈活的設置操作的作用范圍,因為作用范圍可以是任何一個或多個角色,而角色又是具有層級關系的樹型結構,如果一個一個地選擇樹中的節點,是非常費時費力的,為達到最大的靈活度,在設置功能的作用范圍時,在選定某個節點的同時,還要選擇相對于樹的方向,例如僅節點自己本身、自己及全部子節點、僅全部子節點(不包括自己)等,另外還要選擇是“包含”還是“去除”這些節點。

措施之三,業務系統通過客戶端訪問統一權限系統,本文設計了用戶權限對象UAD,如圖1所示,用于在服務器和客戶端之間傳輸用戶權限數據。用戶權限存放在Map中,其鍵為角色的ID,值為該角色所擁有的權限數據數組。

4 結束語

本文采用Web Services技術構建了“統一權限系統”,分析了所帶來的新問題,并提出了相應的解決方法,使權限的統一管理變為現實。采用這樣的架構,可以幫助團隊理清思路,節省開發和維護成本。

目前該系統已經成功開發,并作為核心模塊應用在第一證券有限公司綜合信息系統中,同時為不同架構(B/S和C/S)和不同部署平臺(Window和Linux)的業務系統提供服務,取得了不錯的效果。這對于大型企業、金融機構,或開發自己產品的IT公司來說,都是很有應用價值的。

參考文獻:

[1] 楊艷國,成立權,劉陽.統一用戶權限管理系統的應用研究[J].計算機光盤軟件與應用,2012.2:59-60

[2] 汪迅寶.用Portlet技術實現數字化校園信息門戶設計研究[J].電腦知識與技術,2013.9(2):448-450

[3]權限系統概要(收集,整理)[EB/OL].http://www.jdon.com/7309.

[4]關于用戶角色權限管理一點想法[EB/OL].http://www.jdon.com/2897.

[5] 張友生.系統分析與設計技術[M].清華大學出版社,2005.

[6] 饒元.Web Services:分布式網絡體系新架構[J].計算機工程,2004.30(22):1-3

[7] W3C Recommendation. SOAP Version 1.2 Part 1: Messaging Framework(SecondEdition)[EB/OL].(2007-04-27)http://www.w3.org/TR/soap12-part1/.

[8] Apache Software Foundation. Version:1.6.2: Axis2 Architecture Guide [EB/OL].(2012-04-17)http://ws.apache.org/axis2/0_94/

Axis2ArchitectureGuide.html/.

[9] (美)阿姆斯特朗著,詹文軍譯.Java Web Services教程[M].電子工業出版社,2003.

主站蜘蛛池模板: 亚洲成年人网| 亚洲视频在线观看免费视频| 99视频国产精品| 人妻无码一区二区视频| 亚洲综合网在线观看| 欧洲av毛片| 亚洲天堂2014| 农村乱人伦一区二区| 亚洲三级影院| 自慰网址在线观看| 国产成人凹凸视频在线| 亚洲午夜天堂| 婷婷亚洲视频| 波多野结衣中文字幕久久| 欧美日韩亚洲国产| 日本高清视频在线www色| 人人澡人人爽欧美一区| 亚洲第一成人在线| 亚洲欧美日韩中文字幕在线| 国产又粗又猛又爽视频| 亚洲成a人片在线观看88| 中国一级毛片免费观看| 22sihu国产精品视频影视资讯| 天天色天天操综合网| 欧美日韩国产综合视频在线观看| 大学生久久香蕉国产线观看| 草草线在成年免费视频2| 国产乱人伦AV在线A| 波多野吉衣一区二区三区av| 免费无遮挡AV| 99精品国产自在现线观看| 日本午夜网站| 中文字幕中文字字幕码一二区| 国产美女自慰在线观看| 日韩欧美国产精品| 五月综合色婷婷| 日本免费福利视频| 999精品色在线观看| 国产国语一级毛片在线视频| 久久综合色88| 欧美一区二区三区国产精品| 真人免费一级毛片一区二区 | 成人福利视频网| 一本一道波多野结衣av黑人在线| 久久国产成人精品国产成人亚洲| a天堂视频| 三上悠亚在线精品二区| 精品三级网站| 亚洲天堂成人| 久久99国产综合精品1| 成年女人a毛片免费视频| 国产国语一级毛片| 99青青青精品视频在线| 人妻一本久道久久综合久久鬼色| 国产免费怡红院视频| 国产青榴视频| 欧美天堂久久| 欧美色亚洲| 国产高潮流白浆视频| 欧美日韩中文字幕二区三区| 国产精品免费福利久久播放 | 亚洲无码37.| 一级毛片免费的| 国产精品吹潮在线观看中文| 美女啪啪无遮挡| 99久久人妻精品免费二区| 欧美日韩亚洲国产主播第一区| 手机在线国产精品| 国产特级毛片| 白浆视频在线观看| 欧美一区二区福利视频| 精品国产电影久久九九| 欧美国产视频| 原味小视频在线www国产| 91在线精品麻豆欧美在线| 国产h视频在线观看视频| 国产成人综合网在线观看| 国产欧美日韩另类| 孕妇高潮太爽了在线观看免费| 成人福利在线观看| 亚洲va欧美va国产综合下载| 91在线日韩在线播放|