两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種模塊間調(diào)用的方法及裝置與流程

文檔序號:11971116閱讀:200來源:國知局
一種模塊間調(diào)用的方法及裝置與流程
本發(fā)明涉及計算機技術領域,尤其涉及一種模塊間調(diào)用的方法及裝置。

背景技術:
在Windows程序系列構架中,按功能劃分,可以被分為前端程序和后臺服務程序。前端程序用于展示用戶界面(UI),后臺服務程序用于做數(shù)據(jù)的收集、整理、分發(fā)。用戶界面會隨著客戶的需求與側(cè)重點發(fā)生變化而變化,但當一個體系穩(wěn)定以后,其后臺數(shù)據(jù)服務部分幾乎是不變的。基于此,將前端用戶界面的呈現(xiàn)與后臺數(shù)據(jù)的處理分開,不但有利于產(chǎn)品的更新與迭代,也有利于相關模塊的設計和維護,相關技術人員可以將有限的精力投入到和自己最相關的技術模塊中去提升系統(tǒng)的穩(wěn)定性與專業(yè)性;同時體系功能的分離,也有利于對資源的合理使用(例如對內(nèi)存、網(wǎng)絡、磁盤讀寫)。將后臺的數(shù)據(jù)處理模塊化以后,雖然有上述的多種優(yōu)點,但對于模塊之間的相互協(xié)調(diào),分工合作共同完成一個較大的任務也提出了一個較大的挑戰(zhàn)。

技術實現(xiàn)要素:
為了解決現(xiàn)有技術中存在的模塊間協(xié)調(diào)性差的問題,本發(fā)明實施例提出一種模塊間調(diào)用的方法和裝置。第一方面,本發(fā)明提供一種模塊間調(diào)用的方法,包括:第一模塊構造一條調(diào)用指令,并向第二模塊發(fā)送所述調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID,以便所述第二模塊執(zhí)行所述第一模塊調(diào)用的功能;所述第一模塊接收所述第二模塊發(fā)送的功能執(zhí)行完畢消息。第二方面,本發(fā)明提供另一種模塊間調(diào)用的方法,包括:第二模塊接收第一模塊發(fā)送的調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID;根據(jù)所述第一模塊調(diào)用的功能代號確定所述第二模塊中的功能,代入執(zhí)行所述功能所需的參數(shù),執(zhí)行所述功能;所述第二模塊向所述第一模塊發(fā)送所述功能執(zhí)行完畢的消息。第三方面,本發(fā)明提供一種用于模塊間調(diào)用的裝置,包括:構造模塊,用于構造一條調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID;發(fā)送模塊,用于向第二模塊發(fā)送所述構造模塊構造的所述調(diào)用指令;接收模塊,用于接收所述第二模塊發(fā)送的功能執(zhí)行完畢消息。第四方面,本發(fā)明提供另一種用于模塊間調(diào)用的裝置,包括:接收模塊,用于接收第一模塊發(fā)送的調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID;執(zhí)行模塊,用于根據(jù)所述接收模塊接收的功能代號確定第二模塊中的功能,代入執(zhí)行所述功能所需的參數(shù),執(zhí)行所述功能;發(fā)送模塊,用于在所述執(zhí)行模塊執(zhí)行完所述功能后,向所述第一模塊發(fā)送所述功能執(zhí)行完畢的消息。使用本發(fā)明實施例公開的模塊間調(diào)用的方法和裝置,能夠更好的協(xié)調(diào)模塊間功能的調(diào)用,促進模塊之間的分工協(xié)作,有效的解決現(xiàn)有的模塊間協(xié)調(diào)性差的問題,進而能夠保證多個模塊分工合作完成一個較大的任務。附圖說明圖1所示是本發(fā)明實施例提供的Windows消息多級控制中心的示意圖;圖2所示是本發(fā)明實施例提供的一種模塊間調(diào)用的方法示意圖;圖3所示是本發(fā)明實施例提供的另一種模塊間調(diào)用的方法的示意圖;圖4所示是本發(fā)明實施例提供的進程間功能調(diào)用的方法流程圖;圖5所示是本發(fā)明實施例提供的一種用于模塊間調(diào)用的裝置的結構示意圖;圖6所示是本發(fā)明實施例提供的另一種用于模塊間調(diào)用的裝置的結構示意圖;圖7所示是本發(fā)明實施例提供的另一種用于模塊間調(diào)用的裝置的結構示意圖;圖8所示是本發(fā)明實施例提供的另一種用于模塊間調(diào)用的裝置的結構示意圖;圖9所示是本發(fā)明實施例提供的另另一種用于模塊間調(diào)用的裝置的結構示意圖。具體實施方式為了更好的公開本發(fā)明實施例提供的方法和裝置,本實施例先對將要使用到的一些概念做一些簡單的說明。函數(shù):在計算機系統(tǒng)中,函數(shù)又可以稱為函數(shù)過程,是指一系列程序語句的集合,用于完成某些特定的工作——比如處理文本、控制輸入或計算數(shù)值等。函數(shù)調(diào)用:通過在某個模塊中引入函數(shù)名稱和所需的參數(shù),可在該模塊中執(zhí)行(或稱調(diào)用)該函數(shù)。從函數(shù)的調(diào)用方式上,可以將此分為三類:同步調(diào)用、異步調(diào)用和回調(diào)。同步調(diào)用是一種阻塞式調(diào)用,調(diào)用方要等待被調(diào)用方執(zhí)行完畢才返回,它是一種單向調(diào)用;回調(diào)則屬于一種雙向調(diào)用模式,也就是說,被調(diào)用方在接口被調(diào)用時也會調(diào)用對方的接口;異步調(diào)用是一種類似消息或事件的機制,不過它的調(diào)用方向剛好相反,接口的服務在收到某種信息或發(fā)生某種事件時,會主動通知客戶方(即調(diào)用客戶方的接口)。回調(diào)和異步調(diào)用的關系非常緊密,通常我們使用回調(diào)來實現(xiàn)異步消息的注冊,通過異步調(diào)用來實現(xiàn)消息的通知。模塊間的函數(shù)調(diào)用:指在多個模塊之間,由一個模塊調(diào)用另一個模塊的某些功能(即函數(shù)),當被調(diào)用函數(shù)執(zhí)行完后,結果返回或不返回調(diào)用模塊。在本發(fā)明實施例中采用一個GUID(GloballyUniqueIdentifier,全局唯一標識符)或UUID(UniversallyUniqueIdentifier,通用唯一識別碼)。GUID是一個通過特定算法產(chǎn)生的二進制長度為128位的數(shù)字標識符,用于指示產(chǎn)品的唯一性。GUID主要用于在擁有多個節(jié)點、多臺計算機的網(wǎng)絡或系統(tǒng)中,分配必須具有唯一性的標識符的場景下。在本發(fā)明實施例中,使用它來記錄模塊中回調(diào)函數(shù)的位置,當調(diào)用模塊收到被調(diào)用模塊返回的結果以后,返回到調(diào)用進程執(zhí)行后續(xù)處理。Windows消息機制:Windows消息控制中心一般是三層結構,其頂端是Windows內(nèi)核,Windows內(nèi)核維護著一個消息隊列;第二級控制中心從這個消息隊列中獲取屬于自己管轄的消息,然后做出處理,有些消息由第二級控制中心直接處理,有些消息還要發(fā)送給下一級窗體(Window)或控件(Control)。第二級控制中心一般是各Windows應用程序的Application對象。第三級控制中心就是Windows窗體對象,每一個窗體都有一個默認的窗體過程,這個過程負責處理各種接收到的消息。圖1即為Windows消息多級控制中心的示意圖。其中,windows指windows操作系統(tǒng);窗口即windows窗口;窗體包括窗口,以及有句柄的控件;control指控件,控件本身也可能是一個window,也可能不是;Application即應用程序,應用程序也可能不會用到Windows消息機制,在本發(fā)明實施例中涉及有消息循環(huán)的應用程序;每一個UIApplication即用戶界面應用程序,肯定有一個Window,如果有多個Window也會有一個MainWindow即主窗體。消息打包:指將某些信息集成在一條消息里,收到該消息可以通過某種約定好的格式解開,得到之前集成到消息里的內(nèi)容。在前述公開的內(nèi)容基礎上,本發(fā)明一個實施例提供一種模塊間調(diào)用的方法。圖2所示即為一種模塊間調(diào)用的方法示意圖,依據(jù)該圖,詳述各步驟如下。步驟201、第一模塊構造一條調(diào)用指令,并向第二模塊發(fā)送所述調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID,以便所述第二模塊執(zhí)行所述第一模塊調(diào)用的功能;其中,在本發(fā)明實施例中,第一模塊作為調(diào)用功能的一方,第二模塊作為被調(diào)用方,執(zhí)行第一模塊所調(diào)用的功能;第二模塊執(zhí)行的功能即是前面所述的函數(shù),功能的調(diào)用方式即是前面公開的幾種函數(shù)調(diào)用方式,此處不再贅述。第一模塊和第二模塊的定義僅是為了敘述方便,第二模塊也可以調(diào)用第一模塊中的功能,本發(fā)明實施例對此不做限定。在所述第一模塊向所述第二模塊發(fā)送調(diào)用指令之前,還包括:所述第一模塊記錄構造所述調(diào)用指令時程序執(zhí)行的位置,并生成所述GUID,對應所述程序執(zhí)行的位置。生成GUID是第一模塊調(diào)用第二模塊的功能時,記錄本模塊中程序執(zhí)行的位置所用,以便根據(jù)第二模塊返回的執(zhí)行結果或執(zhí)行完畢消息做后續(xù)操作之用。其中,在所述第一模塊構造一條調(diào)用指令之前,還包括:所述第一模塊和所述第二模塊約定所述第二模塊中可調(diào)用的功能的代號和輸入?yún)?shù)的屬性。功能代號要和可調(diào)用的功能唯一對應。做這些約定的目的是使第二模塊能夠識別第一模塊所調(diào)用的功能,并保證第一模塊發(fā)送的參數(shù)能被正確應用到第二模塊將要執(zhí)行的功能中。步驟202、所述第一模塊接收所述第二模塊發(fā)送的功能執(zhí)行完畢消息。其中,第二模塊執(zhí)行完第一模塊調(diào)用的功能后,向第一模塊發(fā)送功能執(zhí)行完畢的消息。本步驟中第二模塊執(zhí)行被調(diào)用的功能的詳細情形將在后續(xù)實施例中公開。根據(jù)調(diào)用方式的不同,第二模塊在完成被調(diào)用功能的執(zhí)行后,會向第一模塊返回或不返回執(zhí)行的結果,調(diào)用方式的種類已在前面實施例中公開,此處不再贅述。在第二模塊執(zhí)行完被調(diào)用的功能后,若不需要向第一模塊返回被調(diào)用功能執(zhí)行的結果,則第二模塊只需向第一模塊發(fā)送一條功能執(zhí)行完畢消息;若需要向第一模塊返回被調(diào)用功能執(zhí)行的結果,則還需將執(zhí)行被調(diào)用功能的結果返回第一模塊,同時也需要將GUID發(fā)送給第一模塊,以便第一模塊定位調(diào)用第二模塊的功能時程序執(zhí)行的位置,并使用該結果執(zhí)行后續(xù)的操作。其中,第二模塊也可以將執(zhí)行被調(diào)用功能的結果以及GUID包含在前述功能執(zhí)行完畢消息中一并發(fā)送給第一模塊。使用本發(fā)明實施例公開的模塊間調(diào)用的方法,能夠更好的協(xié)調(diào)模塊間功能的調(diào)用,促進模塊之間的分工協(xié)作,有效的解決現(xiàn)有的模塊間協(xié)調(diào)性差的問題,進而能夠保證多個模塊分工合作完成一個較大的任務。圖3所示為本發(fā)明一個實施例提供的一種模塊間調(diào)用的方法的示意圖。以下結合該圖,從被調(diào)用的第二模塊的角度來詳述模塊間調(diào)用的方法。步驟301、第二模塊接收第一模塊發(fā)送的調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID;步驟302、根據(jù)所述第一模塊調(diào)用的功能代號確定所述第二模塊中的功能,代入執(zhí)行所述功能所需的參數(shù),執(zhí)行所述功能;步驟303、所述第二模塊向所述第一模塊發(fā)送所述功能執(zhí)行完畢的消息。其中,所述第二模塊根據(jù)所述調(diào)用方式判斷是否需要向所述第一模塊發(fā)送執(zhí)行所述功能得到的結果。經(jīng)過判斷,若不需要向第一模塊發(fā)送執(zhí)行功能得到的結果,則只向第一模塊發(fā)送功能執(zhí)行完畢的消息即可。若根據(jù)所述調(diào)用方式判斷需要向所述第一模塊發(fā)送執(zhí)行所述功能得到的結果,所述第二模塊執(zhí)行完所述功能之后,則將執(zhí)行所述功能得到的結果和所述GUID發(fā)送給所述第一模塊。其中,還可以將執(zhí)行所述功能得到的結果和所述GUID包含在所述功能執(zhí)行完畢的消息中一并發(fā)送給第一模塊。使用本發(fā)明實施例公開的模塊間調(diào)用的方法,能夠更好的協(xié)調(diào)模塊間功能的調(diào)用,促進模塊之間的分工協(xié)作,有效的解決現(xiàn)有的模塊間協(xié)調(diào)性差的問題,進而能夠保證多個模塊分工合作完成一個較大的任務。圖4所示為本發(fā)明一個實施例提供的進程間功能調(diào)用的方法流程圖,該圖所示的方法流程為進程間功能調(diào)用的最詳細的流程。首先,在執(zhí)行該方法流程之前,第一模塊和第二模塊之間需要約定執(zhí)行功能的代號和輸入?yún)?shù)的屬性(該步驟未在圖4中示出)。假設第一模塊需要執(zhí)行的功能為function1,兩個模塊約定該功能的代號為cmd1,輸入?yún)?shù)為兩個數(shù)字。該功能的作用就是根據(jù)兩個輸入的數(shù)字通過某種運算和處理得到一個結果,輸出為一個數(shù)字。步驟401、第一模塊在執(zhí)行本模塊的進程中發(fā)現(xiàn)需要執(zhí)行功能function1,則記錄當前進程執(zhí)行的位置,并生成一個GUID和當前位置相對應。然后將功能代號、執(zhí)行該功能所需的參數(shù)、GUID和調(diào)用方式打包成一個調(diào)用指令發(fā)送到第二模塊。根據(jù)之前第一模塊和第二模塊之間的約定,功能function1的代號為cmd1,輸入?yún)?shù)為兩個數(shù)字,調(diào)用方式為回調(diào)。步驟402、第二模塊收到第一模塊發(fā)送的調(diào)用指令后,將該調(diào)用指令解包,得到其中的各項參數(shù)。根據(jù)cmd1確定與之對應的功能function1,代入第一模塊發(fā)送的兩個數(shù)字,執(zhí)行功能并計算出結果。由于調(diào)用方式為回調(diào),第二模塊需要將得到的結果返回第一模塊。第二模塊將結果與GUID打包為一條消息發(fā)送給第一模塊,當然也可以將結果與GUID包含在功能執(zhí)行完畢消息中一并發(fā)送給第一模塊。步驟403、第一模塊收到第一模塊返回的消息,得到GUID和功能執(zhí)行完畢的結果。第一模塊使用GUID定位到之前的進程執(zhí)行位置,代入得到的結果完成后續(xù)的操作。以下實施例公開一種用于模塊間調(diào)用的裝置,用于執(zhí)行前述實施例中公開的模塊間調(diào)用的方法。圖5所示為本發(fā)明一個實施例提供的一種用于模塊間調(diào)用的裝置的結構示意圖。依據(jù)該圖,詳述裝置中的各組成部分如下:構造模塊501,用于構造一條調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID;發(fā)送模塊502,用于向第二模塊發(fā)送所述構造模塊501構造的所述調(diào)用指令;接收模塊503,用于接收所述第二模塊發(fā)送的功能執(zhí)行完畢消息。如圖6所示,用于模塊間調(diào)用的裝置還包括記錄模塊504,用于記錄構造模塊501構造所述調(diào)用指令時程序執(zhí)行的位置,并生成所述GUID,對應所述程序執(zhí)行的位置。其中,接收模塊503還用于,接收所述第二模塊發(fā)送的執(zhí)行所述功能得到的結果,以及所述GUID。如圖7所示,所述用于模塊間調(diào)用的裝置還包括執(zhí)行模塊505,用于使用所述GUID定位所述程序執(zhí)行的位置,并使用所述第二模塊執(zhí)行所述功能得到的結果,從所述程序執(zhí)行的位置繼續(xù)執(zhí)行后續(xù)操作。使用本發(fā)明實施例公開的用于模塊間調(diào)用的裝置,能夠更好的協(xié)調(diào)模塊間功能的調(diào)用,促進模塊之間的分工協(xié)作,有效的解決現(xiàn)有的模塊間協(xié)調(diào)性差的問題,進而能夠保證多個模塊分工合作完成一個較大的任務。圖8所示為本發(fā)明一個實施例公開的一種用于模塊間調(diào)用的裝置的結構示意圖,該裝置用于執(zhí)行前述實施例公開的一種模塊間調(diào)用的方法。依據(jù)該圖,詳述該裝置的各組成部分如下:接收模塊601,用于接收第一模塊發(fā)送的調(diào)用指令,所述調(diào)用指令中包括所述第一模塊調(diào)用的功能代號、調(diào)用方式、執(zhí)行所述功能所需的參數(shù)和全局唯一標識符GUID;執(zhí)行模塊602,用于根據(jù)所述接收模塊601接收的功能代號確定第二模塊中的功能,代入執(zhí)行所述功能所需的參數(shù),執(zhí)行所述功能;發(fā)送模塊603,用于在所述執(zhí)行模塊602執(zhí)行完所述功能后,向所述第一模塊發(fā)送所述功能執(zhí)行完畢的消息。其中,如圖9所示,所述用于模塊間調(diào)用的裝置還包括判斷模塊604,用于根據(jù)所述調(diào)用方式判斷是否需要向所述第一模塊發(fā)送執(zhí)行所述功能得到的結果。若所述判斷模塊604根據(jù)所述調(diào)用方式判斷需要向所述第一模塊發(fā)送執(zhí)行所述功能得到的結果,所述發(fā)送模塊603還用于,在所述第二模塊執(zhí)行完所述功能之后,將執(zhí)行所述功能得到的結果和所述GUID發(fā)送給所述第一模塊。使用本發(fā)明實施例公開的用于模塊間調(diào)用的裝置,能夠更好的協(xié)調(diào)模塊間功能的調(diào)用,促進模塊之間的分工協(xié)作,有效的解決現(xiàn)有的模塊間協(xié)調(diào)性差的問題,進而能夠保證多個模塊分工合作完成一個較大的任務。本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟、光盤、網(wǎng)絡節(jié)點、調(diào)度器等各種可以存儲程序代碼的介質(zhì)。最后應說明的是:以上僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
瑞昌市| 凤山县| 招远市| 油尖旺区| 武隆县| 龙游县| 西充县| 海门市| 广南县| 陵川县| 赫章县| 若羌县| 博湖县| 永登县| 余江县| 贡嘎县| 金阳县| 兴宁市| 河源市| 乌恰县| 安溪县| 永城市| 卓资县| 宿松县| 安庆市| 调兵山市| 瑞昌市| 太康县| 和顺县| 东丰县| 唐山市| 九台市| 晋江市| 黎城县| 嘉义市| 平武县| 桃园市| 沧州市| 黄陵县| 闻喜县| 衡水市|