專利名稱:一種面向服務體系結構中消息層軟中斷處理方法
技術領域:
本發(fā)明涉及相互通信的服務集技術領域,特別是一種面向服務體系結構中消息層軟中斷處理方法。
背景技術:
面向服務的體系結構是一個組件模型,本質上是一個相互通信的服務集,這種通信可能是簡單的數(shù)據(jù)傳送或者兩個以上的服務組合活動。服務是由資源(如數(shù)據(jù),程序或設備),服務邏輯和消息處理層構成的;消息處理用于消息交換過程,當消息到達一個服務時激活使用資源的服務邏輯,消息處理是連接各處理層次中不同服務,處理模塊的關鍵環(huán)節(jié)?;诿嫦蚍阵w系結構的網(wǎng)格操作系統(tǒng)(Grid Operating System)實現(xiàn)依賴于XML和Web服務,以及安全性、策略管理等技術,它使用網(wǎng)程(可以看成是一個特殊的物理服務)和社區(qū)(Agora)的概念,把處理過程分解成多次多級的服務調用,具體體現(xiàn)在1)調用過程被分解成多次服務調用,如創(chuàng)建(create),綁定(bind),調用(invoke);2)網(wǎng)程最終對物理服務調用組成了多級服務調用。這些運行時相關的調用通過事件處理構成了一種服務間交互的機制,例如當一個外部事件發(fā)生時,消息處理系統(tǒng)將在一個處理過程的某個處理單元的邊界暫停,并保留當前消息上下文,然后轉到執(zhí)行事件處理過程;待處理結束后,恢復保留的消息上下文進而繼續(xù)消息處理過程。一個消息處理單元作為消息攔截器是消息處理系統(tǒng)中的最小執(zhí)行單元,它以消息上下文作為唯一的輸入?yún)?shù)并對該上下文進行讀或寫操作。一個消息處理階段使用一組處理單元傳遞指定的消息上下文;其規(guī)則決定該階段中處理單元的執(zhí)行順序。
消息軟中斷處理方法實現(xiàn)外部事件的檢測、識別、分派和處理過程調用,其處理過程的描述信息可通過初始化來指定,軟中斷請求消息還可指定事件的影響范圍和處理時刻?,F(xiàn)有的面向服務系統(tǒng)中事件處理,如DotNet事件,CORBA事件服務,主要是從發(fā)送方和接收方對象間相互通信的角度來考慮事件處理問題,并沒有考慮消息處理過程中外部事件的檢測、識別、分派和處理時刻(如服務執(zhí)行的動態(tài)遠程跟蹤調試)的全過程。
發(fā)明內容
本發(fā)明提供一種消息層軟中斷處理方法,服務的可控制和可中斷處理,外部事件的檢測、識別、分派和處理。
為了對面向服務體系結構中消息處理過程的中斷情況進行統(tǒng)一的識別和處理,本發(fā)明給出消息標識結構,軟中斷處理結構,內置操作調用結構,中斷分派機制,處理單元執(zhí)行策略以及軟中斷服務。
消息層軟中斷請求是異步發(fā)生在消息處理過程的事件,通常在消息處理的某個處理單元的邊界進行處理。作為服務執(zhí)行過程交互的一種形式,軟中斷請求消息對指定消息處理過程進行有效的控制,一個處理過程中消息的標識結構定義為MIDStruc=(LMID,PMID,MID,MType,SAddr,PID),
其中,LMGID為本地服務的消息組標識,分為三個層次范圍全局相關的,服務相關的和操作相關;對軟中斷請求發(fā)送的控制消息來說,全局相關的消息控制當前執(zhí)行環(huán)境中所有服務;服務相關的消息控制指定服務的當前操作執(zhí)行;操作相關的消息控制指定操作的當前處理單元的執(zhí)行;PMID為當前服務的父消息標識,當一個服務調用另一個服務時(多級),被調用服務的父消息標識為發(fā)起調用服務的消息標識;MID為當前服務的消息標識;MType為消息類型,分為輸入消息(IN),輸出消息(OUT),異常輸入消息(ExIN),異常輸出消息(ExOUT),軟中斷請求消息(SIReq),軟中斷響應消息(SIResp),內置操作調用消息(BOCall)和內置操作響應消息(BOResp);SAddr為當前服務調用的物理地址;PID為消息處理進程或線程標識。
消息層軟中斷控制器(MSIC)由發(fā)送端API和接收端控制結構兩部分組成。發(fā)送端軟件通過調用基于XML消息傳送的API接口把控制消息傳送給接收端;接收端的控制結構由一組軟中斷處理映射表,中斷分派機制,處理單元執(zhí)行策略以及軟中斷服務組成。軟中斷處理映射表包括軟中斷向量映射表(SI-Vector Map)、消息上下文映射表(M-ContextMap)、內置操作及其調用參數(shù)映射表(MC-Op Map)和軟中斷請求映射表(SIRQ Map),具體定義如下1、保存消息處理過程中可定制的軟中斷處理過程、處理階段和處理單元描述信息的軟中斷向量結構為SIVStruc=((SIVNo,MIDStruc,PUDesc),SIPDesc),其中,SIVNo為軟中斷向量號,MIDStruc為消息標識結構,PUDesc為處理階段和處理單元描述信息,SIPDesc為軟中斷處理過程描述信息。
2、消息標識到輸入或輸出消息上下文的映射結構為MCStruct=(MIDStruc,MessageContext),其中,MIDStruc為消息標識結構,MessageContext為消息上下文。
3、消息上下文的內置操作名(OpName)及其參數(shù)描述(Params)保存在MC-Op Map映射表中,其結構為MC_Op=((MIDStruc,MCDesc),(Index,OpName,Params)),其中,MIDStruc為消息標識結構,MCDesc為消息上下文描述信息,Index為內置操作索引號,OpName為操作名,Params為操作調用參數(shù)表。
4、軟中斷請求映射表(SIRQ Map)保存當前消息處理系統(tǒng)中外部軟中斷請求(與一個軟中斷向量的SIVStruc相匹配)、執(zhí)行策略和處理單元狀態(tài),其執(zhí)行策略結構為ExePolicyStruc=((MIDStruc,PUDesc,Policy),AlterOrCADesc),其中,MIDStruc為消息標識結構,PUDesc為處理階段和處理單元描述信息,Policy為執(zhí)行策略,AlterOrCADesc為可定制的替換或后補償過程描述信息。
中斷分派機制按消息標識和優(yōu)先級處理所發(fā)生的事件,優(yōu)先級是由中斷請求消息的發(fā)送端在其定義范圍內指定的。中斷分派機制處理兩類事件請求一類是內置操作(MC-Op),另一類是外部軟中斷請求(SIRQ)。為了保證消息上下文的一致性,軟中斷請求的優(yōu)先級定義范圍高于內置操作請求的優(yōu)先級,這兩類中斷請求均屬于可屏蔽的。消息軟中斷控制器提供SIRQ0-SIRQ15共16個可定制的軟中斷請求,一個軟中斷處理過程的描述(SIPDesc)通過初始化操作被注冊到軟中斷向量映射表中,對外提供統(tǒng)一的invoke方法作為軟中斷處理接口供分派處理單元調用。SIRQ0-SIRQ15可以通過不同的SIVStruc結構確定其影響范圍和處理時刻,如整個消息處理系統(tǒng)(全局的)、某個消息處理過程(服務的)或者被調用的操作過程。
一個消息處理過程包含一組處理階段和處理單元相關的狀態(tài)控制變量,這些狀態(tài)的遷移和階段邏輯一起確定事件的觸發(fā)以及處理單元的執(zhí)行。在指定的消息標識中,任一給定階段中的一個處理單元具有如下狀態(tài)未準備(NotReady),準備(Ready),執(zhí)行(Execute),完成(Completed),失敗(Failed),凍結(Frozen)。
在一個處理階段中,使能操作(MPUEnable)使處理單元從NotReady狀態(tài)進入Ready狀態(tài),此時該處理單元處于觸發(fā)邊界上;如果有軟中斷請求發(fā)生,首先凍結(MPUFreeze)該處理單元使其進入Frozen狀態(tài),然后根據(jù)當前處理過程的軟中斷請求列表,中斷分派按照優(yōu)先級從高到低的順序調用軟中斷處理過程;待處理結束后喚醒該處理單元,并使其恢復(MPUResume)到Ready狀態(tài);當相關的軟中斷請求處理全部完成后,觸發(fā)操作(MPUFire)使該處理單元進入Execute狀態(tài),根據(jù)執(zhí)行策略調用該處理單元;如果處理單元失效,該處理過程會調用MPUAbort處理程序并進入Failed狀態(tài)。在正常消息處理過程中,處理單元的執(zhí)行順序是由處理階段規(guī)則確定的。
消息處理單元的執(zhí)行策略提供一種通過軟中斷服務傳送控制消息,動態(tài)維護處理單元執(zhí)行的方法,包括Skip(SK),BreakPoint/Trap(BP/TP),Timeout(TO),Alter(AL),Retry(RE),和CompensateAfter(CA);這些策略的具體功能如下1、跳出(SK)策略可以直接跳過該處理單元的執(zhí)行。
2、斷點或陷阱(BP/TP)設置處理單元的斷點或陷入調試執(zhí)行。
3、超時(TO)策略允許在指定的時間間隔內完成輸入或輸出消息的處理,否則該消息處理過程報告超時錯誤。每一個策略和處理單元開始執(zhí)行前會檢測處理過程是否超過指定的時間間隔。
4、替換(AL)策略使用指定的模塊替換當前處理單元調用。
5、重試(RE)策略重新執(zhí)行該處理單元。
6、后補償(CA)策略指定一個在處理單元執(zhí)行后調用的擴展模塊。
為了實現(xiàn)消息處理中異步控制消息的傳送,接收端為發(fā)送端提供一種特殊的軟中斷服務一方面這些操作的對象主要是消息處理過程的執(zhí)行狀態(tài)和指定消息上下文;另一方面這些操作與消息處理過程是密切相關的。軟中斷服務提供以下操作1、初始化軟中斷向量結構操作輸入?yún)?shù)軟中斷向量號參數(shù)屬性軟中斷處理過程描述可選屬性消息標識,處理階段和處理單元描述具體功能客戶端通過調用本操作發(fā)送軟中斷向量初始化消息,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的軟中斷向量初始化消息;步驟2生成新的軟中斷向量結構并設置為輸入軟中斷向量號,默認的全局消息,默認的所有處理階段和處理單元描述和輸入軟中斷處理過程描述;步驟3如果輸入消息標識為空,則設置跳轉至步驟5;步驟4如果輸入處理階段和處理單元描述不為空,則設置處理階段和處理單元描述;步驟5將新的軟中斷向量結構寫入軟中斷向量表;步驟6發(fā)送返回消息。
2、設置消息處理單元執(zhí)行策略操作輸入?yún)?shù)策略號參數(shù)屬性消息標識,處理階段和處理單元描述,策略描述具體功能客戶端通過調用本操作發(fā)送執(zhí)行策略初始化消息,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的執(zhí)行策略初始化消息;步驟2生成新的執(zhí)行策略結構并設置輸入策略號,消息標識,處理階段和處理單元描述和策略描述;步驟3將新的執(zhí)行策略結構寫入軟中斷請求映射表;步驟4發(fā)送返回消息。
3、外部軟中斷請求操作輸入?yún)?shù)軟中斷向量號可選屬性消息標識,處理階段和處理單元描述具體功能客戶端通過調用本操作發(fā)送軟中斷請求,軟中斷服務執(zhí)行的具體步驟如下
步驟1接收來自客戶端的軟中斷請求消息;步驟2生成新的軟中斷請求結構并設置為輸入軟中斷向量號,默認的全局消息,默認的所有處理階段和處理單元描述;步驟3如果輸入消息標識為空,則設置跳轉至步驟5;步驟4如果輸入處理階段和處理單元描述不為空,則設置處理階段和處理單元描述;步驟5將新的軟中斷請求結構寫入軟中斷請求映射表;步驟6發(fā)送返回消息。
4、消息內容讀寫1)讀消息頭內容操作輸入?yún)?shù)消息標識具體功能客戶端通過調用本操作發(fā)送讀消息頭內容請求,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的讀消息頭內容請求消息;步驟2匹配指定消息標識的內置操作映射表中讀消息頭操作;步驟3如果匹配成功,則運行該操作在指定消息上下文中讀消息頭內容,否則跳轉至步驟5;步驟4返回讀取的頭內容消息;步驟5返回匹配失敗消息。
2)設置消息頭內容操作輸入?yún)?shù)消息標識參數(shù)屬性消息頭信息具體功能客戶端通過調用本操作發(fā)送設置消息頭內容請求,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的設置消息頭內容請求消息;步驟2匹配指定消息標識的內置操作映射表中設置消息頭操作及其輸入消息頭參數(shù);步驟3如果匹配成功,則運行該操作在指定消息上下文中設置消息頭信息,否則跳轉至步驟5;步驟4返回設置成功消息;步驟5返回匹配失敗消息。
3)讀消息體內容操作調用參數(shù)消息標識具體功能輸入?yún)?shù)消息標識功能客戶端通過調用本操作發(fā)送讀消息體內容請求,軟中斷服務執(zhí)行的具體步驟步驟1接收來自客戶端的讀消息體內容請求消息;步驟2匹配指定消息標識的內置操作映射表中讀消息體操作;步驟3如果匹配成功,則運行該操作在指定消息上下文中讀消息體內容,否則跳轉至步驟5;步驟4返回讀取的體內容消息;步驟5返回匹配失敗消息。
4)設置消息體內容操作調用參數(shù)消息標識參數(shù)屬性消息體信息具體功能客戶端通過調用本操作發(fā)送設置消息體內容請求,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的設置消息體內容請求消息;步驟2匹配指定消息標識的內置操作映射表中設置消息體操作及其輸入消息體參數(shù);步驟3如果匹配成功,則運行該操作在指定消息上下文中設置消息體信息,否則跳轉至步驟5;步驟4返回設置成功消息;步驟5返回匹配失敗消息。
5)設置消息體元素操作調用參數(shù)消息標識參數(shù)屬性消息體中的某個元素信息具體功能客戶端通過調用本操作發(fā)送設置消息體元素請求,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的設置消息體元素請求消息;步驟2匹配指定消息標識的內置操作映射表中設置消息體元素操作及其輸入消息體參數(shù);步驟3如果匹配成功,則運行該操作在指定消息上下文中設置消息體該元素信息,否則跳轉至步驟5;步驟4返回設置成功消息;步驟5返回匹配失敗消息。
5、統(tǒng)一內置操作及調用參數(shù)包裝1)內置方法調用操作輸入?yún)?shù)方法名參數(shù)屬性消息標識,實例名描述,方法調用參數(shù)功能客戶端通過調用本操作發(fā)送內置方法調用請求,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的內置方法調用請求消息;步驟3根據(jù)輸入的消息標識和實例名描述獲得內置操作映射表中的運行實例;如果失敗,則跳轉步驟6;步驟3按索引順序匹配方法名和方法調用參數(shù);步驟4如果匹配成功,則運行該實例中內置方法調用,否則跳轉至步驟6;步驟5返回內置方法調用結果消息;步驟6返回失敗消息。
2)內置域值操作輸入?yún)?shù)域名參數(shù)屬性消息標識,實例名描述可選參數(shù)域值具體功能客戶端通過調用本操作發(fā)送內置域值調用請求,軟中斷服務執(zhí)行的具體步驟如下步驟1接收來自客戶端的內置域值調用請求消息;步驟2根據(jù)輸入的消息標識和實例名描述獲得內置操作映射表中的運行實例;如果失敗,則跳轉步驟6;步驟3按索引順序匹配域名,如果匹配不成功,跳轉至步驟6;步驟4如果沒有輸入域值,則讀取實例中該域值,否則修改該域值為輸入域值;如果操作不成功,則跳轉至步驟6;步驟5返回該域值消息;步驟6返回失敗消息。
本發(fā)明具有的優(yōu)點是通過統(tǒng)一的消息標識、可定制的軟中斷處理結構、內置操作調用結構、中斷分派機制、執(zhí)行策略以及軟中斷服務,為面向服務體系結構的相關消息處理過程,協(xié)議和規(guī)范的設計與實現(xiàn)提供了一種通用、靈活的軟中斷處理模型,進而提高消息處理過程的可靠性及外部事件處理能力。
本發(fā)明的特點有1、全局統(tǒng)一的面向服務體系結構中消息標識結構;2、可定制的消息處理過程軟中斷向量結構及其映射表;3、保留和恢復相關服務或服務組合活動中消息上下文和處理狀態(tài)的映射結構;4、消息上下文中內置操作和參數(shù)描述結構及其映射表;5、保留外部軟中斷請求、執(zhí)行策略和處理單元狀態(tài)的映射表;6、按消息標識和優(yōu)先級處理中斷請求;7、通過軟中斷服務動態(tài)維護和控制消息處理單元的執(zhí)行策略;8、對外提供傳送控制消息的軟中斷服務。
本發(fā)明的積極效果是提供消息層事件檢測、識別、分派和處理的軟中斷處理方法,并保證在事件處理完成后繼續(xù)執(zhí)行被中斷服務的能力,進而解決在多次多級服務調用過程中面臨的服務可控制和可中斷的問題,特別是面向服務體系結構中相關系統(tǒng)、處理模塊、協(xié)議、規(guī)范和服務設計;服務的可控制有利于提高消息處理過程的可靠性,如處理單元的等待,重試,替代,補償,可中斷有利于消息處理過程中所發(fā)生外部事件的及時響應和處理。
下面結合附圖和實例對本發(fā)明進一步說明。
圖1本發(fā)明的網(wǎng)格操作系統(tǒng)服務端的輸入和輸出消息處理示意圖。
圖2本發(fā)明的消息層軟中斷控制器結構及映射表圖。
圖3本發(fā)明的消息處理單元的局部狀態(tài)遷移。
圖4本發(fā)明的面向服務體系結構中消息層軟中斷處理方法流程圖。
具體實施例方式
圖1中,101傳輸層接收單元,102消息輸入流,103服務分派,104消息接收單元,105網(wǎng)程操作調用,106消息輸出流,107傳輸層發(fā)送單元,108傳輸層接收單元,109消息輸入流,110消息接收單元,111消息輸出流,112傳輸層發(fā)送單元,201消息上下文描述,202處理階段和處理單元描述,203軟中斷處理過程描述,204處理階段和處理單元描述;401寫軟中斷請求映射表,402讀軟中斷請求映射表,403刪除軟中斷請求。
在圖1中,用戶應用程序調用網(wǎng)程服務,網(wǎng)程服務端以輸入消息上下文的形式緩存的消息,經(jīng)過傳輸層接收單元(101),輸入消息流(102),服務分派(103),消息接收單元(104)等處理后到達網(wǎng)程操作(105)并形成網(wǎng)程上下文;然后網(wǎng)程調用物理服務,以輸出消息上下文緩存的消息經(jīng)過輸出流(106),傳輸層發(fā)送單元(107)等處理后到到達物理服務;類似的處理過程經(jīng)傳輸層接收單元(108),消息輸入流(109),消息接收單元(110)把消息處理結果由物理服務端傳送給網(wǎng)程;網(wǎng)程操作調用(105)把處理結果經(jīng)消息輸出流(111),傳輸層發(fā)送單元(112)等返回給用戶。
在圖2中,消息發(fā)送端通過軟中斷初始化請求調用接收端的軟中斷向量初始化服務初始化軟中斷處理結構,軟中斷向量映射由消息標識,向量號,處理階段和處理單元描述(202)和軟中斷處理過程描述(203)組成;發(fā)送端發(fā)送的輸出消息和接收端接收的輸入消息構成一個有效的消息處理執(zhí)行過程,當軟中斷調用請求發(fā)生時(通過調用軟中斷服務),消息處理過程和處理單元邏輯通過當前消息上下文和軟中斷向量映射來處理所發(fā)生的請求;內置操作映射由消息標識,消息上下文描述(201),索引,操作名和參數(shù)表組成;軟中斷請求映射由消息標識,向量號,處理階段和處理單元描述(204),執(zhí)行策略和處理狀態(tài)組成。
在圖3中,在一個處理階段中,MPU使能操作使處理單元進入準備狀態(tài)(觸發(fā)邊界);如果有軟中斷請求發(fā)生,首先凍結(MPU凍結)該處理單元使其進入凍結狀態(tài),然后根據(jù)當前處理過程的軟中斷請求列表,中斷分派按照優(yōu)先級從高到低的順序調用軟中斷處理過程;待處理結束后喚醒該處理單元,并使其恢復(MPU恢復)到準備狀態(tài);當相關的軟中斷請求處理全部完成后,觸發(fā)操作(MPU觸發(fā))使該處理單元進入執(zhí)行狀態(tài),根據(jù)執(zhí)行策略調用該處理單元;如果處理單元失效,該處理過程會調用終止處理程序(MPU終止)并進入失敗狀態(tài)。
圖4的面向服務體系結構中消息層軟中斷處理方法流程,一種為面向服務體系結構中軟中斷處理方法,其主要特征是從外部事件的檢測、識別、分派和處理時刻進行消息層中斷事件處理,并保證在事件處理完成后繼續(xù)執(zhí)行被中斷服務的能力,實現(xiàn)在多次多級服務調用過程中服務可控制和可中斷處理,特別是面向服務體系結構中相關系統(tǒng)、處理模塊、協(xié)議、規(guī)范和服務設計,進而提高系統(tǒng)運行的可靠性及外部事件處理能力,其具體步驟如下步驟1軟中斷服務處理過程1)從客戶端接收調用消息后調用軟中斷服務消息處理;2)如果調用操作是軟中斷初始化操作,如初始化軟中斷向量結構操作則將軟中斷向量結構內容寫入軟中斷向量表;3)如果是軟中斷請求,則將軟中斷向量結構內容寫入軟中斷請求映射表,否則返回請求失敗消息;步驟2當前執(zhí)行的應用服務分派和識別軟中斷請求過程1)保存當前處理階段和處理單元描述信息;2)在處理單元邊界判斷本單元是否可中斷;如果不可中斷,跳轉到步驟6;3)分派軟中斷請求過程第一次讀取軟中斷映射表中優(yōu)先級最高的一個軟中斷請求,然后每次讀取同一優(yōu)先級的下一個請求,當沒有同一優(yōu)先級請求后降低優(yōu)先級,繼續(xù)讀取下一請求,直到所有請求讀完不再繼續(xù);4)通過消息標識,處理階段和處理過程匹配,識別所讀取的軟中斷請求是否屬于所有服務(全局);如果是,則跳轉步驟3;5)通過消息標識,處理階段和處理過程匹配,識別所讀取的軟中斷請求是否屬于本服務;如果是,則跳轉步驟3;6)通過消息標識,處理階段和處理過程匹配,識別所讀取的軟中斷請求是否屬于本單元;如果不是,則跳轉步驟4;步驟3調用軟中斷處理過程1)保存當前消息上下文;2)從軟中斷請求映射表中刪除當前處理軟中斷請求;3)從軟中斷向量映射表中讀取向量結構;4)根據(jù)向量結構中處理過程描述,調用軟中斷處理過程;5)恢復保存的消息上下文;步驟4判斷是否繼續(xù)讀取下一軟中斷請求;如果是,跳轉至步驟2-3);步驟5確定處理單元執(zhí)行策略過程1)通過軟中斷請求映射表,確定本處理單元執(zhí)行策略;2)判斷本處理單元是否允許立即執(zhí)行,如果不允許,跳轉步驟7;步驟6執(zhí)行本處理單元;步驟7在本處理單元處服務等待后續(xù)觸發(fā);
步驟8判斷本單元是否為本處理階段的最后一個處理單元,如果不是讀取下一處理單元描述信息,跳轉至步驟2-2);步驟9判斷本處理階段是否為本服務最后一個處理階段,如果是讀取下一處理階段第一個處理單元的描述信息,跳轉至步驟2-2);步驟10結束本應用服務。
在GOS實現(xiàn)的客戶端和服務端輸入消息和輸出消息處理中,每一個輸出流、輸入流、傳輸層發(fā)送和傳輸層接收等都構成一個處理階段。在服務端這些處理階段可以是屬于全局的、服務的和操作的,一個消息處理過程中的階段是通過計算所有層次的消息處理單元產生的。以一個消息層調試過程為例,給出采用消息層軟中斷處理實現(xiàn)的斷點設置、查看或修改消息內容以及陷入調試執(zhí)行的功能,具體如下1、設置斷點客戶端調用setMPUPolicy操作指定消息標識、處理階段和處理單元發(fā)送斷點設置消息;2、消息接收端接收到斷點設置消息后,在軟中斷請求列表中對相應處理階段和處理單元設置斷點;3、當服務執(zhí)行到該斷點時,保留消息上下文;4、暫停消息處理過程;5、查看或修改消息內容客戶端調用軟中斷服務提供的消息內容讀或寫操作或者消息上下文操作查看或修改相應的消息內容;6、調試執(zhí)行客戶端調用setMPUPolicy操作對指定的暫停消息處理過程(以消息標識來識別)發(fā)送陷入調試消息;7、恢復被保存的消息上下文;
8、從斷點處繼續(xù)執(zhí)行消息處理過程。
權利要求
1.一種為面向服務體系結構中軟中斷處理方法,其主要特征是從外部事件的檢測、識別、分派和處理時刻進行消息層中斷事件處理,并保證在事件處理完成后繼續(xù)執(zhí)行被中斷服務的能力,實現(xiàn)在多次多級服務調用過程中服務可控制和可中斷處理,特別是面向服務體系結構中相關系統(tǒng)、處理模塊、協(xié)議、規(guī)范和服務設計,進而提高系統(tǒng)運行的可靠性及外部事件處理能力,其具體步驟如下步驟1軟中斷服務處理過程1)從客戶端接收調用消息后調用軟中斷服務消息處理;2)如果調用操作是軟中斷初始化操作,如初始化軟中斷向量結構操作則將軟中斷向量結構內容寫入軟中斷向量表;3)如果是軟中斷請求,則將軟中斷向量結構內容寫入軟中斷請求映射表,否則返回請求失敗消息;步驟2當前執(zhí)行的應用服務分派和識別軟中斷請求過程1)保存當前處理階段和處理單元描述信息;2)在處理單元邊界判斷本單元是否可中斷;如果不可中斷,跳轉到步驟6;3)分派軟中斷請求過程第一次讀取軟中斷映射表中優(yōu)先級最高的一個軟中斷請求,然后每次讀取同一優(yōu)先級的下一個請求,當沒有同一優(yōu)先級請求后降低優(yōu)先級,繼續(xù)讀取下一請求,直到所有請求讀完不再繼續(xù);4)通過消息標識,處理階段和處理過程匹配,識別所讀取的軟中斷請求是否屬于所有服務;如果是,則跳轉步驟3;5)通過消息標識,處理階段和處理過程匹配,識別所讀取的軟中斷請求是否屬于本服務;如果是,則跳轉步驟3;6)通過消息標識,處理階段和處理過程匹配,識別所讀取的軟中斷請求是否屬于本單元;如果不是,則跳轉步驟4;步驟3調用軟中斷處理過程1)保存當前消息上下文;2)從軟中斷請求映射表中刪除當前處理軟中斷請求;3)從軟中斷向量映射表中讀取向量結構;4)根據(jù)向量結構中處理過程描述,調用軟中斷處理過程;5)恢復保存的消息上下文;步驟4判斷是否繼續(xù)讀取下一軟中斷請求;如果是,跳轉至步驟2-3);步驟5確定處理單元執(zhí)行策略過程1)通過軟中斷請求映射表,確定本處理單元執(zhí)行策略;2)判斷本處理單元是否允許立即執(zhí)行,如果不允許,跳轉步驟7;步驟6執(zhí)行本處理單元;步驟7在本處理單元處服務等待后續(xù)觸發(fā);步驟8判斷本單元是否為本處理階段的最后一個處理單元,如果不是讀取下一處理單元描述信息,跳轉至步驟2-2);步驟9判斷本處理階段是否為本服務最后一個處理階段,如果是讀取下一處理階段第一個處理單元的描述信息,跳轉至步驟2-2);步驟10結束本應用服務。
2.如權利要求1所述的方法,其特征在于面向服務體系結構中消息處理過程的消息標識結構的設計。
3.如權利要求1所述的方法,其特征在于面向服務系統(tǒng)中消息處理過程的可定制的軟中斷處理結構及其映射表設計,軟中斷處理結構保存指定消息處理過程中可定制的軟中斷處理過程、處理階段和處理單元描述信息。
4.如權利要求1所述的方法,其特征在于面向服務系統(tǒng)中消息處理過程中消息標識到輸入或輸出消息上下文的映射結構設計。
5.如權利要求1所述的方法,其特征在于面向服務系統(tǒng)中消息處理過程的內置操作調用結構及其映射表設計。
6.如權利要求1所述的方法,其特征在于面向服務系統(tǒng)中消息處理過程的基于消息標識和優(yōu)先級的中斷分派機制設計。
7.如權利要求1所述的方法,其特征在于面向服務系統(tǒng)中消息處理單元的執(zhí)行策略設計。
8.如權利要求1所述的方法,其特征在于實現(xiàn)消息處理中異步控制消息的傳送的軟中斷服務,提供軟中斷向量初始化操作、軟中斷請求和處理操作,以及控制指定消息處理過程的執(zhí)行狀態(tài)和消息上下文操作。
全文摘要
一種面向服務體系結構中消息層軟中斷處理方法,該方法從外部事件的檢測、識別、分派和處理時刻進行消息層中斷事件處理,如動態(tài)的遠程跟蹤調試服務,通過消息標識結構和消息層軟中斷控制器,解決在多次多級服務調用過程中面臨的服務可控制和可中斷的問題,提供了統(tǒng)一的消息標識結構、可定制的軟中斷處理結構、內置操作調用結構、中斷分派機制、處理單元執(zhí)行策略和軟中斷服務。在面向服務系統(tǒng)中,服務的可控制能夠提高消息處理過程的可靠性,如消息處理單元的等待,重試,替代,補償?shù)?,可中斷能夠及時響應和處理系統(tǒng)和消息處理過程中所發(fā)生外部事件。
文檔編號H04L29/02GK1794184SQ20051013077
公開日2006年6月28日 申請日期2005年12月28日 優(yōu)先權日2005年12月28日
發(fā)明者岳強, 徐志偉, 李偉 申請人:中國科學院計算技術研究所