亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

控制對應(yīng)用編程接口的運(yùn)行時訪問的制作方法

文檔序號:9476201閱讀:241來源:國知局
控制對應(yīng)用編程接口的運(yùn)行時訪問的制作方法
【專利說明】控制對應(yīng)用編程接口的運(yùn)行時訪問
[0001]背景
[0002]背景和相關(guān)技術(shù)
[0003]計算機(jī)系統(tǒng)及相關(guān)技術(shù)影響社會的許多方面。的確,計算機(jī)系統(tǒng)處理信息的能力已轉(zhuǎn)變了人們生活和工作的方式。現(xiàn)在,計算機(jī)系統(tǒng)通常執(zhí)行在計算機(jī)系統(tǒng)出現(xiàn)以前人工執(zhí)行的許多任務(wù)(例如,文字處理、日程安排、帳目管理等)。最近,計算機(jī)系統(tǒng)彼此耦合并耦合到其他電子設(shè)備以形成計算機(jī)系統(tǒng)及其他電子設(shè)備可在其上傳輸電子數(shù)據(jù)的有線和無線計算機(jī)網(wǎng)絡(luò)。因此,許多計算任務(wù)的執(zhí)行被分布在多個不同的計算機(jī)系統(tǒng)和/或多個不同的計算環(huán)境中。
[0004]在代碼開發(fā)期間,軟件開發(fā)者通常使用應(yīng)用編程接口(API)來促進(jìn)各軟件組件之間的通信。API可包括針對與該API相關(guān)聯(lián)的例程、數(shù)據(jù)結(jié)構(gòu)、對象類以及變量的規(guī)范。由此,一個開發(fā)者可使用API規(guī)范來確定如何調(diào)用由另一開發(fā)者編寫的API。
[0005]通常,一個軟件開發(fā)者(庫開發(fā)者)開發(fā)具有多個相關(guān)API的代碼,該多個相關(guān)API被分組到提供指定功能性的庫中。軟件開發(fā)者可通過將庫內(nèi)相應(yīng)的API展示為公共API來使得該功能性的各部分變得對其他程序可用。由此,另一開發(fā)者(應(yīng)用開發(fā)者)可從他們的代碼中通過對公共API的調(diào)用來訪問功能性的可用部分。軟件開發(fā)者還可將該功能性的其他部分維持為私有的。私有功能性可在該庫內(nèi)的各API之間內(nèi)部地使用或用于訪問其他庫中的其他私有API。提供私有功能性的API不直接被展示給其他程序。
[0006]然而,許多運(yùn)行時環(huán)境許可代碼動態(tài)地調(diào)用第三方庫中的任一 API (例如,使用反射來訪問元數(shù)據(jù))。由此,應(yīng)用程序或庫可標(biāo)識并調(diào)用另一庫內(nèi)的私有API。當(dāng)軟件開發(fā)者將API維持為私有的時,該軟件開發(fā)者不希望該API被外部地調(diào)用。不幸的是,對這類庫的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)的服務(wù)或版本化改變(諸如例如,對私有方法的重命名或移除)會潛在地致使在使用這些庫的應(yīng)用中的破壞性改變。
[0007]此外,對動態(tài)調(diào)用的運(yùn)行時支持?jǐn)y帶大小和工作集開銷(例如,元數(shù)據(jù))。無論API是否實(shí)際上被動態(tài)地調(diào)用,大小和工作集開銷都針對API (私有或公共)維持。維持對于不被調(diào)用的API的大小和工作集開銷不必要地消耗計算資源。
[0008]簡要概沐
[0009]本發(fā)明涉及用于控制對應(yīng)用編程接口的運(yùn)行時訪問的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。本發(fā)明的各實(shí)施例包括控制對應(yīng)用編程接口(API)的運(yùn)行時訪問。運(yùn)行時環(huán)境基于API類型向動態(tài)訪問請求(例如,通過反射或其他動態(tài)調(diào)用技術(shù))提供對API的默認(rèn)可見性。例如,對非公共API的默認(rèn)可見性可阻止動態(tài)訪問。
[0010]被組合在庫中的一組API被訪問。該組API包括一個或多個公共API以及一個或多個非公共API。從該組API中標(biāo)識針對其被提供到動態(tài)訪問請求的默認(rèn)可見性要被更改的 API。
[0011]通過將屬性應(yīng)用到該API來更改對該API的默認(rèn)可見性。該屬性在運(yùn)行時向運(yùn)行時環(huán)境指示動態(tài)訪問請求要被提供對該API的經(jīng)更改的可見性。更改可見性可包括許可對非公開API的動態(tài)訪問,而默認(rèn)地動態(tài)訪問不被許可。
[0012]其他實(shí)施例包括減少對可訪問的API的默認(rèn)可見性。應(yīng)用的應(yīng)用代碼被訪問。該應(yīng)用代碼引用被組合在庫中的一個或多個可訪問的API。在該應(yīng)用代碼中被引用的可訪問的API被標(biāo)識。該可訪問的API是從該一個或多個可訪問的API中選擇的。
[0013]確定了該可訪問的API在運(yùn)行時不被動態(tài)地訪問。屬性被應(yīng)用到該可訪問的API以減少對該可訪問的API的默認(rèn)可見性。該屬性在運(yùn)行時向運(yùn)行時環(huán)境指示動態(tài)訪問請求(例如,通過反射或其他動態(tài)調(diào)用技術(shù))要被提供對該可訪問的API的經(jīng)減少的可見性。減少對API的可見性可相應(yīng)地減少元數(shù)據(jù)生成。在一些實(shí)施例中,減少對API的可見性包括阻止對該API的動態(tài)訪問。
[0014]其他實(shí)施例包括向消費(fèi)者提供對API的指定可見性??蓤?zhí)行代碼在運(yùn)行時環(huán)境中被執(zhí)行。可執(zhí)行代碼是從應(yīng)用代碼中導(dǎo)出的。在可執(zhí)行代碼的執(zhí)行期間,從消費(fèi)者接收到對于執(zhí)行該可執(zhí)行代碼的一部分的動態(tài)調(diào)用。該可執(zhí)行代碼的該部分是從應(yīng)用代碼的引用庫中的API的一部分中導(dǎo)出的?;谠揂PI的類型來訪問對于該API的運(yùn)行時默認(rèn)可見性。
[0015]應(yīng)用到該API的任何屬性被訪問。應(yīng)用到該API的屬性可指示API的作者想要更改對該API的運(yùn)行時默認(rèn)可見性。應(yīng)用到應(yīng)用代碼的該部分的任何屬性被訪問。應(yīng)用到應(yīng)用代碼的該部分的屬性可指示應(yīng)用代碼的作者想要提供比如應(yīng)用到該API的任何屬性所更改的運(yùn)行時默認(rèn)可見性指示的對該API的更少的可見性。
[0016]基于以下中的一個或多個來確定對該API的經(jīng)計算的可見性:對該API的運(yùn)行時默認(rèn)可見性、應(yīng)用到該API的任何屬性以及應(yīng)用到應(yīng)用代碼的引用該API的任何屬性。動態(tài)調(diào)用被提供對該API的經(jīng)計算的可見性。
[0017]本概述被提供以便以簡化形式介紹概念的選集,所述概念將在以下詳細(xì)描述中進(jìn)一步描述。該概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或基本特征,也不旨在被用來幫助確定所要求保護(hù)的主題的范圍。
[0018]本發(fā)明的附加特征和優(yōu)點(diǎn)將在以下描述中敘述,并且其一部分根據(jù)本描述將是顯而易見的,或者可通過對本發(fā)明的實(shí)踐來獲知。本發(fā)明的特征和優(yōu)點(diǎn)可通過在所附權(quán)利要求書中特別指出的工具和組合來實(shí)現(xiàn)和獲得。本發(fā)明的這些以及其它特征、優(yōu)點(diǎn)和特征將根據(jù)以下描述和所附權(quán)利要求而變得更顯而易見,或者可通過如此后闡述的對本發(fā)明的實(shí)踐而獲知。
[0019]附圖簡沐
[0020]為了描述可獲得本發(fā)明的上述和其它優(yōu)點(diǎn)和特征的方式,將通過參考附圖中示出的本發(fā)明的具體實(shí)施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述??梢岳斫?,這些附圖只描繪了本發(fā)明的各典型實(shí)施例,并且因此不被認(rèn)為是對其范圍的限制,將通過使用附圖并利用附加特征和細(xì)節(jié)來描述和解釋本發(fā)明,在附圖中:
[0021]圖1示出促進(jìn)控制對應(yīng)用編程接口的運(yùn)行時訪問的示例計算機(jī)架構(gòu)。
[0022]圖2示出用于控制對應(yīng)用編程接口的運(yùn)行時訪問的示例方法的流程圖。
[0023]圖3示出促進(jìn)減少對可訪問的應(yīng)用編程接口的默認(rèn)可見性的示例計算機(jī)架構(gòu)。
[0024]圖4示出用于減少對可訪問的應(yīng)用編程接口的默認(rèn)可見性的示例方法的流程圖。
[0025]圖5示出促進(jìn)向消費(fèi)者提供對應(yīng)用編程接口的指定可見性的示例計算機(jī)架構(gòu)。
[0026]圖6示出用于向消費(fèi)者提供對應(yīng)用編程接口的指定可見性的示例方法的流程圖。
[0027]詳細(xì)描沐
[0028]本發(fā)明涉及用于控制對應(yīng)用編程接口的運(yùn)行時訪問的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。本發(fā)明的各實(shí)施例包括控制對應(yīng)用編程接口(API)的運(yùn)行時訪問。運(yùn)行時環(huán)境基于API類型向動態(tài)訪問請求(例如,通過反射或其他動態(tài)調(diào)用技術(shù))提供對API的默認(rèn)可見性。例如,對非公共API的默認(rèn)可見性可阻止動態(tài)訪問。
[0029]被組合在庫中的一組API被訪問。該組API包括一個或多個公共API以及一個或多個非公共API。從該組API中標(biāo)識針對其被提供到動態(tài)訪問請求的默認(rèn)可見性要被更改的一 API。
[0030]通過將一屬性應(yīng)用到該API來更改對該API的默認(rèn)可見性。該屬性在運(yùn)行時向運(yùn)行時環(huán)境指示動態(tài)訪問請求要被提供對該API的經(jīng)更改的可見性。更改可見性可包括許可對非公開API的動態(tài)訪問,而默認(rèn)地動態(tài)訪問不被許可。
[0031]其他實(shí)施例包括減少對可訪問的API的默認(rèn)可見性。應(yīng)用的應(yīng)用代碼被訪問。該應(yīng)用代碼引用被組合在庫中的一個或多個可訪問的API。在該應(yīng)用代碼中被引用的可訪問的API被標(biāo)識。該可訪問的API是從該多個可訪問的API中選擇的。
[0032]確定了該可訪問的API在運(yùn)行時不被動態(tài)地訪問。一屬性被應(yīng)用到該可訪問的API以減少對該可訪問的API的默認(rèn)可見性。該屬性在運(yùn)行時向運(yùn)行時環(huán)境指示動態(tài)訪問請求(例如,通過反射或其他動態(tài)調(diào)用技術(shù))要被提供對該可訪問的API的經(jīng)減少的可見性。減少對API的可見性可相應(yīng)地減少元數(shù)據(jù)生成。在一些實(shí)施例中,減少對API的可見性包括阻止對該API的動態(tài)訪問。
[0033]其他實(shí)施例包括向消費(fèi)者提供對API的指定可見性??蓤?zhí)行代碼在運(yùn)行時環(huán)境中被執(zhí)行??蓤?zhí)行代碼是從應(yīng)用代碼中導(dǎo)出的。在可執(zhí)行代碼的執(zhí)行期間,從消費(fèi)者接收到對于執(zhí)行該可執(zhí)行代碼的一部分的動態(tài)調(diào)用。該可執(zhí)行代碼的該部分是從應(yīng)用代碼的引用庫中的API的一部分中導(dǎo)出的?;谠揂PI的類型來訪問對于該API的運(yùn)行時默認(rèn)可見性。
[0034]應(yīng)用到該API的任何屬性被訪問。應(yīng)用到該API的屬性可指示API的作者想要更改對該API的運(yùn)行時默認(rèn)可見性。應(yīng)用到應(yīng)用代碼的該部分的任何屬性被訪問。應(yīng)用到應(yīng)用代碼的該部分的屬性可指示應(yīng)用代碼的作者想要提供比如應(yīng)用到該API的任何屬性所更改的運(yùn)行時默認(rèn)可見性指示的對該API的更少的可見性。
[0035]基于以下中的一個或多個來確定對該API的經(jīng)計算的可見性:對該API的運(yùn)行時默認(rèn)可見性、應(yīng)用到該API的任何屬性以及應(yīng)用到應(yīng)用代碼的引用該API的任何屬性。動態(tài)調(diào)用被提供對該API的經(jīng)計算的可見性。
[0036]本發(fā)明的各實(shí)施例可包括或利用專用或通用計算機(jī),該專用或通用計算機(jī)包括諸如舉例而言一個或多個處理器和系統(tǒng)存儲器的計算機(jī)硬件,如以下更詳細(xì)討論的。本發(fā)明范圍內(nèi)的各實(shí)施例也包括用于實(shí)現(xiàn)
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1