專利名稱:用于封閉系統(tǒng)的編程框架的制作方法
用于封閉系統(tǒng)的編程框架
扭旦 冃足
開發(fā)在一個計算平臺上表現(xiàn)良好的軟件應(yīng)用程序是復(fù)雜的任務(wù),但開發(fā)在 多個平臺上表現(xiàn)良好的應(yīng)用程序更加困難。存在許多為了控制計算平臺的硬件 和操作系統(tǒng)以產(chǎn)生開發(fā)者所需的結(jié)果而必須執(zhí)行和管理的任務(wù),并且完成這些 任務(wù)的方式在各平臺之間廣泛地變化。還存在對在各平臺之間變化的應(yīng)用程序 行為的期望。盡管具有平臺制造商的完全支持,但對于專業(yè)軟件開發(fā)者而言編 寫正確地執(zhí)行不同平臺上所需的所有任務(wù)并創(chuàng)建遵照這些平臺的預(yù)期行為的 新應(yīng)用程序是非常費時且復(fù)雜的。對于業(yè)余愛好者、學(xué)生開發(fā)者或者制造商所 批準(zhǔn)的開發(fā)者圈子之外的其他程序員而言,應(yīng)用程序開發(fā)的這個方面甚至更具 有挑戰(zhàn)性。
這在諸如游戲控制臺等封閉系統(tǒng)中尤其如此。游戲控制臺通常只允許由制 造商控制的"經(jīng)簽署的"或經(jīng)認(rèn)證的游戲在這些控制臺上執(zhí)行。該限制可出于 各種原因而作出,包括為發(fā)行商保護維護嚴(yán)格控制的環(huán)境的商業(yè)模型、防止知 識產(chǎn)權(quán)侵犯或控制作弊的可能性。然而,存在想要創(chuàng)建其自己的用于封閉系統(tǒng)
以及更開放的平臺的程序的自制(homebrew)開發(fā)者和業(yè)余愛好者的極速增長 的市場。這些開發(fā)者花費時間和精力來攻擊(hack)游戲控制臺以允許未經(jīng) 簽署的代碼在這些控制臺上運行。將會期望具有使得這些開發(fā)者能夠創(chuàng)建其 內(nèi)容而不必侵入封閉系統(tǒng)同時仍舊保持對這些系統(tǒng)的保護級別的合法方式。
因此,需要使開發(fā)者無需針對不同平臺和操作系統(tǒng)來定制其軟件的方式。 如果開發(fā)者能夠使用將允許程序在不同平臺上運行而不為處理不同的底層軟 件或硬件而定制應(yīng)用程序代碼的對操作系統(tǒng)的標(biāo)準(zhǔn)接口或編程框架來編寫程 序,這將極大地簡化他們的工作。這一框架將需要允許開發(fā)者以相同的方式與 各種計算設(shè)備的操作系統(tǒng)交互以使得該編程框架處理底層代碼和硬件中的差
異。該接口還將通過包括確保所提供的開發(fā)者代碼遵守底層平臺的限制和要求 的檢查和確認(rèn)來保護該平臺。這將解放開發(fā)者以使其編程努力集中于其程序的 創(chuàng)造性方面而不必?fù)?dān)心使程序與不同的操作系統(tǒng)和硬件一起工作的更乏味的
6任務(wù)。
概述
提供了允許開發(fā)者代碼通過對底層平臺進行抽象的編程框架來訪問計算 系統(tǒng)的資源的機制。通過提供跨多個平臺的一致的框架,制造商能夠通過使得 更易于獲取對操作系統(tǒng)資源和硬件的訪問權(quán)來方便第三方軟件開發(fā)。在當(dāng)前所 公開的主題的一方面,提供平臺的操作系統(tǒng)層和應(yīng)用軟件之間的編程框架。該 框架形成中間層,該中間層代表應(yīng)用軟件來與諸如圖形層、音頻層、輸入層和 存儲層等各種系統(tǒng)層進行通信。這些系統(tǒng)層與平臺操作系統(tǒng)和硬件一起工作以 便完成該平臺上的實現(xiàn)應(yīng)用軟件所需的任務(wù)。
該編程框架提供對計算平臺的標(biāo)準(zhǔn)接口以允許開發(fā)者內(nèi)容控制操作系統(tǒng) 及相關(guān)聯(lián)的資源的各方面。這提供了使用相同的應(yīng)用程序代碼來控制各種平臺 的方式,由此使開發(fā)者無需擔(dān)心使得特定硬件和操作系統(tǒng)資源與其應(yīng)用程序一 起工作。該編程框架創(chuàng)建平臺抽象以使得開發(fā)者代碼以相同的方式與計算平臺 的單個、抽象出的版本交互,而不管其上運行該代碼的實際平臺。該框架實現(xiàn) 指示操作系統(tǒng)和硬件執(zhí)行實現(xiàn)開發(fā)者應(yīng)用程序所必需的任務(wù)的平臺專用方面, 從而使開發(fā)者從該任務(wù)中解放出來。該框架還提供平臺所期望的適當(dāng)行為以使 得應(yīng)用程序能夠成功地在該平臺上運行,并且在應(yīng)用程序代碼和平臺之間添加 附加安全層。
應(yīng)當(dāng)注意,提供本概述以便用簡化形式介紹下面在詳細(xì)描述中進一步描述 的一些概念。該概述不旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也 不旨在用于幫助確定所要求保護的主題的范圍。
附圖簡述
以上的概述以及以下的詳細(xì)描述在結(jié)合附圖閱讀時能更好地理解。為了闡 明本發(fā)明,示出了本發(fā)明的各方面。然而,本發(fā)明不限于所討論的特定方面。 包括以下附圖
圖1示出了其中開發(fā)者軟件直接與各操作系統(tǒng)層交互的現(xiàn)有技術(shù)系統(tǒng); 圖2是示出其中開發(fā)者軟件與編程框架交互作為與各操作系統(tǒng)層進行通信的方式的示例系統(tǒng)的示圖3是示出編程框架通過將開發(fā)者軟件請求轉(zhuǎn)換成操作系統(tǒng)圖形層所期 望的格式來提供平臺抽象的示例方式的示圖4是進一步示出編程框架通過將開發(fā)者軟件請求轉(zhuǎn)換成不同的操作系 統(tǒng)圖形層所期望的另一種格式來提供平臺抽象的示例方式的示圖5是示出編程框架通過在將請求從開發(fā)者代碼傳遞至操作系統(tǒng)圖形層 時仿真適當(dāng)?shù)拇a行為來提供平臺抽象的示例方式的示圖6示出了表示其上可實現(xiàn)根據(jù)當(dāng)前所公開的主題的編程框架的示例性、 非限制計算系統(tǒng)環(huán)境的框圖;以及
圖7示出了例示其上可實現(xiàn)根據(jù)當(dāng)前所公開的主題的編程框架的示例性、 非限制性多媒體控制臺設(shè)備的框圖。
詳細(xì)描述 概覽
通常,在計算機平臺上運行的應(yīng)用程序直接與操作系統(tǒng)交互。通過操作系 統(tǒng),應(yīng)用程序操縱完成任務(wù)所需的平臺硬件和資源。應(yīng)用程序通常將使用應(yīng)用 程序接口 (API)來與操作系統(tǒng)的各個元素進行通信以完成其需要的系統(tǒng)級任 務(wù)。這些任務(wù)的示例包括在監(jiān)視器上呈現(xiàn)圖形圖像、在揚聲器上創(chuàng)建音頻輸出、 通過設(shè)備(例如,鍵盤、鼠標(biāo)或游戲控制器)來從用戶接收輸入、訪問存儲器 以及訪問存儲設(shè)備(例如,硬盤驅(qū)動器、軟盤驅(qū)動器或閃速驅(qū)動器)。API以 及如何使用API將由于硬件和操作系統(tǒng)在各平臺之間變化而必定隨平臺而變 化。因此,在平臺上運行的每一個應(yīng)用程序在其想要如所期望地工作的情況下 都必須正確地與該平臺的特定操作系統(tǒng)及其相關(guān)聯(lián)的API交互。此外,存在計 算機平臺上運行的應(yīng)用程序所期望的行為。這些所期望的行為也取決于平臺而 廣泛地變化。應(yīng)用程序無法根據(jù)平臺期望來操作可導(dǎo)致該應(yīng)用程序失敗或不正 確地執(zhí)行。
另一方面,在計算機平臺上運行的大多數(shù)應(yīng)用軟件都將具有關(guān)于其對于平 臺資源的需求和期望的類似要求。即,應(yīng)用軟件最通常將需要使用諸如存儲器、 視覺顯示器、控制器等對于大多數(shù)計算平臺是典型的硬件和軟件。因此,為應(yīng)
8用程序提供對平臺進行抽象的接口是可能的,從而使得應(yīng)用程序無論平臺如何 都看見對平臺的相同接口,同時仍舊提供對大多數(shù)應(yīng)用程序所需資源的訪問。 通過提供這一接口,開發(fā)者無需專注于其應(yīng)用程序的平臺專用方面并且可創(chuàng)建 成功地與多個平臺交互的單個程序。
在本發(fā)明的一個示例性且非限制性方面,提供編程框架以執(zhí)行平臺抽象。 該編程框架提供類似于對于單獨的平臺資源的API的對平臺的接口,但該編程 框架可以是對整個平臺的接口,從而允許訪問該平臺的若干資源。因為應(yīng)用軟 件與平臺的抽象出的版本一起工作,所以該應(yīng)用軟件通過該編程框架來執(zhí)行相 同的完成任務(wù)的動作而不管該框架之下的硬件或軟件。該編程框架接受來自應(yīng) 用程序的對平臺資源的請求并且將該請求傳送到該資源,且修改和格式化該請 求以使其以該資源所需的特定方式正確地接收,由此確保該請求的正確執(zhí)行。 同樣,從系統(tǒng)資源發(fā)往應(yīng)用軟件的信息和請求通過編程框架來傳遞給該應(yīng)用軟 件。
該編程框架還代表應(yīng)用程序提供平臺所期望的行為以使得該應(yīng)用程序?qū)?于該平臺表現(xiàn)為"行為良好的"。這解除了開發(fā)者必須適應(yīng)各種平臺所期望的 行為中的差異的負(fù)擔(dān)。
該編程框架為平臺提供附加安全層。通過提供對平臺的標(biāo)準(zhǔn)化接口,該框 架控制來自應(yīng)用軟件的通信和請求如何到達平臺資源。這提供了針對否則可能 訪問受限平臺資源或執(zhí)行不安全的或非平臺或平臺制造商所期望的動作的應(yīng) 用程序開發(fā)者代碼的附加檢査。該編程框架接口還通過向業(yè)余愛好者或自制開 發(fā)者提供訪問平臺資源的更容易且更高效的方式來減少攻擊計算系統(tǒng),尤其是 諸如游戲控制臺等封閉系統(tǒng)的動機,由此消除了對這些攻擊的需求。
編程框架的各方面
當(dāng)前所公開的主題的該節(jié)聚焦于用于提供平臺抽象的編程框架的各方面。 當(dāng)前所公開的主題適用于其中可能期望允許軟件開發(fā)者創(chuàng)建訪問設(shè)備資源中 的至少一個的應(yīng)用軟件的任何計算設(shè)備。為了獲得對該框架的更好的理解,查 看現(xiàn)有技術(shù)是有益的。
圖1示出了平臺150上的現(xiàn)有技術(shù)系統(tǒng),其中開發(fā)者代碼102直接與各操作系統(tǒng)層交互以達到所需結(jié)果。平臺150可以是諸如游戲控制臺等封閉計算設(shè) 備,其中該封閉計算設(shè)備被配置成執(zhí)行操作系統(tǒng)和游戲軟件;或者平臺150可 以是諸如個人計算機等被配置成執(zhí)行各種各樣的軟件的更開放的平臺。示出了在典型的平臺150上可用的各示例層。這些示例層包括圖形層110、音頻層115、 輸入層120、存儲層125、網(wǎng)絡(luò)層130和數(shù)學(xué)層135。這些層中的每一個都負(fù)責(zé) 不同的任務(wù)。例如,圖形層IIO可負(fù)責(zé)呈現(xiàn)圖形(包括但不限于,平面著色、 普通映射、紋理映射等);音頻層115,顧名思義,可負(fù)責(zé)封閉系統(tǒng)上的音 頻;輸入層120可負(fù)責(zé)處理來自用戶的輸入,諸如控制器按鈕選擇、使用 輸入設(shè)備的點擊等;存儲層125可負(fù)責(zé)存儲特定內(nèi)容或重新調(diào)用特定內(nèi)容; 網(wǎng)絡(luò)層130可允許網(wǎng)絡(luò)訪問,如允許應(yīng)用程序聯(lián)系因特網(wǎng)上的服務(wù)器;以 及數(shù)學(xué)層135可允許執(zhí)行特定數(shù)學(xué)功能,例如以便允許更高效的映射渲染 (如果涉及圖形的話)。這些層IIO、 115、 120、 125、 130和135中的每一個都幫助為應(yīng)用程序提 供對平臺150資源的訪問。這些層還提供用戶模式100和系統(tǒng)管理程序(例如, 內(nèi)核)模式101之間的安全門,開發(fā)者代碼102可能需要通過該安全門以確 保安全的計算(即,以使得該開發(fā)者代碼不會出于非平臺制造商或其他感 興趣各方所預(yù)期的目的而接管底層本機OS層103及任何相關(guān)聯(lián)的平臺資源 150)。層110、 115、 120、 125、 130和135通常是平臺、操作系統(tǒng)或硬件專用的。 例如,組成具有32GB硬盤驅(qū)動器的平臺的存儲層125的軟件將不同于具有 64GB硬盤驅(qū)動器的平臺上所使用的軟件。同樣,平臺操作系統(tǒng)的一個版本可 以與先前版本不同地實現(xiàn)存儲層125。這是必然的,因為不同的硬件需要不同 的軟件來控制它。同樣,底層操作系統(tǒng)的不同版本將會具有不同的軟件以及完 成系統(tǒng)任務(wù)的不同方法。通常,層IIO、 115、 120、 125、 130和135將通過API經(jīng)由應(yīng)用程序訪問 層104來訪問。這些API將隨組成這些層的軟件變化而變化。因此,應(yīng)用程序 代碼必須允許這點,并且或者檢測和提供對其中期望應(yīng)用軟件正確地運行的所 有平臺上所存在的各種API的適當(dāng)輸入,或者限于單個平臺。雖然這由專業(yè)開 發(fā)者來定期理解并處理,但對于這些專業(yè)開發(fā)者而言具 與其一起工作的公共135的API可能是非常 特定且復(fù)雜的,從而需要全面理解這些API的要求以及它們?nèi)绾闻c層一起工 作。無法在請求任務(wù)時向API提供完整且正確的數(shù)據(jù)可能導(dǎo)致任務(wù)失敗或錯誤 情況。API還可期望來自應(yīng)用程序的特定行為以便正確地工作。非專業(yè)開發(fā)者 或并非直接與平臺制造商共事的開發(fā)者或沒有平臺制造商的批準(zhǔn)的開發(fā)者可 能無法容易地獲得這些行為的知識。同樣,雖然這通常由專業(yè)開發(fā)者來處理, 但處理軟件開發(fā)的這些方面對于新手開發(fā)者而言可能是非常令人畏縮的任務(wù)。與圖l相反,圖2示出了利用編程框架205來方便開發(fā)者代碼202和平臺 250的各元素之間的通信的系統(tǒng)。平臺250可以是諸如游戲控制臺等封閉計算 設(shè)備,或者是諸如個人計算機等開放式平臺,其中該計算設(shè)備被配置成執(zhí)行實 現(xiàn)編程框架205的操作系統(tǒng)軟件組件。應(yīng)用程序訪問層204中的層210、 215、 220、 225、 230和235在功能上類似于上文中圖1所描述的層。編程框架205 對用于訪問層210、 215、 220、 225、 230和235的API進行抽象。在本發(fā)明的 一示例性且非限制性方面,編程框架205提供對諸如層210、 215、 220、 225、 230和235等平臺資源的簡化接口。此處所使用的術(shù)語"接口"構(gòu)想了通常將 由軟件使用的任何輸入和輸出的寬泛定義。圖3和4示出了編程框架將如何方便應(yīng)用軟件的開發(fā)并提供平臺抽象的非 常簡化的示例。注意,此處所描述的示例在出于解釋本發(fā)明的主題的目的而顯 示并極大地簡化的計算系統(tǒng)的各部分中是非常有限的。還注意,此處所使用的 命令的示例是僅出于說明的目的而簡化的命令,并且不以任何方式暗示可使用 的實際命令或限制本發(fā)明。圖3示出了平臺350上的示例系統(tǒng),其具有視頻卡355、本機操作系統(tǒng)303、 圖形層310和編程框架305。存在CRT (陰極射線管)監(jiān)視器360,其經(jīng)由 視頻卡355連接到平臺350。在平臺350上運行的開發(fā)者代碼302可請求平 臺350在顯示器上顯示字符集。在該示例中,開發(fā)者代碼302正在請求在監(jiān)視 器360上顯示字符"ABC"。該請求與命令340 "顯示(ABC廣 一起傳送到編 程框架。該編程框架305將接受該請求,修改該請求以符合圖形層310的要求并將該請求提交給圖像層310。對于該示例假設(shè)圖形層310要求如命令330"圖 形API(打印CRT[ABC][50][60][10]}"所示的那樣格式化該命令。在該說明性 示例中,圖形層310需要編程框架305提供的用于除了將要顯示的字符之外的 其他顯示字符的域,從而解除了應(yīng)用程序開發(fā)者代碼302 了解圖形層310的特 定要求的負(fù)擔(dān)。圖形層310然后與操作系統(tǒng)層303 —起工作,該操作系統(tǒng)層303 控制視頻卡355,該視頻卡355進而指示CRT監(jiān)視器360顯示字符。將圖3與圖4進行對比,圖4示出了具有平臺450、視頻卡455、本機操 作系統(tǒng)403、圖形層410和編程框架405的系統(tǒng)。存在LCD (液晶顯示器)監(jiān) 視器460,其經(jīng)由視頻卡455連接到平臺450。此處,相同的開發(fā)者代碼302 在該平臺450上運行,并且用與圖3中的命令"顯示(ABCr相同的命令來向 編程框架405作出相同的請求。編程框架405接受該請求并針對圖形層410來 正確地格式化該請求,但在這種情況下,因為平臺450具有與圖3所示的平臺 不同的資源,所以圖形層410的命令要求不同于圖形層310的命令要求。因此, 編程框架405向圖形層410發(fā)出命令"圖形API(打印LCD[10][50][60][ABC]}"。 然而,應(yīng)用程序開發(fā)者代碼302對底層平臺350和450中的差異可能完全不可 知并且仍然取得與相同的命令340相同的結(jié)果。圖形層410然后與操作系統(tǒng)層 403 —起工作,該操作系統(tǒng)層403控制視頻卡455,該視頻卡455進而指示LCD 監(jiān)視器460顯示字符。該示例示出編程框架如何提供平臺抽象。在圖3和圖4所示的兩個示例中, 開發(fā)者代碼302能夠?qū)⑾嗤拿?40傳送到編程框架305和405,而不管底 層軟件和硬件中的差異。開發(fā)者代碼302能夠與平臺350和450交互而不必解 決包括對與各圖形層API —起工作的不同要求在內(nèi)的各平臺之間的差異。該遠 離開發(fā)者代碼對平臺進行抽象的能力極大地簡化了創(chuàng)建多平臺兼容應(yīng)用程序 的工作。確保代碼跨平臺可行所需的大量乏味的勞動通過使用如此處所使用的 編程框架來消除。圖5示出了編程框架505如何可幫助確保開發(fā)者代碼在其與平臺550交互 時展示適當(dāng)?shù)男袨?。類似于圖3和4,開發(fā)者代碼302向編程框架505傳遞命 令340形式的請求。框架505接收該請求340并采取使得該命令在底層硬件和 軟件中實現(xiàn)的步驟。在該示例中,如果圖形層510要求請求用于要顯示的字符的存儲器空間的命令570始終在諸如命令530等請求顯示字符的命令之前,則 編程框架505將提供該附加請求570。作為其平臺抽象的責(zé)任的一部分,框架 505將發(fā)出任何必需的附加命令并執(zhí)行允許開發(fā)者代碼302從操作系統(tǒng)層的觀 點來看表現(xiàn)為正確地工作所需的附加動作,由此幫助確保開發(fā)者代碼302如所 預(yù)期的那樣執(zhí)行。這還使開發(fā)者無需在應(yīng)用程序代碼302中包括代碼行為的不 同變體以適應(yīng)不同平臺所期望的各種行為。
該編程框架還可為平臺提供附加安全層。再次參考圖2,如果開發(fā)者代碼 202向編程框架205發(fā)出訪問其不應(yīng)該可訪問的資源的請求,或試圖控制或以 其他方式執(zhí)行平臺制造商所不準(zhǔn)許或不期望的任務(wù),則編程框架205將用作附 加防御。編程框架205還可簡單地不變得通過其允許這些禁止的行為的接口命 令或程序調(diào)用可用。雖然諸如圖形層210或存儲層225等平臺250中的系統(tǒng)通 常具有內(nèi)置保護設(shè)備,但編程框架205的附加功能用于進一步保護這些資源。 例如,如果開發(fā)者代碼202發(fā)出向當(dāng)前正作為內(nèi)核或本機操作系統(tǒng)軟件203的 一部分來使用的存儲器片段寫入的請求,則編程框架205將會是針對這一請求 的第一條防守線??蚣?05可具有從存儲層225接收到的受限存儲器位置的列 表,該框架205使用該列表來檢査來自開發(fā)者代碼202的存儲器請求。在其他 情況下,編程框架205可具有諸如盤格式化或改變密碼等嚴(yán)格而言對于開發(fā)者 代碼202是不被允許的特定命令或功能的靜態(tài)列表。
編程框架的附加、較不直接的安全特征是減少攻入平臺,尤其是對于諸如 游戲控制臺等封閉系統(tǒng)的動機。如果諸如此處所使用的編程框架變得對業(yè)余愛 好者和新手開發(fā)者可用以允許他們在框架所提供的限制內(nèi)容易地創(chuàng)建軟件,則 這些開發(fā)者將很有可能會選擇使用該框架而不是攻入平臺。該編程框架將允許 這些開發(fā)者將其努力集中于開發(fā)其軟件的創(chuàng)造性方面。他們將不必在想出如何
規(guī)避限制和封閉系統(tǒng)的必需的軟件簽署上花費時間和精力。即使在開放式系統(tǒng) 中,可訪問且易于使用的編程框架的存在也將允許開發(fā)者更高效地利用對于平 臺可用的資源,并激勵用戶開發(fā)新軟件。
示例性計算設(shè)備
如上所述,當(dāng)前所公開的主題適用于其中可能期望允許軟件開發(fā)者創(chuàng)建訪
13問設(shè)備資源中的至少一個的應(yīng)用軟件的任何計算設(shè)備。然而,應(yīng)當(dāng)理解,等價 于應(yīng)用軟件的內(nèi)容的其他內(nèi)容可以與當(dāng)前所公開的編程框架一起工作,并且 當(dāng)前所公開的主題能夠在不限于此處所描述的示例的所有種類的計算設(shè)備 上實現(xiàn)。因此,以下在圖6中描述的通用計算設(shè)備僅是一個示例,且本發(fā)明的 主題可用任何客戶機、服務(wù)器、便攜式或非便攜式設(shè)備來實現(xiàn),而無論其是獨 立的還是具有網(wǎng)絡(luò)/總線互操作性和交互。由此,本發(fā)明主題可在其中蘊含了極 少或最少客戶機資源的聯(lián)網(wǎng)主存服務(wù)的環(huán)境,例如其中客戶機設(shè)備僅用作到網(wǎng) 絡(luò)/總線的接口 (如置于器具中的對象)的聯(lián)網(wǎng)環(huán)境中實現(xiàn)。
盡管并不是必需的,但本發(fā)明的主題可以部分地經(jīng)由操作系統(tǒng)來實現(xiàn),以 供設(shè)備或?qū)ο蟮姆?wù)或軟件的開發(fā)者使用,和/或被包括在結(jié)合本發(fā)明主題操作 的應(yīng)用軟件中。軟件可以在由諸如客戶機工作站、服務(wù)器或其它設(shè)備等一個或 多個計算機執(zhí)行的諸如程序模塊等計算機可執(zhí)行指令的通用上下文中描述。本 領(lǐng)域技術(shù)人員可以理解,本發(fā)明主題可以用其它計算機系統(tǒng)配置和協(xié)議來實 施。
圖6由此示出了其中可實現(xiàn)參考圖l-5描述的各方面的合適的計算系統(tǒng)環(huán) 境600的一個示例,但如以上清楚地描述的,計算系統(tǒng)環(huán)境600僅為用于實現(xiàn) 當(dāng)前所公開的主題的合適計算環(huán)境的一個示例,并非旨在對本發(fā)明的各方面的 使用范圍或功能提出任何限制。也不應(yīng)該把計算環(huán)境600解釋為對示例性操作 環(huán)境600中示出的任一組件或其組合有任何依賴性或要求。
參考圖6,用于實現(xiàn)以上提到的各方面的示例性計算設(shè)備包括計算機610 形式的、在上文中也被稱為平臺的通用計算設(shè)備。計算機610的組件可以包括, 但不限于,處理單元620、系統(tǒng)存儲器630和將包括系統(tǒng)存儲器在內(nèi)的各種系 統(tǒng)組件耦合至處理單元620的系統(tǒng)總線621。系統(tǒng)總線621可以是幾種類型的 總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲控制器、外圍總線、以及使用 各種總線體系結(jié)構(gòu)中的任一種的局部總線。
計算機610通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計 算機610訪問的任何可用介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可包括計 算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指 令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和
14非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技術(shù)、CDROM、數(shù)字多功能盤(DVD) 或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或可以用來儲存 所期望的信息并可由計算機610訪問的任一其它介質(zhì)。通信介質(zhì)通常以諸如載 波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序 模塊或其它數(shù)據(jù),并包括任意信息傳送介質(zhì)。
系統(tǒng)存儲器630可以包括計算機存儲介質(zhì),其形式為易失性和/或非易失 性存儲器,諸如只讀存儲器(ROM) 632和/或隨機存取存儲器(RAM) 634。 基本輸入/輸出系統(tǒng)(BIOS)可被存儲在存儲器630中,它包含幫助在諸如啟 動期間在計算機610內(nèi)的元件之間傳遞信息的基本例程。存儲器630通常還包 含處理單元620可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。作為 示例而非限制,存儲器630還可以包括操作系統(tǒng)、應(yīng)用程序、其它程序模塊、 和程序數(shù)據(jù)。
計算機610也可以包括其它可移動/不可移動、易失性/非易失性計算機存 儲介質(zhì)。例如,計算機610可以包括對不可移動、非易失性磁介質(zhì)進行讀寫的 硬盤驅(qū)動器,對可移動、非易失性磁盤進行讀寫的磁盤驅(qū)動器,和/或?qū)χT如 CD-ROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤進行讀寫的光盤驅(qū)動器???以在示例性操作環(huán)境中使用的其它可移動/不可移動、易失性/非易失性計算機 存儲介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài) RAM、固態(tài)ROM等等。硬盤驅(qū)動器通常由諸如接口 680等不可移動存儲器接 口連接至系統(tǒng)總線621,而磁盤驅(qū)動器或光盤驅(qū)動器通常由諸如接口 690等可 移動存儲器接口連接至系統(tǒng)總線621。
用戶除了能夠經(jīng)由控制器來向封閉計算設(shè)備提供輸入之外,用戶可以通過 輸入設(shè)備,如鍵盤和定點設(shè)備(通常指鼠標(biāo)、跟蹤球或觸摸墊)向計算機610 輸入命令和信息。除了這些外圍設(shè)備之外,其他輸入設(shè)備可包括話筒、操縱桿、 游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常由耦合至 系統(tǒng)總線621的用戶輸入640和相關(guān)聯(lián)的接口連接到處理單元620,但是也可 由諸如并行端口、游戲端口或通用串行總線(USB)之類的其它接口和總線結(jié) 構(gòu)連接。圖形子系統(tǒng)也可以被連接到系統(tǒng)總線621。監(jiān)視器或其它類型的顯示設(shè)備也通過接口,如輸出接口 650連接至系統(tǒng)總線621,而輸出接口 650又與視頻存儲器通信。除監(jiān)視器之外,計算機還可以包括其它外圍輸出設(shè)備,如揚聲器和打印機,它們可以通過輸出接口 650連接。
計算機610可使用至諸如遠程計算機670等的一個或多個遠程計算機的邏輯連接在網(wǎng)絡(luò)化或分布式環(huán)境中操作,遠程計算機670又可以具有與設(shè)備610不同的媒體能力。遠程計算機670可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點、或任何其它遠程媒體消費或傳輸設(shè)備,并且可以包括上面關(guān)于計算機610所描述的任何或全部元件。圖6所描繪的邏輯連接包括網(wǎng)絡(luò)671,網(wǎng)絡(luò)671的示例包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),但也可包括其它網(wǎng)絡(luò)/總線。這樣的聯(lián)網(wǎng)環(huán)境在家庭、辦公室、企業(yè)范圍計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機610通過網(wǎng)絡(luò)接口或適配器連接到網(wǎng)絡(luò)671。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機610通常包括調(diào)制解調(diào)器或用于通過諸如因特網(wǎng)等的WAN建立通信的其它裝置。調(diào)制解調(diào)器可以是內(nèi)置或外置的,它可以通過輸入640的用戶輸入接口或其它適當(dāng)機制連接至系統(tǒng)總線621 。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機610所描述的程序模塊或其部分可被儲存在遠程存儲器存儲設(shè)備中。本領(lǐng)域的技術(shù)人員可以理解,所示和所述的網(wǎng)絡(luò)連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
示例性封閉系統(tǒng)或控制臺環(huán)境
接著參考圖7,其示出了例示另一示例性、非限制性計算設(shè)備,即示例性多媒體控制臺的框圖,該示例性多媒體控制臺可以是封閉的以便只允許訪問有限量的由諸如封閉設(shè)備制造商或游戲軟件發(fā)行商等某一簽署機構(gòu)簽署的軟件組件。圖7示出其中可實現(xiàn)所公開的本發(fā)明的主題的各方面的多媒體控制臺700的功能組件。多媒體控制臺700包括具有1級(Ll)高速緩存702、 2級(L2)高速緩存704和閃存ROM (只讀存儲器)706的中央處理單元(CPU)701。 1級高速緩存702和2級高速緩存704臨時存儲數(shù)據(jù)并因此減少存儲器訪問周期數(shù),從而提高處理速度和吞吐量。閃存ROM 706可存儲在多媒體控制臺700通電時在引導(dǎo)進程初始化階段加載的可執(zhí)行代碼。另選地,在初始引導(dǎo)階段期間加載的可執(zhí)行代碼可被存儲在閃存設(shè)備(未示出)中。此外,ROM 706可與CPU 701分開放置。
該控制臺可具有對其可用的各種資源,諸如來自用于高速、高分辨率圖形處理的視頻處理流水線的圖形處理單元(GPU) 708和視頻編碼器/視頻編解碼器(編碼器/解碼器)714。在該設(shè)置中,數(shù)據(jù)經(jīng)由總線從圖形處理單元708輸送到視頻編碼器/視頻編解碼器714。視頻處理流水線將數(shù)據(jù)輸出到A/V (音頻/視頻)端口 740以傳輸?shù)诫娨暬蚱渌@示器。存儲器控制器710被連接到GPU708和CPU 701以方便處理器訪問各種類型的存儲器712,諸如但不局限于RAM (隨機存取存儲器)。
多媒體控制臺700包括較佳地在模塊718上實現(xiàn)的I/O控制器720、系統(tǒng)管理控制器722、音頻處理單元723、網(wǎng)絡(luò)接口控制器724、第一 USB主控制器726、第二 USB控制器728和前面板I/O部件730。 USB控制器726和728用作外圍控制器742(1 )-742(2)、無線適配器748、和外置存儲器單元746 (例如閃存、外置CD/DVD ROM驅(qū)動器、可移動介質(zhì)等)的主機。網(wǎng)絡(luò)接口724和/或無線適配器748提供對網(wǎng)絡(luò)(例如因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問并且可以是各種不同有線或無線接口組件中的任一種,包括以太網(wǎng)卡、調(diào)制解調(diào)器、藍牙模塊、電纜調(diào)制解調(diào)器等等。
提供系統(tǒng)存儲器743以存儲在引導(dǎo)進程期間加載的應(yīng)用程序數(shù)據(jù)。提供媒體驅(qū)動器744且其可包括DVD/CD驅(qū)動器、硬盤驅(qū)動器、或其它可移動媒體驅(qū)動器等。媒體驅(qū)動器744可以內(nèi)置或外置于多媒體控制臺700。應(yīng)用程序數(shù)據(jù)可經(jīng)由媒體驅(qū)動器744訪問,以由多媒體控制臺700執(zhí)行、回放等。媒體驅(qū)動器744經(jīng)由諸如串行ATA總線或其它高速連接(例如正EE 1394)等總線連接到1/0控制器720。
系統(tǒng)管理控制器722提供涉及確保多媒體控制臺700可用性的各種服務(wù)功能。音頻處理單元723和音頻編解碼器732形成具有高保真度和立體聲處理的對應(yīng)音頻處理流水線。音頻數(shù)據(jù)經(jīng)由通信鏈路在音頻處理單元723與音頻編解碼器726之間傳輸。音頻處理流水線將數(shù)據(jù)輸出到A/V端口 740以供外置音頻播放器或具有音頻能力的設(shè)備再現(xiàn)。
前面板I/O部件730支持暴露在多媒體控制臺700外表面上的電源按鈕
17750和彈出按鈕752以及任何LED (發(fā)光二極管)或其它指示器的功能。系統(tǒng) 電源模塊736向多媒體控制臺700的組件供電。風(fēng)扇738冷卻多媒體控制臺700 內(nèi)的電路。
CPU 701、 GPU 708、存儲器控制器710、和多媒體控制臺700內(nèi)的各個 其它組件經(jīng)由一條或多條總線互連,包括串行和并行總線、存儲器總線、外圍 總線、和使用各種總線架構(gòu)中任一種的處理器或局部總線。
當(dāng)多媒體控制臺700通電或重新引導(dǎo)時,應(yīng)用程序數(shù)據(jù)可從系統(tǒng)存儲器 743加載到存儲器712和/或高速緩存702和704中并在CPU 701上執(zhí)行。應(yīng)用 程序可呈現(xiàn)在導(dǎo)航到多媒體控制臺700上可用的不同媒體類型時提供一致的用 戶體驗的圖形用戶界面。在操作中,媒體驅(qū)動器744中包含的應(yīng)用程序和/或其 它媒體可從媒體驅(qū)動器744啟動或播放,以向多媒體控制臺700提供附加功能。
多媒體控制臺700可通過將該系統(tǒng)簡單地連接到電視機或其它顯示器而 作為獨立系統(tǒng)來操作。在該獨立模式中,多媒體控制臺700可以允許一個或多 個用戶與該系統(tǒng)交互、看電影、聽音樂等。然而,隨著可通過網(wǎng)絡(luò)接口 724或 無線適配器748獲得的寬帶連接的集成,多媒體控制臺700還可在較大網(wǎng)絡(luò)社 區(qū)中作為參與者來操作。
圖7所描繪的多媒體控制臺是可用于執(zhí)行諸如游戲等多媒體應(yīng)用程序的 典型的多媒體控制臺。多媒體應(yīng)用程序可以用系統(tǒng)特征來增強,這些系統(tǒng)特征 包括例如系統(tǒng)設(shè)置、語音聊天、聯(lián)網(wǎng)游戲、通過網(wǎng)絡(luò)與其他用戶交互的能力、 電子郵件、瀏覽器應(yīng)用程序等。這些系統(tǒng)特征可啟用多媒體控制臺700的改進 的功能,諸如不同位置的玩家具有經(jīng)由因特網(wǎng)玩同一個游戲的能力。
同樣,隨著時間流逝,可以更新或向多媒體應(yīng)用程序添加系統(tǒng)特征。并非 要求多媒體開發(fā)者對多媒體應(yīng)用程序做出顯著修改來提供這些系統(tǒng)特征,此處 描述的系統(tǒng)和方法允許多媒體開發(fā)者通過結(jié)合多媒體應(yīng)用程序工作的獨立的 系統(tǒng)應(yīng)用程序來提供系統(tǒng)特征。例如,系統(tǒng)應(yīng)用程序可以實現(xiàn)涉及聯(lián)網(wǎng)能力的 功能,從而使多媒體應(yīng)用程序能夠被容易地調(diào)整以使多媒體(例如,游戲)開 發(fā)者進行少量工作即可提供聯(lián)網(wǎng)能力。這種能力之一是對于多個和聯(lián)網(wǎng)的用戶 的系統(tǒng)級通知。使系統(tǒng)級通知成為系統(tǒng)應(yīng)用程序的一部分而非由諸如運行于系 統(tǒng)上的游戲等各個多媒體應(yīng)用程序處理,為多媒體應(yīng)用程序開發(fā)者將處理諸如游戲邀請等顯示通知從開發(fā)過程中除去,并允許他們致力于多媒體應(yīng)用程序本 身。
如上所述,盡管結(jié)合各種計算設(shè)備和網(wǎng)絡(luò)體系結(jié)構(gòu)描述了本發(fā)明的主題的 各示例性實施例,但基本概念可被應(yīng)用于其中可加載并執(zhí)行開發(fā)者應(yīng)用軟件的 任何計算設(shè)備或系統(tǒng)。例如,所討論的各方面的算法和硬件實現(xiàn)可被應(yīng)用于計
算設(shè)備的操作系統(tǒng),可作為設(shè)備上的獨立對象、作為另一對象的一部分、作為 可重復(fù)使用的控件、作為可從服務(wù)器下載的對象、作為設(shè)備或?qū)ο笈c網(wǎng)絡(luò)之間 的"中間人"、作為分布式對象、作為硬件、以存儲器、以上任何的組合等來 提供。盡管此處選擇了示例性編程語言、名稱和示例來表示各種選擇,但這些 語言、名稱和示例并不旨在是限制性的。
此處所述的各種技術(shù)可結(jié)合硬件或軟件,或在適當(dāng)時以其組合來實現(xiàn)。由 此,本發(fā)明主題的方法和裝置或其特定方面或部分可采取包含在諸如軟盤、
CD-ROM、硬盤驅(qū)動器或任何其它機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼 (即,指令)的形式,其中當(dāng)程序代碼被加載到諸如計算機等機器內(nèi)并由其執(zhí) 行時,該機器成為用于實現(xiàn)所公開的本發(fā)明各方面的裝置。在程序代碼在可編 程計算機上執(zhí)行的情況下,計算設(shè)備通常包括處理器、該處理器可讀的存儲介 質(zhì)(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設(shè)備、以及 至少一個輸出設(shè)備??蓪崿F(xiàn)或利用根據(jù)這些方面來提供的任何軟件的一個或多 個程序較佳地以高級過程語言或面向?qū)ο缶幊陶Z言實現(xiàn)以便與計算機系統(tǒng)進 行通信。然而,如果需要,該程序可以用匯編語言或機器語言來實現(xiàn)。在任何 情形中,語言可以是編譯語言或解釋語言,且與硬件實現(xiàn)相結(jié)合。
所公開的本發(fā)明各方面的方法和裝置也可以經(jīng)由以通過某種傳輸介質(zhì)傳 輸?shù)某绦虼a的形式體現(xiàn)的通信來實現(xiàn),比如通過電線或電纜、通過光纖或經(jīng) 由任何其它傳輸形式,其中,當(dāng)程序代碼由諸如EPROM、門陣列、可編程邏 輯器件(PLD)、客戶計算機等機器接收、加載并執(zhí)行時,該機器成為用于實 現(xiàn)所公開的本發(fā)明主題的裝置。當(dāng)在通用處理器上實現(xiàn)時,程序代碼與處理器 相結(jié)合來提供一種用于調(diào)用本發(fā)明主題的功能的獨特裝置。另外,結(jié)合本發(fā)明 的各方面使用的任何存儲技術(shù)總是可以是硬件和軟件的組合。
盡管結(jié)合各附圖的優(yōu)選實施例描述了上述各方面,但可以理解,可以使用
19其它類似的實施例,或可以對所述實施例進行修改和添加來執(zhí)行相同的功能而 不背離本發(fā)明。例如,本領(lǐng)域技術(shù)人員將認(rèn)識到在本申請中所述的方法可應(yīng)用 于諸如游戲控制臺、手持式計算機、便攜式計算機等無論是有線還是無線的任 何計算設(shè)備或環(huán)境,且可被應(yīng)用于經(jīng)由通信網(wǎng)絡(luò)連接并通過該網(wǎng)絡(luò)交互的任何 數(shù)目的這種計算設(shè)備。
此外,應(yīng)當(dāng)強調(diào),構(gòu)想了包括手持式設(shè)備操作系統(tǒng)和其它專用操作系統(tǒng)的 各種計算機平臺,尤其是在無線聯(lián)網(wǎng)設(shè)備的數(shù)量持續(xù)增長時。此外,本發(fā)明主 題的功能可在多個處理芯片或設(shè)備中或跨多個處理芯片或設(shè)備實現(xiàn),且存儲可 類似地跨多個設(shè)備來實現(xiàn)。因此,所公開的本發(fā)明各方面不應(yīng)限于任何單個實 施例,而是應(yīng)該根據(jù)所附權(quán)利要求書的廣度和范圍來解釋。
權(quán)利要求
1.一種用于通過使用編程框架來創(chuàng)建計算系統(tǒng)中的平臺抽象的方法,包括在編程框架上從至少一個應(yīng)用程序接收至少一個指令;在所述編程框架內(nèi)修改所述至少一個指令以符合計算設(shè)備操作系統(tǒng)的要求;以及將經(jīng)修改的至少一個指令從所述編程框架傳送至所述計算設(shè)備操作系統(tǒng),其中所述編程框架能夠在具有不同的操作系統(tǒng)和硬件的至少兩個計算設(shè)備上配置,并且其中所述編程框架在所述至少兩個計算設(shè)備上以相同的方式從所述至少一個應(yīng)用程序接收所述至少一個指令,而不管所述計算設(shè)備的操作系統(tǒng)和硬件的不同要求。
2. 如權(quán)利要求1所述的方法,其特征在于,所述計算設(shè)備操作系統(tǒng)具有至少一個資源層,并且其中所述編程框架將所述至少一個指令傳送至所述計算設(shè)備操作系統(tǒng)的至少一個資源層。
3. 如權(quán)利要求2所述的方法,其特征在于,所述計算設(shè)備操作系統(tǒng)具有包括至少圖形層、音頻層、輸入層和存儲層的資源層。
4. 如權(quán)利要求2所述的方法,其特征在于,所述編程框架通過至少一個應(yīng)用程序編程接口 (API)來將所述至少一個指令傳送至所述計算設(shè)備操作系統(tǒng)的至少一個資源層。
5. 如權(quán)利要求1所述的方法,其特征在于,所述編程框架被集成到所述計算設(shè)備操作系統(tǒng)中。
6.如權(quán)利要求1所述的方法,其特征在于,所述編程框架從所述操作系統(tǒng)接收至少一個指令,如符合所述應(yīng)用程序的要求所需地修改所述至少一個指令,并且將所述至少一個指令傳送至所述應(yīng)用程序。
7. 如權(quán)利要求1所述的方法,其特征在于,在所述編程框架上從所述至少一個應(yīng)用程序接收到的至少一個指令包括至少一個對由所述計算設(shè)備操作系統(tǒng)控制的資源的請求。
8. —種具有用于執(zhí)行如權(quán)利要求1所述的步驟的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
9. 一種用于通過使用編程框架來仿真計算系統(tǒng)中所期望的應(yīng)用程序行為的方法,包括在編程框架上從至少一個應(yīng)用程序接收至少一個指令;在所述編程框架內(nèi)確定來自所述至少一個應(yīng)用程序的至少一個指令是否需要附加指令來符合計算設(shè)備操作系統(tǒng)對應(yīng)用程序行為的期望;以及在適當(dāng)?shù)臅r間并且以適當(dāng)?shù)姆绞絹韺⒏郊又噶顝乃鼍幊炭蚣軅魉椭了鲇嬎阍O(shè)備操作系統(tǒng)以使得所述編程框架仿真所述計算設(shè)備操作系統(tǒng)所期望的所述應(yīng)用程序的行為。
10. 如權(quán)利要求9所述的方法,其特征在于,所述計算設(shè)備操作系統(tǒng)具有至少一個資源層,并且其中所述編程框架將所述附加指令傳送至所述計算設(shè)備操作系統(tǒng)的至少一個資源層。
11. 如權(quán)利要求10所述的方法,其特征在于,所述計算設(shè)備操作系統(tǒng)具有包括至少圖形層、音頻層、輸入層和存儲層的資源層。
12. 如權(quán)利要求10所述的方法,其特征在于,所述編程框架通過至少一個應(yīng)用程序編程接口 (API)來將所述至少一個指令傳送至所述計算設(shè)備操作系統(tǒng)的至少一個資源層。
13. 如權(quán)利要求9所述的方法,其特征在于,在所述編程框架上從所述至少一個應(yīng)用程序接收到的至少一個指令包括至少一個對由所述計算設(shè)備操作系統(tǒng)控制的資源的請求。
14. 如權(quán)利要求9所述的方法,其特征在于,所述編程框架被集成到所述計算設(shè)備操作系統(tǒng)中。
15. —種具有用于執(zhí)行如權(quán)利要求9所述的步驟的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
16. —種用于通過使用編程框架來向計算設(shè)備提供附加安全措施的方法,包括在編程框架上從至少一個應(yīng)用程序接收至少一個指令;以及在所述編程框架內(nèi)確定所述至少一個指令是否違反計算系統(tǒng)的安全策略,其中如果所述至少一個指令沒有違反所述計算系統(tǒng)的安全策略,則所述編程框架將命令傳送至所述計算系統(tǒng)的操作系統(tǒng),并且其中如果所述至少一個指令的確違反所述計算系統(tǒng)的安全策略,則所述編程框架不將所述命令傳送至所述計算系統(tǒng)的操作系統(tǒng)。
17. 如權(quán)利要求16所述的方法,其特征在于,在所述編程框架上從所述至少一個應(yīng)用程序接收到的至少一個指令包括至少一個對由所述計算設(shè)備的操作系統(tǒng)控制的資源的請求。
18. 如權(quán)利要求16所述的方法,其特征在于,如果所述至少一個指令沒有違反所述計算系統(tǒng)的安全策略,則所述編程框架通過至少一個應(yīng)用程序編程接口 (API)來將所述命令傳送至所述計算系統(tǒng)的操作系統(tǒng)。
19. 如權(quán)利要求16所述的方法,其特征在于,所述編程框架被集成到計算設(shè)備操作系統(tǒng)中。
20.—種具有用于執(zhí)行如權(quán)利要求16所述的步驟的計算機可執(zhí)行指令的計算機可讀介質(zhì)。
全文摘要
公開了使用編程框架來對計算平臺進行平臺抽象的機制。該編程框架允許應(yīng)用程序通過對平臺進行抽象來以相同的方式與不同的平臺交互。應(yīng)用程序?qū)绮煌脚_的編程框架使用相同的指令,且該編程框架修改該指令以符合平臺專用要求。該編程框架還代表應(yīng)用程序仿真平臺專用的所期望的應(yīng)用程序行為。該編程框架還可為平臺提供附加安全層以限制應(yīng)用程序的訪問。
文檔編號G06F17/00GK101669111SQ200880012469
公開日2010年3月10日 申請日期2008年3月20日 優(yōu)先權(quán)日2007年4月20日
發(fā)明者J·M·沃克, M·O·皮喬西奧, P·L·布萊施, S·哈戈瑞伍斯, T·米勒 申請人:微軟公司