欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于服務配置標記語言身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法

文檔序號:7945884閱讀:296來源:國知局
專利名稱:基于服務配置標記語言身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法
技術領域
本發(fā)明涉及基于SPML的身份管理的方法,尤其是應用于在身份服務器端與代理端間通信技術領域中數(shù)據(jù)傳送的壓縮方法。
背景技術
身份管理簡介在數(shù)字世界中,特定應用程序、網(wǎng)絡、系統(tǒng)等等的用戶僅僅是一個用戶ID,通過身份驗證后獲得惟一的身份。這就是需要管理的數(shù)字身份。隨著系統(tǒng)和網(wǎng)絡的數(shù)量以及復雜性的不斷增長,管理數(shù)字身份已經(jīng)成為一項重大的挑戰(zhàn)。身份管理指的是一個或多個身份的整個生命周期的管理,從創(chuàng)建到銷毀以及中間發(fā)生的事情,比如管理許可、特權和修改等。
SPML是Service Provisioning Markup Language縮寫,中文名禾爾為月艮務配置豐示記語言。SPML 2.0通過OASIS的供應服務技術委員會(Provisioning ServicesTechnical Committee)的批準,成為身份管理協(xié)議標準。SPML是一個XML框架,用于在不同組織使用的網(wǎng)絡和應用程序間管理諸如用戶帳戶和權限的資源。新的標準包括許多公司用于管理敏感的應用程序和網(wǎng)絡資源所需的類似密碼管理和用戶帳戶取消供應的功能。
對于一個軟件系統(tǒng)而言,賬號、認證、授權和審計是保證安全性的基本要求,即確定哪些人(賬號)可以登錄系統(tǒng)(認證)執(zhí)行哪些操作(授權),且適當記錄操作時間、內(nèi)容和結果(審計)以備責任追蹤。隨著業(yè)務的快速發(fā)展和變化,很多大型企業(yè)在內(nèi)部部署了眾多軟件應用,在外部和合作伙伴建設了公用系統(tǒng),而這些系統(tǒng)往往各自為陣,擁有獨立的賬號、認證、授權和審計功能。對于普通用戶,為完成工作任務,需要記憶多個賬號/密碼并通過多種界面登錄多個系統(tǒng)。對于管理員,需要維護多套系統(tǒng)的多個賬號的生命周期(增、冊IJ、改),尤其是密碼強度規(guī)則的執(zhí)行和密碼的定期修改、遺忘后重置。這樣,企業(yè)的工作效率下降,管理成本上升,安全風險加大。
另一方面,美國薩班斯一奧克斯利法案S0X(Sarbanes-0xley Act)、健康保險流通與責任法案HIPAA(Health Insurance Portability and Accountability Act)禾口金融服務現(xiàn)代化法案GLB (Gramm-Leach-Bliley Act)等從法規(guī)上強制軟件系統(tǒng)遵循一定的安全規(guī)范。其中,尤以SOX對國內(nèi)在美上市企業(yè)影響重大。在這樣的背景下,身份管理應運而生,在國外己成安全市場重要增長點,而國內(nèi)很多企業(yè)也制定了相關的規(guī)范,如中國移動集團的4A安全技術規(guī)范[2]。身份管理系統(tǒng)實現(xiàn)上有許多行業(yè)標準,例如用戶供給協(xié)議SPML (Service Provisioning Markup Language) [3] [4] 。 SPML基于XML,定義了批量操作和查詢操作的消息封裝格式,但未規(guī)定其壓縮方法。
基于SPML身份管理包括三個基本組成部分請求機構(Requesting Authority, RA)、配置服務點(Provisioning Service Point, PSP)和配置服務目標(ProvisioningService Target, PST),如圖1所示
*請求機構(RA): SPML方案中的客戶。它創(chuàng)建形式良好的SPML文檔并作為請求發(fā)送給SPML服務點。這些請求描述了在特定服務點上執(zhí)行的操作。RA向SPML服務點發(fā)送請求,要求RA和SPML服務點之間存在信任關系。每個SPML服務點都可以作 為RA向其他服務點發(fā)送SPML請求。
*配置服務點(PSP):這部分負責監(jiān)聽并處理來自RA的請求,然后將響應返回給 RA。監(jiān)聽和處理結構良好的SPML文檔的任何組件都稱為配置服務點。
配置服務目標(PST):實際執(zhí)行動作的軟件。比如,存儲組織用戶帳號的LMP目 錄,或者用于記錄IT請求(比如為新員工申請膝上型電腦)的IT票證系統(tǒng)。
*身份管理系統(tǒng)普遍運行于大規(guī)模異構網(wǎng)絡環(huán)境中。而涉及批量操作和查詢操作的 SPML消息文本一般很大,在外部網(wǎng)絡上傳輸較慢。參見附件
1. Earl Perkins, Perry Carpenter.《Magic Quadrarvt for User Provisioning》,2008. 8. 15 http:〃鵬di即roducts. gartner. com/gc./r印rints/ibm/'extern;-il/2008/TO],e3Zarticle22/pdf/ article22. pdf
2. 中國移動通信有限公司.《中國移動業(yè)務支撐網(wǎng)4A安全技術規(guī)范》,2007
3. OASIS.《OASIS Service Provisioning Markup Language (SPML) Version 2》,2006.4.1 hUp://'www. oasis-open. o:rg/coi鵬ittees/d〔)TO丄oad. php/17708/pstc-spml-2. 0-os. zip
4. OASIS.((Service Provisioning Markup Language (SPML) Version 1.0》,2003.6.3 htu':〃www. ()asis-open. org/"翻ittees/download. php/:3032/cs-pstc-spml-core-1. 0. pdf
5. OpenSPML Toolkit網(wǎng)址ht:tp:〃w、vw. opensprnl. ot'g/'
6. Apache HttpClient網(wǎng)址http://'he. apache, org/'
7. XFire應用p.jl-co即-filter示例網(wǎng)址hU:p:〃xf ire, codehaus. 0化/^口+8叩口0].-1:曾寧生;劉濤; 康繆健吳冬;龐海東;陸志強;干曉峻
發(fā)明內(nèi)容
本發(fā)明目的是提出一種基于SPML身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法,本發(fā)明 通過結合使用HttpClient、 gzip工具包,實現(xiàn)了 SPML請求/響應消息的雙向高效壓縮, 顯著提高了傳輸效率和配置管理效率。應用于聯(lián)創(chuàng)4A-Securer產(chǎn)品中,應用與在身份 服務器端與代理端間通信技術領域中。
a)技術方案是,基于SPML身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法
1、 SPML模型
SPML是廣為使用的請求/響應模型的一個實例,即客戶端提交SPML請求描述操作, 服務端接收請求并完成操作后返回SPML響應。圖2是SPML l.O的域模型(附件l): SPML 2. 0增加了 PST對PS0的引用,如圖3所示
RA (Requesting Authority)是提交SPML請求的軟件組件,可視為客戶端。 PSP(Provisioning Service Point)是響應SPML請求的軟件組件,可視為服務端。 PST(Provisioning Service Target)是SPML請求所含動作的最終執(zhí)行點。 PSO(Provisioning Service Object)是SPML請求所含動作的操作對象。
以在身份管理與訪問控制系統(tǒng)4A-Securer V2. 0中修改Linux系統(tǒng)中一個賬號密碼 為例說明SPML各組件4A-Securer的身份服務作為RA,代理服務作為PSP, Linux系 統(tǒng)作為PST,賬號作為PSO。SPML為增、冊"、改、査和批處理等操作定義了請求/響應的消息封裝格式。在消息 實例中,如accountRes,可以有多個,不同的是屬性result, info、 result, id的值, result, info可能為空串或提示信息,result, id形如x/test080530x, x為自然數(shù)。
消息內(nèi)容相似度很大,適合壓縮。
SPML規(guī)范沒有正式規(guī)定壓縮方法,而其Java開源實現(xiàn)0penSPML Toolkit(附件3-5) 也沒有提供。下一節(jié)在OpenSPML Toolkit的基礎上描述SPML壓縮方法。 2、 SPML壓縮
SPML規(guī)范的Java開源實現(xiàn)OpenSPML Toolkit提供了 SPML客戶端、SPML服務端和 消息處理三部分應用程序接口 API, SPML客戶端API作用在于將Java對象表示的SPML 請求轉換成SPML消息發(fā)向SPML服務端,并將SPML服務端返回的SPML響應轉換成Java 對象;SPML服務端的主體是一個servlet和一個消息處理接口 , servlet接收SPML請 求后轉換成Java對象,并以其為輸入?yún)?shù)調(diào)用消息處理接口,最后將接口返回的Java 對象轉換成SPML響應后發(fā)回SPML客戶端。消息處理的作用是實現(xiàn)SPML消息和Java 對象的相互轉換。
使用HUpClient工具包Apache HttpClient 3. 1,用它代替OpenSPML SPML客戶端 的消息發(fā)送功能,并增加壓縮/解壓功能。實現(xiàn)了 SPML請求/響應消息的雙向高效壓縮, Apache HttpClient 3. 1是業(yè)內(nèi)成熟有效的Hup客戶端(附件6)。
Web Services開發(fā)框架XFire"]應用相對廣泛,它使用了過濾器pjl-comp-filter 1. 6. 4實現(xiàn)了 GZIP支持。本發(fā)明用pjl-c,-filter實現(xiàn)SPML消息的壓縮/解壓功能。
本發(fā)明有益效果身份管理系統(tǒng)普遍運行于大規(guī)模異構網(wǎng)絡環(huán)境中。而涉及批量操 作和查詢操作的SPML消息文本一般很大,在外部網(wǎng)絡上傳輸較慢。本發(fā)明通過結合使 用HttpClient、 gzip工具包,實現(xiàn)了 SPML請求/響應消息的雙向高效壓縮,顯著提高 了傳輸效率和配置管理效率。
實驗結果,先定義如下概念SPML請求壓縮比=壓縮前SPML請求字節(jié)數(shù)/壓 縮后SPML請求字節(jié)數(shù)。SPML響應壓縮比=壓縮前SPML響應字節(jié)數(shù)/壓縮后SPML響 應字節(jié)數(shù)。以批量操作為例,變化accountReq的個數(shù),根據(jù)pjl-comp-filter的統(tǒng)計 數(shù)據(jù),得出圖4所示SPML消息壓縮比圖。
另外,諸如杳詢一個系統(tǒng)上的所有賬號一類査詢操作,響應消息內(nèi)容一般也很大且具有較高相 似度,其壓縮方法與批量操作相同,在此不贅述。與壓縮前相比,SPML請求、響應壓縮比可達50:1。 在100M局域網(wǎng)內(nèi),傳輸效率火約提高40倍左右。


圖l基于SPML身份管理架構 圖2 SPML 1.0域模型 圖3 SPML 2. 0域模型 圖4 SPML消息壓縮比圖
具體實施例方式
SPML模型,SPML是廣為使用的請求/響應模型的一個實例,即客戶端提交SPML請求描述操作,服務端接收請求并完成操作后返回SPML響應。圖2是SPML 1. 0的域模型(附 件4)。 SPML為增、刪、改、査和批處理等操作定義了請求/響應的消息封裝格式,下面 給出批量刪除賬號的消息實例。 批量刪除賬號請求.-
〈s:Envelope xmlns:s=, http:〃schemas. xmlsoap. org/soap/envelope/,〉 〈s:Body〉
〈spml:batchRequest xmlns:spml=' urn:oasis:names:tc:SPML:1:0' xmlns:dsml二' urn:oasis:names:tc:DSML:2:0:core'
requestID二' 1' processing-' urn:oasis:names:tc:SPML:1:Ottsequential' onError二' urn:oasis:names:tc:SPML:1:Oft:esume' >
〈spml:identifier type二'urn:oasis:names:tc:SPML:1:0#GUID'〉
〈spml:id〉deleteSlaveAccountBatch〈/spml:id〉 〈/spml:identifier^ 〈spml:extendedRequest〉 <spml:attributes>
〈dsml:attr name='sa. name'>
<dsml:value〉test080530l</dsml:value〉 </dsml:attr〉 〈/spml:attributes〉 〈/spml:extendedRequest〉 〈spml:batchAttributes〉
<dsml:attr name二'res. name'〉
〈dsml:value〉oracle38〈/dsml:value〉 〈/dsml:attr〉
〈dsml:attr name=' res. id'〉
〈dsml:value〉13〈/dsml:value〉 〈/dsml:attr〉 </spml:batchAttributes〉 </spml:batchRequest〉 </s:Body〉 〈/s:Envelope〉 腫,
〈spml:extendedRequest〉 〈spml -.attributes)
<dsml :attr n訓e二' sa. name'〉
〈dsml: valueHest0805301〈/dsml: value> 〈/dsml :a"ttr〉〈/spml:attributes) </spml:extendedRequest〉 不妨稱為accountReq,可以有多個,不同處在于屬性sa. name的值,為下面敘述方 便不妨用test080530x表示,x為自然數(shù)。 批量刪除賬號響應
〈 xml version二' 1. 0' encoding二' UTF-8' 〉 〈S0AP-ENV:Envelope
xmlns:S0AP-ENV二, http://schemas. xmlsoap. org/soap/envelope/,〉 <S0AP-ENV:Body〉
〈spml:batchResponse xmlns:spml一 urn:oasis:names:tc:SPML:1:0' xmlns:dsml=' urn:oasis:names:tc:DSML:2:0:core'
result:' urn:oasis:names:tc:SPML:1:0#success'〉
〈spml:extendedResponse result urn:oasis:names:tc:SPML:1:0ttsuccess'〉 〈spml:attributes〉
〈dsml:attr name二'result, info'〉
〈dsml:value〉〈/dsml:value〉 </dsml:attr〉
〈dsml:attr name二'result, id'〉
〈dsml:value〉l/test0805301〈/dsml:value〉 </dsml:attr〉 </spml:attributes〉 〈/spml:extendedResponse> 〈/spml:batchResponse〉 </S0AP-ENV:Body〉 〈/SOAP-ENV:E匿l叩e〉 其中,
<spml:extendedResponse results' urn:oasis:names:tc:SPML:1:Ottsuccess'〉 〈spml:attributes〉
〈dsml:attr name二'result, infc/〉
〈dsml:value〉〈/dsml:value〉 </dsml:attr〉
〈dsml:attr name二'result, id'〉
〈dsml:value〉l/test0805301〈/dsml:value〉 </dsml:attr〉 〈/spml:attributes〉 〈/spml:extendedResponse〉
本發(fā)明用pjl-comp-filter實現(xiàn)SPML消息的壓縮/解壓功能。1) SPML客戶端壓縮/解壓功能實現(xiàn)
首先定義類GZIPStringRequestEntity,以之實現(xiàn)SPML請求的壓縮。
class GZIPStringRequestEntity extends
org.apache, commons, httpclient. methods. StringRequestEntity private byte[] content;
public GZIPStringRequestEntity(String content)
throws Java. io.UnsupportedEncodingException { super(content);
this.content 二 content.getBytes0 ;
public GZIPStringReques"l:Entity(String content, String contentType,
String charset) throws Java. io. UnsupportedEncodingException super (content, contentType, charset); String checkedCharset 二 this.getCharset0 ; if (checkedCharset !二 null)
this.content = content,getBytes (checkedCharset); else
this, content = content. getBytes ();
public void writeRequest(Java. io. OutputStream out) throws Java. io. IOException { if (out 二 二 null) {
throw new IllegalArgumentException(
"Output stream may not be null");
public long getContentLength0 {
return _1; 〃強行使用chunked編碼,艮卩Transfer-Encoding: chunked
實現(xiàn)壓縮后SPML請求發(fā)送、壓縮后SPML響應接收的關鍵語句: 〃以url表示SPML服務端URL
java. util. zip. GZIPOutputStream zip0s 二
new Java. util. zip. GZIPOutputStre腦(out); zipOs. write(this. content); zipOs. finish();org. apache, commons, httpclient.methods. PostMethod post 二 new org. apache, commons, httpclient. methods. PostMethod(url); 〃以spmlReq表示要發(fā)送的SPML請求
post.setRequestEntity(new GZIPStringRequestEntity(spmlReq));
〃告知pjl-co即-filter:用gzip壓縮SPML響應
post. setRequestHeader(〃Accept-Encoding〃, 〃gzip〃);
〃告知pjl-comp-filter:客戶端已用gzip壓縮SPML請求
post. setRequestHeader(〃Content-Encoding〃, 〃gzip〃);
org.apache, commons, httpclient. HttpClient client =
new org. apache, commons, httpclient.HttpClient 0 ;
〃用HttpClient發(fā)送壓縮后的SPML請求
int status = client. executeMethod(post);
if (status = 二 org. apache, commons, httpclient. HttpStatus. SC—OK) {
〃 spmlResBuf存儲SPML請求
StringBuffer spmlResBuf 二 new StringBuffer0 ;
Java. io. I叩utStream in 二 post. getResponseBodyAsStream(); jara. io. BufferedReader br 二 new Java. io. BuffereclReader ( new ja復io. I叩utStre腦Reader (
流程說明-.
1、 接受SPML發(fā)送請求。
2、 告知pjl-comp-filter采用gzip壓縮SPML請求/和SPML響應。
3、 采用GZIP壓縮SPML請求。
4、 用HttpClient發(fā)送壓縮后的SPML請求。
5、 發(fā)送請求成功后,用HTTPClient接受SPML響應。
6、 用GZIP解壓縮SPML響應。
2) SPML服務端實現(xiàn)壓縮/解壓功能說明
1、 定義類SPMLIMServerServlet,以之接收SPML請求。SPMLMServerServlet
發(fā)送請求成功后,接收/解壓壓縮后的SPML響應
br.close 0 ; in. close ();繼7承自org. openspml, server. SOAPRouter,并覆蓋了父類中的getPost方法,代碼如 下-
public String getPost (javax.servlet. http. HttpServletRequest req) throws Java. io. IOException {
javax. servlet. ServletI叩utStream is 二 req. getlnputStream0 ; Java. io. BufferedReaxier br =
new Java. io. BufferedReader(new Java. io. I叩utStreamReader(is)); String tempbf;
StringBuffer buffer 二 new StringBuffer0 ; while ((tempbf 二 br. readLine ()) != null) { buffer, append(tempbf);
return buffer. toStringO ;
2、 部署pjl-comp-filter以實現(xiàn)SPML請求的解壓和SPML響應的壓縮,即在 web. xml中土曾力口 〈filter〉
<f ilter-name〉CompressingFilter〈/filter-name〉 <filter-class〉
com. planetj.servlet.filter, compression. CompressingFilter
</filter-class〉
</filter〉
<f i 1 ten即pi ng〉
<f i Iter-name〉Comp:ressingFi 1 ter〈/f i lter-name〉 〈url_pattern>A〈/url-pattern〉 〈/f ilter-m即ping〉
SPMLIMServerServlet作為Servlet部署,禾口 org. openspml. server. SOAPRouter類 似,不贅述。
上述程度使用HttpClient工具包Apache HUpClient 3. 1,用它代替OpenSPML SPML 客戶端的消息發(fā)送功能,并增加壓縮/解壓功能。
同時使用Web Services開發(fā)框架使用了過濾器pj卜comp-f ilter 1. 6. 4實現(xiàn)了 GZIP 實現(xiàn)SPML消息的壓縮/解壓功能。
權利要求
1、基于SPML身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法其特征是以SPML規(guī)范的Java開源實現(xiàn)OpenSPML Toolkit提供SPML客戶端、SPML服務端和消息處理三部分應用程序接口API,SPML客戶端API作用在于將Java對象表示的SPML請求轉換成SPML消息發(fā)向SPML服務端,并將SPML服務端返回的SPML響應轉換成Java對象;SPML服務端的主體是一個servlet和一個消息處理接口,servlet接收SPML請求后轉換成Java對象,并以其為輸入?yún)?shù)調(diào)用消息處理接口,最后將接口返回的Java對象轉換成SPML響應后發(fā)回SPML客戶端。
2、 根據(jù)權利要求1所述的基于SPML身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法 其特征是用過濾器pjl-comp-filter實現(xiàn)SPML消息的壓縮與解壓。
全文摘要
基于SPML身份管理協(xié)議實現(xiàn)數(shù)據(jù)傳送高效壓縮方法以SPML規(guī)范的Java開源實現(xiàn)OpenSPML Toolkit提供SPML客戶端、SPML服務端和消息處理三部分應用程序接口API,SPML客戶端API作用在于將Java對象表示的SPML請求轉換成SPML消息發(fā)向SPML服務端,并將SPML服務端返回的SPML響應轉換成Java對象;SPML服務端的主體是一個servlet和一個消息處理接口,servlet接收SPML請求后轉換成Java對象,并以其為輸入?yún)?shù)調(diào)用消息處理接口,最后將接口返回的Java對象轉換成SPML響應后發(fā)回SPML客戶端。
文檔編號H04L29/06GK101645885SQ20091002778
公開日2010年2月10日 申請日期2009年5月21日 優(yōu)先權日2009年5月21日
發(fā)明者濤 劉, 冬 吳, 龐海東, 康繆健, 曾寧生, 王曉峻, 陸志強 申請人:南京聯(lián)創(chuàng)科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嘉鱼县| 微山县| 通许县| 巢湖市| 金阳县| 南召县| 德安县| 莱芜市| 黑水县| 松溪县| 沧源| 佛坪县| 长丰县| 上蔡县| 崇仁县| 华容县| 荣成市| 铜川市| 马关县| 抚州市| 武宁县| 棋牌| 三原县| 阿荣旗| 钟山县| 武功县| 丹阳市| 侯马市| 稷山县| 杭州市| 南充市| 英山县| 英吉沙县| 永靖县| 彭州市| 宁津县| 鸡西市| 威宁| 巍山| 广宁县| 涟水县|