專利名稱:游戲服務器中的任務文件執行裝置以及方法
技術領域:
本發明涉及用于執行以及管理游戲服務器中的計劃任務文件的技術。更詳細來說,本發明涉及用于實現增強的可用性以及可擴展性的文件執行與管理技術,其中在編輯以及執行為開發游戲服務器而創建的文件的同時,無限制修改成為可能,且不受限制地進行與另一游戲服務器的通信。
背景技術:
關于用于執行網頁游戲(web board game)的游戲服務器的操作,需要根據任務來開發游戲服務器的操作所需的多種執行文件。用以開發游戲服務器的操作所必需的執行文件的編程語目為諸如C++的典型的應用編程語目。應用編程語言也被稱為編譯語言。原因在于,在程序源代碼編寫好之后,其通過編譯而轉換為匯編語言的二進制文件且接著被執行。應用編程語言僅在計算機的處理器以及操作系統準備好時在編譯之后立即執行,且其執行速度為快速的。在游戲服務器的開發以及管理方面,為了獲得執行速度,通常使用應用編程語言。然而,如上文所述,由于應用編程語言需要經歷將源代碼轉換為二進制代碼的編譯過程才能被執行,因此如果文件內容需要修改,那么需要操作二進制文件來重新啟動以便修改源代碼。此外,除了用于編寫代碼的典型的應用編程語言之外,還存在腳本語言。由于腳本語言是由另一應用程序而非由計算機處理器轉譯以及執行,因此不存在執行文件。盡管腳本語言的編寫可快于典型的應用編程語言,但其與經編譯的程序相比花費較長的時間來執行。此外,文件內容可能需要在游戲服務器操作期間實時地進行修改。舉例而言,在有限時間內開放或出售游戲中的特定物品以及推出新年的特殊事件需要實施于游戲服務器中。通常,在此些狀況下,修改文件內容以便在臨時維護或例行維護時間期間執行相應事件,這通常可在游戲中看到。當修改文件內容時,插入指明開放或出售物品或者發生事件的時刻的計時器,使得在計時器達到此時刻時,文件被執行以運行事件。在此狀況下,由于事件需要對應于服務器維護時間來規劃,因此游戲開發者被迫以服務器維護時間為基礎來對事件進行安排。因此,難以快速地對游戲服務器操作作出反應。此外,即使事件結束,由于對應于此事件的代碼保留于文件內容中直到下一次維護為止,因此在文件內容中存在不必保留的代碼。
發明內容
技術問題本發明提供游戲服務器的任務文件執行與管理技術,此技術同時執行游戲服務器的操作所必需的文件且通過無限制修改來有效地執行各種任務。另外,本發明提供用于以與使用另一語言的外部游戲服務器的無限制鏈接在服務器操作方面進行擴展的技術。
技術解決方案根據本發明的一方面,一種游戲服務器的任務文件執行與管理裝置包含:調度器,其使用應用編程語言來實施以傳輸有關待處理的任務文件的信息;腳本開發模塊,其存儲用腳本語言開發的多個文件;以及腳本轉譯模塊,其通過使用從所述調度器傳輸的有關所述待處理的任務文件的所述信息從所述腳本開發模塊選擇且接收所述任務文件,且調用所述任務文件的源代碼中的函數以及參數以便執行所述任務文件。所述調度器可包含:計時器,其周期性地產生用于確認是否存在待處理的任務的信號;執行任務確認單元,其從預先存儲的設置文件確定是否存在所述待處理的任務,且提取有關對應于所述待處理的任務的任務文件的信息;以及腳本調用接口,其將有關所述任務文件的所述所提取信息傳輸到所述腳本轉譯模塊。有關所述任務文件的所述信息可包含有關以下各者的信息中的至少一者:任務的名稱、任務開始時間、任務重復執行周期、任務文件的名稱,以及用于執行任務的邏輯實施于所述任務文件的所述源代碼中的函數的名稱。所述任務文件執行與管理裝置可還包含腳本擴展模塊,所述腳本擴展模塊通過所述調度器請求與外部游戲服務器的通信,且將通信結果傳回到所述腳本轉譯模塊。所述腳本轉譯模塊以及所述腳本擴展模塊可用所述應用編程語言實施,藉此與所述調度器鏈接。所述腳本轉譯模塊以及所述腳本擴展模塊可用動態鏈接庫(Dynamic LinkingLibrary ;DLL)文件實施。所述腳本轉譯模塊可包含:轉譯應用程序,其調用將用在所述應用編程語言的所述函數以及所述參數;以及內部編譯器,其執行編譯以執行所述所調用的函數以及參數。當在所述函數以及所述參數的執行期間確定在所述外部游戲服務器中存在待處理的任務時,所述腳本擴展模塊可向所述調度器請求到所述外部游戲服務器的用于任務執行的通信。根據本發明的另一方面,一種執行以及管理游戲者服務器的任務文件的方法包含:通過經由調度器加載預先存儲的設置文件來分析當前是否存在待處理的任務,所述調度器是使用應用編程語言來實施的;從所述設置文件提取有關對應于所述待處理的任務的任務文件的信息且通過所述調度器傳輸所述所提取信息;通過腳本轉譯模塊根據有關所述任務文件的所述信息從腳本開發模塊選擇所述任務文件,所述腳本開發模塊存儲用腳本語言開發的多個任務文件;以及通過所述腳本轉譯模塊調用且執行所述所選擇任務文件的源代碼中的函數以及參數。是否存在待處理的任務的所述分析可包含通過執行任務確認單元從所述設置文件確定是否存在所述待處理的任務,所述執行任務確認單元接收周期性地從計時器產生的處理任務確認/[目號。有關所述任務文件的所述信息可包含有關以下各者的信息中的至少一者:任務的名稱、任務開始時間、任務重復執行周期、任務文件的名稱,以及用于執行任務的邏輯實施于所述任務文件的所述源代碼中的函數的名稱。所述方法可還包含通過腳本擴展模塊,通過所述調度器請求與外部游戲服務器的通信,且將通信結果傳回到所述腳本轉譯模塊。
所述腳本轉譯模塊以及所述腳本擴展模塊可用所述應用編程語言實施,藉此與所述調度器鏈接。所述函數以及所述參數的所述執行可包含:通過轉譯應用程序調用將用在所述應用編程語言的所述函數以及所述參數;以及通過內部編譯器執行編譯以執行所述所調用的函數以及參數。如果確定在所述外部游戲服務器中存在待處理的任務同時所述經編譯的函數以及參數處于執行中,那么所述通信結果的所述傳回可得以執行。有益效果根據本發明,用不需要編譯的腳本語言開發的任務文件可執行于調度器、腳本轉譯模塊以及腳本擴展模塊中,此三者是使用編譯語言來實施的。因此,在不需要編譯的任務文件修改期間,由于所修改任務在任務文件修改之后在不重新啟動文件的情況下立即反映在服務器上,因此需要實時運行的諸如游戲中的事件的任務操作變得更便利。此外,由于與用另一語言實施的外部游戲服務器不受限制地進行通信,因此即使在任務文件是用腳本語言實施時,功能使用方面的擴展仍不受限制。
圖1為根據本發明的實施例的游戲服務器的任務文件執行與管理裝置的結構圖。圖2為游戲服務器的任務文件執行與管理裝置的實施語言分類圖。圖3為說明調度器的詳細結構的框圖。圖4為說明在腳本文件的類型改變時的配置改變的示意圖。圖5為說明腳本轉譯模塊的詳細結構的框圖。圖6為說明通過腳本擴展模塊實現的外部函數調用功能的示意圖。圖7為根據本發明的實施例的游戲服務器的任務文件執行與管理方法的流程圖。
具體實施例方式根據本發明的一方面,一種游戲服務器的任務文件執行與管理裝置包含:調度器,其使用應用編程語言來實施以傳輸有關待處理的任務文件的信息;腳本開發模塊,其存儲用腳本語言開發的多個文件;以及腳本轉譯模塊,其通過使用從所述調度器傳輸的有關所述待處理的任務文件的所述信息從所述腳本開發模塊選擇且接收所述任務文件,且調用所述任務文件的源代碼中的函數以及參數以便執行所述任務文件。所述調度器可包含:計時器,其周期性地產生用于確認是否存在待處理的任務的信號;執行任務確認單元,其從預先存儲的設置文件確定是否存在所述待處理的任務,且提取有關對應于所述待處理的任務的任務文件的信息;以及腳本調用接口,其將有關所述任務文件的所述所提取信息傳輸到所述腳本轉譯模塊。有關所述任務文件的所述信息可包含有關以下各者的信息中的至少一者:任務的名稱、任務開始時間、任務重復執行周期、任務文件的名稱,以及用于執行任務的邏輯實施于所述任務文件的所述源代碼中的函數的名稱。所述任務文件執行與管理裝置可還包含腳本擴展模塊,所述腳本擴展模塊通過所述調度器請求與外部游戲服務器的通信,且將通信結果傳回到所述腳本轉譯模塊。
所述腳本轉譯模塊以及所述腳本擴展模塊可用所述應用編程語言實施,藉此與所述調度器鏈接。所述腳本轉譯模塊以及所述腳本擴展模塊可用動態鏈接庫(DLL)文件實施。所述腳本轉譯模塊可包含:轉譯應用程序,其調用將用在所述應用編程語言的所述函數以及所述參數;以及內部編譯器,其執行編譯以執行所述所調用的函數以及參數。當在所述函數以及所述參數的執行期間確定在所述外部游戲服務器中存在待處理的任務時,所述腳本擴展模塊可向所述調度器請求到所述外部游戲服務器的用于任務執行的通信。根據本發明的另一方面,一種執行以及管理游戲者服務器的任務文件的方法包含:通過經由調度器加載預先存儲的設置文件來分析當前是否存在待處理的任務,所述調度器是使用應用編程語言來實施的;從所述設置文件提取有關對應于所述待處理的任務的任務文件的信息且通過所述調度器傳輸所述所提取信息;通過腳本轉譯模塊根據有關所述任務文件的所述信息從腳本開發模塊選擇所述任務文件,所述腳本開發模塊存儲用腳本語言開發的多個任務文件;以及通過所述腳本轉譯模塊調用且執行所述所選擇任務文件的源代碼中的函數以及參數。是否存在待處理的任務的所述分析可包含通過執行任務確認單元從所述設置文件確定是否存在所述待處理的任務,所述執行任務確認單元接收周期性地從計時器產生的處理任務確認/[目號。有關所述任務文件的所述信息可包含有關以下各者的信息中的至少一者:任務的名稱、任務開始時間、任務重復執行周期、任務文件的名稱,以及用于執行任務的邏輯實施于所述任務文件的所述源代碼中的函數的名稱。所述方法可還包含通過腳本擴展模塊,通過所述調度器請求與外部游戲服務器的通信,且將通信結果傳回到所述腳本轉譯模塊。所述腳本轉譯模塊以及所述腳本擴展模塊可用所述應用編程語言實施,藉此與所述調度器鏈接。所述函數以及所述參數的所述執行可包含:通過轉譯應用程序調用將用在所述應用編程語言的所述函數以及所述參數;以及通過內部編譯器執行編譯以執行所述所調用的函數以及參數。如果確定在所述外部游戲服務器中存在待處理的任務同時所述經編譯的函數以及參數處于執行中,那么所述通信結果的所述傳回可得以執行。用于本發明的模式下文中,將參看附圖更詳細地描述根據本發明的實施例的游戲服務器的任務文件執行與管理裝置以及方法。在下文的描述中,每一實施例并不限制權利要求書的范疇,且由此,其它等效實施例也為可能的。此外,將排除與眾所周知的功能或配置相關的詳細描述,以便不會不必要地混淆本發明的標的。另外,相似參考數字指代相似組件。圖1為根據本發明的實施例的游戲服務器的任務文件執行與管理裝置的結構圖。參看圖1,根據本發明的實施例的游戲服務器的任務文件執行與管理裝置100包含腳本開發模塊110、腳本轉譯模塊120、腳本擴展模塊130以及調度器140。
游戲服務器的任務文件執行與管理裝置100通過腳本轉譯模塊120執行設置為在調度140指明的時間執行的任務文件,且允許調度器140在必要時在任務文件執行期間通過腳本擴展模塊130與外部游戲服務器300通信。腳本開發模塊110通過任務單元來存儲腳本文件,此腳本文件為調度器140通過腳本轉譯模塊120執行的任務文件。腳本文件創建于腳本語言開發高(development tall)中,且在調試之后存儲于腳本開發模塊110中。由于腳本文件不需要編譯且本發明中所執行的任務文件為腳本文件,因此開發者通過開發終端200訪問腳本開發模塊110,且接著在任務文件執行期間不受限制地編輯腳本文件的代碼。即,在編輯腳本文件的同時,游戲服務器的任務文件執行與管理裝置100的操作可繼續。存儲于腳本開發模塊110中的任務文件由調度器140在預定時間處理。根據本發明,用腳本語言開發的一個腳本文件為一個任務文件。如果腳本文件為用于區別任務的方式,那么在一個腳本文件中可存在多個任務文件,或在一個任務文件中可存在多個腳本文件。根據本發明的實施例,用于腳本開發模塊110中的腳本語言可包含Python。作為面向對象的編程語言的Python在程序語句中具有縮進(indentation)以便改良可讀性,且容易與另一語言鏈接。然而,除了 Python之外,諸如JavaScript的腳本語言也用于本發明中。調度器140為用應用編程模塊(例如,C++)創建的文件執行模塊。將參看圖3描述調度器140的功能。調度器140基本上執行用于將有關待處理的任務文件的信息傳輸到腳本轉譯模塊120的功能。另外,調度器140可包含用于輸出由腳本轉譯模塊120處理的任務文件的執行結果的功能。調度器140讀取在啟動初始化期間預先存儲的設置文件,以便管理多個任務文件。設置文件為具有xml擴展名的文件,且包含有關以下各者的信息作為有關任務文件的信息:待執行的任務的名稱、任務開始時間、用于重復任務的執行周期以及計數、對應于任務的任務文件的名稱,以及具有用以執行任務文件的源代碼中的任務的邏輯的函數的名稱。調度器140可包含用于周期性地確認當前是否存在待執行的任務的構件。是否存在待執行的任務可通過比較設置文件中的任務的開始時間與作為任務文件的信息的當前檢查時間來確定。如果存在任務,那么調度器140將有關任務文件的信息移交到腳本轉譯模塊120,且接著,腳本轉譯模塊120執行任務文件。本發明的游戲服務器的任務文件執行與管理裝置100包含用需要編譯的應用編程語言(例如,C++)開發的配置以及用腳本語言(例如,Python)開發的任務文件的配置。因此,需要負責在不同語言之間的轉譯以及執行的組件。根據本發明,用于彼功能的組件可單獨作為具有DLL文件的模塊來提供。為了通過調度器140的執行來執行任務文件,需要轉譯與文件執行構件,以便用應用編程語言執行基于腳本語言的任務文件。腳本轉譯模塊120為用于執行上文的功能的組件。
腳本轉譯模塊120從調度器140接收有關對應于待執行的任務的任務文件的信息,且通過使用所接收信息從腳本開發模塊I選擇待處理的任務文件。接著,腳本轉譯模塊120在內部編譯所選擇任務文件的源代碼以便產生字節代碼,且執行此些代碼。通過進行此操作,由于任務文件如上文所述容易進行編輯,且同時經歷編譯過程,因此,如同基于應用編程的文件,執行速度從第二執行變得較快。更詳細來說,腳本轉譯模塊120是以應用編程語言為基礎使用從腳本語言提供的轉譯應用程序來開發的。腳本轉譯模塊120調用任務文件的源代碼中的函數以及參數。用于本發明中的腳本語言Python使用Mutex ( g卩,全局解譯器鎖(GlobalInterpreter Lock5GIL))以便支持多線程,且需要在多線程環境中在腳本轉譯模塊120中操作。因此,需要在調用Python所提供的應用程序(例如,轉譯應用程序)之前在屬于多線程的所有閾值中獲得GIL。如果并非如此,那么轉譯應用程序可能不會恰當地操作,且所獲得的GIL應在應用程序得到使用之后得以釋放。在內部,在任務文件得到執行的同時,腳本轉譯模塊120周期性地將過程分配到另一線程。即,Python以如下方式支持多線程:執行任務的預定字節,且接著將控制移交到另一線程。此時,Python在每一線程上單獨地存儲信息,以便維持每一線程的狀態。在執行上文的功能的同時,腳本轉譯模塊120讀取且執行任務文件。腳本轉譯模塊120是用動態鏈接庫(DLL)文件來實施的。用于不同語言轉譯以及執行的模塊與調度器140分離。這是為了鏈接,當稍后有必要執行用另一腳本語言開發的任務文件且調度器140需要與另一腳本語言鏈接時,鏈接僅通過在不編輯調度器140中的文件的源代碼的情況下替換不同語言的另一腳本轉譯模塊120而成為可能。腳本轉譯模塊120包含取得繼承任務文件的接口的對象的指針的功能,以及終止且去除對象的指針的功能。當執行編譯語言時,腳本語言可通過腳本轉譯模塊120來使用。因此,開發者可實施文件的內容,作為在不重新起動游戲服務器的情況下實時地執行游戲所必需的事件執行。因此,與事件內容在文件內容僅在維護期間得到編輯之后插入到文件中或從文件去除的狀況相比,可防止不必要的代碼保留。因此,服務器操作的效率可得到改進。另外,關于在游戲服務器操作期間規劃特定事件,基于每一者并非服務器維護時間而規劃事件。因此,事件可實時地反映在文件內容上,有可能對事件規劃快速地作出反應。另外,當游戲服務器僅用編譯語言操作時,與游戲服務器的常規功能相關的程序代碼可能在有關另一事件執行的文件內容得到編輯的同時異常地操作。因此,如果需要實時地編輯的與事件有關的文件是用腳本語言創建且得到執行,而編輯任務是在這段時間執行,那么錯寫負責重要常規功能的代碼的可能性可降低。因此,可防止與操作服務器有關的故障。根據本發明的實施例的游戲服務器的任務文件執行與管理裝置100可包含腳本擴展模塊130。腳本擴展模塊130向調度器140請求外部游戲服務器通信,且將通信結果傳回到腳本轉譯模塊120。在執行基于腳本語言開發的任務文件的同時,可能需要除了從腳本語言自身提供的功能以及外部游戲服務器300中的任務執行之外的額外功能。舉例而言,應用編程語言的庫可用于任務文件中。另外,在執行任務文件的同時,有必要與另一外部游戲服務器300通信與鏈接。腳本擴展模塊I30調用調度器140的導出函數。即,調度器140與外部游戲服務器300通信且將任務結果通知給腳本轉譯模塊120。根據本發明的實施例,腳本轉譯模塊120以及腳本擴展模塊130可通過腳本語言所提供的應用程序用應用編程語言開發。腳本轉譯模塊130也可用DLL文件來實施。此是為了在不同腳本語言之間容易與調度器140鏈接,如同腳本轉譯模塊120。腳本擴展模塊130向調度器140導出函數,此函數用以與另一游戲服務器通信。由于導出函數可僅在任務文件內調用,因此其可用不同腳本語言創建以及使用單獨原型(proto type)。當通過調用任務文件的源代碼中的函數以及參數而確定在外部游戲服務器300中存在待執行的任務同時腳本轉譯模塊120在執行中時,腳本擴展模塊130與外部游戲服務器300通信。此時,腳本擴展模塊130向調度器140請求與外部游戲服務器300的任務執行有關的通信。舉例而言,如上文所述,當存在與外部游戲服務器300鏈接的待處理的任務或外部游戲服務器300執行編程語言功能當中的必要功能時,進行通信請求。另外,盡管上文描述腳本轉譯模塊120以及腳本擴展模塊130具有DLL文件格式,但用于本發明中的腳本語言為Python。因此,根據本發明,用于執行腳本轉譯模塊120以及腳本擴展模塊130的功能的文件擴展名為pyd。Python腳本僅讀取以及使用pyd文件。圖2為游戲服務器的任務文件執行與管理裝置的實施語言分類圖。在下文的描述中,在圖1與圖2的描述之間的重疊將被省略。參看圖2,存儲于腳本開發模塊110中的腳本文件(即,任務文件)是用腳本語言實施的。另外,運行以用于執行服務器中的任務文件的調度器140是用應用編程語言(即,編譯語言)實施的。為了對其進行鏈接,腳本轉譯模塊120以及腳本擴展模塊130可通過腳本語言(例如,Python)所提供的應用程序用應用編程語言(例如,C++)來實施。因此,調度器140執行腳本文件111的相同效應可得以達成,且腳本文件111的替換可在所有游戲服務器操作的同時不受限制地進行。圖3為說明調度器的詳細結構的框圖。參看圖3,調度器包含計時器141、執行任務確認單元142、設置文件存儲單元143、腳本調用接口 144以及設置修改單元145。計時器141周期性地產生確認當前是否存在待處理的任務的信號。當在根據本發明的游戲服務器的任務文件執行與管理裝置100的初始化期間讀取設置文件時,可設置計時器141產生信號的時間以及周期。執行任務確認單元142通過在信號從計時器141產生時使用存儲于設置文件存儲單元143中的設置文件來確定當前是否存在待處理的任務,且接著,從設置文件提取有關對應于待處理的任務的任務文件的信息。當從執行任務確認單元142接收有關任務文件的所提取信息時,腳本調用接口144將所接收信息傳輸到腳本轉譯模塊120以便執行任務文件。設置修改單元145為用于在任務文件執行期間修改設置文件的組件。當設置文件上的內容(即,有關任務文件的信息)改變時,調度器140自動地檢測改變且讀取新的設置文件以便更新任務執行計劃。另外,調度器140可還包含用于與外部游戲服務器300通信的通信單元(未圖示)。通信單元通過網絡或代碼鏈接連接到外部游戲服務器300,使得其在任務文件執行期間響應于來自腳本擴展模塊130的請求在必要時執行通信以及任務。圖4為說明在腳本文件的類型改變時的配置改變的示意圖。根據本發明,盡管Python(即,腳本語言)用作任務文件的實施語言,但諸如JavaScript的不同腳本語言可用作任務文件的植入語言。在圖4的描述中,當前使用的腳本語言表示為S I且不同腳本語言表示為S2。因此,在圖4中所示的兩對腳本轉譯模塊以及腳本擴展模塊當中,在用S I所指示的區塊中的模塊分別表示為第一腳本轉譯模塊120以及第一腳本擴展模塊130,且在用S2所指示的區塊中的模塊分別表示為第二腳本轉譯模塊121以及第二腳本擴展模塊131。為了執行用不同腳本語言實施的腳本文件112,第一腳本轉譯模塊120以及第一腳本擴展模塊130需要用以不同腳本語言實施的第二腳本轉譯模塊121以及第二腳本擴展模塊131來替換。如上文所述,與調度器140分離,第一腳本轉譯模塊120以及第二腳本擴展模塊130是以DLL文件格式來實施的。因此,在無調度器140的修改的情況下,用應用編程語言實施的第二腳本轉譯模塊121以及第二腳本擴展模塊131可通過不同腳本語言S2所提供的應用程序來容易地替換以及使用。這樣,可不管腳本語言而不受限制地使用服務。圖5為說明腳本轉譯模塊的詳細結構的框圖。在下文的描述中,在圖1至圖4的描述之間的重疊將被省略。參看圖5,腳本轉譯模塊120包含:轉譯應用程序122,其用于調用將用在應用編程語言的函數以及參數;以及內部編譯器123,其用于在內部編譯任務文件以執行所調用的函數以及參數。腳本轉譯模塊120可另外包含文件執行單元124,其用于通過使用經編譯任務文件的源代碼中的函數以及參數來執行任務文件。一旦任務文件(即,腳本文件111)的函數以及參數通過腳本轉譯模塊120來調用,則任務通過內部編譯器123以及文件執行單元124來執行。另外,文件的執行結果可通過調度器140輸出到開發者終端200。圖6為說明通過腳本擴展模塊實現的外部函數調用功能的示意圖。在下文的描述中,在圖1至圖5的描述之間的重疊將被省略。參看圖6,在任務文件執行于腳本轉譯模塊120的文件執行單元124中的同時,如果外部游戲服務器300中的函數被調用,那么用于調用外部函數的功能返回到腳本擴展模塊130。當腳本擴展模塊130向調度器140請求與外部游戲服務器300的通信時,調度器140通過與外部游戲服務器300的通信調用函數且傳回結果。調度器140順序地將所傳回結果遞送到文件執行單元124,使得任務文件連續地執行于文件執行單元124中。圖7為根據本發明的實施例的游戲服務器的任務文件執行與管理方法的流程圖。在下文的描述中,在圖1至圖6的描述之間的重疊將被省略。圖7為游戲服務器的任務文件執行與管理裝置的實施語言分類圖。首先,在操作S 10中,調度器140在過程開始的同時分析設置文件。設置文件包含計時器141產生任務確認信號的時間以及周期。另外,設置文件包含每次待處理的任務文件(即,腳本文件)以及文件中的函數名稱,使得調度器140在操作S20中對其進行讀取且每次設置任務。接著,在操作S30中,調度器140與腳本轉譯模塊120鏈接而初始化腳本轉譯模塊120的操作,且開始執行以便執行任務文件。在操作S30之后,任務在每當腳本轉譯模塊120周期性地確認任務文件時得以執行,直到所有任務終止為止。在任務文件執行期間,連續地執行在操作S40中確定與外部服務器(例如,外部游戲服務器)的通信是否為必要的。如果確定與外部服務器(例如,外部游戲服務器)的通信為必要的,那么在操作S70中,腳本轉譯模塊120從腳本擴展模塊130調用用于請求與外部游戲服務器300的通信的函數。在此狀況下,在操作S 80中,通過腳本擴展模塊130以及調度器140執行與外部游戲服務器300的通信以及任務。連續地重復包含操作S40、S70以及S80的任務文件執行操作,直到在操作S50中根據腳本轉譯模塊120以及調度器140的設置文件終止操作為止。當終止所有任務文件的執行時,在操作S60中,在腳本轉譯模塊中清除所列出以及所調用的函數。必要時,當改變實施任務文件的腳本語言或任務文件的設置文件時,可再次執行操作S 10或S30。然而,在此狀況中并不包含用于修改調度器140中的源代碼的操作。即,由于存在用需要編譯的應用編程語言實施的調度器140中的源代碼未經修改的調度器140,以及包含單獨文件的腳本轉譯模塊120以及腳本擴展模塊130,因此使用者可在不重新啟動調度器140的情況下修改以及轉換任務。詳細地說,腳本轉譯模塊120執行任務文件的操作S30包含通過調度器140分析設置文件以確定是否存在待處理的任務,以及從設置文件提取有關對應于調度器140分析的待處理的任務的任務文件的信息以便將所提取信息傳輸到腳本轉譯模塊120。接著,根據有關任務文件的信息,腳本轉譯模塊從存儲多個任務文件的腳本開發模塊選擇用腳本語言實施的任務文件。所選擇任務文件是通過調用任務文件的源代碼中的函數以及參數而執行于腳本轉譯模塊120中。
權利要求
1.一種游戲服務器的任務文件執行與管理裝置,其包括: 調度器,其使用應用編程語言來實施以傳輸有關待處理的任務文件的信息; 腳本開發模塊,其存儲用腳本語言開發的多個文件;以及 腳本轉譯模塊,其通過使用從所述調度器傳輸的有關所述任務文件的所述信息從所述腳本開發模塊選擇且接收待處理的所述任務文件,且調用所述任務文件的源代碼中的函數以及參數以便執行所述任務文件。
2.根據權利要求1所述的任務文件執行與管理裝置,其特征在于所述調度器包括: 計時器,其周期性地產生用于確認是否存在待處理的任務的信號; 執行任務確認單元,其從預先存儲的設置文件確定是否存在所述待處理的任務,且提取有關對應于所述待處理的任務的任務文件的信息;以及 腳本調用接口,其將有關所述任務文件的所述所提取信息傳輸到所述腳本轉譯模塊。
3.根據權利要求2所述的任務文件執行與管理裝置,其特征在于有關所述任務文件的所述信息包括有關以下各者的信息中的至少一者:任務的名稱、任務開始時間、任務重復執行周期、任務文件的名稱,以及用于執行任務的邏輯實施于所述任務文件的所述源代碼中的函數的名稱。
4.根據權利要求1所述的任務文件執行與管理裝置,其還包括腳本擴展模塊,所述腳本擴展模塊通過所述調度器請求與外部游戲服務器的通信,且將通信結果傳回到所述腳本轉譯模塊。
5.根據權利要求4所述的任務文件執行與管理裝置,其特征在于所述腳本轉譯模塊以及所述腳本擴展模塊是用所述應用編程語言實施,藉此與所述調度器鏈接。
6.根據權利要求4所述的任務文件執行與管理裝置,其特征在于所述腳本轉譯模塊以及所述腳本擴展模塊是用動態鏈接庫(DLL)文件實施。
7.根據權利要求5所述的任務文件執行與管理裝置,其特征在于所述腳本轉譯模塊包括: 轉譯應用程序,其調用將用在所述應用編程語言的所述函數以及所述參數;以及 內部編譯器,其執行編譯以執行所述所調用的函數以及參數。
8.根據權利要求4所述的任務文件執行與管理裝置,其特征在于,當在所述函數以及所述參數的執行期間確定在所述外部游戲服務器中存在待處理的任務時,所述腳本擴展模塊向所述調度器請求到所述外部游戲服務器的用于任務執行的通信。
9.一種執行以及管理游戲者服務器的任務文件的方法,所述方法包括: 通過經由調度器加載預先存儲的設置文件來分析當前是否存在待處理的任務,所述調度器是使用應用編程語言來實施的; 從所述設置文件提取有關對應于所述待處理的任務的任務文件的信息且通過所述調度器傳輸所述所提取信息; 通過腳本轉譯模塊根據有關所述任務文件的所述信息從腳本開發模塊選擇所述任務文件,所述腳本開發模塊存儲用腳本語言開發的多個任務文件;以及 通過所述腳本轉譯模塊調用且執行所述所選擇任務文件的源代碼中的函數以及參數。
10.根據權利要求9所述的方法,其特征在于是否存在待處理的任務的所述分析包括通過執行任務確認單元從所述設置文件確定是否存在所述待處理的任務,所述執行任務確認單元接收周期性地從計時器產生的處理任務確認信號。
11.根據權利要求9所述的方法,其特征在于有關所述任務文件的所述信息包括有關以下各者的信息中的至少一者:任務的名稱、任務開始時間、任務重復執行周期、任務文件的名稱,以及用于執行任務的邏輯實施于所述任務文件的所述源代碼中的函數的名稱。
12.根據權利要求9所述的方法,其還包括通過腳本擴展模塊,通過所述調度器請求與外部游戲服務器的通信,且將通信結果傳回到所述腳本轉譯模塊。
13.根據權利要求12所述的方法,其特征在于所述腳本轉譯模塊以及所述腳本擴展模塊是用所述應用編程語言實施,藉此與所述調度器鏈接。
14.根據權利要求13所述的方法,其特征在于所述函數以及所述參數的所述執行包括: 通過轉譯應用程序調用將用在所述應用編程語言的所述函數以及所述參數;以及 通過內部編譯器執行編譯以執行所述所調用的函數以及參數。
15.根據權利要求14所述的方法,其特征在于,如果確定在所述外部游戲服務器中存在待處理的任務同時所述經編譯的函數以及參數處于執行中,那么所述通信結果的所述傳回得以執 行。
全文摘要
本發明提供文件執行以及管理技術,通過此技術,在任務期間不受限制地進行代碼修改成為可能,且不受限制地進行與用不同語言實施的另一服務器的通信成為可能。根據本發明的實施例的游戲服務器的任務文件執行與管理裝置包含調度器,其使用應用編程語言來實施以傳輸有關待處理的任務文件的信息;腳本開發模塊,其存儲用腳本語言開發的多個文件;以及腳本轉譯模塊,其通過使用從所述調度器傳輸的有關所述任務文件的所述信息從所述腳本開發模塊選擇且接收待處理的所述任務文件,且調用所述任務文件的源代碼中的函數以及參數以便執行所述任務文件。
文檔編號G06F9/45GK103180827SQ201280000788
公開日2013年6月26日 申請日期2012年6月7日 優先權日2011年6月17日
發明者金南姬, 崔仁坤 申請人:新游網絡科技有限公司