午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

分層地分解消息的制作方法

文檔序號:6360292閱讀:156來源:國知局
專利名稱:分層地分解消息的制作方法
分層地分解消息背景I.背景和相關技術計算機系統(tǒng)和相關技術影響社會的許多方面。的確,計算機系統(tǒng)處理信息的能力已轉變了人們生活和工作的方式。計算機系統(tǒng)現(xiàn)在通常執(zhí)行在計算機系統(tǒng)出現(xiàn)以前手動執(zhí)行的許多任務(例如,文字處理、日程安排和會計等)。最近,計算機系統(tǒng)彼此耦合并耦合到其他電子設備以形成計算機系統(tǒng)和其他電子設備可以在其上傳輸電子數(shù)據(jù)的有線和無線計算機網(wǎng)絡。因此,許多計算任務的執(zhí)行分布在多個不同的計算機系統(tǒng)和/或多個不同的計算環(huán)境中。為了在發(fā)送消息時優(yōu)化帶寬,將一組消息一起進行批量處理是普遍的。這一過程有時候被稱為消息組合。類似地,取出單個消息并將其轉換回一組消息的解析過程有時候被稱為分解。在某些環(huán)境中,消息的批量處理可進一步被嵌套,以使得較小的批次被包含在較大的批次內。不幸的是,消息的分層嵌套對于開發(fā)分解處理器而言引入了相當大的困難。例如,當多個應用消息已經(jīng)被分組成單個傳輸消息時,分解的任務是提取內層的應用消息以使得它們可被呈現(xiàn)給軟件棧的較高層。然而,在某些環(huán)境中,分組被多層化。電子數(shù)據(jù)交換(“EDI”)協(xié)議是其中消息結構被多次嵌套的一個示例。多次嵌套可極大地使分解過程復雜化。 許多消息模式使用會話,其由一組消息交換構成。從而,消息分解的任務可包括從單個消息(例如,外層消息)中創(chuàng)建出消息會話。此外,循環(huán)分解(例如,以獲得嵌套的消息)可能要求從現(xiàn)有的會話中創(chuàng)建出較長的會話。然而,許多消息通信模式欠缺關于子會話的任何概念,從而使得這一過程變得困難。必須按順序地執(zhí)行各種獨特的功能以構建分布式消息通信系統(tǒng),包括數(shù)據(jù)的物理傳輸、實現(xiàn)消息交換協(xié)議的狀態(tài)機、以及消息的格式化。這些消息通信功能一起常常被稱為消息通信棧。許多消息通信系統(tǒng)將構成消息通信棧的這些不同的功能耦合在一起。從而,每當一個獨特的功能改變,所有其他相關聯(lián)的功能出于兼容性也必須被重新編寫。例如,這種耦合可能要求當傳輸介質改變時消息格式化代碼被重新編寫,即使新的傳輸介質在語義上與舊的傳輸介質是相同的。某些軟件框架提供了對于考慮消息通信棧的實現(xiàn)以使得離散功能可被有效地實現(xiàn)為獨立的組件的抽象。然而,現(xiàn)有的框架幾乎(即使有的話)不具有對便于構建會話格式化邏輯的抽象的支持。欠缺會話格式化邏輯抽象對于接收側的分解而言問題尤其嚴重。取決于嵌套的消息的格式和安排,會話格式化邏輯可能改變并且在接收消息(例如,外層消息)時可能是未知的。然而,分解過程可能固定于特定的功能集,從而無法處理嵌套的消息。簡要概述本發(fā)明涉及用于分層地分解消息的方法、系統(tǒng)和計算機程序產(chǎn)品。本發(fā)明的各實施例包括分解一個或多個消息。在消息分解的某些實施例中,從一個或多個分解器組件中選出的分解器組件從組件的分層安排中緊靠所述分解器組件下一層的組件接收消息。所述消息包含在所述消息內的一個或多個嵌套消息。所述分解器組件向幀調節(jié)器廠指示所述消息的消息類型。幀調節(jié)器廠向分解器組件提供幀調節(jié)器。幀調節(jié)器用于解析所述消息。所述分解器組件向所述組件的分層安排中緊靠著所述分解器組件上一層的組件指示會話的開始。所述會話位于所述分解器組件和緊靠著所述分解器組件上一層的組件之間。對于所述消息中的一個或多個嵌套消息中的每一個消息,幀調節(jié)器解析所述消息以從所述消息中包含的一個或多個嵌套消息中標識出下一嵌套的消息。對于所述消息中的一個或多個嵌套消息中的每一個消息,所述分解器組件將被標識的下一嵌套的消息發(fā)送給所述會話。所述分解器組件向緊靠著所述分解器組件上一層的組件指示所述會話的結束。在消息分解的其他實施例中,第一分解器組件從組件的分層安排中緊靠著所述第一分解器組件下一層的組件接收消息。所述消息包含在所述消息內的一個或多個嵌套消息。所述第一分解器組件向所述組件的分層安排中緊靠著所述第一分解器組件上一層的組件指示會話的開始。所述會話位于所述第一分解器組件和緊靠著所述第一分解器組件上一·層的組件之間。所述第一分解器組件將所述消息內的一個或多個嵌套消息之一發(fā)送給所述會話。第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話開始的指示。所述第一會話位于所述第二分解器組件和緊靠著所述第二分解器組件下一層的組件之間。所述第一會話響應于所述第一分解器組件所指示的會話。所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收所述第一會話上的消息。所述消息包含在所述消息內的一個或多個嵌套消息。所述消息響應于由所述第一分解器組件發(fā)送的嵌套消息。所述第二分解器組件向所述組件的分層安排中緊靠著所述第二分解器組件上一層的組件指示第二會話的開始。所述第二會話位于所述第二分解器組件和緊靠著所述第二分解器組件上一層的組件之間。所述第二分解器組件在向緊靠著所述第二分解器組件上一層的組件指示所述第二會話的開始之后,向其發(fā)送所述消息中的一個或多個嵌套消息中的每一個(包括最后一個嵌套消息)。發(fā)送一個或多個嵌套消息包括,所述第二分解器組件解析所述消息以從所述消息中包含的一個或多個嵌套消息中標識出下一嵌套的消息。發(fā)送一個或多個嵌套消息還包括,所述第二分解器組件將被標識的下一嵌套消息發(fā)送給所述第二會話。所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話結束的指示。所述第二分解器組件在向所述第二會話發(fā)送最后嵌套的消息之后,向緊靠著所述第二分解器組件上一層的組件指示所述第二會話的結束。在接收所述第一會話結束的指示之后發(fā)送所述第二會話結束的指示。在另外一些實施例中,創(chuàng)建用于分解應用的消息的消息棧。消息通信運行時接收消息通信棧的聲明性規(guī)范。聲明性規(guī)范規(guī)定了要被包括在消息通信棧中用于分解應用的消息的組件。聲明性規(guī)范包括傳輸組件規(guī)范、分解器組件的一個或多個實例的規(guī)范、以及一個或多個幀調節(jié)器組件規(guī)范。運行時從聲明性規(guī)范中創(chuàng)建消息棧。創(chuàng)建運行時包括形成執(zhí)行組件的分層線性集合。執(zhí)行組件的分層線性集合包括Ca)下層傳輸組件,(b) 一個或多個分解器組件,以及(C)上層應用組件。下層傳輸組件根據(jù)傳輸組件規(guī)范來配置。一個或多個分解器組件根據(jù)分解器組件規(guī)范來配置。每一個分解器組件分別與分解器組件的實例之一的規(guī)范相對應。更新層應用組件對應于應用。當組件被添加到執(zhí)行組件的分層線性集合時,消息通信運行時攜帶共享上下文。對于一個或多個幀調節(jié)器組件規(guī)范中的每一個,消息運行時將幀調節(jié)器組件規(guī)范添加到與分解器組件之一相對應的共享上下文的一部分。分解器組件之一是利用根據(jù)幀調節(jié)器組件規(guī)范來配置的幀調節(jié)器組件來解析消息的分解器組件。對于每一個分解器組件,消息通信運行時在與分解器組件之一相對應的共享上下文的一部分中創(chuàng)建幀調節(jié)器廠。幀調節(jié)器廠被配置成從分解器組件接收消息,并且向分解器組件返回用于所述消息的幀調節(jié)器的組件。幀調節(jié)器組件用于包含在分解器組件內以解析消息從而標識出所述消息中包含的嵌套消息。幀調節(jié)器組件根據(jù)添加到與分解器組件相對應的共享上下文的一部分的幀調節(jié)器組件規(guī)范來配置。每一個分解器組件被配置成從執(zhí)行組件的分層線性集合中緊靠著所述分解器組 件下一層的組件接收消息。對于每一個接收到的消息,分解器組件用接收到的消息來調用與所述分解器組件相對應的幀調節(jié)器廠、從幀調節(jié)器廠獲得幀調節(jié)器組件以解析消息從而標識任何嵌套的消息、以及將任何嵌套的消息發(fā)送至執(zhí)行組件的分層線性集合中緊靠著所述分解器組件上一層的組件。提供本發(fā)明內容以便以簡化的形式介紹將在以下的具體實施例中進一步描述的一些概念。本發(fā)明內容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。本發(fā)明的附加特征和優(yōu)點將在以下描述中敘述,且其一部分根據(jù)本描述將是顯而易見的,或可通過對本發(fā)明的實踐來獲知。本發(fā)明的特征和優(yōu)點可通過在所附權利要求書中特別指出的工具和組合來實現(xiàn)和獲得。本發(fā)明的這些和其他特征將通過以下描述和所附權利要求書變得更加顯而易見,或可通過對下文中所述的本發(fā)明的實踐來領會。附圖簡述為了描述可獲得本發(fā)明的上述和其他優(yōu)點和特征的方式,將通過參考附圖中示出的本發(fā)明的具體實施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述??梢岳斫?,這些附圖僅描述本發(fā)明的典型實施例,從而不被認為是對其范圍的限制,本發(fā)明將通過使用附圖用附加特征和細節(jié)來描述和說明,在附圖中圖I示出了便于分層地分解消息的示例計算機架構。圖2示出了用于分層地分解消息的示例方法的流程圖。圖3示出了便于分層地分解消息的另一示例計算機架構。圖4示出了用于分層地分解消息的另一示例方法的流程圖。圖5示出了消息通信流水線規(guī)范以及相對應的消息通信組件的分層安排。詳細描述本發(fā)明涉及用于分層地分解消息的方法、系統(tǒng)和計算機程序產(chǎn)品。本發(fā)明的各實施例包括分解一個或多個消息。在消息分解的某些實施例中,從一個或多個分解器組件中選出的分解器組件從組件的分層安排中緊靠著所述分解器組件下一層的組件接收消息。所述消息包含在所述消息內的一個或多個嵌套消息。
所述分解器組件向幀調節(jié)器廠指示所述消息的消息類型。幀調節(jié)器廠創(chuàng)建分解器組件內包含的幀調節(jié)器。幀調節(jié)器用于解析所述消息。所述分解器組件向所述組件的分層安排中緊靠著所述分解器組件上一層的組件指示會話開始。所述會話位于所述分解器組件和緊靠著所述分解器組件上一層的組件之間。對于所述消息中的一個或多個嵌套消息中的每一個消息,幀調節(jié)器解析所述消息以從所述消息中包含的一個或多個嵌套消息中標識出下一嵌套的消息。對于所述消息中的一個或多個嵌套消息中的每一個消息,所述分解器組件將被標識的下一嵌套的消息發(fā)送給所述會話。所述分解器組件向緊靠著所述分解器組件上一層的組件指示所述會話的結束。在消息分解的其他實施例中,第一分解器組件從組件的分層安排中緊靠著所述第一分解器組件下一層的組件接收消息。所述消息包含在所述消息內的一個或多個嵌套消息。所述第一分解器組件向所述組件的分層安排中緊靠著所述第一分解器組件上一層的組件指示會話的開始。所述會話位于所述第一分解器組件和緊靠著所述第一分解器組件上一層的組件之間。所述第一分解器組件將所述消息內的一個或多個嵌套消息之一發(fā)送給所述會話。
第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話開始的指示。所述第一會話位于所述第二分解器組件和緊靠著所述第二分解器組件下一層的組件之間。所述第一會話響應于所述第一分解器組件所指示的會話。所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收所述第一會話上的消息。所述消息包含在所述消息內的一個或多個嵌套消息。所述消息響應于由所述第一分解器組件發(fā)送的嵌套消息。所述第二分解器組件向所述組件的分層安排中緊靠著所述第二分解器組件上一層的組件指示第二會話的開始。所述第二會話位于所述第二分解器組件和緊靠著所述第二分解器組件上一層的組件之間。所述第二分解器組件在向緊靠著所述第二分解器組件上一層的組件指示所述第二會話的開始之后,向其發(fā)送所述消息中的一個或多個嵌套消息中的每一個(包括最后一個嵌套消息)。發(fā)送一個或多個嵌套消息包括,所述第二分解器組件解析所述消息以從所述消息中包含的一個或多個嵌套消息中標識出下一嵌套的消息。發(fā)送一個或多個嵌套消息還包括,所述第二分解器組件將被標識的下一嵌套消息發(fā)送給所述第二會話。所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話結束的指示。所述第二分解器組件在向所述第二會話發(fā)送最后嵌套的消息之后,向緊靠著所述第二分解器組件上一層的組件指示所述第二會話的結束。在接收所述第一會話結束的指示之后發(fā)送所述第二會話結束的指示。在另外一些實施例中,創(chuàng)建用于分解應用的消息的消息棧。消息通信運行時接收消息通信棧的聲明性規(guī)范。聲明性規(guī)范規(guī)定了要被包括在消息通信棧中用于分解應用的消息的組件。聲明性規(guī)范包括傳輸組件規(guī)范、分解器組件的一個或多個實例的規(guī)范、以及一個或多個幀調節(jié)器組件規(guī)范。運行時從聲明性規(guī)范中創(chuàng)建消息棧。創(chuàng)建運行時包括形成執(zhí)行組件的分層線性集合。執(zhí)行組件的分層線性集合包括Ca)下層傳輸組件,(b) 一個或多個分解器組件,以及(C)上層應用組件。下層傳輸組件根據(jù)傳輸組件規(guī)范來配置。一個或多個分解器組件根據(jù)分解器組件規(guī)范來配置。每一個分解器組件分別與分解器組件的實例之一的規(guī)范相對應。更新層應用組件對應于應用。當組件被添加到執(zhí)行組件的分層線性集合時,消息通信運行時攜帶共享上下文。對于一個或多個幀調節(jié)器組件規(guī)范中的每一個,消息運行時將幀調節(jié)器組件規(guī)范添加到與分解器組件之一相對應的共享上下文的一部分。分解器組件之一是利用根據(jù)幀調節(jié)器組件規(guī)范來配置的幀調節(jié)器組件來解析消息的分解器組件。對于每一個分解器組件,消息通信運行時在與分解器組件之一相對應的共享上下文的一部分中創(chuàng)建幀調節(jié)器廠。幀調節(jié)器廠被配置成從分解器組件接收消息,并且向分解器組件返回用于所述消息的幀調節(jié)器的組件。幀調節(jié)器組件用于包含在分解器組件內以解析消息從而標識出所述消息中包含的嵌套消息。幀調節(jié)器組件根據(jù)添加到與分解器組件相對應的共享上下文的一部分的幀調節(jié)器組件規(guī)范來配置。
每一個分解器組件被配置成從執(zhí)行組件的分層線性集合中緊靠著所述分解器組件下一層的組件接收消息。對于每一個接收到的消息,分解器組件用接收到的消息來調用 與所述分解器組件相對應的幀調節(jié)器廠、從幀調節(jié)器廠獲得幀調節(jié)器組件以解析消息從而標識任何嵌套的消息、以及將任何嵌套的消息發(fā)送至執(zhí)行組件的分層線性集合中緊靠著所述分解器組件上一層的組件。在某些實施例中,可重用幀調節(jié)器組件可被嵌入在分解器組件內以檢測消息中各個段之間的邊界從而將單個消息變換成子消息流。幀調節(jié)器和分解器可在消息處理分層結構中組成,從而允許它們與其他消息通信組件一起被使用并且支持多個分解器的堆疊以拆解分層結構化的消息批次。分解器的分層結構可完全從一個或多個統(tǒng)一的規(guī)范中構造。本發(fā)明的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機硬件,如以下更詳細討論的。本發(fā)明范圍內的各實施例還包括用于承載或存儲計算機可執(zhí)行指令和/或數(shù)據(jù)結構的物理和其他計算機可讀介質。這樣的計算機可讀介質可以是可由通用或專用計算機系統(tǒng)訪問的任何可用介質。存儲計算機可執(zhí)行指令的計算機可讀介質是物理存儲介質。承載計算機可執(zhí)行指令的計算機可讀介質是傳輸介質。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種顯著不同的計算機可讀介質計算機存儲介質和傳輸介質。計算機存儲介質包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的任何其他介質?!熬W(wǎng)絡”被定義為允許在計算機系統(tǒng)和/或模塊和/或其他電子設備之間傳輸電子數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路。當信息通過網(wǎng)絡或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當?shù)匾暈閭鬏斀橘|。傳輸介質可包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結構形式的所需程序代碼裝置且可由通用或專用計算機訪問的網(wǎng)絡和/或數(shù)據(jù)鏈路。上述的組合也應被包括在計算機可讀介質的范圍內。此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結構形式的程序代碼裝置可從傳輸介質自動傳輸?shù)接嬎銠C存儲介質(或反之亦然)。例如,通過網(wǎng)絡或數(shù)據(jù)鏈路接收到的計算機可執(zhí)行指令或數(shù)據(jù)結構可被緩存在網(wǎng)絡接口模塊(例如,“NIC”)內的RAM中,然后最終被傳輸?shù)接嬎銠C系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質。因而,應當理解,計算機存儲介質可被包括在還利用(或甚至主要利用)傳輸介質的計算機系統(tǒng)組件中。計算機可執(zhí)行指令例如包括,當在處理器處執(zhí)行時使通用計算機、專用計算機、或專用處理設備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現(xiàn)權利要求的示例形式而公開的。本領域的技術人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設備、網(wǎng)絡PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可在其中通過 網(wǎng)絡鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務的分布式系統(tǒng)環(huán)境中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠程存儲器存儲設備二者中。圖I示出了便于分層地分解消息的示例計算機架構100。參考

圖1,計算機架構100包括下層組件101、分解器104、幀調節(jié)器廠106、以及上層組件107。所描繪的組件中的每一個可通過系統(tǒng)總線和/或諸如例如局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)和甚至因特網(wǎng)等網(wǎng)絡彼此連接。因此,所描繪的組件中的每一個以及任何其他連接的計算機系統(tǒng)及其組件都可以創(chuàng)建消息相關數(shù)據(jù)并通過網(wǎng)絡交換消息相關數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議,諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“ SMTP )等)?!比缢枥L的,下層組件101包括通信介質102 (例如,下層傳輸組件)和可任選的分解器103。一般地,消息在通信介質102上接收。消息可任選地通過下層組件101的其他組件(包括分解器103)來向上傳遞。分解器103可以是被可任選地包括在下層組件101中的一個或多個分解器之一。從而,可能的情況是消息從通信介質102被直接傳遞至分解器104。另選地,消息可從通信介質102通過被包括在下層組件101中的一個或多個可任選的分解器來傳遞。最后一個可任選的分解器隨后將消息(或其部分)傳遞至分解器104。在通過下層組件101進行傳遞之后,消息(或其至少一部分)被向上傳遞至分解器104。在接收到消息時,分解器104向幀調節(jié)器廠106指示消息類型。在某些實施例中,分解器104確定消息類型并將消息類型發(fā)送給幀調節(jié)器廠106。在其他實施例中,分解器104將消息發(fā)送給幀調節(jié)器廠106而幀調節(jié)器廠106確定消息類型。響應于接收到消息類型,幀調節(jié)器廠106加載分解器104內包含的幀調節(jié)器。分解器104使用幀調節(jié)器來訪問任何與接收到的消息嵌套的消息。任何被訪問的嵌套消息被單獨地向上傳遞至上層組件107。當最后一個嵌套消息被訪問并且被向上傳遞至上層組件107時,所包含的幀調節(jié)器可被銷毀。如所描繪的,上層組件107包括應用109和可任選的分解器108。一般地,上層組件107從分解器104接收消息。消息可任選地通過上層組件107的其他組件(包括分解器108)被向上傳遞。分解器108可以是被可任選地包括在上層組件107中的一個或多個分解器之一。消息(或其至少一部分)被遞送至應用109。諸如例如分解器103和109之類的其他可任選地包括的分解器還可利用幀調節(jié)器廠106來訪問嵌套消息。被訪問的嵌套消息隨后可被單獨地向上傳遞至上層組件。由此,多次嵌套的消息可在應用處被訪問和處理。圖2示出了用于分層地分解消息的示例方法200的流程圖。方法200將參考計算機架構100的組件和數(shù)據(jù)來描述。方法200包括,從一個或多個分解器組件中選出的分解器組件從組件的分層安排中緊靠著所述分解器組件下一層的組件接收消息的動作,所述消息包含所述消息內的一個或多個嵌套消息(動作201)。例如,分解器104可從下層組件101中的組件接收消息121。在某些實施例中,分解器104直接從通信介質102接收消息。在其他實施例中,分解器104從分解器103或者被包括在下層組件101中的某一其他分解器接收消息。如所描繪的,消息121包含嵌套消息121AU21B等。
然而,消息121 (以及其他消息)實質上可具有任何嵌套級別。消息可包括包含深度嵌套的消息的分層級別的批量處理的電子數(shù)據(jù)交換(EDI)消息。方法200包括分解器組件向幀調節(jié)器廠指示消息的消息類型的動作(動作202)。例如,分解器140可向幀調節(jié)器廠106指示(消息122的)消息類型123。消息類型123可以是由分解器104確定的消息類型。另選地,消息類型123可由幀調節(jié)器廠106在接收到消息122時確定。方法200包括幀調節(jié)器廠創(chuàng)建包含在分解器組件內的幀調節(jié)器的動作,所述幀調節(jié)器用于解析消息(動作203)。例如,幀調節(jié)器廠106可創(chuàng)建包含在分解器104內的幀調節(jié)器111。幀調節(jié)器111被配置成解析消息121。方法200包括,分解器組件向組件的分層安排中緊靠著所述分解器組件上一層的組件指示會話開始的動作,所述會話位于所述分解器組件和緊靠著所述分解器組件上一層的組件之間(動作204)。例如,分解器104可向上層組件107中的組件發(fā)送會話開始(SoS)141。SoS 141可被發(fā)送至被包括在上層組件107中的分解器組件,諸如例如,被發(fā)送至分解器108。另選地,SoS 141可被發(fā)送至應用109。作為響應,可適當?shù)卦诜纸馄?04和上層組件107中的另一組件之間,或者在分解器104和應用109之間建立會話。對于消息中的一個或多個嵌套消息中的每一個消息(包括最后一個嵌套消息),并且在指示會話開始之后,方法200包括,幀調節(jié)器解析消息以從消息內包含的一個或多個嵌套消息中標識出下一嵌套消息的動作(動作205),以及分解器組件將被標識的下一嵌套消息發(fā)送至會話的動作(動作206)。例如,幀調節(jié)器111可解析消息121以標識消息121A。分解器104隨后可將消息121A發(fā)送至上層組件,不管其是另一分解器還是應用109。接著,幀調節(jié)器111可解析消息121以標識消息121B。分解器104隨后可將消息121B發(fā)送至上層組件,不管其是另一分解器還是應用109。這可繼續(xù)直到消息121中包含的最后一個嵌套消息被標識并被發(fā)送至上層組件。在將消息內的最后一個嵌套消息發(fā)送至會話之后,幀調節(jié)器可被銷毀。例如,在分解器104將消息121內的最后一個嵌套消息發(fā)送至上層組件之后,幀調節(jié)器111可被銷毀。方法200包括,分解器向緊靠著所述分解器組件上一層的組件指示會話結束的動作(動作207)。例如,分解器104可將會話結束(EoS) 142發(fā)送至上層組件107中的組件,諸如例如,發(fā)送至分解器108、發(fā)送至應用109。還可能的情況是,下層組件101中的組件(分解器或通信介質102)將會話開始的指示發(fā)送給分解器104。例如,下層組件101中的組件可將會話開始(SoS)131發(fā)送至分解器104。作為響應,可在下層組件和分解器104之間建立會話。消息121可從下層組件通過會話被發(fā)送至分解器104。也可在下層組件和分解器104之間的會話上發(fā)送一個或多個其他消息。例如,消息122可從下層組件被發(fā)送至分解器104。如所描繪的,消息122包含嵌套消息122AU22B等。在接收到消息122時,分解器104向幀調節(jié)器廠106指示消息122的消息類型。例如,分解器104可將消息類型124發(fā)送至幀調節(jié)器廠106。作為響應,幀調節(jié)器廠106可創(chuàng)建包含在分解器104內的幀調節(jié)器112。對于消息122中包含的每一個嵌套消息,幀調節(jié)器112可解析消息122以標識下 一嵌套消息,并且將被標識的下一嵌套消息發(fā)送至上層組件107中的組件。例如,幀調節(jié)器112可解析消息122以標識消息122A。分解器104隨后可將消息122A發(fā)送至上層組件,不管其是另一分解器還是應用109。接著,幀調節(jié)器112可解析消息122以標識消息122B。分解器104隨后可將消息122B發(fā)送至上層組件,不管其是另一分解器還是應用109。這可繼續(xù)直到消息122中包含的最后一個嵌套消息被標識并被發(fā)送至上層組件。當下層組件不再具有供分解器104的消息時,下層組件可指示下層組件和分解器104之間的會話結束。例如,下層組件101中的下層組件可將會話結束(EoS) 132發(fā)送至分解器104。分解器104可接收EoS 132。EoS 132向分解器104指示,下層組件不再具有供分解器104的消息。作為對EoS 132的響應,幀調節(jié)器112可被銷毀。也可以響應于接收到 EoS 132 來發(fā)送 EoS 142。圖3示出了便于分層地分解消息的計算機架構300。參考圖3,計算機架構300包括下層組件301、分解器304、分解器314、以及上層組件307。所描繪的組件中的每一個可通過系統(tǒng)總線和/或諸如例如局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)和甚至因特網(wǎng)等網(wǎng)絡彼此連接。因此,所描繪的組件中的每一個以及任何其他連接的計算機系統(tǒng)及其組件都可以創(chuàng)建消息相關數(shù)據(jù)并通過網(wǎng)絡交換消息相關數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議,諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP)等)?!比缢枥L的,下層組件301包括通信介質302 (例如,下層傳輸組件)和可任選的分解器303。一般地,消息在通信介質302上接收。消息可任選地通過下層組件301的其他組件(包括分解器303)來向上傳遞。分解器303可以是被可任選地包括在下層組件301中的一個或多個分解器之一。從而,可能的情況是消息從通信介質302被直接傳遞至分解器304。另選地,消息可從通信介質302通過被包括在下層組件301中的一個或多個可任選的分解器來傳遞。最后一個可任選的分解器隨后將消息(或其部分)傳遞至分解器304。如所描繪的,上層組件307包括應用309和可任選的分解器308。一般地,上層組件307從分解器314接收消息。消息可任選地通過上層組件307的其他組件(包括分解器308)來向上傳遞。分解器308可以是被可任選地包括在上層組件307中的一個或多個分解器之一。消息(或其至少一部分)被遞送至應用309。簡要地回頭參考圖1,諸如例如分解器103和108之類的其他可任選地被包括的分解器可用于訪問隨后被單獨向上傳遞至上層組件的嵌套消息。由此,多次嵌套的消息可在應用處被訪問和處理。計算機架構300中的分解器可以利用或可以不利用幀調節(jié)器廠和/或幀調節(jié)器。圖4示出了用于分層地分解消息的示例方法400的流程圖。方法400將參考計算機架構300的組件和數(shù)據(jù)來描述。在某些實施例中,下層組件301中的下層組件(例如,通信介質302、分解器303或某一其他分解器)將會話開始(SoS) 331發(fā)送至分解器304。分解器304可從下層組件接收SoS 331。作為響應,可在下層組件和分解器304之間建立會話333。方法400包括,第一分解器組件從組件的分層安排中緊靠著所述第一分解器組件下一層的組件接收消息的動作,所述消息包含所述消息內的一個或多個嵌套消息(動作401)。例如,分解器304可從下層組件301中的下層組件(例如,通信介質302、分解器303或某一其他分解器)接收消息321。如所描繪的,消息321包含嵌套消息321A、32IB等。
方法400包括,第一分解器組件向組件的分層安排中緊靠著所述第一分解器組件上一層的組件指示會話的開始的動作,所述會話位于所述第一分解器組件和緊靠著所述第一分解器組件上一層的組件之間(動作402)。方法400包括,第二分解器組件從組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話開始的指示的動作,所述第一會話位于所述第二分解器組件和緊靠著所述第二分解器組件下一層的組件之間,所述第一會話響應于由所述第一分解器組件指示的會話(動作404)。例如,分解器304可向分解器314指示會話開始(SoS) 341。分解器314可從分解器304接收SoS 341。作為響應,可在下層組件和分解器304之間建立會話343。方法400包括,第一分解器組件將消息內的一個或多個嵌套消息之一發(fā)送至會話的動作(動作403)。例如,分解器304可將消息321A、321B等發(fā)送至會話343。方法400包括,第二分解器組件從組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話上的消息的動作,所述消息包含所述消息內的一個或多個嵌套消息,所述消息響應于由所述第一分解器發(fā)送的嵌套消息(動作405)。例如,分解器314可從分解器304接收會話343上的消息321A、321B等,可接收會話333上的消息321。如所描繪的,消息321A包含嵌套消息321AU321A2等,而消息32IB包含消息321BU321B2等。方法400包括,第二分解器組件向組件的分層安排中緊靠著所述第二分解器組件上一層的組件指示第二會話開始的動作,所述第二會話位于所述第二分解器組件和緊靠著所述第二分解器組件上一層的組件之間(動作406)。例如,分解器314可將會話開始(SoS)361發(fā)送至上層組件307中的組件(例如,分解器308、某一其他分解器、或應用309)。上層組件可從分解器314接收SoS 361。作為響應,可在分解器314和上層組件之間建立會話363。方法400包括,第二分解器組件在向緊靠著所述第二分解器組件上一層的組件指示所述第二會話開始之后,向其發(fā)送所述消息中的一個或多個嵌套消息中的每一個(包括最后一個嵌套消息)的動作(動作407)。例如,分解器314可在會話363上將消息321A1、3211A2、321B1、321B2等發(fā)送至上層組件。動作407可包括,第二分解器組件解析消息以從所述消息中包含的一個或多個嵌套消息中標識出下一嵌套消息的動作(動作408),以及第二分解器組件將被標識的下一嵌套消息發(fā)送至第二會話的動作(動作409)。例如,分解器314可解析消息321A以標識出消息321A1、321A2等。分解器314隨后可在會話363上將消息321A1、321A2等發(fā)送至上層組件。接著,分解器304可解析消息321B以標識出消息321B1、321B2等。分解器314隨后可在會話363上將消息321B1、321B2等發(fā)送至上層組件。這可繼續(xù)直到消息321中包含的最后一個嵌套消息被解析并且任何嵌套消息都被發(fā)送至上層組件。當下層組件不再具有供分解器304的消息時,下層組件可指示下層組件和分解器304之間的會話結束。例如,下層組件301中的下層組件可將會話結束(EoS)332發(fā)送至分解器304。分解器304可接收EoS 332。EoS 332向分解器304指示,下層組件不再具有供分解器304的消息。方法400包括,第二分解器組件從組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話結束的指示的動作(動作410)。例如,當分解器304不再具有供分解器314的消息時,分解器304可指示會話343結束。例如,分解器304可向分解器314發(fā)送會話結束(EoS) 342。分解器304可接收EoS 342。EoS 342向分解器314指示,分解 器304不再具有供分解器314的消息。方法400包括,第二分解器組件在將最后一個嵌套消息發(fā)送至第二會話之后以及在將接收到第一會話結束的指示之后,向緊靠著所述第二分解器組件上一層的組件指示第二會話結束的動作(動作411)。例如,當分解器314不再具有供上層組件的消息時,分解器314可指示會話363結束。例如,分解器314可向上層組件發(fā)送會話結束(EoS) 362。上層組件可接收EoS 362。EoS 362向上層組件指示,分解器314不再具有供上層組件的消息。在某些實施例中,消息處理組件的分層安排在包括規(guī)范元素列表的規(guī)范中定義。例如,現(xiàn)在參考圖5,規(guī)范501包括幀調節(jié)器規(guī)范502、分解器規(guī)范503、幀調節(jié)器規(guī)范504、分解器規(guī)范506以及傳輸規(guī)范507。在運行時期間,消息處理組件的分層安排從規(guī)范中構建。例如,分層安排521可從規(guī)范501中構建。如所描繪的,分層安排521包括傳輸517、分解器514、分解器512和應用511。傳輸517根據(jù)傳輸規(guī)范507來建立。分解器514根據(jù)分解器規(guī)范506來建立。分解器512根據(jù)分解器規(guī)范503來建立。諸如例如消息522之類的消息最初在傳輸517處接收。消息在分層安排521的基礎上向上傳遞至應用511。每一個分解器可處理和移除嵌套消息級別,并且將嵌套消息單獨地向上傳遞至下一組件。幀調節(jié)器可被加載(例如在運行時)以解析和標識嵌套消息。幀調節(jié)器可根據(jù)幀調節(jié)器規(guī)范來建立。例如,幀調節(jié)器516和513可分別根據(jù)幀調節(jié)器規(guī)范504和502來建立。一般地,分解器是分層結構中執(zhí)行組件的線性集合的一部分。然而,幀調節(jié)器不一定是執(zhí)行組件的這一線性集合的一部分。在運行時,幀調節(jié)器可以是分解器內部的嵌套子組件,并且(例如,如先前所述的)可具有獨立于其他執(zhí)行組件的對象生存期的對象生存期。通過使幀調節(jié)器規(guī)范元素將其本身添加到共享上下文而非構建流水線組件來實現(xiàn)適當?shù)淖冃?。分解器?guī)范在運行時構建過程中遵循幀調節(jié)器規(guī)范,并且在共享上下文中尋找?guī){節(jié)器廠。在找到幀調節(jié)器廠時,分解器規(guī)范使用幀調節(jié)器廠來創(chuàng)建作為參數(shù)的分解器監(jiān)聽器對象。一個分層結構中可出現(xiàn)一個以上的幀調節(jié)器和分解器,從而產(chǎn)生了消息分解器的分層系列。由此,本發(fā)明的各實施例提供了用于分解消息的各種機制。分解器和幀調節(jié)器的功能被解耦合,以使得不同類型的消息的幀調節(jié)器可在分層結構中的同一層處使用,而不必還改變分解器。實質上任何分解層都可能解決任何對應的消息嵌套層。分解可在每一消息的基礎上執(zhí)行或在每一會話的基礎上執(zhí)行。本發(fā)明可具體化為其它具體形式而不背離其精神或本質特征。所描述的實施例在 所有方面都應被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權利要求書而非前述描述指示。落入權利要求書的等效方案的含義和范圍內的所有改變被權利要求書的范圍所涵蓋。
權利要求
1.一種在計算機系統(tǒng)處的用于分解一個或多個消息的方法,所述計算機系統(tǒng)包括一個或多個處理器、系統(tǒng)存儲器和消息通信棧,所述消息通信棧具有組件的分層安排,所述組件包括下層傳輸組件、一個或多個分解器組件以及上層應用組件,所述下層傳輸組件在所述組件的分層安排中位于所述一個或多個分解器組件和所述上層應用組件之下,所述上層應用組件在所述組件的分層安排中位于所述下層傳輸組件和所述一個或多個分解器組件之上,所述計算機系統(tǒng)還包括用于創(chuàng)建可被包含在所述一個或多個分解器組件內以解析消息的幀調節(jié)器廠,所述方法包括 從所述一個或多個分解器組件中選出的分解器組件從所述組件的分層安排中緊靠著所述分解器組件下一層的組件接收消息的動作,所述消息包含所述消息內的一個或多個嵌套消息; 所述分解器組件向所述幀調節(jié)器廠指示所述消息的消息類型的動作; 所述幀調節(jié)器廠向所述分解器組件提供幀調節(jié)器的動作,所述幀調節(jié)器用于解析所述消息; 所述分解器組件向所述組件的分層安排中緊靠著所述分解器組件上一層的組件指示會話開始的動作,所述會話位于所述分解器組件和緊靠著所述分解器組件上一層的組件之間; 對于所述消息中的一個或多個嵌套消息中的每一個消息,包括最后一個嵌套消息,以及在指示所述會話開始之后 所述幀調節(jié)器解析所述消息以從包含在所述消息中的所述一個或多個嵌套消息中標識出下一嵌套消息的動作;以及 所述分解器組件將被標識出的下一嵌套消息發(fā)送至所述會話的動作;以及 所述分解器向緊靠著所述分解器組件上一層的組件指示所述會話結束的動作。
2.如權利要求I所述的方法,其特征在于,還包括,所述分解器組件在從緊靠著所述分解器組件下一層的組件接收所述消息之前,從緊靠著所述分解器組件下一層的組件接收第二會話開始的指示的動作,所述第二會話位于所述分解器組件和緊靠著所述分解器組件下一層的組件之間。
3.如權利要求2所述的方法,其特征在于,還包括 分解器組件接收所述第二會話上的第二消息的動作; 所述分解器組件將所述第二消息發(fā)送給所述幀調節(jié)器廠的動作; 所述幀調節(jié)器廠向所述分解器提供第二幀調節(jié)器的動作,所述第二幀調節(jié)器用于解析所述第二消息;以及 對于所述第二消息中的一個或多個嵌套消息中的每一個消息,包括最后一個嵌套消息 所述第二幀調節(jié)器解析所述第二消息以從包含在所述第二消息中的所述一個或多個嵌套消息中標識出下一嵌套消息的動作;以及 所述分解器組件將被標識出的下一嵌套消息發(fā)送至所述會話的動作。
4.如權利要求3所述的方法,其特征在于,還包括,在所述分解器向緊靠著所述分解器組件上一層的組件指示所述第二會話結束之前,從緊靠著所述分解器組件下一層的組件接收所述第二會話結束的指示的動作。
5.如權利要求3所述的方法,其特征在于,所述分解器組件接收所述第二會話上的消息的動作包括所述分解器組件使用事務來接收所述消息的動作;以及 其中所述分解器組件接收所述第二會話上的第二消息的動作包括所述分解器組件使用所述事務來接收所述第二消息的動作。
6.如權利要求I所述的方法,其特征在于,所述分解器組件從所述組件的分層安排中緊靠著所述分解器組件下一層的組件接收消息的動作包括,所述分解器組件接收帶有事務的消息的動作;以及 其中對于所述消息中的所述一個或多個嵌套消息中的每一個消息,所述分解器組件將被標識出的下一嵌套消息發(fā)送至所述會話的動作包括,所述分解器組件使用所述事務將被標識出的下一嵌套消息發(fā)送至所述會話的動作。
7.一種在計算機系統(tǒng)處的用于分解一個或多個消息的方法,所述計算機系統(tǒng)包括一個或多個處理器、系統(tǒng)存儲器和消息通信棧,所述消息通信棧具有組件的分層安排,所述組件包括下層傳輸組件、多個分層安排的分解器組件、以及上層應用組件,所述下層傳輸組件在所述組件的分層安排中位于所述多個分層安排的分解器組件和所述上層應用組件之下,所述上層應用組件在所述組件的分層安排中位于所述下層傳輸組件和所述多個分層安排的分解器組件之上,所述多個分層安排的分解器組件包括至少第一分解器組件和第二分解器組件,所述第二分解器組件在所述多個分層安排的分解器組件中位于所述第一分解器組件之上,所述方法包括 所述第一分解器組件從所述組件的分層安排中緊靠著所述第一分解器組件下一層的組件接收消息的動作,所述消息包含所述消息內的一個或多個嵌套消息; 所述第一分解器組件向所述組件的分層安排中緊靠著所述第一分解器組件上一層的組件指示會話開始的動作,所述會話位于所述第一分解器組件和緊靠著所述第一分解器組件上一層的組件之間; 所述第一分解器組件將所述消息內的所述一個或多個嵌套消息之一發(fā)送給所述會話的動作; 所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收第一會話開始的指示的動作,所述第一會話位于所述第二分解器組件和緊靠著所述第二分解器組件下一層的組件之間,所述第一會話響應于由所述第一分解器組件指示的會話; 所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收所述第一會話上的消息的動作,所述消息包含所述消息內的一個或多個嵌套消息,所述消息響應于由所述第一分解器組件發(fā)送的嵌套消息; 所述第二分解器組件向所述組件的分層安排中緊靠著所述第二分解器組件上一層的組件指示第二會話開始的動作,所述第二會話位于所述第二分解器組件和緊靠著所述第二分解器組件上一層的組件之間; 所述第二分解器組件在指示所述第二會話開始之后向緊靠著所述第二分解器組件上一層的組件發(fā)送所述消息中的所述一個或多個嵌套消息中的每一個的動作,所述一個或多個嵌套消息中的每一個包括最后一個嵌套消息,包括 所述第二分解器組件解析所述消息以從包含在所述消息中的所述一個或多個嵌套消息中標識出下一嵌套消息的動作;以及 所述第二分解器組件將被標識出的下一嵌套消息發(fā)送至所述第二會話的動作; 所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收所述第一會話結束的指示的動作;以及 所述第二分解器組件在將所述最后一個嵌套消息發(fā)送至所述第二會話之后以及在接收到所述第一會話結束的指示之后,向緊靠著所述第二分解器組件上一層的組件指示所述第二會話結束的動作。
8.如權利要求7所述的方法,其特征在于,在所述組件的分層安排中緊靠著所述第一分解器組件上一層的組件是所述第二分解器組件。
9.如權利要求7所述的方法,其特征在于,在所述組件的分層安排中緊靠著所述第一分解器組件上一層的組件包括一個或多個分層安排的消息通信組件,所述一個或多個消息通信組件中的每一個被配置成 從所述組件的分層安排中緊靠著所述消息通信組件下一層的組件接收第一會話開始的指示,所述第一會話位于所述消息通信組件和緊靠著所述消息通信組件下一層的組件之間; 向所述組件的分層安排中緊靠著所述消息通信組件上一層的組件指示第二會話開始,所述第二會話位于所述消息通信組件和緊靠著所述消息通信組件上一層的組件之間; 接收所述第一會話中的一個或多個消息中的每一個消息; 將一個或多個消息發(fā)送至所述第二會話,所發(fā)送的消息響應于接收到的消息; 從緊靠著所述消息通信組件下一層的組件接收所述第一會話結束的指示;以及在接收到所述第一會話結束的指示之后,向緊靠著所述消息通信組件上一層的組件發(fā)送所述第二會話結束的指示。
10.如權利要求7所述的方法,其特征在于,所述第二分解器組件將被標識出的下一嵌套消息發(fā)送至所述第二會話的動作包括,所述第二分解器組件發(fā)送包含所述消息內的一個或多個嵌套消息的消息的動作。
11.如權利要求10所述的方法,其特征在于,所述多個分層安排的分解器組件包括在所述第二分解器組件之上的第三分解器組件。
12.如權利要求7所述的方法,其特征在于,還包括 所述第一分解器組件將所述消息內的所述一個或多個嵌套消息中的另一消息發(fā)送給所述會話的動作; 所述第二分解器組件從所述組件的分層安排中緊靠著所述第二分解器組件下一層的組件接收所述第一會話上的第二消息的動作,所述第二消息包含所述消息內的一個或多個嵌套消息,所述第二消息響應于由所述第一分解器組件發(fā)送的另一嵌套消息;以及 所述第二分解器組件在指示所述第二會話開始之后向緊靠著所述第二分解器組件上一層的組件發(fā)送所述第二消息中的所述一個或多個嵌套消息中的每一個消息的動作,所述一個或多個嵌套消息中的每一個消息包括最后一個嵌套消息,包括 所述第二分解器組件解析所述第二消息以從包含在所述第二消息中的所述一個或多個嵌套消息中標識出下一嵌套消息的動作;以及 所述第二分解器組件將被標識出的下一嵌套消息發(fā)送至所述第二會話的動作。
13.如權利要求7所述的方法,其特征在于,所述第一分解器組件從所述組件的分層安排中緊靠著所述第一分解器組件下一層的組件接收消息的動作包括,所述第一分解器組件使用事務來接收所述消息的動作;且其中所述第二分解器組件向緊靠著所述第二分解器組件上一層的組件發(fā)送所述消息中的所述一個或多個嵌套消息中的每一個消息的動作包括,使用所述事務來發(fā)送所述消息中的所述一個或多個嵌套消息中的每一個消息的動作。
14.一種在計算機系統(tǒng)處的用于創(chuàng)建用于分解應用的消息的消息通信棧的方法,所述計算機系統(tǒng)包括一個或多個處理器、系統(tǒng)存儲器和消息通信運行時,所述消息通信運行時被配置成從聲明性規(guī)范中構建消息通信棧,所述方法包括 接收聲明性規(guī)范的動作,所述聲明性規(guī)范指定了要被包括在用于分解所述應用的消息的消息通信棧中的組件,所述聲明性規(guī)范包括傳輸組件規(guī)范、分解器組件的一個或多個實例的規(guī)范、以及一個或多個幀調節(jié)器組件規(guī)范; 所述運行時從所述聲明性規(guī)范中創(chuàng)建消息棧的動作,包括 形成執(zhí)行組件的分層線性集合的動作,所述執(zhí)行組件的分層線性集合包括(a)根據(jù)所述傳輸組件規(guī)范來配置的下層傳輸組件,(b)根據(jù)所述分解器組件規(guī)范來配置的一個或多個分解器組件,每一個分解器組件分別對應于所述分解器組件的實例之一的規(guī)范,以及(c)與所述應用相對應的上層應用組件,所述下層傳輸組件在所述執(zhí)行組件的分層線性集合中位于所述一個或多個分解器組件和所述上層應用組件之下,所述上層應用組件在所述執(zhí)行組件的分層線性集合中位于所述下層傳輸組件和所述一個或多個分解器組件之上;以及 當組件被添加到所述執(zhí)行組件的分層線性集合時攜帶共享上下文的動作; 對于所述一個或多個幀調節(jié)器組件規(guī)范中的每一個 將與所述分解器組件之一相對應的所述幀調節(jié)器組件規(guī)范添加到所述共享上下文的一部分的動作,所述分解器組件之一是利用根據(jù)所述幀調節(jié)器組件規(guī)范來配置的幀調節(jié)器組件來解析消息的分解器組件; 對于每一個分解器組件 所述運行時在與所述分解器組件相對應的共享上下文的一部分中創(chuàng)建幀調節(jié)器廠的動作,所述幀調節(jié)器廠被配置成從所述分解器組件接收消息并且向所述分解器組件返回所述消息的幀調節(jié)器組件,所述幀調節(jié)器組件用于包含在所述分解器組件內以解析所述消息從而標識出所述消息中包含的嵌套消息,所述幀調節(jié)器組件根據(jù)被添加到與所述分解器組件相對應的共享上下文的一部分的所述幀調節(jié)器組件規(guī)范來配置;以及 其中每一個分解器組件被配置成 從所述執(zhí)行組件的分層線性集合中緊靠著所述分解器組件下一層的組件接收消息;以及 對于每一個接收到的消息 用所述接收到的消息來調用與所述分解器組件相對應的幀調節(jié)器廠, 從所述幀調節(jié)器廠獲得幀調節(jié)器組件以解析所述消息從而標識出所述消息內包含的嵌套消息;以及 將任何嵌套消息發(fā)送至所述執(zhí)行組件的分層線性集合中緊靠著所述分解器組件上一層的組件。
15.如權利要求14所述的方法,其特征在于,所述一個或多個分解器組件中的至少一個還被配置成執(zhí)行以下動作中的一個或多個使用會話將消息發(fā)送至另一分解器組件,并且使用會話從另一分解器組件接收消息。
全文摘要
本發(fā)明涉及用于分層地分解消息的方法、系統(tǒng)和計算機程序產(chǎn)品。分解器和幀調節(jié)器的功能被解耦合,以使得不同類型的消息的幀調節(jié)器可在分層結構中的同一層處使用,而不必還改變分解器。實質上任何分解層都可能解決任何對應的消息嵌套層。分解可在每一消息的基礎上執(zhí)行或在每一會話的基礎上執(zhí)行。
文檔編號G06F9/44GK102884508SQ201180020852
公開日2013年1月16日 申請日期2011年4月21日 優(yōu)先權日2010年4月26日
發(fā)明者N·A·艾倫, J·A·泰勒, S·R·巴特雷斯, B·李 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1