TWI821938B - 一種軟體自動部署系統、方法及其電腦可讀媒介 - Google Patents
一種軟體自動部署系統、方法及其電腦可讀媒介 Download PDFInfo
- Publication number
- TWI821938B TWI821938B TW111108213A TW111108213A TWI821938B TW I821938 B TWI821938 B TW I821938B TW 111108213 A TW111108213 A TW 111108213A TW 111108213 A TW111108213 A TW 111108213A TW I821938 B TWI821938 B TW I821938B
- Authority
- TW
- Taiwan
- Prior art keywords
- software
- terminal device
- tracking data
- version
- software version
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000009434 installation Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 23
- 238000004458 analytical method Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明係提供一種軟體自動部署系統、方法及其電腦可讀媒介,係包括終端裝置及軟體發佈管理裝置,其中,當終端裝置執行一軟體之軟體版本發生錯誤時,終端裝置產生一堆疊追踪資料以回報該堆疊追踪資料至該軟體發佈管理裝置。再者,軟體發佈管理裝置計算該堆疊追踪資料與複數其他軟體版本之提交資訊之間的關聯度值,進而得到一更新軟體版本,以將更新軟體版本編譯為一更新執行檔後提供給終端裝置安裝。因此,本發明透過計算堆疊追踪資料及提交資訊之間的關聯度值,以快速且準確地尋找到能解決問題之軟體版本,進而提升用戶的使用體驗與軟體自動部署之效率。
Description
本發明關於一種軟體部署技術,尤其指一種軟體自動部署系統、方法及其電腦可讀媒介。
現今技術中,透過敏捷軟體開發縮短了軟體開發的週期,藉此提升軟體開發效率,其中,軟體開發的週期包含需求、設計、實作、測試與部署等階段,故為了更快及更頻繁的交付軟體,需要利用終端裝置發佈管理技術,以確保軟體品質。舉例而言,當部分用戶的智慧型手機上之應用程式(Application,APP)發生問題時,能透過終端裝置發佈管理技術即時地發佈最新版本的應用程式至所有用戶的智慧型手機,以進行更新,進而維持用戶良好的使用體驗。
然而,有些裝置無法像智慧型手機般能隨時地進行全面更新。舉例而言,在機上盒軟體的測試階段,由於無法完全模擬用戶的網路環境與使用情境,導致在機上盒軟體的部署階段時,部分機上盒會因為滿足特定條件而發生軟體錯誤。是以,若以現有技術針對全體機上盒緊急發
佈修正軟體,對於未滿足特定條件且未發生錯誤的機上盒,將額外增加升版次數且影響用戶體驗。
再者,現有終端裝置發佈管理技術,雖然能根據部分發生錯誤的機上盒群體,建立專屬的發佈規則,但是需要人為介入,而無法根據軟體錯誤自動生成針對個別或群體的發佈規則。另一方面,現有終端裝置之軟體錯誤修復技術,是利用程式碼找出程式錯誤是發生在過去的哪一行程式碼,或是依據第三方問答網站程式碼修正軟體,故降低了軟體修正效率,且不易以透過自動化方式快速且準確地產生修正軟體。
因此,如何提供一種軟體自動部署技術,能僅針對發生錯誤之終端設備自動產生且發送修正程式,進而有效降地所有終端設備的更新次數,且提升用戶之使用體驗與軟體自動部署之效率,遂成為業界亟待解決的課題。
為解決前述習知的技術問題或提供相關之功效,本發明提供一種軟體自動部署系統,係包括:終端裝置,係於執行一軟體之第一軟體版本的過程中發生錯誤時,由該終端裝置偵測出該第一軟體版本中之一錯誤程式碼,以依據該錯誤程式碼產生一包含該錯誤程式碼及複數關聯程式碼之堆疊追踪資料後,由該終端裝置回報該終端裝置之一裝置資訊及該堆疊追踪資料;以及軟體發佈管理裝置,係通訊連接該終端裝置,以接收該裝置資訊及該堆疊追踪資料,且該軟體發佈管理裝置包括:發佈管理子系統,係於取得該堆疊追踪資料所相對應之複數候選軟體版本及其提交資訊後,
分別計算該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本之提交資訊之間的關聯度值,其中,於該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本其中一者之提交資訊之間的該關聯度值大於一關聯度閾值時,由該發佈管理子系統將該複數候選軟體版本其中一者作為一更新軟體版本,以將該更新軟體版本編譯為一更新執行檔,再將之回傳至該終端裝置。
本發明復提供一種軟體自動部署方法,係包括:於終端裝置執行一軟體之第一軟體版本的過程中發生錯誤時,由該終端裝置偵測出該第一軟體版本中之一錯誤程式碼,以依據該錯誤程式碼產生一包含該錯誤程式碼及複數關聯程式碼之堆疊追踪資料;由該終端裝置回報該終端裝置之一裝置資訊及該堆疊追踪資料至軟體發佈管理裝置;由該軟體發佈管理裝置取得該堆疊追踪資料所相對應之複數候選軟體版本及其提交資訊,以分別計算該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本之提交資訊之間的關聯度值;以及於該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本其中一者之提交資訊之間的該關聯度值大於一關聯度閾值時,由該軟體發佈管理裝置將該複數候選軟體版本其中一者作為一更新軟體版本,以將該更新軟體版本編譯為一更新執行檔,再將之回傳至該終端裝置。
於一實施例中,該軟體發佈管理裝置更包括一版本控制子系統,係依據該裝置資訊中該第一軟體版本之標籤取得該軟體之該第一軟體版本及複數第二軟體版本,以供該版本控制子系統依據該堆疊追踪資料與
該複數第二軟體版本之提交資訊進行比對後,從該複數第二軟體版本中取得與該堆疊追踪資料所相對應之該複數候選軟體版本及其提交資訊。
於一實施例中,該發佈管理子系統利用關聯度公式計算該堆疊追踪資料中之該錯誤程式碼或該複數關聯程式碼與該複數候選軟體版本之提交資訊中之複數新增或刪除程式碼之間的該關聯度值。
於一實施例中,於該第一軟體版本中之該堆疊追踪資料與該複數候選軟體版本中之至少兩者之提交資訊之間的該關聯度值大於該關聯度閾值時,由該發佈管理子系統將該複數候選軟體版本中之至少兩者中的最新者作為該更新軟體版本。
於一實施例中,於該終端裝置及其他(至少另一)終端裝置之第一軟體版本或其他軟體版本具有相同的該堆疊追踪資料時,由該發佈管理子系統將該終端裝置及該其他(至少另一)終端裝置整合成一終端裝置群體發布規則,以統一發送該更新執行檔。
於一實施例中,於該終端裝置及其他終端裝置之第一軟體版本或其他(至少另一)軟體版本具有不同的該堆疊追踪資料,而該發佈管理子系統判斷出該終端裝置及該其他(至少另一)終端裝置可使用同一個該更新執行檔時,由該發佈管理子系統將該終端裝置及該其他(至少另一)終端裝置整合成一終端裝置群體發布規則,以統一發送該更新執行檔。
本發明又提供一種電腦可讀媒介,應用於具有處理器及/或記憶體的電腦或計算裝置中,該電腦或該計算裝置透過處理器及/或記憶體執行一目標程式及電腦可讀媒介,並用於執行電腦可讀媒介時執行如上所述之軟體自動部署方法。
由上可知,本發明之軟體自動部署系統、方法及其電腦可讀媒介,利用終端裝置所回報之堆疊追踪資料,藉此取得與堆疊追踪資料所相對應之複數候選軟體版本及其提交資訊,且透過判斷堆疊追踪資料與複數候選軟體版本之提交資訊之間的關聯度值,進而得到一更新軟體版本,以將更新軟體版本編譯為更新執行檔後提供給終端裝置安裝。因此,本發明透過計算堆疊追踪資料及提交資訊之間的關聯度值,快速且準確地尋找到能解決問題之軟體版本,進而解決用戶在使用終端裝置時所發生之錯誤,並提升用戶的使用體驗與軟體自動部署之效率。
1:軟體自動部署系統
10:終端裝置
11:錯誤回報模組
12:修補軟體模組
20:軟體發佈管理裝置
21:發佈管理子系統
211:錯誤分析模組
212:軟體編譯模組
213:發佈規則生成模組
22:版本控制子系統
221:資料擷取模組
222:資料儲存模組
S31至S36:步驟
圖1係為本發明之軟體自動部署系統架構示意圖。
圖2A係為本發明之第一軟體版本及堆疊追踪資料之示意圖。
圖2B係為本發明之候選軟體版本及提交資訊之示意圖。
圖3係為本發明之軟體自動部署方法流程示意圖
以下藉由特定的具體實施例說明本發明之實施方式,熟悉此技藝之人士可由本說明書所揭示之內容輕易地瞭解本發明之其他優點及功效。
須知,本說明書所附圖式所繪示之結構、比例、大小等,均僅用以配合說明書所揭示之內容,以供熟悉此技藝之人士之瞭解與閱讀,
並非用以限定本發明可實施之限定條件,故不具技術上之實質意義,任何結構之修飾、比例關係之改變或大小之調整,在不影響本發明所能產生之功效及所能達成之目的下,均應仍落在本發明所揭示之技術內容得能涵蓋之範圍內。同時,本說明書中所引用之如「一」、「第一」、「第二」、「上」及「下」等之用語,亦僅為便於敘述之明瞭,而非用以限定本發明可實施之範圍,其相對關係之改變或調整,在無實質變更技術內容下,當視為本發明可實施之範疇。
圖1係為本發明之軟體自動部署系統1架構示意圖,包括:一終端裝置10及一軟體發佈管理裝置20,其中,終端裝置10包含一錯誤回報模組11及一修補軟體模組12,以及軟體發佈管理裝置20包含一發佈管理子系統21及版本控制子系統22,且發佈管理子系統21更包含一錯誤分析模組211、一軟體編譯模組212及一發佈規則生成模組213,而版本控制子系統22更包含一資料擷取模組221及一資料儲存模組222。
於一實施例中,終端裝置10係為機上盒(set-top box,STB)或其他具有類似功能之電子設備等,以及軟體發佈管理裝置20可建立於伺服器(如通用型伺服器、檔案型伺服器、儲存單元型伺服器等)及電腦等具有適當演算機制之電子設備中,其中,軟體發佈管理裝置20中之各子系統及其模組均可為軟體、硬體或韌體;若為硬體,則可為具有資料處理與運算能力之處理單元、處理器、電腦或伺服器;若為軟體或韌體,則可包括處理單元、處理器、電腦或伺服器可執行之指令,且可安裝於同一硬體裝置或分布於不同的複數硬體裝置。此外,資料儲存模組222包括硬碟等儲存設備。
所述之終端裝置10,係執行一軟體之第一軟體版本。
在一實施例中,錯誤回報模組11係在終端裝置10執行該軟體的過程中發生錯誤時,錯誤回報模組11偵測出第一軟體版本中所產生錯誤之一錯誤程式碼,以依據錯誤程式碼並利用堆疊追踪(stack trace)技術產生第一軟體版本之堆疊追踪資料,且將終端裝置10之裝置資訊及堆疊追踪資料回報至軟體發佈管理裝置20進行分析,其中,裝置資訊係包含但不限於終端裝置10之IP位址(Internet Protocol Address)、第一軟體版本之標籤(及版本編號)、裝置型號等資訊,而堆疊追踪資料係包含錯誤程式碼及與錯誤程式碼相關之複數關聯程式碼或其行號。
在一實施例中,修補軟體模組12係接收來自軟體發佈管理裝置20之更新執行檔,且下載並安裝更新執行檔,以使該軟體之第一軟體版本進行更新,進而解決該軟體之第一軟體版本執行時所發生的錯誤。
所述之軟體發佈管理裝置20,係接收來自終端裝置10中之錯誤回報模組11的堆疊追踪資料及裝置資訊。
在一實施例中,發佈管理子系統21之錯誤分析模組211依據裝置資訊及堆疊追踪資料向版本控制子系統22取得堆疊追踪資料所相對應之複數候選軟體版本及其提交資訊。
須說明,軟體於修正或新增功能時皆會產生相對應之軟體版本,例如:原先的該軟體之軟體版本係為v1,在軟體經修正或新增功能後,產生軟體版本係為v2的該軟體,藉此區分該軟體於修正或新增功能後所產生的不同軟體版本,且在該軟體從軟體版本v1變為軟體版本v2時,版本控
制子系統22會記錄該軟體之軟體版本v2中新增或刪除之至少一程式碼,以形成軟體版本v2之提交資訊,且提交資訊綁定於軟體版本v2。
在一實施例中,版本控制子系統22之資料儲存模組222係儲存該軟體之第一軟體版本、複數第二軟體版本及其提交資訊,而版本控制子系統22之資料擷取模組221依據裝置資訊中第一軟體版本之標籤從資料儲存模組222中取得該軟體之第一軟體版本及複數第二軟體版本,再依據第一軟體版本及堆疊追踪資料與複數第二軟體版本之提交資訊進行比對,以從複數第二軟體版本中取得與堆疊追踪資料相關之複數候選軟體版本及其提交資訊,其中,複數候選軟體版本之提交資訊包含複數新增或刪除程式碼及其行號,且複數第二軟體版本及複數候選軟體版本相較於第一軟體版本係為新的或/及舊的軟體版本。
詳言之,第一軟體版本、複數候選軟體版本與複數第二軟體版本皆屬於該軟體,且該軟體之複數候選軟體版本及複數第二軟體版本係為該軟體之第一軟體版本在經修正或新增功能後所產生之,或是該軟體之複數候選軟體版本及複數第二軟體版本亦可為在該軟體之第一軟體版本前已存在之,於此不限。此外,複數候選軟體版本彼此間皆為不同之軟體版本,而複數第二軟體版本彼此間也為不同之軟體版本。
在一實施例中,錯誤分析模組211依據堆疊追踪資料(包含錯誤程式碼及複數關聯程式碼)且利用關聯度公式(1)分別計算第一軟體版本之錯誤程式碼(或複數關聯程式碼)與複數候選軟體版本之提交資訊之複數新增或刪除程式碼之間的關聯度值,其中,關聯度公式(1)係如下所示:
其中,A(m)係為第m筆提交資訊之程式碼的新增總行數,而a i,m 係為第m筆提交資訊中新增的第i行的程式碼,且新增的第i行的程式碼與錯誤程式碼(或複數關聯程式碼)皆屬於相同函式下;B(m)係為第m筆提交資訊之程式碼的刪除總行數,而b j,m 係為第m筆提交資訊中刪除的第j行的程式碼,且刪除的第j行的程式碼與錯誤程式碼(或複數關聯程式碼)皆屬於相同函式下;△x i,m 係為「新增的第i行的程式碼及其引用之函式之間的行距」與「錯誤程式碼(或複數關聯程式碼)及其引用之函式之間的行距」兩者之間的行距差,且新增程式碼與錯誤程式碼(或複數關聯程式碼)皆引用相同的函式;△y j,m 係為「刪除的第j行的程式碼及其引用之函式之間的行距」與「錯誤程式碼(或複數關聯程式碼)及其引用之函式之間的行距」兩者之間的行距差,且刪除程式碼與錯誤程式碼(或複數關聯程式碼)皆引用相同的函式;以及w 1及w 2係為關聯度公式(1)中之權重,且w 1及w 2係利用統計方式調整權重值,以提升關聯度公式(1)準確度,於此不限制w 1及w 2大小或範圍。藉此,透過關聯度公式(1)中的新增總行數、刪除總行數、總新增行距及總刪除行距,以計算出關聯度值(r m )。
再者,錯誤分析模組211判斷第一軟體版本中之錯誤程式碼(或複數關聯程式碼其中至少一者)與複數候選軟體版本之複數新增或刪除程式碼之間的關聯度值是否大於一關聯度閾值。
在一實施例中,於第一軟體版本中之錯誤程式碼(或複數關聯程式碼其中至少一者)與複數候選軟體版本其中一者之複數新增或刪除程式碼之間的關聯度值大於關聯度閾值時,軟體編譯模組212將複數候選軟體版本其中一者作為一更新軟體版本,以將更新軟體版本編譯為一更新執行檔。
於另一實施例中,若第一軟體版本與複數候選軟體版本中之至少兩者之間的關聯度值大於關聯度閾值,則軟體編譯模組212將複數候選軟體版本中之至少兩者中的最新者(即最新軟體版本)作為更新軟體版本。
在一實施例中,發佈規則生成模組213係將更新執行檔傳送至終端裝置10。於另一實施例中,若發佈規則生成模組213判斷出終端裝置10及其他終端裝置皆發生相同的錯誤,亦即終端裝置10及其他終端裝置的軟體之第一軟體版本(或其他軟體版本)具有相同的錯誤程式碼或其複數關聯程式碼,則發佈規則生成模組213將終端裝置10及其他終端裝置整合成一終端裝置群體發布規則,以統一發送更新執行檔。
於又一實施例中,若終端裝置10及其他終端裝置發生不同的錯誤,亦即終端裝置10及其他終端裝置的軟體之第一軟體版本(或其他軟體版本)具有不同的錯誤程式碼或其複數關聯程式碼,但發佈規則生成模組213判斷出終端裝置10及其他終端裝置皆可用同一候選軟體版本(或其他軟體版本)解決錯誤,則發佈規則生成模組213將終端裝置10及其他終端裝置整合成一終端裝置群體發布規則,以統一發送更新執行檔。
下列係為本發明之軟體自動部署系統1之實施例,且一併參閱圖1說明之。
於本實施例中,終端裝置10係執行一軟體之第一軟體版本(如圖2A所示),以於終端裝置10執行第一軟體版本的過程中發生錯誤時,錯誤回報模組11係從第一軟體版本中找到一錯誤程式碼,其中,如圖2A所示,錯誤程式碼係為第996行之程式碼「if(message.array-[index].linkType.equalsIgnoreCase("primary")){」,故錯誤回報模組11依據第996行之錯誤程式碼利用堆疊追踪(stack trace)技術產生第一軟體版本之堆疊追踪資料,其中,堆疊追踪資料包含「at com.exampl-e.MainActivity.showInstantMessage(MainActivity.java:996)」,亦即表示第一軟體版本中的錯誤程式碼(第996行),以及堆疊追踪資料更包含與錯誤程式碼相關之複數關聯程式碼(如第773、139、902及733行等)。
再者,錯誤回報模組11將終端裝置10之裝置資訊及堆疊追踪資料回傳至軟體發佈管理裝置20,而軟體發佈管理裝置20的發佈管理子系統21中之錯誤分析模組211向版本控制子系統22取得錯誤程式碼或複數關聯程式碼所相對應之候選軟體版本之提交資訊(如圖2B所示)。
是以,版本控制子系統22之資料擷取模組221依據裝置資訊中第一軟體版本之標籤從資料儲存模組222中取得該軟體之第一軟體版本及複數第二軟體版本,再依據堆疊追踪資料(包含錯誤程式碼(第996行)及複數關聯程式碼(第773、139、902及733行等))比對複數第二軟體版本之提交資訊。詳言之,如圖2B所示,資料擷取模組221依據堆疊追踪資料中之錯誤程式碼(第996行)從複數第二軟體版本之提交資訊中比對出候選軟體版本之提交資訊。
具體而言,候選軟體版本之提交資訊中記錄複數新增或刪除程式碼,如圖2B所示,候選軟體版本中第996行刪除的「if(mess-age.array[index].linkType.equalsIgnoreCase("primary")){」(以下稱刪除程式碼)及第996行新增的「if(message.array[i].linkType.-equalsIgnoreCase(“primary")){」(以下稱新增程式碼),且資料擷取模組221判斷出刪除程式碼與堆疊追踪資料中之錯誤程式碼一致,並透過第一軟體版本之程式碼與候選軟體版本之程式碼,判斷出第一軟體版本之錯誤程式碼與候選軟體版本之刪除程式碼及新增程式碼皆引用相同之函式,亦即圖2A及圖2B所示之第948行的「private void showInstantMessage(int index){」,故資料擷取模組221確認第一軟體版本相對應於候選軟體版本,並將候選軟體版本及其提交資訊提供給錯誤分析模組211。
再者,錯誤分析模組211依據堆疊追踪資料且利用關聯度公式(1)計算第一軟體版本之錯誤程式碼與候選軟體版本之提交資訊中之複數新增或刪除程式碼之間的關聯度值。詳言之,透過計算提交資訊中新增程式碼與刪除程式碼之總行數,以及錯誤程式碼與其引用之函式的行距、新增程式碼與其引用之函式的行距、及刪除程式碼與其引用之函式的行距,以計算錯誤程式碼與新增或刪除程式碼之間的關聯度值,進而判斷新增或刪除程式碼是否與錯誤程式碼在相同位置及其關聯度值,其中,錯誤程式碼、新增程式碼及刪除程式碼所引用之函式皆為相同。
是以,關聯度值(r m )=[1(新增總行數)+1(刪除總行數)]w 1-{[(996(新增程式碼之行號)-948(其引用之函式之行號))-(996(錯誤程式碼之行號)-948(其引用之函式之行號))]+[(996(刪除程式碼之行號)-948(其引
用之函式之行號))-(996(錯誤程式碼之行號)-948(其引用之函式之行號))]}w 2=2w 1。
當錯誤分析模組211判斷出關聯度值(2w 1)大於關聯度閾值(如1)時,軟體編譯模組212將候選軟體版本作為一更新軟體版本,且將更新軟體版本編譯為一更新執行檔,再由發佈規則生成模組213將更新執行檔傳送至終端裝置10。之後,終端裝置10之修補軟體模組12接收更新執行檔,並執行更新執行檔,以使該軟體之第一軟體版本進行更新,進而解決該軟體之第一軟體版本執行時所發生的錯誤。
圖3係為本發明之軟體自動部署方法流程示意圖,且一併參閱圖1說明之,其中,該方法流程包含下列步驟S31至步驟S36:
於步驟S31中,終端裝置10中之錯誤回報模組11偵測出第一軟體版本中所產生錯誤之一錯誤程式碼。
於步驟S32中,錯誤回報模組11依據錯誤程式碼並利用堆疊追踪技術產生第一軟體版本之堆疊追踪資料,以將終端裝置10之裝置資訊及堆疊追踪資料回報至軟體發佈管理裝置20。
於步驟S33中,軟體發佈管理裝置20中之發佈管理子系統21之錯誤分析模組211依據裝置資訊及堆疊追踪資料向版本控制子系統22取得錯誤程式碼或複數關聯程式碼所相對應之複數候選軟體版本及其提交資訊。
於步驟S34中,錯誤分析模組211依據堆疊追踪資料且利用關聯度公式(1)計算第一軟體版本與複數候選軟體版本之間的關聯度值。
於步驟S35中,當錯誤分析模組211判斷第一軟體版本與複數候選軟體版本中之其中一者之間的關聯度值大於一關聯度閾值時,軟體編譯模組212將複數候選軟體版本其中一者作為一更新軟體版本,以將更新軟體版本編譯為一更新執行檔。
於步驟S36中,發佈規則生成模組213係將更新執行檔傳送至終端裝置10,以使終端裝置10中之修補軟體模組12安裝更新執行檔。
此外,本發明還揭示一種電腦可讀媒介,係應用於具有處理器(例如,CPU、GPU等)及/或記憶體的計算裝置或電腦中,且儲存有指令,並可利用此計算裝置或電腦透過處理器及/或記憶體執行此電腦可讀媒介,以於執行此電腦可讀媒介時執行上述之方法及各步驟。
綜上所述,本發明之軟體自動部署系統、方法及其電腦可讀媒介,利用終端裝置所回報之堆疊追踪資料,以使軟體發佈管理裝置取得第一軟體版本所發生之錯誤程式碼及複數關聯程式碼,藉此取得與堆疊追踪資料(包含錯誤程式碼及複數關聯程式碼)所相對應之複數候選軟體版本及其提交資訊,且透過計算錯誤程式碼及複數關聯程式碼與複數候選軟體版本之提交資訊之間的關聯度值,以得到一更新軟體版本,且將更新軟體版本編譯為更新執行檔後提供給終端裝置安裝。是以,本發明透過計算堆疊追踪資料及提交資訊之間的關聯度值,快速且準確地尋找到能解決問題之軟體版本,進而解決用戶在使用終端裝置時所發生之錯誤,並提升用戶的使用體驗與軟體自動部署之效率。
此外,本發明之軟體自動部署系統、方法及其電腦可讀媒介,係具備下列優點或技術功效:
一、本發明利用判斷堆疊追踪資料(包含錯誤程式碼及複數關聯程式碼)與現有軟體版本之提交資訊(包含複數新增程式碼或刪除程式碼)之間的關聯度,以分析出提交資訊中新增或/及刪除的程式碼是否直接或間接與錯誤程式碼或複數關聯程式碼有關,進而得到一更新軟體版本,係大幅減少人工比對及編寫除錯程式的時間,藉此縮短障礙處理時間。
二、本發明能自動找出能解決的錯誤程式碼之提交資訊,並取得提交資訊所屬之軟體版本,且蒐集發生相同錯誤(或同樣能透過此軟體版本解決其他錯誤)之終端裝置(如機上盒),自動生成終端裝置群體(如機上盒群體)發布規則,不需人為輸入規則,進而將更新執行檔自動部署至發生錯誤的終端裝置,以降低終端裝置障礙數及提升障礙處理效率。
三、本發明透過分別針對各個終端裝置所回報之堆疊追踪資料進行分析,以產生對應的更新執行檔,並解決各個終端裝置所產生之相同或不同錯誤,故相較於現有技術統一對所有終端裝置進行更新,而導致終端裝置之更新頻率上升,且用戶使用體驗下降,本發明僅針對錯誤終端裝置進行更新,係大幅減少更新頻率,且讓用戶使用終端裝置時更順暢。
上述實施形態僅例示性說明本發明之原理及其功效,而非用於限制本發明。任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。因此,本發明之權利保護範圍應如申請專利範圍所列。
1:軟體自動部署系統
10:終端裝置
11:錯誤回報模組
12:修補軟體模組
20:軟體發佈管理裝置
21:發佈管理子系統
211:錯誤分析模組
212:軟體編譯模組
213:發佈規則生成模組
22:版本控制子系統
221:資料擷取模組
222:資料儲存模組
Claims (11)
- 一種軟體自動部署系統,係包括:終端裝置,係於執行一軟體之第一軟體版本的過程中發生錯誤時,由該終端裝置偵測出該第一軟體版本中之一錯誤程式碼,以依據該錯誤程式碼產生一包含該錯誤程式碼及複數關聯程式碼之堆疊追踪資料後,由該終端裝置回報該終端裝置之一裝置資訊及該堆疊追踪資料;以及軟體發佈管理裝置,係通訊連接該終端裝置,以接收該裝置資訊及該堆疊追踪資料,且該軟體發佈管理裝置包括:發佈管理子系統,係於取得該堆疊追踪資料所相對應之複數候選軟體版本及其提交資訊後,分別計算該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本之該提交資訊之間的關聯度值,其中,該發佈管理子系統依據該第一軟體版本之該錯誤程式碼,與該複數候選軟體版本之該提交資訊中之複數新增或刪除程式碼,以計算該關聯度值,其中,於該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本其中一者之提交資訊之間的該關聯度值大於一關聯度閾值時,由該發佈管理子系統將該複數候選軟體版本其中一者作為一更新軟體版本,以將該更新軟體版本編譯為一更新執行檔,再將之回傳至該終端裝置。
- 如請求項1所述之軟體自動部署系統,其中,該軟體發佈管理裝置更包括一版本控制子系統,係依據該裝置資訊中該第一軟體版本之標籤取得該軟體之該第一軟體版本及複數第二軟體版本,以供該版本控制子系統依據該堆疊追踪資料與該複數第二軟體版本之提交資訊進行比對後, 從該複數第二軟體版本中取得與該堆疊追踪資料所相對應之該複數候選軟體版本及其提交資訊。
- 如請求項1所述之軟體自動部署系統,其中,於該第一軟體版本中之該堆疊追踪資料與該複數候選軟體版本中之至少兩者之提交資訊之間的該關聯度值大於該關聯度閾值時,由該發佈管理子系統將該複數候選軟體版本中之至少兩者中的最新者作為該更新軟體版本。
- 如請求項1所述之軟體自動部署系統,其中,於該終端裝置及至少另一終端裝置之第一軟體版本具有相同的該堆疊追踪資料時,由該發佈管理子系統將該終端裝置及該至少另一終端裝置整合成一終端裝置群體發布規則,以統一發送該更新執行檔。
- 如請求項1所述之軟體自動部署系統,其中,於該終端裝置及至少另一終端裝置之第一軟體版本具有不同的該堆疊追踪資料,而該發佈管理子系統判斷出該終端裝置及該至少另一終端裝置可使用同一個該更新執行檔時,由該發佈管理子系統將該終端裝置及該至少另一終端裝置整合成一終端裝置群體發布規則,以統一發送該更新執行檔。
- 一種軟體自動部署方法,係包括:於終端裝置執行一軟體之第一軟體版本的過程中發生錯誤時,由該終端裝置偵測出該第一軟體版本中之一錯誤程式碼,以依據該錯誤程式碼產生一包含該錯誤程式碼及複數關聯程式碼之堆疊追踪資料;由該終端裝置回報該終端裝置之一裝置資訊及該堆疊追踪資料至軟體發佈管理裝置; 由該軟體發佈管理裝置取得該堆疊追踪資料所相對應之複數候選軟體版本及其提交資訊,以分別計算該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本之提交資訊之間的關聯度值,其中,由該軟體發佈管理裝置依據該第一軟體版本之該錯誤程式碼,與該複數候選軟體版本之該提交資訊中之複數新增或刪除程式碼,以計算該關聯度值;以及於該第一軟體版本之該堆疊追踪資料與該複數候選軟體版本其中一者之提交資訊之間的該關聯度值大於一關聯度閾值時,由該軟體發佈管理裝置將該複數候選軟體版本其中一者作為一更新軟體版本,以將該更新軟體版本編譯為一更新執行檔,再將之回傳至該終端裝置。
- 如請求項6所述之軟體自動部署方法,更包括由該軟體發佈管理裝置依據該裝置資訊中該第一軟體版本之標籤取得該軟體之該第一軟體版本及複數第二軟體版本,再由該軟體發佈管理裝置依據該堆疊追踪資料與該複數第二軟體版本之提交資訊進行比對,以從該複數第二軟體版本中取得與該堆疊追踪資料所相對應之該複數候選軟體版本及其提交資訊。
- 如請求項6所述之軟體自動部署方法,更包括於該第一軟體版本中之該堆疊追踪資料與該複數候選軟體版本中之至少兩者之提交資訊之間的該關聯度值大於該關聯度閾值時,由該軟體發佈管理裝置將該複數候選軟體版本中之至少兩者中的最新者作為該更新軟體版本。
- 如請求項6所述之軟體自動部署方法,更包括於該終端裝置及至少另一終端裝置之第一軟體版本具有相同的該堆疊追踪資料時,由該軟體發佈管理裝置將該終端裝置及該至少另一終端裝置整合成一終端裝置群體發布規則,以統一發送該更新執行檔。
- 如請求項6所述之軟體自動部署方法,更包括於該終端裝置及至少另一終端裝置之第一軟體版本具有不同的該堆疊追踪資料,而該軟體發佈管理裝置判斷出該終端裝置及該至少另一終端裝置可使用同一個該更新執行檔時,由該軟體發佈管理裝置將該終端裝置及該至少另一終端裝置整合成一終端裝置群體發布規則,以統一發送該更新執行檔。
- 一種電腦可讀媒介,應用於計算裝置或電腦中,係儲存有指令,以執行如請求項6至10之任一者所述之軟體自動部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111108213A TWI821938B (zh) | 2022-03-07 | 2022-03-07 | 一種軟體自動部署系統、方法及其電腦可讀媒介 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111108213A TWI821938B (zh) | 2022-03-07 | 2022-03-07 | 一種軟體自動部署系統、方法及其電腦可讀媒介 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202336583A TW202336583A (zh) | 2023-09-16 |
TWI821938B true TWI821938B (zh) | 2023-11-11 |
Family
ID=88927338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111108213A TWI821938B (zh) | 2022-03-07 | 2022-03-07 | 一種軟體自動部署系統、方法及其電腦可讀媒介 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI821938B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW338809B (en) * | 1996-09-16 | 1998-08-21 | Advanced Micro Devices Inc | A method for indentifying and correcting errors in a central processing unit |
CN101529385A (zh) * | 2005-06-01 | 2009-09-09 | 纽约市哥伦比亚大学理事会 | 用于修复应用程序的方法和系统 |
CN112817612A (zh) * | 2021-01-29 | 2021-05-18 | 深圳忆联信息系统有限公司 | 多操作系统的自动布署方法、装置、计算机设备及存储介质 |
CN113254045A (zh) * | 2021-06-07 | 2021-08-13 | 中电金信软件有限公司 | 软件初始化方法、系统及计算机可读存储介质 |
-
2022
- 2022-03-07 TW TW111108213A patent/TWI821938B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW338809B (en) * | 1996-09-16 | 1998-08-21 | Advanced Micro Devices Inc | A method for indentifying and correcting errors in a central processing unit |
CN101529385A (zh) * | 2005-06-01 | 2009-09-09 | 纽约市哥伦比亚大学理事会 | 用于修复应用程序的方法和系统 |
CN112817612A (zh) * | 2021-01-29 | 2021-05-18 | 深圳忆联信息系统有限公司 | 多操作系统的自动布署方法、装置、计算机设备及存储介质 |
CN113254045A (zh) * | 2021-06-07 | 2021-08-13 | 中电金信软件有限公司 | 软件初始化方法、系统及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202336583A (zh) | 2023-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681595B2 (en) | Techniques and system for optimization driven by dynamic resilience | |
Crameri et al. | Staged deployment in mirage, an integrated software upgrade testing and distribution system | |
US11057502B2 (en) | Cloud assisted behavioral automated testing | |
US11625310B2 (en) | Application regression detection in computing systems | |
CN109032631A (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
Wang et al. | Fast outage analysis of large-scale production clouds with service correlation mining | |
CN110737548B (zh) | 数据请求方法和服务器 | |
CN116405412B (zh) | 基于混沌工程故障模拟服务端集群有效性验证方法和系统 | |
JP2016099857A (ja) | 不正プログラム対策システムおよび不正プログラム対策方法 | |
CN115658452A (zh) | 埋点校验方法、埋点校验装置、可读存储介质、电子设备 | |
TWI821938B (zh) | 一種軟體自動部署系統、方法及其電腦可讀媒介 | |
CN114035789A (zh) | 日志解析模板的生成方法、日志解析方法、装置及设备 | |
US20140244831A1 (en) | Transport script generation based on a user interface script | |
CN115422529A (zh) | 软件开发中开源组件使用的控制方法、装置、设备及存储介质 | |
US20240134626A1 (en) | Artificial intelligence (ai) supported graph enabled method to manage upgrades for applications | |
CN111949555A (zh) | 一种基于多维向量和规则脚本的随机测试方法及装置 | |
WO2020109004A1 (en) | Canary release for static content | |
Callan et al. | Multi-Objective Improvement of Android Applications | |
CN118467209B (zh) | 一种多业态综合管理系统的自动化验证方法 | |
CN118656093A (zh) | 一种软件基础数据升级方法及系统 | |
CN116954637A (zh) | 灰度发布方法、装置、终端设备以及存储介质 | |
CN113591141A (zh) | 基于模糊测试的固件镜像文件刷写校验方法、系统及终端 | |
Sedki et al. | AML: An accuracy metric model for effective evaluation of log parsing techniques | |
WO2022093176A1 (en) | Service virtualization mappings | |
CN115904940A (zh) | 一种自适应回归随机测试方法、装置、终端及介质 |