專利名稱:自動配置生成的制作方法
過去,軟件應用典型地是中央計算中心處的大型機上的批處理。近年來,便宜但強大的個人計算機的使用代替了過去的批處理方式。許許多多用戶友好、生產(chǎn)率提高的軟件的存在使得個人計算是無處不在的。盡管更容易為用戶的特殊要求定制,個人計算機的擴散使得大規(guī)模計算的管理工作更為困難。過去,計算中心里的大型機執(zhí)行集中式的系統(tǒng)管理任務,其中包括庫和配置的管理以及軟件版本控制。然而,在具有各種處理機、外設和軟件應用的現(xiàn)代網(wǎng)絡中,可能的配置范圍是驚人的。
一些配置信息是硬件專用的,例如盤控制器端口地址、通信端口地址以及視頻端口地址。此外,可以在用于每個應用程序的配置文件中設置專用于軟件的配置參數(shù)。例如,IBM兼容個人計算機內存儲的稱為autoexec.bat文件的配置文件可包括路徑語句。此外,特殊的應用軟件可能需要專用的初始化信息以便有效運行。典型地,可在初始化(.ini)文件中設置這樣的信息。
然而,一旦安裝后,計算機配置并不保持是固定的。在運行軟件的同時,用戶可以更新可配置的選擇,例如更新文件打開/保存路徑。另外,用戶可以通過增加新信息使軟件“個人化”,例如在萬維網(wǎng)瀏覽器軟件的情況下增加書簽數(shù)據(jù)。而且,由于要做出更好的產(chǎn)品的持續(xù)競爭壓力,在向用戶發(fā)送交付的軟件時,軟件開發(fā)者已經(jīng)著手開發(fā)軟件的下一版本。為了應付不斷增加的更為友好的和功能更多的應用軟件的要求,軟件開發(fā)者更多地采用組件模型,在組件模型上應用軟件簡化成多個模塊或組件。可在不連累其它組件的狀態(tài)下,修改某個組件以提高其性能或者增添以前不具有的性能。在這樣的范例中,軟件應用是許多獨立文件的集合,其中的每個文件可由無關的軟件開發(fā)者生成,這些開發(fā)者對每個組件的整體性的了解甚于對組裝后的軟件包的整體性的了解。盡管軟件的再使用得到發(fā)展,這種范例要求更高級別的組件間整體性。不出意料地,雖然更頻繁的更新為用戶帶來功能更多的軟件,管理已釋放安裝的復雜性上的增加不是和更改的次數(shù)成比例的。
歷史上,通過人工檢測組件之間的關系并且在日志中記錄組件的狀態(tài)。該信息是在組件本身之外的,并且一旦改變組件必須更新該信息。由于狀態(tài)信息只在開發(fā)時記錄,可能會丟失在開發(fā)后再做出的改變。隨著改變的步伐不斷增加并且軟件裝配過程日益復雜,組件之間的正確狀態(tài)關系之外部表達變成是易于出錯的。
此外,在使用期間,用戶可能使軟件個性化,從而改變狀態(tài)信息。軟件安裝和軟件操作之間狀態(tài)信息的差異導致不能意料的操作,并且可能需要來自信息系統(tǒng)(IS)部門的更多支持。
在許多應用中需要維護商業(yè)操作下的軟件應用的現(xiàn)行狀態(tài),這些應用包括安裝、同步、備用、恢復、分析和維修。需要詳細了解計算機的動態(tài)環(huán)境及其系統(tǒng)配置,以防止為改正一個問題進行的修改可能會因不恰當?shù)陌惭b而造成其它錯誤的情況。此外,為了在多個操作環(huán)境上以及在各種處理器上驗證兼容性并且確保整體性,需要準確了解系統(tǒng)配置。
通過確定向用戶提供預定功能度的各實體、確定取決于所確定的實體組的項目、通過刪除重疊的實體并且組合類似的實體對實體分組并且利用預定的格式封裝實體分組,本發(fā)明確定應用狀態(tài)。本系統(tǒng)根據(jù)當前機器狀態(tài)列舉出決定性方式的基數(shù)據(jù)、元數(shù)據(jù)及應用正確運行所需的各種相關性以提供自動的關系答案。生成一個可用于計算機系統(tǒng)的安裝、同步、備分、恢復、分析及維修的有關該應用(程序)的完整、持續(xù)的運行期狀態(tài)信息。
在一個方面,通過確定用戶可訪問性的各層分析各實體。此外,對于每個層,根據(jù)預定準則列出各根實體。對于每個列出的實體,確定該實體的一個或多個相關性。
在另一個方面,通過生成一個或多個候選物、分析這些候選物、確認各候選物并封裝和候選物相關的各項目,項目相關性得到確定。
在又一個方面,通過確定實體間關系、根據(jù)實體間關系處理各實體和把各實體置成預定格式,實現(xiàn)實體的分組和封裝。
在另一個方面,該格式包含有關每個項目以及每個實體的詳細信息。該格式具有零個或一個信息塊以及一個或多個實體塊。帶有它們相關的實體塊組的多個信息塊可組合到一組中。
本發(fā)明的優(yōu)點包括下述。本發(fā)明動態(tài)地從組件本身重建正確狀態(tài)的外部表示。此外,由于狀態(tài)構建過程是動態(tài)的,本發(fā)明能在軟件的整個生命周期中跟蹤軟件,并對許多在執(zhí)行中需要有關應用的詳細信息的管理任務提供信息。
圖1是分析應用軟件的時間狀態(tài)的過程的流程圖。
圖2是確定根實體的流程圖的過程。
圖3是確定項目相關性的過程的流程圖。
圖4是確定分組并封裝實體的過程的流程圖。
圖5是表征應用軟件的格式的方塊圖。
圖6是桌面配置的示例說明。
圖7是在一個執(zhí)行例如微軟視窗操作系統(tǒng)的操作系統(tǒng)的計算機上對邏輯實體進行分析、描述和替代的過程的流程圖。
圖8是分析圖7的計算機的桌面上的目的過程的流程圖。
圖9是生成項目的過程的流程圖。
圖10是連同圖7的過程下掃描模塊的過程的流程圖。
圖11是包含著要根據(jù)本發(fā)明確定其軟件的狀態(tài)的計算機的示意圖。
如在本文中所使用,一個候選物是一個包含著用來生成一個或多個項目(item)的數(shù)據(jù)包。一個項目和數(shù)據(jù)或元數(shù)據(jù)的基礎單元相關,其能和別的項目相關地或不相關地運行。一個實體是一組項目。實體代表用于計算機系統(tǒng)或用于用戶的一組預定功能。在其最簡單形式下,實體可代表單個應用,例如Corel WordPerfect、Microsoft Excel、等等。實體還可包括有關一個或多個操作系統(tǒng)的設定的信息,諸如打印機設定、字形設定、網(wǎng)絡部件設定、等等。此外,實體還可包括有關文件的信息,例如數(shù)據(jù)文件、初始化文件、源文件、樣板、等等。每個實體具有一個狀態(tài),該狀態(tài)是計算機系統(tǒng)中可使用的整個功能度的一個邏輯子集。系統(tǒng)狀態(tài)可包括關于諸如.exe文件、.dll文件和.ocx文件的可執(zhí)行文件的信息。機器狀態(tài)還可包括注冊設定、環(huán)境變量、支持文件以及各特定時間點的數(shù)據(jù)文件。
現(xiàn)參照各圖,圖1是一個流程圖,其表示確定軟件應用的運行期狀態(tài)的過程。在圖1中,該流程首先確定和用戶的一組預定的功能有關的一個或多個實體的存在性(步驟22)。由于實體描述供用戶使用的所有有用的功能,從而根實體代表一個對象,用戶可在別的機器上或在別的地方或在別的時間以一種完全自給自足的方式執(zhí)行該對象。
接著,在步驟24,該流程確定項目相關性,項目相關性可隨時間改變。項目相關性的確定還是一個定位所有相關性并且生成一組有限的相關笥的完整、確定性過程。通過刪除重疊實體和組合相似實體,該過程把實體分成組。此外,只要未對項目的任何相關性作出改變,對某未改變的項目的狀態(tài)生成和所有以前的狀態(tài)生成是相容的和相同的。最后,在退出前(步驟28),該流程把各實體封裝成適當?shù)母袷焦┮院笫褂?步驟26)。在步驟26的對實體分組處理中,確定實體的交點,從而可以簡明地定義實體包,并且還可以在一個帶有或不帶有實際實體的文件中表達該實體包所需的所有信息。有關每個實體的足夠信息得到包括,從而可執(zhí)行正確性分析。
現(xiàn)參照圖2,以更詳細地示出步驟22(圖1)。在圖2中,確定用戶可訪問性的一個或多個層(tier)(步驟30)。對層的確定部分上基于用戶對應用可訪問性的容易程序。根據(jù)其在處理隊列中的優(yōu)先級確定層(步驟32)。典型地,選擇該隊列中所保持的最高優(yōu)先級層。對于選定的層,根據(jù)預定準則列出一個或多個根實體(步驟34)。預定準則例如可和實體的狀態(tài)有關以及和用戶感覺到的有用性有關。與操作系統(tǒng)相關的層信息表示可能為該層的各實體。此外,由于實體的列出是基于各實體是否是已被處理的或已被排除的,對處理過的實體保持一個記錄以跟蹤實體可能包括在幾個層中或包括在交叉層中的情況。
對于步驟34中列出的每個實體,確定項目相關性(步驟36)。該步驟把在某層中找到的數(shù)據(jù)轉換成為一個可執(zhí)行文件或一個數(shù)據(jù)文件的實際項目。該步驟還把實體轉換成根項目。一個例子可包括從一個連接文件轉換到一個可執(zhí)行文件或者從一個數(shù)據(jù)文件轉換到一個訪問該數(shù)據(jù)文件的可執(zhí)行文件。接著確定構成該實體的所有相關性。某些項目,例如數(shù)據(jù)文件,可能是終止點,因為它們不再具有更深的相關性。其它項目,例如可執(zhí)行文件,可能具有可從該項目生成的許多相關性。對于下一層的選擇,可能存在對各實體的某預定的界限已經(jīng)被設置的條件判定,一旦到達該界限,停止當前層的處理。
一旦分析了當前層的所有列出的實體,該流程選擇要處理的下一個層(步驟37)。接著該流程確定是否已處理完所有層。若沒有,該流程從步驟38循環(huán)回到步驟34以繼續(xù)處理。反之,該流程退出(步驟39)。
現(xiàn)參照圖3,以更詳細地示出步驟24(圖1)。在確定項目相關性中,該流程首先生成一個或多個候選物(步驟40)。候選物生成處理主要取決于當前所檢查的根項目的二進制分析??赏ㄟ^分析可執(zhí)行文件中找到的各字符串生成各候選物。每個字符串可能代表一個候選物。然而,所生成的候選物可能是無效的。例如,它們可能是各文件名,它們可能是對元數(shù)據(jù)的指針或引用,或者從相關性角度它們可能是當前實體和系統(tǒng)上的其它項目之間的無用信息。這里,通過刪除不涉及系統(tǒng)上其它有效項目的候選物以及刪除在已經(jīng)建立的項目之間具有冗余關系的候選物,修剪已生成的候選物。接著,確認各候選物(步驟44)。在步驟44,確認那些通過重要的候選物分析的項目,從而實際上做出候選物和其父項目之間的連接。該連接可能是對元數(shù)據(jù)的引用、對某文件的引用、或者可能是對該應用所需的一條外部信息的引用。這些連接被確認并且若成功確認,它們接著變成項目并通過相關性生成處理。在分析和確認候選物中,該處理訪問并參照所存儲的其它候選物及項目的庫,其中當前候選物將和它們進行比對。
在步驟46,封裝從分析和確認處理中得到的結果項目組(步驟46)。該封裝過程記錄和標識屬于某實體的某特定項目的信息。該信息足以使其它應用在無需實際上調查該項目下確定該項目的突出特性。除了文件名之外,在確實項目后的項目封裝中添加標識文件及文件版本的文件尺寸信息、交叉核對信息。對于每個要封裝的項目,重要步驟46以定位相關性樹中屬于該當前項目的各項目。對于當前項目之下的每個項目,持續(xù)選代該處理,直至找到原子層項目不能進行更遠的候選物生成為止。此刻,該處理退出(步驟48)。
圖4更詳細地示出對實體分組及封裝的處理26(圖1)。通過確定實體之間的交點或實體的集合,步驟26初步確定實體間關系(步驟50)。該處理在當前處理層次上把該實體定到與其它實體的關系中,一旦找到些關系,可把相關的實體組合到一起,可能形成一個實體,或者替代地,若實體是多余的可把實體標記成是刪除的。接著根據(jù)所確定的實體間關系處理各實體(步驟52)。在一個方面,根據(jù)它們對操作系統(tǒng)或對更高層要求的依從性和關系處理各實體。例如,對操作系統(tǒng)特定版本的要求、實體使用的特定硬件的要求、盤空間的特定文件尺寸要求或其它諸如此類的依從性進行處理。最后,把各實體置成適當格式化的文件供以后的使用(步驟54)。此外,收集需要和該實體一起封裝的有關文件的信息以及需進一步列出的信息,并放在該格式化文件中,從而該格式化文件是代表可獨立操作的原子數(shù)據(jù)或無數(shù)據(jù)的基礎項目的集合。該格式最好是用來代表應用功能性的有用子集的可擴充格式。項目被分類以包括有關類型的足夠信息,供無須進一步搜索的比較判定使用。除了捕獲項目信息之外,該格式提供層次增加的信息以在邏輯上分組項目和提供諸如相關性、描述、管理開銷之類的附加信息。在步驟54后,圖4的處理退出(步驟56)。
圖5中示出分層格式70的圖例。格式70存儲實體組80和90的持續(xù)狀態(tài)。實體組80具有零個或一個信息塊82。實體組80是有關實體的一個集合,這些實體都共享信息塊82中所描述的相似的實體層描述相關性。實體80還具有一個或多個實體塊84-86。實體塊84至86是在項目生成步驟24(圖3)期間建立的項目的集合。實體塊84-86以一種預定方式相關。例如,它們可具有相關的可執(zhí)行性,或者它們具有一組不同類型的相關文檔文件。類似地,實體90具有零個或一個信息塊92以及一個或多個實體塊94-96。該格式可以是基于文本的、基于二進制的、被壓縮的和/或被加密的。該格式的一種實施例可按如下[INFO“實體組標號”]
key=valuekey1=value2…[ENT“實體塊標號”]itemtype=value 1,value 2,value 3,value 4,…itemtype=v2,v3,v4在該實施例中,用括號對、塊類型及塊標號表示塊。每個塊之后是任意數(shù)量的行上分開的key(關鍵字)值對。若該關鍵字是按項目類型組織的,取決于項目類型在同一行上需要預期數(shù)量的值,采用三種塊類型INFO、ENT、DEP。INFO塊類型包含有關該實體組的一般信息以及有關整個文件的描述信息。ENT塊類型包含其它實體和/或項目的集合,而DEP塊類型包含用key=值對表示的相關性。此外,五種或更多的項目類型file、pefile、reg、ini、Ink是可能使用的基本類型。file類型和系統(tǒng)上的某文件相關。pefile類型和“可移值可執(zhí)行“格式下的可執(zhí)行文件相關。reg類型和表示W(wǎng)indows Registry中的某入口的元數(shù)據(jù)有關。ini類型和表示ini型支持文件的某入口的元數(shù)據(jù)相關,而Ink和一個表示至另一個文件的捷徑的二進制元數(shù)據(jù)文件相關。其它類型可描述其它數(shù)據(jù)或元數(shù)據(jù)。
現(xiàn)轉到圖6,其中示出一個示例性的桌面配置。在圖6中,桌面500包含一個拼寫檢查應用502、一個字處理應用504和一個電子表格應用506。此外,在桌面500上示出廢物箱510。在按步驟22確定根實體時,桌面500作為一層出現(xiàn)。在該層中,處理列舉出拼寫檢查應用502、字處理應用504、電子表格應用506和廢物箱510。該處理扔掉廢物箱510,但把剩余的按實體對待并確定項目相關性。為應用502-506中的每個應用生成一個項目相關性表。接著按預定格式把該桌面編碼成一個實體,供用戶在隨后的軟件安裝或維護中使用。
在進行圖1的處理中,系統(tǒng)確實拼寫檢查應用502和字處理應用504在類型上是相似的并具有類似的相關性。從而,把它們輸入到一個指示這些應用在公用字典或主題詞上是相關的一個信息塊中。此外,應用502和504可能共享一個或多個操作系統(tǒng)要求。這樣,為實體502-504生成一個信息塊82。從而,應建立一個包括一個信息塊(82)和二個各代表二個應用(502-504)中的一個應用的實體塊(84-86)的實體組。此外,在都駐留在相似的位置上或者在可通過類似路徑可訪問上,該整個實體組(80)和電子表格應用506具有相似性,從而它們可組成一組相關的實體。這樣,可把應用502-506封裝到一起以建立一個更大的實體組。該最后的封裝包則應包括一個包含著應用(502-504)的實體組(80)和另一個包含著應用(506)的實體組(90)。該封裝包包含適用于各種應用的狀態(tài)信息,其中包括計算機的安裝、同步、備分、恢復、分析和修理。
現(xiàn)參照圖7-圖10說明本發(fā)明的一種在微軟的視窗操作系統(tǒng)上運行的實施例。圖7示出在計算機上分析、描述和復制邏輯實體的過程99。首先,過程99搜索一個或多個實體(步驟100)。在計算機系統(tǒng)上找到實體后,過程99檢查是否完成所有實體的處理(步驟102)。若尚有一個或多個要處理的實體,過程99生成一個項目(步驟104)。接著,過程99檢查該項目是否被分解(步驟106)。若是,過程99生成一個或多個候選物(步驟108)。接著過程99檢查是否還有要檢查的候選物(步驟110)。若是,過程99進一步檢查該候選物是否被確認(步驟113)。若未進行確認,過程99循環(huán)回到步驟108以繼續(xù)生成候選物。替代地,若在步驟113進行確認,過程99回到步驟104,繼續(xù)進行項目生成處理。
在項目未被分解或候選物未被生成的情況下,過程99從步驟106或步驟110轉到步驟110以檢查其是否是一個根項目。若不是,過程99從步驟112轉到步驟108以繼續(xù)候選物生成處理。替代地,在過程99位于根項目的情況下,該例程在另一層上進行實體搜索過程99。
在所有實體已被分析的情況下,過程99從步驟102轉到步驟120,以對先前在步驟104-113中確定的實體進行交叉參照。過程99確定是否要對實體進行其它內務操作處理(步驟112)。若不,利用前面在步驟124中討論的適當格式封裝該實體。替代地,可在步驟126對該實體進行其它處理。
現(xiàn)參照圖8,其示出在桌面實體情況下對某示例實體進行分析的過程200。在步驟200,該過程檢查需要處理的連接。若一個或多個連接需要處理,該過程開始分析和微軟視窗操作系統(tǒng)的“開始菜單”相關的文件(步驟204)。與該開始菜單相關的數(shù)據(jù)提供有關用戶公共使用的軟件或數(shù)據(jù)文件的信息,從而和狀態(tài)確定處理是很有關系的,從步驟204,該過程檢查是否還有要處理的其它連接(步驟206)。若無,該過程把所有可執(zhí)行文件定位到已知位置上(步驟208),此外,該過程檢查是否還有要處理的其它文件(步驟210)。若無,該過程確定與已定位的文件相關的文件擴充締合(步驟212)。從步驟212,該過程確定是否還有要處理的擴充(步驟214)。若無,該過程確定該路徑中的各可執(zhí)行文件(步驟216)。隨后,該過程確定是否還有要處理的其它文件(步驟218)。若無,即無要處理的文件,從步驟218,在該過程檢查是否還有要處理的文件(步驟222)之前,先確定全局可執(zhí)行性(步驟220)。從步驟222,若已處理所有文件,該過程進而建立一個實體交叉參照表(步驟224)。替代地,若找到某實體,從步驟202、206、210、214、218或222,該過程轉到步驟226,其中檢查該實體是否已被處理。若是,該過程返回到先前狀態(tài)(步驟228)。替代地,該過程從步驟226轉到步驟230進行項目生成。
現(xiàn)參照圖9,其中更詳細地示出項目生成過程230。首先,該過程檢查該項目是否為已知類型(步驟232)。若不是,封裝該項目(步驟234)。替代地,若該項目為已知類型,該過程確定該文件是否是可執(zhí)行文件(步驟236)。若是,該過程進一步確定該文件為可移植可執(zhí)行(PE)格式(步驟238)。PE文件格式是按線性數(shù)據(jù)流組織的。它以MS-DOS標題、實時模式程序存根(stub)和PE文件簽名開始。緊接的是PE文件標題和選用標題。在此之后出現(xiàn)所有節(jié)標題,接著是節(jié)體。各節(jié)含有文件內容,包括代碼、數(shù)據(jù)、資源以及其它可執(zhí)行信息。每個節(jié)具有一個標題和一個本體(原始數(shù)據(jù))。只要標題填有足夠的能譯解數(shù)據(jù)的信息,幾乎可以按連接程序希望組織各節(jié)的任何方式組織各個節(jié)。包含著重新定位信息、符號表信息、行號信息以及串表數(shù)據(jù)的混雜信息的一些其它區(qū)域是關閉文件。PE文件中的信息基本上是由系統(tǒng)或應用使用的用以確定如何處理該文件的高層信息。第一字段用于指示其構建成可執(zhí)行于那一種類型的機器,例如DECAlpha、MIPS R4000、IntelX86或某些其它處理器。系統(tǒng)利用該信息快速確定在對文件數(shù)據(jù)的其余部分作出進一步處理前如何對待該文件。
從步驟238,若該文件是一個PE文件,分解該文件并生成候選物(步驟240)。在該文件不是一個PE文件的情況下,該過程檢查文件格式是否是可執(zhí)行(exe)二進制文件(步驟242)。若是,該過程進行二進制可執(zhí)行的分解并且還生成候選物(步驟244)。
替代地,在步驟242若文件格式不是exe二進制文件格式,該過程轉到檢查該文件格式是否是exe原本(script)格式(步驟246)。若是,分解該原本exe文件并生成候選物(步驟248)。替代地,該過程轉到步驟246以封裝該項目(步驟250)。
在步驟236,在格式不是可執(zhí)行文件格式的格式下,該過程檢查文件格式是否是信息格式(步驟252)。若是,為候選物生成信息文件(步驟254)。
在步驟252,在文件格式不是信息文件格式的情況下,該過程轉到步驟256,其中檢查該文件是否屬于已知的數(shù)據(jù)格式(步驟256)。若是,該過程進行數(shù)據(jù)文件候選物生成(步驟258)。替代地,該過程從步驟256轉成封裝該項目(步驟234)。在該項目在步驟232中不為已知類型的情況下,也執(zhí)行步驟234。
現(xiàn)參照圖10,其中示出分析項目的過程。一旦進入圖10的過程,掃描現(xiàn)行模塊以得到諸如模塊類型的信息(步驟260)。在完成該模塊的掃描后,該過程確定是否還有要掃描的模塊(步驟262)。在模塊264,在類型未知的情況下,該過程循環(huán)地調用模塊掃描處理260。若類型是已知的。若類型是知道的,該過程進入步驟266,其中檢查該模塊是否為ODBC類型。若是,該過程轉到接通適當?shù)哪K標志(步驟268)。替代地,若該模塊不是ODBC模塊,該過程進而檢查該模塊是否是登記模塊(步驟270)。若是,接通適當?shù)哪K標志(步驟268)。從步驟270,在該模塊不是一個登記模塊的情況下,該過程轉而檢查該模塊是否是一個COM模塊(步驟272)。若是,該過程轉到步驟268。從步驟268,該過程轉到步驟276以確認該項目。
在步驟262中所有模塊已被掃描的情況下,該過程進行串掃描操作(步驟280)。接著,該過程確定是否還有要處理的串(步驟282)。若是,進行串匹配運算(步驟284)。從該串匹配運算,該過程確定該串是否為登記類型(步驟286)。若是,進行登記匹配運算(步驟288)。從步驟286或步驟288,該過程轉到檢查該串是否為ODBC類型(步驟290)。若是,進行ODBC匹配運算(步驟292)。從步驟290或292,該過程進而確定法串是否是COM類型(步驟294)。若是,在步驟296進行COM匹配運算。從步驟294或296,該過程檢查文件名是否匹配(步驟298)。若是,在轉到步驟276確認項目之前把該項目添加到兄弟表中(步驟300)。
在步驟282中已對所有串進行了串掃描的情況下,該過程轉到進行兄弟掃描以定位相關的項目(步驟302)。接著確定是否還有要掃描的文件(步驟304)。若無,在步驟306確認該項目。替代地,在確認項目之前進行兄弟匹配運算(步驟308)。
如上面所討論,通過確定向用戶提供預定功能的實體、確定依賴于所確定的實體的各項目、借助刪除重疊的實體和組合類似的實體對實體分組以及利用預定格式封裝實體組,獲得應用狀態(tài)。該系統(tǒng)基于現(xiàn)行機器狀態(tài)提供自動的關系答案,以便以一種確定性的方式列舉出計算機系統(tǒng)的安裝、同步、備分、恢復、分析及修理所需的基礎數(shù)據(jù)、元數(shù)據(jù)和相關性。
本文所說明的技術可在硬件或軟件下實現(xiàn),或者是二者的組合。該技術最好在計算機程序下實現(xiàn),該程序可在包括處理器、可由該處理器讀的存儲介質(包括易失性或非易失性存儲器和/或存儲部件)以及適當?shù)妮斎胼敵霾考目删幊逃嬎銠C上執(zhí)行。程序代碼作用到利用輸入部件輸入的數(shù)據(jù)上以執(zhí)行所說明的功能并生成輸出信息。該輸出信息施加到一個或多個輸出部件上。
圖11示出一種這樣的計算機系統(tǒng)600,其包括CPU610、RAM 260以及和CPU總線640連接的I/O控制器630。I/O控制器630還通過I/O總線650和諸如鍵盤660、鼠標670的輸入部件以及諸如監(jiān)視器680的輸出部件連接。各種變型在下述的權利要求書的范圍內。例如,替代利用鼠標作為輸入部件,可使用壓力敏感筆或板生成光標位置信息。
此外,最好在高級過程或面向對象的編程語言下實現(xiàn)每個程序以和計算機系統(tǒng)通信。然而,若需要,可以以匯編或機器語言實現(xiàn)各程序,在任何情況下,該語言可以是編譯或解釋語言。
每個這樣的計算機程序最好存儲在可由通用或專用可編程計算機讀的存儲介質或部件(例如,CD-ROM、硬盤或磁盤)上,用于當由該計算機讀該存儲介質或部件以執(zhí)行所說明的各進程時配置并運行該計算機。該系統(tǒng)還可按用計算機程序配置的計算機可讀存儲介質實現(xiàn),其中該存儲介質配置成使計算機按特定和預定的方式運行。
盡管參照其的一種實施例示出和說明了本發(fā)明,業(yè)內人士理解在不背離下述權利要求書的精神和范圍下在形式上和細節(jié)上可做出上述的或其它的改變。
權利要求
1.一種確定應用狀態(tài)的方法,包括確定對用戶提供預定功能的各實體;確定取決于所確定的各實體的各項目;通過刪除重疊的實體以及組合相似的實體對各實體分組;以及利用預定格式封裝實體組。
2.權利要求1的方法,其中確定各實體還包括確定用戶可訪問的各個層;對于每層,基于預定準則列出各根實體;以及對于每個列出的實體,確定該實體的一個或多個相關性。
3.權利要求1的方法,其中項目相關性確定還包括生成一個或多個候選物;分析各候選物;確認各候選物;以及封裝和候選物相關的各項目。
4.權利要求1的方法,其中實體分組及封裝還包括確定實體間關系;以及根據(jù)實體間關系處理實體。
5.權利要求1的方法,還包括生成一個或多個持續(xù)狀態(tài)表示。
6.權利要求5的方法,其中該持續(xù)狀態(tài)信息為一種格式下,該格式還包括生成零個或多個信息塊;以及生成一個或多個實體塊。
7.權利要求1的方法,其中所述應用狀態(tài)提供完整、持續(xù)的運行期信息。
8.權利要求1的方法,還包括在計算機系統(tǒng)中的安裝、同步、備分、恢復、分析和修理中應用所述應用狀態(tài)。
9.權利要求8的方法,其中所述計算機系統(tǒng)執(zhí)行視窗操作系統(tǒng)。
10.一種用于借助視窗操作系統(tǒng)為計算機系統(tǒng)的安裝、同步、備分、恢復、分析和修理確定應用狀態(tài)的方法,其包括確定向用戶提供預定功能的各實體,包括確定用戶可訪問的各層;對于每層,基于預定準則列出各根實體;以及對于每個列出的實體,確定該實體的一個或多個相關性;確定相關性項目,包括生成一個或多個候選物;分析各候選物;確認各候選物;以及封裝和候選物相關的各項目;以及利用預定格式分組所確定的根實體并封裝實體組,包括確定實體間關系;根據(jù)實體間關系處理實體;以及把各實體置成預定格式。
11.一種帶有用于確定應用狀態(tài)的指令的計算機可讀介質,包括代碼,用于確定對用戶提供預定功能的各實體;代碼,用于確定取決于所確定的各實體的各項目;代碼,用于通過刪除重疊的實體以及組合相似的實體對各實體分組;以及代碼,用于利用預定格式封裝實體組。
12.權利要求11的計算機可讀介質,其中用于確定各實體的代碼還包括代碼,用于確定用戶可訪問的各個層;代碼,用于對每層操作以基于預定準則列出各根實體;以及代碼,用于操作各個列出的實體以確定該實體的一個或多個相關性。
13.權利要求11的計算機可讀介質,其中項目相關性確定代碼還包括代碼,用于生成一個或多個候選物;代碼,用于分析各候選物;代碼,用于確認各候選物;以及代碼,用于封裝和候選物相關的項目。
14.權利要求11的計算機可讀介質,其中實體分組代碼還包括代碼,用于確定實體間關系;以及代碼,用于根據(jù)該實體間關系處理各實體。
15.權利要求11的計算機可讀介質,其中還包括用于生成一個或多個的持續(xù)狀態(tài)信息的表示的代碼。
16.權利要求15的計算機可讀介質,其中持續(xù)狀態(tài)信息是在一種格式下表示的,其中還包括代碼,用于生成零個或一個信息塊;以及代碼,用于生成一個或多個實體塊。
17.權利要求11的計算機可讀介質,其中所述應用狀態(tài)提供完整、持續(xù)的運行期信息。
18.權利要求11的計算機可讀介質,其中所述應用狀態(tài)應用于計算機系統(tǒng)的安裝、同步、備分、恢復、分析和修理。
19.權利要求18的計算機可讀介質,其中所述計算機系統(tǒng)執(zhí)行視窗操作系統(tǒng)。
20.一種計算機系統(tǒng),包括一個處理器;一個和所述處理器連接的存儲器組;一個和所述處理器連接的顯示器;以及一個和所述處理器連接的數(shù)據(jù)存儲部件并且包括一個帶有用于確定應用狀態(tài)的代碼的計算機可讀介質,其包括代碼,用于確定對用戶提供預定功能的各實體;代碼,用于確定取決于所確定的各實體的各項目;代碼,用于刪除重疊的實體并組合相似實體對實體分組;以及代碼,用于利用預定格式封裝實體組。
全文摘要
一種計算機實現(xiàn)系統(tǒng)通過確定向用戶提供預定功能的各實體、確定取決于所確定的實體的各項目、利用刪除重疊實體并組合類似實體對實體分組以及利用預定格式封裝實體組對應用狀態(tài)進行分析。該系統(tǒng)基于現(xiàn)行機器狀態(tài)以確定方式列出正確應用操作所需的基礎數(shù)據(jù)、元數(shù)據(jù)和相關性提供自動的關系答案。此外,狀態(tài)信息存儲在一種不變格式下,供包括著安裝、同步、備分、恢復、分析和修理的各種各樣的應用使用。
文檔編號G06F11/14GK1284181SQ98813215
公開日2001年2月14日 申請日期1998年12月16日 優(yōu)先權日1997年12月18日
發(fā)明者卡迪爾·B·李, 斯科特·W·戴爾 申請人:支持.Com公司