專利名稱:用于服務資源定位符的請求的方法
技術領域:
本發(fā)明涉及萬維網事務的能力支持。
背景技術:
“站點跳轉”和“后退按鈕”問題是在萬維網站點上運行的很多電子商務應用的問題。用戶需要以特定次序與網站的頁面交互,以便執(zhí)行有效的事務。應付這些問題的現有措施典型地依賴于客戶端瀏覽器,其可能被危害而違反網站的完整性。
當前在萬維網服務器中使用的認證措施通常使用訪問控制機制來實現。訪問控制列表將用戶名及其相關聯的密碼制成表格。應用服務器將由用戶提供的用戶名和密碼與在該訪問控制列表中所存儲的這些信息進行匹配。這樣的基于訪問控制的機制不能針對要求更復雜或高級的功能性的應用而適當地擴展。
在1999年11月23號頒發(fā)給Microsoft公司且發(fā)明名稱為“Methodand System for invoking methods of objects over the internet”的美國專利申請第5,991,802號中,概述了解決使用用戶名和密碼的限制的一種嘗試。該參考文獻描述了客戶端計算機系統調用由服務器計算機系統提供的對象類的對象的函數??蛻舳讼蚍掌靼l(fā)送請求,其中該請求包括標識腳本、對象類和要調用的該對象類的函數的統一資源定位符(“URL”)。響應于接收到該請求,服務器啟動腳本并且將控制轉移給該腳本。
該腳本實例化在所接收請求的URL中標識的對象類的對象,并且調用在該URL中標識的函數。所調用的函數執(zhí)行該函數的行為,創(chuàng)建要發(fā)送給客戶端瀏覽器的響應,并且將該響應發(fā)送給客戶端瀏覽器。該響應包括描述在執(zhí)行該函數的行為之后的對象狀態(tài)的狀態(tài)信息。當客戶端瀏覽器隨后發(fā)送要調用該對象類的函數的請求時,將該狀態(tài)信息包含在該請求中,從而該函數可以根據該狀態(tài)信息操作。雖然在該參考文獻中描述的“狀態(tài)-滿(state-full)”在很多上下文中是有幫助的,但是特別是對于基于萬維網的應用,它只提供了基本級別的處理性能。
因此,需要在電子網絡上執(zhí)行事務的改進方式。
發(fā)明內容
在此描述的技術使得萬維網服務器能夠提供對網站資源的受控訪問??梢栽谑聞罩蟹乐篃o序操作,從而提供了分布式認證機制。訪問控制可以跨越多個管理域來實現??梢源_保對網站資源的有序訪問,從而限制客戶端瀏覽器以特定順序訪問資源。
接收資源定位符(例如,統一資源定位符-URL-或類似引用),其加入了根據預定格式結構化的控制信息。根據預定格式,從資源定位符確定該控制信息。可以使用多種格式,其中每種格式適合于特定網站所提供的特定類型的請求或事務。根據所加入的控制信息來處理資源定位符,其指導(govern)如何處理資源定位符請求。然后,系統可以響應所請求的資源定位符。
控制信息可以指定如下細節(jié),即對于特定次數的資源定位“點擊”、對于給定時間段、或者對于特定數目的事務,所定位資源的有效性。類似地,控制信息可以指定只有特定的細節(jié)可以被訪問或者只以特定次序被訪問。在控制信息中所編碼的限制被裁制(tailor)成適合特定應用。
所述技術可以在萬維網服務器和應用服務器之間“透明地”實現,并且可以被加入到現有網站的操作中而無需大量的修改。
圖1是實現在此所描述的性能支持特性的網關CGI組件的各組件的示意圖。
圖2是在處理加入了訪問控制信息的類型1URL時所涉及的各步驟的流程圖。
圖3是在處理加入了訪問控制信息的類型2和3URL時所涉及的各步驟的流程圖。
圖4是用于參照圖1所描述的類型的示例網關CGI組件的事件跟蹤(event-trace)。
圖5是適用于執(zhí)行在此所描述的技術的計算機系統的示意圖。
具體實施例方式
圖1示意性地表示加入到現有萬維網服務器架構中的網關CGI組件130。網關CGI組件130在萬維網服務器120和應用服務器190之間工作。網關CGI組件130修改現有統一資源定位符(URL)結構,以加入能力控制信息(CCI),并且還在URL被提供給網關CGI組件130時驗證在URL中編碼的“能力”。
能力使用CCI嵌入在所述URL中。這些能力可以包括僅對特定數目的“點擊”的有效性、對給定時間段的有效性、對特定數目的事務的有效性、訪問特定資源的授權、以及訪問這些資源的次序??梢愿鶕枰獊碇付ê吞幚砀鞣N能力。
能力包括用戶事務的“權限”的集合。CCI可以被安全地加密,以確保能力不能被重建(reconstruct)。實現這點的一種方法是確保CCI攜帶URL的校驗和,從而阻止用戶篡改或偽造在URL中所加入的CCI。
加入了CCI的URL的擁有被認為是用戶可以以由CCI描述的方式并且僅以該方式執(zhí)行事務的確鑿證據。加入了CCI的URL可以被簽名和加密,因此不易于被“偽造”。
CCI可以以如下方式進行編碼經由網站從應用服務器190可得到的每個資源具有與源相關聯的能力。能力可以以二進位形式表示,主要是二進制1或0。二進制“1”表示資源可以被訪問,而二進制“0”表示資源不能被訪問。只有在URL中所加入的CCI所指定的能力是該URL正在引用的資源的能力的超集或等集,才允許客戶端110訪問該資源。如果資源具有相關聯的能力,并且客戶端110不具有在相關URL中所加入的CCI中指定的所需能力,則不如URL所請求的那樣處理該請求。
因此,站點A可以生成基于能力的安全URL(也就是,加入CCI)并且將這樣的URL分發(fā)給其用戶。然后,這些用戶可以在網站B處提供這些安全URL。基于能力的URL攜帶在網站B處所需的控制信息。
網關CGI組件130在后端數據庫170和配置文件160的幫助下施加能力限制。不是萬維網服務器120將在URL中指定的所請求資源直接轉發(fā)給應用服務器190,而是將請求發(fā)送給網關CGI組件130,其中網關CGI組件130參考在客戶端110最初提供的URL中所編碼的CCI,確保不違反任何相關“能力”。
在確定不存在能力違反之后,網關CGI組件130將所加入的CCI從URL中去除,并且將此時修改后的“常規(guī)”URL重定向到應用服務器190。相反地,網關CGI組件130截取來自應用服務器190的所有結果頁面,并且修改在URL中所包含的超鏈接,以適當地加入CCI。網關CGI組件130對于萬維網服務器120和應用服務器190是“不可見”的。這樣,這種方案可以提供跨越多個管理域的事務能力。
可以是常規(guī)URL或加入了CCI的URL的每個URL請求首先被提供給萬維網服務器120。萬維網服務器120檢查客戶110請求訪問的資源是否在沒有能力控制限制的情況下被服務。如果客戶端110請求訪問具有關聯能力的資源,但是URL請求不是包括了任何CCI的URL,則萬維網服務器120在將該請求記錄在日志中以便進一步調試之后,將錯誤頁返回給客戶端110。普通URL請求被直接提供給應用服務器190。各種資源的能力存儲在配置文件160中,其可以被網關CGI組件130訪問。該網關CGI組件130在萬維網服務器120上執(zhí)行。然而,網關CGI組件130也可以在應用服務器190上或者在萬維網服務器120和應用服務器190之間的任何地方執(zhí)行。
應用服務器190執(zhí)行后端處理并且返回結果頁面。另一方面,如果將加入了CCI的URL提供給萬維網服務器120,則萬維網服務器120使用該URL調用網關CGI組件130,以便進一步處理CCI。
網關CGI組件130將加入了CCI的URL視為來自萬維網服務器120的輸入,并且執(zhí)行特定處理。能力限制的違反將發(fā)送錯誤頁給萬維網服務器120并且將請求記錄在日志中以便將來調試。相反地,如果沒有違反能力,則將排除了CCI的所請求URL轉發(fā)給應用服務器190,以便執(zhí)行進一步的基于事務的處理。
一旦處理完成,應用服務器190將結果頁面返回給網關CGI組件130。修改該結果頁面中的所有超鏈接,以加入適當的CCI。修改由頁面修改器180來執(zhí)行,該頁面修改器180修改超鏈接,以加入CCI和狀態(tài)信息,以將超鏈接變成類型-2URL。最后,通過萬維網服務器120將修改后的結果頁面發(fā)送回到客戶端110。
網關CGI組件130可以采用CGI腳本或Java小服務程序(Servlet)來實現,并且可以以與其它組件相同的方式加入到現有萬維網服務器120中。網關CGI組件130可以在萬維網服務器120內執(zhí)行,或者用截取從萬維網服務器120到應用服務器190的請求的中間服務器來執(zhí)行,或者可以作為應用服務器190的前端接口來執(zhí)行。
在URL中編碼CCI在URL中所加入的CCI對特定于具體應用的控制信息進行編碼。在基于萬維網的事務的上下文中,對于典型應用出現的例子包括URL有效的事務數,URL有效的持續(xù)時間,表示可被訪問的資源的能力信息,以及所使用的加密模式。通過添加例如可以是簡單校驗和的加密模式,URL是安全的。所加入的實際信息特定于每個具體應用,不過由于這些應用的共同性,很多應用可以使用類似的控制信息。
下面表1提供了三種加入了CGI的URL的各自格式,下面將對每種格式進行進一步的描述。類型1URL具有在不同的網站(可能是不同的管理域)發(fā)起新事務的能力。類型2URL用于繼續(xù)正在進行的事務。類型3URL加入特殊的“自動-加載”URL如內聯圖像(HTTP超文本傳輸協議中的IMG-SRC)以及帶框架的頁面。
表1類型1URL-初始URL<Protocol>//<Domain-name>/<gc-path>/<Document-path>/<Capabilities>/<IssuerID>/<Generation-Time>/<Max-Age>
/<Number-of-access>/1/<Cryptographic-authentication>
類型2URL-正在進行的事務-URL<Protocol>//<Domain-name>/<gc-path>/<Document-path>/<Expiry-Time>/<Transaction-Index>/<Transaction-State>/2/<Cryptographic-authentication>
類型3URL-SRC事務URL<Protocol>//<Domain-name>/<gc-path>/<Document-path>//<Expiry-Time>/<Transaction-Index>/<Transaction-State>/3/<Cryptographic-authentication>
對于所有類型的URL公共的是“Protocol”字段,其是指用于在因特網上通信的相關協議,例如HTTP、HTTPS、SHTTP或FTP?!癉omain-name”字段是指用點號(“.”)分隔的域標簽序列。按照慣例,每個域標簽以字母數字字符開始和結束,并且可能還包括短劃線(“-”)字符。“gc-path”字段是指萬維網服務器120上網關CGI組件130的位置,而“Document-path”字段是指文件可被訪問的路徑?!?”、“2”、“3”字段用于區(qū)分URL的各自類型。下面將更詳細地描述這些類型的URL中的每一個。
類型1URL帶CCI的類型1URL是在萬維網服務器120處生成的初始URL。例如在事務的開始時使用類型1URL。這些URL可以被分發(fā)給所有客戶端110或僅僅特定客戶端110。
“Generation-Time”和“Max-Age”字段確定URL何時“期滿”,也就是,由“Generation-Time”和“Max-Age”的組合所表示的時間,在此之后,URL所表示的資源不能被訪問?!癗umber-of-access”字段是指URL有效的事務數。同樣地,在先前訪問了指定次數之后,該URL所表示的資源不能被訪問。
“Capabilities”字段是指定URL能力的二進制位串。萬維網服務器120的管理員可以在配置文件160中指定萬維網服務器120的各個資源的所需能力。只有URL的能力是訪問特定資源所需的能力的超集,請求才被服務。
“IssuerID”字段是萬維網服務器120的用戶標識符,其簽發(fā)/生成了該加入了CCI的URL?!癈ryptographic-authentication”字段用來阻止用戶篡改URL,這是因為在不經過非同尋常的努力的情況下該字段不能被容易地復制?!癈ryptographic-authentication”字段可以基于秘密密鑰加密或密鑰化散列(keyed hash)。由于秘密密鑰加密需要消息認證,因此系統不能加密URL,因此出于性能的原因,密鑰化散列是優(yōu)選的。其意圖是阻撓可能希望偽造URL的惡意用戶,因此隨同CCI一起,將加密模式添加到URL。一個這樣的加密模式例子是隨同URL一起附加的檢驗和。這避免了惡意用戶偽造URL。惡意用戶可以通過修改出現在URL中的期滿日期或其它項目來修改URL,但是該措施防止了成功使用如此修改過的URL。
在密鑰化散列加密的情況下使用的密鑰是共享密鑰,加入了CCI的URL的簽發(fā)者/生成者與如上所述響應來自客戶端110的萬維網服務器120共享該密鑰。
類型2URL類型2URL用于“正在進行的事務”。類型2URL加入了這樣的CCI,其向網關CGI組件130表示在數據庫170中正在引用哪個事務以及該事務的狀態(tài)。類型2URL具有“Transaction-Index”字段,其是數據庫170的字段中對應條目的索引,從而當點擊這些URL時,可以將這些鏈接引用到數據庫170中的正確條目?!癊xpiry-Time”字段表示當前事務被中止或無效的時間。
“State”字段表示正在進行的事務的狀態(tài)。初始地,當事務開始時,數據庫170的“狀態(tài)”為0。對于事務的每個隨后轉變(包括客戶端110的隨后訪問),相應地遞增該狀態(tài)。該狀態(tài)值存儲在類型2URL中,從而當點擊這些類型2URL時,通過數據庫字段170驗證URL的狀態(tài)匹配數據庫170的狀態(tài)。這樣,可以約束客戶端110僅以特定次序訪問URL。如果客戶端110試圖“保存”該URL,繼續(xù)事務,并且想要在以后使用所保存的URL,則URL的狀態(tài)將不匹配存儲在數據庫170中的狀態(tài),并且將相應地處理該請求,從而產生適當的錯誤。
在帶CCI的類型2URL中,通過僅為在其中執(zhí)行事務的萬維網服務器120所知的局部密鑰來執(zhí)行密鑰化散列。
類型3URL類型3URL用于來自客戶端110的源(“SRC”)請求。這些URL也在URL是SRC請求時生成。這些SRC請求可以由于圖像、圖像映射、服務器側包含、以及使用HTTP發(fā)出的其它這樣的請求。類型2和類型3URL的格式是相同的。然而,當請求類型3URL時,因為在邏輯上事務尚未進入新狀態(tài)-而是在相同狀態(tài)下請求更多的頁面,所以不遞增數據庫170中的狀態(tài)。這些URL存在于正在進行的事務的頁面上。
網關CGI組件的子組件圖1示意性地表示網關CGI組件130的各個子組件及其交互。網關CGI組件130具有以下內部子組件·CCI生成組件155將常規(guī)URL轉換成加入了CCI的URL,其隨后被提供給網關CGI組件130,以便認證。
·CCI驗證組件140檢查在URL中加入的CCI的真實性。這確保了在由CCI生成組件155提供URL之后該URL未被篡改。
·能力確認(validation)組件150檢查在URL中加入的CCI是否具有訪問在URL中引用的資源的所需能力。
·頁面修改器組件180將適當的CCI加入到作為從應用服務器190接收的每個結果頁面的超鏈接而嵌入的URL中。
·配置文件160是包含關于萬維網服務器120處的資源的能力信息的靜態(tài)配置文件。
·數據庫170用于存儲與能力和當前事務狀態(tài)相關的數據。數據庫170還包含關于各個當前事務的信息,例如其狀態(tài)、并行連接數、期滿時間等。
萬維網服務器120首先將加入了CCI的URL提供給CCI驗證組件140。CCI驗證組件140檢查URL的數據完整性,并且饋送給能力確認組件150。能力確認組件150驗證所有能力限制,并且將請求轉發(fā)給應用服務器190以便處理。最后,由頁面修改器組件180修改來自應用服務器190的結果頁面,并且通過萬維網服務器120將其發(fā)送到客戶端110。下面更詳細地描述網關CGI組件130的各個組件。
CCI生成CCI生成組件155與配置文件160交互,并且不參與網關CGI組件130的普通事務處理功能。網關CGI組件130的CCI生成組件155生成帶CCI的URL,其通過各種可能的信道被分發(fā)給客戶端110。例子包括網頁或電子郵件上的廣告鏈接。換句話說,CCI生成組件155生成帶CCI的類型1URL。給定普通URL,該CCI生成組件155包括以下能力信息對于給定時間段的有效性,對于特定數目的事務的有效性,訪問來自萬維網服務器120的某些資源的授權。然后,CCI生成組件155加密該信息。
在多站點交互的情況下,在兩個萬維網服務器120之間共享密鑰。通過與能夠被訪問的資源有關的CCI在配置文件160中提供該密鑰。其它CCI如有效期和有效事務數也在配置文件160中作為CCI被指定。所有這些信息在類型1的URL中被編碼,然后使用兩個萬維網服務器120之間的共享密鑰被加密。
CCI驗證首先由CCI驗證組件140來驗證提供給網關CGI組件130的包含加入了CCI的URL的每個請求。也就是,如果由一個萬維網服務器120生成加入了CCI的URL,則使用私鑰來解密并且確保該內容未被用戶篡改。如果加入了CCI的URL由無關管理域中的另一個萬維網服務器120生成,則可以使用共享密鑰來解密并且檢查該數據是否真實。執(zhí)行解密的密鑰基于加入了CCI的URL中的“IssuerID”字段來確定。
如果簽名驗證失敗,則通過萬維網服務器120將錯誤頁面提供給客戶端110。一旦成功驗證,則將該URL發(fā)送給能力確認組件150。
能力確認網關CGI組件130的能力確認組件150確保加入到URL中的CCI未“被違反”。數據庫170存儲兩個數據表(表2的“MainTable(主表)”和“VariableTable(變量表)”,如下所述)、以及配置文件160,其中配置文件160指定針對萬維網服務器120的所有資源維護的能力信息?!癕ainTable”數據庫表包括關于能力的信息,而“VariableTable”數據庫表包含關于同時發(fā)生的多個正在進行的并行事務的信息。下面的表2提供了MainTable和VariableTable數據庫表的內容。
表2
“MainTable”中所存儲的字段是“GeneratedTime”(其是帶CCI的URL的創(chuàng)建時間)、以及“MaxAge”(其是該URL有效的持續(xù)時間),從而系統知道該URL何時期滿,并且由此能夠根據時間來限制對資源的訪問?!癗umTimesLeft”字段也被維護,從而URL可以不被使用超過最大允許事務數。用戶ID(UID)和URL文檔路徑被存儲以保持哪個其它網站生成了URL以便訪問該網站的哪些部分的日志。然后,例如,可以根據這些參與網站之間的協定對這些外部網站進行適當的收費。
關于當前事務的信息存儲在上面圖2表中表示的“VariableTable”中,該表中的基本字段是“State”字段。這個字段表示從“0”開始的事務當前狀態(tài)。字段“Time-To-Remove”是指在其之后中止并從VariableTable中去除當前事務(對應于該VariableTable條目)的時間。在類型2URL中,“Expiry”字段的值正好為VariableTable數據庫表的“Time-To-Remove”字段的值?!癇ack Ptr”字段是到對應MainTable條目的外部鍵。VariableTable數據庫表還包含用于特定事務的能力信息。
數據庫170的MainTable中的字段“NumSimmConn”是指對應于MainTable中的特定條目所發(fā)出的同時請求的當前數目。這受限于“NumTimesLeft”的最大值,也就是,(對于該URL)剩余的事務數。保持該限制,從而即使通過淹沒(flooding)萬維網服務器120,用戶也不能超過指定限制來訪問事務。也就是,在與MainTable中的單個條目相對應多個事務在應用服務器190上運行的情況下,網關CGI組件130允許更多的請求通過網關CGI組件130,因為“NumTimesLeft”不被頁面修改器180減小。這樣,多于所需數目的請求可被處理。這個字段確保了不允許超過最大數目的訪問。
頁面修改器在應用服務器190執(zhí)行后端處理之后,與VariableTable中的條目對應的結果頁面被提供給頁面修改器組件180。然后,應用服務器190解析整個文檔,并且修改該文檔中的超鏈接。
在結果頁面是最終頁面的情況下,頁面修改器組件180從VariableTable中去除對應于正在進行的事務的條目,從而表示事務的結束。另外,在MainTable中遞減“NumTimesLeft”字段。
在修改結果文檔其中結果文檔不是最終頁面之前,頁面修改器組件180還遞增VariableTable中的“State”字段。這樣做是為了避免狀態(tài)跳轉和后退按鈕的問題。
頁面修改器組件180修改結果頁面中的超鏈接的URL。假如超鏈接為類型“IMG SRC”或參考框架,則頁面修改器組件180將這樣的超鏈接修改成帶CCI的類型3URL。從VariableTable中提取類型3URL所需的信息。否則,如果超鏈接不為類型“IMG SRC”,則該將該超鏈接轉換成帶CCI的類型2URL。
頁面修改器組件180知道與客戶端110的同時連接,并且能夠將結果頁面與“VariableTable”中的對應條目相關。最后,將結果頁面發(fā)送到萬維網服務器120。
配置文件配置文件160是平面(flat)靜態(tài)文件,其包含用于網站所有資源的能力控制信息。資源可以作為正則表達式(regular expression)來表達,并且能力信息被編碼成二進制位串。還在配置文件160中指定表示事務最終狀態(tài)的頁面。
對于多個管理域,提供了關于共享密鑰、生成時間、最大年齡、URL有效的事務數以及URL能力的信息。網關CGI組件130的CCI生成組件155使用該信息生成用于其它域的帶CCI的URL。
用于處理URL的過程圖2是在處理類型1URL時所涉及的各步驟的流程圖,而圖3是在處理類型2和3URL時所涉及的各步驟的流程圖。
當將帶CCI的類型1URL提供給能力確認組件150時,通過來自所請求URL的對應條目在MainTable中生成一個條目,并且還在VariableTable中生成一個條目,從而表示事務的開始。如果再次點擊相同的類型1URL,該URL僅被引用到相同的MainTable條目。不生成新的條目。然而,在VariableTable中生成新的條目,由此表示對應于原始URL的另一個新事務的開始。因此,對應于MainTable中的每個條目,在VariableTable中可以存在若干條目。這表示存在與相同的初始類型1URL對應的若干當前并行事務。
最初,在VariableTable中“State”被設置為零。每次在事務中進行轉變,也就是,請求事務中的下一資源,則能力確認遞增狀態(tài)值,并且由此記錄正在進行的事務的狀態(tài)。
當加入了類型1URL被提供給能力確認組件150時,在步驟210檢查提供URL的時間是否小于在URL中加入的“Generation-Time”和“Max-Age”字段中記錄的值之和。
在步驟220確定所請求資源的能力是否是在URL中加入的CCI所指定的能力的子集。如果否,則在步驟280將錯誤發(fā)送到萬維網服務器。否則,處理進入步驟230。
在滿足了步驟210和220的條件時,在步驟230檢查在MainTable中是否已經存在條目。然后,在步驟240確定MainTable中的“NumTimesLeft”值是否非零。如果是,則在TransactionTable(事務表)中添加新條目,其中“state”字段的值為零。然而,如果MainTable中的“NumTimesLeft”值為零,則在步驟280將錯誤發(fā)送到萬維網服務器120。
如果在步驟230中找不到這樣的條目,則在步驟260在MainTable和VaraibleTable數據庫表中生成條目,其中在VariableTable中“State”被初始化為零。然后,在從URL中去除CCI之后,將所請求的URL發(fā)送到應用服務器190。
圖3是有關類型2或3URL的流程圖。首先在步驟310確定“Transaction-Index”是否是VariableTable的有效索引。接下來,在步驟320,比較VariableTable中的“expiry-Time”與在URL的CCI中指定的時間。如果時間期滿,則在步驟370將錯誤消息發(fā)送到萬維網服務器。否則,如果時間有效,則針對整個事務,對MainTable中的“GeneratedTime”和“Max Age”字段的值執(zhí)行另一個檢查。如果時間段不是當前的,則在步驟370發(fā)送錯誤。
否則,在步驟340從VariableTable的“State”字段中取出類型2(或類型3)URL中的字段“State”的值,并且將其與在URL的CCI中編碼的值。如果不匹配,則在步驟370發(fā)送錯誤。否則,如果匹配,則每當對于特定資源由性能確認組件150接收到類型2(或類型3)URL請求時,在步驟350將在VariableTable中所存儲的URL的能力與所請求資源的所需能力進行比較。該能力被記錄在配置文件160中。只有URL具有訪問資源的能力,才在步驟360服務請求。
當類型2(或類型3)URL請求到達網關CGI組件130的性能確認組件150時,只有URL的“State”字段匹配在數據庫170中存儲的“State”,才服務請求。
數據庫170的“MainTable”中的條目被保留,直到URL的期滿。在此時間之后,該URL被無效,也就是,在由“Generation-Time”和“Max-Age”的組合表示的時間期滿之后。
一旦事務結束,就刪除數據庫170的“VariableTable”中的條目。事務的結束由事務的最后節(jié)點表示。如果最后的節(jié)點是靜態(tài)資源,則在配置文件160中指定與事務的最后節(jié)點對應的所有這樣的資源。然而,如果最后節(jié)點是動態(tài)資源,則該節(jié)點可以具有依賴于輸入的各種輸出。在一個輸入的時候,輸出可能是事務的結束,而在另一輸入的時候,它可以只是輸出事務中的另一階段。因此,為了獲得動態(tài)資源以通知事務的結束,管理員必須將METATAG置入到其對應于最后節(jié)點的輸出中。
示例事件跟蹤圖4是網關CGI組件130的示例事件跟蹤。首先,在步驟410,客戶端110將帶CCI的URL發(fā)送到萬維網服務器。然后,在步驟420,萬維網服務器120將帶CCI的URL轉發(fā)給網關CGI組件130。在步驟430,網關CGI組件130驗證簽名和能力信息,并且修改數據庫170。然后,在步驟440,網關CGI組件130將排除了能力“pads”的URL發(fā)送到應用服務器190。
在步驟450,應用服務器190處理該URL的請求,并且在步驟460將響應發(fā)送到網關CGI組件130。在步驟470,網關CGI組件130修改來自應用服務器190的響應頁面的URL。在步驟480,網關CGI組件130將修改后的頁面發(fā)送回到萬維網服務器120。然后,在步驟490,由萬維網服務器120將該頁面轉發(fā)回到客戶端110。
示例應用考慮銀行事務,其中在銀行“B1”中擁有帳戶的個人“a”想要將一些錢轉帳給在銀行“B2”擁有帳戶的另一個人“b”。銀行“B1”和“B2”使用共享密鑰來加密任何事務數據。
首先,“a”請求銀行“B1”給予他基于能力的URL,其加入了要轉帳的金額、要向其轉帳的用戶,也就是“b”。
通過使用兩個銀行的共享密鑰計算密鑰化散列來保護該URL,并且將該密鑰化散列附加到結果URL中,以防止對URL的任何篡改。由個人“a”負責安全地將該URL傳遞給“b”。然后,個人“b”將該URL提供給目標銀行“B2”,然后,目標銀行“B2”可以驗證該URL的完整性,并且允許/不允許該事務。在此,“a”和“b”可以使用他們的帳號作為能力控制信息的一部分,以便進一步地保護該事務。
計算機硬件圖5是適于執(zhí)行計算機軟件從而用作客戶端110、萬維網服務器120或應用服務器190的類型的計算機系統500的示意圖。計算機軟件在計算機系統500上安裝的適當操作系統下執(zhí)行,并且可以被認為是包括各種用于實現特定步驟的軟件代碼裝置。
計算機系統500的組件包括計算機520、鍵盤510和鼠標515、以及視頻顯示器590。計算機520包括處理器540、存儲器550、輸入/輸出(I/O)接口560、565、視頻接口545、以及存儲設備555。
處理器540是中央處理器(CPU),其執(zhí)行操作系統和在該操作系統下執(zhí)行的計算機軟件。存儲器550包括隨機存取存儲器(RAM)和只讀存儲器(RAM),并且在處理器540的引導下被使用。
視頻接口545連接到視頻顯示器590,并且提供視頻信號以便在視頻顯示器590上顯示。從鍵盤510和鼠標515提供用來操作計算機520的用戶輸入。存儲設備555可以包括硬盤驅動器或任何其他適合的存儲介質。
計算機520的每個組件連接到內部總線530,以允許計算機520的各組件通過總線530相互通信,其中內部總線530包括數據、地址和控制總線。
計算機系統500可以使用到以因特網580代表的網絡的通信信道585、通過輸入/輸出(I/O)接口565連接到一個或多個其它類似的計算機。
計算機軟件可以被記錄在便攜式存儲介質上,在這種情況下,由計算機系統500從存儲設備555訪問計算機軟件程序??蛇x地,可以由計算機520直接從因特網580訪問計算機軟件。在任一情況下,用戶可以使用鍵盤510和鼠標515與計算機系統500交互,以操作在計算機520上執(zhí)行的程序化計算機軟件。
其它配置或類型的計算機系統同樣可以很好地用來執(zhí)行幫助實現在此描述的技術的計算機軟件。
結束語可以對在此描述的技術和布置進行各種變更和修改,這對于相關領域的技術人員而言將是清楚的。
權利要求
1.一種用于服務資源定位符的請求的方法,包括以下步驟接收所請求的資源定位符,其加入了根據預定格式的控制信息;識別在所接收的資源定位符中加入的控制信息;以及從所識別的控制信息確定是否允許訪問所請求的資源定位符。
2.如權利要求1所述的方法,還包括以下步驟如果允許對所請求資源的訪問,則以所請求的資源響應請求。
3.如權利要求1所述的方法,還包括以下步驟如果不允許對所請求資源的訪問,則以錯誤消息響應請求。
4.如權利要求1所述的方法,還包括以下步驟從資源定位符中去除控制信息;以及將資源定位符轉發(fā)給應用服務器。
5.如權利要求4所述的方法,還包括以下步驟將控制信息加入到包括在所請求的資源中的至少一個資源定位符。
6.如權利要求4所述的方法,還包括以下步驟將控制信息加入到包括在所請求的資源中的至少一個資源定位符。
7.如權利要求1所述的方法,其中控制信息指定以下至少之一(i)資源定位符對于特定次數的訪問的有效性,(ii)資源定位符對于給定時間段的有效性,(iii)資源定位符對于特定數目的事務的有效性,(iv)訪問由資源定位符指定的資源的授權,以及(iv)資源定位符可被訪問的事務狀態(tài)的授權。
8.如權利要求1所述的方法,其中控制信息指定不同類型的用于控制信息的預定格式。
9.如權利要求4所述的方法,還包括以下步驟維護資源定位符的請求被訪問的次數的記錄。
10.如權利要求4所述的方法,還包括以下步驟維護資源定位符可被訪問的事務狀態(tài)的記錄。
11.一種記錄在計算機可讀介質上的計算機程序,包括用于執(zhí)行以下步驟的計算機軟件接收所請求的資源定位符,其加入了根據預定格式的控制信息;識別在所接收的資源定位符中加入的控制信息;以及從所識別的控制信息確定是否允許訪問所請求的資源定位符。
12.如權利要求11所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件如果允許對所請求資源的訪問,則以所請求的資源響應請求。
13.如權利要求11所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件如果不允許對所請求資源的訪問,則以錯誤消息響應請求。
14.如權利要求11所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件從資源定位符中去除控制信息;以及將資源定位符轉發(fā)給應用服務器。
15.如權利要求14所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件將控制信息加入到包括在所請求的資源中的至少一個資源定位符。
16.如權利要求14所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件將控制信息加入到包括在所請求的資源中的至少一個資源定位符。
17.如權利要求11所述的計算機程序,其中控制信息指定以下至少之一(i)資源定位符對于特定次數的訪問的有效性,(ii)資源定位符對于給定時間段的有效性,(iii)資源定位符對于特定數目的事務的有效性,(iv)訪問由資源定位符指定的資源的授權,以及(iv)資源定位符可被訪問的事務狀態(tài)的授權。
18.如權利要求11所述的計算機程序,其中控制信息指定不同類型的用于控制信息的預定格式。
19.如權利要求14所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件維護資源定位符的請求被訪問的次數的記錄。
20.如權利要求14所述的計算機程序,還包括用于執(zhí)行以下步驟的計算機軟件維護資源定位符可被訪問的事務狀態(tài)的記錄。
21.一種計算機系統,包括記錄在計算機可讀介質上的計算機軟件,其用于執(zhí)行以下步驟接收所請求的資源定位符,其加入了根據預定格式的控制信息;識別在所接收的資源定位符中加入的控制信息;以及從所識別的控制信息確定是否允許訪問所請求的資源定位符。
22.如權利要求21所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件如果允許對所請求資源的訪問,則以所請求的資源響應請求。
23.如權利要求21所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件如果不允許對所請求資源的訪問,則以錯誤消息響應請求。
24.如權利要求21所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件從資源定位符中去除控制信息;以及將資源定位符轉發(fā)給應用服務器。
25.如權利要求24所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件將控制信息加入到包括在所請求的資源中的至少一個資源定位符。
26.如權利要求24所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件將控制信息加入到包括在所請求的資源中的至少一個資源定位符。
27.如權利要求21所述的計算機系統,其中控制信息指定以下至少之一(i)資源定位符對于特定次數的訪問的有效性,(ii)資源定位符對于給定時間段的有效性,(iii)資源定位符對于特定數目的事務的有效性,(iv)訪問由資源定位符指定的資源的授權,以及(iv)資源定位符可被訪問的事務狀態(tài)的授權。
28.如權利要求21所述的計算機系統,其中控制信息指定不同類型的用于控制信息的預定格式。
29.如權利要求21所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件維護資源定位符的請求被訪問的次數的記錄。
30.如權利要求24所述的計算機系統,還包括用于執(zhí)行以下步驟的計算機軟件維護資源定位符可被訪問的事務狀態(tài)的記錄。
全文摘要
本發(fā)明公開一種用于服務資源定位符的請求的方法。根據本發(fā)明,資源定位符(例如,URL或類似引用)加入了根據適于特定應用的預定格式結構化的加密控制信息。從資源定位符確定該控制信息,并且根據該控制信息來處理資源定位符。返回對所請求的資源定位符的響應。
文檔編號G06F9/46GK1744504SQ200510097829
公開日2006年3月8日 申請日期2005年8月30日 優(yōu)先權日2004年8月31日
發(fā)明者拉伊吉索爾·巴里克, 馬尼什·P·庫爾赫達爾 申請人:國際商業(yè)機器公司