使用分布式桌麵包恢復桌面組件的系統和方法
2023-08-13 01:39:06
專利名稱:使用分布式桌麵包恢復桌面組件的系統和方法
技術領域:
本發明涉及用於恢復桌面組件的系統和方法。具體地,本發明涉及使用自包含(self-contained)包數據從分布式計算機恢復桌面組件的系統和方法。
背景技術:
現今的現代計算機軟體系統常常是以分布式方式組織於整個組織之內的企業系統。該組織中的各人員使用依賴於該用戶的職位描述的計算機系統擔當不同的角色。在銀行業例子中,一位用戶可能是出納員,並因此需要出納員應用,以便為銀行客戶提供服務。另一位用戶可能是信貸員,並需要訪問信貸員應用,以為申請貸款的客戶提供服務。第三位用戶可能是分支管理人員,並需要訪問用於管理該銀行分支的計算機功能。各組織常常期望有集中管理它們的分布式共享系統的能力。
傳統的計算機系統通常被設計為或者通過每臺計算機而提供了所有必需的功能例如通過使用計算機網絡訪問所需的功能,或者該系統設計為各工作站擔當特定的角色並因而由特定用戶或用戶組使用。這在多個用戶使用同一客戶端計算機系統的組織中引起了挑戰。在該銀行業例子中,可能有若干出納員共享同一客戶端計算機系統,這取決於班次、星期幾、或哪個出納員恰好被指派到特定工作站。
如果所有的組織功能從同一工作站提供,則未被授權執行特定功能的用戶可能無意地或故意地執行他們未被授權的功能。例如,一位出納員可能無意地或故意地執行信貸員或分支管理人員功能,如果該功能從該出納員的工作站可用的話。傳統系統處理授權的一種方式是通過安裝軟體組件來處理每一個工作站上的每一個職位角色,但根據用戶註冊(login)來限制訪問。然而,該方案的挑戰在於每個工作站需要接收任何新的或改進的軟體組件,以便對於任何可能從任何給定工作站需要這樣的功能的用戶可用。該方案的另一個挑戰是每一臺工作站都必須更改。
用戶所執行的某些功能可能是客戶端-伺服器功能,而其他功能可能涉及使用該用戶的工作站上已安裝的軟體系統。該用戶的工作站上已安裝的軟體系統可包括遺留軟體應用和為特定作業系統環境而編寫的其他軟體。
提供對包括執行特定功能所需的組件的自包含桌麵包的集中管理的系統和方法在對整個組織之中執行的計算功能的組織和管理方面是有用的。使用集中創建和管理的組件的挑戰是由中央管理員所創建的角色的增加的價值和在中央管理員所維護的文件遭到損壞時對該組織的潛在損失。
因此,需要一種允許中央管理員恢復先前發送到位於整個組織內的伺服器和客戶端的組件文件的系統和方法。另外,需要一種唯一標識組件文件,以便標識各組件以及這些組件的多個版本的系統和方法。
發明內容
已發現,使用集中管理桌麵包的系統和方法解決了上述挑戰。該系統允許恢復先前發送到位於整個組織的伺服器和客戶端的組件文件。
管理員將應用指派給用戶和工作站。管理員選擇特定職位角色所需的桌面組件,並將這些組件打包到自包含桌麵包文件中。自包含桌麵包被發送給正使用特定工作站的用戶。系統識別已指派給用戶的一個或多個角色,並將識別出的角色與已指派給工作站的一個或多個角色匹配。對於該工作站和用戶均允許的角色能夠由正使用該工作站的用戶所使用。
在一個實施例中,將組件打包到不同組自包含桌麵包中,每一個包對應於不同的角色。在銀行例子中,將對用戶所擔當的每一個銀行角色(諸如出納員、信貸員和分支管理人員)創建不同的桌麵包。這些自包含桌麵包中的每一個包括執行相應功能所需的組件。例如,用於操作收款機的桌面組件應包括在出納員包中,而用於訪問銀行的信貸應用軟體的桌面組件應包括在信貸員包中。將共用於多個角色的組件包括在需要它們的每一個包中。例如,用於訪問客戶帳戶的組件可包括在出納員和信貸員包中。
將自包含桌麵包傳送或「發布」到伺服器。伺服器又向客戶端提供這些自包含桌麵包。這些包和包括在這些包中的組件包括用於標識這些包和組件的唯一標識符。此外,維護一個詳述包括在每一個自包含桌面文件中的各個組件的清單(manifest)。
當在管理員的計算機系統發生諸如火災或驅動器故障的災難事件時,管理員從包先前所傳送到的伺服器檢索自包含桌面文件。管理員將從自包含桌面文件中拆出的組件重新增加到組件庫中。管理員使用清單確定是否需要向其他伺服器檢索其他的自包含包文件。
上面的描述是概述,因此包含必要的簡化、一般化和省略的細節;因此,本領域的技術人員將理解,該概述只是示例性的,而不是要以任何方式進行限制。僅由權利要求所定義的本發明的其他方面、創造性特徵和優點將在下面列出的非限制性詳細描述中變得顯而易見。
通過參照附圖,可更好地理解本發明,且其眾多目的、特徵和優點對於本領域的技術人員來說是顯而易見的。不同附圖中的相同參考標號的使用表示近似或等同的項目。
圖1是使用自包含桌面的計算機系統的網絡圖;圖2是在提供自包含桌面中所包括的組件的方框圖;圖3是示出為提供自包含桌面而採取的管理員步驟的高級流程圖;圖4是示出為建立特定地點而採取的管理員步驟的流程圖;圖5是示出為建立用戶而採取的管理員步驟的流程圖;圖6是示出為建立工作站而採取的管理員步驟的流程圖;圖7是示出為建立應用擴展而採取的管理員步驟的流程圖;圖8是示出為建立應用引用而採取的管理員步驟的流程圖;圖9是示出為建立自包含桌面而採取的管理員步驟的流程圖;
圖10是示出伺服器為向客戶端傳遞自包含桌面而採取的步驟的流程圖;圖11是管理員為建立新的地點而使用的屏幕的屏幕布局;圖12是管理員為管理給定地點的桌面和機器而使用的屏幕的屏幕布局;圖13是管理員為建立新用戶而使用的屏幕的屏幕布局;圖14是管理員為建立可用作一個或多個自包含桌面內的組件的應用而使用的屏幕的屏幕布局;圖15是管理員為建立本地應用而使用的屏幕的屏幕布局;圖16是管理員為管理工作站而使用的屏幕的屏幕布局;圖17是示出為向伺服器分發自包含桌面而採取的步驟的流程圖;圖18是示出為從伺服器向客戶端分發自包含桌面而採取的步驟的流程圖;圖19是示出為創建定製應用擴展而採取的步驟的流程圖;圖20是示出應用擴展生命周期的流程圖;圖21A是示出從管理員向多個客戶端分發的組件和資源的方框圖;圖21B是示出在管理員出現數據丟失之後管理員從伺服器恢復組件和資源的方框圖;圖22是示出管理員在分發自包含桌面及隨後在災難事件之後從伺服器恢復自包含桌面時所採取的步驟的流程圖;圖23是示出客戶端接收及顯示桌面而採取的步驟的流程圖;圖24是示出伺服器為根據用戶的角色和工作站的角色向客戶端提供桌面信息而採取的步驟的流程圖;圖25是示出伺服器所執行的處理及伺服器、客戶端和管理員之間的交互作用的方框圖;圖26是示出客戶端在初始化和顯示自包含桌面時所採取的步驟的流程圖;圖27是顯示於客戶端工作站之上的樣本桌面以及該客戶端可用的其他自包含桌面的彈出菜單的屏幕布局;圖28A是客戶端外殼在顯示和管理桌面時所使用的目錄的層次圖;圖28B是包括在外殼配置文件中的各部分的層次圖;圖28C是包括在自包含桌面文件中的各對象的層次圖;圖29是示出初始化客戶端以使用自包含桌面而採取的步驟的流程圖;圖30是示出在客戶端初始化期間所採取的步驟的流程圖;圖31是示出在本地作業系統註冊期間所採取的步驟的流程圖;圖32是示出當調用Java外殼啟動程序時所採取的步驟的流程圖;圖33A是示出智能圖形組件的示例的屏幕布局;圖33B是示出智能圖形組件的第二示例的屏幕布局;圖34是示出各種桌面對象的層次圖;圖35是示出在初始化智能圖形組件時所採取的步驟的流程圖;圖36是示出在處理智能圖形組件的顯示屬性時所採取的步驟的流程圖;圖37是示出在處理智能圖形組件的行為屬性時所採取的步驟的流程圖;以及圖38是能夠實現本發明的信息處理系統的方框圖。
具體實施例方式
以下旨在提供本發明的示例的詳細描述,其不應被認為是對本發明自身的限制。而是,眾多變體都可能落入說明書之後的權利要求中定義的本發明的範圍內。
圖1是使用自包含桌面的網絡計算機系統的網絡圖。管理員100通過結合圖像115、應用擴展120、國家語言轉換125、客戶端配置文件130、伺服器配置文件135、及桌面簡檔信息140來創建自包含桌面110。自包含桌面110包括客戶端使用指定了客戶端特定角色的客戶端工作站上的組件所需的所有信息。
自包含桌面110被傳送到一個或多個伺服器150,以便向客戶端分發。伺服器150將用戶角色155與工作站角色160結合,以確定將哪一個自包含桌面發送到客戶端。客戶端165執行註冊功能170,在此期間收集用戶ID和口令並將其傳送到伺服器150,以完成註冊。客戶端165執行註冊功能1 70,在此期間收集用戶ID和機器ID並將其傳送到伺服器150,以接收允許的桌面列表。
伺服器150從客戶端接收用戶ID、口令和機器ID,並根據對應於該特定用戶ID和正被該客戶端使用的特定工作站的用戶角色155和工作站角色160確定將哪個自包含桌面發送到客戶端。所確定的自包含桌面被分別從伺服器150傳送到客戶端165。
客戶端165執行加載外殼進程175,以將外殼應用180加載到客戶端工作站上。外殼進程是被加載到諸如Java虛擬機(JVM)的中間件應用之上的應用。這樣,不管客戶端工作站正使用的作業系統平臺為何,外殼應用都呈現為是一致的並基本相似。外殼應用180適於檢索和顯示自包含桌面190。客戶端165根據用戶和工作站標識符的交集來接收自包含桌面。使用過程185來接收和顯示自包含桌面。因此,給定客戶端能使用多個自包含桌面。這些自包含桌面包括工具欄、菜單和其他用於與用戶通信的圖形用戶接口項目。這些用戶接口中的一部分包括與伺服器150所擁有的伺服器應用通信的功能。其他的用戶接口包括映射到基於客戶端的應用的擴展。當用戶點擊映射到基於客戶端的應用的桌面組件時,存在於該自包含桌面中的功能調用、或以其他方式使用該基於客戶端的應用。如果客戶端具有任意使用的多個自包含桌面,則用戶可通過使用外殼應用180所提供的菜單在各自包含桌面之間進行切換。例如,在銀行環境中,如果一個用戶既是信貸員又是分支管理人員,則如果該工作站能夠執行這兩個角色,則將這些角色的相應自包含桌面都加載到外殼180中。為執行信貸員功能,用戶從外殼應用180選擇信貸員桌面。同樣地,為執行分支管理人員功能,用戶從外殼應用180選擇分支管理人員桌面。此外,可提供預設角色,以便初始顯示的桌面符合用戶的基本或預設角色。
圖2是在提供自包含桌面中所包括的組件的方框圖。管理員200定義了拓撲、用戶定義、地點定義和桌面定義。管理員200通過提供工作站定義205來定義拓撲。工作站定義205包括工作站地址210和定義哪些角色或桌面允許在各工作站上使用的允許的桌面215。例如,在銀行環境中,位於出納窗口的工作站可能具有諸如出納箱的特殊配備,以便該工作站能夠或被允許執行出納員功能。另一個可能在遠離出納員區域的辦公桌處的工作站可能不能執行出納員功能。
用戶定義220用於定義系統的用戶和這種用戶所擔當的角色。用戶定義220包括用戶數據225和所指派的組數據230。用戶數據225包括用戶標識符和用戶口令。所指派的組數據230包括特定用戶被允許擔當的角色。例如,分支管理人員可被允許執行分支管理人員、信貸員和出納員的功能,而出納員可能僅被允許執行出納員功能。
地點定義235包括關於特定地點的信息。在銀行環境中,地點可能是該銀行的分支。地點定義235包括提供用於特定地點處的用戶的公共桌面的組桌面映射240以及提供關於該地點的詳情的地點信息245。
桌面定義250包括用於創建客戶端所使用的自包含桌面的組件。桌面定義250包括顯示於自包含桌面上的圖像252和提供有關從自包含桌面可訪問的基於客戶端的應用的詳情的應用擴展254。桌面定義250還包括諸如國家語言轉換256的資源,以便用戶能夠選擇最適合他們的需要的諸如語言偏好的資源。桌面定義250還包括客戶端配置258和伺服器配置260。這些配置包括有關包括在特定自包含桌面中的組件的信息。
管理員200創建自包含桌面,並將該自包含桌面發布於客戶端可訪問的一個或多個伺服器265上。伺服器265包括永久性存儲器270和認證功能280。永久性存儲器270包括用戶數據272、拓撲信息274和自包含桌面276。用戶數據和拓撲數據用於確定哪一個自包含桌面276允許由使用給定工作站的給定客戶端來使用。伺服器265向客戶端290提供對於特定用戶/工作站授權了的桌面。客戶端接收該自包含桌面,並將其顯示在獨立於平臺的外殼295上。這樣,伺服器265向客戶端290發送識別出的桌面,而無需考慮該客戶端正使用的特定作業系統平臺。
圖3是示出管理員為提供自包含桌面而採取的步驟的高級流程圖。管理員處理開始於300,其中管理員定義用戶(預定過程310,參見圖5的進一步詳情)。管理員還定義該系統的用戶所使用的工作站(預定過程320,參見圖6的進一步詳情)。
建立客戶端所需的諸如國家語言轉換的資源,以便這些資源可包括在自包含桌面中(預定過程330)。定義對應於可從工作站獲得的應用的應用擴展(預定過程340,參見圖7的進一步詳情)。對自包含桌面進行打包,其包括了擔當特定職位角色所需的所有組件(預定過程350,參見圖8的處理詳情)。
對於是否增加新地點進行判斷(判定360)。如果正增加一個新地點,則判定360轉到「是」分支365,其中定義新地點(預定過程370,參見圖4的處理詳情)。另一方面,如果沒在增加新地點,則判定360跳過步驟370而轉到「否」分支375。
將所定義的桌面映射到一個或多個地點及一個或多個角色(預定過程380)。這樣,可在多個地點上為多個角色使用一單個桌面。反過來,可在每個地點上並對於每個角色定義和使用不同的桌面。將桌面組件打包成自包含桌面,並將該自包含桌面發布到一個或多個伺服器上,以供對各客戶端的分發(預定過程390,參見圖9的處理詳情)。管理員處理在395結束。
圖4是示出為建立特定地點而採取的管理員步驟的流程圖。處理開始於400,其中將唯一標識符指派給該地點(步驟405)。為該地點識別父地點(步驟410)。例如,分支可能具有作為父地點的地區辦公室。這樣,新地點可從父地點繼承特徵和屬性,從而該些特徵和屬性是一致的而不必對每個地點重新加入。對於是否識別出父地點進行判斷(判定415)。如果識別出父地點,則判定415轉到「是」分支418,其中檢索父地點的策略和桌面(步驟420)。另一方面,如果父地點未被識別出,則判定415轉到「否」分支422,其中管理員將策略和桌面設置為該地點的預設值(步驟425)。
可根據特定地點的需要,對該特定地點的檢索到的或所設置的策略進行修改(步驟430)。這樣,一個地點可具有與父地點稍微不同的策略。各地點具有工作在該地點的用戶所擔當的一個或多個角色。在銀行環境中,分支地點可能具有諸如出納員、信貸員和分支管理人員的角色。選擇該地點的第一個角色(步驟435)。對該角色是否需要改變進行判斷(判定440)。如果該角色需要改變,則判定440轉到「是」分支445,其中為該角色選擇自包含桌面(步驟450)。另一方面,如果該桌面不必為該角色進行改變,則判定440跳過步驟450而轉到「否」分支455。這樣,子地點為特定角色使用與父地點相同的桌面,然而管理員具有向子地點為給定角色指派不同桌面的靈活性。
對該地點是否存在更多角色進行判斷(判定460)。如果存在更多角色,則判定460轉到「是」分支465,其中選擇該地點的下一個角色(步驟470),且處理循環返回以處理這下一個角色。該循環持續到該地點不再有角色時為止,此時判定460轉到「否」分支475,其中對為該地點選擇的桌面和其他數據進行存儲(步驟480)。然後,處理在495返回。
圖5是示出管理員為定義新用戶而採取的步驟的流程圖。處理開始於500,其中向該用戶指派一個諸如用戶ID的唯一用戶標識符給(步驟505)。還向該用戶指派一個初始口令(步驟510)。還為該用戶輸入用戶名和/或描述(步驟515)。為該用戶選擇國家語言偏好(步驟520)。
從管理員所創建的並存儲於數據存儲器530中的角色列表中為該用戶選擇一個角色(步驟525)。對所選擇的角色是否是該用戶的預設角色進行判斷(判定540)。如果所選擇的角色是該用戶的預設角色,則判定540轉到「是」分支545,其中將所選擇的角色指派為該用戶的預設角色(步驟550)。另一方面,如果所選擇的角色不是預設角色,則判定540跳過步驟550而轉到「否」分支555。
對是否存在更多角色要指派給該用戶進行判斷(判定560)。如果存在更多角色要指派給該用戶,則判定560轉到「是」分支565,其循環返回以選擇並處理該用戶的下一個角色。該循環持續到不再有角色指派給用戶時為止,此時判定560轉到「否」分支570,其中對指派給該用戶的角色進行存儲(步驟580)。然後,操作在595返回。
圖6是示出管理員為建立工作站而採取的步驟的流程圖。處理開始於600,於是為工作站輸入諸如MAC地址的標識符(步驟610)。MAC地址是媒體訪問控制(Media Access Control)地址,其是唯一標識計算機網絡的每個節點的硬體地址。向該工作站指派主機或伺服器(步驟620)。為該工作站指派或檢索一個IP位址(步驟630)。還為該工作站輸入工作站描述(步驟640)。工作站描述可包括諸如該工作站是否包括銀行出納箱的工作站能力的描述。
從管理員創建並存儲於數據存儲器660中的角色列表中為該工作站選擇第一個角色(步驟650)。例如,在銀行環境中,角色可能包括出納員、信貸員和分支管理人員。一個工作站可能能夠擔當所有這三種角色,而另一個僅能夠擔當這些角色中的一種或兩種。此外,即使其他的工作站可能物理上能夠執行機密或敏感的功能,但這樣的功能也可能被限制到特定工作站上。對是否存在更多角色要指派給該工作站進行判斷(判定670)。如果存在更多角色要指派給該工作站,則判定670轉到「是」分支675,其中選擇該工作站的下一個角色(步驟680)。該循環持續到不再有角色指派給該工作站時為止,此時判定670轉到「否」分支685。將所指派的角色和工作站數據存儲(步驟690)在非易失性存儲區中。然後,處理在695返回。
圖7是示出管理員為建立應用擴展而採取的步驟的流程圖。應用擴展是提供對諸如基於客戶端的遺留應用的應用程式的訪問的桌面組件。處理開始於700,其中向特定應用擴展指派擴展標識符(步驟705)。輸入描述相應應用的應用描述(步驟710)。還輸入該應用擴展的客戶端類(步驟715)。
對該擴展是由系統提供還是由用戶來提供進行判斷(判定720)。如果該擴展由用戶來提供,則判定720轉到用戶分支725,其中輸入對應於該擴展的Java存檔(JAR)文件名(步驟730)。另一方面,如果該擴展由系統來提供,則判定720跳過步驟730而轉到系統分支735。
對是否需要管理員面向對象類進行判斷(判定740)。如果需要管理員類,則判定740轉到「是」分支745,其中輸入管理員類名(步驟750)。另一方面,如果不需要管理員類,則判定740跳過步驟750而轉到「否」分支755。
使用所提供的信息創建應用擴展(步驟760)。對是否存在該應用擴展的任何預設屬性進行判斷(判定770)。如果存在預設屬性,則判定770轉到「是」分支775,其中為該應用擴展輸入預設屬性(步驟780)。另一方面,如果不存在該應用擴展的預設屬性,則判定770跳過步驟780而轉到「否」分支785。
將該應用擴展與任何預設屬性一起存儲(步驟790)於非易失性存儲區中。然後,處理在795返回。
圖8是示出為建立應用引用而採取的管理員步驟的流程圖。處理開始於800,其中選擇對應於該應用引用的引用類型(即擴展類型)(步驟81 0)。向該應用引用指派唯一的應用引用標識符(步驟820)。還為該應用引用提供應用描述(步驟830)。還提供諸如圖標標題和圖標文件名的圖標屬性(步驟840)。還輸入特定於該應用擴展類型的屬性(步驟850)。然後,將該應用引用存儲於非易失性存儲區中(步驟860),且處理在895返回。
圖9是示出管理員為創建自包含桌面而採取的步驟的流程圖。處理開始於步驟900,其中向該自包含桌面指派唯一的桌面標識符(步驟905)。為該桌面輸入桌面標題和/或描述(步驟910)。為該桌面輸入屏幕和圖標外觀(步驟915)。然後,管理員選擇要呈現在該桌面上的諸如圖標、背景等的圖像(步驟920)。這些圖像選自於桌面組件庫925中。桌面組件庫925包括背景和其他圖像930、圖標935、應用引用945及資源955。
從包括在桌面組件庫925中的應用引用945選擇(步驟940)從該桌面可用的應用引用。在銀行環境中,出納員的桌面可包括查看客戶銀行餘額及操作出納員的收銀機的應用引用,而信貸員的桌面可包括提供對銀行的放款核准軟體應用的訪問的應用引用。為每個所支持的區域提供諸如文本和資源的國家語言數據(步驟950)。這些資源選自於包括在桌面組件庫925中的資源955。
對詳述桌面所包括的文件和資源的桌面配置進行存儲(步驟960)。創建描述該桌面的客戶端配置文件,並對桌面數據進行打包(步驟970),從而得到自包含桌面975。通過將該桌面傳送給伺服器990而將所得到的自包含桌面發布到客戶端可訪問的伺服器(步驟980)。然後,處理在995返回。
圖10是伺服器為向客戶端呈遞自包含桌面而採取的步驟的流程圖。處理開始於1000,其中伺服器接收用戶註冊和工作站標識符(步驟1005)。用戶註冊包括用於對用戶進行認證的用戶標識符和用戶口令。在用戶目錄數據存儲器1015中檢索已指派給該用戶的角色(步驟1010)。在拓撲目錄1025中檢索已指派給該工作站的角色(步驟1020)。
對指派給該用戶的任何角色是否與指派給該工作站的任何角色匹配進行判斷(判定1030)。如果不存在共有的角色,則判定1030轉到「否」分支1035,其中向客戶端返回出錯消息(步驟1038),且處理在1095返回。另一方面,如果存在一個或多個共有的角色,則判定1030轉到「是」分支1040,其中從桌面/角色映射1050中檢索所選擇的角色的第一桌面,並在數據存儲器1055中檢索相應的自包含桌面。對用戶和工作站之間是否還存在共有的角色進行判斷(判定1060)。如果存在更多共有的角色,則判定1060轉到「是」分支1070,其中選擇下一個共有的角色(步驟1080),且處理循環返回以檢索相應的自包含桌面。該循環持續到用戶和工作站之間不再有共有的角色時為止,此時判定1060轉到「否」分支1065,其中將檢索到的桌面標識符(即那些用戶和工作站共有的標識符)發送給客戶端(步驟1090)。然後,處理在1095返回。
圖11是管理員為建立新地點而使用的屏幕的屏幕布局。管理員使用屏幕布局1100來定義新地點。管理員在文本框1150中輸入唯一的地點標識符。如果該新地點是已創建的地點的子地點,則從列表框1105中選擇父地點。列表框1105包括先前定義的地點標識符列表。框架1110包括用於該地點的策略信息。策略信息包括策略名稱1115、策略值1120及繼承數據1125。繼承數據1125包括繼承值1130和繼承祖先1135。在所示出的例子中,策略名稱是「newbDC」,且策略值是從父地點繼承的。繼承值是「允許」,且繼承祖先是「根」或地點層次中的最高地點。
桌面框架1140包括關於在該地點上可用的角色和桌面的信息。桌面框架1140包括角色數據1155、桌面數據1160和繼承數據1170。繼承數據包括所繼承的桌面的名稱1175和該桌面從其被繼承的祖先的名稱1180。在該示例中,包括在該地點上的角色包括管理員、分支管理人員、客戶、信貸員和出納員。這些桌面中的每一個都是從父地點繼承的,如桌面欄位的「[繼承的]」值所示的那樣。管理員、分支管理人員和信貸員桌面是從「分支A」地點繼承的,而客戶和出納員桌面是從「根」地點繼承的。這樣,可從各父地點選擇自包含桌面,或可為子地點專門配置自包含桌面。
當已輸入了新地點數據時,管理員選擇創建新地點的「創建地點」命令按鈕1190。如果管理員出錯並希望重置各值,則管理員可選擇「重置值」命令按鈕1195。
圖12是管理員為管理給定地點的桌面和機器而使用的屏幕的屏幕布局。管理員使用屏幕布局1200來管理給定地點的桌面和機器,以及添加和管理對應於該地點的工作站。屏幕布局1200的頂部類似於圖11中示出的新地點布局。列表框1205用於選擇要指派給該地點的父地點。可改變父地點以適應組織內的變化。策略框架1210包括策略名稱1212、策略值1214和繼承數據1216。繼承數據包括繼承值1218和祖先值1220。在所示出的例子中,策略名稱是從「根」祖先繼承的「newbDC」。
桌面框架1225包括角色數據1230、桌面數據1235和桌面繼承數據1240。在圖12中所示的銀行例子中,為該地點包括的角色包括管理員、分支管理人員、客戶、信貸員和出納員。桌面要由管理員、分支管理人員、客戶、信貸員和出納員使用。這些角色中的每個顯示於桌面數據1235中。這些值中的一些從父地點繼承而來,而其他的則被指定作為特定的自包含桌面。桌面繼承數據包括桌面繼承1242和祖先數據1244。在所示出的例子中,管理員、分支管理人員和信貸員中的每一個從「分支A「繼承桌面數據,而客戶和出納員中的每一個從「根」父地點繼承桌面數據。
如果管理員更改地點數據並希望存儲更改後的地點信息,則管理員選擇「「提交更改」命令按鈕1245。如果管理員希望重置各地點值,則管理員選擇「重置值」命令按鈕1250。如果管理員希望刪除該地點,則選擇「刪除地點」命令按鈕1255。
當管理員準備將該地點發布到伺服器上時,管理員選擇「發布」命令按鈕1260。如果管理員希望連同該地點的任何子地點一起發布該地點,則該管理員選擇「與子地點一起發布」命令按鈕1265。
子地點框架1270包括有關該地點的任何子地點的數據。子地點數據包括地點名稱1272和地點策略1278。為創建新的子地點,管理員可選擇允許該管理員識別新的子地點的「新地點」超連結1275。
機器框架1280包括關於在該地點處所包括的工作站的數據。工作站數據包括工作站標識符1282、工作站的主機名1284、工作站類型1286、工作站所提供的角色1288、工作站的IP位址1290和工作站描述1292。為向該地點增加新的機器(工作站),管理員選擇「新機器」超連結1295。
圖13是管理員為建立新用戶而使用的屏幕的屏幕布局。屏幕布局1300包括用於輸入新用戶的唯一標識符的文本框1305。在文本框1310中輸入用戶的全名。另外,在文本框1315中可輸入用戶的描述。例如,可將用戶ID建立為諸如客戶或出納員的通用標識符,其可由某人使用而不必為這種偶然的或非全日的用戶建立新的用戶標識符。可使用描述文本框欄位1315進一步描述用於這種通用目的的用戶標識符。
在文本框1320中為用戶輸入新的初始口令。管理員通過在文本框1325中再次輸入該口令來確認該新的初始口令。管理員使用列表框1330為用戶選擇預設區域。在所示出的例子中,已為說美式英語的用戶選擇了美國區域。但是,如果用戶的基本語言是西班牙語或其他語言,則從文本框1330中提供的列表中選擇適當的區域。
框架1332由管理員使用,以選擇符合該用戶的角色。預設角色1335包括若干對應於每個可用角色的單選按鈕。使用這些單選按鈕,從而管理員僅為該用戶選擇一個預設角色。選擇列1340包括若干對應於每個可用角色的複選框。管理員選擇對應於由該用戶擔當的每一個角色的複選框。名稱列1345包括每個可用角色的名稱。在所示出的例子中,可用角色包括管理員、分支管理人員、客戶、信貸員和出納員。管理員可通過選擇列1340中的相應複選框來選擇這些角色中的一個或多個。另外,管理員可通過選擇「新角色」超連結1350來建立新的角色。
當管理員完成輸入用戶數據及向用戶指派角色時,管理員選擇「創建用戶」命令框1355來創建和存儲用戶數據和所指派的角色。如果管理員出錯並希望重置這些值,則選擇「重置值」命令按鈕1360。
圖14是管理員為建立可用作一個或多個自包含桌面內的組件的應用而使用的屏幕的屏幕布局。屏幕布局1400用於定義可包括在自包含桌面中的新應用。管理員使用應用標識符文本框1405來輸入對應於正被定義的應用的唯一應用標識符。在圖14中示出的例子中,正被定義的應用的類型是「本地」應用,換句話說,其是其中至少該應用的某些可執行文件位於客戶端工作站上的應用。
在描述文本框1410中輸入正被定義的應用的描述。圖標屬性框架1415用於定義與將呈現於桌面上並由用戶使用以選擇該應用的圖標相對應的屬性。圖標屬性包括在文本框1420中輸入的標題和在文本框1425中輸入的圖標文件名。
平臺屬性框架1430包括該應用可從其被調用的每個所支持的作業系統平臺的數據。Win32框架1435包括用於從Microsoft Windows作業系統平臺調用和執行該應用的數據。Win32數據包括標識該應用在Win32環境中的可執行形式的路徑和文件名。在文本框1440中輸入該路徑和文件名。在參數文本框1445中提供該應用所需的任何參數。如果需要,在文本框1455中輸入對應於該應用的工作目錄。
平臺屬性框架1430還包括用於OS/2作業系統平臺的數據,用於OS/2作業系統平臺的欄位位於框架1460中。OS/2欄位對應於上面描述的Win32欄位。這些包括路徑和文件名文本框1465、參數文本框1470和工作目錄文本框1475。同樣,在包括路徑和文件名文本框1482、參數文本框1484和工作目錄文本框1486的框架1480中提供Linux欄位組。
當管理員已輸入了應用信息時,管理員可通過選擇「創建應用」命令按鈕1490來創建該應用。如果管理員出錯,則可通過選擇「重置值」命令按鈕1495來重置新的應用值。
圖15是管理員為建立自包含桌面而使用的屏幕的屏幕布局。屏幕布局1500包括用於定義自包含桌面的外觀和功能的各欄位。將先前定義的桌面標識符顯示在屏幕上。在所示出的例子中,桌面標識符是「bda-管理員」。管理員在文本框1505中輸入自包含桌面的標題。在所示出的例子中,該標題為「管理員」。在文本框1510中輸入自包含桌面的描述。在所示出的例子中,所輸入的描述是″BDA管理員的桌面″。
管理員使用列表框1515選擇自包含桌面的啟動模式。啟動模式指從桌面激活組件所需的滑鼠點擊次數。在所示出的例子中,所選擇的啟動模式為「2」 (即雙擊)。在框架1520中輸入圖標屬性。管理員在適當的文本框中輸入最大允許和可顯示圖標標題長度。
管理員在框架1525中輸入背景外觀信息。管理員為自包含桌面的背景提供顏色、圖像文件和圖像顯示模式。例如,桌面背景數據可包括該組織的名稱和標誌。管理員將圖標外觀信息輸入到框架1530中。圖標外觀數據包括圖標的文本顏色、與圖標一起使用的字體、與圖標一起使用的字號、用於圖標的字形、圖標流、圖標流的起始點和圖標文本的文本位置。
當管理員已完成建立自包含桌面時,管理員選擇「提交更改」命令按鈕1540來保存桌面設置。如果管理員出錯並希望重置這些值,則選擇「重置值」命令按鈕1545。如果管理員希望刪除該自包含桌面定義,則選擇「刪除桌面」命令按鈕1550。
超連結1560用於添加、修改或刪除從自包含桌面可用的引用。這些可用的引用包括應用1570、文件夾1580和工具欄1590。在所示出的例子中,所包括的應用由「acroread」、「計算器」和「「瀏覽器」組成。所包括的文件夾由應用文件夾和兩個管理員文件夾組成。還包括一個工具欄,即管理員工具欄。
圖16是管理員為管理工作站而使用的屏幕的屏幕布局。管理員使用屏幕布局1600來管理在整個網絡中使用的工作站或計算機系統。為每個工作站所維持的數據包括在列1610中列出的工作站標識符、在列1620中列出的工作站所屬的地點、在列1630中列出的指派給工作站的主機(或伺服器)、在列1640中列出的工作站所執行的功能的類型、在列1650中列出的允許工作站擔當的角色、在列1660中列出的工作站的IP位址、以及在列1670中列出的工作站的描述。
列1610中示出的標識符對於每一個工作站是唯一的。在圖16中示出的例子中,該標識符是對應於工作站的MAC地址。圖16中示出的地點為「根」地址、分支「A」或分支「B」。這些地點可代表該組織內的物理或邏輯區域。主機名稱是工作站所使用的伺服器的名稱。工作站所執行的功能的類型包括管理功能、伺服器功能、和客戶端功能。以「A」結尾的類型用於管理功能、以「S」結尾的類型用於伺服器功能、而以「C」結尾的類型用於客戶端功能。如可以在圖16中看出的,某些工作站執行多種類型的功能。例如,所列出的第一個工作站作用於管理員和伺服器功能二者。角色指在工作站上允許執行的功能。角色通常涉及客戶端功能,因此不具有客戶端類型的工作站沒有被指派角色。具有所指派的角色的工作站常常具有多個角色。例如,所列出的第三個工作站具有允許在該工作站上擔當的四個角色(出納員、信貸員、分支管理人員和客戶)。然而,所示出的第四個和第五個工作站僅具有允許在每一個工作站上擔當的一個角色。IP位址是指派給工作站的網絡地址。在某些環境中,IP位址是靜態地址,而在其他環境中,IP位址是動態指派的。每一個工作站的描述是可選的,但它有助於管理員更好地標識特定工作站以及這種工作站所扮演的角色。
圖17是示出將自包含桌面分發到伺服器所採取的步驟的流程圖。管理員桌面分發處理開始於1700,其中選擇供分發的第一個桌面(步驟1705)。利用桌面名稱和諸如CRC值的唯一籤名創建請求(步驟1710)。將所創建的桌面請求發送到一個或多個伺服器(步驟1715)。對是否存在更多桌面要分發進行判斷(判定1720)。如果存在更多桌面要分發,則判定1720轉到「是」分支1722,其中處理選擇下一個供分發的桌面(步驟1725),且循環返回以創建請求,並將請求發送到伺服器。該循環持續到不再有桌面要分發時為止,此時判定1720轉到「否」分支1728。
管理員接收產生於先前發送的桌面請求的伺服器響應(步驟1730)。根據該響應,對該桌面是否已存在於伺服器上進行判斷(判定1735)。如果該桌面還未存在於伺服器上,則判定1735轉到「否」分支1738,其中將所識別的桌面以數據流發送給伺服器(步驟1740)。另一方面,如果該桌面已存在於伺服器上,則判定1735跳過步驟1740而轉到「是」分支1742。
對是否存在要從伺服器接收的對於桌面請求的更多響應進行判斷(判定1745)。如果存在更多響應,則判定1745轉到「是」分支1746,循環返回並處理該響應。該循環持續到不再有響應要處理時為止,此時判定1745轉到「否」分支1748,且管理員桌面分發處理在1750結束。
伺服器桌面收集處理開始於1755,其中伺服器接收由管理員發送的桌面分發請求(步驟1760)。將包括在管理員的請求中的桌面的唯一標識符與伺服器上當前現有的桌面數據1768進行比較(步驟1765)。根據該比較,對伺服器是否需要該桌面進行判斷(判定1770)。如果該桌面不必要(即該桌面已存在於伺服器上),則判定1770轉到「否」分支1772,其中向管理員發送一個消息,指示伺服器已經具有該桌面(步驟1775),且伺服器處理在1795結束。
另一方面,如果伺服器還不具有該桌面,則判定1770轉到「是」分支1778,其中伺服器請求該桌面(步驟1780)。響應該請求,伺服器接收該桌面數據流(步驟1785)。然後,伺服器根據所接收的數據流創建自包含桌面文件,並將該桌面文件存儲於桌面數據存儲區1768中(步驟1790)。然後,伺服器桌面收集處理在1798結束。
圖18是示出將自包含桌面從伺服器分發到客戶端所採取的步驟的流程圖。客戶端桌面接收開始於1800,其中客戶端向伺服器發送桌面列表請求(步驟1805)。桌面列表請求包括客戶端的機器(工作站)標識符和客戶端的用戶標識符。
伺服器桌面分發處理開始於1840,其中伺服器從客戶端接收桌面列表請求(步驟1845)。伺服器通過搜索用戶角色數據存儲1852而查找已指派給用戶的角色(步驟1850)。伺服器還通過搜索機器角色數據存儲1858而查找已指派給正由該用戶使用的工作站的角色(步驟1855)。
伺服器根據用戶角色與機器角色之間的交集或重疊來檢索桌面信息(步驟1860),並在桌面數據存儲1862中定位對應於該重疊角色的桌面。檢索到的桌面信息包括用於唯一標識桌面的桌面標識符和桌面籤名,諸如CRC。用戶可具有預設角色及對應於該角色的預設桌面。如果用戶具有預設角色,則伺服器確定該預設角色(步驟1865)。
伺服器創建有效角色、桌面籤名、預設桌面標識符(如果可應用)和預設角色(如果可應用的話)的響應串(步驟1870)。然後,伺服器將該響應串返回給客戶端(步驟1875)。
客戶端從伺服器接收包括已指派給用戶和該工作站的角色以及任何預設角色和預設桌面信息的桌面列表(步驟1810)。客戶端將包括在該桌面列表中的桌面與已緩存在該客戶端工作站上的桌面進行比較(步驟1815)。這樣的實現使得客戶端僅需要請求那些先前未傳送給該客戶端工作站並緩存在該工作站易失性或非易失性存儲區中的桌面。
客戶端通過識別其他尚未緩存在該客戶端工作站上的桌面或組件來確定是否需要來自伺服器的這種其他組件或桌面(判定1820)。如果客戶端確定不需要其他的桌面組件,則判定1820轉到「否」分支1832(跳過用於請求和檢索其他桌面信息的步驟),且客戶端處理在1835結束。
另一方面,如果客戶端需要其他的組件或桌面,則判定1820轉到「是」分支1822,其中向伺服器請求所需的桌面(步驟1825)。伺服器在伺服器步驟1885接收該請求。伺服器通過從桌面數據存儲1862檢索該請求桌面信息並將其返回至客戶端工作站來進行響應(步驟1890)。然後,伺服器桌面分發處理在1895結束。
返回到客戶端處理,客戶端在步驟1830接收並緩存所請求的桌面信息,且客戶端桌面接收處理在1835結束。
圖19是示出為創建定製應用擴展而採用的步驟的流程圖。定製應用擴展允許第三方擴展先前存在的面向對象類,以修改伺服器類對象的行為或屬性,從而更好地滿足特定組織的需要。定製應用擴展創建處理開始於1900,其中提供實現特定組件接口的客戶端面向對象類(步驟1910)。對是否擴展該伺服器抽象類進行判斷(判定1920)。如果該抽象類未在被擴展,則判定1920轉到「否」分支1925,其中將預設伺服器組件用於該組件接口(步驟1930)。另一方面,如果該抽象類正在被擴展,則判定1920轉到「是」分支1935,其中提供擴展該伺服器組件抽象類的伺服器類(步驟1940)。
對該定製應用擴展是否需要其他的資源進行判斷(判定1950)。如果需要其他的資源,則判定1950轉到「是」分支1955,其中提供該應用擴展所使用的這些其他資源(步驟1960)。這些其他資源可包括圖像、屬性文件和該應用擴展所使用的其他類文件。另一方面,如果不需要其他的資源,則判定1950跳過步驟1960而轉到「否」分支1965。
將客戶端類、伺服器類和任何其他資源打包到Java存檔(JAR)文件中(步驟1970)。將打包後的定製擴展存儲於定製擴展庫1980中。定製應用擴展的創建過程在1995結束。
圖20是示出應用擴展生命周期的流程圖。該應用擴展生命周期開始於步驟2000。在應用擴展生命周期的第一階段期間,應用擴展使用無參數構造器(步驟2025)。通過加載應用擴展組件的Java實現類並調用無參數構造器,來使用該無參數構造器創建該應用擴展組件。此時,該應用擴展組件不具有對客戶端桌面的引用,且不能與該桌面環境進行交互。在此階段期間,對實例變量和預設設置進行初始化。
在該應用擴展生命周期的下一階段期間,應用擴展進行初始化(步驟2050)。在初始化階段期間,在組件接口中定義對應於該應用擴展的初始化的方法。還提供對組件配置項、初始區域信息和桌面引用的引用。優選地,在該階段期間將桌面引用作為實例變量保存。
在該應用擴展生命周期的最後階段期間,調用對應於該應用擴展的啟動方法(步驟2075)。該啟動方法由桌面來調用。例如,當用戶選擇了對應於該應用擴展的圖標時,可調用該啟動方法。在此階段期間,應用擴展可使用桌面引用以及對其他桌面組件的引用。另外,該應用擴展可在此時啟動各線程,並執行I/O操作。
圖21A是示出從管理員向多個客戶端分發的組件和資源的方框圖。管理員2100通過將組件和資源庫2105所打包成的各桌麵包2110發送到各伺服器來發布組件和資源庫2105。
在圖21A中示出的例子中,存在三個從管理員接收桌麵包的伺服器。這些伺服器包括伺服器2120、伺服器2140和伺服器2160。這些伺服器中的每個包括用於存儲從管理員接收的桌麵包的非易失性存儲區。伺服器2120使用非易失性存儲區2125存儲桌麵包,伺服器2140使用非易失性存儲區2145,而伺服器2160使用非易失性存儲區2165。在圖17中所描述的過程中,從管理員向伺服器分發桌麵包。該伺服器用於向各客戶端提供桌麵包。
在圖21A中示出的例子中,存在兩個從這些伺服器中的每個接收桌麵包的客戶端。客戶端2130和2135從伺服器2120接收桌面,客戶端2150和2155從伺服器2140接收桌面,而客戶端2170和2175從伺服器2160接收桌面。使用圖18中所描述的過程從伺服器向客戶端分發桌面。以這樣的方式,從整個系統的管理員向伺服器且最終向各客戶端分發在各自包含桌面中使用的組件和資源。
圖21B是示出在管理員出現數據丟失之後管理員從伺服器恢復組件和資源的方框圖。當發生諸如計算機崩潰、著火或水災的災難事件時,管理員可能丟失了用於創建各自包含桌面的組件和資源。為了恢復這些文件,管理員2100向各伺服器請求這些桌麵包,其中包括組成這些桌麵包的組件。使用圖21A中描述的拓樸,管理員向伺服器2120、2140和2160請求包。這些伺服器分別從存儲區2125、2145和2165檢索包括桌面組件的自包含桌麵包。桌面信息被從各伺服器傳送回給管理員。管理員將所接收的自包含桌麵包存儲在恢復的包庫2180中。從桌面文件中提取出包括在這些自包含桌面中的組件和資源,並將其存儲在恢復的組件和資源庫2190中。以這種方式,管理員能夠恢復先前已發布到各伺服器的組件和資源。進行此恢復,而不必使管理員產生這些組件和資源的單獨副本。因為各組件和資源包括唯一的標識符,所以也能夠恢復各組件和資源的多個版本或級別。圖22中示出了管理員為恢復桌面數據而採取的步驟的流程圖。
圖22是示出管理員在分發自包含桌面及隨後在災難事件之後恢復自包含桌面時所採取的步驟的流程圖。管理員處理開始於2200,其中管理員創建將在自包含桌面中使用的組件和資源(步驟2205)。將這些組件和資源存儲於在非易失性存儲區2210中存儲的庫中。
將這些組件和資源打包(步驟2215)成各自包含桌面,供各用戶根據該用戶的角色來使用。將各自包含桌面存儲於自包含桌面庫2225中。將各自包含桌面分發(步驟2220)給各伺服器。管理員分發處理在2230結束。關於自包含桌面的分發的進一步細節可在圖17中獲得。
自包含桌面的伺服器接收開始於2235,其中伺服器接收自包含桌麵包(步驟2240),並將接收到的包存儲於非易失性存儲區2245中。然後,伺服器將各自包含桌面分發給需要的客戶端(步驟2250)。關於自包含桌面的分發的進一步細節可在圖18中獲得。
在某一時刻,發生災難事件,毀壞了管理員所使用的計算機系統和存儲設備中的包、資源和組件(步驟2255)。然後,管理員使用開始於步驟2260的恢復過程恢復各自包含桌面信息。管理員識別出已被毀壞且不再存儲於管理員計算機系統上的特殊包(步驟2265)。向各伺服器請求識別出的包(步驟2270)。
伺服器從管理員接收桌麵包請求(步驟2275)。從伺服器的非易失性存儲區2245檢索所請求的桌麵包,並將其傳送給管理員的計算機系統(步驟2280),且伺服器恢復處理在2295結束。
管理員計算機系統接收伺服器發送的自包含桌麵包,並將所接收的桌麵包存儲於包庫2225中(步驟2285)。將這些自包含桌麵包拆開,且將包括在各自包含桌麵包中的組件和資源用於重新填充到組件和資源庫2210中(步驟2290)。此時,所有管理員先前分發的包、組件和資源均得以恢復,並存儲在適當的庫中。然後,管理員恢復處理在2298結束。
圖23是示出客戶端為根據該客戶端在該組織內的角色接收和顯示桌面所採取的步驟的流程圖。處理開始於2300,其中該客戶端機器從伺服器接收第一個桌面(步驟2305)。將所接收的桌面存儲於客戶端的易失性或非易失性存儲區中的本地存儲器2315中(步驟2310)。
對所接收的桌面是否為該客戶端的預設桌面進行判斷(判定2320)。如果接收桌面是預設桌面,則判定2320轉到「是」分支2325,其中將所接收的桌面顯示於客戶端的顯示設備上(步驟2330)。另一方面,如果所接收的桌面不是預設桌面,則判定2320跳過步驟2330而轉到「否」分支2335。
對是否存在更多客戶端要從伺服器接收的桌面進行判斷(判定2340)。如果存在更多桌面要接收,則判定2340轉到「是」分支2345,其中處理循環返回以接收下一個桌面(步驟2350),並判斷該下一個桌面是否為預設桌面。該循環持續到所有所需桌面均已從伺服器接收到時為止,此時判定2340轉到「否」分支2355。
對該客戶端是否可訪問不止一個桌面進行判斷(判定2380)。如果可訪問不止一個桌面,則判定2380轉到「是」分支2385,其中將可用桌面描述插入為可由該客戶端訪問的彈出選擇窗口內的項(步驟2390)。例如,用戶可使用諸如滑鼠的定點設備在桌面區域中「右」擊,其會使彈出菜單顯示出。然後,用戶可從彈出菜單中提供的列表中選擇所需的桌面(參見圖27的示例桌面屏幕和彈出菜單)。例如,如果分支管理人員還具有所指派的信貸員的角色,則該分支管理人員可從彈出菜單中選擇信貸員桌面。在選擇了信貸員桌面之後,會顯示用於信貸員功能的桌面組件,且其可從桌面區域中訪問。另一方面,如果僅存在一個該客戶端可訪問的桌面,則判定2380跳過步驟2390而轉到「否」分支2392。然後,顯示桌面處理在2395結束。
圖24是示出伺服器為根據用戶的角色和工作站的角色向客戶端提供桌面信息所採取的步驟的流程圖。處理開始於2400,其中伺服器從客戶端2410接收桌面請求(步驟2405)。該請求包括客戶端的用戶ID、口令和客戶端工作站的MAC地址。
伺服器從包括允許在各工作站上擔當的角色的工作站表2420中查找該客戶端的MAC地址(步驟2415)。在所示出的例子中,具有MAC地址「123」的工作站被允許執行出納員和信貸員功能,而具有MAC地址「456」的工作站僅被允許執行分支管理人員功能。
對是否在工作站表中發現該客戶端的MAC地址進行判斷(判定2425)。如果未發現MAC地址,則判定2425轉到「否」分支2428,其中對系統是否需要客戶端工作站註冊進行判斷(判定2430)。如果需要工作站註冊,則判定2430轉到「是」分支2432,其中向客戶端返回出錯消息(步驟2435),指示該客戶端的工作站未註冊,且伺服器處理在2440結束。另一方面,如果不需要工作站註冊,則判定2430轉到「否」分支2442,且處理繼續。返回到判定2425,如果在工作站表中發現該客戶端的MAC地址,則判定2425轉到「是」分支,且處理繼續。
從用戶桌面表2455中檢索指派給該用戶的標識符(用戶ID)的第一個桌面(步驟2450)。在所示出的例子中,用戶ID「Able」指派給了「出納員」角色,而用戶ID「Jones」指派給了「出納員」、「信貸員」和「分支管理人員」角色。對檢索出的指派給該用戶的桌面是否允許在該用戶正使用的工作站上使用進行判斷(判定2460)。如果該桌面允許用於該工作站,則判定2460轉到「是」分支2465,其中將該桌面發送給該客戶端(步驟2470)。另一方面,如果檢索出的桌面不允許在該工作站上使用,則判定2460跳過步驟2470而轉到「否」分支2472。
對是否存在更多指派給該用戶的角色或桌面進行判斷(判定2475)。如果存在更多指派給該用戶的角色,則判定2475轉到「是」分支2480,其中選擇指派給該用戶的下一個桌面(步驟2485),且處理循環返回以確定該下一個桌面是否應設置給客戶端。該循環持續到對指派給該用戶的所有桌面均已進行處理時為止,此時判定2475轉到「否」分支2490,且伺服器處理在2495結束。
圖25是示出伺服器所執行的處理及伺服器、客戶端和管理員之間的交互的方框圖。伺服器2500通過從管理員2575接收角色指派,而執行角色識別功能2570。角色指派包括指派給用戶的角色以及指派給位於整個網絡中的工作站的角色。工作站角色存儲於工作站角色數據存儲2560中。用戶角色存儲於用戶角色數據存儲2555中。
伺服器2500還通過從管理員2575接收桌面信息,而執行桌面收集處理2580。桌面信息存儲於桌面定義數據存儲2590中。桌面信息包括自包含桌面,而自包含桌面包括由客戶端2525使用的桌面組件和資源。
伺服器2500從客戶端2525接收用於對該客戶端進行認證的認證信息,諸如用戶ID和口令。伺服器2500通過檢查該客戶端的具有位於認證數據存儲2520中的認證數據的認證信息,而執行認證處理2510。一旦該客戶端被認證,該客戶端接收對存儲於伺服器2500上的該客戶端的數據存儲區2540的訪問。伺服器通過執行主目錄訪問過程2530,提供對該客戶端的數據存儲的訪問。以這種方式,不管用戶正使用哪一個工作站,該用戶都可以訪問他或她的數據。
伺服器2500執行桌面分發過程2550,來確定向客戶端2525發送哪一個自包含桌面。桌面分發過程2550通過將存儲在用戶角色數據存儲2555中的用戶角色與存儲在工作站角色數據存儲2560中的工作站角色進行比較來執行。將指派給用戶和工作站二者的桌面或角色分發給該客戶端。伺服器2500從桌面數據存儲2590中檢索桌面信息,並將該桌面信息傳送給客戶端2525。
圖26是示出客戶端在初始化和顯示自包含桌面時所採取的步驟的流程圖。客戶端2600通過向伺服器發送相應的信息,來執行認證請求、主目錄請求、和口令更新。客戶端2600使用基礎作業系統平臺2610執行本地操作。JSLLIB 2680是包括用於執行本地操作的本地命令和程序的本地庫。
外殼2605是適於運行在該系統中所使用的任何作業系統平臺(例如,Windows XPTM、OS/2TM、或LinuxTM)上的基於Java的應用。該外殼判斷該客戶端註冊是通過伺服器遠程執行還是本地執行(判定2620)。如果該註冊遠程執行,則判定2620轉到「是」分支2622,其中該客戶端從伺服器接收桌面(步驟2625)。在一個實施例中,通過首先接收桌面列表,然後從該列表檢索各個桌面,來接收桌面。
將桌面的列表或映射緩存到位於客戶端機器上的本地存儲器中(步驟2630)。還將所接收的桌面緩存到本地存儲器中(步驟2635)。返回到判定2620,如果未遠程接收到桌面,則判定2620跳過步驟2625、2630和2635而轉到「否」分支2638。
從本地存儲器中檢索指派給用戶和工作站二者的桌面(步驟2640)。本地存儲器用於存儲用戶桌面映射2660和桌面2670。桌面是包括顯示和執行該桌面所需的桌面組件和資源的自包含包。將檢索出的桌面信息用於創建桌面對象(步驟2645)。桌面類加載程序2650用於創建桌面對象。從桌面信息中加載諸如國家語言轉換的資源(步驟2655)。桌面類加載程序2650還用於加載所需的資源。
此時,已檢索出指派給該工作站中的用戶的桌面,並已使其對用戶在外殼2605內可用。已從自包含桌面中提取出桌面對象和資源,並已使其對用戶在外殼2605之上可用。
圖27是顯示於客戶端工作站之上的樣本桌面以及該客戶端可用的其他自包含桌面的彈出菜單的屏幕布局。桌面屏幕布局2700包括若干對象2750。對象2750包括可從該桌面訪問的桌面組件。每一個桌面組件對應於可由用戶使用諸如滑鼠的定點設備選擇的圖形圖像,諸如圖標。
彈出菜單2710包括兩項,其允許用戶或改變該桌面或顯示外殼版本。選擇「改變桌面」項引起桌面選擇菜單2720的顯示。用戶通過在所需桌面旁邊的框中設置複選標記,來選擇所需桌面。在所示出的例子中,在客戶端顯示器上正顯示「管理員」桌面,如桌面選擇菜單2720中示出的複選標記所表明的那樣。如果用戶希望將桌面改變到例如分支管理人員桌面,則該用戶僅使用諸如滑鼠的定點設備,並在「分支管理人員」菜單項旁邊的框中設置複選標記即可。
可根據已選擇的桌面改變組件2750。例如,因為「管理員」桌面已被選擇,而顯示「分支桌面管理員」桌面組件。但是,如果選擇了諸如「出納員」桌面的另一桌面,則將不再呈現「分支桌面管理員」,且其不能從該顯示器訪問。以這種方式,顯示出並可訪問用於所選擇的角色的組件,而不顯示或不能訪問由不同角色所使用的組件。此外,由多個角色使用的組件其每一個都可從對應於這些角色的各桌面獲得。
圖28A是客戶端外殼在顯示和管理桌面時所使用的目錄的層次圖。外殼主目錄2800包括若干由該客戶端執行桌面功能所使用的子目錄。在一個實施例中,外殼主目錄及其子目錄存儲於可由該客戶端訪問的伺服器之上。在另一個實施例中,外殼主目錄及其子目錄存儲於該客戶端機器本地的非易失性存儲設備之上。本地庫2805是用於存儲用於與客戶端的作業系統平臺接口的程序的子目錄。在一個實施例中,本地庫信息存儲於Java存檔(JAR)文件中。屬性子目錄2810是用於存儲外殼程序所使用的屬性的子目錄。這些屬性可包括顯示屬性和外殼程序所使用的其他配置項。
桌面子目錄2815是自包含桌面文件存儲於其中的目錄。在一個實施例中,將自包含桌面文件打包到Java存檔(JAR)文件中。以這種方式,特定桌面所使用的所有組件和資源均被打包,且包括在自包含桌面JAR文件中。日誌目錄2820是用於存儲詳述客戶端所採取的行為的基於客戶端的日誌。「Conf」子目錄2825用於存儲外殼應用所使用的初始化信息。「Bin」子目錄2830用於存儲用於啟動外殼應用的可執行文件,諸如程序文件。
圖28B是包括在外殼配置文件中的各部分的層次圖。外殼配置文件包括若干部分。這些部分的每一個包括關於外殼的特定方面的信息。在一個實施例中,外殼配置文件是包括若干部分的XML文件。這些部分包括區域部分2840,其包括關於外殼應用所使用的區域的信息,諸如國家語言轉換。組件部分2845包括關於包括在自包含桌面中的組件的信息。組件包括在用戶選擇適當的圖標或其他命令時可從桌面訪問的應用和其他程序。文件夾部分2850包括關於可從桌面訪問的各文件夾的信息。工具欄部分2855包括關於所顯示的和可從桌面訪問的各工具欄的信息。桌面部分2860包括關於桌面的信息,諸如外觀數據和策略信息。
圖28C是包括在自包含桌面文件中的對象的層次圖。在一個實施例中,該自包含桌面是Java存檔(JAR)文件。自包含桌面文件2865包括若干組件。組件包括詳述包括在該自包含桌面文件中的對象的清單2870。組件還包括外殼文檔類型定義(DTD)對象2875。外殼DTD對象說明哪些種屬性用於描述外殼XML文檔中的內容、每一個標籤在哪裡被允許、及哪些標籤可以呈現在其他標籤之內。類對象2880包括桌面所使用的Java類。資源2885包括桌面所使用的資源信息,諸如國家語言轉換信息。JAR對象2890包括打包為其他JAR文件的桌面所需的其他對象。XML對象2895包括用於描述自包含桌面的XML文檔。
圖29是示出為初始化客戶端的工作站以使用自包含桌面而採取的步驟的流程圖。處理開始於2900,其中提示用戶2920輸入用戶ID和口令(步驟2910)。從用戶處接收用戶ID和口令(步驟2925)。當通過認證時,JSL將諸如Java虛擬機(JVM)的虛擬機加載到客戶端作業系統平臺上(步驟2930)。將該虛擬機器設計為執行諸如Java應用的平臺無關代碼。以這種方式,可以諸如Java的獨立於平臺的語言編寫相同的桌面,並將其執行於已實現了所需的虛擬機的各種平臺上。
調用基於Java的鎖定外殼(步驟2940),以提供桌面環境並防止用戶訪問客戶端機器所使用的基礎作業系統。向伺服器請求指派給工作站和用戶二者的桌面(步驟2945)。伺服器2950接收請求,並通過向客戶端發送自包含桌面進行響應。客戶端從伺服器接收響應(步驟2955)。該響應可能是出錯消息或是桌面列表。
對是否從伺服器接收了出錯消息進行判斷(判定2960)。如果接收到了出錯消息,則判定2960轉到「是」分支2962,其中在客戶端的顯示設備上顯示出錯消息(步驟2965),且處理在2995結束。另一方面,如果未接收到出錯消息,則判定2960轉到「否」分支2968,其中對是否存在任何桌面以顯示在該客戶端的顯示設備上進行判斷(判定2970)。如果在該客戶端的顯示設備上沒有桌面顯示,則判定2970轉到「是」分支2972,通知用戶沒有桌面可顯示(步驟2975),且處理在2995結束。另一方面,如果存在指派給該用戶和工作站的桌面,則判定2970轉到「否」分支2978,其中將該桌面顯示在該客戶端的顯示設備上(預定過程2980),且處理在2995結束。
圖30是示出在客戶端初始化期間所採取的步驟的流程圖。處理開始於3000,其中執行本地註冊代碼(步驟3005)。從用戶處收集註冊數據,並將其發送給伺服器,以供處理(步驟3010)。伺服器向客戶端發迴響應,該響應在步驟3015被接收。
對用戶是否通過認證進行判斷(判定3020)。如果該用戶未通過認證,則判定3020轉到「否」分支3025,其中處理在3030結束。另一方面,如果用戶通過認證,則判定3020轉到「是」分支3035,繼續進行初始化。
在客戶端工作站上調用諸如Java虛擬機的虛擬機應用(步驟3040)。在Java環境中啟動鎖定進程,以便鎖定外殼並防止用戶在未使用外殼環境的情況下使用基礎作業系統(步驟3045)。向伺服器查詢已指派給用戶/工作站的桌面(步驟3050)。客戶端接收可用桌面列表,並將所列出的桌面信息與已緩存在該客戶端工作站上的桌面數據進行比較(步驟3060)。從伺服器檢索包括在列表中但還未緩存在該客戶端工作站上的桌面,並將其緩存在該客戶端工作站上(步驟3070)。將接收到的桌面存儲於客戶機可訪問的緩衝存儲器3075中。從可用桌面列表中選擇初始或預設的桌面(步驟3080)。然後,將構成預設桌面的組件顯示於客戶端顯示設備上,而使其他可用桌面通過彈出窗口對用戶可用(預定過程3090,參見圖27桌面顯示的例子)。然後,客戶端初始化處理在3095結束。
圖31是示出在本地作業系統註冊期間採取的步驟的流程圖。本地作業系統註冊處理開始於3100,其中向用戶顯示可用網絡域的列表(步驟3110)。用戶從該列表選擇一個域(步驟3120)。對是本地還是遠端認證該客戶端進行判斷(判定3130)。如果本地認證該客戶端,則判定3130轉到「是」分支3135,其中在本地機器處對用戶進行認證(步驟3140)。另一方面,如果不在本地認證用戶,則判定3130轉到「否」分支3145,其中在該客戶端所連接的伺服器上對用戶進行認證(步驟3150)。
對該客戶端是否通過認證進行判斷(判定3160)。如果用戶未通過認證,則判定3160轉到「否」分支3165,其中在該客戶端的顯示設備上顯示出錯消息(步驟3170),且處理在3195結束。另一方面,如果用戶通過認證,則判定3160轉到「是」分支3175,其中調用Java外殼啟動程序(預定過程3180,參見圖32的處理細節),且處理在3195結束。
圖32是示出當調用Java外殼啟動程序時所採取的步驟的流程圖。Java外殼啟動程序執行開始於3200,其中對類路徑、或目錄進行設置(步驟3210)。將Java虛擬機(JVM)加載到客戶端計算設備上(步驟3220)。
對是本地還是遠程啟動Jshell應用進行判斷(判定3230)。如果本地啟動該Jshell應用,則判定3230轉到「本地」分支3235,其中以用戶的用戶ID作為參數啟動該Jshell應用(步驟3240)。另一方面,如果遠程啟動該Jshell應用,則判定3230轉到「遠程」分支3245,其中通過將伺服器主機名、用戶ID、和平臺ID提供為參數而遠程啟動該Jshell應用(步驟3250)。
在啟動了Jshell應用之後,JSL列舉OS窗口列表,以找到對應於該Java外殼的窗口(步驟3260)。將該Java外殼窗口固定到作業系統窗口的Z順序列表的底部,以便該Java外殼窗口將總保留在前臺(步驟3270)。最大化該Java外殼窗口,以適應顯示屏,並從該Java外殼窗口移除諸如最小化和調整大小按鈕的所有框架控制項(步驟3280)。以這種方式,外殼應用作為前臺頁呈現於顯示屏上,並防止用戶使用本地作業系統平臺所提供的外殼頁。Java外殼啟動處理在3295結束。
圖33A是示出智能圖形組件的示例的屏幕布局。實際的容器類型對應於諸如C++和Java中的類或C中的結構的實現結構。該實現結構稱為類類型。該智能組件在運行時試圖確定其父組件(例如,容器)的類類型。如果所識別出的類類型是該組件所認識的類型,則該組件根據所識別出的類類型更改其行為和外觀。此行為和外觀更改可以編程方式合併到智能組件中,或從配置文件中讀出。如果不認識父組件的類類型,則可將該組件編程為沿其父層次上升,直到發現所認識的容器為止。以這種方式,可將該組件置於具有未知類類型的容器中,但如果父容器其自身處於另一個具有已知類類型的容器中,則該組件可將其自身配置為好像其已直接被置於該已知類類型的容器中。
該智能組件的外觀和行為由其父容器的類類型確定。例如,如果智能圖標的父類類型是桌面,則其將顯示文本描述。然而,如果同一智能圖標的父類類型是工具欄,則其將不顯示文本描述。此外,智能圖標行為可根據父容器的類型而不同。例如,如果圖標置於工具欄中,則其可被設計為當用戶將滑鼠指針置於其上時其突出自身邊界。但是,如果同樣的圖標置於桌面上,則其可被設計為當指針掠過它時不顯示邊界。另外,智能圖標可被設計為當被激活時執行不同的與依賴於其所屬容器類型的組件相關的代碼。
屏幕圖像3300包括時鐘形式的智能圖形組件的兩個例子。時鐘3305是已置於工具欄容器中的組件。時鐘3330是同一組件,但此時該時鐘已置於桌面容器中。對象的外觀和行為根據該對象所屬的父對象或容器的類型而改變。在所示出的例子中,時鐘3305因為父工具欄容器中的較小可用區域而被顯示為數字時間。相反,時鐘3330因為桌面容器中較大的可用區域而顯示模擬時間。此外,時鐘3330在模擬時鐘圖像下面顯示諸如數字時間和日期的附加信息。此外,時鐘3330在對象下面顯示對象名稱(如「時鐘」)。
當用戶選擇位於工具欄中的時鐘3305時,彈出窗口3320便顯示出。彈出窗口3320顯示星期幾、日期,並具有調整時間/日期和設置通知的菜單項。
圖33B是示出智能圖形組件的第二示例的屏幕布局。屏幕圖像3350類似於圖33A中示出的屏幕圖像,然而圖33B中的時鐘3330已被選擇,且彈出菜單3390被顯示出。圖33B中示出的所顯示的彈出菜單的行為不同於圖33A中示出的同一時鐘組件的行為。具體地,在圖33B中,用戶具有關於數字時鐘、星期幾、以及顯示日期是否應與模擬時鐘一起示出的顯示選項。因為在桌面容器而不是在工具欄容器中較大的用於示出圖標的區域,而使得這些附加顯示選項可用。
圖34是示出各種桌面對象的層次圖。桌面對象3400位於該層次圖的頂端,且其包括組件對象3410和容器對象3470。組件對象3410包括可視組件3420和不可視組件3440。可視組件對象包括圖標3425、文件夾3430和工具欄3435。不可視組件對象包括應用擴展代碼3445和應用定義3450。
如名稱所暗示的,容器對象3470包括的對象可包括或持有其他對象。容器對象包括文件夾3480和工具欄3490。諸如圖標的可視組件可包括在容器對象中。
圖35是示出初始化智能圖形組件時所採取的步驟的流程圖。智能圖形組件初始化處理開始於3500,其中為組件選擇一個面向對象的父對象(步驟3510)。檢索選擇出的父對象的面向對象類類型(步驟3520)。對檢索出的類類型是否是認識的類類型(諸如文件夾或工具欄)進行判斷(判定3525)。如果檢索出的類類型不認識,則判定3525轉到「否」分支3545,其中對在對象層次中是否存在更多父對象進行判斷(判定3550)。如果在對象層次中存在更多父對象,則選擇最後選擇出的對象的父對象(即最後的父對象的父對象,或本對象的祖父對象)(步驟3560),且處理循環返回,以確定最近選出的對象是否是認識的類類型。該循環持續到或者發現所認識的類類型,或者在對象層次中不再有父對象時為止。如果發現了認識的類類型,則判定3525轉到「是」分支3530,其中選擇所認識的類類型(步驟3540)。另一方面,如果在對象層次中不再有父對象,則判定3550轉到「否」分支3565,其中對該對象選擇預設類類型(步驟3570)。
檢索對應於所選擇的類類型的組件外觀數據(諸如圖標大小和其他顯示特性)和對象行為特性(步驟3575)。例如,如果檢索出的類類型為工具欄,則該圖標大小和顯示特性應依據顯示在工具欄中的圖標可用的較小區域。但是,如果檢索出的類類型為桌面,則該圖標大小和顯示特性則依據該桌面中可用的較大區域。
使用檢索出的對應於該類類型的外觀數據顯示該組件。系統等待該組件被調用(步驟3585,即直到該組件被用戶選擇)。當該組件被調用時,使用對應於該類類型的行為屬性來執行該組件(步驟3590)。
圖36是示出在處理智能圖形組件的顯示屬性時所採取的步驟的流程圖。智能桌面處理開始於3600,其中對類類型是否是工具欄進行判斷(判定3605)。如果該類類型是工具欄,則判定3605轉到「是」分支3610,其中檢索該組件的工具欄圖標,並將其顯示在工具欄中(步驟3615),在該工具欄中繪製圍繞該圖標的邊界(步驟3620),且處理在3625結束。
如果該類類型不是工具欄,則判定3605轉到「否」分支3630,其中對該類類型是否是文件夾進行判斷(判定3635)。如果該類類型是文件夾,則判定3635轉到「是」分支3640,其中檢索該組件的文件夾圖標,並將其顯示在文件夾中(步驟3645),在該圖標下面顯示簡短組件描述(步驟3650),且處理在3655結束。
如果該類類型不是工具欄或文件夾,則判定3635轉到「否」分支3660,其中對該類類型是否是桌面進行判斷(判定3665)。如果該類類型是桌面,則判定3665轉到「是」分支3668,其中檢索顯示在桌面上的較大圖標(步驟3670),在該圖標下面顯示較長組件描述(步驟3675),且處理在3680結束。
如果該類類型不是工具欄、文件夾、或桌面,則判定3665轉到「否」分支3682,其中檢索並顯示預設圖標(步驟3685),檢索其他預設顯示特性,並將其應用於該圖標(步驟3690),且處理在3695結束。
圖37是示出在處理智能圖形組件的行為屬性時所採取的步驟的流程圖。智能桌面處理開始於3700,其中對所調用的組件是否具有工具欄類類型的父組件進行判斷(判定3705)。如果所調用的組件具有工具欄父類類型,則判定3705轉到「是」分支3710,其中檢索該組件的工具欄行為(步驟3715),執行檢索出的工具欄行為(步驟3720),且處理在3725結束。
如果所調用的組件不具有工具欄類類型的父組件,則判定3705轉到「否」分支3730,其中對所調用的組件是否具有文件夾類類型的父組件進行判斷(判定3735)。如果所調用的組件具有文件夾父類類型,則判定3735轉到「是」分支3740,其中檢索該組件的文件夾行為(步驟3745),並執行(3750),且處理在3755結束。
如果所調用的組件不具有任何工具欄或文件夾類類型的父組件,則判定3735轉到「否」分支3760,其中對所調用的組件是否具有桌面類類型的父組件進行判斷(判定3765)。如果所調用的組件具有桌面父類類型,則判定3765轉到「是」分支3768,其中檢索該組件的桌面行為(步驟3770),執行(步驟3775),且處理在3780結束。
如果所調用的組件不具有工具欄、文件夾或桌面類類型的父組件,則判定3765轉到「否」分支3782,其中檢索該組件預設行為(步驟3785),執行(步驟3790)、且處理在步驟3795結束。
圖38示出信息處理系統3801,其是能夠實現這裡所描述的操作的計算機系統的簡化示例。計算機系統3801包括處理器3800,其與主機總線3805相連。二級(L2)高速緩存3810也與主機總線3805相連。主機-PCI橋3815與主存儲器3820相連,其包括高速緩衝存儲器和主存儲器控制功能,並提供總線控制以處理PCI總線3825、處理器3800、L2高速緩存3810、主存儲器3820和主機總線3805之間的轉換。PCI總線3825提供對於包括例如LAN卡3830的各種設備的接口。PCI-ISA橋3835提供總線控制,以處理PCI總線3825與ISA總線3840、通用串行總線(USB)功能3845、IDE設備功能3850、電源管理功能3855之間的轉換,且可包括其他未示出的功能組件,諸如實時時鐘(RTC)、DMA控制、中斷支持、和系統管理總線支持。外圍設備和輸入/輸出(I/O)設備可連接到各接口3860(例如,連接到ISA總線3840的並行接口3862、串行接口3864、紅外(IR)接口3866、鍵盤接口3868、滑鼠接口3870、固定盤(HDD)3872)。可選地,連接到ISA總線3840的超級I/O控制器(未示出)可協調多個I/O設備。
BIOS 3880連接到ISA總線3840,且包括各種低級系統功能和系統引導功能的必要的處理器可執行代碼。BIOS 3880可存儲於任何計算機可讀介質中,包括磁存儲介質、光存儲介質、快閃記憶體、隨機存儲器、只讀存儲器和傳送對指令進行編碼的信號(例如,來自網絡的信號)的通信介質。為了將計算機系統3801連接到另一臺計算機系統,以通過網絡複製文件,將LAN卡3830連接到PCT總線3825並連接到PCI-ISA橋3835。類似地,為使計算機系統3801使用電話線連接而連接到ISP,從而連接到網際網路,將數據機3875連接到串行埠3864和PCI-ISA橋3835。
儘管圖38中描述的計算機系統能夠實現這裡所描述的本發明,但該計算機系統僅是計算機系統的一個示例。本領域的技術人員將理解,多種其他計算機系統設計都能夠實現這裡描述的本發明。
本發明的一個優選實現是以代碼模塊的應用,即一組指令(程序代碼),其可例如駐留於該計算機的隨機存儲器中。在計算機需要時,可將該組指令存儲於另一計算機存儲器中,例如在硬碟驅動器上、或在諸如光碟(供最終在CD ROM中使用)或軟盤(供最終在軟盤驅動器中使用)的可移動存儲器,或通過網際網路或其他計算機網絡進行下載。這樣,本發明可實現為在該計算機中使用的電腦程式產品。此外,儘管所示出的各種方法選擇性地由軟體激活或重新配置而便利地實現於通用計算機中,本領域的普通技術人員還應該認識到,這樣的方法可以構造為執行所需方法步驟的硬體、固件、或更多的專用裝置來實現。
儘管已示出和描述了本發明的特定實施例,但對於本領域的技術人員顯而易見地,根據這裡的教導可以作出變換和修改,而不背離本發明及其更寬泛方面,因此,所附權利要求旨在將所有這樣的處在本發明的真正實質和範圍中的變換和修改包括在其範圍之內。此外,應該理解,本發明僅由所附權利要求定義。
本領域的技術人員應該理解,如果意欲特定數量的所引入的權利要求要素,則這種意欲將明確陳述在該權利要求中,當不存在這種陳述時,則不存在這種限制。對於作為有助於理解的非限制性示例,下面的所附權利要求包含引入權利要求要素的引入性語句「至少一個」和「一個或多個」的使用。但是,這種短語的使用也不應被認為暗示由不定冠詞「一」引入的權利要求要素將包含這樣引入的權利要求要素的任何特定權利要求限制為僅包含一個這樣的要素的發明,即使當同一權利要求包括引入性短語「一個或多個」或「至少一個」和諸如「一」的不定冠詞時也是如此;對於權利要求中定冠詞的使用也是如此。
權利要求
1.一種用於第一計算機系統恢復組件文件的方法,所述方法包括將一個或多個組件文件打包到一個或多個自包含包文件中;將上述自包含包文件通過計算機網絡傳送給一個或多個第二計算機系統;識別在其期間一個或多個上述組件文件變得從第一計算機系統不再可用的災難事件;響應識別出的災難事件,向一個或多個上述第二計算機系統請求一個或多個上述自包含包文件;響應該請求,從一個或多個上述第二計算機系統接收自包含包文件;從所接收的自包含包文件中拆出組件;以及將上述組件存儲在第一計算機系統可訪問的非易失性存儲設備上。
2.如權利要求1中所述的方法,進一步包括創建詳述包括在每個自包含包文件中的組件文件的清單文件;將包括在該清單文件中的組件文件與在災難事件之後存在的組件文件進行比較;以及根據上述比較識別要向第二計算機系統請求的自包含包文件。
3.如權利要求1中所述的方法,進一步包括為每個自包含包文件創建清單文件,該清單文件詳述包括在該自包含包文件中的組件文件;以及將該清單文件與組件文件一起打包到自包含包文件中。
4.如權利要求1中所述的方法,進一步包括向每個組件文件和每個自包含包文件指派唯一標識符。
5.如權利要求4中所述的方法,進一步包括從上述第二計算機系統接收唯一標識符的列表;將所接收的唯一標識符列表與在災難事件之後存在於第一計算機系統上的自包含包文件進行比較;以及根據上述比較識別要向上述第二計算機系統請求的自包含包文件。
6.如權利要求1中所述的方法,其中管理員使用第一計算機系統創建自包含包文件,其中每個自包含包文件對應於組織中的用戶所擔當的一角色。
7.如權利要求1中所述的方法,其中上述第二計算機系統是根據一個或多個客戶端計算機系統的用戶所擔當的角色向該一個或多個客戶端計算機系統提供自包含包文件的伺服器計算機系統。
8.如權利要求1中所述的方法,進一步包括選擇要包括在自包含包文件中的組件文件,其中至少一個組件文件包括適於從桌面外殼啟動的程序代碼,而該桌面外殼適於運行在多種作業系統上;以及將上述自包含包文件存儲在包文件庫中,其中每個包文件適於被傳送到客戶端計算機系統。
9.如權利要求1種所述的方法,其中至少一個組件文件選自於包括圖標文件、圖像文件、應用擴展文件、屏幕外觀文件、國家語言轉換文件、客戶端配置文件和伺服器配置文件的組。
10.如權利要求1中所述的方法,其中上述災難事件選自於包括非易失性存儲設備故障、一個或多個組件文件的刪除、一個或多個自包含包文件的刪除、計算機系統故障、自然災害、火災、和水災的組。
11.一種信息處理系統,包括一個或多個處理器;上述處理器可訪問的存儲區;上述處理器可訪問的非易失性存儲設備;上述處理器執行的用於管理該信息處理系統的作業系統;上述處理器可訪問的用於將該信息處理系統與計算機網絡相連的網絡接口;以及用於恢復組件文件的恢復工具,該恢復工具包括用於將一個或多個組件文件打包到存儲於上述非易失性存儲設備上的一個或多個自包含包文件中的裝置;用於將上述自包含包文件通過計算機網絡傳送給一個或多個計算機系統的裝置;用於響應識別出的災難事件,向一個或多個上述計算機系統請求一個或多個上述自包含包文件的裝置;用於響應該請求,從一個或多個上述計算機系統接收自包含包文件的裝置;用於從所接收的自包含包文件中拆出組件的裝置;以及用於將上述組件存儲在上述非易失性存儲設備上的裝置。
12.如權利要求11中所述的信息處理系統,進一步包括用於創建詳述包括在每個自包含包文件中的組件文件的清單文件的裝置;用於將包括在該清單文件中的組件文件與在災難事件之後存在的組件文件進行比較的裝置;以及用於根據上述比較識別要向第二計算機系統請求的自包含包文件的裝置。
13.如權利要求11中所述的信息處理系統,進一步包括用於為每個自包含包文件創建清單文件的裝置,該清單文件詳述包括在該自包含包文件中的組件文件;以及用於將該清單文件與組件文件一起打包到該自包含包文件中的裝置。
14.如權利要求11中所述的信息處理系統,進一步包括用於向每個組件文件和每個自包含包文件指派唯一標識符的裝置。
15.如權利要求14中所述的信息處理系統,進一步包括用於從上述第二計算機系統接收唯一標識符列表的裝置;用於將所接收的唯一標識符列表與在災難事件之後存在於第一計算機系統上的自包含包文件進行比較的裝置;以及用於根據上述比較識別要向上述第二計算機系統請求的自包含包文件的裝置。
16.如權利要求11中所述的信息處理系統,其中管理員使用第一計算機系統創建自包含包文件,其中每個自包含包文件對應於組織中的用戶所擔當的一角色。
17.如權利要求11中所述的信息處理系統,其中上述第二計算機系統是根據一個或多個客戶端計算機系統的用戶所擔當的角色向該一個或多個客戶端計算機系統提供自包含包文件的伺服器計算機系統。
18.如權利要求11中所述的信息處理系統,進一步包括用於選擇要包括在自包含包文件中的組件文件的裝置,其中至少一個組件文件包括適於從桌面外殼啟動的程序代碼,而該桌面外殼適於運行在多種作業系統上;以及用於將上述自包含包文件存儲在上述非易失性存儲設備上存儲的包文件庫中的裝置,其中每個包文件適於被傳送到客戶端計算機系統。
19.如權利要求11中所述的信息處理系統,其中至少一個組件文件選自於包括圖標文件、圖像文件、應用擴展文件、屏幕外觀文件、國家語言轉換文件、客戶端配置文件和伺服器配置文件的組。
20.如權利要求11中所述的信息處理系統,其中上述災難事件選自於包括非易失性存儲設備故障、一個或多個組件文件的刪除、一個或多個自包含包文件的刪除、計算機系統故障、自然災害、火災、和水災的組。
21.具有程序代碼手段的電腦程式,當該程序在計算機系統中執行時該程序代碼手段實現根據權利要求1至20中任一項的方法步驟。
22.根據權利要求21的存儲於計算機可讀介質上的電腦程式。
全文摘要
本發明提供了一種集中管理桌麵包的系統和方法,允許管理員恢復先前發送到位於整個組織中的伺服器的組件文件。將應用指派給用戶和工作站。將自包含桌麵包傳送給伺服器。伺服器又向客戶端提供這些桌麵包。這些包和包括在這些包中的組件包括用於標識該包和組件的唯一標識符。維護一個詳述了包括在每個自包含桌面文件中的各個組件的清單。當在管理員的計算機系統發生災難事件時,管理員從包先前所傳送到的伺服器檢索自包含桌面文件。管理員將從自包含桌面文件中拆出的組件重新填充到組件庫中。管理員使用清單確定是否需要從其他伺服器檢索其他的自包含包文件。
文檔編號G06F9/50GK1726462SQ200380105975
公開日2006年1月25日 申請日期2003年12月10日 優先權日2002年12月17日
發明者B·布羅克韋, M·R·庫柏, J·L·斯塔施拉克 申請人:國際商業機器公司