開放平臺運行腳本的方法和開放平臺系統的制作方法
【專利摘要】本發明提供一種開放平臺運行腳本的方法和開放平臺系統。該方法包括:開放平臺獲取腳本;開放平臺對腳本進行預編譯,得到腳本的二進制文件;開放平臺確定二進制文件中是否存在腳本錯誤模式庫中的運行時錯誤,腳本錯誤模式庫包括至少一個運行時錯誤;若開放平臺確定二進制文件中存在腳本錯誤模式庫中的運行時錯誤,則不執行所述二進制文件。本發明的技術方案,通過開放平臺在執行腳本前對腳本中的運行時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測,以提高開放平臺的系統穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務服務能力下降。
【專利說明】
開放平臺運行腳本的方法和開放平臺系統
技術領域
[0001] 本發明涉及信息技術領域,尤其涉及開放平臺運行腳本的方法和開放平臺系統。
【背景技術】
[0002] 開放平臺可以通過公開軟件系統的應用程序編程接口(Application Programming Interface,API)或函數(function)來使外部的程序可以增加該軟件系統的 功能或使用該軟件系統的資源,而不需要更改該軟件系統的源代碼。開放平臺也可以稱為 能力開放平臺。
[0003] 開放平臺在整合和利用現有軟件系統資源的基礎上,采用統一的多層級的開放接 口來開放軟件系統的能力,聚集互聯網上有潛力、有創造力的開發者,讓開發者能利用這些 能力不斷地創造出更好的商業應用和服務,實現開發者的無限的創造能力,形成一大批新 的移動互聯網應用及服務。
[0004] 使用開放平臺的能力的過程為:開發者開發腳本,部署到開放平臺;終端用戶調用 腳本的統一資源定位符(Uniform Resource Locator,URL);開放平臺運行腳本。
[0005] 但是開發者可能會在開放平臺上部署包括運行時錯誤的腳本,這會導致開放平臺 執行腳本時,影響開放平臺的穩定性。
【發明內容】
[0006] 本發明提供一種開放平臺運行腳本的方法和開放平臺系統,能夠提高開放平臺的 系統穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務服務能力下降。
[0007] 第一方面,提供一種開放平臺運行腳本的方法,包括:所述開放平臺獲取腳本;所 述開放平臺對所述腳本進行預編譯,得到所述腳本的二進制文件;所述開放平臺確定所述 二進制文件中是否存在腳本錯誤模式庫中的運行時錯誤,所述腳本錯誤模式庫包括至少一 個運行時錯誤;若所述開放平臺確定所述二進制文件中存在所述腳本錯誤模式庫中的運行 時錯誤,則不執行所述二進制文件。
[0008] 本發明實施例中,開放平臺根據腳本錯誤模式庫,在執行腳本前對腳本中的運行 時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測,以提 高開放平臺的系統穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務服務 能力下降。
[0009] 在一種可能的實現方式中,所述腳本錯誤模式庫包括死循環錯誤的錯誤特征;其 中,所述開放平臺確定所述二進制文件中是否存在腳本錯誤模式庫中的運行時錯誤,包括: 所述開放平臺根據所述二進制文件中存在所述錯誤特征,確定所述二進制文件中存在所述 死循環錯誤。
[0010] 本發明實施例中,在腳本執行之前判斷出腳本存在死循環,從而禁止死循環腳本 運行,避免資源被完全占用,從而避免影響其他腳本程序運行。
[0011] 在一種可能的實現方式中,所述死循環錯誤的錯誤特征包括循環標識、循環條件 值為真和循環體中無退出語句;其中,所述開放平臺根據所述二進制文件中存在所述錯誤 特征,確定所述二進制文件中存在所述死循環錯誤,包括:所述開放平臺檢查所述二進制文 件中是否存在所述循環標識;所述開放平臺檢查所述二進制文件中存在所述循環標識時, 檢查所述二進制文件中所述循環標識對應的循環的循環條件值是否為真;所述開放平臺檢 查所述二進制文件中所述循環的循環條件值為真時,檢查所述循環的循環體中是否有退出 循環的語句;所述開放平臺檢查所述循環的循環體中無退出循環的語句時,確定所述二進 制文件中存在所述死循環錯誤。
[0012] 在一種可能的實現方式中,所述方法還包括:所述開放平臺確定所述二進制文件 中存在所述腳本錯誤模式庫中的運行時錯誤時,生成錯誤提示信息。
[0013] 本發明實施例中,開放平臺檢測出腳本中存在運行時錯誤時,提示該錯誤,從而可 以使得開發者或終端用戶了解不執行腳本的原因,提高開發者或終端用戶的滿意度。
[0014] 在一種可能的實現方式中,所述方法還包括:若所述開放平臺確定所述二進制文 件中不存在所述腳本錯誤模式庫中的運行時錯誤,則執行所述二進制文件。
[0015] 本發明實施例中,執行不存在運行時錯誤的腳本,以保證正確腳本的功能能夠實 現,滿足開發者或終端用戶的需求。
[0016] 在一種可能的實現方式中,所述腳本為使用MVEL編寫的腳本。
[0017] 第二方面,提供一種開放平臺系統,包括:獲取模塊,用于獲取腳本;預編譯模塊, 用于對所述腳本進行預編譯,得到所述腳本的二進制文件;確定模塊,用于確定所述二進制 文件中是否存在腳本錯誤模式庫中的運行時錯誤,所述腳本錯誤模式庫包括至少一個運行 時錯誤;執行模塊,用于在所述確定模塊確定所述二進制文件中存在所述腳本錯誤模式庫 中的運行時錯誤時,不執行所述二進制文件。
[0018] 本發明實施例中,開放平臺系統根據腳本錯誤模式庫,在執行腳本前對腳本中的 運行時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測, 以提高開放平臺系統的穩定性,避免開放平臺系統因為運行有運行時錯誤的腳本而造成的 業務服務能力下降。
[0019] 在一種可能的實現方式中,所述腳本錯誤模式庫包括死循環錯誤的錯誤特征;其 中,所述確定模塊具體用于根據所述二進制文件中存在所述錯誤特征,確定所述二進制文 件中存在所述死循環錯誤;所述執行模塊具體用于在所述確定模塊確定所述二進制文件中 存在所述死循環錯誤時,不執行所述二進制文件。
[0020] 本發明實施例中,在腳本執行之前判斷出腳本存在死循環,從而禁止死循環腳本 運行,避免資源被完全占用,從而避免影響其他腳本程序運行。
[0021] 在一種可能的實現方式中,所述死循環錯誤的錯誤特征包括循環標識、循環條件 值為真和循環體中無退出語句;其中,所述確定模塊具體用于:檢查所述二進制文件中是否 存在所述循環標識;在所述二進制文件中存在所述循環標識時,檢查所述二進制文件中所 述循環標識對應的循環的循環條件值是否為真;在所述二進制文件中所述循環的循環條件 值為真時,檢查所述循環的循環體中是否有退出循環的語句;在所述循環的循環體中無退 出循環的語句時,確定所述二進制文件中存在所述死循環錯誤。
[0022] 在一種可能的實現方式中,所述開放平臺系統還包括錯誤提示模塊,用于在所述 確定模塊確定所述二進制文件中存在所述腳本錯誤模式庫中的運行時錯誤時,生成錯誤提 示信息。
[0023] 本發明實施例中,開放平臺檢測出腳本中存在運行時錯誤時,提示該錯誤,從而可 以使得開發者或終端用戶了解不執行腳本的原因,提高開發者或終端用戶的滿意度。
[0024] 在一種可能的實現方式中,所述執行模塊還用于在所述確定模塊確定所述二進制 文件中不存在所述腳本錯誤模式庫中的運行時錯誤時,執行所述二進制文件。
[0025]本發明實施例中,執行不存在運行時錯誤的腳本,以保證正確腳本的功能能夠實 現,滿足開發者或終端用戶的需求。
[0026]在一種可能的實現方式中,所述腳本為使用MVEL編寫的腳本。
[0027]第三方面,提供了一種開放平臺系統,包括輸入接口、輸出接口、至少一個處理器、 存儲器,所述處理器用于執行所述存儲器中的代碼,當所述代碼被執行時,所述處理器實現 第一方面中的方法。
[0028] 第四方面,提供了一種計算機可讀介質,所述計算機可讀介質存儲用于在開放平 臺中運行腳本的程序代碼,所述程序代碼包括用于執行第一方面中的方法的指令。
【附圖說明】
[0029] 為了更清楚地說明本發明實施例的技術方案,下面將對本發明實施例中所需要使 用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發明的一些實施例,對于 本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他 的附圖。
[0030] 圖1是現有技術中開放平臺運行腳本的方法的示意性流程圖。
[0031] 圖2是本發明實施例的開放平臺運行腳本的方法的示意性流程圖。
[0032] 圖3是本發明實施例的開放平臺運行腳本的方法的示意性流程圖。
[0033] 圖4是本發明實施例的開放平臺系統的示意性結構圖。
[0034] 圖5是本發明實施例的開放平臺系統的示意性結構圖。
【具體實施方式】
[0035]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發 明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施 例,都屬于本發明保護的范圍。
[0036]為了更好地理解本發明實施例,下面先介紹本發明實施例中的一些術語。
[0037] 腳本是批處理文件的延伸,是一種純文本保存的程序,一般來說的計算機腳本程 序是確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現一定的邏輯分支 等。
[0038] 簡單地說,腳本就是一條條的文字命令,這些文字命令是可以看到的(如可以用記 事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機 器可識別的指令,并按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二 進制程序執行效率要稍低一些。
[0039] 運行時錯誤與語法錯誤不同,其是指運行時才有可能產生的問題,并且這些問題 可以進行處理,從而避免中斷程序,產生不好得用戶體驗。
[0040]為了更好地理解本發明實施例于現有技術中的開放平臺運行腳本的方法的區別, 下面先結合圖1介紹現有技術中開放平臺運行腳本的方法。
[0041 ]圖1是現有技術中開放平臺運行腳本的方法的示意性結構圖。
[0042] S102,開放平臺獲取腳本。
[0043 ] S104,開放平臺對腳本進行預編譯,得到二進制文件。
[0044] S106,開放平臺執行預編譯得到的二進制文件,得到執行結果。
[0045] 有上述步驟可以看出,開放平臺對腳本預編譯成功,得到二進制文件后即執行該 二進制文件,這樣會導致腳本中存在如死循環之類的錯誤時,造成資源被完全占用,影響其 他腳本程序運行,即導致開放平臺的資源被不合理使用。
[0046] 現有技術里解決上述問題的方法是在獨立的測試服務器上運行該腳本,確認該腳 本沒有如死循環的運行時錯誤時,再將腳本部署到開放平臺上,由開放平臺運行。但這種解 決方法需要提供與開放平臺相同的運行環境等額外資源。
[0047] 針對上述問題,本發明實施例提出了一種開放平臺運行腳本的方法,既不需要提 供額外獨立的資源,又能確保開放平臺不會運行存在運行時錯誤的腳本。
[0048]圖2是本發明實施例的開放平臺運行腳本的方法的示意性流程圖。應理解,圖2示 出了開放平臺運行腳本的方法的詳細步驟或操作,但這些步驟或操作僅是示例,本發明實 施例中還可以執行其他操作或者圖2中的各個操作的變形。此外,圖2中的部分步驟可以按 照與圖1呈現的不同的順序來執行,并且有可能并非要執行圖2中的全部操作。
[0049] S202,開放平臺獲取腳本。本發明實施例中的開放平臺為開放平臺系統中的組成 部分,該開放平臺系統還包括運行該開放平臺的物理裝置,本發明實施例中的開放平臺均 是在開放平臺系統的物理裝置上來完成該步驟及后續步驟的。開放平臺獲取的腳本可以是 開發者在開放平臺上使用開放平臺支持的語言編寫的腳本,也可以是開發者在其他平臺上 編寫后,部署到開放平臺上的腳本。
[0050] 本發明實施例中,可以是終端用戶調用該腳本的邏輯接口,觸發開放平臺獲取該 腳本,以便于執行后續操作。
[0051 ] S204,開放平臺對腳本進行預編譯,得到腳本的二進制文件。開放平臺對腳本進行 預編譯時,可以檢查腳本中的語法錯誤等。
[0052] S206,開放平臺確定二進制文件中是否存在腳本錯誤模式庫中的運行時錯誤,所 述腳本錯誤模式庫包括至少一個運行時錯誤。
[0053]開放平臺對腳本進行預編譯成功后(如沒有檢查出語法錯誤),可以根據腳本錯誤 模式庫對預編譯所得的二進制文件進行檢查,以確定該二進制文件中是否存在腳本錯誤模 式庫中包括的一個或多個運行時錯誤。
[0054]開放平臺對腳本進行預編譯不成功,則不再繼續執行步驟S206及后續的步驟。此 時,開放平臺可以退出腳本的運行過程。
[0055] S208,開放平臺確定二進制文件中不存在腳本錯誤模式庫中的運行時錯誤時,運 行該二進制文件。此時,由于開放平臺運行的二進制文件經過步驟S206的檢查,確定無運行 時錯誤,因此開放平臺運行二進制文件的過程中不會出現諸如死循環之類的錯誤。
[0056] S210,開放平臺確定二進制文件中存在腳本錯誤模式庫中的運行時錯誤時,不運 行該二進制文件。
[0057] 開放平臺確定二進制文件中存在腳本錯誤模式庫中的運行時錯誤時,不再運行該 二進制文件,以避免出現錯誤。此時,開放平臺可以退出腳本的運行過程,也可以生成錯誤 提示信息,向開發者或終端用戶提示該錯誤,以便于開發者更改錯誤,或終端用戶終止該腳 本的運行。
[0058] 本發明實施例中,開放平臺根據腳本錯誤模式庫,在執行腳本前對腳本中的運行 時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測,以提 高開放平臺的系統穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務服務 能力下降。
[0059] 本發明實施例中,腳本錯誤模式庫中具體可以包括運行時錯誤的錯誤特征。如腳 本錯誤模式庫中可以包括死循環錯誤的錯誤特征。此時,開放平臺確定二進制文件中是否 存在腳本錯誤模式庫中的運行時錯誤的【具體實施方式】為:開放平臺根據二進制文件中存在 腳本錯誤模式庫中的錯誤特征,確定二進制文件中存在死循環錯誤。
[0060] 本發明實施中,腳本錯誤模式庫中用于表示死循環錯誤的錯誤特征可以包括循環 標識(如"while")、循環條件值為真(如"true")和循環體中無退出語句,即包括循環標識的 腳本中,若該循環標識對應的循環的條件值為真時,其循環體中沒有催出語句,則說明該循 環為死循環。
[0061] 此時,開放平臺根據二進制文件中存在錯誤特征,確定二進制文件中存在死循環 錯誤的【具體實施方式】為:開放平臺檢查二進制文件中是否存在循環標識;開放平臺檢查二 進制文件中存在循環標識時,繼續檢查二進制文件中所述循環標識對應的循環的循環條件 值是否為真;開放平臺檢查二進制文件中所述循環的循環條件值為真時,繼續檢查循環的 循環體中是否有退出循環的語句;開放平臺檢查所述循環的循環體中無退出循環的語句 時,確定二進制文件中存在死循環錯誤。
[0062] 下面根據一個具體的腳本例子來介紹本發明實施例中確定腳本中是否存在死循 環錯誤的方法。
[0063] 如腳本錯誤模式庫中包括的死循環錯誤的特征為:模式名(死循環檢測),循環標 識(whi 1 e),條件為常量(true)和循環體無退出語句。
[0064] 開發者部署在開放平臺上的腳本中包括以下語句: while (trae) {
[0065] i=i+l;
[0066] 則在開放平臺對腳本預編譯成功得到二進制文件后,取出腳本錯誤模式庫中的死 循環檢測的"循環標識(while)",并在二進制文件中進行匹配。在二進制文件中匹配到 "while"后,繼續取出"條件為常量(true)"在二進制文件中進行匹配,在二進制文件的上述 "while"循環中匹配其條件是否為"true";在二進制文件中的上述"while"循環中匹配到其 條件為"true"后,在二進制文件中的上述"whi 1 e"循環中查找有無退出語句;
[0067] 若上述"while"循環中無退出語句,則說明該循環為死循環,即該二進制文件中存 在死循環錯誤;若上述"while"循環中有退出語句,則說明該循環不是循環,即該二進制文 件中不存在死循環錯誤。
[0068] 本發明實施例中,開放平臺運行的腳本可以是MVFLEX表達式語言(MVFLEX Expression Language,MVEL)編寫的。MVEL是一個功能強大的基于Java應用程序的表達式 語言,是一種動態/靜態的可嵌入的表達式語言和為Java平臺提供運行時(Runtime)的語 言。
[0069] 圖3是本發明實施例的開放平臺運行腳本的方法的示意性流程圖。圖3中與圖1中 相同的標記表示的含義相同,此處不再贅述。但是根據圖1與圖3中不同的標記S103可知,本 發明實施例的開放平臺運行腳本的方法與現有技術中開放平臺運行腳本的方法的不同之 處在于:開放平臺對腳本進行預編譯后,在執行腳本前,根據腳本錯誤模式庫檢查腳本中的 運行時錯誤,且在確定腳本中不存在運行時錯誤時才執行腳本的二進制文件。
[0070] 因此,本發明實施例的開放平臺運行腳本的方法不需要提供獨立測試服務器就能 實現腳本中的運行時錯誤的檢測,以提高開放平臺的系統穩定性,避免開放平臺因為運行 有運行時錯誤的腳本而造成的業務服務能力下降。
[0071] 圖4是本發明實施例的開放平臺系統的示意性結構圖。應理解,圖4中的開放平臺 系統400中的各個模塊可以部署在同一個物理設備上,也可以部署在不同的物理設備上。圖 2中的方法中的開放平臺為開放平臺系統400的組成部分。
[0072]獲取模塊410,用于獲取腳本。
[0073]預編譯模塊420,用于對所述腳本進行預編譯,得到所述腳本的二進制文件。
[0074]確定模塊430,用于確定所述二進制文件中是否存在腳本錯誤模式庫中的運行時 錯誤,所述腳本錯誤模式庫包括至少一個運行時錯誤。
[0075]執行模塊440,用于在所述確定模塊430確定所述二進制文件中存在所述腳本錯誤 模式庫中的運行時錯誤時,不執行所述二進制文件。
[0076] 本發明實施例中,開放平臺系統根據腳本錯誤模式庫,在執行腳本前對腳本中的 運行時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測, 以提高開放平臺系統的穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務 服務能力下降。
[0077] 可選地,所述腳本錯誤模式庫包括死循環錯誤的錯誤特征;其中,所述確定模塊具 體用于根據所述二進制文件中存在所述錯誤特征,確定所述二進制文件中存在所述死循環 錯誤;所述執行模塊具體用于在所述確定模塊確定所述二進制文件中存在所述死循環錯誤 時,不執行所述二進制文件。
[0078] 本發明實施例中,在腳本執行之前判斷出腳本存在死循環,從而禁止死循環腳本 運行,避免資源被完全占用,從而避免影響其他腳本程序運行。
[0079] 可選地,所述死循環錯誤的錯誤特征包括循環標識、循環條件值為真和循環體中 無退出語句;其中,所述確定模塊具體用于:檢查所述二進制文件中是否存在所述循環標 識;在所述二進制文件中存在所述循環標識時,檢查所述二進制文件中所述循環標識對應 的循環的循環條件值是否為真;在所述二進制文件中所述循環的循環條件值為真時,檢查 所述循環的循環體中是否有退出循環的語句;在所述循環的循環體中無退出循環的語句 時,確定所述二進制文件中存在所述死循環錯誤。
[0080] 可選地,所述開放平臺系統還包括錯誤提示模塊,用于在所述確定模塊430確定所 述二進制文件中存在所述腳本錯誤模式庫中的運行時錯誤時,生成錯誤提示信息。
[0081] 本發明實施例中,開放平臺檢測出腳本中存在運行時錯誤時,提示該錯誤,從而可 以使得開發者或終端用戶了解不執行腳本的原因,提高開發者或終端用戶的滿意度。
[0082] 可選地,所述執行模塊還用于在所述開放平臺確定所述二進制文件中不存在所述 腳本錯誤模式庫中的運行時錯誤時,執行所述二進制文件。
[0083]本發明實施例中,執行不存在運行時錯誤的腳本,以保證正確腳本的功能能夠實 現,滿足開發者或終端用戶的需求。
[0084] 可選地,所述腳本為使用MVEL編寫的腳本。
[0085] 圖5是本發明實施例的開放平臺系統的示意性結構圖。圖5的開放平臺系統500包 括輸入接口 510、至少一個處理器520、存儲器530和輸出接口 540。
[0086] 輸入接口 510,用于接收終端用戶發送的指示開放平臺系統運行腳本的信息。
[0087] 至少一個處理器520,用于對所述腳本進行預編譯,得到所述腳本的二進制文件。
[0088]存儲器530,用于存儲腳本錯誤模式庫,所述腳本錯誤模式庫包括至少一個運行時 錯誤。
[0089]至少一個處理器520還用于確定所述二進制文件中是否存在腳本錯誤模式庫中的 運行時錯誤。
[0090] 至少一個處理器520還用于在確定所述二進制文件中存在所述腳本錯誤模式庫中 的運行時錯誤時,不執行所述二進制文件。
[0091] 本發明實施例中,開放平臺系統根據腳本錯誤模式庫,在執行腳本前對腳本中的 運行時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測, 以提高開放平臺系統的穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務 服務能力下降。
[0092]可選地,所述腳本錯誤模式庫包括死循環錯誤的錯誤特征;其中,至少一個處理器 520具體用于根據所述二進制文件中存在所述錯誤特征,確定所述二進制文件中存在所述 死循環錯誤;以及在所述確定模塊確定所述二進制文件中存在所述死循環錯誤時,不執行 所述二進制文件。
[0093] 本發明實施例中,在腳本執行之前判斷出腳本存在死循環,從而禁止死循環腳本 運行,避免資源被完全占用,從而避免影響其他腳本程序運行。
[0094] 可選地,所述死循環錯誤的錯誤特征包括循環標識、循環條件值為真和循環體中 無退出語句;其中,至少一個處理器520具體用于:檢查所述二進制文件中是否存在所述循 環標識;在所述二進制文件中存在所述循環標識時,檢查所述二進制文件中所述循環標識 對應的循環的循環條件值是否為真;在所述二進制文件中所述循環的循環條件值為真時, 檢查所述循環的循環體中是否有退出循環的語句;在所述循環的循環體中無退出循環的語 句時,確定所述二進制文件中存在所述死循環錯誤。
[0095]可選地,至少一個處理器520還用于在所述確定模塊確定所述二進制文件中存在 所述腳本錯誤模式庫中的運行時錯誤時,生成錯誤提示信息。此時,輸出接口 540用于向終 端用戶輸出該提示信息。
[0096]本發明實施例中,開放平臺系統檢測出腳本中存在運行時錯誤時,提示該錯誤,從 而可以使得開發者或終端用戶了解不執行腳本的原因,提高開發者或終端用戶的滿意度。
[0097] 可選地,至少一個處理器520還用于在確定所述二進制文件中不存在所述腳本錯 誤模式庫中的運行時錯誤時,執行所述二進制文件。
[0098]本發明實施例中,執行不存在運行時錯誤的腳本,以保證正確腳本的功能能夠實 現,滿足開發者或終端用戶的需求。
[0099] 可選地,所述腳本為使用MVEL編寫的腳本。
[0100] 本發明實施例中,開放平臺系統根據腳本錯誤模式庫,在執行腳本前對腳本中的 運行時錯誤進行檢查,不需要提供獨立測試服務器就能實現腳本中的運行時錯誤的檢測, 以提高開放平臺的系統穩定性,避免開放平臺因為運行有運行時錯誤的腳本而造成的業務 服務能力下降。
[0101] 本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單 元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟 以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員 可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出 本發明的范圍。
[0102] 所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、 裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0103] 在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以 通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件 可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或 討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦 合或通信連接,可以是電性,機械或其它的形式。
[0104] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個 網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目 的。
[0105] 另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0106] 所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以 存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說 對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計 算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個 人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。 而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(R0M,Read-0nly Memory)、隨機存取存 儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0107]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵 蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
【主權項】
1. 一種開放平臺運行腳本的方法,其特征在于,包括: 所述開放平臺獲取腳本; 所述開放平臺對所述腳本進行預編譯,得到所述腳本的二進制文件; 所述開放平臺確定所述二進制文件中是否存在腳本錯誤模式庫中的運行時錯誤,所述 腳本錯誤模式庫包括至少一個運行時錯誤; 若所述開放平臺確定所述二進制文件中存在所述腳本錯誤模式庫中的運行時錯誤,則 不執行所述二進制文件。2. 根據權利要求1所述的方法,其特征在于,所述腳本錯誤模式庫包括死循環錯誤的錯 誤特征; 其中,所述開放平臺確定所述二進制文件中是否存在腳本錯誤模式庫中的運行時錯 誤,包括: 所述開放平臺根據所述二進制文件中存在所述錯誤特征,確定所述二進制文件中存在 所述死循環錯誤。3. 根據權利要求2所述的方法,其特征在于,所述死循環錯誤的錯誤特征包括循環標 識、循環條件值為真和循環體中無退出語句; 其中,所述開放平臺根據所述二進制文件中存在所述錯誤特征,確定所述二進制文件 中存在所述死循環錯誤,包括: 所述開放平臺檢查所述二進制文件中是否存在所述循環標識; 所述開放平臺檢查所述二進制文件中存在所述循環標識時,檢查所述二進制文件中所 述循環標識對應的循環的循環條件值是否為真; 所述開放平臺檢查所述二進制文件中所述循環的循環條件值為真時,檢查所述循環的 循環體中是否有退出循環的語句; 所述開放平臺檢查所述循環的循環體中無退出循環的語句時,確定所述二進制文件中 存在所述死循環錯誤。4. 根據權利要求1至3中任一項所述的方法,其特征在于,所述方法還包括: 所述開放平臺確定所述二進制文件中存在所述腳本錯誤模式庫中的運行時錯誤時,生 成錯誤提示信息。5. 根據權利要求1至4中任一項所述的方法,其特征在于,所述方法還包括: 若所述開放平臺確定所述二進制文件中不存在所述腳本錯誤模式庫中的運行時錯誤, 則執行所述二進制文件。6. 根據權利要求1至5中任一項所述的方法,其特征在于,所述腳本為使用MVEL編寫的 腳本。7. -種開放平臺系統,其特征在于,包括: 獲取模塊,用于獲取腳本; 預編譯模塊,用于對所述腳本進行預編譯,得到所述腳本的二進制文件; 確定模塊,用于確定所述二進制文件中是否存在腳本錯誤模式庫中的運行時錯誤,所 述腳本錯誤模式庫包括至少一個運行時錯誤; 執行模塊,用于在所述確定模塊確定所述二進制文件中存在所述腳本錯誤模式庫中的 運行時錯誤時,不執行所述二進制文件。8. 根據權利要求7所述的開放平臺系統,其特征在于,所述腳本錯誤模式庫包括死循環 錯誤的錯誤特征; 其中,所述確定模塊具體用于根據所述二進制文件中存在所述錯誤特征,確定所述二 進制文件中存在所述死循環錯誤; 所述執行模塊具體用于在所述確定模塊確定所述二進制文件中存在所述死循環錯誤 時,不執行所述二進制文件。9. 根據權利要求8所述的開放平臺系統,其特征在于,所述死循環錯誤的錯誤特征包括 循環標識、循環條件值為真和循環體中無退出語句; 其中,所述確定模塊具體用于: 檢查所述二進制文件中是否存在所述循環標識; 在所述二進制文件中存在所述循環標識時,檢查所述二進制文件中所述循環標識對應 的循環的循環條件值是否為真; 在所述二進制文件中所述循環的循環條件值為真時,檢查所述循環的循環體中是否有 退出循環的語句; 在所述循環的循環體中無退出循環的語句時,確定所述二進制文件中存在所述死循環 錯誤。10. 根據權利要求7至9中任一項所述的開放平臺系統,其特征在于,所述開放平臺系統 還包括錯誤提示模塊,用于在所述確定模塊確定所述二進制文件中存在所述腳本錯誤模式 庫中的運行時錯誤時,生成錯誤提示信息。11. 根據權利要求7至10中任一項所述的開放平臺系統,其特征在于,所述執行模塊還 用于在所述確定模塊確定所述二進制文件中不存在所述腳本錯誤模式庫中的運行時錯誤 時,執行所述二進制文件。12. 根據權利要求7至11中任一項所述的開放平臺系統,其特征在于,所述腳本為使用 MVEL編寫的腳本。
【文檔編號】G06F11/36GK105912468SQ201610220622
【公開日】2016年8月31日
【申請日】2016年4月11日
【發明人】朱繼先
【申請人】華為軟件技術有限公司