專利名稱:利用宏支持來(lái)外部化http安全消息處理的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),并且特別涉及用于多計(jì)算機(jī)數(shù) 據(jù)傳送的方法和設(shè)備。
背景技術(shù):
電子商務(wù)網(wǎng)站和Web應(yīng)用代表用戶通過(guò)計(jì)算才幾網(wǎng)絡(luò)執(zhí)行交易。企 業(yè)通常希望通過(guò)各種網(wǎng)絡(luò)(包括互聯(lián)網(wǎng))以用戶友好的方式為授權(quán)用 戶提供對(duì)受保護(hù)資源的安全訪問(wèn)。在基于Web的電子商務(wù)環(huán)境中, 計(jì)算機(jī)系統(tǒng)常常將認(rèn)證服務(wù)實(shí)現(xiàn)為用于訪問(wèn)網(wǎng)站的前門或門崗的形 式。出于安全目的,用戶必須經(jīng)常通過(guò)認(rèn)證過(guò)程,以證明針對(duì)適當(dāng)?shù)?確定級(jí)別的用戶身4分。這些認(rèn)證服務(wù)位于應(yīng)用之前,也即位于用戶和 應(yīng)用之間,以便在用戶獲取對(duì)任何資源的訪問(wèn)之前確認(rèn)用戶是經(jīng)過(guò)認(rèn) 證的??梢詫⑦@些認(rèn)證服務(wù)實(shí)現(xiàn)為Web服務(wù)器插件、反向代理或其 他類似技術(shù)。企業(yè)希望支持多種多樣的客戶端,包括利用專用的輕量 級(jí)瀏覽器來(lái)瀏覽Web的移動(dòng)設(shè)備(例如蜂窩電話、PDA (便攜式數(shù) 字助理)等)、以及操作標(biāo)準(zhǔn)Web瀏覽器的固定設(shè)備。然而,代理組件中的 一些實(shí)現(xiàn)限制禁止在任意給定的安裝處支持 多個(gè)不同的設(shè)備。問(wèn)題集中在當(dāng)需要將有關(guān)安全事件的信息(例如, 通知用戶需要登陸的消息或某種類型的錯(cuò)誤消息)發(fā)送到客戶端時(shí), 從代理服務(wù)器本身提供的靜態(tài)內(nèi)容。例如,用戶可能希望使用PDA 訪問(wèn)企業(yè)內(nèi)聯(lián)網(wǎng)上的內(nèi)容,但是內(nèi)聯(lián)網(wǎng)上的所有內(nèi)容都由代理服務(wù)器 保護(hù)。當(dāng)用戶點(diǎn)擊需要登陸操作的鏈接時(shí),代理服務(wù)器可以將靜態(tài)登 陸HTML (超文本標(biāo)記語(yǔ)言)表單返回給PDA。不幸的是,PDA上 的瀏覽器只能處理已經(jīng)針對(duì)移動(dòng)設(shè)備定制的內(nèi)容,并且PDA可能不 能夠處理整個(gè)HTML表單或其某個(gè)部分。因此,用戶無(wú)法登陸到內(nèi)聯(lián)網(wǎng)。已經(jīng)提出了以下解決方案或措施來(lái)解決對(duì)多種設(shè)備的適當(dāng)內(nèi)容 的問(wèn)題。參考上面提到的登陸問(wèn)題,代理服務(wù)器所提供的登陸表單和其他靜態(tài)表單可以包括"META,,標(biāo)簽,其具有針對(duì)移動(dòng)設(shè)備而編碼 的頁(yè)面的重定向或是針對(duì)可以區(qū)分目標(biāo)設(shè)備上的瀏覽器類型并繼而 生成用于目標(biāo)設(shè)備的適當(dāng)內(nèi)容的Servlet的重定向。不幸的是,包括 大多數(shù)移動(dòng)設(shè)備在內(nèi)的多種設(shè)備不支持"META"重定向標(biāo)簽。另 一種解決方案或措施可以是操作多個(gè)代理服務(wù)器,從而使針對(duì) 所支持的每種類型的客戶端設(shè)備都有一個(gè)代理服務(wù)器;經(jīng)常將這種解 決方案描述為支持針對(duì)不同設(shè)備的"通道"。不幸的是,該解決方案 對(duì)客戶(也即操作網(wǎng)站的企業(yè))提出了不合理的資源和管理要求。此 外,當(dāng)試圖將基礎(chǔ)設(shè)施出售給客戶的商業(yè)伙伴建議這種解決方案時(shí), 該解決方案對(duì)客戶而言似乎是不合理的。第三種解決方案是在代理服務(wù)器之前放置轉(zhuǎn)碼服務(wù)器,其將 HTML繪制(render)為針對(duì)給定設(shè)備的適當(dāng)格式。然而,客戶將其 視為安全性暴露,因?yàn)檗D(zhuǎn)碼器必須部署在客戶的計(jì)算DMZ (隔離區(qū)) 中,DMZ是數(shù)據(jù)處理器系統(tǒng)的一部分,其專用于解決安全問(wèn)題,并且由于引起安全漏洞的可能性而通常沒(méi)有與內(nèi)容相關(guān)的功能性。因 此,轉(zhuǎn)碼解決方案對(duì)于多數(shù)客戶而言是不可接受的。又一種解決方案是直接將不同的內(nèi)容頁(yè)面發(fā)送到不同的客戶端 設(shè)備。幾乎所有的HTTP客戶端都在每個(gè)請(qǐng)求中發(fā)送標(biāo)識(shí)客戶端類型 和該客戶端所理解的數(shù)據(jù)類型的少量信息。例如,支持WAP(無(wú)線 應(yīng)用協(xié)議)的移動(dòng)電話將發(fā)送包含"application/vnd.wap.wml"的"接 受(Accept),,報(bào)頭,以指明其知道如何繪制WML (無(wú)線標(biāo)記語(yǔ)言) 文檔,而i-modeTM電話將發(fā)送"text/html"的"接受"報(bào)頭,以指明 其優(yōu)選Compact-HTML文檔。可以對(duì)代理服務(wù)器進(jìn)行配置,使得基于 各種HTTP報(bào)頭的內(nèi)容,不同客戶端類型將直接接收不同類型的文檔。 然而,該解決方案是有問(wèn)題的,因?yàn)榭焖贁U(kuò)展多種無(wú)線設(shè)備和協(xié)議使 得該解決方案在管理上是不實(shí)用的。需要持續(xù)的更新,以確保特定供應(yīng)商的設(shè)備得到支持。 發(fā)明內(nèi)容根據(jù)第一方面,提供一種用于在數(shù)據(jù)處理系統(tǒng)中外部化消息處理 的計(jì)算機(jī)實(shí)現(xiàn)的方法,該方法包括在第一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資源的請(qǐng)求;響應(yīng)于在第一服務(wù)器處確定處理該請(qǐng)求要求將消息發(fā)送到客戶端,生成包含操作碼的重定向消息,該操作碼對(duì)應(yīng)于第二服務(wù)器處的針對(duì)將要發(fā)送到客戶端的消息的消息處理功能性;評(píng)估 可配置的宏,以確定評(píng)估的宏;將評(píng)估的宏插入重定向消息;以及將 重定向消息從第一服務(wù)器經(jīng)由客戶端發(fā)送到第二服務(wù)器。優(yōu)選地提供一種以動(dòng)態(tài)方式提供用于有關(guān)安全事件的消息的方 法和裝置,使得接收消息的設(shè)備類型能夠處理消息的內(nèi)容。根據(jù)第二方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序產(chǎn) 品,用于在數(shù)據(jù)處理系統(tǒng)中外部化消息處理,該計(jì)算機(jī)程序產(chǎn)品包括 用于在第 一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資源的請(qǐng)求的裝置;用于 響應(yīng)于在第一服務(wù)器處確定處理該請(qǐng)求要求將消息發(fā)送到客戶端而 生成包含操作碼的重定向消息的裝置,其中該操作碼對(duì)應(yīng)于第二服務(wù) 器處的針對(duì)將要發(fā)送到客戶端的消息的消息處理功能性;用于評(píng)估可 配置的宏以確定評(píng)估的宏的裝置;用于將評(píng)估的宏插入重定向消息的 裝置;以及用于將重定向消息從第一服務(wù)器經(jīng)由客戶端發(fā)送到第二服 務(wù)器的裝置。根據(jù)第三方面,提供一種用于在數(shù)據(jù)處理系統(tǒng)中外部化消息處理 的設(shè)備,該設(shè)備包括用于在第一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資 源的請(qǐng)求的裝置;用于響應(yīng)于在第一服務(wù)器處確定處理該請(qǐng)求要求將 消息發(fā)送到客戶端而生成包含操作碼的重定向消息的裝置,其中該操 作碼對(duì)應(yīng)于第二服務(wù)器處的針對(duì)將要發(fā)送到客戶端的消息的消息處 理功能性;用于評(píng)估可配置的宏以確定評(píng)估的宏的裝置;用于將評(píng)估 的宏插入重定向消息的裝置;以及用于將重定向消息從第一服務(wù)器經(jīng) 由客戶端發(fā)送到第二服務(wù)器的裝置。根據(jù)優(yōu)選實(shí)施方式,提供一種用于在數(shù)據(jù)處理系統(tǒng)中外部化消息 處理的方法。在第一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資源的請(qǐng)求。響 應(yīng)于在第一服務(wù)器處確定處理該請(qǐng)求要求將消息發(fā)送到客戶端,生成 包含操作碼的重定向消息,該操作碼對(duì)應(yīng)于第二服務(wù)器處的針對(duì)將要 發(fā)送到客戶端的消息的消息處理功能性。評(píng)估可配置的宏以確定評(píng)估 的宏,并將評(píng)估的宏插入重定向消息。繼而將重定向消息從第一服務(wù) 器經(jīng)由客戶端發(fā)送到第二服務(wù)器。第二服務(wù)器從重定向消息中提取操 作碼,并調(diào)用與所提取的操作碼相對(duì)應(yīng)的消息處理功能性。第二服務(wù) 器從重定向消息中提取評(píng)估的宏,并在第二服務(wù)器處采用評(píng)估的宏用 作消息處理功能性的輸入?yún)?shù)。
現(xiàn)在將參考附圖僅以示例的方式描述本發(fā)明的優(yōu)選實(shí)施方式圖1A描述了典型的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò),每個(gè)數(shù)據(jù)處理系統(tǒng)都 可以實(shí)現(xiàn)本發(fā)明;圖1B描述了在可以實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)中可以使用的典 型計(jì)算機(jī)架構(gòu);圖2描述了示出典型的企業(yè)數(shù)據(jù)處理系統(tǒng)的框圖;圖3描述了示出可以在客戶端試圖訪問(wèn)服務(wù)器處的受保護(hù)資源時(shí)使用的典型認(rèn)證處理的數(shù)據(jù)流圖;圖4描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出用于執(zhí)行外部化消 息處理的數(shù)據(jù)處理系統(tǒng)的部分的框圖;圖5描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出從代理服務(wù)器到消 息處理服務(wù)器的重定向消息的內(nèi)容的框圖;圖6描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出從代理服務(wù)器到消 息處理服務(wù)器的消息處理請(qǐng)求的內(nèi)容的框圖;圖7描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出代理服務(wù)器用以生 成發(fā)送到消息處理服務(wù)器的重定向消息的信息的框圖;圖8描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出代理服務(wù)器處的處理的流程圖,所述處理用于響應(yīng)于針對(duì)資源的客戶端請(qǐng)求(該客戶端 請(qǐng)求引起檢測(cè)的事件,其要求內(nèi)容消息被發(fā)送到客戶端),向消息處理服務(wù)器發(fā)送請(qǐng)求,以生成將要發(fā)送到客戶端的上下文適當(dāng)?shù)膬?nèi)容消 白 圖9描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出用于創(chuàng)建包含消息 處理請(qǐng)求的重定向消息的處理的流程圖;以及圖10描述了根據(jù)本發(fā)明的優(yōu)選實(shí)施方式的示出使用重定向消息 的"位置(Location)"報(bào)頭和"位置"報(bào)頭的URI內(nèi)的查詢變?cè)獊?lái) 創(chuàng)建HTTP重定向消息的處理的流程圖。
具體實(shí)施方式
通常,包含或涉及本發(fā)明的設(shè)備包括各種各樣的數(shù)據(jù)處理技術(shù)。 因此,作為背景,在更為詳細(xì)地描述本發(fā)明之前,先對(duì)分布式數(shù)據(jù)處 理系統(tǒng)中硬件和軟件組件的典型組織進(jìn)行描述?,F(xiàn)在參考附圖,圖1A描述了典型的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò),每個(gè)數(shù) 據(jù)處理系統(tǒng)都可以實(shí)現(xiàn)本發(fā)明的部分。分布式數(shù)據(jù)處理系統(tǒng)100包括 網(wǎng)絡(luò)101,網(wǎng)絡(luò)101是可以用來(lái)在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在 一起的各種設(shè)備和計(jì)算機(jī)之間提供通信鏈路的媒介。網(wǎng)絡(luò)101可以包 括諸如有線和光纖電纜的持久連接、或通過(guò)電話或者無(wú)線通信的臨時(shí) 連接。在所描述的例子中,服務(wù)器102和服務(wù)器103以及存儲(chǔ)單元104 與網(wǎng)絡(luò)101連接。此外,客戶端105-107也與網(wǎng)絡(luò)101連接??蛻舳?105-107以及服務(wù)器102-103可以由例如主機(jī)、個(gè)人計(jì)算機(jī)、個(gè)人數(shù) 字助理(PDA)等的各種計(jì)算設(shè)備代表。分布式數(shù)據(jù)處理系統(tǒng)100還 包括未示出的附加服務(wù)器、客戶端、路由器、其他設(shè)備以及對(duì)等架構(gòu)。在所描述的例子中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括帶有網(wǎng)絡(luò) 101的互聯(lián)網(wǎng),表示使用各種協(xié)議相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的世界范圍 的集合,其中該協(xié)議例如輕量級(jí)目錄訪問(wèn)協(xié)議(LDAP)、傳輸控制 協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、文件傳輸協(xié)議(FTP)、超文本傳輸協(xié) 議(HTTP)、無(wú)線應(yīng)用協(xié)議(WAP)等。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100還可以包括多種不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN) 或廣域網(wǎng)(WAN)。例如,服務(wù)器102直接支持包含無(wú)線通信鏈路 的客戶端109與網(wǎng)絡(luò)110。支持網(wǎng)絡(luò)的電話111通過(guò)無(wú)線鏈路112連 接至網(wǎng)絡(luò)110,并且PDA 113通過(guò)無(wú)線鏈路114連接至網(wǎng)絡(luò)110。電 話111和PDA 113還可以使用例如藍(lán)牙TM無(wú)線技術(shù)的適當(dāng)技術(shù)通過(guò) 無(wú)線鏈路115在其之間直接傳送數(shù)據(jù),以創(chuàng)建所謂的個(gè)人區(qū)域網(wǎng)絡(luò) (PAN)或個(gè)人ad-hoc網(wǎng)絡(luò)。以類似方式,PDA 113可以通過(guò)無(wú)線通 信鏈路116向PDA 107傳送數(shù)據(jù)。本發(fā)明可以在多種硬件平臺(tái)上實(shí)現(xiàn);圖1A意在作為異構(gòu)計(jì)算環(huán) 境的示例,而不是對(duì)本發(fā)明的架構(gòu)性限制?,F(xiàn)在參考圖IB,框圖描述了例如圖1A所示的其中可以實(shí)現(xiàn)本發(fā) 明的數(shù)據(jù)處理系統(tǒng)的典型計(jì)算機(jī)架構(gòu)。數(shù)據(jù)處理系統(tǒng)120包括與內(nèi)部 系統(tǒng)總線123連接的一個(gè)或多個(gè)中央處理單元(CPU) 122,內(nèi)部系 統(tǒng)總線123將隨機(jī)訪問(wèn)存儲(chǔ)器(RAM) 124、只讀存儲(chǔ)器136和輸入/ 輸出適配器128互連,輸出/輸出適配器128支持各種I/0設(shè)備,例如 打印機(jī)I30、盤單元132或未示出的其他設(shè)備,如音頻輸出系統(tǒng)等。 系統(tǒng)總線123還連接通信適配器134,通信適配器134提供對(duì)通信鏈 路136的訪問(wèn)。用戶接口適配器148連接各種用戶設(shè)備,例如鍵盤140 和鼠標(biāo)142或未示出的其他設(shè)備,例如觸摸屏、觸筆、麥克風(fēng)等。顯 示適配器144將系統(tǒng)總線123連接至顯示設(shè)備146。本領(lǐng)域的普通技術(shù)人員將理解,圖1B中的硬件可以依賴于系統(tǒng) 實(shí)現(xiàn)而變化。例如,系統(tǒng)可以具有一個(gè)或多個(gè)處理器,例如基于Intel Pentium⑧的處理器和數(shù)字信號(hào)處理器(DSP ),以及一種或多種類型 的易失性和非易失性存儲(chǔ)器。除了圖1B中描述的硬件或替代圖1B 中描述的硬件,可以使用其他外圍設(shè)備。所描述的例子不意味著對(duì)本 發(fā)明的架構(gòu)性限制。(Intel和Pentium是Intel公司或其子公司在美 國(guó)和其他國(guó)家的商標(biāo)或注冊(cè)商標(biāo))。除了能夠在多種硬件平臺(tái)上實(shí)現(xiàn)之外,本發(fā)明可以在多種軟件環(huán) 境中實(shí)現(xiàn)。可以使用典型的操作系統(tǒng)來(lái)控制每個(gè)數(shù)據(jù)處理系統(tǒng)中的程序執(zhí)行。例如, 一個(gè)設(shè)備可以運(yùn)行Unix 操作系統(tǒng),而另一個(gè)設(shè)備包 含簡(jiǎn)單的JavaTM運(yùn)行時(shí)環(huán)境。代表性的計(jì)算機(jī)平臺(tái)可以包括瀏覽器, 瀏覽器是用于訪問(wèn)各種格式的超文本文檔的公知軟件應(yīng)用,其中文檔 格式例如圖形文件、文字處理文件、擴(kuò)展標(biāo)記語(yǔ)言(XML)、超文本 標(biāo)記語(yǔ)言(HTML)、手持設(shè)備標(biāo)記語(yǔ)言(HDML)、無(wú)線標(biāo)記語(yǔ)言 (WML)、以及各種其他格式和文件類型(Java和所有基于Java的 商標(biāo)和徽標(biāo)是Sum Microsystems />司在美國(guó)、其他國(guó)家或兩者的商 標(biāo);UNIX是Open Group在美國(guó)和其他國(guó)家的注冊(cè)商標(biāo))。如以上關(guān)于圖IA和圖IB所描述的,本發(fā)明可以在多種石更件和軟 件平臺(tái)上實(shí)現(xiàn)。然而,更特別地,本發(fā)明涉及改進(jìn)的數(shù)據(jù)處理環(huán)境。 在更為詳細(xì)地描述本發(fā)明之前,先描述典型數(shù)據(jù)處理環(huán)境的一些方 面。在此對(duì)附圖的描述可以涉及客戶端設(shè)備或客戶端設(shè)備的用戶的 某些動(dòng)作。本領(lǐng)域的普通技術(shù)人員將會(huì)理解,去往/來(lái)自客戶端的響應(yīng) 和/或請(qǐng)求有時(shí)是由用戶發(fā)起的,有時(shí)是經(jīng)常代表客戶端用戶的客戶端 自動(dòng)發(fā)起的。因此,在對(duì)附圖的描述中提到客戶端或客戶端用戶時(shí), 應(yīng)當(dāng)理解,術(shù)語(yǔ)"客戶端,,和"用戶"可以交換使用,而不會(huì)明顯地 影響所描述處理的含義。此后可以將某些計(jì)算任務(wù)描述為由功能性單元執(zhí)行。功能性單元 可以由例行程序、子例行程序、進(jìn)程、子進(jìn)程、過(guò)程、功能、方法、 面向?qū)ο蟮膶?duì)象、軟件模塊、applet、插件、ActiveXTM控件、腳本或 用于執(zhí)行計(jì)算任務(wù)的固件或軟件的一些其他組件。在此對(duì)附圖的描述可能涉及各種組件之間的信息交換,并且將信 息交換描述為通過(guò)消息的交換實(shí)現(xiàn),例如請(qǐng)求消息隨后是響應(yīng)消息。 應(yīng)當(dāng)注意,在適當(dāng)時(shí),計(jì)算組件之間的信息交換(可以包括同步和異 步的請(qǐng)求/響應(yīng)交換)可以通過(guò)諸如消息、方法調(diào)用、遠(yuǎn)程過(guò)程調(diào)用、 事件信令或其他機(jī)制的多種數(shù)據(jù)交換機(jī)制等同地實(shí)現(xiàn)。現(xiàn)在參考圖2,框圖描述了典型的企業(yè)數(shù)據(jù)處理系統(tǒng)。盡管圖1A 描述了具有客戶端和服務(wù)器的典型數(shù)據(jù)處理系統(tǒng),相反,圖2示出了與一些服務(wù)器側(cè)實(shí)體相關(guān)的網(wǎng)絡(luò)內(nèi)的客戶端,其中服務(wù)器側(cè)實(shí)體可以 用來(lái)支持客戶端訪問(wèn)資源的請(qǐng)求。如典型的計(jì)算環(huán)境中那樣,企業(yè)域200主控用戶202可以例如使用客戶端206上的瀏覽器應(yīng)用204通過(guò) 網(wǎng)絡(luò)208來(lái)訪問(wèn)的資源;如圖1A中所示,計(jì)算機(jī)網(wǎng)絡(luò)可以是互聯(lián)網(wǎng)、 內(nèi)聯(lián)網(wǎng)或其他網(wǎng)絡(luò)。企業(yè)域200支持多個(gè)服務(wù)器。應(yīng)用服務(wù)器210通過(guò)基于Web的應(yīng) 用或者包括傳統(tǒng)(legacy)應(yīng)用在內(nèi)的其他類型的后端應(yīng)用來(lái)支持受 控和/或非受控的資源。反向代理服務(wù)器214,或者更簡(jiǎn)單地稱為代理 服務(wù)器214,執(zhí)行企業(yè)域200的多種功能。例如,代理服務(wù)器214可 以緩存網(wǎng)頁(yè),以便對(duì)來(lái)自應(yīng)用服務(wù)器的內(nèi)容進(jìn)行鏡像。輸入數(shù)據(jù)流過(guò) 濾器216和輸出數(shù)據(jù)流過(guò)濾器218可以分別處理進(jìn)入和出去的數(shù)據(jù) 流,以便根據(jù)各種策略中指定的目標(biāo)和條件或是根據(jù)已部署軟件模塊 的配置對(duì)輸入的請(qǐng)求和輸出的響應(yīng)執(zhí)行各種處理任務(wù)。會(huì)話管理單元220管理會(huì)話標(biāo)識(shí)符、緩存的證書或代理服務(wù)器214 所識(shí)別的關(guān)于會(huì)話的其他信息?;赪eb的應(yīng)用通常使用各種手段 來(lái)提示用戶輸入認(rèn)證信息,正如HTML表單內(nèi)的用戶名/密碼組合。 在圖2所示的例子中,在客戶端206可以訪問(wèn)資源之前可以要求對(duì)用 戶202進(jìn)行認(rèn)證,在認(rèn)證之后為客戶端206建立會(huì)話。在可替換實(shí)施 方式中,在向用戶提供對(duì)域200上資源的訪問(wèn)之前,不執(zhí)行認(rèn)證和授 權(quán)操作;可以在沒(méi)有附隨認(rèn)證操作的情況下創(chuàng)建用戶會(huì)話。上面提到的企業(yè)域200中的實(shí)體代表多種計(jì)算環(huán)境中的典型實(shí) 體。然而,很多企業(yè)域具有用于控制對(duì)受保護(hù)計(jì)算資源的訪問(wèn)的安全 特征。計(jì)算資源可以是應(yīng)用、對(duì)象、文檔、網(wǎng)頁(yè)、文件、可執(zhí)行代碼 模塊或一些其他的計(jì)算資源或通信類資源。受保護(hù)或受控的資源是僅 在進(jìn)行請(qǐng)求的客戶端或進(jìn)行請(qǐng)求的用戶被認(rèn)證和/或授權(quán)的情況下可 訪問(wèn)或可取回的資源;在一些情況下,認(rèn)證用戶默認(rèn)是授權(quán)用戶。認(rèn) 證服務(wù)器222可以支持各種認(rèn)證機(jī)制,例如用戶名/密碼、X.509證書 或安全令牌;多個(gè)認(rèn)證服務(wù)器可以專用于專用的認(rèn)證方法。授權(quán)服務(wù) 器224可以使用授權(quán)數(shù)據(jù)庫(kù)226,授權(quán)數(shù)據(jù)庫(kù)226包含諸如以下的信息訪問(wèn)控制列表228、授權(quán)策略230、關(guān)于用戶群組或角色的信息 232以及關(guān)于特定管理群組內(nèi)的管理用戶的信息234。使用該信息, 授權(quán)服務(wù)器224向代理服務(wù)器214提供指示,指明是否應(yīng)當(dāng)允許特定 請(qǐng)求,例如,是否應(yīng)當(dāng)響應(yīng)于來(lái)自客戶端206的請(qǐng)求而準(zhǔn)予對(duì)受控資 源的訪問(wèn)。應(yīng)當(dāng)指出,可以與多種認(rèn)證和授權(quán)應(yīng)用相關(guān)聯(lián)地實(shí)現(xiàn)本發(fā) 明,并且不應(yīng)當(dāng)將在此描述的本發(fā)明的實(shí)施方式解釋為關(guān)于認(rèn)證和4受 權(quán)服務(wù)配置而限制本發(fā)明的范圍?,F(xiàn)在參考圖3,數(shù)據(jù)流圖示出了可以在客戶端試圖訪問(wèn)服務(wù)器處 的受保護(hù)資源時(shí)使用的典型認(rèn)證處理。如圖所示,客戶端工作站300 的用戶希望通過(guò)在客戶端工作站上執(zhí)行的用戶的Web瀏覽器在計(jì)算 機(jī)網(wǎng)絡(luò)上訪問(wèn)服務(wù)器302處的受保護(hù)資源。受保護(hù)資源可以由統(tǒng)一資 源定位符(URL)標(biāo)識(shí),或者更一般地,由統(tǒng)一資源標(biāo)識(shí)符(URI) 標(biāo)識(shí),僅可由iU正的和4受權(quán)的用戶進(jìn)4亍訪問(wèn)。當(dāng)用戶請(qǐng)求服務(wù)器側(cè)的受保護(hù)資源(例如域"ibm.com"內(nèi)的網(wǎng) 頁(yè))時(shí),發(fā)起該處理(步驟304)。術(shù)語(yǔ)"服務(wù)器側(cè)"和"客戶端側(cè)" 分別是指聯(lián)網(wǎng)環(huán)境中的服務(wù)器或客戶端處的動(dòng)作或?qū)嶓w。Web瀏覽器 (或者相關(guān)聯(lián)的應(yīng)用或applet)生成HTTP請(qǐng)求,該請(qǐng)求被發(fā)送到主 控域"ibm.com"的Web服務(wù)器(步驟306 )。應(yīng)該將術(shù)語(yǔ)"請(qǐng)求" 和"響應(yīng),,理解為包括適于特定操作中所涉及的信息傳送的數(shù)據(jù)格式, 其中信息例如消息、通信協(xié)議信息或其他相關(guān)聯(lián)的信息。服務(wù)器確定其沒(méi)有針對(duì)該客戶端的活動(dòng)會(huì)話(步驟308),因此 服務(wù)器通過(guò)向客戶端發(fā)送一些類型的認(rèn)證質(zhì)詢(challenge)來(lái)要求用 戶執(zhí)行認(rèn)證處理(步驟310)。認(rèn)證質(zhì)詢可以是各種格式的,例如HTML 格式。用戶繼而提供所請(qǐng)求或要求的信息(步驟312),例如用戶標(biāo) 識(shí)符和相關(guān)聯(lián)的密碼,或者客戶端可以自動(dòng)返回某些信息,例如數(shù)字 證書。將認(rèn)證響應(yīng)信息發(fā)送到服務(wù)器(步驟314),此時(shí)服務(wù)器例如通 過(guò)取回先前提交的注冊(cè)信息并將呈送的認(rèn)證信息與用戶的存儲(chǔ)信息 進(jìn)行匹配來(lái)對(duì)用戶或客戶端進(jìn)行認(rèn)證(步驟316)?!﹊設(shè)認(rèn)證是成功的,則為所認(rèn)證的用戶或客戶端建立活動(dòng)會(huì)話。服務(wù)器繼而取回所請(qǐng)求的網(wǎng)頁(yè)并向客戶端發(fā)送HTTP響應(yīng)消息 (步驟318)。此時(shí),用戶可以通過(guò)點(diǎn)擊超文本鏈接在瀏覽器中請(qǐng)求 "ibm.com"內(nèi)的其他頁(yè)面(步驟320),并且瀏覽器向服務(wù)器發(fā)送另 一個(gè)HTTP請(qǐng)求消息(步驟322)。此時(shí),服務(wù)器根據(jù)由服務(wù)器維護(hù) 的會(huì)話狀態(tài)信息識(shí)別出該用戶具有活動(dòng)會(huì)話(步驟324)。例如,由 于用戶的客戶端在HTTP請(qǐng)求消息中返回了會(huì)話ID,服務(wù)器識(shí)別出針 對(duì)進(jìn)行請(qǐng)求的用戶的適當(dāng)會(huì)話狀態(tài)信息。根據(jù)所緩存的用戶會(huì)話信 息,服務(wù)器例如通過(guò)用戶證書副本的可用性確定該用戶已經(jīng)過(guò)認(rèn)證; 服務(wù)器繼而可以確定無(wú)需在實(shí)現(xiàn)用戶的請(qǐng)求之前執(zhí)行某些操作,例如 認(rèn)證操作。服務(wù)器在另一 HTTP響應(yīng)消息中向客戶端發(fā)回所請(qǐng)求的網(wǎng) 頁(yè)(步驟326),由此實(shí)現(xiàn)用戶對(duì)受保護(hù)資源的最初請(qǐng)求。為了背景信息的目的,圖2描述了典型的數(shù)據(jù)處理系統(tǒng),并且圖 3描述了可以在客戶端試圖訪問(wèn)服務(wù)器處的受保護(hù)資源時(shí)使用的典型 的認(rèn)證處理;盡管可以在支持本發(fā)明的數(shù)據(jù)處理系統(tǒng)中采用類似的組 件和處理,但是在其余附圖中示出了本發(fā)明的優(yōu)選實(shí)施方式,并且將 關(guān)于這些附圖對(duì)其進(jìn)行討論。特別地,根據(jù)優(yōu)選實(shí)施方式,本發(fā)明涉及一種方法、設(shè)備、計(jì)算 機(jī)程序產(chǎn)品或系統(tǒng),其以動(dòng)態(tài)方式提供針對(duì)有關(guān)安全的或其他事件的 適當(dāng)消息或其他上下文適當(dāng)內(nèi)容,使得接收該內(nèi)容的設(shè)備類型可以處 理該內(nèi)容。更特別地,根據(jù)本發(fā)明的優(yōu)選實(shí)施方式,提供了一種改進(jìn) 的基礎(chǔ)設(shè)施,其將從代理服務(wù)器到消息處理服務(wù)器的消息或內(nèi)容處理 進(jìn)行外部化,下面將更為詳細(xì)地進(jìn)行闡釋?,F(xiàn)在參考圖4,框圖描述了根據(jù)本發(fā)明實(shí)施方式的用于執(zhí)行外部 化消息處理的數(shù)據(jù)處理系統(tǒng)的部分。圖4中所示的數(shù)據(jù)處理系統(tǒng)類似 于圖2中所示的數(shù)據(jù)處理系統(tǒng)。例如,在兩個(gè)附圖中客戶端402類 似于客戶端206;反向代理服務(wù)器404類似于代理服務(wù)器214的增強(qiáng) 版本;并且受保護(hù)資源406可以表示應(yīng)用服務(wù)器210和其他類型的受 保護(hù)資源。反向代理服務(wù)器404優(yōu)選地駐留在計(jì)算DMZ (隔離區(qū))內(nèi),使 得傳輸?shù)椒聪虼矸?wù)器404或來(lái)自反向代理服務(wù)器404的數(shù)據(jù)必須 通過(guò)防火墻408和410。反向代理服務(wù)器404負(fù)責(zé)與用戶會(huì)話有關(guān)的 會(huì)話管理,該用戶會(huì)話是在包括受保護(hù)資源406的安全域中創(chuàng)建的。反向代理服務(wù)器404和受保護(hù)資源406可以駐留在受信網(wǎng)絡(luò)中, 其可以表示企業(yè)域(例如,類似于圖2中所示的企業(yè)域200)內(nèi)的計(jì) 算資源。圖4示出了在客戶端/用戶與支持客戶端/用戶所訪問(wèn)的受保護(hù)資 源的組件之間的一些數(shù)據(jù)流。此外,圖4示出了用于討論本發(fā)明的實(shí) 現(xiàn)的組件,其中可以將動(dòng)態(tài)消息處理從代理服務(wù)器外部化到其他服務(wù)器。在很多操作情境或事務(wù)中,客戶端402的用戶可能已經(jīng)通過(guò)代理 服務(wù)器404完成了認(rèn)證處理,使得代理服務(wù)器404具有該用戶的證書; 例如當(dāng)將用戶的所接收請(qǐng)求轉(zhuǎn)發(fā)或發(fā)送到受保護(hù)資源406時(shí),代理服 務(wù)器404使用證書向用戶提供對(duì)一些受保護(hù)資源406的訪問(wèn)。在很多 情況下,當(dāng)代理服務(wù)器404接收到訪問(wèn)受保護(hù)資源的請(qǐng)求并且確定進(jìn) 行請(qǐng)求的用戶的證書是充分的,則代理服務(wù)器404處理用戶的請(qǐng)求, 而不進(jìn)行任何錯(cuò)誤處理。然而,在圖4所示的例子中,當(dāng)代理服務(wù)器404接收到資源請(qǐng)求 412時(shí),不將資源請(qǐng)求412例如作為假想的轉(zhuǎn)發(fā)請(qǐng)求414而轉(zhuǎn)發(fā)給受 保護(hù)資源406。在這種情況下,代理服務(wù)器4(M認(rèn)識(shí)到資源請(qǐng)求412 是由于一些原因而無(wú)法實(shí)現(xiàn)的或執(zhí)行的請(qǐng)求,特別是由于檢測(cè)到一些 安全性相關(guān)的事件、引起錯(cuò)誤的事件或一些其他類型的有問(wèn)題的事件 而無(wú)法實(shí)現(xiàn)的或執(zhí)行的請(qǐng)求。例如,代理服務(wù)器404可以認(rèn)識(shí)到代理 服務(wù)器不具有訪問(wèn)受保護(hù)資源所需的客戶端/用戶證書,由此確定要求 用戶例如通過(guò)帶有用戶名和密碼的登陸表單的成功提交來(lái)執(zhí)行登陸 操作或類似的認(rèn)證才喿作。與試圖將上下文適當(dāng)?shù)膬?nèi)容(例如,靜態(tài)HTML表單)返回給客 戶端不同,代理服務(wù)器404替代地向客戶端402發(fā)送重定向消息416,客戶端402將重定向消息轉(zhuǎn)發(fā)給消息處理服務(wù)器418;該重定向消息 包含這樣的信息,其允許消息處理服務(wù)器418響應(yīng)于來(lái)自客戶端402 的原始請(qǐng)求來(lái)承擔(dān)將上下文適當(dāng)?shù)膬?nèi)容發(fā)送到客戶端402的責(zé)任。根 據(jù)代理服務(wù)器404提供給消息處理服務(wù)器418的重定向消息416中特 別包含的信息,消息處理服務(wù)器418動(dòng)態(tài)地生成上下文適當(dāng)?shù)膬?nèi)容 420并將其發(fā)送到客戶端402,下文將對(duì)此進(jìn)行更詳細(xì)的討論。現(xiàn)在參考圖5,框圖描述了根據(jù)本發(fā)明的實(shí)施方式從代理服務(wù)器 到消息處理服務(wù)器的重定向消息的內(nèi)容。消息502表示從代理服務(wù)器 經(jīng)由客戶端設(shè)備到消息處理服務(wù)器的重定向消息。盡管可以通過(guò)多種 實(shí)現(xiàn)專用的方式來(lái)格式化消息502,但是優(yōu)選地將消息502格式化為 HTTP "302" Redirect,其可被包括無(wú)線或移動(dòng)設(shè)備在內(nèi)的大多數(shù)支 持HTTP的設(shè)備處理而沒(méi)有錯(cuò)誤。重定向消息502包括位置報(bào)頭504, 其包含重定向消息502將其作為目的地的實(shí)體(在這種情況下是消息 處理服務(wù)器)的URI。在優(yōu)選實(shí)施方式中,位置報(bào)頭504包括基礎(chǔ) URL 506和消息處理請(qǐng)求508,其中,基礎(chǔ)URL 506表示消息處理服 務(wù)器的URL,消息處理請(qǐng)求508表示從代理服務(wù)器發(fā)送到消息處理服 務(wù)器以便響應(yīng)于客戶端請(qǐng)求來(lái)執(zhí)行消息生成任務(wù)的信息?,F(xiàn)在參考圖6,框圖示出了根據(jù)本發(fā)明的實(shí)施方式從代理服務(wù)器 到消息處理服務(wù)器的消息處理請(qǐng)求的內(nèi)容。消息處理請(qǐng)求602類似于 圖5中所示的消息處理請(qǐng)求508。消息處理請(qǐng)求602包括操作碼也即 OP碼604,其指明代理服務(wù)器請(qǐng)求消息處理服務(wù)器執(zhí)行的操作或消息 生成功能。宏調(diào)用信息606表示根據(jù)可在代理服務(wù)器處配置的宏而由 代理服務(wù)器提供給消息處理服務(wù)器的零個(gè)或多個(gè)數(shù)據(jù)項(xiàng)。在生成消息 的同時(shí),消息處理服務(wù)器可以將評(píng)估的宏用于消息生成功能中或通過(guò) —些其他方式來(lái)使用評(píng)估的宏?,F(xiàn)在參考圖7,該框圖描述了根據(jù)本發(fā)明實(shí)施方式的由代理服務(wù) 器用來(lái)生成發(fā)送到消息處理服務(wù)器的重定向消息的信息。圖7中所示 的一些信息項(xiàng)簡(jiǎn)單地重復(fù)了在其他附圖中示出的元素。例如,重定向 消息702類似于圖5中的重定向消息502。 OP碼704類似于圖6中的OP碼604,其包括消息處理請(qǐng)求508的部分。宏調(diào)用URI 706類似于 圖6中的宏調(diào)用信息606,其是消息處理請(qǐng)求508的部分。代理服務(wù)器700針對(duì)用來(lái)構(gòu)建重定向消息702的數(shù)據(jù)項(xiàng)而訪問(wèn)不 同的數(shù)據(jù)存儲(chǔ)庫(kù)或信息源。代理服務(wù)器700可以訪問(wèn)的數(shù)據(jù)存儲(chǔ)庫(kù)之 一是配置文件710,其包含用于可配置變量的值,所述可配置變量指 引代理服務(wù)器700的處理的多種方面,包括優(yōu)選實(shí)施方式的功能性。 配置文件710包含消息處理URL 712,其可以作為名稱-值 (name-value)對(duì)存儲(chǔ)在配置文件中。當(dāng)生成重定向消息702時(shí),代 理服務(wù)器700將消息處理服務(wù)器URL 712復(fù)制為消息處理URL 708。例如,配置文件可以包含以下字符串"local畫response畫redirect-uri = /ibmusa/jct/handler"字符串"local-response-redirect-uri"代表表示用于消息處理服務(wù) 器的重定向URI的變量名稱。字符串"/ibmusa/jct/handler"表示該變 量的值。因此,字符串"/ibmusa/jct/handler,,是重定向消息702中的 MHURL 708的值,并且字符串"/ibmusa/jct/handler"構(gòu)成了重定向 消息702中的位置URI的基礎(chǔ)部分。代理服務(wù)器700可以通過(guò)多種方式確定OP碼704,這可以依賴 于本發(fā)明的實(shí)現(xiàn)。例如,可以根據(jù)與安全性有關(guān)的事件通知或根據(jù)所 檢測(cè)到的錯(cuò)誤條件來(lái)選擇OP碼704。可選地,OP碼704的選擇可以 基于客戶端請(qǐng)求消息714中的信息,也即來(lái)自試圖訪問(wèn)受保護(hù)資源的 客戶端的原始請(qǐng)求消息,特別是關(guān)于客戶端請(qǐng)求的URI716的原始請(qǐng) 求消息??梢酝ㄟ^(guò)配置文件710來(lái)配置代理服務(wù)器700確定OP碼704 的方式(圖中未示出);可選地,OP碼704可以嵌入代理服務(wù)器700 的源代碼邏輯,或者代理服務(wù)器700通過(guò)一些其他的方式來(lái)接收或取 回該值。例如,如果客戶端設(shè)備試圖訪問(wèn)登陸資源,例如登陸網(wǎng)頁(yè),則可 以基于特定的URL 716或基于其在相關(guān)資源群組中的分類來(lái)選擇OP 碼704。因此,操作碼的值可以等于"LOGON",并且可以通過(guò)作為 重定向消息702中的位置URI的 一 部分出現(xiàn)的字符串"OP_CODE=logon,,來(lái)表示OP碼704。更特別地,OP碼704可以 作為查詢變?cè)胖迷谥囟ㄏ蛳?02中的位置URI中,如以下進(jìn)一步 更詳細(xì)地描述的那樣。代理服務(wù)器700用于基于配置文件710中的宏718的存在而將宏 調(diào)用URI 706嵌入重定向消息702中。在此示例中,宏718指明原始 請(qǐng)求的URI將被提供到消息處理服務(wù)器。因此,代理服務(wù)器700將客 戶端請(qǐng)求的URI 716復(fù)制到重定向消息702中作為宏調(diào)用URI 706。例如,配置文件可以包括字符串"macro-URT ,其調(diào)用代理服 務(wù)器700將原始請(qǐng)求的URI包括到消息處理請(qǐng)求中。如果字符串 "https:〃ibmUSA/jct/protected/"代表原始請(qǐng)求URI,則可以將字符串 "URKttps:〃ibmUSA/jct/protected/"放置在重定向消息792中作為位 置URI的一部分中的查詢變?cè)?,如以下更詳?xì)地描述的那樣。從某些角度看,可以將本發(fā)明在其優(yōu)選實(shí)施方式中的一些方面認(rèn) 為是將重定向消息的"位置"報(bào)頭的結(jié)構(gòu)作為API (應(yīng)用編程接口 ) 類型使用。使用所定義的接口將參數(shù)從代理服務(wù)器傳輸至消息處理服 務(wù)器。如圖5中所示,"位置,,報(bào)頭中的內(nèi)容可以構(gòu)成以下部分<MH URL> <OP CODE> {<MACRO-INVOKED INFO}"<MH URL>,,是表示消息處理服務(wù)器的URL的字符串。"<OP CODE〉"是表示操作碼的字符串。"〈MACRO-INVOKED INFO〉" 是表示配置文件中宏變量的存在所需要的信息項(xiàng)的零個(gè)或多個(gè)字符 串。在優(yōu)選實(shí)施方式中,操作碼和宏調(diào)用信息項(xiàng)包括在重定向消息的 "位置,,報(bào)頭中作為查詢變?cè)?。參考上面的例子?OP—CODE=logon"變?yōu)椴樵冏冊(cè)<僭O(shè)"macro=URI ,,是已配置的宏,則 "https:〃ibmUSA/jct/protected/"變?yōu)椴樵冏冊(cè)?。這些字符串的每一個(gè)變成表示整個(gè)"位置,,報(bào)頭的字符串中的子字符串。因此,根據(jù)該示例,"位置,,報(bào)頭的值變?yōu)?在執(zhí)行一些ASCII數(shù)據(jù)格式化以符合協(xié)議標(biāo)準(zhǔn)之后)https:〃ibmUSA/jct/handler OP—CODE=LOGON&URI=https%3A//ibmUSA7jct/pro tected/字符"?"是區(qū)分查詢變?cè)cURI基礎(chǔ)部分的標(biāo)準(zhǔn)分隔符。字符 "&"是添加附加查詢變?cè)臉?biāo)準(zhǔn)分隔符。根據(jù)相同的示例,如果 "macrc^URr和"macr(^username"都被配置,并且用戶名是"jsmith,,, 則"位置"報(bào)頭的值將是https:〃ibmUSA/jct/handler OP—CODE=LOGON&URL=https%3A//ibmUSA/jct/pr otected/&username=j smith可以從會(huì)話狀態(tài)變量、證書、用戶注冊(cè)或一些其他數(shù)據(jù)存儲(chǔ)庫(kù)或 數(shù)據(jù)結(jié)構(gòu)來(lái)取回用戶名。如果沒(méi)有宏被配置為活動(dòng),則"位置"報(bào)頭 的值將是https:〃ibmUSA/jct/handler OP—CODE=LOGON表示各種操作碼的字符串可以基于本發(fā)明的實(shí)現(xiàn)而變化。應(yīng)當(dāng)注 意,由代理服務(wù)器使用的、用于生成給消息處理服務(wù)器的消息的信息 可以來(lái)源于多種位置,包括圖中未示出的其他位置,例如存儲(chǔ)在會(huì)話 高速緩存中的客戶端條目中的數(shù)據(jù)、最初接收到的HTTP請(qǐng)求的元素、 從認(rèn)證引擎返回的值或一些其他位置。現(xiàn)在參考圖8,根據(jù)本發(fā)明的實(shí)施方式,該流程圖根據(jù)優(yōu)選實(shí)施 方式示出了位于代理服務(wù)器處的處理,所述處理用于響應(yīng)于針對(duì)資源 的客戶端請(qǐng)求,向消息處理服務(wù)器發(fā)送請(qǐng)求,以生成待發(fā)送到客戶端 的上下文適當(dāng)?shù)膬?nèi)容消息,其中該客戶端請(qǐng)求引起了所檢測(cè)到的、要 求將內(nèi)容消息發(fā)送到客戶端的事件。當(dāng)代理服務(wù)器從客戶端接收到訪 問(wèn)資源或受保護(hù)資源的請(qǐng)求時(shí),該處理開始(步驟802)。在對(duì)所接 收請(qǐng)求的處理期間,代理服務(wù)器檢測(cè)出這樣的事件,或通知代理服務(wù) 器這樣的事件,該事件即,代理服務(wù)器確定需要向客戶端傳輸上下文 適當(dāng)?shù)膬?nèi)容以作為對(duì)事件的響應(yīng)(步驟804);例如,上下文適當(dāng)?shù)?內(nèi)容可以是至客戶端用戶的消息,例如針對(duì)用戶所請(qǐng)求事務(wù)的錯(cuò)誤消 息或登陸邀請(qǐng)。代理服務(wù)器創(chuàng)建重定向消息(步驟806);重定向消息包含由將 接收重定向消息的消息處理服務(wù)器使用的信息。重定向消息包含針對(duì) 代理服務(wù)器希望在消息處理服務(wù)器處調(diào)用的功能性的操作碼或OP 碼。重定向消息還包括基于對(duì)代理服務(wù)器進(jìn)行配置的特定宏而被置于 重定向消息中的數(shù)據(jù)項(xiàng)。然后代理服務(wù)器經(jīng)由客戶端將重定向消息發(fā) 送到消息處理服務(wù)器(步驟808 ),并且處理結(jié)束?,F(xiàn)在參考圖9,根據(jù)本發(fā)明的實(shí)施方式,流程圖根據(jù)優(yōu)選實(shí)施方 式描述了用于創(chuàng)建包含消息處理請(qǐng)求的重定向消息的處理。圖9所示 的處理提供了圖8中所示的步驟806的附加細(xì)節(jié)。處理開始于代理服 務(wù)器生成消息處理請(qǐng)求(步驟902)。確定適當(dāng)?shù)南⑻幚鞳P碼, 然后將其嵌入消息處理請(qǐng)求(步驟904)。代理服務(wù)器繼而確定已經(jīng)配置或激活的宏列表(步驟906)。獲 得針對(duì)每個(gè)已配置的宏的值;這些值可被稱為"評(píng)估的宏",將評(píng)估 的宏嵌入消息處理請(qǐng)求(步驟908)。繼而生成重定向消息(步驟910),并且將消息處理請(qǐng)求嵌入重 定向消息(步驟912)。繼而取回消息處理服務(wù)器的URL,并將其嵌 入重定向消息(步驟914),從而結(jié)束該處理?,F(xiàn)在參考圖10,流程圖描述了根據(jù)本發(fā)明實(shí)施方式的使用重定向 消息的"位置"報(bào)頭和"位置"報(bào)頭的URI中的查詢變?cè)獊?lái)創(chuàng)建HTTP 重定向消息的處理。圖IO所示的處理類似于圖9所示的處理。然而, 圖10所示的處理示出了本發(fā)明的一部分的特定優(yōu)選實(shí)施方式,其中 在HTTP重定向消息內(nèi)格式化消息處理請(qǐng)求。該處理開始于HTTP重定向消息的生成(步驟1002)。從配置文 件取回消息處理服務(wù)器的URL (步驟1004),并將其插入重定向消 息,作為重定向消息的"位置"報(bào)頭中的URI的基礎(chǔ)部分(步驟1006 )。 在代理服務(wù)器確定了將被消息處理服務(wù)器解釋為請(qǐng)求消息處理服務(wù) 器處特定功能的操作碼或OP碼之后,將該操作碼或OP碼插入重定 向消息,作為重定向消息的"位置,,報(bào)頭中的URI的查詢變?cè)?步驟 1008)。繼而確定已配置的宏的列表,這例如是通過(guò)從配置文件取回(步 驟1010),以及按照適合每個(gè)宏的方式獲得針對(duì)每個(gè)已配置的宏的值 (步驟1012)。繼而將每個(gè)已配置宏的值插入重定向消息,作為重定向消息的"位置"才艮頭中URI的查詢變?cè)?步驟1014),從而結(jié)束 該處理。根據(jù)上面提供的詳細(xì)描述,所公開的解決方案的優(yōu)點(diǎn)應(yīng)當(dāng)是顯然 的。如圖4所示,代理服務(wù)器經(jīng)由客戶端設(shè)備向消息處理服務(wù)器發(fā)送 重定向消息,例如HTTP "302" Redirect。包括無(wú)線"i殳備在內(nèi)的大多 數(shù)設(shè)備可以處理HTTP "302" Redirect。將客戶端重定向到其他服務(wù) 器,而不是在代理服務(wù)器內(nèi)生成HTTP響應(yīng)體,所述其他服務(wù)器可以 由特定安裝所支持的設(shè)備的客戶/供應(yīng)商維護(hù)。該后端服務(wù)器(被示為 圖4中的消息處理服務(wù)器418)繼而將負(fù)責(zé)確定客戶端設(shè)備的類型并 生成適當(dāng)?shù)捻憫?yīng)。所公開的解決方案的主要優(yōu)點(diǎn)是在上下文適當(dāng)?shù)膬?nèi) 容的生成中完全去除了代理服務(wù)器。將確定適當(dāng)響應(yīng)的責(zé)任置于其他陸和錯(cuò)誤頁(yè)面的內(nèi)容的客戶驅(qū)動(dòng)的需求。所公開的解決方案還提供了 API類型,可以通過(guò)其將參數(shù)或變量值從代理服務(wù)器傳輸至消息處理 服務(wù)器,以便允許消息處理服務(wù)器生成上下文適當(dāng)?shù)膬?nèi)容。需要著重注意的是,盡管已經(jīng)在全功能數(shù)據(jù)處理系統(tǒng)的上下文中 對(duì)本發(fā)明進(jìn)行了描述,但是本領(lǐng)域的普通技術(shù)人員將意識(shí)到,本發(fā)明 的處理可以以計(jì)算機(jī)可讀介質(zhì)中的指令的形式和多種其他形式進(jìn)行 分布,而不論實(shí)際用來(lái)執(zhí)行分布的信號(hào)承載介質(zhì)的特定類型。計(jì)算機(jī) 可讀介質(zhì)的例子包括例如EPROM、 ROM、磁帶、紙張、軟盤、硬盤 驅(qū)動(dòng)器、RAM和CD-ROM、以及傳輸類型的介質(zhì),例如數(shù)字和模擬 通信鏈路。通常將方法設(shè)想為導(dǎo)致期望結(jié)果的步驟的自相一致的序列。這些 步驟需要物理量的物理操作。通常,盡管不是必須地,這些物理量采 用能夠被存儲(chǔ)、傳送、組合、比較和操作的電信號(hào)或磁信號(hào)的形式。 將這些信號(hào)作為比特、值、參數(shù)、項(xiàng)、元件、對(duì)象、符號(hào)、字符、術(shù)語(yǔ)、數(shù)字等使用有時(shí)是方便的,主要是為了通用的原因。然而,應(yīng)當(dāng) 指出,所有這些術(shù)語(yǔ)和類似術(shù)語(yǔ)都與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且僅僅 是應(yīng)用于這些物理量的方便的標(biāo)記。出于描述的目的已經(jīng)給出了對(duì)本發(fā)明的描述,但并非意在是窮盡 性的或是受限于所公開的實(shí)施方式。對(duì)于本領(lǐng)域的普通技術(shù)人員而 言,多種修改和變形將是顯然的。選擇實(shí)施方式是為了闡釋本發(fā)明的 原理及其實(shí)踐應(yīng)用,并使得本領(lǐng)域的其他普通技術(shù)人員能夠理解發(fā) 明,以便實(shí)現(xiàn)具有各種修改的各種實(shí)施方式,以適合其他預(yù)期的用途。
權(quán)利要求
1.一種用于在數(shù)據(jù)處理系統(tǒng)中外部化消息處理的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括在第一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資源的請(qǐng)求;響應(yīng)于在所述第一服務(wù)器處確定處理所述請(qǐng)求要求將消息發(fā)送到所述客戶端,生成包含操作碼的重定向消息,所述操作碼對(duì)應(yīng)于第二服務(wù)器處的針對(duì)將要發(fā)送到所述客戶端的消息的消息處理功能性;評(píng)估可配置的宏,以確定評(píng)估的宏;將所述評(píng)估的宏插入所述重定向消息;以及將所述重定向消息從所述第一服務(wù)器經(jīng)由所述客戶端發(fā)送到所述第二服務(wù)器。
2. 根據(jù)權(quán)利要求1所述的方法,還包括在所述第二服務(wù)器處從所述重定向消息中提取所述操作碼;以及 在所述第二服務(wù)器處調(diào)用與所述提取的操作碼相對(duì)應(yīng)的消息處 理功能性。
3. 根據(jù)權(quán)利要求1或2所述的方法,還包括 在所述第二服務(wù)器處從所述重定向消息中提取所述評(píng)估的宏;以及在所述第二服務(wù)器處采用所述評(píng)估的宏作為所述消息處理功能 性的輸入?yún)?shù)。
4. 根據(jù)權(quán)利要求l、 2或3所述的方法,還包括將第 一 可配置宏標(biāo)識(shí)為與來(lái)自所述客戶端的所述請(qǐng)求中的URI (統(tǒng)一資源標(biāo)識(shí)符)相對(duì)應(yīng);從來(lái)自所述客戶端的所述請(qǐng)求中提取所述URI;以及 將所述第一可配置宏評(píng)估為等于來(lái)自所述客戶端的所述請(qǐng)求的 提取的URI。
5. 根據(jù)權(quán)利要求l、 2、 3或4所述的方法,還包括 將所述操作碼插入所述重定向消息作為所述重定向消息中的"位置"報(bào)頭中URI的查詢變?cè)?,其中,所述重定向消息是HTTP (超文 本傳l俞協(xié)議)Redirect消息。
6. 根據(jù)前述權(quán)利要求任一項(xiàng)所述的方法,還包括 將所述評(píng)估的宏插入所述重定向消息作為所述重定向消息中的"位置"報(bào)頭中URI的查詢變?cè)渲?,所述重定向消息是HTTP(超 文本傳輸協(xié)議)Redirect消息。
7. 根據(jù)前述權(quán)利要求任一項(xiàng)所述的方法,還包括 評(píng)估可配置的宏集合,以確定評(píng)估的宏集合;以及 將所述評(píng)估的宏插入所述重定向消息。
8. —種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上計(jì)算機(jī)程序產(chǎn)品,用于在數(shù)據(jù)處理 系統(tǒng)中外部化消息處理,所述計(jì)算機(jī)程序產(chǎn)品包括用于在第一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資源的請(qǐng)求的裝置; 用于響應(yīng)于在所述第一服務(wù)器處確定處理所述請(qǐng)求要求將消息發(fā)送到所述客戶端而生成包含操作碼的重定向消息的裝置,所述操作碼對(duì)應(yīng)于第二服務(wù)器處的針對(duì)將要發(fā)送到所述客戶端的消息的消息處理功能性;用于評(píng)估可配置的宏以確定評(píng)估的宏的裝置;用于將所述評(píng)估的宏插入所述重定向消息的裝置;以及用于將所述重定向消息從所述第 一服務(wù)器經(jīng)由所述客戶端發(fā)送到所述第二服務(wù)器的裝置。
9. 根據(jù)權(quán)利要求8所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于在所述第二服務(wù)器處從所述重定向消息中提取所述操作碼 的裝置;以及用于在所述第二服務(wù)器處調(diào)用與所述提取的操作碼相對(duì)應(yīng)的消 息處理功能性的裝置。
10. 根據(jù)權(quán)利要求8或9所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于在所述第二服務(wù)器處從所述重定向消息中提取所述評(píng)估的 宏的裝置;以及用于在所述第二服務(wù)器處采用所述評(píng)估的宏作為所述消息處理功能性的輸入?yún)?shù)的裝置。
11. 根據(jù)權(quán)利要求8、 9或IO所述的計(jì)算機(jī)程序產(chǎn)品,還包括 用于將第一可配置宏標(biāo)識(shí)為與來(lái)自所述客戶端的所述請(qǐng)求中的URI (統(tǒng)一資源標(biāo)識(shí)符)相對(duì)應(yīng)的裝置;用于從來(lái)自所述客戶端的所述請(qǐng)求中提取所述URI的裝置;以及 用于將所述第一可配置宏評(píng)估為等于來(lái)自所述客戶端的所述請(qǐng)求的提取的URI的裝置。
12. 根據(jù)權(quán)利要求8、 9、 10或11所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于將所述操作碼插入所述重定向消息作為所述重定向消息中 的"位置"報(bào)頭中URI的查詢變?cè)难b置,其中,所述重定向消息是 HTTP (超文本傳輸協(xié)議)Redirect消息。
13. 根據(jù)權(quán)利要求8到12中任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于將所述評(píng)估的宏插入所述重定向消息作為所述重定向消息 中的"位置,,報(bào)頭中URI的查詢變?cè)难b置,其中,所述重定向消息 是HTTP (超文本傳輸協(xié)議)Redirect消息。
14. 根據(jù)權(quán)利要求8到13中任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于評(píng)估可配置的宏集合以確定評(píng)估的宏集合的裝置;以及 用于將所述評(píng)估的宏插入所述重定向消息的裝置。
15. —種用于在數(shù)據(jù)處理系統(tǒng)中外部化消息處理的設(shè)備,所述設(shè)備包括用于在第 一服務(wù)器處接收來(lái)自客戶端的訪問(wèn)資源的請(qǐng)求的裝置; 用于響應(yīng)于在所述第一服務(wù)器處確定處理所述請(qǐng)求要求將消息 發(fā)送到所述客戶端而生成包含操作碼的重定向消息的裝置,所述操作 碼對(duì)應(yīng)于第二服務(wù)器處的針對(duì)將要發(fā)送到所述客戶端的消息的消息 處理功能性;用于評(píng)估可配置的宏以確定評(píng)估的宏的裝置;用于將所述評(píng)估的宏插入所述重定向消息的裝置;以及 用于將所述重定向消息從所述第一服務(wù)器經(jīng)由所述客戶端發(fā)送 到所述第二服務(wù)器的裝置。
16. 根據(jù)權(quán)利要求15所述的設(shè)備,還包括用于在所述第二服務(wù)器處從所述重定向消息中提取所述操作碼 的裝置;以及用于在所述第二服務(wù)器處調(diào)用與所述提取的操作碼相對(duì)應(yīng)的消 息處理功能性的裝置。
17. 根據(jù)權(quán)利要求15或16所述的設(shè)備,還包括 用于在所述第二服務(wù)器處從所述重定向消息中提取所述評(píng)估的宏的裝置;以及用于在所述第二服務(wù)器處采用所述評(píng)估的宏作為所述消息處理 功能性的輸入?yún)?shù)的裝置。
18. 根據(jù)權(quán)利要求15到17中任一項(xiàng)所述的設(shè)備,還包括用于將第 一 可配置宏標(biāo)識(shí)為與來(lái)自所述客戶端的所述請(qǐng)求中的URI (統(tǒng)一資源標(biāo)識(shí)符)相對(duì)應(yīng)的裝置;用于從來(lái)自所述客戶端的所述請(qǐng)求中提取所述URI的裝置;以及 用于將所述第一可配置宏評(píng)估為等于來(lái)自所述客戶端的所述請(qǐng)求的提取的URI的裝置。
19. 根據(jù)權(quán)利要求15到18中任一項(xiàng)所述的設(shè)備,還包括用于將所述操作碼插入所述重定向消息作為所述重定向消息中 的"位置,,報(bào)頭中URI的查詢變?cè)难b置,其中,所述重定向消息是 HTTP (超文本傳輸協(xié)議)Redirect消息。
20. 根據(jù)權(quán)利要求15到19中任一項(xiàng)所述的設(shè)備,還包括用于將所述評(píng)估的宏插入所述重定向消息作為所述重定向消息 中的"位置,,報(bào)頭中URI的查詢變?cè)难b置,其中,所述重定向消息 是HTTP (超文本傳輸協(xié)議)Redirect消息。
21. 根據(jù)權(quán)利要求15到20中任一項(xiàng)所述的設(shè)備,還包括 用于評(píng)估可配置的宏集合以確定評(píng)估的宏集合的裝置;以及用于將所述評(píng)估的宏插入所述重定向消息的裝置。
22. —種包括程序代碼裝置的計(jì)算機(jī)程序,所述程序代碼裝置適 于當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行權(quán)利要求1到7中任一項(xiàng)所述的 方法。
全文摘要
提出一種用于在數(shù)據(jù)處理系統(tǒng)中外部化消息處理的方法。在第一服務(wù)器(404)處接收來(lái)自客戶端(402)的訪問(wèn)資源(406)的請(qǐng)求(412)。響應(yīng)于在第一服務(wù)器處確定處理請(qǐng)求要求將消息發(fā)送到客戶端,生成包含操作碼的重定向消息(416),該操作碼對(duì)應(yīng)于第二服務(wù)器(418)處的針對(duì)將要發(fā)送到客戶端的消息的消息處理功能性。評(píng)估可配置的宏以確定評(píng)估的宏,并且將評(píng)估的宏插入重定向消息。繼而將重定向消息從第一服務(wù)器經(jīng)由客戶端發(fā)送到第二服務(wù)器。第二服務(wù)器從重定向消息中提取操作碼,并調(diào)用與提取的操作碼相對(duì)應(yīng)的消息處理功能性。第二服務(wù)器從重定向消息中提取評(píng)估的宏,并在第二服務(wù)器處采用評(píng)估的宏作為消息處理功能性的輸入?yún)?shù)。
文檔編號(hào)H04L29/08GK101331740SQ200680047173
公開日2008年12月24日 申請(qǐng)日期2006年12月13日 優(yōu)先權(quán)日2005年12月16日
發(fā)明者A·S·莫蘭, B·B·哈蒙, H·M·欣頓, I·M·米爾曼, M·范登沃維爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司