两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

軟件組合的制作方法

文檔序號(hào):6433850閱讀:148來(lái)源:國(guó)知局
專利名稱:軟件組合的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例涉及軟件體系機(jī)構(gòu)的領(lǐng)域,具體地說(shuō),本發(fā)明的實(shí)施例涉及包括一個(gè)操作系統(tǒng)的軟件產(chǎn)品的組合體系機(jī)構(gòu)。
背景技術(shù)
雖然軟件產(chǎn)品變得越來(lái)越多并且更加復(fù)雜,但是在基于現(xiàn)有軟件產(chǎn)品的基礎(chǔ)上創(chuàng)造出新的產(chǎn)品以及使這些產(chǎn)品滿足市場(chǎng)和競(jìng)爭(zhēng)需要所要求的服務(wù)日益困難。操作系統(tǒng)(OS)是一個(gè)相對(duì)大而復(fù)雜的軟件產(chǎn)品的例子。
操作系統(tǒng)管理和調(diào)度其駐留的計(jì)算機(jī)或設(shè)備中的資源,并提供應(yīng)用程序可以使用的多種功能模塊和接口從而完成多種任務(wù)。常規(guī)計(jì)算機(jī)通常執(zhí)行其操作系統(tǒng)以管理當(dāng)它運(yùn)行時(shí)計(jì)算機(jī)的多個(gè)方面。例如,操作系統(tǒng)通常負(fù)責(zé)管理訪問(wèn)存儲(chǔ)設(shè)備和輸入和/或輸出設(shè)備,控制一個(gè)或多個(gè)附加應(yīng)用程序的執(zhí)行。安裝通常發(fā)生在計(jì)算機(jī)執(zhí)行操作系統(tǒng)之前(舉例來(lái)說(shuō),將來(lái)自于像CDROM這樣的分布介質(zhì)的多個(gè)文件復(fù)制到計(jì)算機(jī)的一個(gè)硬盤(pán)上)。
一個(gè)常規(guī)操作系統(tǒng)具有很多用于指令和/或數(shù)據(jù)的文件(舉例來(lái)說(shuō),成百上千個(gè))。當(dāng)這些指令被計(jì)算機(jī)執(zhí)行時(shí),提供操作系統(tǒng)的功能。除了大量的文件,操作系統(tǒng)通常在這些文件間具有大量的從屬性。例如,許多文件可以要求安裝一個(gè)或多個(gè)其它文件用于執(zhí)行它們想要的功能性。盡管操作系統(tǒng)的制造商可以在安裝的時(shí)候得知這樣的從屬性。但是對(duì)于用戶,管理員,或其它軟件研發(fā)者而言,要獲知這些從屬性是很困難的,這被證明是很麻煩的,如軟件研發(fā)商無(wú)法得知在其它文件中何種數(shù)據(jù)或指令會(huì)影響他們所關(guān)心的特定文件。同樣地,無(wú)法得知該從屬性,檢修故障計(jì)算機(jī)的管理員或用戶就無(wú)法知道哪個(gè)文件適用于解決該問(wèn)題。
此外,一個(gè)典型的操作系統(tǒng)實(shí)際上通常是巨大的。在本領(lǐng)域技術(shù)人員所熟知的通用操作系統(tǒng)中,服務(wù)器和客戶器OS產(chǎn)品都是由來(lái)自一個(gè)包含所有二進(jìn)制文件的巨大的中心文件制造出的。在這個(gè)例子中,一個(gè)可執(zhí)行的安裝程序必須指定包含在不同產(chǎn)品中的文件。因而,每一個(gè)產(chǎn)品中各個(gè)部分之間的關(guān)系是很難理解的。信息的缺乏妨礙了在它的生命周期期間服務(wù)于操作系統(tǒng)的能力。換句話說(shuō),當(dāng)操作系統(tǒng)變得越來(lái)越大越來(lái)越復(fù)雜時(shí),對(duì)于研發(fā)者和其它人來(lái)說(shuō),要了解操作系統(tǒng)所有不同的模塊和文件以保證它們整體以及分離地工作的更好是很困難的。
舉個(gè)例子,特定的OS產(chǎn)品可以作為“家用”版本出售而具有附加特征的優(yōu)質(zhì)產(chǎn)品可以作為“專業(yè)”版本出售。在這種情況下,家用和專業(yè)的產(chǎn)品通常包括商標(biāo)信息和其它散布在所有的組成各個(gè)產(chǎn)品的多個(gè)二進(jìn)制文件中的參考信息。遺憾的是,由于二進(jìn)制文件和這些存在的商標(biāo)參考之間的關(guān)系(對(duì)于新產(chǎn)品每一個(gè)都必須被改變),產(chǎn)品的創(chuàng)造和服務(wù)是非常艱巨的并且需要被大范圍地測(cè)試。
可以以任何多種方式修改(例如,更新或服務(wù))操作系統(tǒng),例如通過(guò)多種人(例如,除了操作系統(tǒng)的研發(fā)者外的用戶,管理員,軟件研發(fā)者等等。)添加或取代一個(gè)或多個(gè)指定的二進(jìn)制文件。當(dāng)出現(xiàn)這樣的修改時(shí),增加了識(shí)別在計(jì)算機(jī)上現(xiàn)有的文件之間的從屬性的困難。例如,改變單個(gè)文件時(shí)必須改變其它相關(guān)的文件。此外,由于用戶或管理員不能輕易地正確得知該功能性是什么樣的或在計(jì)算機(jī)上要安裝什么,因此檢測(cè)一臺(tái)故障計(jì)算機(jī)或更新操作系統(tǒng)變得更加復(fù)雜。
因此,希望軟件組合能夠解決一個(gè)或多個(gè)這些和其它的缺點(diǎn)并且允許在其它情況中創(chuàng)建改進(jìn)的操作系統(tǒng)。
發(fā)明概述通過(guò)將軟件產(chǎn)品,諸如操作系統(tǒng)表示為組件的集合,本發(fā)明的實(shí)施例克服了現(xiàn)有技術(shù)中一個(gè)或多個(gè)缺陷。本發(fā)明的一個(gè)方面包括引入若干個(gè)以組合的方式構(gòu)造軟件產(chǎn)品的抽象概念。在這種方式中,本發(fā)明的實(shí)施例有助于在組合產(chǎn)品的基礎(chǔ)上創(chuàng)造出新產(chǎn)品并服務(wù)于該產(chǎn)品。組件的定義通常可以用于描述應(yīng)用程序組件,即使用這種組件定義可以描述任何應(yīng)用程序。換句話說(shuō),組件定義可以用于更加詳細(xì)地描述操作系統(tǒng)組件。此外,在此描述的本發(fā)明的特征比當(dāng)前通用的技術(shù)更省事更易于實(shí)現(xiàn),而且在經(jīng)濟(jì)上和商業(yè)上也是可行的。
簡(jiǎn)要地講,使用本發(fā)明的各個(gè)方面從多個(gè)文件構(gòu)建一個(gè)軟件產(chǎn)品。該方法包括將文件組織成為對(duì)象。在這個(gè)例子中,大量對(duì)象代表組件并且每一個(gè)組件都包括至少一個(gè)文件。該方法也包括使用清單識(shí)別每一個(gè)組件,組件以及使用清單指定組件其它的對(duì)象之間的一個(gè)或多個(gè)從屬性。依據(jù)清單中指定的從屬性的對(duì)象分組允許構(gòu)造軟件產(chǎn)品。
本發(fā)明的另一個(gè)實(shí)施例涉及一個(gè)或多個(gè)計(jì)算機(jī)可讀媒介。存儲(chǔ)在媒介中的對(duì)象包括大量的組件對(duì)象,該對(duì)象被用于從大量文件中構(gòu)造軟件產(chǎn)品。每一個(gè)組件對(duì)象包括一個(gè)或多個(gè)文件和清單,該清單包括識(shí)別組件對(duì)象并指定組件對(duì)象和一個(gè)或多個(gè)其它對(duì)象之間的從屬性的元數(shù)據(jù)。該媒介也包括至少一個(gè)相應(yīng)于軟件產(chǎn)品特征的特征對(duì)象。該特征對(duì)象包括一個(gè)或多個(gè)選定的依據(jù)清單指定的從屬性分組的對(duì)象。
在另外的實(shí)施例中,一個(gè)組合模式表示與組合對(duì)象一起構(gòu)造軟件產(chǎn)品的一個(gè)或多個(gè)文件。與組件對(duì)象關(guān)聯(lián)的清單識(shí)別組件對(duì)象并指定組件對(duì)象和至少一個(gè)其它對(duì)象之間的一個(gè)或多個(gè)從屬性。該模式也包括一個(gè)特征對(duì)象和一個(gè)產(chǎn)品對(duì)象。該特征對(duì)象是通過(guò)至少一個(gè)組件對(duì)象定義的,表示軟件產(chǎn)品的一個(gè)特征。該產(chǎn)品對(duì)象是通過(guò)至少一個(gè)特征對(duì)象定義的,表示該軟件產(chǎn)品。
本發(fā)明進(jìn)一步具體化的方面是用于執(zhí)行組合方法的具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體。
換句話說(shuō),本發(fā)明可以包括各種各樣其它的方法和裝置。
其它特征將在下文部分中指出并說(shuō)明。


圖1說(shuō)明了依據(jù)本發(fā)明實(shí)施例的具有代表性的計(jì)算機(jī)方框圖。
圖2是說(shuō)明圖1的組件和相應(yīng)清單的具有代表性的方框圖。
圖3至圖8說(shuō)明了依據(jù)本發(fā)明實(shí)施例的具有代表性的組件定義模式。
圖9至圖12進(jìn)一步說(shuō)明了圖3-8的組件定義模式的對(duì)象。
圖13說(shuō)明了依據(jù)本發(fā)明實(shí)施例的用于選擇包含在軟件產(chǎn)品中的組件的一個(gè)具有代表性的設(shè)計(jì)程序。
圖14說(shuō)明了依據(jù)本發(fā)明實(shí)施例的具有代表性的編程對(duì)象模型。
圖15是一個(gè)說(shuō)明了和圖3-8的組件定義模式一起使用的一個(gè)具有代表性的組合體系機(jī)構(gòu)的方框圖。
圖16是說(shuō)明用于圖1使用的計(jì)算機(jī)的代表性的組件的方框圖。
相應(yīng)的參考特征標(biāo)識(shí)所有附圖中相應(yīng)的部件。
具體實(shí)施例方式
現(xiàn)在參考附圖,圖1說(shuō)明了依據(jù)本發(fā)明某一實(shí)施例的具有代表性的計(jì)算設(shè)備150。計(jì)算設(shè)備150具有像操作系統(tǒng)152和一個(gè)或多個(gè)應(yīng)用程序154這樣的軟件產(chǎn)品。
操作系統(tǒng)152是用于計(jì)算設(shè)備150的基礎(chǔ)軟件控制程序,執(zhí)行各種功能,包括提供用戶接口,管理一個(gè)或多個(gè)應(yīng)用程序154的執(zhí)行,以及控制各種各樣輸入/輸出(I/O)設(shè)備的數(shù)據(jù)輸入和數(shù)據(jù)輸出。應(yīng)用程序154是一個(gè)或多個(gè)可以在計(jì)算設(shè)備150上執(zhí)行的普遍的多樣的軟件應(yīng)用程序。這樣的應(yīng)用程序154的例子包括教育程序,參考程序,生產(chǎn)程序(例如,字處理,電子制表軟件,數(shù)據(jù)庫(kù)),娛樂(lè)程序,實(shí)用性程序(例如,通信程序)等等。應(yīng)用程序154可以由用戶安裝在計(jì)算設(shè)備150上,或可選擇地由計(jì)算機(jī)設(shè)備150的制造商和/或發(fā)行人預(yù)先安裝。
圖1的操作系統(tǒng)152將其功能分成像所說(shuō)明實(shí)施例中的部分#1至部分#N這樣的若干組件156。每一個(gè)組件156各自都具有一個(gè)相應(yīng)的清單158,例如清單#1至清單#N。組件156包括一個(gè)或多個(gè)文件(或文件標(biāo)識(shí)符)的集合。該文件可以包括像一個(gè)可執(zhí)行文件,一個(gè)動(dòng)態(tài)鏈接庫(kù)(DLL),或一個(gè)組件對(duì)象模塊(COM)這樣的軟件指令。該文件也可以包括一個(gè)或多個(gè)組件156使用的數(shù)據(jù)。在執(zhí)行中,對(duì)應(yīng)于操作系統(tǒng)152的特定功能的文件(例如數(shù)據(jù)和/或指令)被一起分組到相同的組件156中。例如,可以有一個(gè)游戲組件,一個(gè)通信組件,以及一個(gè)文件系統(tǒng)組件。導(dǎo)致組合的文件的分組可以是靜態(tài)的,或者換句話說(shuō)是可以隨時(shí)變化的。在一個(gè)例子中,更新操作系統(tǒng)152可以導(dǎo)致選定的文件從某一組件156中刪除并添加到其它的組件156中。
請(qǐng)進(jìn)一步參考圖1,每一個(gè)清單158包括描述相應(yīng)部分156的信息。任何一個(gè)關(guān)于相應(yīng)的部分156的多種元數(shù)據(jù)可以被包括在每一個(gè)清單158中。在執(zhí)行中,清單158識(shí)別相應(yīng)的組件156和其它組件156的版本,如有的話任何相應(yīng)的組件156可以被依賴。舉個(gè)例子,為了使在組件156中的一個(gè)或多個(gè)文件更好地執(zhí)行,來(lái)自其它組件的一個(gè)或多個(gè)其它文件(例如,一個(gè)DLL文件)可以被安裝在計(jì)算機(jī)設(shè)備150上。在這個(gè)例子中,清單158表示組件156依賴于其它的組件。
由于現(xiàn)有操作系統(tǒng)的復(fù)雜性和規(guī)模,創(chuàng)建滿足市場(chǎng)或競(jìng)爭(zhēng)需要的新產(chǎn)品變得越來(lái)越困難。當(dāng)今的操作系統(tǒng)本質(zhì)上更加整體化,因而,很難理解各種各樣的組件之間的關(guān)系。在產(chǎn)品的壽命周期期間,信息的缺乏使得操作系統(tǒng)的維修變得很困難。為了克服這些以及其它問(wèn)題,本發(fā)明的實(shí)施例將操作系統(tǒng)組合化。換句話說(shuō),本發(fā)明允許將一個(gè)軟件產(chǎn)品表示為一種組件的集合。本發(fā)明一個(gè)方面涉及用于以組合的方式構(gòu)造一個(gè)操作系統(tǒng)的幾個(gè)抽象概念以便有助于新產(chǎn)品的創(chuàng)建和對(duì)現(xiàn)有產(chǎn)品的維修。這些抽象概念可以被應(yīng)用于包括應(yīng)用程序在內(nèi)的任何軟件產(chǎn)品和任何操作系統(tǒng)。
一個(gè)組件定義模式說(shuō)明了本發(fā)明引入的若干抽象概念,即,組件(也稱作集合),類,特征,插件,產(chǎn)品,和SKUs(存儲(chǔ)保持單元)。在這個(gè)例子中,組件156表示分配,維修,和/或綁定的一個(gè)可再利用的,可共享的,自我描述的微型單元。它是描述自身組件以及以聲明的方式用于安裝,維修,和/或綁定到必要資源的所有相關(guān)的信息(例如,元數(shù)據(jù))的最基本的抽象概念。
下面將詳細(xì)描述本發(fā)明一個(gè)具體實(shí)施例,一個(gè)類對(duì)象162(見(jiàn)圖4)表示將一系列通用的組件156分類的機(jī)制;一個(gè)特征對(duì)象164(見(jiàn)圖5)表示組件156和/或特征164的一個(gè)合成物并且被當(dāng)作創(chuàng)建一個(gè)產(chǎn)品對(duì)象166(見(jiàn)圖7)的構(gòu)件塊使用;以及一個(gè)插件對(duì)象168(見(jiàn)圖6)表示組件156,特征164,類162,和/或其它插件168的合成物。例如,插件對(duì)象168用于分類組件156以實(shí)現(xiàn)管理的目的。進(jìn)一步,在本實(shí)施例中的產(chǎn)品對(duì)象166表示特征164和/或組件156的高級(jí)合成物以及一個(gè)SKU對(duì)象170(見(jiàn)圖8)表示產(chǎn)品166的購(gòu)買(mǎi)機(jī)制(例如,一個(gè)SKU170可以包含若干產(chǎn)品166)。
這里描述的組件定義可以用于描述通用應(yīng)用程序而不是專用的操作系統(tǒng)組件。換句話說(shuō),任何應(yīng)用程序可以用組件定義來(lái)描述。
依據(jù)本發(fā)明實(shí)施例的組合體系機(jī)構(gòu)定義了在設(shè)計(jì)期間和運(yùn)行期間用于管理組件的概念,組件儲(chǔ)存庫(kù),以及編程模式。組合化的戰(zhàn)略好處包括靈敏度,速度,支持能力,以及增大的收入機(jī)會(huì)。即使是橫越用戶和服務(wù)器線,創(chuàng)建一個(gè)用產(chǎn)品或SKU對(duì)象表示的新的軟件產(chǎn)品變得很容易。選擇正確的組件并提供某些附加的配置從而創(chuàng)建一個(gè)新產(chǎn)品是一個(gè)相對(duì)簡(jiǎn)單的任務(wù)。在相對(duì)短的時(shí)間內(nèi)創(chuàng)建新產(chǎn)品的靈敏度提供了有效地競(jìng)爭(zhēng)的能力并避免了失去市場(chǎng)的機(jī)遇。例如,提供附加的組件隨后加入到一個(gè)當(dāng)前產(chǎn)品是可能的,其允許一個(gè)用于升級(jí)一個(gè)額外產(chǎn)品,其增加許可的綜合數(shù)量,等等。所有這些附加的能動(dòng)性會(huì)導(dǎo)致產(chǎn)品的附加收入。
組合化也有助于減少產(chǎn)品圖象的數(shù)量而初始設(shè)備制造商(OEM)或公司必須保留,其會(huì)節(jié)省大量成本。依據(jù)至少一個(gè)本發(fā)明的實(shí)施例,多數(shù)組件信息是說(shuō)明性的從而使組件可以以下線方式被安裝。這減少了在目標(biāo)設(shè)備上安裝整個(gè)產(chǎn)品所花費(fèi)的時(shí)間并且為OEM,公司,終端用戶等等減少了大量成本也增加了客戶的滿意度。
本領(lǐng)域的技術(shù)人員了解維護(hù)作為產(chǎn)品周期一部分的重要性。由于評(píng)估基于每一個(gè)組件提供的說(shuō)明性信息上的變化的影響是很容易的,因此維護(hù)本發(fā)明實(shí)施例的一個(gè)組合化產(chǎn)品是相對(duì)的簡(jiǎn)單。在一個(gè)更加孤立的環(huán)境中測(cè)試組件以提高測(cè)試效率也是很容易的。轉(zhuǎn)而,減少了在軟件產(chǎn)品中的所有的弱點(diǎn)。
在這里描述的組件定義圖解涉及了組件156為了安裝,升級(jí)服務(wù),和綁定適當(dāng)?shù)馁Y源所描述的信息。在這個(gè)關(guān)系中,圖2說(shuō)明了依據(jù)本發(fā)明某一具體實(shí)施例具有示范性的組件156和相應(yīng)的清單158。依據(jù)本發(fā)明的具體實(shí)施例,每一個(gè)組件156用一個(gè)相應(yīng)的清單158來(lái)表示。組件156包括至少一個(gè)文件174并且可以任意選擇地包括不只一個(gè)(n)文件。雖然和在圖2中說(shuō)明的文件一樣,組合文件156可以任意選擇地包括一個(gè)或多個(gè)文件174的指示符或其它標(biāo)識(shí)符而不是實(shí)際的文件。
組合部分156對(duì)應(yīng)于清單158。在說(shuō)明的例子中,清單158包括識(shí)別組件156的一個(gè)組件標(biāo)識(shí)符(例如,通過(guò)名稱或某些其它唯一的標(biāo)識(shí)符)。這種對(duì)應(yīng)可以任意選擇不同的方式被保留,例如包含在組件156中清單158的一個(gè)標(biāo)識(shí)符(未示出),以保留在組件156和清單158之間的一個(gè)固有對(duì)應(yīng)性中的一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)組件156和清單158(或其標(biāo)識(shí)符),等等。清單158可以是一個(gè)可擴(kuò)展標(biāo)識(shí)語(yǔ)言(XML)文件。
如圖2的具有示范性的列表所示,清單158也包括一個(gè)識(shí)別零或多個(gè)組件156所依賴的組件的相關(guān)的組件列表。所識(shí)別的相關(guān)的組件是那些使組件156正常運(yùn)行所必須的作為操作系統(tǒng)圖像的一部分被安裝的組件。在這個(gè)說(shuō)明性例子中,標(biāo)識(shí)符識(shí)別組件156正常運(yùn)行所必須的組件,但是可以任意選擇應(yīng)該包括在內(nèi)的組件(例如,除了那些無(wú)需的,由組件156優(yōu)選的作為操作系統(tǒng)一部分的組件)。除了等同性和從屬性,在這個(gè)例子中的清單156中也具體描述了組件156的其它細(xì)節(jié),即,通用信息(包括所有者,測(cè)試者,研發(fā)者,描述,等等。),資源(包括文件,注冊(cè)信息,等等。),設(shè)置(配置),成員,和其它信息。
在可選擇的實(shí)施例中的清單158也可以包括有助于安裝和/或升級(jí)的一個(gè)優(yōu)先次序和一個(gè)版本指示器。
換句話說(shuō),保留在清單158中的某些或全部信息可以被保留在不同的位置。舉個(gè)例子,某些或全部信息可以被合并到圖1的組件156中。
APPENDIX A的例子進(jìn)一步說(shuō)明了本發(fā)明關(guān)于清單158的方面。
下面進(jìn)一步具體說(shuō)明了關(guān)于用于本發(fā)明舉例說(shuō)明的組合化機(jī)制結(jié)構(gòu)的主要提取部分。
如上所述,涉及作為組件156(或集合)的對(duì)象表示分配,服務(wù),和綁定的一個(gè)可再利用或可共享的自我描述的基本單元。在圖3的實(shí)施例中,組件156可以依賴其它的組件156和/或特征164來(lái)運(yùn)行,例如,它們展示了相對(duì)于這些其它對(duì)象的從屬性。組件156也可以是不同開(kāi)放組的成員,即,類162。在這個(gè)例子中,可延伸到一個(gè)友好的研發(fā)者,涉及作為“自身”的多部分性能“包”識(shí)別每一個(gè)組件156。組件自身具有下述屬性,例如名字,版本,處理器機(jī)制結(jié)構(gòu),語(yǔ)言(例如,“us-eng”或“jpn”),構(gòu)造類型(例如,自由或調(diào)試),以及發(fā)明者的識(shí)別。名字屬性以地點(diǎn)獨(dú)立的字符串的形式來(lái)描述在一個(gè)實(shí)施例中的特定組件156。一個(gè)四個(gè)部分的版本號(hào),例如,其通常允許一個(gè)“主要的.次要的.構(gòu)造.修訂”格式,其是由自身的版本屬性提供的。密碼安全信息允許在自身的發(fā)明者的ID屬性中出現(xiàn)的組件自身是安全的。
如上所設(shè)置的那樣,每一個(gè)組件156是由一個(gè)或多個(gè)文件和一個(gè)相關(guān)的清單158組成的。如圖3所示,清單158描述了組件156的詳細(xì)情況。在圖3的具體實(shí)施例中,涉及作為組件或集合的對(duì)象可以具有和其它的組件156,一個(gè)類162,和/或一個(gè)特征164有關(guān)的從屬性。
圖4所示的類對(duì)象162定義了在用類的成員表示的成員信息中的一個(gè)開(kāi)放組,而不是在一個(gè)類清單中表示的成員信息。例如,可以建立一個(gè)類162用來(lái)將和文本編輯例如Notepad和Wordpad相關(guān)的一個(gè)或多個(gè)組件156歸類。類162也使用一個(gè)類似于組件156的等同性機(jī)制來(lái)識(shí)別。在一個(gè)實(shí)施例中,類162具有像等同性,通用信息,以及其它信息這樣的具體細(xì)節(jié)。
現(xiàn)在參考圖5,特征對(duì)象164表示組件156的構(gòu)成和/或其它的特征164。特征164被當(dāng)作軟件產(chǎn)品構(gòu)件塊來(lái)使用,可以從安裝中添加或刪除。特征164包含和組件156,其它的特征164,以及類162相關(guān)的關(guān)系,而不是依賴于其它對(duì)象。換句話說(shuō),依據(jù)本發(fā)明實(shí)施例特征164不具有從屬性。舉個(gè)例子,表示一個(gè)合并的網(wǎng)頁(yè)瀏覽器的一個(gè)特征對(duì)象164和表示一個(gè)媒體播放應(yīng)用程序的其它特征對(duì)象164都是以一個(gè)操作系統(tǒng)來(lái)安裝的。特征164由等同性,通用信息(例如所有者,測(cè)試者,研發(fā)者,描述,等等),成員,成份,和其它信息組成。在本發(fā)明的一個(gè)實(shí)施例中,特征等同性在結(jié)構(gòu)上類似于組件等同性并常用于識(shí)別每一個(gè)特征164。特征164可以是若干不同的類162(見(jiàn)圖4)的成員。
圖6圖解地說(shuō)明了插件對(duì)象168。如所示,插件168是組件156,特征164,類162,以及其它插件168的組組件。和類162相比,插件168更接近組。插件168主要用于管理目的。例如,一個(gè)OS的家用版本可以使用由“cab1”,“cab2”,“cab3”和“cab4”表示的四個(gè)不同的插件168來(lái)安裝。在這個(gè)例子中的插件對(duì)象168是以組的形式來(lái)實(shí)現(xiàn)安裝目的的。在圖6的實(shí)施例中插件168只在其它的插件168上確定從屬性。在這里依據(jù)組合化定義描述的每一個(gè)插件168是由像等同性,通用信息,成員,成份,從屬性,以及其它信息這樣的具體內(nèi)容組成的。
圖7的對(duì)象166表示特征164和/或組合部分156的一個(gè)高層次的合成。它也具有用于構(gòu)造組合特征164和組件156的性能。依據(jù)本發(fā)明的一個(gè)實(shí)施例,產(chǎn)品設(shè)計(jì)者選擇產(chǎn)品166(見(jiàn)圖13)的特征164。產(chǎn)品對(duì)象166具體的包括等同性,通用信息,成份,和其它信息。
現(xiàn)在參考圖8,SKU對(duì)象170表示產(chǎn)品166的安裝媒體(例如,包括在磁盤(pán)上用于安裝的產(chǎn)品)。合適的安裝媒體包括軟磁盤(pán)或壓縮磁盤(pán)以及網(wǎng)頁(yè)下載小型文件。SKU170也可以由一個(gè)以上的產(chǎn)品164組成(見(jiàn)圖13)。本發(fā)明至少一個(gè)實(shí)施例使用SKU設(shè)計(jì)者工具來(lái)創(chuàng)造一個(gè)SKU清單。類似于上述的其它提取部分,SKU170包含等同性,通用信息,產(chǎn)品,和其它信息。
圖9至圖12進(jìn)一步說(shuō)明了組件156和其它對(duì)象之間具有示范性的關(guān)系。特別是,圖9所示的組件156可以依賴于出現(xiàn)在一個(gè)或多個(gè)類162,一個(gè)或多個(gè)特征164,和/或一個(gè)或多個(gè)組件156中的一個(gè)或多個(gè)二進(jìn)制文件。另外,組件156可以說(shuō)明在類162中的成員。在圖10的示范性關(guān)系圖表中,類162可以用于將一個(gè)或多個(gè)特征164,一個(gè)或多個(gè)組件156,和/或一個(gè)或多個(gè)插件168分類。如上所述,類對(duì)象162將一個(gè)開(kāi)放組表示成其它對(duì)象說(shuō)明的成員。圖11說(shuō)明了特征164包括一個(gè)或多個(gè)特征164和/或一個(gè)或多個(gè)組件156并且特征164可以說(shuō)明在一個(gè)或多個(gè)類162中的成員?,F(xiàn)在參考圖12,插件168表示一個(gè)或多個(gè)插件168,類162,特征164,和/或組件156的分組。在這個(gè)例子中,插件168可以屬于一個(gè)像類162這樣的開(kāi)放組或依賴于像其它插件168這樣的關(guān)閉組。
圖13提供給定義特征164一個(gè)將OS二進(jìn)制文件的各種各樣的組件156分類的例子。然后該特征164被分類到定義的產(chǎn)品166,依次被包括用于安裝SKU170。不同的計(jì)算機(jī)可以具有基于同一操作系統(tǒng)上的不同的操作系統(tǒng)圖像。例如,不同的OEM可以以不同的方式定義相同的操作系統(tǒng)(例如,由于可以使用不同的預(yù)置設(shè)置,因此帶有初始屏幕的操作系統(tǒng)的開(kāi)機(jī)程序可以識(shí)別該OEM)。也可以包括不同的功能(例如,屏幕存儲(chǔ)器,背景或題目,像通信程序這樣的軟件應(yīng)用程序,游戲,等等)。這些附加的功能可以通過(guò)OEM,或可選擇的其它制造商或分銷(xiāo)商來(lái)提供。因而,許多不同的組件可以是實(shí)際上安裝在一臺(tái)特定的計(jì)算機(jī)上作為一個(gè)操作系統(tǒng)圖像的子設(shè)備的操作系統(tǒng)的一部分。另一方面,特定的OEM組件和清單設(shè)備包括可以通過(guò)OEM作為操作系統(tǒng)圖像一部分被安裝的附加的組件。
操作系統(tǒng)可以由任何廣泛多樣的理由被升級(jí)。舉個(gè)例子,錯(cuò)誤的安裝某一組組件的某一文件可能是有效的,在一個(gè)組合部分中的新的功能可以是有效的(例如,更新或添加文件),新的組件可以是有效的,等等。
另外,一個(gè)新的組件可以作為操作系統(tǒng)的一部分按照在先的組組件被安裝而不是代替在先的組件。這允許不同的應(yīng)用程序使用它們優(yōu)選的任何組件的版本(或是編程使用)。
舉個(gè)例子,一個(gè)OEM可以按照家用,商用,服務(wù)用,等等提供多樣的基本的計(jì)算機(jī)配置。在這個(gè)例子中,除了包括不同的功能外,每一個(gè)配置都是基于相同的操作系統(tǒng)。附加的網(wǎng)絡(luò)和通訊功能可以被包括在服務(wù)配置中,但不包括在任何家用或商用配置中,以及附加的游戲或音頻播放功能可以包括在家用配置中,但不包括在商用或服務(wù)配置中。圖13示出了包括基本的家用產(chǎn)品的具有示范性的額外產(chǎn)品。
在一個(gè)實(shí)施例中,構(gòu)造軟件產(chǎn)品是從產(chǎn)品對(duì)象中提及的組件的儲(chǔ)存庫(kù)處創(chuàng)建一個(gè)運(yùn)行時(shí)間圖像的行為。構(gòu)造通常是以下線的方式產(chǎn)生,例如計(jì)算機(jī)X的運(yùn)行時(shí)間圖像是在計(jì)算機(jī)Y上創(chuàng)建出的。從屬性完全是從高層次產(chǎn)品中分解出的。一旦從屬性被分解,在從屬樹(shù)中的每一個(gè)節(jié)點(diǎn)被安裝到對(duì)象。對(duì)象表示安裝已經(jīng)以一種下線的方式被創(chuàng)建。每一個(gè)組件的安裝涉及安裝每一種資源(例如,注冊(cè)碼和文件),其是組件的一部分,并且將一條入口放置在安裝組件的儲(chǔ)存庫(kù)處以跟蹤該安裝的組件。
圖14依據(jù)本發(fā)明的實(shí)施例示出了編程模式的第一層提取部分。尤其是,例如,該示范性圖表說(shuō)明了使用統(tǒng)一模式語(yǔ)言(UML)的不同的第一層對(duì)象(或分類)。在這個(gè)例子中,對(duì)象涉及使用UML的程序員。每一個(gè)接口直接映射到組合化的第一層概念。
操作系統(tǒng)的安裝程序通過(guò)操作系統(tǒng)的組合化被大大簡(jiǎn)化了。特定的OEM功能通過(guò)包括合適的組件和相應(yīng)的清單可以被很容易地添加。此外,通過(guò)簡(jiǎn)單地代替相應(yīng)的組件用于改善性能,錯(cuò)誤安裝,以及諸如此類的操作系統(tǒng)的更新可以被容易地合并到安裝程序中。換句話說(shuō),一個(gè)附加的更新部分和清單設(shè)備對(duì)于包括這樣更新的操作系統(tǒng)安裝配置是有效的。
圖15說(shuō)明了本發(fā)明使用的具有示范性的組合化機(jī)制結(jié)構(gòu)。圖15所示的可擴(kuò)展機(jī)制結(jié)構(gòu)允許構(gòu)造一個(gè)OS安裝,包括安裝和卸裝組件,并啟動(dòng)產(chǎn)品/SKU靈敏度。而且,該體制機(jī)構(gòu)提供用于服務(wù)于一個(gè)運(yùn)行的OS和一個(gè)OS圖像的子結(jié)構(gòu)。該組合化機(jī)制結(jié)構(gòu)為組件的創(chuàng)建和管理提供一個(gè)通用的結(jié)構(gòu)。它也允許以一種類的方式從配置中構(gòu)造一個(gè)運(yùn)行時(shí)間的圖像。一種組件管理接口(CMI)是可以被不同用戶使用的用以訪問(wèn)由組合化機(jī)制結(jié)構(gòu)陳列的功能。該工具通??梢员粍澐譃橄率鰩最愒O(shè)計(jì)-時(shí)間工具;運(yùn)行-時(shí)間工具;以及構(gòu)造-時(shí)間工具。設(shè)計(jì)-時(shí)間工具是用于設(shè)計(jì)時(shí)間的工具(例如,一個(gè)組合部分設(shè)計(jì)者設(shè)計(jì)或創(chuàng)建組件以及對(duì)象設(shè)計(jì)者設(shè)計(jì)或創(chuàng)建一個(gè)配置)。運(yùn)行-時(shí)間工具是用于在一個(gè)運(yùn)行-時(shí)間圖象(安裝)上管理現(xiàn)有的組件。這可以包括像可選擇的組件管理器(OCM)這樣的功能,其管理安裝在系統(tǒng)上的組件。運(yùn)行-時(shí)間工具的另一個(gè)例子可以是一個(gè)服務(wù)用戶,其與一個(gè)遠(yuǎn)程服務(wù)器交流從而使組件更新并且更新安裝在一個(gè)裝置上的組件。構(gòu)造-時(shí)間工具是使用在構(gòu)造實(shí)驗(yàn)室中。它們主要用于從一個(gè)配置中創(chuàng)建運(yùn)行-時(shí)間圖象。
如圖15所示,CMI具有一個(gè)核心層和一個(gè)實(shí)用程序性層。CMI核心層由不同的功能部件組成,其通常是作為已知的接口被外露,消耗。該層是由一個(gè)核心CMI對(duì)象模塊,一個(gè)儲(chǔ)存器和文件存儲(chǔ)器,以及串行器/非串行器組成。核心CMI對(duì)象模塊陳列了易于編程的作為CMI用戶接口的多個(gè)不同的第一類抽象。它們通常以相對(duì)容易地使用格式反映組合化提取部。例如,IAssembly提取“組件”概念。在這個(gè)實(shí)施例的抽象不具有任何與其相關(guān)的功能性。它們是通過(guò)在抽象陳列的方法可以被恢復(fù)并設(shè)定的屬性的集合。下述列表包括通過(guò)核心CMI對(duì)象模塊中的一個(gè)接口陳列出的一些提取部IAssembly;IFeature;ICategory;IPackage;IProduct;ISku;IConfiguration;IRepository。
在圖15的例子中一個(gè)組件儲(chǔ)存庫(kù)用于管理存在一個(gè)存儲(chǔ)庫(kù)處的組件。如上所述,每個(gè)組件都具有元數(shù)據(jù)(例如,和數(shù)據(jù)相關(guān)的信息)和實(shí)際數(shù)據(jù)(例如,組件的文件)。元數(shù)據(jù)通過(guò)一個(gè)元數(shù)據(jù)儲(chǔ)存庫(kù)接口(IRepository)是可存儲(chǔ)的然而數(shù)據(jù)通過(guò)一個(gè)文件儲(chǔ)存庫(kù)接口(IFileRepository)是可存儲(chǔ)的。在一個(gè)實(shí)施例中,元數(shù)據(jù)儲(chǔ)存庫(kù)接口是使用一個(gè)關(guān)系數(shù)據(jù)庫(kù)來(lái)執(zhí)行存儲(chǔ)和索引組件的元數(shù)據(jù)。文件儲(chǔ)存庫(kù)接口允許用戶以一種組合的方式到達(dá)組組件數(shù)據(jù)(文件)。
組件元數(shù)據(jù)和數(shù)據(jù)接口在圖15中的組件儲(chǔ)存庫(kù)接口下被分離以允許不同的可插元數(shù)據(jù)儲(chǔ)存庫(kù)基于不同的情況上執(zhí)行。例如,在一個(gè)設(shè)計(jì)計(jì)算機(jī)上能夠使用SQL元數(shù)據(jù)的存儲(chǔ)庫(kù)由于有效的存儲(chǔ)和存儲(chǔ)器不可以被強(qiáng)迫使用除非在一個(gè)運(yùn)行-時(shí)間系統(tǒng)的元數(shù)據(jù)儲(chǔ)存庫(kù)才能通過(guò)一個(gè)小型的覆蓋區(qū)數(shù)據(jù)庫(kù)(例如,注冊(cè))的支持從而處理緊密的存儲(chǔ)器請(qǐng)求。
一個(gè)串行器和非串行器接口允許在CMI的第一類對(duì)象被串行化以及來(lái)自文本文件的被非串行化。例如,一個(gè)XML串行器和非串行器讀寫(xiě)XML文件。串行器和非串行器通常讀寫(xiě)如下所述的載體和配置。
以串行化格式傳送任何第一類提取部的文件被稱作載體或清單。載體提供一種填充組件儲(chǔ)存庫(kù)數(shù)據(jù)的方式,例如,在一個(gè)載體文件中工具創(chuàng)建或編輯一個(gè)組件的串行化的例子并且該組件儲(chǔ)存庫(kù)接口允許將載體輸入到組件儲(chǔ)存庫(kù)。
使用載體來(lái)交換信息的主要優(yōu)點(diǎn)在于其允許工具從組件儲(chǔ)存庫(kù)分離。另一個(gè)優(yōu)點(diǎn)是當(dāng)輸入載體信息時(shí),數(shù)據(jù)以一個(gè)更加相容的(或完整的)格式被輸入到組件儲(chǔ)存庫(kù)。分離的串行器和非串行器接口也允許執(zhí)行各種各樣的載體(例如,INF)。
配置是CMI’s IConfiguration對(duì)象的串行化表示,其表示用于構(gòu)造一個(gè)運(yùn)行-時(shí)間影像的組件和設(shè)置的集合。配置是在一個(gè)單獨(dú)的文件中而不是在一個(gè)載體文件中串行化的原因是配置不能被輸入到數(shù)據(jù)庫(kù)。
CMI應(yīng)用程序?qū)佑山?jīng)常變化的功能部件組成。在圖15的實(shí)施例中功能部件作為已知的接口被外露,消耗。應(yīng)用程序?qū)影ㄓ糜诎惭b裝置,升級(jí)裝置,從屬性裁決器,CMI對(duì)象模塊,和用戶的部件。安裝裝置部件具有用于安裝(或構(gòu)造)和卸裝由核心層陳列的一個(gè)特定的組合化提取部的邏輯電路。例如,IAssembly以在線或下線的方式從OS裝置安裝和卸裝。安裝和卸裝組合部件的邏輯電路是出現(xiàn)在部件中。所有的核心提取部使用“IInstallable”接口被安裝和卸裝。這些方式的執(zhí)行改變了每個(gè)核心提取部。例如,存在一個(gè)稱作“IAssemblyInstaller”的安裝裝置提取部用于組合。IAssemblyInstaller集合“IAssembly”接口并執(zhí)行“IInstallable”用以安裝和卸裝一個(gè)組合部件例子。
和核心提取部綁定的特定功能性類型允許集合部件安裝邏輯電路的執(zhí)行按照所需要的那樣改變而不影響核心IAssembly接口。相同的安裝對(duì)于其它核心提取部也是成立的。
升級(jí)器部件具有在一個(gè)視窗裝置上用于將特定的核心提取部升級(jí)和降級(jí)的邏輯電路。例如,IAssembly是以一種在線或下線的方式從OS裝置中升級(jí)或降級(jí)的。升級(jí)或降級(jí)組合的邏輯電路出現(xiàn)在該部件中。所有的核心提取部通過(guò)使用“IUpgradable”接口被升級(jí)和降級(jí)的。
每一個(gè)核心提取部單獨(dú)的執(zhí)行這些方法。由于在升級(jí)過(guò)程中需要安裝和卸裝功能性,因此,“IUpgradable”從“IInstallable”繼承以再次使用現(xiàn)有的安裝或卸載的功能。例如,該組合具有一個(gè)稱作“IAssemblyUpgrader”的升級(jí)器提取部。IassemblyUpgrader聚集“IAssembly”,“IAssemblyInstaller”并執(zhí)行“IUpgradable”將在一個(gè)視窗裝置上的組合例子升級(jí)和降級(jí)。又,這種綁定允許集合部件升級(jí)電路的執(zhí)行按照所需要的那樣改變而不影響核心IAssembly接口和安裝或卸裝邏輯電路。相同的安裝對(duì)于其它核心提取部的升級(jí)功能性也是成立的。
從屬性裁決器部件對(duì)一個(gè)指定的核心提取部執(zhí)行從屬性裁決邏輯電路。在這個(gè)例子中,對(duì)于每一個(gè)核心提取部該部件都具有依據(jù)從屬性裁決而不是依據(jù)自動(dòng)或手動(dòng)的方式的邏輯電路。從屬性裁決器對(duì)于用戶程序而言是可擴(kuò)展的從而將預(yù)置的從屬性裁決功能性按照在一個(gè)指定的用戶環(huán)境中所需要的那樣擴(kuò)展。部件的功能性是通過(guò)“IDependencyResolver”接口表示出來(lái)的。裁決從屬性的方法返回一個(gè)CMI對(duì)象樹(shù)形或基于使用其的情況下的例子對(duì)象。從屬性裁決通常和至少一個(gè)本發(fā)明實(shí)施例的一個(gè)配置或一個(gè)儲(chǔ)存庫(kù)相關(guān)。該儲(chǔ)存庫(kù)可以是可安裝的或已安裝的儲(chǔ)存庫(kù)。
通常,在運(yùn)行-時(shí)間系統(tǒng)上,從屬性裁決發(fā)生在一個(gè)已安裝的儲(chǔ)存庫(kù)和現(xiàn)有配置中,然而在一個(gè)設(shè)計(jì)—時(shí)間情況下,從屬性裁決發(fā)生在一個(gè)可安裝的儲(chǔ)存庫(kù)和一個(gè)當(dāng)前正在編輯的配置中。
CMI對(duì)象模式是形成于CMI核心對(duì)象模式和在實(shí)用程序?qū)雨惲械牟煌墓δ苄圆糠值募?。CMI核心對(duì)象模式也可被陳列出用于程序設(shè)計(jì)工具從而直接操作提取部當(dāng)載體(或清單)串行化和非串行化時(shí)。
一個(gè)重要的問(wèn)題是要注意在上述機(jī)制結(jié)構(gòu)中,相同的編程模式對(duì)于設(shè)計(jì)-時(shí)間,運(yùn)行-時(shí)間和構(gòu)造-時(shí)間情況是有利的。這有助于保持對(duì)象模式和相關(guān)的不同要求一致并有助于程序設(shè)計(jì)師的生產(chǎn)率。這也有助于重新使用一個(gè)單一執(zhí)行的CMI,將其用于像設(shè)計(jì)和運(yùn)行-時(shí)間這樣的不同情況并且因此與設(shè)計(jì)和運(yùn)行-時(shí)間情況不同的執(zhí)行相比較是更加可維護(hù)的。
圖16示出了以計(jì)算機(jī)70的形式的通用目的計(jì)算機(jī)設(shè)備的例子。在本發(fā)明的一個(gè)實(shí)施例中,像計(jì)算機(jī)70這樣的計(jì)算機(jī)適合作為計(jì)算機(jī)150來(lái)使用。
在舉例說(shuō)明的實(shí)施例中,計(jì)算機(jī)70具有一個(gè)或多個(gè)處理器或處理單元72和一個(gè)系統(tǒng)存儲(chǔ)器74。在舉例說(shuō)明的實(shí)施例中,一個(gè)系統(tǒng)總線76連接包括系統(tǒng)存儲(chǔ)器74的各種各樣的系統(tǒng)組件到處理器72??偩€76表示一種或多種任何型號(hào)的總線結(jié)構(gòu),包括一個(gè)存儲(chǔ)器總線或存儲(chǔ)器控制器,一個(gè)外圍設(shè)備總線,一個(gè)加速的圖表端口,和一個(gè)處理器或使用任何一種總線體系結(jié)構(gòu)的局域總線。舉個(gè)例子,但不局限于此,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MCA)總線,加強(qiáng)型ISA(EISA)總線,視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線,和外圍設(shè)備組合部件相互連接(PCI)總線也稱作Mezzanine總線。
有代表性的計(jì)算機(jī)70至少具有計(jì)算機(jī)可讀媒介的某些類型。計(jì)算機(jī)可讀媒介包括易失性和非易失性媒介,可拆卸和不可拆卸媒介,其可以是被計(jì)算機(jī)70訪問(wèn)的任何類型的可用的媒介。舉個(gè)例子,但不局限于此,計(jì)算機(jī)可讀媒介包括計(jì)算機(jī)存儲(chǔ)媒介和通訊媒介。計(jì)算機(jī)存儲(chǔ)媒介包括以任何方法或技術(shù)執(zhí)行的用于存儲(chǔ)像計(jì)算機(jī)可讀指令,數(shù)據(jù)結(jié)構(gòu),程序模塊或其它數(shù)據(jù)這樣的易失性和非易失性,可拆卸和不可拆卸媒介。例如,計(jì)算機(jī)存儲(chǔ)媒介包括RAM,ROM,EEPROM,閃存或其它存儲(chǔ)技術(shù),CD-ROM,數(shù)字通用磁盤(pán)(DVD)或其它磁存儲(chǔ)設(shè)備,或其它可用于存儲(chǔ)期望信息并可以被計(jì)算機(jī)70訪問(wèn)的媒介。具有代表性的通訊媒介包含計(jì)算機(jī)可讀指令,數(shù)據(jù)指令,程序模塊,或其它在調(diào)節(jié)數(shù)據(jù)信號(hào)像載波或其它傳送機(jī)制中的數(shù)據(jù),并且包括任何信息傳送媒介。本領(lǐng)域技術(shù)人員對(duì)調(diào)節(jié)信號(hào)是很熟悉的,其具有一種或多種以和信號(hào)中編碼信息相關(guān)的方式設(shè)置或改變的自身特性。通訊媒介的例子可以是像有線網(wǎng)絡(luò)或直接有線連接這樣的有線媒介,和像聲學(xué),RF,紅外線這樣的無(wú)線媒介,以及其它無(wú)線媒介。上述任何結(jié)合也包括在計(jì)算機(jī)可讀媒介的范圍內(nèi)。
系統(tǒng)存儲(chǔ)器74包括可拆卸和/或不可拆卸,易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)媒介。在說(shuō)明性的實(shí)施例中,系統(tǒng)存儲(chǔ)器74包括只讀存儲(chǔ)器(ROM)78和隨機(jī)存儲(chǔ)器(RAM)80。一個(gè)基本的輸入/輸出系統(tǒng)82(BIOS)包括有助于在計(jì)算機(jī)70內(nèi)的元件之間傳送信息的基本例行程序,例如在啟動(dòng)期間,其被有代表性地存儲(chǔ)在ROM78中。具有代表性的RAM80包括被處理單元72立即訪問(wèn)的和/或立刻運(yùn)行的數(shù)據(jù)和/或程序模塊。舉個(gè)例子,但不局限于此,圖16圖解說(shuō)明了操作系統(tǒng)84,應(yīng)用程序86,其它程序模塊88,以及程序數(shù)據(jù)90。
計(jì)算機(jī)70也可以包括其它可拆卸/不可拆卸媒介,易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒介。例如,圖16圖解說(shuō)明了硬盤(pán)驅(qū)動(dòng)94對(duì)不可拆卸,非易失性磁盤(pán)進(jìn)行讀寫(xiě)。圖16也示出了磁盤(pán)驅(qū)動(dòng)96對(duì)可拆卸,非易失性磁盤(pán)98進(jìn)行讀寫(xiě),以及一個(gè)光盤(pán)驅(qū)動(dòng)100對(duì)可拆卸,非易失性光盤(pán)102例如CD-ROM或其它光學(xué)媒介進(jìn)行讀寫(xiě)??梢员挥糜谑痉缎圆僮鳝h(huán)境的其它可拆卸/不可拆卸,易失性/非易失性計(jì)算機(jī)存儲(chǔ)媒介包括磁帶盒,閃存卡,數(shù)字通用磁盤(pán),數(shù)字視頻磁帶,固體狀態(tài)RAM,固體狀態(tài)ROM,等等。硬盤(pán)驅(qū)動(dòng)84,和磁盤(pán)驅(qū)動(dòng)96以及光盤(pán)驅(qū)動(dòng)100通常通過(guò)一個(gè)非易失性存儲(chǔ)接口例如接口106連接到系統(tǒng)總線76。
上述并在圖16中圖解說(shuō)明的驅(qū)動(dòng)或其它大量的存儲(chǔ)設(shè)備以及它們相關(guān)的計(jì)算機(jī)存儲(chǔ)媒介為計(jì)算機(jī)70提供了計(jì)算機(jī)可讀指令,數(shù)據(jù)結(jié)構(gòu),程序模塊和其它數(shù)據(jù)。在圖16中,例如,硬盤(pán)驅(qū)動(dòng)94圖解的說(shuō)明了用于存儲(chǔ)操作系統(tǒng)110,應(yīng)用程序112,其它程序模塊114,以及程序數(shù)據(jù)116。要注意的是這些組合部件可以和操作系統(tǒng)84,應(yīng)用程序86,其它程序模塊88,以及程序數(shù)據(jù)90相同或不同。這里按照說(shuō)明的那樣指定操作系統(tǒng)110,應(yīng)用程序112,其它程序模塊114,以及程序數(shù)據(jù)116不同的數(shù)量,至少,它們是不同的副本。
一個(gè)用戶可以通過(guò)像鍵盤(pán)120和指示設(shè)備122(例如,鼠標(biāo),跟蹤球,筆,或接觸墊)這樣的輸入設(shè)備或用戶接口選擇設(shè)備將命令和信息輸入到計(jì)算機(jī)70。其它的輸入設(shè)備(未示出)可以包括一個(gè)麥克風(fēng),游戲杠桿,游戲墊,衛(wèi)星盤(pán),掃描器,等等。這些和其它輸入設(shè)備通過(guò)和系統(tǒng)總線76連接的用戶輸入接口124連接到處理單元72,也可以通過(guò)其它接口和總線結(jié)構(gòu)來(lái)連接,例如并行端口,游戲端口,或通用串行總線(USB)。監(jiān)視器128或其它類型的顯示設(shè)備也經(jīng)過(guò)像視頻接口130這樣的接口連接到系統(tǒng)總線76。除了監(jiān)視器128以外,計(jì)算機(jī)常常包括像打印機(jī)和揚(yáng)聲器這樣的其它外圍輸出設(shè)備(未示出),其可以通過(guò)一個(gè)輸出外圍接口(未示出)來(lái)連接。
計(jì)算機(jī)70可以在網(wǎng)絡(luò)環(huán)境中運(yùn)行,使用本地連接到像遠(yuǎn)程計(jì)算機(jī)134這樣的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)。該遠(yuǎn)程計(jì)算機(jī)134可以是一臺(tái)個(gè)人計(jì)算機(jī),一臺(tái)服務(wù)器,一臺(tái)路由器,一臺(tái)網(wǎng)絡(luò)PC,一臺(tái)對(duì)接設(shè)備或其它共同的網(wǎng)絡(luò)節(jié)點(diǎn),其通常包括上述與計(jì)算機(jī)70相關(guān)的多個(gè)或全部元件。在圖16中描述的邏輯連接包括一個(gè)局域網(wǎng)絡(luò)(LAN)136和一個(gè)廣域網(wǎng)絡(luò)(WAN)138,也可以包括其它網(wǎng)絡(luò)。LAN136和/或WAN138可以是一個(gè)有線網(wǎng)絡(luò),一個(gè)無(wú)線網(wǎng)絡(luò),及其組合,等等。這樣的網(wǎng)絡(luò)環(huán)境常見(jiàn)于辦公室,企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò),內(nèi)部網(wǎng),以及全球計(jì)算機(jī)網(wǎng)絡(luò)(例如,因特網(wǎng))。
當(dāng)用于局域網(wǎng)絡(luò)環(huán)境時(shí)候,計(jì)算機(jī)70通過(guò)網(wǎng)絡(luò)接口或適配器140連接到LAN136。當(dāng)用于廣域網(wǎng)絡(luò)環(huán)境時(shí),計(jì)算機(jī)70通常包括一個(gè)調(diào)制解調(diào)器142或其它在WAN138上建立通訊的方式,例如因特網(wǎng)。調(diào)制解調(diào)器142可以是內(nèi)部的或外部的,經(jīng)過(guò)用戶輸入接口134連接到系統(tǒng)總線76或其它合適的機(jī)械裝置。在一個(gè)網(wǎng)絡(luò)環(huán)境中,所描述的與計(jì)算機(jī)70相關(guān)的程序模塊,或其部分,可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中(未示出)。舉個(gè)例子,但不局限于此,圖16圖解的說(shuō)明了駐留在存儲(chǔ)器設(shè)備中的應(yīng)用程序144。將明白示出的網(wǎng)絡(luò)連接是示范性的并且在計(jì)算機(jī)之間建立通信鏈接的其它方式可以被使用。
一般地,計(jì)算機(jī)70的數(shù)據(jù)處理器通過(guò)在計(jì)算機(jī)的各種各樣計(jì)算機(jī)可讀存儲(chǔ)媒介中在不同時(shí)間存儲(chǔ)指令的方式被編程。例如,在軟磁盤(pán)或CD-ROMs上的程序和操作系統(tǒng)通常是分布式的。從這里它們被安裝或載入到計(jì)算機(jī)的第二存儲(chǔ)器。在執(zhí)行中,它們至少部分地載入到計(jì)算機(jī)地主電子存儲(chǔ)器中。當(dāng)包含指令或程序這樣的媒介用以執(zhí)行這里描述的連接微處理器或其它數(shù)據(jù)處理器步驟時(shí),這里描述的發(fā)明包括這些和其它各種各樣類型的計(jì)算機(jī)可讀存儲(chǔ)媒介。當(dāng)依據(jù)這里描述的方法和技術(shù)編程時(shí)本發(fā)明也包括計(jì)算機(jī)自身。
為了實(shí)現(xiàn)圖解說(shuō)明的目的,在這里通過(guò)離散部件對(duì)像操作系統(tǒng)這樣的程序和其它可執(zhí)行的程序組合部件進(jìn)行圖解說(shuō)明。然而,應(yīng)認(rèn)識(shí)到在不同時(shí)間駐留在計(jì)算機(jī)的不同存儲(chǔ)部件中這樣的程序和組合部件通過(guò)計(jì)算機(jī)的數(shù)據(jù)處理器被執(zhí)行。
雖然對(duì)包括計(jì)算機(jī)70的示例性計(jì)算系統(tǒng)環(huán)境相聯(lián)系地進(jìn)行了描述,但是本發(fā)明是和大量的其它通用或?qū)S玫挠?jì)算機(jī)系統(tǒng)環(huán)境或配置一起操作的。計(jì)算機(jī)系統(tǒng)環(huán)境并不易于支持本發(fā)明的用途或功能性范圍的任何限制。而且,計(jì)算機(jī)系統(tǒng)環(huán)境不可以被解釋為具有和在具有代表性的操作環(huán)境中圖解說(shuō)明的任何一種或組合部件組合有關(guān)的任何從屬性或要求。已知的計(jì)算機(jī)系統(tǒng),環(huán)境,和/或配置的例子可以適合和本發(fā)明包括的個(gè)人計(jì)算機(jī),服務(wù)器計(jì)算機(jī),便攜式或膝上型設(shè)備,多處理器系統(tǒng),基于微處理的系統(tǒng),機(jī)頂盒,包括移動(dòng)電話的可編程消費(fèi)者電子設(shè)備,網(wǎng)絡(luò)PC,小型機(jī),大型機(jī),包括任何一個(gè)上述系統(tǒng)或設(shè)備的分布式計(jì)算機(jī)環(huán)境,等等一起使用,但不限于此。
本發(fā)明的實(shí)施例可以通過(guò)計(jì)算機(jī)的可執(zhí)行指令的通用格式來(lái)描述,例如通過(guò)一個(gè)或多個(gè)計(jì)算機(jī)或其它設(shè)備執(zhí)行的程序模塊。通常,程序模塊包括例行程序,程序,對(duì)象,組合部件,和完成指定任務(wù)或執(zhí)行提取數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu),但不限于此。本發(fā)明也可以在分布式計(jì)算機(jī)環(huán)境中執(zhí)行,其中的任務(wù)由通過(guò)一個(gè)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行。在分布式計(jì)算機(jī)環(huán)境中,程序模塊可以定位在包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒介。
在操作中,計(jì)算機(jī)70執(zhí)行像在下文所描述的那些計(jì)算機(jī)可執(zhí)行指令將文件組織成為對(duì)象。在這個(gè)例子中,至少某些對(duì)象是組合部件的描述并且每一個(gè)組成對(duì)象至少包括一個(gè)文件。依據(jù)計(jì)算機(jī)可執(zhí)行指令,清單識(shí)別每一個(gè)組合部件并且確定組合部件和其它對(duì)象之間的任何從屬性。依據(jù)清單中確定的從屬性歸類的對(duì)象允許構(gòu)造軟件產(chǎn)品。
本領(lǐng)域技術(shù)人員將注意到這里圖解說(shuō)明并描述的方法的執(zhí)行或運(yùn)行的順序不是十分重要的,除非以其它方式確定。也就是說(shuō),發(fā)明者確定方法的要素可以以任何順序被執(zhí)行,除非以其它方式確定,該方法包括的要素可以多于或少于這里公開(kāi)的那些方法的要素。
在這個(gè)文件中的信息易于改變而無(wú)須通告,包括統(tǒng)一資源指標(biāo)器和其它因特網(wǎng)設(shè)置索引。除非以其它方式通告,這里例子中描述的公司,機(jī)構(gòu),產(chǎn)品,域名,電子郵件地址,標(biāo)識(shí)語(yǔ),人,位置和事件是虛構(gòu)的,和真實(shí)的公司,機(jī)構(gòu),產(chǎn)品,域名,電子郵件地址,標(biāo)識(shí)語(yǔ),人,位置和事件無(wú)關(guān),是無(wú)法從其推知出來(lái)的。
當(dāng)介紹本發(fā)明的要素或其實(shí)施例時(shí),冠詞“a”,“an”,“the”,和“said”意味著存在一個(gè)或多個(gè)要素。術(shù)語(yǔ)“comprising”,“including”,和“having”是指被包含在內(nèi)的并意味著可以是附加的要素而不是被列舉的要素。
從上述來(lái)看,可以看到本發(fā)明的若干對(duì)象被獲得并且獲得其它有利的結(jié)果。
例如,本發(fā)明的實(shí)施例是可延伸和可擴(kuò)展的。組合部件存儲(chǔ)處能夠跟蹤在一個(gè)運(yùn)行-時(shí)間系統(tǒng)上的相對(duì)少的組合部件(例如,成百)到在一個(gè)設(shè)計(jì)-時(shí)間系統(tǒng)上相對(duì)多的組合部件(例如,成百成千)。本發(fā)明包括的范例也是充分的擴(kuò)展從而附加的元數(shù)據(jù)和新的組合部件可以由不同的產(chǎn)品部分和三分之一部分被添加??删幊棠J绞浅浞值臄U(kuò)展從而人們可以以一種相容的方式擴(kuò)展它,將功能性添加到核心元件機(jī)構(gòu)中。
未脫離本發(fā)明范圍的情況下,可以對(duì)上述構(gòu)造和方法中作出的各種各樣的變化,所以意指在上述由于描述包括的以及在相應(yīng)附圖中所示的所有的內(nèi)容將解釋為說(shuō)明性的,所以不是限制性的。
數(shù)據(jù)存儲(chǔ)和格式程序設(shè)計(jì)工具創(chuàng)建組合部件,特征,類,插件,產(chǎn)品和SKU。在這個(gè)例子中,它們?cè)谝粋€(gè)XML文件(被稱作一個(gè)載體或清單)中被表示。每一個(gè)載體包括至少一個(gè)實(shí)例的特征或類或插件或產(chǎn)品或SKU。一個(gè)記錄的清單的例子如下<?xml version=”1.0”encoding=”UTF-16”?>
<!-edited with XMLSPY v5 U(http://www.xmlspy.com)by vijayj(ms)->
<!-edited with XMLSpy v4.4 U(http://www.xmlspy.com)by VijayjJayaseelan(ms)->
<assembly manifestVersion=”1.0”authors=”vijayj”company=”Microsoft”copyright=”Microsoft”displayName=”Notepad”lastUpdateTimeStamp=”2002-07-31T09:23:00”owners=”none”released=”false”testers=’nonesupportInformation=”http://www.microsoft.com”description=”Unicodeand non-unicode text file editor.”Xmlns=”urn:schemas-microsoft.com:asm.v2”>
<assemblyIdentity name=”notepad”version=”1.0.0.0”processorArchitecture=”x86”language=”neutral”buildType=”release”/>
<dependency>
<dependentCategory name=”Notepad Language Category”version=“1.0.0.0”processorArchitecture=”x86”language=”*”buildType=”release”selection=”one”/>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity name=”Windows Shell”version=”1.0.0.0”processorArchitecture=”x86”language=”*”buoldType=”release”/>
</dependentAssembly>
</dependency>
<file name=”notepad.exe”sourcePath=”%_NTTREE%\”/>
<memberships>
<categoryMembership name=”Text Editors”version=”1.0.0.0”processorArchitecture=”x86”language=”*”buildType=”release”/>
</memberships>
<registryKeys>
<registryKey Name=”HKCU\Notepad\Settings\”/>
<registryKey keyName=”HKCU\Notepad\Settings\Font\”>
<registry Value name=”Name”value Type=”REG_SZ”value=”Arial”/>
<registryValue name=”Size”valueType=”REG_DWORD”value=”10”/>
</registryKey>
</registryKeys>
<propertyTypes>
<propertyType name=”DefaultFont”valueType=”string”access=”public” readOnly=”false”value=”Arial”regularExpression=”(Arial)|(Lucida
Consple)|(Courier)”>
<registryLocation keyName=”HKCU\Notepad\Settings\Font\”>
<registry Value name=”Name”valueType=”REG_SZ”value=”Arial”/>
</registryLocation>
</propertyType>
</propertyType>
</assembly>
權(quán)利要求
1.一種從多個(gè)文件中構(gòu)建軟件產(chǎn)品的方法,所述方法包括將文件組織成對(duì)象,多個(gè)所述對(duì)象表示組件,每一個(gè)所述組件包括至少一個(gè)文件;通過(guò)對(duì)此相關(guān)的清單來(lái)識(shí)別每一個(gè)組件;通過(guò)清單確定在組件和其它對(duì)象之間的一個(gè)或多個(gè)從屬性;以及依據(jù)在清單中確定的從屬性將對(duì)象歸類從而構(gòu)建軟件產(chǎn)品。
2.權(quán)利要求1的方法進(jìn)一步包括生成的和組件相關(guān)的元數(shù)據(jù),從而將不同的軟件產(chǎn)品描述為所選擇的組件的不同設(shè)定的功能。
3.權(quán)利要求1的方法,其中至少所述對(duì)象的一個(gè)是表示軟件產(chǎn)品的特征并進(jìn)一步包括將選擇的對(duì)象歸類從而定義由所選擇的對(duì)象的文件執(zhí)行的軟件產(chǎn)品的特征。
4.權(quán)利要求3的方法,其中歸類所選擇的對(duì)象從而定義包括依據(jù)在清單中確定的從屬性歸類的一個(gè)或多個(gè)組件的特征。
5.權(quán)利要求1的方法,其中至少所述對(duì)象的一個(gè)是表示在軟件產(chǎn)品中文件的類并且進(jìn)一步包括由一個(gè)或多個(gè)其它對(duì)象表示的在類中的成員。
6.權(quán)利要求5的方法,其中在類中表示成員的每一個(gè)對(duì)象表示下述的至少一個(gè)一個(gè)組件,一個(gè)特征,以及一個(gè)插件。
7.權(quán)利要求1的方法進(jìn)一步包括將選擇的組件作為一個(gè)操作系統(tǒng)影像安裝在一臺(tái)計(jì)算機(jī)上。
8.權(quán)利要求1的方法,其中所述組成對(duì)象依賴于表示下述一個(gè)或多個(gè)的組件其它的組件;一個(gè)類;以及一個(gè)特征。
9.權(quán)利要求1的方法,其中每一個(gè)對(duì)象表示下述的至少一個(gè)一個(gè)組件,一個(gè)類,一個(gè)特征,一個(gè)產(chǎn)品,一個(gè)存儲(chǔ)保持單元,以及一個(gè)插件。
10.權(quán)利要求1的方法,其中每一個(gè)組合部件包括與其相關(guān)的清單。
11.權(quán)利要求1的方法,其中每一個(gè)組合部件包括識(shí)別信息。
12.權(quán)利要求1的方法,其中一個(gè)或多個(gè)計(jì)算機(jī)可讀媒介具有用于執(zhí)行權(quán)利要求1的方法的計(jì)算機(jī)可讀指令。
13.一個(gè)或多個(gè)計(jì)算機(jī)可讀媒介具有用于從多個(gè)文件中構(gòu)建一個(gè)軟件產(chǎn)品存儲(chǔ)在其上的對(duì)象,所述計(jì)算機(jī)可讀媒介包括多個(gè)組件對(duì)象,所述每一個(gè)組成對(duì)象包括一個(gè)或多個(gè)文件和一個(gè)與其相關(guān)的清單,所述清單包括元數(shù)據(jù),其識(shí)別組件對(duì)象并且指定組件對(duì)象和一個(gè)和多個(gè)其它對(duì)象之間的從屬性;以及至少一個(gè)相應(yīng)于軟件產(chǎn)品的特征的特征對(duì)象,所述特征對(duì)象包括依據(jù)在清單中指定的從屬性歸類的一個(gè)或多個(gè)所選定的對(duì)象。
14.權(quán)利要求13的計(jì)算機(jī)可讀媒介,其中在特征對(duì)象中選擇的對(duì)象依據(jù)對(duì)象之間的從屬性歸類并且包括下述的一個(gè)或多個(gè)一個(gè)組合成分對(duì)象和一個(gè)特征對(duì)象。
15.權(quán)利要求13的計(jì)算機(jī)可讀媒介,其中軟件產(chǎn)品包括一個(gè)操作系統(tǒng)。
16.權(quán)利要求13的計(jì)算機(jī)可讀媒介進(jìn)一步包括一個(gè)用于將相關(guān)對(duì)象歸類的類對(duì)象。
17.權(quán)利要求16的計(jì)算機(jī)可讀媒介,其中在類對(duì)象中的對(duì)象表示在類對(duì)象中的成員并且包括下述的一個(gè)或多個(gè)一個(gè)組件對(duì)象,一個(gè)特征對(duì)象,和一個(gè)插件對(duì)象。
18.權(quán)利要求13的計(jì)算機(jī)可讀媒介,其中每一個(gè)對(duì)象至少表示下述的至少一個(gè)一個(gè)組件,一個(gè)類,一個(gè)特征,一個(gè)產(chǎn)品,一個(gè)存儲(chǔ)保持單元,以及一個(gè)插件。
19.權(quán)利要求13的計(jì)算機(jī)可讀煤介,其中每一個(gè)對(duì)象包括識(shí)別信息。
20.權(quán)利要求13的計(jì)算機(jī)可讀媒介,其中所述組成對(duì)象依賴于下述一個(gè)或多個(gè)其它的組件對(duì)象;一個(gè)類對(duì)象;以及一個(gè)特征對(duì)象。
全文摘要
從一種組合化模式表示的文件中構(gòu)建一個(gè)操作系統(tǒng)或其它軟件產(chǎn)品。依據(jù)該模式,一個(gè)組件對(duì)象表示一個(gè)或多個(gè)文件。該組件對(duì)象具有一個(gè)清單,其識(shí)別該組件并確定在組件和其它對(duì)象之間的任意從屬性。依據(jù)在清單中確定的從屬性歸類的對(duì)象允許構(gòu)建軟件產(chǎn)品。通過(guò)至少一個(gè)組件對(duì)象定義的特征對(duì)象表示軟件產(chǎn)品的一個(gè)特征以及通過(guò)至少一個(gè)特征對(duì)象定義的一個(gè)產(chǎn)品對(duì)象表示軟件產(chǎn)品。
文檔編號(hào)G06F9/44GK1617097SQ20041008515
公開(kāi)日2005年5月18日 申請(qǐng)日期2004年8月13日 優(yōu)先權(quán)日2003年9月2日
發(fā)明者R·賈漢瓦, V·賈亞西蘭, M·J·格里爾, M·J·戴, B·麥克內(nèi)爾 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
康定县| 桂东县| 荣昌县| 陵川县| 宽甸| 白沙| 静海县| 衡水市| 灵寿县| 福贡县| 汝州市| 文水县| 仙桃市| 藁城市| 原阳县| 龙门县| 南康市| 潜江市| 千阳县| 湖北省| 偃师市| 赤城县| 婺源县| 阿图什市| 穆棱市| 蚌埠市| 永靖县| 洛阳市| 雅江县| 五大连池市| 喀喇沁旗| 临沧市| 巴青县| 宁夏| 宁安市| 葫芦岛市| 朝阳市| 阿拉善盟| 随州市| 黄平县| 八宿县|