專利名稱:提供對遠程資源數(shù)據(jù)的訪問的方法和數(shù)據(jù)處理系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡計算領域。本發(fā)明尤其涉及用于經(jīng)遠程服務為應 用程序提供對遠程資源的訪問的方法和系統(tǒng)。
背景技術:
圖l給出了現(xiàn)有技術中系統(tǒng)架構的概況圖。
整個系統(tǒng)1包括具有經(jīng)網(wǎng)絡服務4的網(wǎng)絡連接的遠程計算機3 和本地計算機2。
本地計算機2是執(zhí)行應用程序21并主機訪問文件系統(tǒng)25上的文 件2511。應用程序21可被理解為需要通過環(huán)境變量定義訪問文件的 本地計算機2上的可執(zhí)行文件。因此,其調用所謂的環(huán)境變量訪問服 務211。
借助這樣的現(xiàn)有技術,可以由運行在本地計算機上的應用程序訪 問本地文件系統(tǒng)的數(shù)據(jù)。也可以通過安裝在其上的本地文件系統(tǒng)管理 甚至透明地訪問遠程計算機的數(shù)據(jù)。因此,本發(fā)明涉及不關心如今的 網(wǎng)絡訪問、而從它們的角度來看僅依賴于本地數(shù)據(jù)訪問的所有應用程 序或系統(tǒng)。
隨著越來越多地使用因特網(wǎng),出現(xiàn)了對于透明地訪問超出所安裝 的文件系統(tǒng)的作用域的數(shù)據(jù)的需求.如果數(shù)據(jù)駐存在因特網(wǎng)上或甚至 內聯(lián)網(wǎng)上,則數(shù)據(jù)由于一些原因而通常不能通過文件共享機構而可 用,且經(jīng)常只能利用URL位置經(jīng)由基于瀏覽器的服務被訪問。然而, 這是不利的,因為許多應用程序并不具有瀏覽器功能。
發(fā)明內容
本發(fā)明的目的是提供一種用于本地運行應用程序的機制,其使得應用程序在不對它們的程序源代碼進行任何改變的情況下也能夠動
態(tài)地使用因特網(wǎng)或內聯(lián)網(wǎng)上URL尋址的數(shù)據(jù)。
本發(fā)明的目的是通過所附的獨立權利要求中所給出的特征實現(xiàn) 的。本發(fā)明的其他有利結構和實施例在各從屬權利要求中給出。下面 應該參考所附權利要求書。
本發(fā)明使用這樣的思想,即程序員可通過某些環(huán)境變量定義要搜 索的URL位置,且操作系統(tǒng)在碰到對環(huán)境變量的讀取時提供用于本 地訪問的相關數(shù)據(jù),從而引用環(huán)境變量搜索路徑的應用程序不知道數(shù) 據(jù)是在URL位置上還是通過傳統(tǒng)的文件系統(tǒng)層被找到。
本領域熟練的程序員能夠將所要求的URL定義放入環(huán)境變量 中。URL定義遵從包括文件、HTTP、 FTP或其他訪問機制的官方 URL標準。如按照現(xiàn)有技術操作環(huán)境變量所暗示的那樣,操作系統(tǒng)具 有提供對位置的訪問的任務,操作系統(tǒng)為使用本發(fā)明形式的環(huán)境變量 的應用程序提供相應服務。進一步,在下文中,這些服務在本地和遠 程計算機系統(tǒng)上分別被稱為"遠程數(shù)據(jù)訪問服務,,和"遠程數(shù)據(jù)提供者 服務"。
對于應用程序透明的這類服務的一種優(yōu)選實現(xiàn)包括創(chuàng)建可被定 義為"動態(tài)變量"的新型環(huán)境變量的思想.這樣的新變量的處理可以在 可特定于所使用的操作系統(tǒng)地實現(xiàn)的系統(tǒng)提供配置字段中被定義,或 者可創(chuàng)建僅列出動態(tài)環(huán)境變量的新的保留的系統(tǒng)環(huán)境變量,諸如"dyn vars"。 一個例子可以是
Dyn vars = x_path (1 min), y_j>ath (10 min), z__path (6 h); 時 間指示是歡認的刷新時間,其中在該默認的刷新時間之后,URL被再 次檢查并最終被更新。
一個可替換的方法揭示了為變量定義保留的提出的或前綴的指 示符,以便將變量標記為動態(tài)的.例子可以如下
x_path (1 min)=
http:〃svn,anache.or2/viewvc/ant/core/trunk/src/resources/ 或<formula>formula see original document page 7</formula> 其中 刷新時間是默認設定。
定義為"動態(tài)的,,的變量觸發(fā)操作系統(tǒng)來為包含URL的數(shù)據(jù)引用 的每個URL創(chuàng)建所謂的映像區(qū)(shadow area)。 因此,可創(chuàng)建將以 被稱為"刷新"時間的預定時間間隔被同步的 一 種映像池存儲區(qū) (shadow pool storage area )。如上面所看到的那樣,同步參數(shù)也可 被實現(xiàn)為定義的一部分,變量是動態(tài)變量。映〗象存儲池的位置在某些 地方被定義在操作系統(tǒng)配置中。此外,可激活文件系統(tǒng)收聽站(file system listener),其檢測對這樣的映像池存儲區(qū)中文件的訪問。如果 是,則其可觸發(fā)被請求文件或來自遠程位置文件的更新,而非以規(guī)則 間隔更新。這會允許對遠程資源的一致的本地高速緩存。
其優(yōu)點在于,當應用程序讀取環(huán)境變量時,URL可以被文件系 統(tǒng)上的映像(shadow)位置替代,這因此對于應用程序是透明的。因 此,如本領域技術人員可理解的那樣,在要實現(xiàn)本發(fā)明的特征時,應 用程序的源代碼不需要被改變。
本發(fā)明方法的另一實現(xiàn)包括提供用于訪問由這樣的環(huán)境變量編 碼的信息的新服務,這允許操作系統(tǒng)在搜索路徑中搜索文件,其中如 果找到路徑,則還使文件可用于讀取訪問。通過該方法,于是使應用 程序能夠及時地按請求查詢URL資源,發(fā)現(xiàn)、即定位例如目錄位置 所指示的文件,且如果請求,甚至使文件可本地訪問。如果URL是 有效URL,且如果在這樣的定義后找到實際資源,則被請求資源的位 置僅是^ii,對遠程數(shù)據(jù)的實際訪問然后涉及從URL位置下栽到本 地區(qū)域(如上所述的映像區(qū)),用于使能通過現(xiàn)在被重定向指向下載 路徑的現(xiàn)有技術訪問方法訪問程序.因此,應用程序僅定義包含要訪 問的成員和URL的環(huán)境變量,并且然后將找回文件系統(tǒng)中成員的實 際位置。URL的驗證及下栽本身然后是對于應用程序隱藏的底層操作 系統(tǒng)所執(zhí)行的服務。
按照下面將進一步聲稱的本發(fā)明的最基本的方面,公開了一種用于為由可網(wǎng)絡連接的計算機的操作系統(tǒng)的一部分所執(zhí)行的、優(yōu)選地由 "擴展環(huán)境變量管理器"所執(zhí)行的應用程序提供對遠程資源的訪問的
方法,該方法的特征為包括以下步驟
a) 掃描所述應用程序的環(huán)境變量的值,以確定URL記號的出
現(xiàn),
b) 調用遠程功能以訪問在所述掃描過程中所發(fā)現(xiàn)的URL,以 便請求與所述URL相關的遠程資源,
c )在預分配的高速緩存存儲器部件中存儲所述遠程資源, d) 偵聽(listen)對預分配的高速緩存存儲器的訪問,以在不
將啟動更新的情況下確保最近(most current)的數(shù)據(jù)被存儲在高速
緩存存儲器中。
優(yōu)選地,從包括以下內容的組中選擇遠程資源
a) 存儲在遠程文件系統(tǒng)中的 一個或多個文件,
b) 包含遠程系統(tǒng)中文件的一個或多個目錄,
c) 保持可被存儲為本地文件實例的信息的數(shù)據(jù)倉庫 (repository)或數(shù)據(jù)庫。
優(yōu)選地,基本方法可通過以下步驟序列擴展
a) 如果在上述掃描步驟中找到URL位置,則檢查是否存在被 分配給與所述URL記號相關的遠程資源的本地高速緩存存儲器部件,
b) 如果不存在存儲器部件,則分配相應部件,并在本地高速 緩存存儲器部件中存儲所述遠程資源,
c) 如果存在分配的存儲器部件,則在所述本地高速緩存存儲 器部件存儲所述遠程資源.
進一步,笫二組件、例如環(huán)境變量值提供器執(zhí)行用于經(jīng)環(huán)境變量 為應用程序提供對遠程資源的訪問的方法,該方法的特征在于包括以 下步驟
a) 響應于來自應用程序的請求,請求環(huán)境變量的值, b ) 掃描環(huán)境變量值以尋找URL記號,
c)如果發(fā)現(xiàn)URL記號,則利用指向高速緩存存儲器部件的引用代替所述URL記號,
d) 啟動用于高速緩存存儲器的文件系統(tǒng)收聽站,以驗證與遠 程數(shù)據(jù)位置的一致性。
上述環(huán)境變量管理器和環(huán)境變量值提供器通過使用適當?shù)牟僮?編程接口密切配合??刂破鲀?yōu)選地與應用程序的運行時間異步地工 作,并提供相應的URL數(shù)據(jù)。在編譯后的可執(zhí)行應用程序的運行時 間中,環(huán)境變量被提供器組件讀取,該提供器組件至少轉發(fā)控制器程 序所生成的數(shù)據(jù)在文件高速緩存中的高速緩存副本,而如果其不可 用,則發(fā)出相應的錯誤消息。
本發(fā)明以示例的方式被說明,但不限于附圖所示的形式,其中 圖1示出了用于現(xiàn)有技術方法的現(xiàn)有技術硬件和軟件環(huán)境的最 基本結構組件,
圖2示出用于本發(fā)明方法一個優(yōu)選實施例的本發(fā)明硬件和軟件 環(huán)境的最基本結構組件,
圖3A和3B示出本發(fā)明方法一個優(yōu)選實施例的最重要步驟的控 制流程,
圖4、 5、和6示出本發(fā)明所使用的某些方面的示例性實現(xiàn)。
具體實施例方式
參考附圖、尤其參考圖2說明本發(fā)明一個優(yōu)選實施例中所使用的 結構和功能組件。其中一些組件如現(xiàn)有技術中所存在的那樣被使用, 而其他組件則被修改以便符合典型的本發(fā)明功能和結構的要求。
圖2給出系統(tǒng)說明。
整個系統(tǒng)1包括具有經(jīng)網(wǎng)絡服務4的網(wǎng)絡連接的遠程計算機3 和本地計算機2。
本地計算機2是執(zhí)行應用程序21并主機訪問(host access)文 件系統(tǒng)25上的文件2511的系統(tǒng)。應用程序21應被理解為需要通過環(huán)境變量定義訪問文件的本地 計算機2上的可執(zhí)行文件。因此,其調用所謂的環(huán)境變量訪問服務211。 在這方面,這對應于圖1,
參考環(huán)境變量訪問服務211,下面進一步給出允許檢索環(huán)境變量 的內容以由應用程序進一步處理的不同編程語言中的幾種示例性訪 問方法。對于指向文件位置信息的環(huán)境變量,可調用數(shù)據(jù)訪問服務, 以從指定的位置路徑檢索文件。
現(xiàn)有技術應用程序的主要元素是所謂的數(shù)據(jù)訪問服務212。
應用程序的這個部件將獲得位置路徑信息作為可能通常來自環(huán) 境變量、或可替換地來自應用調用參數(shù)的一系列數(shù)據(jù)位置規(guī)范 (specification),基于該輸入,應用程序將試圖獲得對可能位于給定 位置搜索路徑上的一個或多個文件的內容。因此,對于每個路徑,服 務將試圖訪問文件,且如果找到了,則將引用文件的內容,或者如果 是輸出位置,則文件可被寫到那里。如果文件系統(tǒng)25收聽站被激活, 則在給予該配置和訪問權限的情況下甚至可觸發(fā)將所創(chuàng)建的文件更 新到遠程系統(tǒng)。
命令解釋程序(command shell) 22是本地計算機2的操作系統(tǒng) 的另一組件,其表示到其用戶的接口,用于通過關鍵字和相關值242 定義和改變環(huán)境變量定義22a。為了內部表示,所輸入的格式被傳遞 到所謂的環(huán)境變量管理器24。
而且,請求顯示所存儲的環(huán)境變量的請求將經(jīng)命令解釋程序22 到達,其中其將請求環(huán)境變量的信息并將它們顯示在其表達空間 (presentation space)中。
命令解釋程序22的實現(xiàn)取決于操作系統(tǒng);甚至可能存在不同版 本可用于相同操作系統(tǒng)。
WINDOWS和UNIX處理環(huán)境變量的方式相似,而例如IBM z/OS工作方式不同。然而,對于通過關鍵字引用的文件規(guī)范方面,存 在高度相似性,在IBMz/OS上,人們可通過命令解釋程序分時選項 (TSO)或通過經(jīng)JCL的批處理提交系統(tǒng)(Batch submission system )JES指定允許定義調用應用程序已知的關鍵字和一 系列數(shù)據(jù)集名稱 (對應于WINDOWS或UNIX中的文件路徑)的DDNAME。
環(huán)境變量定義命令22a通過命令解釋程序環(huán)境向由底層操作系 統(tǒng)所提供的應用程序環(huán)境示出命令及其用于定義環(huán)境變量的語法???通過多種方式進行定義。用戶可在命令解釋程序中鍵入命令。命令可 通過解釋程序腳本(shell script)執(zhí)行。可以提供GUI接口以輸入環(huán) 境變量定義。
環(huán)境變量關鍵字22b表示在應用程序中被用于引用相關值的環(huán) 境變量的名稱。
文件系統(tǒng)路徑22c可被定向到本地位置;圖中給出了一個指示可 映射到本地系統(tǒng)2的目錄位置251a的目錄路徑的例子。
文件系統(tǒng)路徑22d可被定向到遠程位置;圖中給出了 一個通過經(jīng) 由遠程數(shù)據(jù)訪問服務23和遠程計算機3的遠程數(shù)據(jù)提供器服務31的 文件共享訪問指定可映射到作為本地文件系統(tǒng)2 —部分的遠程目錄位 置351a的目錄路徑的例子。
文件系統(tǒng)路徑22e可被定向到本地位置;圖中給出了指定可映射 到目錄位置251b的目錄路徑的例子。
圖中給出的環(huán)境變量值22f包括元素22c、 22d、和22e。通過關 鍵字從應用程序引用環(huán)境變量關鍵字的內容。值的格式不被嚴格地限 定。其可以是任何字符串。然而,為了指定路徑和文件位置,已經(jīng)建 立了應用程序可依賴的特定語法,并且該特定語法允許將路徑限定為 路徑列表,其中在WINDOWS中每個路徑以";,,分隔,而在UNIX 中使用""。系統(tǒng)定義的變量是用于當在命令行窗口中被調用用于執(zhí) 行時保持要被檢索的可執(zhí)行程序文件的位置的路徑變量.
其他普通變量是Java虛擬機的類路徑或者包含動態(tài)調用的庫 (lib).而且,幫助文件的定義包括編譯器的文件,并且存在其他文 件相關變量。在IBMz/OS上,DDNAME概念被用于將要搜索的數(shù) 據(jù)集的路徑定位到一名稱。通過該方式,DDNAME可被看作是具有 鍵/值對(key/value pair)的環(huán)境變量。定義變量的機制不同,但思路相同。
環(huán)境變量用戶服務221是作為操作系統(tǒng)命令解釋程序一部分的 服務,其具有定義和檢索環(huán)境的功能。
遠程文件訪問服務23實現(xiàn)允許通過文件月良務器向遠程數(shù)據(jù)提供 器請求數(shù)據(jù)以便將遠程文件存儲安裝到本地文件系統(tǒng)25的方法。文 件收聽站可被相關聯(lián),以使能由應用程序21所訪問或創(chuàng)建的文件的 壽命更新(life date)。環(huán)境變量管理器24將管理通過服務211或服 務221所輸入或修改的被定義環(huán)境變量的列表。
環(huán)境變量表240包含預先定義的環(huán)境變量的鍵值對(key-value pair),實際上,對于多用戶系統(tǒng)可能存在具有不同作用域的多個表 格,或一個表格用于所有用戶,而其他表格是對于各個用戶專用的。 然后,如果需要,則管理器24通過用于相同環(huán)境變量的表格創(chuàng)建搜 索路徑。
環(huán)境變量鍵(environment variable key) 242將表示列表中用于 表示位于表格240列242中的相關值的環(huán)境變量關鍵字。
環(huán)境變量活動值(active value ) 242將表示應用程序21通過服 務211所使用的與列241相關聯(lián)的實際環(huán)境變量值。
文件系統(tǒng)25提供用于本地計算機系統(tǒng)2中文件的永久存儲位置 和用于對映像池區(qū)域的改變和訪問的文件系統(tǒng)收聽站。
路徑位置251提供要被存儲在文件系統(tǒng)25內的文件的位置.
文件2511包含要在限定的路徑位置251a或251b被存儲在文件 系統(tǒng)25中的永久數(shù)據(jù)。
遠程計算機3通過網(wǎng)絡連接4連接到本地計算機2,其中網(wǎng)絡連 接4允許在兩個文件系統(tǒng)35和25之間傳送文件數(shù)據(jù)。
遠程數(shù)據(jù)提供器31是遠程計算機3上的Ji艮務,其允許以遠程數(shù) 據(jù)被虛擬地看作本地數(shù)據(jù)的方式通過本地文件系統(tǒng)25訪問層從本地 計算機2訪問文件。這樣的服務的例子是LAN共享、AFS、 NFS或 SAMBA。
遠程文件系統(tǒng)35在遠程系統(tǒng)3上的功能與文件系統(tǒng)25在本地計算機2上的功能相同。
遠程路徑位置351a和351b在遠程系統(tǒng)3上的功能與路徑位置 251a、 b在本地計算機2上的功能相同。這同樣適用于遠程文件3511a -d。
網(wǎng)絡服務4是允許遠程數(shù)據(jù)提供器31和遠程數(shù)據(jù)訪問服務23 之間通信和數(shù)據(jù)傳送的現(xiàn)有技術方法。
根據(jù)本發(fā)明,通過用于不僅檢索傳統(tǒng)格式、而且還檢索環(huán)境變量 定義命令22a的輸入值的附加服務對命令解釋程序22進行擴展。還 通過用于允許進一步配置擴展表格240以定義用于各個遠程引用的高 速緩存間隔和高速緩存位置的服務對其進行擴展。
注意,對于本發(fā)明,傳統(tǒng)的命令解釋程序是相關的,然而對于用 于定義、修改和顯示環(huán)境變量的用戶交互,可以提供可替換的用戶接 口、諸如圖形用戶接口 (GUI)作為對命令解釋程序的替換。然而, 它們將以與如現(xiàn)有技術中命令解釋程序對表格24相似的方式對表格 24進行交互。
對于在IBM z/OS操作系統(tǒng)中實現(xiàn)的本發(fā)明一個優(yōu)選實施例, DDNAME的現(xiàn)有技術概念和功用將被如下地擴展。
環(huán)境變量用戶服務221是作為操作系統(tǒng)的命令解釋程序一部分 的具有定義和檢索環(huán)境的功能的服務。
遠程文件訪問服務23實現(xiàn)允許通過文件服務器向遠程數(shù)據(jù)提供 器請求數(shù)據(jù)、以將遠程文件存儲安裝到本地文件系統(tǒng)25的方法。
環(huán)境變量管理器24將管理通過服務211或服務221所輸入和修 改的被定義環(huán)境變量的列表。
環(huán)境變量表格240包含預先定義的環(huán)境變量的鍵值對。實際上, 對于多用戶系統(tǒng)可能存在具有不同作用域的多個表格,或一個表格用 于所有用戶,而其他表格對于各個用戶是專用的。然后,如果需要, 管理器24將通過用于相同環(huán)境變量的表格創(chuàng)建搜索路徑。
環(huán)境變量鍵242將表示列表中用于表示位于表格240列242中的 相關值的環(huán)境變量關鍵字。環(huán)境變量活動值242表示由應用程序21通過服務211使用的與 列241相關的實際環(huán)境變量值。
文件系統(tǒng)25提供用于本地計算機系統(tǒng)2中文件的永久存儲位置 和用于對映像池區(qū)域的改變和訪問的文件系統(tǒng)收聽站。
路徑位置251提供要被存儲在文件系統(tǒng)25內的文件的位置。
文件2511包含要在定義的路徑位置251a或251b被存儲在文件 系統(tǒng)25中的永久數(shù)據(jù)。
遠程計算機3通過網(wǎng)絡連接4連接到本地計算機2,其中網(wǎng)絡連 接4允許在兩個文件系統(tǒng)35和25之間傳送文件數(shù)據(jù)。
遠程數(shù)據(jù)提供器31是遠程計算機3上允許以遠程數(shù)據(jù)被虛擬地 看作本地數(shù)據(jù)的方式通過本地文件系統(tǒng)25訪問層從本地計算機2訪 問文件的服務。這樣的服務的例子是LAN共享、AFS 、 NFS或SAMBA 。
遠程文件系統(tǒng)35在遠程系統(tǒng)3上的功能與文件系統(tǒng)25在本地計 算機2上的功能相同。
遠程路徑位置351a和351b在遠程系統(tǒng)3上的功能與路徑位置 251a、 b在本地計算機2上的功能相同。這同樣適用于遠程文件3511a 一d。
網(wǎng)絡服務4是現(xiàn)有技術方法,其允許遠程數(shù)據(jù)提供器31和遠程 數(shù)據(jù)訪問服務23之間的通信和數(shù)據(jù)傳送。 遠程數(shù)據(jù)訪問服務23:
該實現(xiàn)是本發(fā)明方法的一部分,并且允許通過URL記號和相關 網(wǎng)絡服務向遠程數(shù)據(jù)提供器服務31請求數(shù)據(jù)(細節(jié)參看下面描迷), 并將其寫到本地高速緩存26.這通常是從遠程的只讀過程和到本地髙 速緩存26的寫。然而,根據(jù)提供給管理器24的指定協(xié)議,其還可以 觸發(fā)從高速緩存回到指定URL的數(shù)據(jù)的更新。
文件高速緩存26:
文件髙速緩存26是本地文件系統(tǒng)的一部分,且其位置在以某種 方式通過管理器24預先定義或配置的本地文件系統(tǒng)中。還可以通過 2.4限定高速緩存的屬性,諸如文件系統(tǒng)收聽站為了利用來自遠程文件系統(tǒng)35的文件更新高速緩存或將所創(chuàng)建的文件寫到遠程文件系統(tǒng) 35 (在這樣限定的情況下)而采取的動作或高速緩存的間隔。
文件高速緩存路徑261和被高速緩存的文件2611a、 b、 c、 d如 現(xiàn)有技術中那樣定義。
遠程數(shù)據(jù)提供器31:
這是遠程計算機3上的服務,其等待通過URL請求的遠程請求, 以提供服務器的文件系統(tǒng)的被請求數(shù)據(jù)。 經(jīng)URL的網(wǎng)絡訪問機制4:
其提供通過給定URL定義并由本地計算機上的服務23n和遠程 計算機上的服務31協(xié)調的通信和數(shù)據(jù)傳送機制。
URL格式2.2d.n是路徑規(guī)范的一部分,其表明URL格式現(xiàn)在取 代前面的路徑規(guī)范以經(jīng)不同協(xié)議、諸如http://、 https://、 ftp://、以及 甚至file:〃訪問數(shù)據(jù)。
URL方案或協(xié)議22dl定義要用于訪問經(jīng)元素22d2和22d3所指 定的數(shù)據(jù)的方法,其中URL服務器22d2定義用于保持數(shù)據(jù)的服務器 位置,和URL數(shù)據(jù)位置信息22d3提供訪問遠程數(shù)據(jù)的信息。
數(shù)據(jù)實際存在的位置對于用戶而言是透明的。
在服務器側,服務23n和31負責將字符串映射到服務器上實際 數(shù)據(jù)位置中,以將其引到本地文件系統(tǒng)。
本發(fā)明的具有URL的環(huán)境變量定義命令22a與現(xiàn)有技術中的命 令22a的不同之處在于現(xiàn)在URL的規(guī)范以特殊方式被處理,如果出 現(xiàn)URL,則不同實現(xiàn)可以選擇各自不同的方式來觸發(fā)環(huán)境變量定義的 處理。命令22a可在關鍵字中創(chuàng)建特殊指示符以標識處理,諸如"$ path =..."。還可以存在單獨的配置過程來明確標識要以特殊方式處 理的環(huán)境變量或甚至要特殊處理的值中的字符串或任何組合.
按照本實施例,環(huán)境變量管理器24以某種方式如下所述地被擴
展
擴展的管理器24將通過環(huán)境用戶服務221采取預先定義的環(huán)境變量定義命令22a,并將其分析(parse)為環(huán)境變量關鍵字22b、文 件系統(tǒng)路徑22c、和22d。那些元素將被輸入到尤其擴展的表格240 的新創(chuàng)建條目243abc中。
如果發(fā)現(xiàn)遠程數(shù)據(jù)訪問格式看起來類似于命令22a中的,則下面 將研究這些條目243中的每一個。如果是,則請求將被傳遞到遠程數(shù) 據(jù)訪問服務的本發(fā)明版本23n,以便將該文件位置規(guī)范中被引用的文 件高速緩存到本地高速緩存26。
本地高速緩存26的條目位置然后被輸入到表格條目242a、 b、 c中。
假定本發(fā)明的命令22a是現(xiàn)有技術命令的一部分,則條目241a、 b、 c被存儲在條目243a、 b、 c中。
然而,本發(fā)明的環(huán)境變量管理器24將用相應的文件高速緩存位 置262代替條目241a、 b、 c。如果所有遠程引用在命令22a中被替代, 則僅包含對本地文件系統(tǒng)路徑的引用的新命令22a將被存儲到條目 242a、 b、 c中,用于供應用程序21和命令解釋程序22實際使用。
除了該基本映射之外,本發(fā)明的管理器24可以保持附加的配置 值,諸如默認的高速緩存間隔和高速緩存位置。其還可以為特殊遠程 訪問規(guī)范、諸如命令22a保持特殊的高速緩存位置和高速緩存間隔以 及用于優(yōu)化管理的其他需要的屬性。
通常,指定的URL指向只讀位置,從而對于遠程數(shù)據(jù)訪問服務 23的本發(fā)明版本,僅啟動從遠程到本地的高速緩存。
然而,如果URL還允許寫功能,則用于鑒權的附加信息可供本 發(fā)明的管理器24使用,以然后啟動對本發(fā)明的服務234的更新請求, 從而將高速緩存同步到遠程位置。
擴展的環(huán)境變量表格240:
該表格240的結構和功能與上面對于元素240所描述的基本相 同。唯一的差別是添加笫三列243以區(qū)分新的列243中的被輸入值與 已經(jīng)存在的列242中的被使用值。在現(xiàn)有技術中,所使用的列總是與 預先限定的列相同。環(huán)境變量的擴展定義243:
按照該實施例,這表示外部定義值,其然后^L管理器24分析用 于諸如附圖標記22dl、 22d2、或22d3所給定的格式的遠程引用。根 據(jù)用于標識特殊處理的給定管理方案(administrative solution ),其 然后也將環(huán)境關鍵字分析和格式化為要在條目241a、 b、 c下被存儲 和找到的傳統(tǒng)預期的關鍵字。
然后,管理器24將啟動遠程文件的高速緩存,并將被高速緩存 的文件的本地文件位置添加到條目242a、 b、 c中,從而應用程序21 可以以傳統(tǒng)的本地訪問方法透明地訪問被定義為遠程數(shù)據(jù)的數(shù)據(jù)。
基于上述功能,除了前面的說明之外,還將通過下面的控制流程 描述并結合圖3說明本發(fā)明方法
對于上述背景技術結尾處所指出的目的,不是使用通過本地文件 系統(tǒng)指向遠程服務器的位置信息,而是如下地實現(xiàn)經(jīng)URL的訪問
在應用開始之前,環(huán)境變量必須在步驟310中通過向命令解釋程 序22發(fā)出命令22a而被設定以適當值。 一個具體例子中的命令可以 是"SET $ path = c:\appll\lib; protocol:〃server/path; c:\tools"。
在下一步驟315中,命令解釋程序將值22f傳遞到環(huán)境變量用戶 服務221。
在下一步驟320中,環(huán)境變量用戶服務221將環(huán)境變量定義22b 和22f提供給管理器24 (參看圖2);在我們的例子中,"$path = c:\appll\lib; protocol:〃server/path; c:\tools"。
在步驟325,管理器24將定義語句存儲到表格240的列243中。
在步驟330,管理器24然后分析出鍵(key)和值,并在步驟335 中將它們存儲到環(huán)境變量表格240中,對于鍵,其將取"Spath",并 且對于值,其將取"c:、applhlib; protocol:〃server/path; c:\tools"。
在步驟335,鍵進入列241。其可以包括某種重新格式化為傳統(tǒng) 格式中的預期鍵值.在示例性情形中,"$"被剝離,且被存儲到條目 241a中的值是"path"。
如果判斷240確定鍵值指示沒有URL記號的特殊處理,則在步驟345中,分析值被存儲到條目242中且工作完成。
如果具有處理標記在我們的情形中,鍵開始于"$" 則值字符 串在步驟350被分析以標識路徑元素,在示例情形中路徑元素被";,, 分隔。因此,文件系統(tǒng)路徑22c、 22dn和22e被標識。它們中的每一 個被檢查,以確定其是否包含導致多個判斷355的URL定義,諸如 在示例情形中的URL定義22dn。
對于被檢測的URL中的每一個,將在判斷355的"是"分支中執(zhí) 行下面的步驟
在步驟360中,將URL傳遞到處理遠程數(shù)據(jù)的訪問的遠程數(shù)據(jù) 訪問服務23n。
該服務23n將請求轉發(fā)到位于遠程系統(tǒng)3的遠程數(shù)據(jù)提供器服務 31,以便在步驟360中從其文件系統(tǒng)35獲得URL位置內的文件。 下面示出這樣的過程的一個例子
經(jīng)http訪問來自CVS庫的數(shù)據(jù)的例子_
參看位于h加〃cvsgrab.sourceforge.net/的工具文檔
數(shù)據(jù)訪問的例子
cvsgrab - url
h加〃cvs.aDache.org/viewcvs.cgi/aiit/ onlv with tag=ANT 16 BRANCH_
在本例中,URL httD:〃server.com/path將指向目錄位置351a。
在步驟365,服務23n獲得所有來自31的文件,諸如在該例子 中是文件3511a和3511b,并在步稞370中在位置261a將它們存儲到 本地高速緩存26中,從而存儲到文件2611a和2611b中??赏ㄟ^發(fā) 現(xiàn)文件仍在sync中或識別改變的那些文件而優(yōu)化該下栽過程,
在步驟375中,返回的高速緩存路徑261a被用于代替環(huán)境變量 值22f中的URL定義。在該例子中,"http:〃server.com/path,,被 "d:kache、snApathx"取代。
根據(jù)實現(xiàn),環(huán)境變量管理器24現(xiàn)在可以以預定時間間隔通過服 務23n觸發(fā)高速緩存的更新380。這是也開始于每次啟動本地計算機的無限循環(huán)。
如果判斷385確定所有檢測到的URL被處理,則被分析的環(huán)境 變量的值22f將不具有URL,但將包括相應的本地文件路徑。因此, 字符串"c:\appll\lib; http:〃server.com/path; c:\tools"被變換為 "c:\appll\lib; d:\cache\srv\pathx; c:\tools"。該字符串現(xiàn)在變成環(huán)境變 量供使用,并因此將被存儲到條目242b中,參看步驟395。
pathc:\appll\lib; d:\cache\srv\ pathx^ c:\tools$ path=c:\appU\lib; httu:〃server.com/Dath: c:\tools
如果URL被重新定義,即被修改或被從值部件22f中刪除,則 舊的URL將被"清除",這意味著上面步驟380中的更新請求被停止, 且相關的高速緩存被刪除。
在判斷385的"否,,分支中,控制被反饋到步驟360,以便重新進 入循環(huán)體以處理下一 URL。
本發(fā)明方法中所使用的用于通過應用程序21檢索環(huán)境變量內容 的控制流程遵從圖3A和3B中所給出的方案,因為應用程序21具有 相同的接口到管理器24,并僅獲得指向本地文件系統(tǒng)的路徑位置。
特別地,在本地計算機系統(tǒng)上運行的應用程序可以以參數(shù)被調 用,以每次調用時定義其行為。然而,便利地是,有時通過環(huán)境變量 提供標準調用參數(shù),從而系統(tǒng)可在調用后讀出它們,為此,每個應用 程序具有限定的一組要在調用之前設定的環(huán)境變量,其將被用于獲取 它們的內容用于進一步處理。
應用程序發(fā)布上述方法中之一。因此,對于本例,應用程序需要 "path"的值.
現(xiàn)在,找回環(huán)境變量的值。在示例情形中,值為c:\appll\lib; d:\program2\includes; c:\tools。
這同樣適用于應用程序21在訪問文件數(shù)據(jù)時所執(zhí)行的控制流程,因為應用程序21僅從管理器24獲得本地文件系統(tǒng)位置格式,且 不要求數(shù)據(jù)的實際位置,本質上僅可通過URL請求到達。
應該注意,這在某些意義上與環(huán)境變量的實際使用無關。應用程 序由于某種原因只必須獲得具有要搜索的文件路徑的字符串。并且, 這可以是通過環(huán)境變量或參數(shù)傳遞或其他方法或甚至任何組合,以獲 得這樣的搜索路徑。應用程序21通常被編寫,其不知道數(shù)據(jù)實際駐 存在哪里。僅假定其需要訪問本地文件系統(tǒng)組件,而且不必由其自身 提供網(wǎng)絡服務。
通過給定的搜索路徑,應用程序現(xiàn)在查找文件以使用,并由其自 身或某種現(xiàn)有服務發(fā)出服務從而以搜索路徑中所給定的順序訪問每 個路徑并測試文件是否存在。注意,對于應用程序,文件是否在遠程 服務器上是透明的,因為這通過本地文件系統(tǒng)處理。
如果找到文件,則路徑被發(fā)現(xiàn),且文件的內容可被讀取或文件可 以應用程序希望的方式被處理。
最后,為了公開的完整性,給出某些示例性實現(xiàn)
圖4中給出了從http資料庫(http r印ository )到本地高速緩存 訪問文件的一個例子。
圖5示出了對于環(huán)境變量訪問服務211的Java代碼例子。
圖6示出了用于訪問環(huán)境變量的標準API。
對于Windows命令解釋程序,通過以下代碼示例給出環(huán)境變量 用戶服務221:
Create environment variable entries (倉J建環(huán)境變量條目)
SET INCLUDE=C:\Program Files\ObjREXX\API
SET TEMID=wuclientde
SET LIB=C:\Program Files\ObjREXX\API
用于偵聽命令解釋程序中環(huán)境變量的一個例子是
SET INCLUDE
本發(fā)明可采取完全硬件實施例形式、完全軟件實施例形式或既包 含硬件也包含軟件元素的實施例形式。在一個優(yōu)選實施例中,本發(fā)明以軟件實現(xiàn),包括但不限于固件、駐存軟件、微代碼等。
而且,本發(fā)明可采取可從用于提供由計算機或任何指令執(zhí)行系統(tǒng)
使用或與其結合使用的程序代碼的計算機可用或計算機可讀介質訪
問的計算機程序產(chǎn)品的形式。
為了本說明書的目的,計算機可用或計算機可讀介質可以是能夠
包含、存儲、通信、傳播、或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設
備^^用或與其結合使用的任何裝置。
介質可以是電子的、磁性的、光學的、電磁的、紅外的、或半導
體的系統(tǒng)(或裝置或設備)或傳播介質。計算機可讀介質的例子包括
半導體的或固態(tài)的存儲器、磁帶、或可移動計算機磁盤、隨機存取存
儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當前 例子包括壓縮光盤只讀存儲器(CD-ROM )、壓縮光盤讀/寫(CD-R/W) 和DVD。
適于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包括至少 一個直接 地或通過系統(tǒng)總線間接地耦接到存儲元件的處理器。存儲元件可包括 在實際執(zhí)行程序代碼過程中所采用的本地存儲器、大容量存儲器、和 提供至少 一些程序代碼的臨時存儲以便減少在執(zhí)行過程中必須從大 容量存儲器檢索代碼的次數(shù)的高速緩存存儲器。
輸入/輸出或I/O設備(包括但不限于鍵盤、顯示器、點擊設備 等)可直接或通過中間1/0控制器耦接到系統(tǒng)。
網(wǎng)絡適配器也可被耦接到系統(tǒng),以使數(shù)據(jù)處理系統(tǒng)能夠通過中間 的專有或公共網(wǎng)絡耦接到其他數(shù)據(jù)處理系統(tǒng)或遠程打印機或存儲設 備。調制解調器、電纜調制解調器和以太網(wǎng)卡僅是當前可用類型的網(wǎng) 絡適配器中的一些。
權利要求
1.一種由計算機操作系統(tǒng)的一部分執(zhí)行的用于為應用程序(21)提供對位于電子計算機網(wǎng)絡中的遠程資源的數(shù)據(jù)的訪問的方法,其中所述應用程序(21)在駐留在所述網(wǎng)絡中的計算機上執(zhí)行,其特征為包括以下步驟a)掃描(330)所述應用程序的環(huán)境變量的值,以確定URL記號的出現(xiàn)b)調用(360)遠程功能以訪問在所述掃描過程(330)中所發(fā)現(xiàn)的URL,以便請求與所述URL相關聯(lián)的遠程資源(351a,351b),c)在預先分配的高速緩存存儲器部件(261a,261b)中存儲(370)所述遠程資源,以提供對所述資源的訪問,d)以規(guī)則間隔或通過文件系統(tǒng)事件收聽站驗證預先分配的高速緩存存儲器部件(261a,261b)的內容,以啟動從或到遠程文件系統(tǒng)(35)的更新。
2. 如權利要求l所述的方法,其中如果請求再次訪問所存儲的 遠程資源,則訪問所存儲的資源而非所述遠程資源。
3. 如權利要求l所述的方法,其中所述遠程資源選自a) 存儲在遠程文件系統(tǒng)中的一個或多個文件,b) 包含遠程系統(tǒng)中文件的一個或多個目錄,或c) 用于保存能夠被存儲為本地文件實例的信息的數(shù)據(jù)倉庫或數(shù)據(jù)庫。
4. 如權利要求l所述的方法,還包括以下步驟a )如果在權利要求1的步驟a )中發(fā)現(xiàn)URL位置(335 ),則 檢查是否存在被分配給與所述URL記號相關聯(lián)的遠程資源的本地高 速緩存存儲器部件(261a, 261b),b) 如果不存在存儲器部件,則分配相應部件,并通過預定的更 新或通過文件系統(tǒng)事件收聽站保持其更新,c) 如果存在分配的存儲器部件,則在所述本地高速緩存存儲器部件(261a, 261b)存儲(370)所述遠程資源。
5. —種由環(huán)境變量值提供程序組件執(zhí)行的方法,用于經(jīng)環(huán)境變 量為應用程序提供對遠程資源的訪問,其特征為包括以下步驟a) 響應于來自應用程序(21)的請求,請求環(huán)境變量的值,b) 掃描環(huán)境變量值以尋找URL記號,c) 如果發(fā)現(xiàn)URL記號,則用指向高速緩存存儲器部件(261a, 261b)的引用代替所述URL記號,d) 如果文件系統(tǒng)事件收聽站檢測到應用程序對高速緩存存儲器 部件(261a, 261b)的請求,則其最終將高速緩存存儲器部件與遠程 文件系統(tǒng)(35)同步。
6. —種用于為應用程序(21)提供對位于電子計算機網(wǎng)絡中的 遠程資源的訪問的電子數(shù)據(jù)處理系統(tǒng),其中所述應用程序(21)在駐 留在所述網(wǎng)絡中的計算機執(zhí)行,所述系統(tǒng)具有a) 掃描裝置,用于掃描(330)所述應用程序的環(huán)境變量的值, 以確定URL記號的出現(xiàn),b) 調用裝置,用于調用(360)遠程功能以訪問在所述掃描過程 (330)中所發(fā)現(xiàn)的URL,以便請求與所述URL相關聯(lián)的遠程資源 (351a, 351b), )存儲裝置,用于在預先分配的高速緩存存儲器部件(261a, 261b)中存儲(370)所述遠程資源,以提供對所述資源的訪問,并 通過預定的更新或通過文件系統(tǒng)事件收聽站將其保持最新,d)更新裝置,用于從預先分配的高速緩存存儲器部件(261a, 261b)更新所述遠程資源,以提供對所述資源的訪問。
7. —種計算機程序產(chǎn)品,用于為應用程序(21)提供對位于電 子計算機網(wǎng)絡中的遠程資源的訪問,其中所迷應用程序(21)在駐留 在所述網(wǎng)絡中的計算機上執(zhí)行,所述計算機程序產(chǎn)品包括具有計算機 可讀程序的計算機可用介質,其中所迷計算機可讀程序包括當在計算 機上執(zhí)行時使計算機執(zhí)行以下步驟的功能組件a)掃描(330)所述應用程序的環(huán)境變量的值以確定URL記號的出現(xiàn),b)調用(360)遠程功能以訪問在所述掃描過程(330)中所發(fā) 現(xiàn)的URL,以便請求與所述URL相關聯(lián)的遠程資源(351a, 351b ),c )在預先分配的高速緩存存儲器部件(261a, 261b )中存儲(370 ) 所述遠程資源,以提供對所述資源的訪問,并通過預定的更新或通過 文件系統(tǒng)事件收聽站將其保持更新,d)在預先分配給所述遠程資源的高速緩存存儲器部件(261a, 261b)中存儲所創(chuàng)建的資源。全文摘要
本發(fā)明涉及網(wǎng)絡計算領域,尤其涉及為應用程序(21)提供對位于電子計算機網(wǎng)絡中的遠程資源的訪問的方法和系統(tǒng),其中應用程序(21)在駐留在網(wǎng)絡中的計算機上執(zhí)行。為了提供使本地運行的應用程序能夠動態(tài)地使用因特網(wǎng)或內聯(lián)網(wǎng)上URL尋址的數(shù)據(jù)而不對其程序源代碼進行任何改變的用于本地運行的應用程序的機制,提出以下方法步驟a)掃描(330)應用程序的環(huán)境變量值以確定URL標記的出現(xiàn),b)調用(360)遠程功能以訪問在掃描過程(330)中所發(fā)現(xiàn)的URL,以便請求與URL關聯(lián)的遠程資源(351a,351b),c)在預先分配的高速緩存存儲器部件(261a,261b)中存儲(370)遠程資源,以提供對資源的訪問。
文檔編號G06F17/30GK101308505SQ20081009302
公開日2008年11月19日 申請日期2008年4月15日 優(yōu)先權日2007年5月16日
發(fā)明者J·帕拉姆伯格 申請人:國際商業(yè)機器公司