專利名稱:用于從多個(gè)異類數(shù)據(jù)源提供信息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及目錄服務(wù)。特別地,本發(fā)明涉及一種用于提供對(duì)由多個(gè) 異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪問的系統(tǒng)和方法。
背景技術(shù):
"白頁"應(yīng)用是指一類計(jì)算^L程序,其提供與以打印形式來分發(fā)的 白頁電話目錄所提供的相類似的功能。通常,白頁應(yīng)用可以基于請(qǐng)求提 供名字、地址和/或電話號(hào)碼。白頁應(yīng)用還可以提供另外的信息。例如, 白頁應(yīng)用可以指定文件服務(wù)、打印服務(wù)以及可以用目錄形式來呈現(xiàn)的其 它信息。除了可以常駐在白頁應(yīng)用自身內(nèi)的信息以外,在某些情況下從獨(dú)立 于白頁應(yīng)用的多個(gè)其他異類數(shù)據(jù)源中提取信息將是有益的。遺憾的是, 當(dāng)今的白頁應(yīng)用時(shí)常與其它數(shù)據(jù)源(例如,傳統(tǒng)數(shù)據(jù)源、電子數(shù)據(jù)表文 件,等等)不兼容,并且因此可能不能夠訪問被包含于它們中的數(shù)據(jù)。 此外,白頁應(yīng)用還可能與需要白頁應(yīng)用所提供的信息的第三方應(yīng)用不兼 容。例如,這種第三方應(yīng)用可能不根據(jù)從白頁應(yīng)用中訪問數(shù)據(jù)所需要的 目錄訪問協(xié)議來進(jìn)行通信。因此,為了恰當(dāng)?shù)貙?dāng)今的白頁應(yīng)用集成進(jìn) 現(xiàn)有信息系統(tǒng),可能需要極大的資源以執(zhí)行對(duì)現(xiàn)有數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換并培 訓(xùn)員工以使用訪問并處理這種數(shù)據(jù)的新應(yīng)用。發(fā)明內(nèi)容本發(fā)明涉及提供對(duì)由多個(gè)異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪問。本發(fā)明 的一個(gè)實(shí)施例可以包括一種提供對(duì)由多個(gè)異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪 問的方法。該方法可以包括提供至少第一應(yīng)用程序接口 (API)以支 持從多個(gè)異類數(shù)據(jù)源中檢索數(shù)據(jù),提供從其公開來自該異類數(shù)據(jù)源的至 少一個(gè)中的數(shù)據(jù)的目錄,以及響應(yīng)于從應(yīng)用接收到針對(duì)數(shù)據(jù)的請(qǐng)求,確定是否可經(jīng)由該目錄獲得所請(qǐng)求的數(shù)據(jù)。該方法還包括響應(yīng)于可經(jīng)由 該目錄荻得該數(shù)據(jù),自動(dòng)地提供所請(qǐng)求的數(shù)據(jù);或者響應(yīng)于不能經(jīng)由該 目錄獲得該數(shù)據(jù),確定是否可獲得至少第二數(shù)據(jù)源以提供所請(qǐng)求的數(shù)據(jù)。本發(fā)明的另一實(shí)施例可以包括一種方法,該方法包括提供至少第 一應(yīng)用程序接口 (API)以支持從多個(gè)異類數(shù)據(jù)源中檢索數(shù)據(jù),提供從 其公開來自異類數(shù)據(jù)源的至少一個(gè)中的數(shù)據(jù)的目錄,以及響應(yīng)于可經(jīng)由 該目錄獲得所請(qǐng)求的數(shù)據(jù),自動(dòng)地提供所請(qǐng)求的數(shù)據(jù)。本發(fā)明的又一實(shí)施例可以包括一種機(jī)器可讀存儲(chǔ)裝置,該存儲(chǔ)裝置 被編程以使機(jī)器執(zhí)行此處所描述的各種步驟和/或功能。
圖1是說明了根據(jù)本發(fā)明的一方面的系統(tǒng)的框圖; 圖2是說明了根據(jù)本發(fā)明的 一 方面的方法的流程圖。
具體實(shí)施方式
如本領(lǐng)域的普通技術(shù)人員將明白的那樣,本發(fā)明可以被實(shí)現(xiàn)為 一種 方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可以采用的形式有全部 是硬件的實(shí)施方式,全部是包括固件、常駐軟件、微碼等的軟件實(shí)施方 式,或者結(jié)合軟件方面和硬件方面的實(shí)施方式,其在此可以都統(tǒng)稱為"電 路"、"模塊"或"系統(tǒng)"。此外,本發(fā)明可以采用可從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)中進(jìn)行訪 問的計(jì)算機(jī)程序產(chǎn)品的形式,其中所述介質(zhì)提供了由計(jì)算機(jī)或任何指令 執(zhí)行系統(tǒng)使用的或結(jié)合計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用的程序代碼。出 于這種描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可以包含、存 儲(chǔ)、通信、傳播或傳送由指令執(zhí)行系統(tǒng)、設(shè)備或器件使用的或結(jié)合指令 執(zhí)行系統(tǒng)、設(shè)備或器件使用的任何設(shè)備??梢岳萌魏魏线m的計(jì)算機(jī)可用或計(jì)算機(jī)可讀的介質(zhì)。該介質(zhì)可以 是例如但是不限于電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或者設(shè)備
或器件)、或者傳播介質(zhì)。示例性的計(jì)算機(jī)可讀介質(zhì)的非窮舉的列表可以 包括具有一個(gè)或多個(gè)導(dǎo)線的電連接、光纖、諸如磁帶、可移除計(jì)算機(jī)磁 盤、便攜式計(jì)算機(jī)磁盤、硬盤、硬磁盤之類的磁存儲(chǔ)器件、諸如包括壓縮盤-只讀存儲(chǔ)器(CD-ROM )、壓縮盤-讀/寫存儲(chǔ)器(CD-R/W)或 DVD的光盤之類的光存儲(chǔ)介質(zhì)、或者包括但不限于隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)或可擦寫可編程只讀存儲(chǔ)器(EPROM 或閃存)的半導(dǎo)體或固態(tài)存儲(chǔ)器。計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)還可以包括諸如那些支持因特網(wǎng)或內(nèi) 聯(lián)網(wǎng)的傳輸介質(zhì)之類的傳輸介質(zhì)。另外,計(jì)算機(jī)可用介質(zhì)可包括在基帶 中或作為載波的 一部分隨其包含了計(jì)算機(jī)可用程序代碼的被傳播的數(shù)據(jù) 信號(hào)??墒褂萌魏芜m宜的介質(zhì)來傳輸計(jì)算機(jī)可用程序代碼,該適宜的介 質(zhì)可以包括但不限于因特網(wǎng)、導(dǎo)線、光纖、電纜、RF,等等。在另一方面,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是程序被打印在其 上的紙或另外的合適的介質(zhì),因?yàn)槌绦蚩梢越?jīng)由例如對(duì)紙或其它介質(zhì)的 光學(xué)掃描而被電子地捕獲,接著在必要時(shí)進(jìn)行編譯、解釋、或其他情況 下以合適的方式進(jìn)行處理,并且接著被存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中??梢杂弥T如Java、 Smalltalk、 C+十等等之類的面向?qū)ο蟮木幊陶Z言 來編寫用于實(shí)現(xiàn)本發(fā)明的操作的計(jì)算機(jī)程序代碼。然而,用于實(shí)現(xiàn)本發(fā) 明的操作的計(jì)算機(jī)程序代碼還可以用諸如"C,,編程語言或類似的編程 語言之類的常規(guī)的過程編程語言來編寫。程序代碼可以整個(gè)地在用戶的 計(jì)算機(jī)上執(zhí)行、作為獨(dú)立的軟件包部分地在用戶的計(jì)算機(jī)上執(zhí)行、部分 在用戶的計(jì)算機(jī)上執(zhí)行且部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者整個(gè)地在遠(yuǎn)程 計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一情形下,遠(yuǎn)程計(jì)算機(jī)可以通過局域網(wǎng) (LAN)或廣域網(wǎng)(WAN)連接到用戶的計(jì)算機(jī),或者可以連接到外部 計(jì)算機(jī)(例如,通過使用因特網(wǎng)服務(wù)提供商的因特網(wǎng))。適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括通過系統(tǒng)總 線直接地或間接地耦合到存儲(chǔ)器單元的至少一個(gè)處理器。該存儲(chǔ)器單元 可以包括在實(shí)際執(zhí)行程序代碼期間所使用的本地存儲(chǔ)器、大容量存儲(chǔ)裝 置、高速緩存存儲(chǔ)器,所述高速緩存存儲(chǔ)器提供臨時(shí)存儲(chǔ)至少某些程序 代碼以減少在執(zhí)行期間必須從大容量存儲(chǔ)裝置中取回代碼的次數(shù)。輸入/輸出或I/O器件(包括但不限于鍵盤、顯示器、指向器件等等) 可以直接或者通過中間1/0控制器耦合到該系統(tǒng)。網(wǎng)絡(luò)適配器也可以被耦合到該系統(tǒng)以使該數(shù)據(jù)處理系統(tǒng)變成通過中間專用網(wǎng)絡(luò)或公共網(wǎng)絡(luò)耦 合到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)器件。調(diào)制解調(diào)器、線纜調(diào) 制解調(diào)器、以及因特網(wǎng)卡僅是當(dāng)前可獲得的網(wǎng)絡(luò)適配器類型中的一些類型。下面參考根據(jù)本發(fā)明的實(shí)施例的方法、設(shè)備(系統(tǒng))和計(jì)算機(jī)程序 產(chǎn)品的流程說明和/或框圖來描述本發(fā)明。應(yīng)當(dāng)理解,流程說明和/或框 圖中的每個(gè)框、以及流程說明和/或框圖中的框的組合可以通過計(jì)算機(jī)程 序指令來實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì) 算機(jī)、或其它可編程數(shù)據(jù)處理設(shè)備的處理器以便生產(chǎn)機(jī)器,從而經(jīng)由計(jì) 算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備的處理器來執(zhí)行這些指令時(shí),這些指令 創(chuàng)建用于實(shí)現(xiàn)在流程圖和/或框圖的 一 個(gè)框或多個(gè)框中所指定的功能/動(dòng) 作的裝置。這些計(jì)算機(jī)程序指令還可以被存儲(chǔ)在可以指導(dǎo)計(jì)算機(jī)或其它可編程 數(shù)據(jù)處理設(shè)備按特定的方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,從而存儲(chǔ)在計(jì) 算機(jī)可讀存儲(chǔ)器中的指令生產(chǎn)出包括指令裝置的制造品,該指令裝置實(shí) 現(xiàn)在流程圖和/或框圖的 一 個(gè)框或多個(gè)框中所指定的功能/動(dòng)作。該計(jì)算機(jī)程序指令還可被加載進(jìn)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理設(shè)備以使得在該計(jì)算機(jī)或其它可編程設(shè)備上執(zhí)行一 系列操作步驟以生產(chǎn)出計(jì) 算機(jī)所實(shí)現(xiàn)的處理,從而在該計(jì)算機(jī)或其它可編程設(shè)備上執(zhí)行的這些指 令提供用于實(shí)現(xiàn)在流程圖和/或框圖的 一 個(gè)框或多個(gè)框中所指定的功能/ 動(dòng)作的步驟。本發(fā)明涉及一種用于提供對(duì)由多個(gè)異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪問 的方法和系統(tǒng)。此外,這樣的數(shù)據(jù)訪問可以被提供給請(qǐng)求這種數(shù)椐的多 個(gè)不同應(yīng)用。因此,當(dāng)今的數(shù)據(jù)目錄可以被實(shí)現(xiàn)為這樣的信息系統(tǒng),其 利用其他類型的數(shù)據(jù)結(jié)構(gòu)而不需要大量的數(shù)據(jù)轉(zhuǎn)換或員工培訓(xùn)。圖1是說明了根據(jù)本發(fā)明的一方面的系統(tǒng)100的框圖。系統(tǒng)100可 以包括目錄服務(wù)105,其可以包括支持?jǐn)?shù)據(jù)檢索的多個(gè)應(yīng)用程序接口 (API) 110-1、 110-2、 110-3。在一種情況中,目錄服務(wù)105可以被 實(shí)現(xiàn)為Java檔案文件。Java檔案文件可以被公共地共享并且被容易地再 用于在Java2企業(yè)環(huán)境中開發(fā)和運(yùn)行分布式多等級(jí)架構(gòu)Java應(yīng)用。API 110-1可以被配置成從目錄115中檢索數(shù)據(jù)。目錄115可以提 供從由諸如數(shù)據(jù)源120- 1、120-2和120-3之類的多個(gè)異類數(shù)據(jù)源120 所公開(expose)的信息產(chǎn)生的元數(shù)據(jù)。這種數(shù)據(jù)源的例子可以包括但 不限于目錄、數(shù)據(jù)庫(kù)、電子數(shù)據(jù)表、協(xié)作系統(tǒng)、輕量級(jí)目錄訪問協(xié)議 (LDAP)服務(wù)器,用于人力資源、客戶關(guān)系管理和企業(yè)資源計(jì)劃的應(yīng) 用,以及其它公司應(yīng)用。同樣,數(shù)據(jù)源120可以是簡(jiǎn)檔提供者,因?yàn)樗?們提供人員的簡(jiǎn)檔(例如,個(gè)人信息)或其它簡(jiǎn)檔信息。如此處所使用 的,這種信息被稱為"元數(shù)據(jù)"。在一種情況中,來自數(shù)據(jù)源120-1、 120-2和120-3的數(shù)據(jù)可以 被自動(dòng)地提取并存儲(chǔ)進(jìn)目錄115。在這種情況中,可以以周期的間隔或 者響應(yīng)于事件或請(qǐng)求來執(zhí)行對(duì)目錄115的更新。可以根據(jù)X.500 inetOrgPerson LDAP對(duì)象類在目錄115中維護(hù)數(shù)據(jù)。可以使用IBM Tivoli 目錄集成器(IBM和Tivoli是國(guó)際商業(yè) 機(jī)器公司在美國(guó)、其它國(guó)家或者同時(shí)在美國(guó)和其它國(guó)家的商標(biāo))來執(zhí)行 自動(dòng)化的數(shù)據(jù)提取??梢允褂肁TOM饋送來從目錄115公開數(shù)據(jù)。ATOM 饋送是一種依照Atom發(fā)布協(xié)議的通信鏈路,該協(xié)議是用于創(chuàng)建和更新 HTTP資源的基于超文本傳送協(xié)議(HTTP)的協(xié)議。在另一情況中,目錄115可以是虛擬目錄。如此處所使用,虛擬目 錄是用于目錄協(xié)議的服務(wù)器并且自身不存儲(chǔ)數(shù)據(jù)。作為替代,虛擬目錄 可以動(dòng)態(tài)地將它所接收的請(qǐng)求翻譯成其它協(xié)議或數(shù)據(jù)模型中的操作,并 且將這些操作傳輸給一個(gè)或多個(gè)數(shù)據(jù)源120-1、 120-2、 120-3。這種 請(qǐng)求可以被處理以實(shí)時(shí)地從數(shù)據(jù)源120-1、 120-2、 120-3中提取數(shù)據(jù)。 如此處所使用,術(shù)語"實(shí)時(shí)"意味著用戶感覺足夠迅速或使處理器能跟 上某個(gè)外部處理的處理響應(yīng)的級(jí)別。API 110-2、 110-3可以被配置成支持從特定類型的數(shù)據(jù)源120中
檢索信息。例如,第二 API110-2可以被配置成支持檢索由數(shù)據(jù)源120 -4所公開的信息,而第三API 110 - 3可以被配置成支持檢索由數(shù)據(jù)源 120-5所公開的信息。在一種情況中,數(shù)據(jù)源120-4可以是虛擬成員 管理器(VMM)而API 110-2可以是VMM API。類似地,數(shù)據(jù)源120 -5可以是LDAP服務(wù)器而API 110-3可以是Java命名和目錄接口 (JNDI) API。 API 110-1可以是HTTP API,其實(shí)現(xiàn)以一致的API的形 式從異類數(shù)據(jù)源提供統(tǒng) 一 的簡(jiǎn)檔數(shù)據(jù)的遠(yuǎn)程服務(wù)??梢曰谥骺?hosting)環(huán)境和由應(yīng)用服務(wù)器所提供的用戶知識(shí)庫(kù) 的配置設(shè)置來動(dòng)態(tài)地確定API 110選擇。例如,雖然JNDI API 110-3 可以被用于標(biāo)準(zhǔn)的應(yīng)用服務(wù)器環(huán)境中,但HTTPAPI 110-1可能是優(yōu)選 的。類似地,VMM API 110-2可以被用于指定的WebSphere 應(yīng)用服 務(wù)器環(huán)境中(WebSphere是國(guó)際商業(yè)機(jī)器公司在美國(guó)、其它國(guó)家或者同 時(shí)在美國(guó)和其它國(guó)家的商標(biāo))。目錄服務(wù)105還可以提供覆蓋機(jī)制以允許 應(yīng)用旁路對(duì)API選擇實(shí)施的自動(dòng)檢測(cè)。圖2是說明根據(jù)本發(fā)明的一方面的方法200的流程圖。參考圖1和 圖2,該處理可以始于這樣的狀態(tài),在該狀態(tài)中已經(jīng)使得目錄服務(wù)105 可供一個(gè)或多個(gè)應(yīng)用13(H吏用。在步驟205處,目錄月良務(wù)105可以從應(yīng) 用130-1 4妄收針對(duì)l史據(jù)的請(qǐng)求125-1。目錄服務(wù)105還可以從其它應(yīng)用 接收針對(duì)數(shù)據(jù)的請(qǐng)求。例如,目錄服務(wù)105可以從應(yīng)用130-2接收請(qǐng)求 125-2。在一種情況中,請(qǐng)求125可以依照HTTP協(xié)議進(jìn)行通信。例如,請(qǐng) 求125可以被傳輸?shù)椒峙浣o目錄服務(wù)105的特定的統(tǒng)一資源定位符 (URL)。在另一種情況中,請(qǐng)求125還可以依照諸如ATOM、 JSON、 RSS和/或XCard之類的其他合適的協(xié)議進(jìn)行通信。參考判決框210,如果指定的API 110被請(qǐng)求,則在步驟215處, 目錄服務(wù)105可以嘗試使用所請(qǐng)求的API 110來訪問所請(qǐng)求的數(shù)據(jù)。例 如,如果請(qǐng)求125 - 1請(qǐng)求用API 110-3訪問所請(qǐng)求的數(shù)據(jù),則目錄服 務(wù)105可以動(dòng)態(tài)地將請(qǐng)求指向與API 110-3相關(guān)聯(lián)的URL。參考判決 框220,如果所請(qǐng)求的數(shù)據(jù)可獲得,例如在數(shù)據(jù)源120-5處,則處理可 以前進(jìn)到步驟225并且目錄服務(wù)105可以使用所請(qǐng)求的API110 - 3來檢 索所請(qǐng)求的數(shù)據(jù)135。接著,目錄服務(wù)105可以將所請(qǐng)求的數(shù)據(jù)135提 供給發(fā)起請(qǐng)求125-1的應(yīng)用130-1。然而,如果使用所請(qǐng)求的API 110-3 不能獲得所請(qǐng)求的數(shù)據(jù),則在步驟230處可以傳輸消息給應(yīng)用130-1, 指示經(jīng)由所請(qǐng)求的API 110-3不能獲得該數(shù)據(jù)。再次參考判決框210,如果沒有請(qǐng)求指定的API 110,則在步驟235 處,目錄服務(wù)105可以選擇第一API 110,例如可以選擇API 110-1。 注意,API 110-1可以被動(dòng)態(tài)地選擇,將所述請(qǐng)求指向與API 110-1 相關(guān)聯(lián)的URL。在API110-1支持經(jīng)由目錄115檢索數(shù)據(jù)并且目錄115 是虛擬目錄的情況中,API 110- 1可以被目錄月良務(wù)105訪問以生成恰當(dāng) 的請(qǐng)求140給目錄115。接著,目錄115可以動(dòng)態(tài)地將請(qǐng)求140翻譯成 合適的協(xié)議或數(shù)據(jù)模型中的操作145,并且將該操作傳輸給具有所請(qǐng)求 的數(shù)據(jù)的數(shù)據(jù)源120,例如數(shù)據(jù)源120-1。作為替代,在所請(qǐng)求的數(shù)據(jù) 可能被存儲(chǔ)在目錄115自身中的情況中,目錄服務(wù)105可以嘗試使用合 適的操作從目錄115中提取數(shù)據(jù)。參考判決框245,如果所請(qǐng)求的數(shù)據(jù)是可獲得的,則在步驟225處 可以檢索數(shù)據(jù)。例如,如果目錄115是虛擬目錄,則可以從數(shù)據(jù)源120 -1中提取數(shù)據(jù)135并且將其傳輸給應(yīng)用130-1。然而,如果數(shù)據(jù)被存 儲(chǔ)在目錄115自身中,則目錄服務(wù)105可以從目錄115中提取數(shù)據(jù)135 并將所請(qǐng)求的數(shù)據(jù)135傳輸給應(yīng)用130-1。如果不能從與目錄115相關(guān)聯(lián)的數(shù)據(jù)源120-1、 120-2、 120-3 中獲得所請(qǐng)求的數(shù)據(jù),則處理可以前進(jìn)到判決框250,并且目錄服務(wù)105 可以確定是否可以獲得另一 API 110。如果不能獲得,則在步驟230處, 目錄服務(wù)105可以提供指示給應(yīng)用130- l,指示不能獲得所請(qǐng)求的數(shù)據(jù)。 如果存在另一可以獲得的API,則在步驟255處,目錄服務(wù)105可以選 擇另一API,例如API 110-2。處理可以返回到步驟240并且目錄服務(wù) 105可以嘗試使用API 110-2、例如從數(shù)據(jù)源120 - 4中訪問數(shù)據(jù)。再次參考判決框245,如果不能從數(shù)據(jù)源120-4中獲得所請(qǐng)求的數(shù) 據(jù),則處理可以前進(jìn)到判決框250并且如果可以獲得另一 API,例如API
110-3,則在步驟255處目錄服務(wù)105可以選擇API 110-3。再次返回 步驟240,目錄服務(wù)105可以嘗試從數(shù)據(jù)源120 - 5中訪問數(shù)據(jù)。如在步 驟225中所示出,處理可以繼續(xù),直到數(shù)據(jù)已經(jīng)被才企索到并被提供給應(yīng) 用為止,或者直到?jīng)]有任何更多的還未曾被嘗試用于訪問所請(qǐng)求的數(shù)據(jù) 的API110為止。在那種情況下,處理可以前進(jìn)到步驟230并且指示不 能獲得所請(qǐng)求的數(shù)據(jù)。附圖中的流程圖和框圖說明了根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方 法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的架構(gòu)、功能和操作。在這點(diǎn)上,流程 圖或框圖中的每個(gè)框可表示代代碼的模塊、段或一部分,其包括一個(gè)或 多個(gè)可^L行指令,用于實(shí)現(xiàn)所指定的邏輯功能。還應(yīng)當(dāng)理解,在某些替 代性的實(shí)現(xiàn)中,在框中所注明的功能可按附圖中所注明的順序以外的順 序出現(xiàn)。例如,基于所涉及的功能,被連續(xù)示出的兩個(gè)框?qū)嶋H上可能基 本上同時(shí)被執(zhí)行,或者這些框有時(shí)可按相反的順序^^皮執(zhí)行。還將注意, 框圖和/或流程圖說明中的每個(gè)框、框圖和/或流程圖說明中的框的組合 可以由執(zhí)行指定的功能或動(dòng)作的基于專用硬件的系統(tǒng)或者專用硬件和計(jì) 算機(jī)指令的組合來實(shí)現(xiàn)。此處所使用的術(shù)語僅是用于描述特定實(shí)施例的目的,并且不旨在限 制本發(fā)明。如此處所使用,單數(shù)形式"一"、"一個(gè)"和"該,,還旨在包 括復(fù)數(shù)形式,除非上下文清楚地另有說明。還將理解,當(dāng)在本說明書中 使用術(shù)語"包括"和/或"包含"時(shí),其指示存在所述特征、整數(shù)、步驟、 操作、單元和/或部件,而不排除存在或添加一個(gè)或多個(gè)其它特征、整數(shù)、 步驟、操作、單元、部件和/或它們的集合。以下權(quán)利要求中的對(duì)應(yīng)的結(jié)構(gòu)、材料、動(dòng)作以及所有裝置或步驟加 功能單元的等價(jià)物旨在包括,用于與所明確要求的其它單元結(jié)合來執(zhí)行 功能的任何結(jié)構(gòu)、材料或動(dòng)作。已經(jīng)出于說明和描述的目的給出了對(duì)本 發(fā)明的描述,但是其不是旨在進(jìn)行窮舉或以所公開的形式來限制本發(fā)明。 本領(lǐng)域的普通技術(shù)人員將明白,在不偏離本發(fā)明的范圍和精神的條件下 可以做出許多修改和變型。實(shí)施例的選擇和描述是為了最好地解釋本發(fā) 明的原理和實(shí)際應(yīng)用,并使本領(lǐng)域的普通技術(shù)人員能夠針對(duì)具有各種修
改的各種實(shí)施例適合于所考慮的特定用途來理解本發(fā)明。因此已經(jīng)通過參考本發(fā)明的各實(shí)施例詳細(xì)地描述了本申請(qǐng)的發(fā)明, 顯然在不偏離所附權(quán)利要求中所定義的本發(fā)明的范圍的條件下,可以做 出修改和變型。
權(quán)利要求
1.一種提供對(duì)由多個(gè)異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪問的方法,包括提供至少第一應(yīng)用程序接口(API)以支持從多個(gè)異類數(shù)據(jù)源中檢索數(shù)據(jù);提供一種目錄,從所述目錄公開來自所述異類數(shù)據(jù)源的至少一個(gè)中的數(shù)據(jù);響應(yīng)于從應(yīng)用接收到針對(duì)數(shù)據(jù)的請(qǐng)求,確定是否可經(jīng)由所述目錄獲得所述所請(qǐng)求的數(shù)據(jù);以及響應(yīng)于可經(jīng)由所述目錄獲得所述數(shù)據(jù),自動(dòng)地提供所述所請(qǐng)求的數(shù)據(jù),或者響應(yīng)于不能經(jīng)由所述目錄獲得所述數(shù)據(jù),確定是否可獲得至少第二數(shù)據(jù)源以提供所述所請(qǐng)求的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的方法,其中提供所述目錄包括提供虛擬 目錄。
3. 根據(jù)權(quán)利要求1所述的方法,其中提供所述所請(qǐng)求的數(shù)據(jù)包括 提供元數(shù)據(jù)。
4. 根據(jù)權(quán)利要求1所述的方法,其中提供所述第一 API包括提供 支持從經(jīng)由所述目錄來檢索所請(qǐng)求的數(shù)據(jù)的API,還包括提供支持從所 述第二數(shù)據(jù)源中檢索所請(qǐng)求的數(shù)據(jù)的第二 API 。
5. 根據(jù)權(quán)利要求4所述的方法,其中提供所述第二 API包括提供 虛擬成員管理器(VMM) API。
6. 根據(jù)權(quán)利要求4所述的方法,其中提供所述第一 API和第二 API 包括在目錄服務(wù)中提供所述第一 API和第二 API。
7. 根據(jù)權(quán)利要求6所述的方法,其中在目錄服務(wù)中提供所述第一 API和第二 API包括將所述目錄服務(wù)實(shí)現(xiàn)為Java檔案文件。
8. 根據(jù)權(quán)利要求1所述的方法,還包括響應(yīng)于可從所述第二數(shù)據(jù)源中獲得所述數(shù)據(jù),從所述第二數(shù)據(jù)源中 提供所述所請(qǐng)求的數(shù)據(jù),或者響應(yīng)于不能從所述第二數(shù)據(jù)源中獲得所述 數(shù)據(jù),確定是否可獲得至少第三數(shù)據(jù)源以提供所述所請(qǐng)求的數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的方法,還包括提供支持從所述第三數(shù)據(jù) 源中檢索所述所請(qǐng)求的數(shù)據(jù)的第三API。
10. 根據(jù)權(quán)利要求9所述的方法,其中提供所述第三API包括提供 Java命名和目錄接口 ( JNDI) API。
11. 根據(jù)權(quán)利要求1所述的方法,其中接收針對(duì)數(shù)據(jù)的請(qǐng)求包括接 收HTTP請(qǐng)求。
12. —種提供對(duì)由多個(gè)異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪問的方法,包括提供至少第一應(yīng)用程序接口 (API)以支持從多個(gè)異類數(shù)據(jù)源中檢 索數(shù)據(jù);提供一種目錄,從所述目錄公開來自所述異類數(shù)據(jù)源的至少一個(gè)中 的數(shù)據(jù);以及響應(yīng)于可經(jīng)由所述目錄獲得所述數(shù)據(jù),自動(dòng)地提供所述所請(qǐng)求的數(shù)據(jù)。
13. 根據(jù)權(quán)利要求12所述的方法,其中提供所述目錄包括提供虛 擬目錄。
14. 一種提供對(duì)由多個(gè)異類數(shù)據(jù)源所提供的數(shù)據(jù)的訪問的系統(tǒng),包括用于提供至少第一應(yīng)用程序接口 (API)以支持從多個(gè)異類數(shù)據(jù)源 中檢索數(shù)據(jù)的裝置;用于提供一種目錄的裝置,從所述目錄公開來自所述異類數(shù)據(jù)源的 至少一個(gè)中的數(shù)據(jù);用于響應(yīng)于從應(yīng)用接收到針對(duì)數(shù)據(jù)的請(qǐng)求,確定是否可經(jīng)由所述目 錄獲得所述所請(qǐng)求的數(shù)據(jù)的裝置;以及裝置,用于響應(yīng)于可經(jīng)由所述目錄獲得所述數(shù)據(jù),則自動(dòng)地提供所 述所請(qǐng)求的數(shù)據(jù),或者響應(yīng)于不能經(jīng)由所述目錄獲得所述數(shù)據(jù),則確定 是否可獲得至少第二數(shù)據(jù)源以提供所述所請(qǐng)求的數(shù)據(jù)的裝置。
全文摘要
本發(fā)明提供一種用于從多個(gè)異類數(shù)據(jù)源提供信息的方法和系統(tǒng)。可以提供至少第一應(yīng)用程序接口(API)以支持從多個(gè)異類數(shù)據(jù)源中檢索數(shù)據(jù)。可以提供一種目錄,從該目錄公開來自異類數(shù)據(jù)源的至少一個(gè)中的數(shù)據(jù)。響應(yīng)于可經(jīng)由該目錄獲得所請(qǐng)求的數(shù)據(jù),可以自動(dòng)地提供所請(qǐng)求的數(shù)據(jù)。
文檔編號(hào)G06F17/30GK101211366SQ200710192758
公開日2008年7月2日 申請(qǐng)日期2007年11月16日 優(yōu)先權(quán)日2006年12月28日
發(fā)明者A·韋斯利, C·R·西坎普, C·S·康奈阿尼, P·Y·林, S·H·貝拉杰瓦拉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司