專利名稱:跨機(jī)調(diào)度方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)系統(tǒng)的程序執(zhí)行,尤其涉及跨機(jī)調(diào)度方法及其系統(tǒng)。
背景技術(shù):
UNIX是ー個多用戶、多任務(wù)的操作系統(tǒng),在同一時間內(nèi),可以有多個進(jìn)程同時被執(zhí)行。進(jìn)程是系統(tǒng)程序或應(yīng)用程序在內(nèi)存中的一次運(yùn)行,是操作系統(tǒng)當(dāng)前運(yùn)行的執(zhí)行程序。進(jìn)程和程序并不一一對應(yīng),一個程序可以作為多個進(jìn)程執(zhí)行。在UNIX系統(tǒng)中,進(jìn)程調(diào)度是通過系統(tǒng)調(diào)用來實現(xiàn)的。操作系統(tǒng)的進(jìn)程調(diào)度,主要是實現(xiàn)按照優(yōu)先級對每個進(jìn)程進(jìn)行分時間片的調(diào)度,以便對資源(主要是CPU)進(jìn)行共享。進(jìn)程的流程調(diào)度是指多個進(jìn)程按照預(yù)定義流程被執(zhí)行。 UNIX操作系統(tǒng)未直接提供對進(jìn)程按照預(yù)定義流程進(jìn)行調(diào)用的控制功能。在操作系統(tǒng)下直接實現(xiàn)預(yù)定義流程調(diào)度的方式,一般是編寫命令腳本(shell),但這種命令腳本的方式存在如下缺點(diǎn)由于命令腳本是針對進(jìn)程的流程調(diào)度編寫的,每個shell對應(yīng)ー種調(diào)度流程,因此一旦流程改變,則需要修改調(diào)用腳本。而且,對于具有一定邏輯關(guān)系的執(zhí)行步驟,步驟之間的這種邏輯關(guān)系無法控制。申請?zhí)枮?00610028504.X的專利申請公開了一種應(yīng)用進(jìn)程的流程調(diào)度方法,其解決了 Unix(Linux)環(huán)境下采用命令腳本方式實現(xiàn)的流程調(diào)度方法単一、無法按照預(yù)定義流程滿足多種應(yīng)用進(jìn)程調(diào)度的問題。這種方法設(shè)置流程調(diào)度服務(wù)程序,包括讀取預(yù)定義服務(wù)進(jìn)程配置信息;創(chuàng)建輸出消息隊列及與所述服務(wù)進(jìn)程配置信息對應(yīng)的輸入消息隊列;逐條讀取單步預(yù)定義流程控制信息,執(zhí)行調(diào)用請求時寫入對應(yīng)服務(wù)的輸入消息隊列,執(zhí)行調(diào)用返回時讀取輸出消息隊列。然而,隨著計算機(jī)系統(tǒng)運(yùn)算的網(wǎng)絡(luò)化和異構(gòu)化部署的特征越來越明顯,上述方法或者面向OLTP的中間件系統(tǒng)難以適應(yīng)復(fù)雜的分布式應(yīng)用。例如,在多機(jī)部署的情況下調(diào)度方式更加復(fù)雜。有些應(yīng)用程序與機(jī)器無關(guān);有些應(yīng)用對所在主機(jī)和位置敏感,要求在所有可訪問的機(jī)器上強(qiáng)制執(zhí)行或需要在指定機(jī)器運(yùn)行。進(jìn)ー步,批處理系統(tǒng)要求高性能,即全程盡可能充分地利用硬件資源直至所有流程任務(wù)結(jié)束,而且計算量大,流程運(yùn)行時間長,需要較強(qiáng)的高可用性,甚至要具備一定的容災(zāi)功能,在進(jìn)程失效甚至部分物理機(jī)器失效時盡量不影響流程的執(zhí)行。為達(dá)到上述目的,需要ー種適用于Unix/Linux類系統(tǒng)的面向批處理應(yīng)用的跨機(jī)調(diào)度系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明的ー個或多個目標(biāo)通過以下技術(shù)方案來實現(xiàn),ー種跨機(jī)調(diào)度方法,其特征在于,包括以下步驟(a)在主機(jī)節(jié)點(diǎn)處接收預(yù)定義流程執(zhí)行請求,(b)在主機(jī)節(jié)點(diǎn)處讀取預(yù)定義流程配置信息,
(C)在主機(jī)節(jié)點(diǎn)處讀取從機(jī)節(jié)點(diǎn)信息,并且裝載從機(jī)節(jié)點(diǎn)列表,(d)在主機(jī)節(jié)點(diǎn)處讀取預(yù)定義流程控制信息,并且根據(jù)預(yù)定義流程控制信息向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,(e)在從機(jī)節(jié)點(diǎn)處執(zhí)行調(diào)用請求,(f)在從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果返回主機(jī)節(jié)點(diǎn)。優(yōu)選地,從機(jī)節(jié)點(diǎn)信息包括關(guān)于從機(jī)節(jié)點(diǎn)的處理能力的信息,預(yù)定義流程控制信息包括預(yù)定義流程的調(diào)用方式。優(yōu)選地,在向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求之前,進(jìn)一步包括查詢操作,其中,該查詢操作包括由主機(jī)節(jié)點(diǎn)向從機(jī)節(jié)點(diǎn)發(fā)送查詢參數(shù)的步驟,以及,由從機(jī)節(jié)點(diǎn)向主機(jī)節(jié)點(diǎn)返回從機(jī)節(jié)點(diǎn)狀態(tài)的步驟。 優(yōu)選地,當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為單機(jī)同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的第一從機(jī)節(jié)點(diǎn),以及,當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向第一從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)沒有空閑進(jìn)程時,流程失敗。優(yōu)選地,當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的第一從機(jī)節(jié)點(diǎn),以及,當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向第一從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)沒有空閑進(jìn)程時,查詢從機(jī)節(jié)點(diǎn)列表中的第二從機(jī)節(jié)點(diǎn),當(dāng)?shù)诙臋C(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向第二從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。優(yōu)選地,當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)強(qiáng)制同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的指定的從機(jī)節(jié)點(diǎn),當(dāng)指定的從機(jī)節(jié)點(diǎn)都具有空閑進(jìn)程時,向指定的從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,否則,流程失敗。調(diào)用成功后,在指定的從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果同步返回主機(jī)節(jié)點(diǎn)。優(yōu)選地,當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為單機(jī)異步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的第一從機(jī)節(jié)點(diǎn),根據(jù)第一從機(jī)節(jié)點(diǎn)的空閑進(jìn)程數(shù)量發(fā)送調(diào)用請求。調(diào)用成功后,在第一從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果異步返回主機(jī)節(jié)點(diǎn)。優(yōu)選地,在主機(jī)節(jié)點(diǎn)收到來自第一從機(jī)節(jié)點(diǎn)的一個調(diào)用結(jié)果后就向第一從機(jī)節(jié)點(diǎn)發(fā)送一個新的調(diào)用請求。優(yōu)選地,當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)異步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的指定的從機(jī)節(jié)點(diǎn),根據(jù)指定的從機(jī)節(jié)點(diǎn)的空閑進(jìn)程數(shù)量發(fā)送調(diào)用請求。調(diào)用成功后,在指定的從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果異步返回主機(jī)節(jié)點(diǎn)。優(yōu)選地,在主機(jī)節(jié)點(diǎn)收到來自指定的從機(jī)節(jié)點(diǎn)的調(diào)用結(jié)果后就向該指定的從機(jī)節(jié)點(diǎn)發(fā)送新的調(diào)用請求。一種跨機(jī)調(diào)度系統(tǒng),其特征在于,包括主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn),其中,主機(jī)節(jié)點(diǎn)被配置成根據(jù)從機(jī)節(jié)點(diǎn)信息、預(yù)定義流程控制信息和從機(jī)節(jié)點(diǎn)狀態(tài)向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求;從機(jī)節(jié)點(diǎn)被配置成執(zhí)行調(diào)用請求并且將調(diào)用結(jié)果返回主機(jī)節(jié)點(diǎn)。優(yōu)選地,從機(jī)節(jié)點(diǎn)中還存儲各自的從機(jī)節(jié)點(diǎn)信息,所述各自的從機(jī)節(jié)點(diǎn)信息與主機(jī)節(jié)點(diǎn)中存儲的從機(jī)節(jié)點(diǎn)信息一致。優(yōu)選地,主機(jī)節(jié)點(diǎn)通過向從機(jī)節(jié)點(diǎn)發(fā)起查詢連接會話獲取從機(jī)節(jié)點(diǎn)狀態(tài),其中,通過該查詢連接會話直接向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。優(yōu)選地,主機(jī)節(jié)點(diǎn)和一個或多個從機(jī)節(jié)點(diǎn)共同部署在同一物理機(jī)器上。
本發(fā)明通過在分布在網(wǎng)絡(luò)上的計算機(jī)中設(shè)置主從結(jié)構(gòu)的邏輯服務(wù)器,配合消息隊列機(jī)制,實現(xiàn)了分布式環(huán)境下多個進(jìn)程按照預(yù)定義流程進(jìn)行跨機(jī)部署,跨主機(jī)調(diào)度,支持同步調(diào)用(禁止多機(jī)/允許多機(jī)/強(qiáng)制多機(jī))、異步調(diào)用(禁止多機(jī)/允許多機(jī)),從而滿足多種調(diào)用流程。在多個進(jìn)程的調(diào)度中,本發(fā)明還采用了消息隊列控制機(jī)制,對于具有邏輯關(guān)系的執(zhí)行步驟,可以通過單進(jìn)程/多進(jìn)程、同步/異步的組合調(diào)用方式實現(xiàn)步驟之間的邏輯控制。本發(fā)明中,主機(jī)節(jié)點(diǎn)在調(diào)度時可以實時獲取進(jìn)程信息,盡可能最大化資源利用率。當(dāng)進(jìn)程或從機(jī)節(jié)點(diǎn)失效時,可以通過簡單修改配置文件實現(xiàn)從機(jī)節(jié)點(diǎn)的轉(zhuǎn)移或啟用。通過主機(jī)的調(diào)度職能和從機(jī)的管理職能之間分開,使得系統(tǒng)組件之間的耦合度較低,進(jìn)程調(diào)度的位置對從機(jī)節(jié)點(diǎn)透明,可隨意指定,大大增加了系統(tǒng)的靈活性。
在參照附圖閱讀了本發(fā)明的具體實施方式
以后,本領(lǐng)域技術(shù)人員將會更清楚地了解本發(fā)明的各個方面。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,這些附圖僅僅用于配合具體實施方 式說明本發(fā)明的技術(shù)方案,而并非意在對本發(fā)明的保護(hù)范圍構(gòu)成限制。其中,圖I是根據(jù)本發(fā)明實施例的跨機(jī)調(diào)度系統(tǒng)的示意圖。圖2是根據(jù)本發(fā)明實施例的跨機(jī)調(diào)度方法的流程圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。圖I是根據(jù)本發(fā)明實施例的跨機(jī)調(diào)度系統(tǒng)的示意圖。如圖所示,實現(xiàn)流程調(diào)度服務(wù)的邏輯模塊分2級邏輯部署。第一級為主機(jī)節(jié)點(diǎn)(第一邏輯服務(wù)器),作為流程調(diào)度的執(zhí)行者;第二級為從機(jī)節(jié)點(diǎn)(第二邏輯服務(wù)器),用于對各應(yīng)用程序的進(jìn)程進(jìn)行管理,以及分配來自主機(jī)節(jié)點(diǎn)的調(diào)用請求。主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn)可以作為邏輯服務(wù)模塊被部署在不同的物理機(jī)器上,主機(jī)節(jié)點(diǎn)也可以和一個或多個從機(jī)節(jié)點(diǎn)共同被部署在一臺物理機(jī)器上。主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn)可以通過socket通信,主機(jī)節(jié)點(diǎn)也可以通過socket向外部系統(tǒng)提供預(yù)定義流程執(zhí)行服務(wù)。圖I中還用虛線框示出了預(yù)定義流程配置信息、從機(jī)節(jié)點(diǎn)信息和預(yù)定義流程控制信息。其中,預(yù)定義流程配置信息指示執(zhí)行預(yù)定義流程所需要的資源配置,例如,要執(zhí)行的應(yīng)用程序名稱或者特定的指令序列名稱,以及這些應(yīng)用程序或者特定的指令序列的進(jìn)程的配置。從機(jī)節(jié)點(diǎn)信息包括關(guān)于從機(jī)節(jié)點(diǎn)的處理能力的信息。這里,處理能力的信息可以指示相應(yīng)的從機(jī)節(jié)點(diǎn)能夠適于執(zhí)行哪些應(yīng)用程序或者特定的指令序列,以及從機(jī)節(jié)點(diǎn)的最大配置進(jìn)程數(shù)量??梢岳斫獾氖牵鲜鎏幚砟芰Φ男畔⑦€可以包括相應(yīng)從機(jī)節(jié)點(diǎn)的資源配置,例如CPU資源、內(nèi)存資源等。另外,從機(jī)節(jié)點(diǎn)信息還可以包括關(guān)于各種應(yīng)用程序或者特定的指令序列可以由哪些從機(jī)節(jié)點(diǎn)執(zhí)行的信息,例如,可以將應(yīng)用程序或者特定的指令序列與相應(yīng)的從機(jī)節(jié)點(diǎn)的標(biāo)識符關(guān)聯(lián)。預(yù)定義流程控制信息由一個或多個有序的流程控制命令組成,其可以包括預(yù)定義流程的調(diào)用方式、調(diào)用參數(shù)、應(yīng)用程序標(biāo)識或者特定的指令序列標(biāo)識。這里,預(yù)定義流程的調(diào)用方式可以包括單機(jī)同步調(diào)用、多機(jī)同步調(diào)用、多機(jī)強(qiáng)制同步調(diào)用、單機(jī)異步調(diào)用和多機(jī)異步調(diào)用。這里,同步調(diào)用是指同一時間只能發(fā)起一次調(diào)用,待該調(diào)用返回后,才能進(jìn)行下一次調(diào)用;異步調(diào)用是指發(fā)出一次調(diào)用后,不等待返回即可再次發(fā)出調(diào)用,即相當(dāng)于同一時間可以發(fā)出多個調(diào)用。下文將詳細(xì)描述這些調(diào)用方式的實現(xiàn)。主機(jī)節(jié)點(diǎn)中的預(yù)定義流程配置信息、從機(jī)節(jié)點(diǎn)信息和預(yù)定義流程控制信息可以被預(yù)先設(shè)置好并存儲在一個或多個配置文件中。在本發(fā)明的一個實施例中,還可以在各個從機(jī)節(jié)點(diǎn)存儲各自的從機(jī)節(jié)點(diǎn)信息,通過互聯(lián)網(wǎng)或者局域網(wǎng)同步從機(jī)節(jié)點(diǎn)信息的存儲文件使得所述各自的從機(jī)節(jié)點(diǎn)信息與主機(jī)節(jié)點(diǎn)中存儲的各個從機(jī)的節(jié)點(diǎn)信息一致。這樣,通過使得主機(jī)節(jié)點(diǎn)與相應(yīng)的從機(jī)節(jié)點(diǎn)保持相同的從機(jī)節(jié)點(diǎn)信息,系統(tǒng)全局可以共用一致的配置信息。當(dāng)某一從機(jī)節(jié)點(diǎn)失效時,可以通過變更從機(jī)節(jié)點(diǎn)信息方便地實現(xiàn)節(jié)點(diǎn)的轉(zhuǎn)移。圖2是根據(jù)本發(fā)明實施例的跨機(jī)調(diào)度方法的流程圖。如圖所示,在步驟201中,在主機(jī)節(jié)點(diǎn)處接收預(yù)定義流程執(zhí)行請求。在步驟202中,在主機(jī)節(jié)點(diǎn)處讀取預(yù)定義流程配置信息以獲取關(guān)于待執(zhí)行的預(yù)定義流程的需求。在步驟203中,在主機(jī)節(jié)點(diǎn)處讀取從機(jī)節(jié)點(diǎn) 信息,分析從機(jī)節(jié)點(diǎn)的處理能力,并且將相關(guān)的從機(jī)節(jié)點(diǎn)裝載至從機(jī)節(jié)點(diǎn)列表。在步驟204中,在主機(jī)節(jié)點(diǎn)處讀取預(yù)定義流程控制信息,每執(zhí)行一個流程控制命令,根據(jù)該流程控制命令的信息向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。此時,在步驟208中,在從機(jī)節(jié)點(diǎn)處執(zhí)行調(diào)用請求,并且步驟209中返回調(diào)用結(jié)果。主機(jī)節(jié)點(diǎn)在步驟210中接收調(diào)用返回,由此完成一個流程控制命令的調(diào)用。此后,主機(jī)節(jié)點(diǎn)根據(jù)流程控制命令的序列進(jìn)行下一個流程控制命令的調(diào)用。這里,為完成上述步驟,作為示例,可以在主機(jī)節(jié)點(diǎn)設(shè)置控制模塊、返回隊列、協(xié)同模塊。其中,控制模塊可以作為流程調(diào)度的執(zhí)行模塊;返回隊列用于存放調(diào)用請求的完成消息,控制模塊從返回隊列讀取該完成消息(進(jìn)程調(diào)用返回)來獲得應(yīng)用程序的完成情況;協(xié)同模塊用于從各從機(jī)節(jié)點(diǎn)接收進(jìn)程調(diào)用返回并放入返回隊列。作為示例,可以在從機(jī)節(jié)點(diǎn)設(shè)置管理模塊、協(xié)同模塊、一個或多個輸入隊列和一個輸出隊列。其中,管理模塊使用保存并管理各隊列和進(jìn)程的狀態(tài);協(xié)同模塊用于將各進(jìn)程的返回消息從輸出隊列傳遞給主機(jī)節(jié)點(diǎn)。多個輸入隊列可以各自分別是不同應(yīng)用程序的進(jìn)程隊列,也可以為某一應(yīng)用程序配置多個輸入隊列用于進(jìn)程的并發(fā)處理,提高單步處理性能。如圖2所示,在向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求之前,還可以包括查詢從機(jī)節(jié)點(diǎn)狀態(tài)的步驟205和返回從機(jī)節(jié)點(diǎn)狀態(tài)的步驟206。其中,由主機(jī)節(jié)點(diǎn)向從機(jī)節(jié)點(diǎn)發(fā)送查詢參數(shù),從機(jī)節(jié)點(diǎn)根據(jù)查詢參數(shù)向主機(jī)節(jié)點(diǎn)返回從機(jī)節(jié)點(diǎn)狀態(tài)。這里,查詢參數(shù)可以是應(yīng)用程序名稱或者特定的指令序列等能夠指示從機(jī)應(yīng)當(dāng)完成的任務(wù)的標(biāo)識符。從機(jī)節(jié)點(diǎn)狀態(tài)可以是被查詢的從機(jī)節(jié)點(diǎn)的對應(yīng)于查詢參數(shù)的空閑進(jìn)程的數(shù)量等反映進(jìn)程狀態(tài)的信息,從機(jī)節(jié)點(diǎn)狀態(tài)還可以是反映從機(jī)節(jié)點(diǎn)處的當(dāng)前資源使用狀態(tài)的任何信息。如前所述,預(yù)定義流程控制信息包括預(yù)定義流程的調(diào)用方式。當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為單機(jī)同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的一個從機(jī)節(jié)點(diǎn),當(dāng)該從機(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向該從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,否則,流程失敗。當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的一個從機(jī)節(jié)點(diǎn),當(dāng)該從機(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向該從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求;當(dāng)該從機(jī)節(jié)點(diǎn)沒有空閑進(jìn)程時,查詢從機(jī)節(jié)點(diǎn)列表中的另一從機(jī)節(jié)點(diǎn),直到查詢至首個擁有空閑進(jìn)程的節(jié)點(diǎn)進(jìn)行調(diào)用。如果從機(jī)節(jié)點(diǎn)列表中的所有從機(jī)節(jié)點(diǎn)都沒有空閑進(jìn)程,則流程失敗。當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)強(qiáng)制同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的指定的從機(jī)節(jié)點(diǎn),當(dāng)指定的從機(jī)節(jié)點(diǎn)都具有空閑進(jìn)程時,向指定的從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,否則,流程失敗。調(diào)用成功后,在指定的從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果同步返回主機(jī)節(jié)點(diǎn)。主機(jī)節(jié)點(diǎn)待所有從機(jī)節(jié)點(diǎn)調(diào)用結(jié)束后統(tǒng)一接收返回。當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為單機(jī)異步調(diào)用時,查詢從機(jī) 節(jié)點(diǎn)列表中的一個從機(jī)節(jié)點(diǎn),根據(jù)該從機(jī)節(jié)點(diǎn)的空閑進(jìn)程數(shù)量發(fā)送調(diào)用請求。調(diào)用成功后,在該從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果異步返回主機(jī)節(jié)點(diǎn)。這里,主機(jī)節(jié)點(diǎn)每收到一個調(diào)用返回就向發(fā)送返回的節(jié)點(diǎn)發(fā)送新的調(diào)用請求。當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)異步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的指定的從機(jī)節(jié)點(diǎn),根據(jù)指定的從機(jī)節(jié)點(diǎn)的空閑進(jìn)程數(shù)量發(fā)送調(diào)用請求。調(diào)用成功后,在指定的從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果異步返回主機(jī)節(jié)點(diǎn)。這里,主機(jī)節(jié)點(diǎn)每收到來自指定的從機(jī)節(jié)點(diǎn)的調(diào)用返回就向發(fā)送返回的節(jié)點(diǎn)發(fā)送新的調(diào)用請求。此外,主機(jī)節(jié)點(diǎn)可以在查詢操作的連接會話中向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,這樣可以進(jìn)一步保證從機(jī)節(jié)點(diǎn)狀態(tài)信息的準(zhǔn)確。本領(lǐng)域普通技術(shù)人員可以理解上述實施例中的全部或部分步驟可以通過程序來指令相關(guān)的硬件完成,該程序可以存儲于計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括ROM、RAM、磁盤或光盤等。本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型。上文中,參照附圖描述了本發(fā)明的具體實施方式
。但是,本領(lǐng)域中的普通技術(shù)人員能夠理解,在不偏離本發(fā)明的精神和范圍的情況下,還可以對本發(fā)明的具體實施方式
作各種變更和替換。這些變更和替換都落在本發(fā)明權(quán)利要求書所限定的范圍內(nèi)。
權(quán)利要求
1.一種跨機(jī)調(diào)度方法,其特征在于,包括以下步驟 (a)在主機(jī)節(jié)點(diǎn)處接收預(yù)定義流程執(zhí)行請求, (b)在主機(jī)節(jié)點(diǎn)處讀取預(yù)定義流程配置信息, (C)在主機(jī)節(jié)點(diǎn)處讀取從機(jī)節(jié)點(diǎn)信息,并且裝載從機(jī)節(jié)點(diǎn)列表, (d)在主機(jī)節(jié)點(diǎn)處讀取預(yù)定義流程控制信息,并且根據(jù)預(yù)定義流程控制信息向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求, (e)在從機(jī)節(jié)點(diǎn)處執(zhí)行調(diào)用請求, (f)在從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果返回主機(jī)節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于, 從機(jī)節(jié)點(diǎn)信息包括關(guān)于從機(jī)節(jié)點(diǎn)的處理能力的信息, 預(yù)定義流程控制信息包括預(yù)定義流程的調(diào)用方式。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于, 在步驟(d)中, 在向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求之前,進(jìn)一步包括查詢操作,其中, 該查詢操作包括 由主機(jī)節(jié)點(diǎn)向從機(jī)節(jié)點(diǎn)發(fā)送查詢參數(shù)的步驟,以及, 由從機(jī)節(jié)點(diǎn)向主機(jī)節(jié)點(diǎn)返回從機(jī)節(jié)點(diǎn)狀態(tài)的步驟。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 在步驟(d)中, 在查詢操作的連接會話中向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于, 在步驟(d)中, 在新建的連接會話中向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于, 從機(jī)節(jié)點(diǎn)狀態(tài)是空閑進(jìn)程的數(shù)量。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于, 在步驟(d)中, 當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為單機(jī)同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的第一從機(jī)節(jié)點(diǎn),以及, 當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向第一從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求, 當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)沒有空閑進(jìn)程時,流程失敗。
8.根據(jù)權(quán)利要求3所述的方法,其特征在于, 在步驟(d)中, 當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的第一從機(jī)節(jié)點(diǎn),以及, 當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向第一從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求, 當(dāng)?shù)谝粡臋C(jī)節(jié)點(diǎn)沒有空閑進(jìn)程時,查詢從機(jī)節(jié)點(diǎn)列表中的第二從機(jī)節(jié)點(diǎn), 當(dāng)?shù)诙臋C(jī)節(jié)點(diǎn)有空閑進(jìn)程時,向第二從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。
9.根據(jù)權(quán)利要求3所述的方法,其特征在于,在步驟(d)中, 當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)強(qiáng)制同步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的指定的從機(jī)節(jié)點(diǎn), 當(dāng)指定的從機(jī)節(jié)點(diǎn)都具有空閑進(jìn)程時,向指定的從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求,否則,流程失??; 在步驟(f)中, 在指定的從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果同步返回主機(jī)節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求3所述的方法,其特征在于, 在步驟(d)中, 當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為單機(jī)異步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的第一從機(jī)節(jié)點(diǎn),根據(jù)第一從機(jī)節(jié)點(diǎn)的空閑進(jìn)程數(shù)量發(fā)送調(diào)用請求; 在步驟(f)中, 在第一從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果異步返回主機(jī)節(jié)點(diǎn)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于, 在主機(jī)節(jié)點(diǎn)收到來自第一從機(jī)節(jié)點(diǎn)的一個調(diào)用結(jié)果后就向發(fā)送返回的第一從機(jī)節(jié)點(diǎn)發(fā)送一個新的調(diào)用請求。
12.根據(jù)權(quán)利要求3所述的方法,其特征在于, 在步驟(d)中, 當(dāng)預(yù)定義流程控制信息指示預(yù)定義流程的調(diào)用方式為多機(jī)異步調(diào)用時,查詢從機(jī)節(jié)點(diǎn)列表中的指定的從機(jī)節(jié)點(diǎn),根據(jù)指定的從機(jī)節(jié)點(diǎn)的空閑進(jìn)程數(shù)量發(fā)送調(diào)用請求; 在步驟(f)中, 在指定的從機(jī)節(jié)點(diǎn)處將調(diào)用結(jié)果異步返回主機(jī)節(jié)點(diǎn)。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于, 在主機(jī)節(jié)點(diǎn)收到來自指定的從機(jī)節(jié)點(diǎn)的調(diào)用結(jié)果后就向發(fā)送返回的該指定的從機(jī)節(jié)點(diǎn)發(fā)送新的調(diào)用請求。
14.一種跨機(jī)調(diào)度系統(tǒng),其特征在于,包括主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn),其中, 主機(jī)節(jié)點(diǎn)被配置成根據(jù)從機(jī)節(jié)點(diǎn)信息、預(yù)定義流程控制信息和從機(jī)節(jié)點(diǎn)狀態(tài)向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求; 從機(jī)節(jié)點(diǎn)被配置成執(zhí)行調(diào)用請求并且將調(diào)用結(jié)果返回主機(jī)節(jié)點(diǎn)。
15.根據(jù)權(quán)利要求14所述的跨機(jī)調(diào)度系統(tǒng),其特征在于, 從機(jī)節(jié)點(diǎn)中還存儲各自的從機(jī)節(jié)點(diǎn)信息,所述各自的從機(jī)節(jié)點(diǎn)信息與主機(jī)節(jié)點(diǎn)中存儲的從機(jī)節(jié)點(diǎn)信息一致。
16.根據(jù)權(quán)利要求14所述的跨機(jī)調(diào)度系統(tǒng),其特征在于, 主機(jī)節(jié)點(diǎn)通過向從機(jī)節(jié)點(diǎn)發(fā)起查詢連接會話獲取從機(jī)節(jié)點(diǎn)狀態(tài),其中,通過該查詢連接會話直接向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求。
17.根據(jù)權(quán)利要求14所述的跨機(jī)調(diào)度系統(tǒng),其特征在于,主機(jī)節(jié)點(diǎn)和一個或者多個從機(jī)節(jié)點(diǎn)共同部署在同一物理機(jī)器上。
全文摘要
本發(fā)明提供一種跨機(jī)調(diào)度系統(tǒng),其特征在于,包括主機(jī)節(jié)點(diǎn)和從機(jī)節(jié)點(diǎn),其中,主機(jī)節(jié)點(diǎn)被配置成根據(jù)從機(jī)節(jié)點(diǎn)信息、預(yù)定義流程控制信息和從機(jī)節(jié)點(diǎn)狀態(tài)向從機(jī)節(jié)點(diǎn)發(fā)送調(diào)用請求;從機(jī)節(jié)點(diǎn)被配置成執(zhí)行調(diào)用請求并且將調(diào)用結(jié)果返回主機(jī)節(jié)點(diǎn)。
文檔編號G06F9/46GK102681881SQ20111005355
公開日2012年9月19日 申請日期2011年3月7日 優(yōu)先權(quán)日2011年3月7日
發(fā)明者王笑, 陳逢源 申請人:中國銀聯(lián)股份有限公司