新四季網

靈活地傳輸類型化的應用程式數據的製作方法

2023-06-09 20:11:01

專利名稱:靈活地傳輸類型化的應用程式數據的製作方法
技術領域:
本發明涉及電子消息通信,尤其涉及靈活地傳輸類型化的應用程式數據。
背景技術:
計算機系統和相關技術影響著社會的許多方面。實際上,計算機系統處理信息的能力轉換了人們生活和工作的方式。計算機系統現在通常執行在計算機系統出現之前手動執行的許多任務(例如,文字處理、日程安排和資料庫管理)。最近,計算機系統被彼此耦合以及耦合到其它電子設備以形成有線和無線的計算機網絡,通過該計算機網絡,計算機系統和其它電子設備能夠傳輸電子數據。結果,在計算機系統上執行的許多任務(例如,語音通信、訪問電子郵件、控制家用電器、web瀏覽以及列印文檔)包括多個計算機系統和/或其它電子設備之間經由有線和/或無線計算機網絡的電子消息交換。
網絡實際上已變得如此大量增長,使得簡單的啟用網絡的計算系統可通過通常被稱為「網際網路」的網絡集合體與遍及全球的上百萬個其它計算系統中的任何一個進行通信。這樣的計算系統可包括臺式機、膝上型計算機或圖形輸入板個人計算機;個人數字助理(PDA);電話機;或能夠通過數字網絡進行通信的任何其它計算機或設備。
為通過網絡通信,一個計算系統(被稱為「發送計算系統」)構造或訪問電子消息,並通過網絡將該電子消息發送到另一計算系統(在此被稱為「接收計算系統」)。當電子消息是電子郵件或即時消息時,電子消息可由人類用戶閱讀,或者可替代地由運行在接收計算系統上的應用程式讀取。電子消息可由運行在發送計算系統上的應用程式在人類用戶的可能協助下構造。
由此,在某些環境中,消息是用極少(如果有的話)的直接用戶交互在分布式應用程式之間交換的。用於在分布式應用程式(例如,web服務)之間交換消息的一種協議是簡單對象訪問協議(「SOAP」)。SOAP是預期用於在分散的、分布式的環境中交換信息的輕量級協議。SOAP使用可擴展標記語言(「XML」)技術來定義可擴展消息通信框架,該框架提供了可通過諸如簡單郵件傳輸協議(「SMTP」)、超文本傳輸協議(「HTTP」)、用戶數據報協議(「UDP」)、傳輸控制協議(「TCP」)和命名管道等各種底層協議來交換的消息構造。SOAP消息可在開放的意義上被定義為具有一組消息頭部和消息主體的SOAP信息集(infoset)(例如,XML元素)。
許多應用程式是使用方法和/或面向對象的編程模型來設計的。這些編程模型通常使用類型數據格式(例如,整數、串、邏輯或用戶定義的數據格式)以在模塊之間交換對象。例如,方法可接收一個或多個類型化的對象(例如,各種不同數據類型格式的參數)作為輸入。作為響應,方法可生成並輸出該類型化的對象的(可能不同的)值,或者可返回不同的數據類型(例如,該方法的數據類型)的類型化的對象。對類型化的數據格式的使用是有利的,因為它允許開發者基於應用程式和/或模塊功能使用更適當和/或更有效的數據類型來設計應用程式和模塊。
由此,在分布式應用程式環境中,類型化的對象可以在分布式應用程式的不同部分之間交換。例如,為便於銀行交易,分布式銀行客戶機可與分布式銀行伺服器交換類型化的銀行交易數據結構。然而,可能很難設計同時利用類型化的數據格式的優點以及SOAP消息的靈活性的分布式應用程式。
SOAP是一種開放的協議,並由此實際上沒有對應用程式和/或用戶數據對SOAP消息的映射和相反方向的映射施加任何要求。由此,只有有限的機制(如果有的話)用於將類型化的對象(例如,公共語言運行時環境(「CLR」)類型)映射到對應的SOAP消息以及用於將SOAP消息映射到對應的類型化的對象。不能在類型化的對象和SOAP消息之間進行有意義的映射使得分布式應用程式更難或甚至不可能交換應用程式和/或用戶數據。
此外,用於將SOAP消息編碼成原始八比特組的典型機制限制了SOAP消息的大小,並限制了可使用的編碼器的類型。因此,用於靈活地傳輸類型化的應用程式數據的系統、方法和電腦程式產品將是有利的。

發明內容
本發明的原理克服了現有技術的上述問題,本發明針對用於靈活地傳輸類型化的應用程式數據的方法、系統和電腦程式產品。在某些實施例中,一種計算機系統配置SOAP消息以發送類型化的數據。應用程式代碼(例如,客戶機代理)用類型化的對象參數(例如,方法調用的參數)來調用類型化的對象(例如,方法)。該計算機系統訪問對應於類型化的對象的類型化對象參數。類型化對象是用消息協定模型的一個或多個消息協定屬性來注釋的。一個或多個消息協定屬性定義了類型化的對象參數和對應的SOAP元素之間的映射。
該計算機系統依照一個或多個消息協定屬性將所訪問的類型化的對象參數映射到SOAP元素。計算機系統參考一個或多個消息協定屬性來標識SOAP信封內的位置(例如,消息頭部或消息主體)。該計算機系統將SOAP元素插入到SOAP信封內所標識的位置中。SOAP信封然後可被放置在通道內、被編碼成對應的原始八比特組、並且對應的原始八比特組被傳輸到另一計算機系統。
在其它實施例中,一種計算機系統從SOAP消息中檢索類型化的數據。該計算機系統可從另一計算機系統接收原始的八比特組、將原始的八比特組解碼成對應的SOAP信封、並將SOAP信封放置在通道中。該計算機系統訪問包括在SOAP信封中的SOAP元素。
該計算機系統標識對應於SOAP元素的類型化的對象。該類型化的對象是用消息協定模型的一個或多個消息協定屬性來注釋的。一個或多個消息協定屬性定義了SOAP元素和對應的類型化對象參數之間的映射。該計算機系統依照一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化的對象參數。類型化的對象參數被提交給包括所標識的類型化對象的應用程式代碼(例如,服務)。
本發明的這些和其它目的和特徵將從以下描述和所附權利要求書中變得完全清楚,或者可通過對如後文所述的對本發明的實踐中獲知。


為進一步闡明本發明的上述以及其它優點和特徵,將參考附圖中所示出的其特定實施例來呈現對本發明的更具體描述。可以理解,這些附圖僅描述了本發明的典型實施例,並且因此不被認為是限制其範圍。本發明將通過使用附圖用附加的特殊性和細節來描述和解釋,附圖中圖1示出了便於對交換的類型化對象使用簡單對象訪問協議的計算機體系結構的示例。
圖2示出了靈活地發送類型化的應用程式數據的方法的示例流程圖。
圖3示出了靈活地接收類型化的應用程式數據的方法的示例流程圖。
圖4示出了適用於本發明的原理的操作環境。
具體實施例方式
本發明的原理克服了現有技術的上述問題,本發明針對用於靈活地傳輸類型化的應用程式數據的方法、系統和電腦程式產品。在某些實施例中,一種計算機系統配置SOAP消息以發送類型化的數據。應用程式代碼(例如,客戶機代理)用類型化的對象參數(例如,方法調用的參數)來調用類型化的對象(例如,方法)。該計算機系統訪問對應於該類型化的對象的類型化的對象參數。該類型化的對象是用消息協定模型的一個或多個消息協定屬性來注釋的。該一個或多個消息協定屬性定義了類型化的對象參數和對應的SOAP元素之間的映射。
該計算機系統依照一個或多個消息協定屬性將所訪問的類型化的對象參數映射到SOAP元素。該計算機系統參考一個或多個消息協定屬性來標識SOAP信封內的位置(例如,消息頭部或消息主體)。計算機系統將SOAP元素插入到SOAP信封內所標識的位置中。SOAP信封然後可被放置在通道中、被編碼成對應的原始八比特組、並且對應的原始八比特組被傳輸到另一計算機系統。
在其它實施例中,計算機系統從SOAP消息中檢索類型化的數據。計算機系統可從另一計算機系統中檢索原始八比特組、將該原始八比特組解碼成對應的SOAP信封、並將SOAP信封放置在通道中。計算機系統訪問包括在SOAP信封中的SOAP元素。
該計算機系統標識對應於SOAP元素的類型化的對象。該類型化的對象是用消息協定模型的一個或多個消息協定屬性來注釋的。一個或多個消息協定屬性定義了SOAP元素和對應的類型化對象參數之間的映射。該計算機系統依照一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化的對象參數。類型化的對象參數被提交給包括所標識的類型化對象的應用程式代碼(例如,服務)。
本發明範圍內的實施例包括用於承載或在其上儲存計算機可執行指令或數據結構的計算機可讀介質。這一計算機可讀介質可以是可由通用或專用計算機系統訪問的任何可用介質。作為示例而非局限,這類計算機可讀介質可包括物理存儲介質,諸如RAM、ROM、EPROM、CD-ROM或其它光碟存儲、磁碟存儲或其它磁存儲設備、或可用於以計算機可執行指令、計算機可讀指令或數據結構的形式承載或儲存所需的程序代碼裝置並可由通用或專用計算機系統訪問的任何其它介質。
在本說明書以及所附權利要求書中,「網絡」被定義為啟用計算機系統和/或模塊之間的電子數據的傳輸的一個或多個數據鏈路。當信息通過網絡或另一通信連接(硬布線、無線或硬布線和無線的組合)被傳輸或提供給計算機系統時,該連接被適當地視為計算機可讀介質。由此,任何這樣的連接可被適當地稱為計算機可讀介質。上述的組合也應當被包括在計算機可讀介質的範圍之內。計算機可執行指令包括,例如使通用計算機系統或專用計算機系統執行一個或一組特定功能的指令和數據。計算機可執行指令可以是,例如二進位代碼、諸如彙編語言等中間格式指令,或甚至是原始碼。
在本說明書及所附權利要求書中,「計算機系統」被定義為一個或多個軟體模塊、一個或多個硬體模塊或其組合,它們共同工作以對電子數據執行操作。例如,計算機系統的定義包括個人計算機的硬體組件,以及諸如個人計算機的作業系統等軟體模塊。模塊的物理布局不是重要的。計算機系統可包括通過網絡耦合的一個或多個計算機。同樣,計算機系統可包括單個物理設備(諸如行動電話或個人數字助理「PDA」),其中內部模塊(諸如存儲器和處理器)共同工作以對電子數據執行操作。
在本說明書以及所附權利要求書中,「對象」被定義為可個別地選擇和操縱的任何項。對象被定義成包括諸如方法等軟體對象,以及包括數據和操縱數據的過程的其它軟體對象。對象也被定義成包括可在軟體對象之間交換(例如,作為輸入或輸出提供)的參數和返回值(例如,方法參數和方法返回值)。
在本說明書以及所附權利要求書中,「消息協定」被定義為諸如聲明性編程模型等描述簡單對象訪問協議(「SOAP」)格式的協定。消息協定可以基於定義SOAP信封的動作、頭部和主體部分的公共語言運行時(「CLR」)屬性。屬性可用於類型以控制從例如方法、方法參數和方法返回值構造SOAP信封的方式。要包括在消息協定中的欄位和/或特性可用例如[MessageHeader]或[MessageBody]來注釋。
本領域的技術人員可以理解,本發明可以在具有多種類型的計算機系統配置的網絡計算環境中實施,這些計算機系統配置包括個人計算機、膝上型計算機、手持式設備、多處理器系統、基於微處理器或可編程消費者電子產品、網絡PC、小型機、大型計算機、行動電話、PDA、尋呼機等等。本發明也可在分布式系統環境中實施,其中通過網絡連接(通過硬布線數據鏈路、無線數據鏈路或通過硬布線和無線數據鏈路的組合)的本地和遠程計算機系統都執行任務。在分布式計算系統中,程序模塊可以位於本地和遠程存儲器存儲設備中。
如計算機體系結構100中所描述的,計算機系統101和111連接到網絡161。網絡161可以是區域網(「LAN」)、廣域網(「WAN」)或甚至是網際網路。連接到網絡161的計算機系統可從連接到網絡161的其它計算機系統接收數據或向其發送數據。因此,計算機系統101和111以及其它連接的計算機系統(未示出)可創建消息相關數據並通過網絡101交換消息相關數據(例如,網際協議(「IP」)數據報和其它使用IP數據報的更高層協議,諸如傳輸控制協議(「TCP」)、超文本傳輸協議(「HTTP」)、簡單郵件傳輸協議(「SMTP」)等)。例如,計算機系統101和111可創建SOAP信封並通過網絡161交換SOAP信封。
計算機系統101包括應用程式代碼102、類型轉換器103、通道106、編碼器107和存儲163。應用程式代碼102可以是分布式應用程式的一部分,諸如對應於應用程式代碼112的客戶機代理。應用程式代碼102可以是依照方法或面向對象的編程模型開發的代碼。由此,在應用程式代碼102的模塊之間、應用程式代碼102的模塊和應用程式代碼112的模塊之間、以及應用程式代碼102的模塊和其它應用程式代碼(例如,分布式應用程式的不同部分)之間交換的數據可以是類型化的數據,諸如邏輯、布爾、二進位、八進位、十進位、十六進位、整數、浮點、字符、字符串、用戶定義數據類型以及用於定義數據結構的這些數據類型的組合。
類型轉換器103被配置成將對應於例如方法調用參數等類型化對象的類型化的數據轉換(或序列化)成對應的SOAP元素,以及將SOAP元素轉換(或反序列化)成對應於類型化對象的對應的類型數據。例如包括在應用程式代碼120中的方法等(例如,類的)類型化對象可用諸如消息協定模型191等消息協定模型的一個或多個消息協定屬性(例如,公共語言運行時環境(「CLR」)屬性)來注釋。類型轉換器103可處理消息協定屬性,以將類型化對象的類型化數據映射到對應的SOAP元素,例如,映射到可擴展標記語言(「XML」)指令。在某些實施例中,類型轉換器103是被配置成依照消息協定模型將CLR方法的參數轉換成一個或多個SOAP元素以及將SOAP元素轉換成CLR方法的參數的運行時組件。因此,類型轉換器103可利用消息協定模型191將類型化的CLR對象轉換成SOAP元素的CLR表示,以及將SOAP元素的CLR表示轉換成類型化的CLR對象。
通道106提供了用於發送和接收SOAP信封的I/O抽象。通道106可提供用於使用各種傳輸協議方案(包括HTTP、TCP和用戶數據報協議(「UDP」))、接口方案以及尋址方案中的任一種的抽象。一般而言,通道也可被稱為連接。
編碼器107包括用於將SOAP元素編碼成原始的八比特組以及用於將原始的八比特組解碼成SOAP元素的一個或多個編碼器。由此,儘管編碼器107被稱為編碼器,然而編碼器107也可被配置成解碼。在計算機體系結構100中,編碼器107可包括編碼器127、128和129。編碼器127、128和129的每一個可不同地被配置成編碼/解碼。例如,編碼器127可被配置成支持通過文本XML的SOAP,編碼器128可被配置成通過二進位XML的SOAP,而編碼器129可被配置成支持消息傳輸優化機制(MTOM)。編碼器也可實施壓縮方案,包括但不限於諸如LZ或GZIP等一般壓縮方案,它們是分層的編碼器(構建在其他更多基礎編碼器上的編碼器)。
基於文本的編碼提供了一種提高分布式應用程式之間的互操作性的機制。例如,基於文本的編碼可支持UTF8、UTF16高位在前(Big-Endian)以及UTF 16低位在前(Little-Endian)字符集。基於文本的編碼可支持各種內容類型(ContentTypes),諸如「text/xml」(文本/xml)以及「application/soap+xml」(應用程式/soap+xml)(例如,對應於SOAP 1.1或SOAP 1.2)。
二進位XML編碼提供了用於以二進位表示對XML進行編碼的機制,該二進位表示可以更緊湊並且對語法分析更有效。基於二進位的編碼可支持諸如「application/soap+msbinl「和「application/soap+msbinsessionl」等內容類型。
MTOM編碼提供了一種有效地對SOAP信封中的上下文中的二進位XML元素進行編碼的機制。MTOM將SOAP信封表示為多部分MIME容器的一部分(例如,許多部分中的一個)。SOAP信封的位置可以變化,以使發送者或接收者緩衝任何對應的附件。例如,具有SOAP信封作為第一元素(例如,一個或多個部分的第一個)的MIME容器可使編寫器緩衝任何後續的對應附件。另一方面,具有SOAP作為最後一個元素(例如,一個或多個部分中的最後一個)的MIME容器可使讀取器緩衝任何先前的對應附件。
MTOM邏輯上包括SOAP信封內的二進位附件。MTOM對於其他消息編碼器是多態的,並且不需要對終端用戶編程模型的任何改變。此外,MTOM便於二進位數據的附件保持其本機格式(未編碼),由此對SOAP消息保存了空間(與編碼的格式相比),並釋放了將用於實現(潛在地在計算上是昂貴的)編碼算法的資源。
存儲163可以是遠程或本地大容量存儲設備,諸如磁碟驅動器。存儲163存儲字典162。字典162可以包含一個或多個SOAP和/或XML項,以及對應的減小長度的替換項。例如,字典162可儲存值「1」作為對「Envelope」或「http://www.w3.org/2003/05/soap-envelope」的替代。因此,替代可用於在編碼之前減小SOAP信封的大小用於通過網絡161傳輸。
字典162可包括靜態字典部分和動態字典部分。字典162的靜態部分可包括在不同和多樣的應用程式之間具有高度的共同性的SOAP和/或XML項。例如,存在許多不同的應用程式(與功能無關)將使用項「Envelope」和「http://www.w3.org/2003/05/soap-envelope」的高度可能性。由此,這些項可被包括在欄位162的靜態部分內。
字典162的動態部分可包括在較少的多個應用程式之間是共同的,但是不必要在所有應用程式或較多的多個應用程式之間共同的SOAP和/或XML。例如,對銀行應用程式公用的項可被包括在利用銀行應用程式的計算機系統處的字典的動態部分中。然而,銀行項可能不包括在不使用銀行應用程式的計算機系統處的字典的動態部分中。當項被表示為在應用程式之間是共同的時候,項可被包括在字典的動態部分中。有時,項可從字典的動態部分中移除(如,當空閒期到期時)。動態字典項與靜態字典項在以下方面是不同的動態字典項可以在連接上連同在該連接上發送的引用它們的第一消息一起遞增地發送。這一記號化的範圍可以被限制在可能重複的消息的部分上,諸如涉及特定的類型化數據結構或方法、參數或返回值的XML名字和名字空間。
計算機系統111包括應用程式代碼112、類型轉換器113、通道116、編碼器117和存儲143。應用程式代碼112可以是分布式應用程式的一部分,諸如對應於應用程式代碼102的服務。應用程式代碼112可以是依照方法或面向對象的編程模型開發的代碼。由此,在應用程式代碼112的模塊之間、在應用程式代碼112的模塊和應用程式代碼102的模塊之間、以及在應用程式代碼112的模塊和其他應用程式代碼(例如,分布式應用程式的不同的一部分)之間交換的數據可以是類型化的數據,諸如邏輯、二進位、八比特組、十六進位、整數、浮點、字符、字符串、用戶定義數據類型、以及用於定義數據結構的這些數據類型的組合。
類型轉換器113被配置成將對應於諸如方法調用的參數等類型化對象的類型化數據轉換(或序列化)成對應的SOAP元素,以及將SOAP元素轉換(或反序列化)成對應於類型化對象的類型數據。例如包括在應用程式代碼112中的方法(例如,公共封裝類的)類型化對象可用諸如消息協定模型191等消息協定模型的一個或多個消息協定屬性(例如,公共語言運行時環境(「CLR」)屬性)來注釋。類型轉換器113可處理消息協定屬性,以將類型化對象的類型化數據轉換成對應的SOAP元素,諸如轉換成XML元素。在某些實施例中,類型轉換器113是被配置成依照消息協定模型將CLR方法的參數轉換成SOAP元素以及將SOAP元素轉換成CLR方法的參數的運行時組件。因此,類型轉換器113可利用消息協定模型191將類型化的CLR對象轉換成SOAP元素的CLR表示,以及將SOAP元素的CLR表示轉換成類型化的CLR對象。
分派器114接收SOAP元素(例如,從適當的通道),並將SOAP元素分派到適當的類型化對象(例如,方法)。當分派器114接收SOAP元素時,分派器114試圖將SOAP元素與適當的類型化對象進行匹配。在某些實施例中,分派器114試圖將XML元素的各部分(在SOAP元素中)與適當的類型化對象進行匹配。分派器114可將XML元素的各部分與注釋對象141中的對象的消息協定屬性進行比較。當標識了匹配,分派器114將SOAP元素分派到匹配對象。消息可被分派到注釋匹配對象的消息協定屬性的Action特性的值上。當沒有標識到匹配,分派器114可將SOAP元素分派到默認的對象。
通道116提供了用於發送和接收SOAP信封的I/O抽象。通道116可提供用於使用各種傳輸協議方案(包括HTTP、TCP和用戶數據報協議(「UDP」))、接口方案以及尋址方案中的任一種的抽象。通道116可提供對同樣在通道106處提供的傳輸協議方案、接口方案和定址方案的抽象。
編碼器177包括用於將SOAP元素編碼成原始的八比特組以及用於將原始的八比特組解碼成SOAP元素的一個或多個編碼器。由此,儘管編碼器117被稱為編碼器,然而編碼器117也可被配置成解碼。在計算機體系結構100中,編碼器117包括編碼器137、138和139。編碼器137、138和139的每一個可被配置成不同地編碼/解碼。例如,編碼器137可被配置成支持通過文本XML的SOAP,編碼器138可被配置成通過二進位XML的SOAP,而編碼器139可被配置成支持消息傳輸優化機制(MTOM)。
存儲143可以是遠程或本地大容量存儲設備,諸如磁碟驅動器。存儲143存儲字典162和對象141。字典162可以包含一個或多個SOAP和/或XML項,以及減小長度的對應替代。例如,字典162可儲存值「2」作為對「wsa」的替代。因此,替代可用於在編碼之前減小SOAP信封的大小用於通過網絡161傳輸。
字典142可包括靜態字典部分和動態字典部分。靜態部分可包括在不同和多樣的應用程式之間具有高度的共同性的SOAP和/或XML項。動態部分可包括在較少的多個應用程式之間是共同的,但是不必要在所有應用程式或較多的多個應用程式之間共同的SOAP和/或XML。
圖2示出了靈活地發送類型化應用程式數據的方法200的示例流程圖。方法200將參考計算機體系結構100中的模塊和數據來描述。
應用程式代碼102可生成類型化數據131,即,例如包括在類型化消息中。類型化消息可以依照消息協定模型191來配置,以將SOAP信封表示為類型化的(CLR)對象。類型化數據131可包括方法的參數和/或返回值。例如,應用程式代碼102可用使得方法被調用的參數來調用方法。
方法200包括訪問對應於類型化對象的類型化對象參數的動作(動作201)。例如,類型轉換器103可訪問類型化數據131。類型化數據131可包括對應於類型化對象的參數(例如,用於調用方法的參數)。類型化對象可用消息協定模型191的一個或多個消息協定屬性,諸如屬性171來注釋。因此,屬性171定義了類型化數據131和對應的SOAP元素(例如,SOAP元素172)之間的映射。
方法200包括依照一個或多個消息協定屬性將訪問的類型化對象參數映射到SOAP元素的動作(動作202)。例如,類型轉換器103可依照屬性171將類型化數據131(例如,用於調用方法的參數)映射到SOAP元素172(例如,XML元素)。
方法200包括參考一個或多個消息協定屬性來標識SOAP信封內的位置的動作(動作203)。例如,類型轉換器103可參考屬性171來標識信封132A(在計算機系統101處創建)內的位置。屬性171可標識例如信封132A中的頭部或消息主體。此外,屬性171可標識消息頭部或消息主體內指定的位置。由此,對應的SOAP元素可在消息頭部或消息主體內排序。
方法200包括將SOAP元素插入到SOAP信封內所標識的位置中的動作(動作204)。例如,類型轉換器103可將SOAP元素172插入到信封132A的頭部部分或主體部分中(例如,其指定位置)。信封132A可以例如依照所選擇的傳輸、接口和尋址方案通過通道在通道106之間傳輸。例如,信封132A可以在傳輸133中封裝。
來自編碼器107的編碼器,諸如編碼器128可將封裝的信封132A編碼成原始的八比特組。在適當時,編碼器128參考字典162來替代常用的項。計算機系統101通過網絡161向計算機系統111發送原始的八比特組。計算機系統111通過網絡161從計算機系統101接收原始的八比特組。
圖3示出了用於靈活地接收類型化應用程式數據的方法300的示例流程圖。方法300將參考計算機體系結構100中的模塊和數據來描述。
來自編碼器117的編碼器,諸如編碼器138可解碼原始的八比特組134以展示信封132B。在適當時,編碼器138參考字典142以替換在編碼前替換的項。解碼原始的八比特組134可展示信封132B是例如依照所選擇的傳輸、接口和尋址方案來傳輸的。例如,解碼原始的八比特組134可展示信封132B是在傳輸133中封裝的。
基於傳輸、接口和/或尋址方案,封裝的信封132B可通過適當的通道傳輸。由於網絡161中的中介可能能夠在傳輸期間改變信封132A中的部分(例如,路由頭部),因此信封132A和信封132B可包括不同的數據。分派器114接收包括SOAP元素172的信封132B。
方法300包括訪問包括在SOAP信封中的SOAP元素的動作(動作301)。例如,分派器114可訪問SOAP元素172。
方法300包括標識對應於SOAP元素的類型化對象的動作(動作302)。例如,分派器114可從對象141中(例如,包括在計算機系統111處的各種分布式應用程式組件中的對象的集合)標識對象151。對象151可以是用消息協定模型191的屬性181來注釋的類型化對象(例如,應用程式代碼112的方法)。屬性181可定義SOAP元素172和對應的類型化對象參數(例如,用於調用方法的參數)之間的映射。分派器114可將SOAP元素172各部分(例如,XML元素的各部分)與屬性181進行匹配,以標識SOAP元素172對應於對象151。在某些實施例中,這包括利用URI(例如,WS尋址動作URI)將SOAP元素172映射到對象151。
方法300包括依照一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化對象參數的動作(動作303)。例如,類型轉換器113可將SOAP元素172映射到包括類型化數據131的類型化消息(依照屬性181)。類型化消息可以依照消息協定模型191來配置,用於將SOAP信封表示為類型化的(CLR)對象。類型化數據131可包括方法的參數和/或返回值。例如,應用程式代碼112可接收用使得方法被調用的參數的方法調用(在應用程式102處啟動)。
由此,本發明的實施例使得開發者能夠控制將方法參數和返回值序列化到消息頭部和消息主體的方式。同樣,開發者能夠控制將方法參數和返回值從消息頭部和消息主體中反序列化的方式。因此,開發的應用程式能夠保留類型化數據(例如,CLR類型化對象)和SOAP消息通信的靈活性兩者的益處。
以下示例代碼指令描述了一個注釋的類,其中注釋的類的特性和欄位是用消息協定屬性來注釋的第1行[MessageContract(Action=「http://createpersonrequest」,
Name=″CreatePersonRequest″)]第2行public class CreatePersonRequest {第3行[MessageBody(Namespace=「http://namespace」,Name=「MyData」,Position=2)]第4行public string OptionalData;第5行[MessageBody(Namespaceuri=「http://namespace」,Name=「TheList」)]第6行Public IlistintIds;第7行[MessageHeader(Namespaceuri=「http://namespace」,Name=「Request」)]第8行internal Guid RequestId;第9行[MessageHeader(Namespaceuri=「http://namespace」,Name=「Session」,MustUnderstand=true,Relay=false,Actor=http://actor)]第10行internal Guid SessionId;第一行處的[MessageContract]注釋了第2行處的公共類CreatePersonRequest,並定義了消息協定「CreatePersonRequest」(例如,消息協定模型191),用於控制SOAP信封的處理和創建。第3行和第5行分別用指示在SOAP信封的主體中的包括的[MessageBody]注釋了第4行和第6行。第7行和第8行分別用指示在SOAP信封中的包括的[MessageHeader]注釋了第9行和第10行。第3行上的「Position=2」屬性指示注釋的類型化數據要作為第二個元素被包括在消息主體內。
諸如類型轉換器103或類型轉換器113等類型轉換器可利用諸如消息協定模型191等消息協定模型將示例代碼指令轉換成以下的示例SOAP信封soapEnvelopexmlnssoap=「http://schemas.xmlsoap.org/soap/envelope/」xmlnswsa=「http://schemas.xmlsoap.org/ws/2004/03/addressing」soapHeader xmlnsx=「http://namespace」
xRequestxc6gf83/Request
xSession MustUnderstand=「true」,Relay=「false」,Actor=「http://actor」
gg57hjfg/xSession
wsaActionhttp://createpersonrequest/wsaAction
/soapHeader
soapBody xmlnsx=′http://namespace′
xTheList
xItem5/xItem
xItem10/xItem
/xTheList
xMyDatasome data here/xMyData
/soapBody/soapEnvelope
諸如類型轉換器103或類型轉換器113等類型轉換器也可利用諸如消息協定模型191等消息協定模型將示例SOAP信封轉換成示例代碼指令。在示例SOAP信封中,「MyData」元素在SOAP信封主體的第二個位置上。
在本發明的某些實施例中,傳輸流用於補償每次在一個時刻不能完全在存儲器中表示的較大的消息。即,傳輸流對於大於對處理消息的服務可用的存儲器(例如,由於物理或分配的存儲器限制)的消息是有利的。傳輸流可包括流傳送消息的專用傳輸連接(TCP套接字、命名管道、HTTP連接等)。要使用傳輸流的計算機系統可依照適當的傳輸工廠的傳輸模式特性(例如,TcpChannelFactory/TcpListenerFactory、NamedPipeChannelFactory/NamedPipeListenerFactory、以及HttpChannelFactory/HttpListenerFactory)來配置。
傳輸流可以通過用於注釋類型化對象的對應的傳輸綁定元素(例如,TransportBindingElement、NamedPipeTransportBindingElement以及HttpTransportBindingElement)來啟用。傳輸特性可基於通道類型而改變。例如,對於TCP或NamedPipe(命名管道),可使用IOutputChannel/IInputChannel或IDuplexSessionChannel(它使用一對IOutputChannel/IInputChannel)。對於HTTP,可使用IRequestChannel/IReplyChannel、IRequestSessionChannel/IReplySessionChannel、IOutputChannel/IInputChannel或IFullDuplexChannel。當對給定的數據協定配置流傳送時,適當的通道(例如,在通道106和/或116中)可便於請求和創建正確的通道類型。
傳輸流對於消息的讀取器是透明的。即,應用程式無需不同地編寫其本身以處理該消息。應用程式只需使用公共XML元素API(例如,XmlReader)順序地讀取值。傳輸綁定元素可通過例示傳輸綁定元素並向該元素上的特性分配值來配置。傳輸綁定元素也可通過CLR配置(例如,myapp.config文件)來配置。
圖4示出了適用於本發明的原理的操作環境。圖4及以下討論提供了對適於在其中實現本發明的計算環境的簡要概括描述。儘管並非必須,但本發明將在諸如由計算機系統執行的程序模塊等計算機可執行指令的一般上下文環境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數據結構等等,它們執行特定的任務或實現特定的抽象數據類型。計算機可執行指令、相關的數據結構以及程序模塊表示了用於執行這裡揭示的方法的動作的程序代碼裝置的示例。
參考圖4,用於實現本發明的示例系統包括計算機420形式的通用計算設備,包括處理單元421、系統存儲器422以及將包括系統存儲器422的各類系統組件耦合至處理單元421的系統總線423。處理單元421可以執行被設計成實現計算機420的特徵,包括本發明的特徵的計算機可執行指令。系統總線423可以是若干種總線結構類型的任一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線體系結構中的任一種的局部總線。系統存儲器包括只讀存儲器(ROM)424和隨機存取存儲器(RAM)425。基本輸入/輸出系統(BIOS)426,包含如在啟動時協助在計算機420內的元件之間傳輸信息的基本例程,可儲存在ROM 424中。
計算機420也可包括用於對磁硬碟439進行讀寫的磁硬碟驅動器427、用於對可移動磁碟429進行讀寫的磁碟驅動器428以及用於對可移動光碟431如CD-ROM或其它光介質進行讀寫的光碟驅動器430。磁硬碟驅動器427、磁碟驅動器428以及光碟驅動器430分別通過硬碟驅動器接口432、磁碟驅動器接口433和光碟驅動器接口434連接至系統總線423。驅動器及其相關的計算機可讀介質為計算機420提供了計算機可執行指令、數據結構、程序模塊和其它數據的非易失性存儲。儘管這裡描述的示例環境採用了磁硬碟439、可移動磁碟429以及可移動光碟431,然而也可以使用用於儲存數據的其它類型的計算機可讀介質,包括盒式磁帶、快閃記憶體卡、數字多功能盤、Bernoulli盒式磁碟、RAM、ROM等等。
包括一個或多個程序模塊的程序代碼裝置可儲存在硬碟439、磁碟429、光碟431、ROM424或RAM425中,包括作業系統435、一個或多個應用程式436、其它程序模塊437以及程序數據438。用戶可以通過鍵盤440、定位設備442或其它輸入設備(未示出),如麥克風、操縱杆、遊戲墊、圓盤式衛星天線、掃描儀等等向計算機420輸入命令和信息。這些和其它輸入設備通常通過耦合至系統總線423的輸入/輸出接口446連接到處理單元421。輸入/輸出接口446邏輯上表示各種各樣不同接口中的任一種,諸如串行埠接口、PS/2接口、並行埠接口、通用串行總線(USB)或電子與電氣工程師協會(「IEEE」)1394接口(即,火線接口),或甚至可以邏輯上表示不同接口的組合。
監視器447或其他顯示設備也通視頻接口448連接到系統總線423。其它外圍輸出設備(未示出),如揚聲器和印表機,也可被連接到計算機系統420。
計算機系統420可連接到網絡,諸如辦公室範圍或企業範圍計算機網絡、家庭網絡、內聯網和/或網際網路。計算機系統420可通過這類網絡與諸如遠程計算機系統、遠程應用程式和/或遠程資料庫等外部源交換數據。
計算機系統420包括網絡接口453,通過該接口,計算機系統420從外部源接收數據和/或向外部源發送數據。如圖4中所示的,網絡接口453便於通過鏈路451與遠程計算機系統483交換數據。網絡接口453可以邏輯上表示一個或多個軟體和/或硬體模塊,諸如網絡接口卡和對應的網絡驅動器接口規範(「NDIS」)棧。鏈路451表示網絡的一部分(例如,乙太網段),而遠程計算機系統483表示網絡的節點。
同樣計算機系統420包括輸入/輸出接口446,通過該接口,計算機系統420可從外部源接收數據和/或向外部源發送數據。輸入/輸出接口446通過鏈路459被耦合到數據機454(例如,標準數據機、電纜數據機或數字用戶線(「DSL」)數據機),通過該接口,計算機系統420從外部源接收數據和/或向外部源發送數據。如圖4中所示的,輸入/輸出接口446和數據機454便於通過鏈路452與遠程計算機系統493交換數據。鏈路452表示網絡的一部分,而遠程計算機系統493表示網絡的節點。
儘管圖4表示了適用於本發明的操作環境,然而,本發明的原理可用於能夠(如有必要在適當的修改下)實現本發明的原理的任何系統。圖4所示的環境僅是說明性的,並且決不表示其中可實現本發明的各種各樣環境的甚至一小部分。
依照本發明,包括應用程式代碼、客戶機代理、服務、類型轉換器、通道、消息編碼器/解碼器、以及分派器和相關聯的數據,包括類型化數據SOAP元素、傳輸、原始的八比特組、字典以及對象的模塊可被儲存在與計算機系統420相關聯的任何計算機可讀介質中並可從其中訪問。例如,這些模塊和相關聯的程序數據的各部分可以包括在作業系統435、應用程式436、程序模塊437和/或程序數據438中,以儲存在系統存儲器422中。
當諸如磁硬碟439等大容量存儲設備被耦合到計算機系統420,這些模塊和相關聯的程序數據也可被儲存在大容量存儲設備中。在網絡化環境中,相對於計算機420所描述的程序模塊或其部分可儲存在遠程存儲器存儲設備中,諸如與遠程計算機系統483和/或遠程計算機系統493相關聯的系統存儲器和/或大容量存儲設備中。這些模塊的執行可以在如上所述的分布式計算環境中進行。
本發明可以用其它特定的形式來實施,而不脫離其精神或本質特徵。所描述的實施例在所有方面都被認為是說明性而非限制性的。因此,本發明的範圍由所附權利要求書而非以上的描述來指示。落入權利要求書的等效技術方案的意義和範圍內的所有改變都包含在其範圍之內。
權利要求
1.在可連同一個或多個其它計算機一起網絡連接到網絡的計算機系統中,一種靈活地發送類型化應用程式數據的方法,所述方法包括訪問對應於類型化對象的類型化對象參數的動作,所述類型化對象是用消息協定模型的一個或多個消息協定屬性來注釋的,所述一個或多個消息協定屬性定義了類型化對象參數和對應的SOAP元素之間的映射;依照所述一個或多個消息協定屬性將所訪問的類型化對象參數映射到SOAP元素的動作;參考所述一個或多個消息協定屬性來標識SOAP信封內的位置的動作;以及將所述SOAP元素插入到所述SOAP信封中所標識的位置中的動作。
2.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問表示方法的參數的類的動作。
3.如權利要求2所述的方法,其特徵在於,訪問表示方法的參數的類的動作包括訪問表示公共語言運行時環境方法的參數的公共類的動作。
4.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問用動作URI注釋的類型化對象的動作。
5.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問表示方法返回值的類的動作。
6.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問SOAP元素的公共語言運行時環境表示的動作。
7.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問類型化消息的動作。
8.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問用消息協定屬性注釋的已注釋類型化對象參數的動作,所述消息協定屬性指示類型化對象參數的XML表示要包括在SOAP信封頭部中。
9.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問用消息協定屬性注釋的已注釋類型化對象參數的動作,所述消息協定屬性指示類型化對象參數的XML表示要包括在SOAP信封主體中。
10.如權利要求1所述的方法,其特徵在於,訪問對應於類型化對象的類型化對象參數的動作包括訪問已注釋類型化對象參數的動作,所述已注釋類型化對象參數是用一個或多個消息協定屬性來注釋的,所述一個或多個消息協定屬性是從指示SOAP信封內的位置、名字、名字空間URI、類型化對象參數是否必須被理解、類型化對象參數是否可被中繼、以及類型化對象參數的行動者的屬性中選出的。
11.如權利要求1所述的方法,其特徵在於,依照所述一個或多個消息協定屬性將所訪問的類型化對象參數映射到SOAP元素的動作包括將所訪問的類型化對象參數序列化到SOAP元素的動作。
12.如權利要求1所述的方法,其特徵在於,依照所述一個或多個消息協定屬性將所訪問的類型化對象參數映射到SOAP元素的動作包括將所訪問的類型化對象參數映射到對應的XML元素的動作。
13.如權利要求1所述的方法,其特徵在於,參考所述一個或多個消息協定屬性來標識SOAP信封內的位置的動作包括參考標識SOAP信封的頭部部分的消息協定屬性的動作。
14.如權利要求1所述的方法,其特徵在於,參考所述一個或多個消息協定屬性來標識SOAP信封內的位置的動作包括參考標識SOAP信封的主體部分的消息協定屬性的動作。
15.如權利要求1所述的方法,其特徵在於,將所述SOAP元素插入到所述SOAP信封中所標識的位置中的動作包括將對應的XML指令插入到所述SOAP信封的頭部部分中的動作。
16.如權利要求1所述的方法,其特徵在於,將所述SOAP元素插入到所述SOAP信封中所標識的位置中的動作包括將對應的XML指令插入到所述SOAP信封的主體部分中的動作。
17.如權利要求1所述的方法,其特徵在於,還包括將所述SOAP信封編碼成原始的八比特組的動作;以及將所述原始的八比特組發送到接收計算機系統的動作。
18.如權利要求17所述的方法,其特徵在於,將所述SOAP信封編碼成原始的八比特組的動作包括將所述SOAP信封編碼成其中原始八比特組的大小沒有預定義限制的八比特組的動作。
19.如權利要求17所述的方法,其特徵在於,將所述SOAP信封編碼成原始的八比特組的動作包括生成所述SOAP信封的基於文本的編碼的動作。
20.如權利要求17所述的方法,其特徵在於,將所述SOAP信封編碼成原始的八比特組的動作包括使用消息傳輸優化機制來編碼所述SOAP信封的動作。
21.如權利要求17所述的方法,其特徵在於,將所述SOAP信封編碼成原始的八比特組的動作包括生成所述SOAP信封的基於二進位的編碼的動作。
22.如權利要求21所述的方法,其特徵在於,生成所述SOAP信封的基於二進位的編碼的動作包括用減小長度的替代項替代一個或多個SOAP項和/或XNL項,使得所述SOAP信封可被更有效地傳輸的動作。
23.如權利要求17所述的方法,其特徵在於,將所述原始的八比特組發送到接收計算機系統的動作包括將所述原始的八比特組流傳送到所述接收計算機系統的動作。
24.在可連同一個或多個其它計算機一起網絡連接到網絡的計算機系統中,一種靈活地接收類型化應用程式數據的方法,所述方法包括訪問包括在SOAP信封中的SOAP元素的動作;標識對應於所述SOAP元素的類型化對象的動作,所述類型化對象是用消息協定模型的一個或多個消息協定屬性來注釋的,所述一個或多個消息協定屬性定義了SOAP元素和對應的類型化對象參數之間的映射;以及依照所述一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化對象參數的動作,所述類型化對象參數用於提交給所標識的類型化對象。
25.如權利要求24所述的方法,其特徵在於,還包括從發送計算機系統接收原始的八比特組的動作;以及將所述原始的八比特組解碼成所述SOAP信封的動作。
26.如權利要求25所述的方法,其特徵在於,從發送計算機系統接收原始的八比特組的動作包括接收流傳送的八比特組的動作。
27.如權利要求25所述的方法,其特徵在於,將所述原始的八比特組解碼成所述SOAP信封的動作包括解碼所述SOAP信封的基於文本的編碼的動作。
28.如權利要求25所述的方法,其特徵在於,將所述原始的八比特組解碼成所述SOAP信封的動作包括解碼所述SOAP信封的基於二進位的編碼的動作。
29.如權利要求28所述的方法,其特徵在於,解碼所述SOAP信封的基於二進位的編碼的動作包括用原始的SOAP項和/或XML項來替代減小長度的替代項,使得所述SOAP信封被返回到先前的配置的動作。
30.如權利要求25所述的方法,其特徵在於,將所述原始的八比特組解碼成所述SOAP信封的動作包括使用消息傳輸優化機制來解碼所述原始的八比特組的動作。
31.如權利要求24所述的方法,其特徵在於,訪問包括在SOAP信封中的SOAP元素的動作包括從所述SOAP信封的頭部部分中訪問XML元素的動作。
32.如權利要求24所述的方法,其特徵在於,訪問包括在SOAP信封中的SOAP元素的動作包括從所述SOAP信封的主體部分中訪問XML元素的動作。
33.如權利要求24所述的方法,其特徵在於,標識對應於所述SOAP元素的類型化對象的動作包括將所述SOAP信封中的XML元素與已注釋類的消息協定屬性進行比較的動作。
34.如權利要求24所述的方法,其特徵在於,標識對應於所述SOAP元素的類型化對象的動作包括訪問對應於所述類型化對象的URI的動作。
35.如權利要求24所述的方法,其特徵在於,標識對應於所述SOAP元素的類型化對象的動作包括標識表示方法的參數的類的動作。
36.如權利要求35所述的方法,其特徵在於標識表示方法的參數的類的動作包括訪問表示公共語言運行時環境方法的參數的公共類的動作。
37.如權利要求35所述的方法,其特徵在於,標識對應於所述SOAP元素的類型化對象的動作包括將所述SOAP信封分派到適當的方法的動作。
38.如權利要求24所述的方法,其特徵在於,依照所述一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化對象參數的動作包括將所述SOAP元素反序列化到類型化對象參數的動作。
39.如權利要求24所述的方法,其特徵在於,依照所述一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化對象參數的動作包括將XML元素映射到對應的類型化對象參數的動作。
40.如權利要求24所述的方法,其特徵在於,還包括用所述類型化對象參數調用方法的動作。
41.一種在可連同一個或多個其它計算機一起網絡連接到網絡的計算機系統中使用的電腦程式產品,所述計算機程度產品用於實現一種靈活地發送類型化應用程式數據的方法,所述電腦程式產品包括其上儲存有計算機可執行指令的一個或多個計算機可讀介質,當所述指令由處理器執行時,使所述計算機系統執行以下動作訪問對應於類型化對象的類型化對象參數,所述類型化對象是用消息協定模型的一個或多個消息協定屬性來注釋的,所述一個或多個消息協定屬性定義了類型化對象參數和對應的SOAP元素之間的映射;依照所述一個或多個消息協定屬性將所訪問的類型化對象參數映射到SOAP元素;參考所述一個或多個消息協定屬性來標識SOAP信封內的位置;以及將所述SOAP元素插入到所述SOAP信封中所標識的位置中。
42.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統訪問對應於類型化對象的類型化對象參數的所述計算機可執行指令包括當被執行時使所述計算機系統訪問表示公共語言運行時環境方法的參數的公共類的計算機可執行指令。
43.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統訪問對應於類型化對象的類型化對象參數的所述計算機可執行指令包括當被執行時使所述計算機系統訪問表示公共語言運行時環境方法的返回值的公共類的計算機可執行指令。
44.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統依照所述一個或多個消息協定屬性將所訪問的類型化對象映射到SOAP元素的所述計算機可執行指令包括當被執行時使所述計算機系統將所訪問的類型化對象參數序列化到SOAP元素的計算機可執行指令。
45.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統參考所述一個或多個消息協定屬性來標識SOAP信封內的位置的所述計算機可執行指令包括當被執行時使所述計算機系統參考標識SOAP信封的頭部部分的消息協定屬性的計算機可執行指令。
46.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統參考所述一個或多個消息協定屬性來標識SOAP信封內的位置的所述計算機可執行指令包括當被執行時使所述計算機系統參考標識SOAP信封的主體部分的消息協定屬性的計算機可執行指令。
47.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統將所述SOAP元素插入到所述SOAP信封內所標識的位置中的所述計算機可執行指令包括當被執行時使所述計算機系統將所述SOAP元素插入到所述SOAP信封的頭部部分中的計算機可執行指令。
48.如權利要求41所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統將所述SOAP元素插入到所述SOAP信封內所標識的位置中的所述計算機可執行指令包括當被執行時使所述計算機系統將所述SOAP元素插入到所述SOAP信封的主體部分中的計算機可執行指令。
49.一種在可連同一個或多個其它計算機一起網絡連接到網絡的計算機系統中使用的電腦程式產品,所述計算機程度產品用於實現一種靈活地接收類型化應用程式數據的方法,所述電腦程式產品包括其上儲存有計算機可執行指令的一個或多個計算機可讀介質,當所述指令由處理器執行時,使所述計算機系統執行以下動作訪問包括在SOAP信封中的SOAP元素;標識對應於所述SOAP元素的類型化對象,所述類型化對象是用消息協定模型的一個或多個消息協定屬性來注釋的,所述一個或多個消息協定屬性定義了SOAP元素和對應的類型化對象參數之間的映射;以及依照所述一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化對象參數,所述類型化對象參數用於提交給所標識的類型化對象。
50.如權利要求49所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統訪問包括在SOAP信封中的SOAP元素的所述計算機可執行指令包括當被執行時使所述計算機系統從所述SOAP信封的頭部部分中訪問XML元素的計算機可執行指令。
51.如權利要求49所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統訪問包括在SOAP信封中的SOAP元素的所述計算機可執行指令包括當被執行時使所述計算機系統從所述SOAP信封的主體部分中訪問XML元素的計算機可執行指令。
52.如權利要求49所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統標識對應於所述SOAP元素的類型化對象的所述計算機可執行指令包括當被執行時使所述計算機系統訪問對應於所述類型化對象的URI的計算機可執行指令。
53.如權利要求49所述的電腦程式產品,其特徵在於,當被執行時使所述計算機系統依照所述一個或多個消息協定屬性將所訪問的SOAP元素映射到類型化對象參數的所述計算機可執行指令包括當被執行時使所述計算機系統將所述SOAP元素反序列化到類型化對象參數的計算機可執行指令。
全文摘要
本發明涉及使用簡單對象訪問協議(「SOAP」)來交換類型化對象,諸如用於調用方法的參數。一種計算機系統訪問對應於類型化對象的類型化對象參數。該類型化對象是用消息協定模型的一個或多個消息協定屬性來注釋的,該消息協定模型定義了類型化對象參數和對應的SOAP元素之間的映射。該計算機系統利用消息協定屬性將類型化對象參數映射到SOAP元素,並將SOAP元素插入到SOAP信封中。接收計算機系統訪問該SOAP元素,並利用消息協定屬性將SOAP元素映射回類型化對象參數。
文檔編號H04L29/06GK1783882SQ20051011887
公開日2006年6月7日 申請日期2005年11月3日 優先權日2004年12月3日
發明者D·沃滕代克, D·M·珀迪, E·B·克裡斯滕森, K·D·沃爾夫, M·J·庫爾森, M·J·馬魯切克, M·S·威爾諾, N·H·傑塔南達尼, R·T·斯特戈爾, S·H·法瑞斯, V·B·巴拉約幹 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀