專利名稱:管理客戶機(jī)-服務(wù)器通信的方法和計算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在電子網(wǎng)絡(luò)中管理客戶機(jī)-服務(wù)器通信的方法和系統(tǒng),其中,對于多個客戶機(jī)來說,需要客戶機(jī)認(rèn)證和授權(quán)用于訪問服務(wù)器應(yīng)用。
背景技術(shù):
圖1A中給出了典型的現(xiàn)有技術(shù)系統(tǒng)體系結(jié)構(gòu)。多個客戶機(jī)1...n與多個服務(wù)器應(yīng)用1...m進(jìn)行通信。對每個通信使用相應(yīng)的單個會話,所述會話在每個客戶機(jī)和每個服務(wù)器應(yīng)用之間被獨立構(gòu)建和管理。
出于本發(fā)明的目的,會話應(yīng)理解為客戶機(jī)和服務(wù)器應(yīng)用之間的通信任務(wù)。
會話由來自特定服務(wù)器應(yīng)用的客戶機(jī)請求服務(wù)所創(chuàng)建。客戶機(jī)使用操作系統(tǒng)服務(wù)來處理該服務(wù)器應(yīng)用并且根據(jù)雙方都支持的協(xié)議進(jìn)行通信。會話保持激活直到其明確地被客戶機(jī)、服務(wù)器應(yīng)用終止,或者作為在通信層內(nèi)的故障的結(jié)果。
這里的術(shù)語“服務(wù)器”應(yīng)理解為包括在向請求客戶機(jī)提供任何服務(wù)時起作用的計算機(jī)系統(tǒng)的硬件以及安裝在執(zhí)行同樣操作的硬件上的軟件。
術(shù)語“用戶”和“客戶機(jī)”同時被使用,在通常意義上是指服務(wù)請求單元。
每個會話需要管理用戶認(rèn)證和用戶授權(quán)用于訪問由各個服務(wù)器應(yīng)用管理的資源。為了執(zhí)行該操作,向用戶提供用于認(rèn)證目的的用戶ID和口令以及向用戶提供特定的訪問權(quán)限,所述訪問權(quán)限使得用戶能夠訪問某些特定的服務(wù)器應(yīng)用資源。如果服務(wù)器應(yīng)用管理數(shù)據(jù)庫或這些資源包括對某些文件系統(tǒng)結(jié)構(gòu)的寫或讀訪問,則所述資源可以例如是某些數(shù)據(jù)庫表,其中,由所述文件系統(tǒng)結(jié)構(gòu)定義對某種操作(例如,讀、寫、刪除、創(chuàng)建等)的授權(quán)。在此現(xiàn)有技術(shù)系統(tǒng)體系結(jié)構(gòu)里,用戶認(rèn)證和用戶授權(quán)需要很高的管理級并且綁定了相應(yīng)的大量資源。
如果客戶機(jī)數(shù)量n很大,則會話管理工作量會高得無法令人接受。
另一種現(xiàn)有技術(shù)方案是所謂的“會話池”,其特別用于數(shù)據(jù)庫應(yīng)用。會話池處理有時費時的過程的問題,以便在客戶機(jī)和服務(wù)器應(yīng)用之間,特別是在數(shù)據(jù)庫環(huán)境中通過高速緩存曾經(jīng)建立的會話來建立通信會話。即使用戶已經(jīng)執(zhí)行了用于終止會話的注銷,會話池也會在預(yù)定時間內(nèi)為用戶臨時地存儲會話。如果同一用戶希望重新連接其在上次會話中與其通信過的特定服務(wù)器應(yīng)用,則這樣的會話池體系結(jié)構(gòu)能夠使得恢復(fù)先前使用過的會話而不需要建立新的會話。只要此先前的會話還存儲在高速緩沖存儲器中,這就可以實現(xiàn)。如果會話已經(jīng)從高速緩沖中刪除,則必須創(chuàng)建新的會話。缺陷在于池的大小受限,并且在經(jīng)過某個預(yù)定時間或滿足其它規(guī)則之后,會話必須被刪除并且對于同一客戶機(jī)的另一次使用不再可用。會話池的單獨使用仍會導(dǎo)致一個特定客戶機(jī)和服務(wù)器應(yīng)用之間的專用會話。
在數(shù)據(jù)庫環(huán)境中,所謂“技術(shù)用戶”的概念在圖1B中概略地作了描述,以其作為代表,n個客戶機(jī)可創(chuàng)建到特定數(shù)據(jù)庫的會話。這一概念例如發(fā)表在http://www.trivadis.ch/Images/RLSmitDotNet en tcm9-3433.pdf。對于這些n個客戶機(jī)的管理員數(shù)據(jù)庫訪問所需的定義因此僅被限于技術(shù)用戶。這一現(xiàn)有技術(shù)概念的缺陷在于,諸如插入或刪除的特定數(shù)據(jù)庫交互還是由客戶機(jī)自己完成的。由于每個客戶機(jī)的權(quán)限必須在服務(wù)器端進(jìn)行管理,所以除了僅由自己創(chuàng)建會話之外,沒有任何管理方面的益處。
發(fā)明內(nèi)容
因此,本發(fā)明的目的是根據(jù)權(quán)利要求1的導(dǎo)言提供一種用于在電子網(wǎng)絡(luò)中管理客戶機(jī)-服務(wù)器通信的方法和系統(tǒng),其提供了用戶管理中增強(qiáng)的靈活性以及由此在服務(wù)器端減少的工作。
本發(fā)明的該目的通過所附獨立權(quán)利要求中聲明的特征來實現(xiàn)。本發(fā)明的其它有利的布置和實施例在相應(yīng)的從屬權(quán)利要求中闡述?,F(xiàn)在應(yīng)參照所附的權(quán)利要求。
根據(jù)本發(fā)明最寬的方面,公開了一種用于在電子網(wǎng)絡(luò)中管理客戶機(jī)-服務(wù)器通信的方法,其中,對于多個客戶機(jī)需要相應(yīng)的與客戶機(jī)有關(guān)的認(rèn)證和授權(quán)以訪問服務(wù)器應(yīng)用,所述方法由以下步驟所表征a)優(yōu)選地在會話控制部件中,獨立于所述服務(wù)器應(yīng)用來管理多個客戶機(jī)的客戶機(jī)認(rèn)證數(shù)據(jù)和授權(quán)數(shù)據(jù),用于對所述服務(wù)器應(yīng)用進(jìn)行經(jīng)授權(quán)的訪問,b)接收指向?qū)λ龇?wù)器應(yīng)用之一的訪問的輸入客戶機(jī)請求,該過程優(yōu)選地通過以下兩種方式之一來實現(xiàn)b1)通過傳遞建立會話所需要的所有信息連同所述請求一起來直接實現(xiàn),或者b2)通過傳遞對包含所述信息的會話對象的引用來間接實現(xiàn),c)檢查所述客戶機(jī)請求的認(rèn)證和/或授權(quán),d)保持和單個服務(wù)器應(yīng)用有關(guān)的單個代理用戶,所述代理用戶代表了多個客戶機(jī)及其對于連接和使用相應(yīng)單個服務(wù)器應(yīng)用的授權(quán),e)對于指向?qū)Ω鱾€相同單個服務(wù)器應(yīng)用的訪問的多個已允許的客戶機(jī)請求,使用所述代理用戶來操作單個會話,f)在所述單個會話內(nèi)順序地處理所述請求。
在此,代理用戶將被理解為被放入“初始客戶機(jī)”和“初始服務(wù)器”之間的通信系統(tǒng)的部件。其外觀和特性與任何其它用戶沒有不同,除了它代表了多個真實用戶。因此,上述步驟a)意味著將用戶管理和會話管理所必需的工作集中到控制部件中,以及在控制部件內(nèi)或由控制部件所告知的單獨軟件內(nèi)獨立于服務(wù)器應(yīng)用來完成用戶認(rèn)證和授權(quán)工作。接著此會話控制軟件優(yōu)選地提供對服務(wù)器應(yīng)用可見的單個代理用戶功能。對于每個服務(wù)器應(yīng)用優(yōu)選地遵循該原理。因此,每個服務(wù)器應(yīng)用使用相應(yīng)的合并會話(consolidated session)來與客戶機(jī)相關(guān)并與其通信。這優(yōu)選地通過在會話控制部件中提供的相應(yīng)軟件部分來完成。
此原理允許執(zhí)行一種“合并的”應(yīng)用服務(wù)器會話。對于每個服務(wù)器應(yīng)用必須實現(xiàn)至少一個會話。當(dāng)然,如果由此而需要流量,則可以對于一個特定服務(wù)器應(yīng)用建立多個會話。由于一個合并會話包括實際上對相當(dāng)大量的用戶的管理(這是獨立設(shè)置的問題),因此非常大量的用戶可被連接于特定的單個服務(wù)器應(yīng)用。
參與到單個合并會話中的多個客戶機(jī)被順序地處理,其可以例如在隊列中被實現(xiàn)。
如本領(lǐng)域技術(shù)人員可以意識到的,管理開銷受限于訪問服務(wù)器應(yīng)用的一個或相應(yīng)的小數(shù)量的代理用戶ID。另外,例如任務(wù)和網(wǎng)絡(luò)資源的資源需求受限于單個會話的需求,并且編程需求被保持在最少,因為編程需求僅僅需要引用單個合并會話(或者如果確實必要則僅僅需要小數(shù)量的程序需求),而不是在現(xiàn)有技術(shù)的多個會話情況下的大量編程需求,其中會話在每個客戶機(jī)和每個服務(wù)器應(yīng)用之間單獨被定義。
另外,這一基本原理可以用下述方式隨意擴(kuò)展例如,如果例如由于不同的安全性特征而需要不同的會話特性,則單個客戶機(jī)具有創(chuàng)建多個會話的靈活性。
當(dāng)通過生成代表多個N會話對象的邏輯會話代理部分以及與此相關(guān)聯(lián)的物理會話代理部分并用實現(xiàn)會話控制部件的硬件的操作系統(tǒng)提供的相應(yīng)資源(進(jìn)程、任務(wù)、線程等)來運行會話控制實例來實現(xiàn)所述單個代理用戶功能時,那么所述優(yōu)點使得如果例如由通信故障引起物理部分損壞也可以保持邏輯代理部分不被接觸。因此在這種情況下只有物理部分必須被恢復(fù)。
會話控制部件可駐留于托管一個或多個服務(wù)器應(yīng)用的同一硬件上,或者它可以被獨立實現(xiàn)并通過網(wǎng)絡(luò)設(shè)備進(jìn)行連接,或者在可能性很小的情況下,它可駐留于每個客戶系統(tǒng)。
另外,合并會話可以被定義,以使通過合并會話所提供的通信信道具有特定的帶寬。因此,在定義了多個合并會話的情況下,可以建立具有不同帶寬的通信信道,這是在本發(fā)明的思想中用于適應(yīng)所需帶寬的裝置。
另外,有利的是,當(dāng)定義了將各個控制參數(shù)包括在客戶機(jī)請求中的會話對象之時,那么可以為這樣的會話對象提供用符號表示的、意義自明的名稱,并且由此對于用戶覆蓋服務(wù)器ID或服務(wù)器應(yīng)用ID的非意義自明的、“難以理解”的名稱。通過將用符號表示的名稱與這些相應(yīng)的服務(wù)器ID或服務(wù)器應(yīng)用ID進(jìn)行附加的映射,可以定義唯一的映射關(guān)系,并且當(dāng)將請求轉(zhuǎn)發(fā)到正確的服務(wù)器應(yīng)用時可以由會話控制部件進(jìn)行查找。同時,用戶不會再碰到這類難以理解的名稱或術(shù)語,也就是說,用戶關(guān)注于需要實現(xiàn)“什么”而不是它“怎樣”才能實現(xiàn)。
本發(fā)明通過舉例的方式來說明,并不受限于附圖中的圖像形狀,在附圖中圖1A和B分別是在每個客戶機(jī)和每個服務(wù)器之間由各個會話建立的現(xiàn)有技術(shù)的客戶機(jī)服務(wù)器互連的簡要框圖表示(n乘以m個會話);圖2是根據(jù)本發(fā)明的優(yōu)選實施例的系統(tǒng)體系結(jié)構(gòu)的簡要框圖表示,該圖說明了在會話控制部件和相應(yīng)的服務(wù)器應(yīng)用之間的合并會話;圖3是對于會話管理相關(guān)的部件的簡要描述;圖4是顯示了本發(fā)明的會話控制實例的某些實現(xiàn)方面的簡要描述;圖5A和5B是說明在本發(fā)明優(yōu)選實施例中的發(fā)明方法的步驟的控制流程圖;圖6是說明了會話實現(xiàn)細(xì)節(jié)的簡要描述;以及圖7是根據(jù)本發(fā)明的客戶機(jī)請求到會話之間的映射的簡要描述。
具體實施例方式
通過總體地參考附圖及特別地參照圖2,圖中繪于左側(cè)的多個客戶機(jī)向繪于右側(cè)的服務(wù)器應(yīng)用提出一些請求。更具體地,提供了根據(jù)本發(fā)明的會話控制部件20,用于對于繪于右側(cè)的服務(wù)器應(yīng)用,建立和操作(以及終止)合并會話28。
為了這樣做,對于特定服務(wù)器應(yīng)用的輸入請求在對于每個合并會話提供的隊列22中排隊。隊列22向訪問授權(quán)管理部件24發(fā)布串行化的請求。該部件24連接在隊列22和會話創(chuàng)建/刪除部件26之間。部件24檢查輸入請求中的請求人員的用戶ID和口令,或者在請求者不是人類而是自動化程序部件的情況下檢查是否允許不同的請求ID。
另外,訪問授權(quán)管理部件24檢查在特定的相應(yīng)服務(wù)器應(yīng)用上,哪些請求對于特定的請求客戶機(jī)是允許的。例如,如果請求用戶是對于相應(yīng)數(shù)據(jù)庫表沒有寫入訪問權(quán)限的人員,則部件24拒絕對某個數(shù)據(jù)庫字段的刪除請求。
執(zhí)行檢查過程之后,請求或者被拒絕或者被轉(zhuǎn)發(fā)到會話創(chuàng)建/刪除部件26,會話創(chuàng)建/刪除部件26將該請求映射到為所請求的服務(wù)器應(yīng)用而提供的特定會話28,與此同時還將該請求映射到與該會話相關(guān)的特定代理用戶。代理用戶在所描述的系統(tǒng)中作為任意其它普通用戶出現(xiàn),但是其代表了與所請求的服務(wù)器應(yīng)用相關(guān)的多個“實際”用戶和他們的權(quán)限。
取決于當(dāng)前的需要,會話創(chuàng)建/刪除部件26能動態(tài)地管理所需要數(shù)目的會話。因此,如果輸入的請求需要到還未建立合并會話的服務(wù)器的連接,則會話被該部件自動創(chuàng)建。另外,輸入請求的數(shù)量需要的帶寬超過對于特定的服務(wù)器應(yīng)用的現(xiàn)有合并會話所定義的帶寬,則由該部件自動地創(chuàng)建會話并將其提供給客戶機(jī)用于人工或經(jīng)編程的輸入。無論何時創(chuàng)建會話,至所述會話的連接都是通過代理用戶完成的。在該請求的持續(xù)時間內(nèi),每個請求/響應(yīng)對獨占地使用所述合并會話。因此,由部件26創(chuàng)建的合并會話是以串行化形式來處理客戶機(jī)請求的會話。如果特定請求包含服務(wù)器應(yīng)用響應(yīng),則這也會用于服務(wù)器應(yīng)用響應(yīng)。因此,會話是會話控制部件20和相應(yīng)的服務(wù)器應(yīng)用之間的雙向通信信道。如果,例如在出錯的情況下無法對請求進(jìn)行服務(wù),則合并會話自動被恢復(fù),而不需要客戶機(jī)來這么做。然后,客戶機(jī)只需要檢查請求并且可能用相同的或經(jīng)修正的形式來重復(fù)該請求。
從服務(wù)器端提供的代理用戶管理部件23可以看出,服務(wù)器應(yīng)用處的管理工作量顯著降低,因為服務(wù)器應(yīng)用只需要認(rèn)證由本發(fā)明的會話控制部件20提供的代理用戶而不是如現(xiàn)有技術(shù)情形中那樣的多個單個客戶機(jī)。
取決于在部件26內(nèi)實現(xiàn)的會話實現(xiàn)思想,可以對于每個服務(wù)器應(yīng)用只管理單個會話,或者如果對于帶寬需求有需要,則可以創(chuàng)建相應(yīng)的更大量的會話。從附圖描述中可以清楚地看出,客戶機(jī)與會話控制部件20通信,會話控制部件20用作為與客戶機(jī)相關(guān)的代理用戶,且同一代理用戶用作為與服務(wù)器應(yīng)用相關(guān)的單個客戶機(jī)。本發(fā)明對于由會話控制部件20處理的用戶認(rèn)證和授權(quán)工作的重新分配導(dǎo)致在托管服務(wù)器應(yīng)用的操作系統(tǒng)中需要更少的資源。更具體地,當(dāng)一個系統(tǒng)進(jìn)程被分配用于實現(xiàn)一個單個的合并會話時,如果向此服務(wù)器應(yīng)用發(fā)布請求的客戶機(jī)數(shù)量是n,則操作系統(tǒng)進(jìn)程的數(shù)量被本發(fā)明減少了n的倍數(shù)。另外,服務(wù)器端的管理工作被大大減少到檢查由會話控制部件20定義的單個代理用戶所需的工作。
另外,當(dāng)把附加的單個客戶機(jī)與其應(yīng)該具有訪問權(quán)的已有會話進(jìn)行映射時,只需要增加一點工作,因為該會話已經(jīng)存在并且已經(jīng)在會話控制部件20和相應(yīng)的服務(wù)器應(yīng)用之間被管理和維護(hù)。因此,總之,只需要m個會話而不是n乘以m個會話用來在n個客戶機(jī)和m個服務(wù)器應(yīng)用之間建立通信,其中,每個客戶機(jī)都被允許與每個服務(wù)器應(yīng)用通信。
通過進(jìn)一步參考圖3,下面給出了本發(fā)明“合并會話”概念的一些附加的邏輯方面。每個輸入的客戶機(jī)請求指定了用于使在本發(fā)明的會話控制部件20中實現(xiàn)的用戶代理能夠在下面描述的服務(wù)器應(yīng)用上進(jìn)行認(rèn)證所需要的所有屬性。
優(yōu)選地,這些屬性被結(jié)合在所謂的會話對象“會話”中并由符號化的名稱標(biāo)注為一個實體。
這些屬性包括類似以下的所有信息服務(wù)器應(yīng)用地址、可用于控制服務(wù)器應(yīng)用的行為的附加連接數(shù)據(jù)、在客戶端對不同種類的服務(wù)器提供通用行為的服務(wù)器應(yīng)用類型、會話超時限制、用戶ID、口令(可讀的或加密的)、企業(yè)名稱等,所述信息對于認(rèn)證請求人員是必需的,并且還清楚地對每個所述用戶定義了由客戶機(jī)請求所請求的允許的操作。在相應(yīng)服務(wù)器應(yīng)用上請求的操作通常取決于相應(yīng)的服務(wù)器應(yīng)用。因此,例如,可以指定后面跟隨一些命令參數(shù)(例如,delete path_name/file)的簡單命令,以及各種其它的語句(例如,SQL語句)。
另外,每個請求指定了例如任何協(xié)議(例如HTTP、SMA、TCPIP等)需要的服務(wù)器應(yīng)用名稱或服務(wù)器應(yīng)用ID,也要參見圖6作為參考。因此,對于每個輸入的請求,給出“誰從哪個服務(wù)器應(yīng)用請求什么”的完整描述。
會話控制部件創(chuàng)建和所請求的服務(wù)器應(yīng)用的數(shù)量一樣多的會話,并且創(chuàng)建對于托管會話控制部件20的計算機(jī)的操作系統(tǒng)最適合的相應(yīng)的多個實例、進(jìn)程、任務(wù)、線程等。這里顯示了會話控制實例,該實例在“先入先服務(wù)”的基礎(chǔ)上以串行順序處理單個合并會話的客戶機(jī)請求。如果發(fā)生硬件或軟件錯誤,則會話可以被會話控制部件20很容易地恢復(fù)。這可以自動完成而不需要任何人工交互。另外,上面已經(jīng)提到,可以對單個服務(wù)器應(yīng)用實現(xiàn)不同的合并會話,例如為了適應(yīng)所需的不同的相應(yīng)會話特性。例如某些請求應(yīng)當(dāng)被非??焖俚靥幚矶渌目梢圆荒敲纯斓靥幚?。另外,在由單獨的合并會話所建立的通信信道中,某些請求能夠以較高的安全級別進(jìn)行處理而其它以較低的安全級別進(jìn)行處理。
此外,輸入請求的串行化可以在或者不在這里所公開的會話控制部件內(nèi)實現(xiàn)。這應(yīng)當(dāng)根據(jù)所討論的IT環(huán)境的特定需要來完成。這對于訪問權(quán)限管理也基本正確,所述訪問權(quán)限管理在圖2中被描述為會話控制部件20中的軟件部件24。這也可以在此部件20之外實現(xiàn),并被特別地預(yù)先連接到此部件20。
同樣,能夠?qū)崿F(xiàn)預(yù)先連接到應(yīng)用服務(wù)器并從會話控制部件20與代理用戶進(jìn)行通信的預(yù)先連接的安全工具。
從圖3可以看出,客戶機(jī)可關(guān)注于事務(wù)上的關(guān)鍵問題它們想要從某個服務(wù)器應(yīng)用請求“什么”,而本發(fā)明的會話控制部件20可以關(guān)注于“怎樣”在客戶機(jī)和服務(wù)器應(yīng)用之間建立通信的問題。特別地,如果沒有隱藏會話存在(即對客戶機(jī)隱含地和透明地存在的會話),則這包括由會話控制部件20提供的自動創(chuàng)建會話的功能,所以客戶機(jī)減輕了管理它們獨自使用的會話的負(fù)擔(dān)。
通過進(jìn)一步參照圖4,本發(fā)明方法的單獨優(yōu)選的特征可以描述為根據(jù)此優(yōu)選的實現(xiàn)特征定義了會話對象,其在圖4中用標(biāo)號40A、40B、40C表示。所述會話對象包含與對于特定服務(wù)器應(yīng)用建立會話有關(guān)的所有屬性(見圖上方)。會話對象由客戶機(jī)請求所引用。它們被分配給特定的邏輯會話代理。另外,邏輯會話代理可代表多個會話對象。邏輯會話代理用標(biāo)號44A、44B表示。在會話對象和邏輯會話代理之間可實現(xiàn)輪叫循環(huán)(roundrobin)分配或任何其它適當(dāng)?shù)姆峙?2。
此外,在會話控制部件20(圖2)內(nèi),例如通過人工分配46,將每個邏輯會話代理44分配給特定的物理會話代理48A、48B。此物理會話代理48是運行如前所述的特定會話控制實例的物理任務(wù)(進(jìn)程)。每個所述物理任務(wù)都可代表多個邏輯會話代理。
邏輯和物理會話代理的分隔在物理會話代理故障方面提供了較高的魯棒性。盡管邏輯會話代理對于任何指定的會話對象保持不變,但如果首要的物理會話代理不可用,則會話控制實例具有選擇其另一個、次要的(預(yù)先定義的)物理會話代理的靈活性。
物理會話代理和邏輯會話代理之間可以是1n的關(guān)系。對于n>1,對于由映射到n個邏輯會話代理的會話對象所代表的會話的所有請求在物理會話代理層上進(jìn)行串行化處理。對于n=1,只有對于由映射到一個邏輯會話代理的會話對象所代表的會話的請求在物理會話代理層上進(jìn)行串行化處理。所以,這給了管理者用最少的資源(n>1)交換最大性能(n=1)的靈活性。
在物理會話代理48和邏輯會話代理之間提出了人工分配46,根據(jù)整個通信系統(tǒng)的當(dāng)前需求,可以對其進(jìn)行改變。每次當(dāng)請求按FIFO次序排隊時,如圖4中的這些細(xì)節(jié)所描述的會話控制實例就會處理一個請求。另外,控制實例(優(yōu)選地是邏輯會話代理44A、44B)檢測會話是否已經(jīng)存在,如果不然,則其根據(jù)在相應(yīng)的會話對象中給定的屬性來建立會話。
此外,該控制實例實現(xiàn)了用于檢測會話何時中斷的控制軟件。在這種情況下,其專注于在下一個請求時修復(fù)連接??蛻魴C(jī)將只檢測這種情況下失效的請求而自身并不對恢復(fù)會話負(fù)責(zé)——這是會話控制實例的責(zé)任。
此外通過參考圖5A和5B,更詳細(xì)地描述了本發(fā)明優(yōu)選實施例中的本發(fā)明方法的控制流在第一步驟510中,在會話控制部件上關(guān)于屬性“誰從哪里用哪種訪問權(quán)限請求什么”來評估客戶機(jī)請求。例如,在文件系統(tǒng)管理中,可以由特定用戶用特定刪除指令來請求刪除某個文件系統(tǒng)子樹。
在檢查步驟520,部件20讀取這些輸入屬性并執(zhí)行在其中維護(hù)的用戶表中的交叉檢查,該用戶表保有該特定用戶對任何允許的應(yīng)用的任何訪問權(quán)限。應(yīng)當(dāng)注意在現(xiàn)有技術(shù)里這是由被請求的服務(wù)器應(yīng)用自身來完成的工作。在檢查步驟520的NO分支里,在步驟570中錯誤消息被發(fā)送回請求用戶。
否則,如果由伴隨有相應(yīng)命令參數(shù)的請求所組成的特定命令被請求用戶所允許,則通過訪問授權(quán)管理部件24進(jìn)行檢查而執(zhí)行第二檢查步驟530。為了這樣做,執(zhí)行對相應(yīng)用戶訪問權(quán)限表的類似查找。在否定的檢查結(jié)果的情況下,類似的錯誤消息570被發(fā)送到請求用戶。否則,在步驟540中,由會話控制部件20來執(zhí)行對該請求的適當(dāng)物理會話代理的搜索。步驟540的細(xì)節(jié)在圖5B中進(jìn)行了描述首先在步驟541,搜索用于請求的適當(dāng)任務(wù),即物理會話代理。為了這樣做,該請求與請求ID相關(guān)聯(lián),所述請求ID標(biāo)識對于與該請求相關(guān)的服務(wù)器應(yīng)用,并且如前參照圖4所描述的那樣,執(zhí)行對于適當(dāng)物理會話代理48的查找。
更詳細(xì)地,會話控制實例查找分配給所述會話的邏輯會話代理。在下一步驟中,會話控制實例查找當(dāng)前映射到邏輯會話代理的物理會話代理。如果任務(wù)已經(jīng)被定義并且對于輸入請求來說適當(dāng)且可用,則通過檢查來執(zhí)行檢查步驟542。在任務(wù)失效的情況下,該任務(wù)在步驟546中恢復(fù)。接著,在后續(xù)步驟547中,相應(yīng)的會話(合并會話)是不可用的并且因此執(zhí)行重試。
在檢查步驟542發(fā)現(xiàn)用于訪問被請求的服務(wù)器應(yīng)用的適當(dāng)任務(wù)的情況下,下一個檢查步驟543檢查在會話控制部件20和被請求的服務(wù)器應(yīng)用之間當(dāng)前是否已經(jīng)存在合并會話。如果該會話存在,則在步驟545中,該會話進(jìn)入輸入請求,也就是說,通過將該請求放入預(yù)先存在的、發(fā)往這一服務(wù)器應(yīng)用的請求序列,該請求被轉(zhuǎn)發(fā)到該服務(wù)器應(yīng)用。然后,再回到圖5A,如果請求序列被處理使得當(dāng)前請求可被執(zhí)行,則這一請求就在步驟550中執(zhí)行。服務(wù)器應(yīng)用接著在步驟560中生成對這一請求的響應(yīng),通過使用對該請求自身曾使用過的相同合并會話,將該響應(yīng)轉(zhuǎn)發(fā)到請求客戶機(jī)。當(dāng)然,可以實現(xiàn)對于請求和相應(yīng)的響應(yīng)使用不同會話的異步變體,其中控制實例用信號通知客戶機(jī)對于具有相應(yīng)客戶機(jī)令牌的在前的客戶機(jī)請求的響應(yīng)存在。
回來參考步驟543,在步驟543的NO情況下,在步驟544建立新的物理會話以使得請求能夠被轉(zhuǎn)到服務(wù)器應(yīng)用。接著,同樣執(zhí)行步驟550和560。當(dāng)在步驟544中建立新的物理會話時,通過使用先前提到的、隱含地和透明地連接至發(fā)起請求的客戶機(jī)的代理用戶,建立到服務(wù)器應(yīng)用的連接。
進(jìn)一步參考圖6,將更詳細(xì)地描述根據(jù)本發(fā)明的用于建立合并會話的一些實現(xiàn)細(xì)節(jié)和變體可以實現(xiàn)基本用于接收客戶機(jī)請求和向請求發(fā)布響應(yīng)的一個或多個進(jìn)程。另外,代理用戶口令由會話代理20管理,會話代理20優(yōu)選地作為與作為服務(wù)器應(yīng)用的漏(drain)相關(guān)的請求的源??蛇x地,代理用戶口令也可以作為客戶機(jī)請求的一部分被實現(xiàn)和需要。
在應(yīng)用服務(wù)器上還可以實現(xiàn)一個或多個進(jìn)程。例如,一個進(jìn)程可被用于執(zhí)行圖5中提到的“是”分支,即常規(guī)工作流,而一個或多個進(jìn)程可被用于實現(xiàn)“否”分支,即錯誤處理。
另外,代理用戶可被授權(quán)一次并且只要應(yīng)用服務(wù)器未定義超時就會被接受,或者可在服務(wù)器上執(zhí)行對輸入請求進(jìn)行的重復(fù)授權(quán)檢查。在第一種情況下,由應(yīng)用服務(wù)器生成令牌,令牌被用于會話控制部件20的進(jìn)一步請求。另外,認(rèn)證部件可以是服務(wù)器應(yīng)用的一部分,或者可以由連接在部件20和服務(wù)器應(yīng)用之間的獨立認(rèn)證工具來實現(xiàn)。
通過進(jìn)一步參考圖7并特別地參考圖5A中的檢查步驟520,更詳細(xì)地描述了不同客戶機(jī)到不同合并會話之間的映射。圖7左側(cè)顯示了輸入請求,其被按照以上參考圖5所描述的那樣由會話控制部件進(jìn)行處理。圖7中描述的邏輯在該會話控制部件之內(nèi)或以預(yù)先連接到該會話控制部件的形式所最好地實現(xiàn)。首先,分析輸入請求以產(chǎn)生發(fā)布過請求的軟件部件或用戶(用戶ID和口令)。
在圖7中,說明了將客戶機(jī)映射至特定會話的若干不同可能性在上面的情況下,允許客戶機(jī)A參與到會話70中。這在該圖上部進(jìn)行了描繪。對于給定客戶機(jī)B相同的情況也成立。另外,可以將組G定義為包括兩個不同的客戶機(jī)。這在圖的底部進(jìn)行了描繪。這種分組還可被修改,以包括第二個或更多的組G’。
在左側(cè),列出了允許客戶機(jī)A和B或者客戶機(jī)組G來執(zhí)行的特定的請求R1...R4。取決于服務(wù)器應(yīng)用的性能或取決于命名方案,有可能將R1...R4作為單獨請求的類來處理。所以,取決于具體的要求,請求授權(quán)的粒度可細(xì)可粗。
應(yīng)當(dāng)注意,代理用戶的訪問權(quán)限總體上必須足夠,以便執(zhí)行在輸入請求R1...R4中定義的命令。
例如,R4示例性地顯示為不可執(zhí)行,因為任何客戶機(jī)(A、B或組G)都不被允許這樣做。因此,總之,取決于安全需要的具體實現(xiàn),提供對于使用特定的合并會話的特定的或更通用的允許。同樣,可以提供對于對特定請求的服務(wù)的特定的或更通用的允許。另外,可定義對特定會話或請求的通用的訪問拒絕。
本發(fā)明可在硬件、軟件或硬件和軟件的結(jié)合中實現(xiàn)。根據(jù)本發(fā)明的會話合并工具可以在一個計算機(jī)系統(tǒng)中以集中式方式實現(xiàn),或者以不同單元跨若干互連計算機(jī)系統(tǒng)分布的分布式方式實現(xiàn)。適于執(zhí)行這里描述的方法的任何類型的計算機(jī)系統(tǒng)或其它裝置都是適合的。硬件和軟件的典型組合可以是具有計算機(jī)程序的通用計算機(jī)系統(tǒng),所述計算機(jī)程序在被加載和執(zhí)行時控制所述計算機(jī)系統(tǒng)以使其執(zhí)行這里描述的方法。
本發(fā)明也可被包含在計算機(jī)程序產(chǎn)品中,該產(chǎn)品包括能夠?qū)崿F(xiàn)這里描述的方法的所有特征,并且當(dāng)其被加載于計算機(jī)系統(tǒng)中時能夠執(zhí)行這些方法。
本上下文中的計算機(jī)程序裝置或計算機(jī)程序意指采用任何語言、代碼或符號的任何表述的一組指令,所述指令意在使得具有信息處理能力的系統(tǒng)直接地或在完成以下兩者之一或兩者之后執(zhí)行特定的功能a)轉(zhuǎn)換為另一種語言、代碼或符號;b)以不同的材料形式進(jìn)行復(fù)制。
權(quán)利要求
1.一種用于在電子網(wǎng)絡(luò)中管理客戶機(jī)-服務(wù)器通信的方法,其中對于多個客戶機(jī)需要相應(yīng)的與客戶機(jī)有關(guān)的客戶機(jī)認(rèn)證和授權(quán)以訪問服務(wù)器應(yīng)用,其特征在于以下步驟a)在會話控制部件(20)中,獨立于所述服務(wù)器應(yīng)用來管理多個客戶機(jī)的所述客戶機(jī)認(rèn)證數(shù)據(jù)和授權(quán)數(shù)據(jù),用于對所述服務(wù)器應(yīng)用進(jìn)行經(jīng)授權(quán)的訪問,b)接收(510)指向?qū)λ龇?wù)器應(yīng)用之一的訪問的輸入客戶機(jī)請求,c)檢查(520、530)所述客戶機(jī)請求的所述認(rèn)證和/或授權(quán),d)保持(540)和單個服務(wù)器應(yīng)用有關(guān)的單個代理用戶,其中所述代理用戶代表了多個客戶機(jī)及其對于連接和使用所述相應(yīng)單個服務(wù)器應(yīng)用的授權(quán),e)對于指向?qū)Ω鱾€相同單個服務(wù)器應(yīng)用的訪問的多個已允許的客戶機(jī)請求,使用所述代理用戶來操作單個會話,f)在所述單個會話內(nèi)順序地處理(550、560)所述請求。
2.根據(jù)權(quán)利要求1所述的方法,其中,通過生成代表多個N會話對象(40)的邏輯會話代理部分(44)以及與此相關(guān)聯(lián)的物理會話代理部分(48)并運行會話控制實例來實現(xiàn)所述單個代理用戶功能,所述會話控制實例通過實現(xiàn)所述會話控制部件(20)的硬件的操作系統(tǒng)提供的相應(yīng)資源來執(zhí)行所請求的服務(wù)器應(yīng)用訪問。
3.根據(jù)權(quán)利要求1所述的方法,其中,對于包括不同帶寬容量或不同安全定義的單個或多個應(yīng)用服務(wù)器,建立多個合并會話(28)。
4.根據(jù)權(quán)利要求2所述的方法,其中對于所述會話對象(28)應(yīng)用邏輯名稱,對所述邏輯名稱的選擇是在語義上有意義的,并且其中提供了這些邏輯名稱到服務(wù)器應(yīng)用ID的映射。
5.一種用于在電子網(wǎng)絡(luò)中管理客戶機(jī)-服務(wù)器的計算機(jī)系統(tǒng),其中對于多個客戶機(jī)需要相應(yīng)的與客戶機(jī)有關(guān)的客戶機(jī)認(rèn)證和授權(quán)以訪問服務(wù)器應(yīng)用,所述系統(tǒng)具有a)會話控制部件(20),用于獨立于所述服務(wù)器應(yīng)用來管理多個客戶機(jī)的客戶機(jī)認(rèn)證數(shù)據(jù)和授權(quán)數(shù)據(jù),用于對所述服務(wù)器應(yīng)用進(jìn)行經(jīng)授權(quán)的訪問,以及用于保持(540)和單個服務(wù)器應(yīng)用有關(guān)的單個代理用戶功能(28),b)排隊裝置(22),用于在單個會話內(nèi)順序地處理(550、560)所述請求。
6.一種存儲在計算機(jī)可用媒體上的計算機(jī)程序產(chǎn)品,所述計算機(jī)可用媒體包括計算機(jī)可讀程序裝置,當(dāng)所述計算機(jī)程序產(chǎn)品在計算機(jī)上執(zhí)行時,所述裝置用于使所述計算機(jī)執(zhí)行權(quán)利要求1到4中任意一項的方法。
全文摘要
本發(fā)明涉及用于在電子網(wǎng)絡(luò)中管理客戶機(jī)-服務(wù)器通信的方法和系統(tǒng)。根據(jù)本發(fā)明的方法包括a)在會話控制部件(20)中,獨立于所述服務(wù)器應(yīng)用來管理多個客戶機(jī)的客戶機(jī)認(rèn)證數(shù)據(jù)和授權(quán)數(shù)據(jù),用于對所述服務(wù)器應(yīng)用進(jìn)行經(jīng)授權(quán)的訪問;b)接收指向?qū)λ龇?wù)器應(yīng)用之一的訪問的輸入客戶機(jī)請求;c)檢查所述客戶機(jī)請求的認(rèn)證和/或授權(quán);d)保持(540)和單個服務(wù)器應(yīng)用有關(guān)的單個代理用戶,其中所述代理用戶代表了多個客戶機(jī)及其用于連接和使用所述相應(yīng)單個服務(wù)器應(yīng)用的授權(quán);e)對于指向?qū)Ω鱾€相同單個服務(wù)器應(yīng)用的訪問的多個已允許的客戶機(jī)請求,使用所述代理用戶來操作單個會話;以及f)在所述單個會話內(nèi)順序地處理所述請求。
文檔編號H04L29/06GK1937608SQ20061009228
公開日2007年3月28日 申請日期2006年6月16日 優(yōu)先權(quán)日2005年9月22日
發(fā)明者J·霍爾茨, S·安克萊, W·舒佩, R·海貝爾 申請人:國際商業(yè)機(jī)器公司