[發(fā)明專(zhuān)利]用于類(lèi)改變的適應(yīng)性熱重載在審
| 申請(qǐng)?zhí)枺?/td> | 202011606794.8 | 申請(qǐng)日: | 2020-12-30 |
| 公開(kāi)(公告)號(hào): | CN114281597A | 公開(kāi)(公告)日: | 2022-04-05 |
| 發(fā)明(設(shè)計(jì))人: | S.埃帕道德;S.道格拉斯 | 申請(qǐng)(專(zhuān)利權(quán))人: | 紅帽公司 |
| 主分類(lèi)號(hào): | G06F11/14 | 分類(lèi)號(hào): | G06F11/14 |
| 代理公司: | 北京市柳沈律師事務(wù)所 11105 | 代理人: | 胡琪 |
| 地址: | 美國(guó)北卡*** | 國(guó)省代碼: | 暫無(wú)信息 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 改變 適應(yīng)性 重載 | ||
提供了用于熱重載軟件應(yīng)用程序的改進(jìn)的系統(tǒng)和方法。在一個(gè)實(shí)施例中,提供了一種方法,其包括檢測(cè)軟件應(yīng)用程序的更新。可以確定該更新是否表示對(duì)軟件應(yīng)用程序的類(lèi)結(jié)構(gòu)的改變。如果該更新不表示類(lèi)改變,則可以替換與該更新相對(duì)應(yīng)的類(lèi)的框架元數(shù)據(jù)。如果該更新表示類(lèi)改變,則可以移除并替換軟件應(yīng)用程序的運(yùn)行時(shí)可執(zhí)行單元。在替換框架元數(shù)據(jù)和/或運(yùn)行時(shí)可執(zhí)行單元之后,可以根據(jù)該更新來(lái)執(zhí)行軟件應(yīng)用程序。
技術(shù)領(lǐng)域
本公開(kāi)總體上涉及用于軟件應(yīng)用程序的適應(yīng)性熱重載(hot-reload)的系統(tǒng)、方法和非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)。
背景技術(shù)
在更新或更改軟件應(yīng)用程序時(shí),開(kāi)發(fā)人員通常會(huì)改變應(yīng)用程序的一個(gè)或多個(gè)方面(例如,應(yīng)用程序的源代碼、應(yīng)用程序的類(lèi)(class)、應(yīng)用程序的方法(method)等)。對(duì)軟件應(yīng)用程序的此類(lèi)改變通常需要對(duì)軟件應(yīng)用程序的全部或部分進(jìn)行重構(gòu)(rebuild)。例如,可能需要基于軟件應(yīng)用程序的更改后的源代碼或其他方面,部分地或完全地重新生成用于執(zhí)行軟件應(yīng)用程序的字節(jié)碼(bytecode)。
發(fā)明內(nèi)容
本公開(kāi)提出了用于軟件應(yīng)用程序的適應(yīng)性熱重載(hot-reload)的新且創(chuàng)新的系統(tǒng)和方法。在一個(gè)實(shí)施例中,提供了一種方法,包括檢測(cè)對(duì)于軟件應(yīng)用程序的項(xiàng)目文件的更新,以及確定該更新是否表示對(duì)該軟件應(yīng)用程序的類(lèi)結(jié)構(gòu)的改變。響應(yīng)于確定該更新不表示對(duì)類(lèi)結(jié)構(gòu)的改變,該方法可以包括使用基于對(duì)項(xiàng)目文件的更新而生成的新框架元數(shù)據(jù)來(lái)替換與項(xiàng)目文件相對(duì)應(yīng)的類(lèi)的框架元數(shù)據(jù)。響應(yīng)于確定該更新表示對(duì)類(lèi)結(jié)構(gòu)的改變,該方法可以包括移除軟件應(yīng)用程序的運(yùn)行時(shí)可執(zhí)行單元(runtime executable unit),至少部分基于對(duì)項(xiàng)目文件的更新來(lái)生成該軟件應(yīng)用程序的替換運(yùn)行時(shí)可執(zhí)行單元,并使用該替換運(yùn)行時(shí)可執(zhí)行單元重新部署該軟件應(yīng)用程序。該方法可以進(jìn)一步包括遵照對(duì)項(xiàng)目文件的更新來(lái)執(zhí)行該軟件應(yīng)用程序。
在另一個(gè)實(shí)施例中,提供了一種系統(tǒng),其包括處理器和存儲(chǔ)器。存儲(chǔ)器可以存儲(chǔ)指令,該指令在由處理器執(zhí)行時(shí)使處理器檢測(cè)對(duì)軟件應(yīng)用程序的項(xiàng)目文件的更新,并對(duì)于軟件應(yīng)用程序的多個(gè)類(lèi)中的每個(gè)相應(yīng)類(lèi),通過(guò)以下方式生成軟件應(yīng)用程序的替換運(yùn)行時(shí)可執(zhí)行單元。這些指令還可以使處理器確定相應(yīng)類(lèi)是否是依賴(lài)關(guān)系注入類(lèi)。響應(yīng)于確定相應(yīng)類(lèi)是依賴(lài)關(guān)系注入類(lèi),指令可以使處理器重新生成相應(yīng)的類(lèi)的字節(jié)碼。響應(yīng)于確定相應(yīng)類(lèi)不是依賴(lài)關(guān)系注入類(lèi),指令可以使處理器重復(fù)使用相應(yīng)類(lèi)的框架元數(shù)據(jù)。這些指令還可以使處理器遵照對(duì)項(xiàng)目文件的更新來(lái)執(zhí)行該軟件應(yīng)用程序。
本文所描述的特征和優(yōu)點(diǎn)并非囊括全部,并且具體地,鑒于附圖和描述,本領(lǐng)域的普通技術(shù)人員將清楚地了解到許多另外的特征和優(yōu)點(diǎn)。此外,應(yīng)當(dāng)注意,說(shuō)明書(shū)中使用的語(yǔ)言主要是出于可讀性和指導(dǎo)性目的而選擇的,而不是為了限制所公開(kāi)主題的范圍。
附圖說(shuō)明
圖1示出了根據(jù)本公開(kāi)的示例性實(shí)施例的用于軟件應(yīng)用程序的適應(yīng)性熱重載的系統(tǒng)。
圖2示出了根據(jù)本公開(kāi)的示例性實(shí)施例的軟件應(yīng)用程序的類(lèi)結(jié)構(gòu)。
圖3示出了根據(jù)本公開(kāi)的示例性實(shí)施例的對(duì)軟件應(yīng)用程序的改變的差異日志。
圖4A-圖4B示出了根據(jù)本公開(kāi)的示例性實(shí)施例的更新軟件應(yīng)用程序的類(lèi)加載器。
圖5A-圖5B示出了根據(jù)本公開(kāi)的示例性實(shí)施例的替換軟件應(yīng)用程序的類(lèi)加載器。
圖6示出了根據(jù)本公開(kāi)的示例性實(shí)施例的用于軟件應(yīng)用程序的適應(yīng)性熱重載的方法。
圖7示出了根據(jù)本公開(kāi)的示例性實(shí)施例的用于軟件應(yīng)用程序的適應(yīng)性熱重載的方法。
圖8示出了根據(jù)本公開(kāi)的示例性實(shí)施例的系統(tǒng)。
具體實(shí)施方式
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于紅帽公司,未經(jīng)紅帽公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011606794.8/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤





