亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

服務(wù)序列中的變換的聲明的制作方法

文檔序號:6454228閱讀:203來源:國知局
專利名稱:服務(wù)序列中的變換的聲明的制作方法
服務(wù)序列中的變換的聲明 背景計算技術(shù)對人類進步貢獻巨大。計算系統(tǒng)有各種各樣的物理形式,包 括臺式計算機、膝上型計算機、個人數(shù)字助理、電話、甚至常規(guī)上不被認 為是計算系統(tǒng)的設(shè)備,諸如例如冰箱和汽車。因此,計算系統(tǒng)可以是具有 任何類型的處理器和存儲器的任何設(shè)備或系統(tǒng)。計算系統(tǒng)甚至可以具有如 在網(wǎng)絡(luò)系統(tǒng)中那樣一起合作的組成計算系統(tǒng)。因而, 一些計算系統(tǒng)可以很 容易地適合手掌,而其它的則可以全球地分布。最普遍使用的應(yīng)用程序中的許多都依賴于網(wǎng)絡(luò)技術(shù)。這些應(yīng)用程序包括,例如,電子郵件、即時消息通信、web瀏覽、遠程網(wǎng)絡(luò)訪問、電子白 板、IP語音電話通信、視頻會議、遠程同步以及其它。當前,有許多通過 因特網(wǎng)提供的服務(wù)。這些服務(wù)的種類是可枚舉的且在日益增長。例如,有 搜索引擎服務(wù)、公司定位服務(wù)、股票報價服務(wù)、電子郵件服務(wù)、遠程計算 機訪問服務(wù)、在線拍賣服務(wù)、以及許多其它服務(wù)。有時,更復雜的任務(wù)的執(zhí)行涉及序列中的多個服務(wù)中的服務(wù)。來自這 些服務(wù)的一個的輸出被提供給另一服務(wù)的輸入且以此類推直到達到最終結(jié) 果。用戶輸入被提供給第一服務(wù),其識別用戶可能是人類或可能是計算系 統(tǒng)和/或運行于計算系統(tǒng)上的一個或多個進程。該用戶輸入可能需要被變換 成由第一服務(wù)識別的格式。最終服務(wù)以在所得數(shù)據(jù)被呈現(xiàn)給最終用戶之前 可能需要變換的格式來提供所得數(shù)據(jù)。此外,在一個服務(wù)與序列中的下一 服務(wù)通信時,也可能需要變換以在服務(wù)之間適當?shù)刈儞Q數(shù)據(jù)。因此,可在 輸入和輸出數(shù)據(jù)上作各種變換以允許服務(wù)與用戶以及互相之間進行通信。通常,使用用于每一變換特定的專用代碼來進行變換。因此,要使用 代碼來將用戶數(shù)據(jù)變換成適于輸入到第一服務(wù)的格式,要在每一服務(wù)之間 使用代碼以執(zhí)行適當?shù)淖儞Q,且要使用代碼來將所得數(shù)據(jù)從最終服務(wù)變換 成用戶所理解的格式。草擬這些代碼可能是耗時的活動且要求富有經(jīng)驗的 軟件程序員技能。簡要概述盡管并非所需,本發(fā)明的各實施例可被應(yīng)用于其中串行執(zhí)行兩個或更 多服務(wù)的序列以滿足復雜服務(wù)請求的環(huán)境中。為在這些服務(wù)的每一個的輸 入和輸出上實現(xiàn)適當?shù)淖儞Q,可通過使用指定要執(zhí)行的一類變換的變換類 字段,以及更具體地定義變換的變換參數(shù)字段來聲明性地指定這些變換。 可使變換聲明在每一服務(wù)上可用,從而在做出變換時給出適當?shù)闹笇?。提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的 一些概念。該概述不旨在標識所要求保護的主題的關(guān)鍵特征或必要特征, 也不旨在用于幫助確定所要求保護的主題的范圍。附圖簡述使用附圖以更具體地描述本發(fā)明的各實施例??梢岳斫膺@些附圖僅描 述本發(fā)明的各典型實施例,從而不被認為是對其范圍的限制,將通過使用 附圖用附加特征和細節(jié)來描述和說明這些實施例,附圖中-

圖1示出本發(fā)明的原理的各實施例可以在其中操作的計算系統(tǒng); 圖2示出本發(fā)明的各實施例可以在其中操作的包括服務(wù)序列的環(huán)境; 圖3示意性地示出包括具有用于服務(wù)的輸入和輸出變換的對應(yīng)的類和參 數(shù)的那些服務(wù)的標識的數(shù)據(jù)結(jié)構(gòu);圖4示意性地示出與使用該數(shù)據(jù)結(jié)構(gòu)來執(zhí)行變換相關(guān)聯(lián)的邏輯流程;以及 圖5示出根據(jù)本發(fā)明的原理的供服務(wù)處理服務(wù)請求的方法的流程圖。詳細描述本發(fā)明的各實施例涉及用于指定可在完成更復雜任務(wù)的服務(wù)序列中每一 服務(wù)的輸入和輸出處發(fā)生的適當變換的聲明性模型。這些服務(wù)中的每一個都可 以訪問該適當變換聲明,并可以解釋這些聲明從而得到關(guān)于在其輸入數(shù)據(jù)和/ 或輸出數(shù)據(jù)中要發(fā)生的變換的適當指示。為改變一變換,可以更改變換聲明, 而非更改實現(xiàn)每一變換的底層代碼。本發(fā)明的各實施例可以包括含有各種計算機硬件的專用或通用計算機,這 將在以下做出進一步討論。圖1示出可用于實現(xiàn)本發(fā)明的特征的示例計算系統(tǒng)ioo的示意圖。所述計算系統(tǒng)只是這種合適的計算系統(tǒng)的一個示例,而并不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)該把本發(fā)明解釋為對圖1 中示出的任一組件或其組合有任何依賴性或要求。計算系統(tǒng)現(xiàn)在越來越多地采用各種各樣的形式。計算系統(tǒng)例如可以是手持 式設(shè)備、電器、膝上型計算機、臺式計算機、大型機、分布式計算系統(tǒng)、或甚 至常規(guī)上不被認為是計算系統(tǒng)的設(shè)備。在本說明書和權(quán)利要求書中,術(shù)語"計 算系統(tǒng)"被廣義地定義為包括包含至少一個處理器以及其上能含有可由處理器 執(zhí)行的計算機可執(zhí)行指令的存儲器的任何設(shè)備或系統(tǒng)(或其組合)。存儲器可采取任何形式,且可取決于計算系統(tǒng)的本質(zhì)和形式。計算系統(tǒng)可分布在網(wǎng)絡(luò)環(huán) 境上,且可包括多個組成計算系統(tǒng)。參考圖l,在其最基本的配置中,計算系統(tǒng)100—般包括至少一個處理單元102和存儲器104。存儲器104可以是系統(tǒng)存儲器,它可以是易失性的、非易失性的或兩者的某種組合。易失性存儲器的示例包括隨機存取存儲器(RAM)。非易失性存儲器的示例包括只讀存儲器(ROM)、閃存等。術(shù)語 "存儲器"也可在此處用來指諸如物理存儲介質(zhì)等非易失性大容量存儲。這樣的存儲可以是可移動或不可移動的,且可包括(但不限于)PCMCIA卡、磁盤和光盤、磁帶等。如此處所使用的,術(shù)語"模塊"或"組件"可以指在計算系統(tǒng)上執(zhí)行的軟 件對象或例程。此處描述的不同的組件、模塊、引擎和服務(wù)可被實現(xiàn)為在計算 系統(tǒng)上執(zhí)行的對象或進程(例如,作為分開的線程)。盡管此處描述的系統(tǒng)和 方法可用軟件實現(xiàn),但用硬件以及軟件和硬件的組合的實現(xiàn)也是可能的且已被 想到。在以下描述中,參考由一個或多個計算系統(tǒng)執(zhí)行的動作來描述本發(fā)明的各 實施例。如果這些動作是用軟件實現(xiàn)的,則相關(guān)聯(lián)計算系統(tǒng)中執(zhí)行該動作的一 個或多個處理器響應(yīng)于執(zhí)行了計算可執(zhí)行指令而引導計算系統(tǒng)的操作。這樣的 操作的一個示例涉及對數(shù)據(jù)的操縱。計算機可執(zhí)行指令(和所操縱的數(shù)據(jù))可 被存儲在計算系統(tǒng)100的存儲器104中。計算系統(tǒng)100也可包含允許計算系統(tǒng)100例如通過網(wǎng)絡(luò)110與其它計算系 統(tǒng)通信的通信信道108。通信信道108是通信介質(zhì)的示例。通信介質(zhì)一般以諸 如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、 程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。作為示例而非限制,通信 介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學、無線電、紅外線和其它無線介質(zhì)。如此處所用的術(shù)語計算機可讀介質(zhì)既包括存 儲介質(zhì)又包括通信介質(zhì)。本發(fā)明的范圍內(nèi)的各實施例也包括用于承載或其上儲存有計算機可執(zhí)行 指令或數(shù)據(jù)結(jié)構(gòu)的計算機可讀介質(zhì)。這樣的計算機可讀介質(zhì)可以是可由通用或 專用計算機訪問的任何可用介質(zhì)。作為示例而非限制,這樣的計算機可讀介質(zhì)可包括物理存儲和/或存儲器介質(zhì),諸如RAM、 ROM、 EEPROM、 CD-ROM或其它光盤存儲、磁盤存儲或其它磁存儲設(shè)備、或可用于承載或存儲計算機可 執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜嬎銠C訪問 的任何其它介質(zhì)。當信息通過網(wǎng)絡(luò)或另一通信連接(硬連線、無線或硬連線或 無線的組合)傳輸或提供給計算機時,計算機將該連接完全視為計算機可讀介 質(zhì)。因此,任何這樣的連接被適當?shù)胤Q為計算機可讀介質(zhì)。以上的組合也應(yīng)包 括在計算機可讀介質(zhì)的范圍之內(nèi)。計算機可執(zhí)行指令包括例如,使通用計算機、專用計算機、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。盡管用對結(jié)構(gòu)特征和/或方法動作專 用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于 在此所述的具體特征或動作。相反,在此所述的具體特征和動作是作為實現(xiàn)權(quán) 利要求的示例形式公開的。圖2示出了其中可利用本發(fā)明的原理的環(huán)境200。環(huán)境200包括服務(wù)序列 210,該服務(wù)序列中包括例如第一服務(wù)211、第二服務(wù)212和最終服務(wù)213。然 而,還可以有由第二服務(wù)212和最終服務(wù)213之間的水平省略號214所表示的 另外的服務(wù)。此外,序列中可以只有兩個服務(wù),在這一情況下,第二服務(wù)212 可與序列210中的最終服務(wù)213相同。環(huán)境200還包括向服務(wù)序列210提供輸 入數(shù)據(jù)的數(shù)據(jù)輸入實體201,和消費從服務(wù)序列210得到的輸出數(shù)據(jù)的數(shù)據(jù)輸 出實體202。該服務(wù)序列可被串行執(zhí)行以準許實現(xiàn)復雜的任務(wù)。例如,假定復雜任務(wù)是 獲取一給定地理區(qū)域中的所有公司的股票報價。這可以通過使用地圖服務(wù)形式 的第一服務(wù)來實現(xiàn),該地圖服務(wù)通過返回該指定區(qū)域中的公司的列表來對緯度 和經(jīng)度坐標范圍做出響應(yīng)。財務(wù)服務(wù)形式的第二服務(wù)隨后獲取由第一服務(wù)返回的所列出的所有公司的股票報價。這一場景以下將被稱為"基于地圖的股票報 價"場景。
盡管并非所需,但該序列中的服務(wù)可以分布在網(wǎng)絡(luò)上。例如,第一服務(wù)
211可以位于一網(wǎng)絡(luò)節(jié)點上,而第二服務(wù)212可以在另一網(wǎng)絡(luò)節(jié)點上。然而, 這些服務(wù)中的某一些或全部可以在同一網(wǎng)絡(luò)節(jié)點上。這些服務(wù)可以是例如web 服務(wù),或者可以是可本地地或遠程地向其做出功能調(diào)用的任何組件或模塊。數(shù) 據(jù)輸入實體201和數(shù)據(jù)消費實體202可以是同一計算系統(tǒng)或不同的計算系統(tǒng), 且可以位于與服務(wù)210相比不同的網(wǎng)絡(luò)節(jié)點上,或可能可以位于與服務(wù)210中 的一個或多個相同的網(wǎng)絡(luò)節(jié)點上。在本說明書和權(quán)利要求書中,如果兩個計算 系統(tǒng)使用聯(lián)網(wǎng)協(xié)議來通信,則它們在不同的網(wǎng)絡(luò)節(jié)點上。
為使該服務(wù)序列能夠通信,輸入數(shù)據(jù)和/或輸出數(shù)據(jù)的某些變換可能是有 用的。例如,在上述基于地圖的股票報價場景中,假定地圖服務(wù)只提供公司的 名稱,而不是股票代號,而財務(wù)服務(wù)期望股票報價。在這一情況下,會發(fā)生其 中公司名稱被映射到股票代號的某一映射變換。另選地,假定地圖服務(wù)以XML 格式生成公司名稱,而財務(wù)服務(wù)期望輸入為特定的另一類非XML對象。在這 一情況下,可以發(fā)生某一格式轉(zhuǎn)換。變換還可以對輸入到地圖服務(wù)的數(shù)據(jù)發(fā)生。 例如,可能數(shù)據(jù)輸入實體生成被稱為"latitude (緯度)"和"longitude (經(jīng)度)" 的參數(shù),而地圖服務(wù)可能期望分別被稱為"lat"和"long"的參數(shù)。變換還可 以發(fā)生在財務(wù)服務(wù)的輸出上以提供可被數(shù)據(jù)輸出實體消費的形式的所得數(shù)據(jù)。
參考圖2,例如,第一服務(wù)211可以在其從數(shù)據(jù)輸入實體201接收到的輸 入數(shù)據(jù)221上執(zhí)行如輸入變換組件211A所表示的一個或多個變換,并且可以 在其輸出數(shù)據(jù)222上執(zhí)行如輸出變換組件211B所表示的一個或多個變換。同 樣,第二服務(wù)212可以使用輸入變換組件212A在其輸入數(shù)據(jù)222上執(zhí)行變換, 并且可以使用輸出變換組件212B在其輸出數(shù)據(jù)223上執(zhí)行變換等,且對于服 務(wù)序列210中的其它服務(wù)以此類推。最后,最終服務(wù)213可以使用輸入變換組 件213A在其輸入數(shù)據(jù)224執(zhí)行變換,并且可以使用輸出變換組件213B在其 輸出數(shù)據(jù)225上執(zhí)行變換。
本發(fā)明的各實施例使用數(shù)據(jù)結(jié)構(gòu)來聲明性地定義每一變換,而非通過草擬 用于每一變換的自定義代碼來執(zhí)行這些變換。圖3示出數(shù)據(jù)結(jié)構(gòu)300的示例。
11數(shù)據(jù)結(jié)構(gòu)300對服務(wù)序列中的每一服務(wù)包括一服務(wù)標識字段。例如,第一服務(wù)
信息301包括標識第一服務(wù)(參見圖2的第一服務(wù)211)的服務(wù)標識符字段311。 同樣地,第二服務(wù)信息302可以標識圖2的第二服務(wù)212,而最終服務(wù)信息303 可以標識圖2的最終服務(wù)213。垂直省略號304表示可能有關(guān)于其它服務(wù)的其 它類似信息。
對于每一服務(wù),可能有一個或多個輸入變換標識字段312,該字段包括標 識在輸入數(shù)據(jù)被服務(wù)處理之前要在其上執(zhí)行的一類變換的輸入變換類字段 312A,以及標識該變換類的一個或多個參數(shù)從而更具體地定義變換的一個或多 個變換參數(shù)字段312B。如垂直省略號312C所表示的,對于任何給定服務(wù)可能 有不止一個輸入變換。還可能沒有指定的輸入變換。
變換類和變換參數(shù)的組合可被用來標識更具體的變換。變換類的示例可以 包括參數(shù)映射變換或格式轉(zhuǎn)換變換。例如,假定變換類是參數(shù)映射類。參數(shù)的 示例可以包括例如,關(guān)于哪一參數(shù)名(例如,"latitude"或"longitude")要 被映射到哪一參數(shù)名(例如,分別為"lat"或"long")的標識。
類似地,對于每一服務(wù),可能有一個或多個輸出變換標識字段313,該字 段包括標識在輸出數(shù)據(jù)被服務(wù)處理之前要在其上執(zhí)行的變換類的輸出變換類 字段313A,以及標識變換類的一個或多個參數(shù)從而更具體地定義輸出變換的 一個或多個變換參數(shù)字段313B。如垂直省略號313C所表示的,對于任何給定 服務(wù)可能有不止一個輸出變換。還可能沒有指定的輸出變換。變換類和變換參 數(shù)的組合也可被用來標識更具體的輸出變換。
如前所述,以上關(guān)于第一服務(wù)301所描述的字段中的每一個都可以被包括 在關(guān)于相應(yīng)的第二服務(wù)212和最終服務(wù)213的第二服務(wù)信息302和最終服務(wù)信 息303中。關(guān)于數(shù)據(jù)結(jié)構(gòu)300所描述的字段的布局并不暗示關(guān)于字段的任何位 置或分層關(guān)系。例如,任何單個所示字段可以由多個分布字段所組成,且不必 只包括如在字段中所描述的所指定的信息。此外,示為被包括在另一字段中的 字段根本不必被包括在該字段中。
可以使用文本來指定數(shù)據(jù)結(jié)構(gòu)300。在一實施例中,可對該數(shù)據(jù)結(jié)構(gòu)使用 可擴展標記語言(XML)文檔,但是絕不要求如此。使用直觀文本文檔來聲明 性地指定變換允許不必通過運用耗時且昂貴的手動改變底層代碼來指定和改變更復雜的變換。通過在服務(wù)請求之前將數(shù)據(jù)結(jié)構(gòu)300向每一服務(wù)注冊,或通過與服務(wù)請求一起或在其后提供數(shù)據(jù)結(jié)構(gòu)300,數(shù)據(jù)結(jié)構(gòu)300可對服務(wù)序列中 的每一個可用。圖4示出可被用來執(zhí)行變換的變換體系結(jié)構(gòu)400。解釋組件401表示用于 解釋變換類字段和一個或多個變換參數(shù)字段的計算機可執(zhí)行指令。具體地,解 釋組件401接收變換類聲明412A和參數(shù)聲明412B,并向變換組件402提供類 標識411A和參數(shù)標識41 IB 。變換組件402表示用于執(zhí)行由變換類字段和一個或多個變換參數(shù)字段的 組合指定的變換的計算機可執(zhí)行指令。變換組件402可訪問多個未填充的或未 完全填充的變換類403A到403C。變換組件402使用類標識符411A來選擇適 當?shù)淖儞Q類403A到403C。變換組件402隨后實例化從該類導出的一變換對象 并用參數(shù)411B來填充該對象。結(jié)果是可被執(zhí)行從而接收輸入或輸出數(shù)據(jù)411 并將該數(shù)據(jù)變換為經(jīng)變換的輸入或輸出數(shù)據(jù)413的對象。圖5示出根據(jù)本發(fā)明的原理的供服務(wù)用適當?shù)妮斎牒?或輸出變換來處理 數(shù)據(jù)的方法500的流程圖。服務(wù)從數(shù)據(jù)源實體201或服務(wù)序列210中的前一服 務(wù)接收對于服務(wù)的請求(動作501)。該服務(wù)請求可以通過網(wǎng)絡(luò)或從同一計算 系統(tǒng)中的另一進程本地地接收。另外,該服務(wù)訪問如上參考圖3描述的數(shù)據(jù)結(jié)構(gòu)(動作502)。由于該服 務(wù)可以在接收服務(wù)請求之前、期間或之后訪問該數(shù)據(jù)結(jié)構(gòu),所以該數(shù)據(jù)結(jié)構(gòu)被 示為與接收服務(wù)請求并行地被訪問。然而,在特定實施例中,該數(shù)據(jù)結(jié)構(gòu)可以 與服務(wù)請求一起接收。在一實施例中,服務(wù)只訪問數(shù)據(jù)結(jié)構(gòu)中涉及該服務(wù)的部 分。例如,第一服務(wù)211可以只訪問第一服務(wù)信息301,且對于其它服務(wù)以此 類推。服務(wù)隨后確定該服務(wù)在數(shù)據(jù)結(jié)構(gòu)中是否被引用(判定框503)。換言之, 服務(wù)確定該服務(wù)接收到的服務(wù)請求是對于服務(wù)序列中的服務(wù)之一的請求。如果 該服務(wù)在數(shù)據(jù)結(jié)構(gòu)中未被引用(判定框504中的否),則該請求被處理(動作 504)而不依賴于數(shù)據(jù)結(jié)構(gòu)來指定任何輸入和/或輸出變換。如果該服務(wù)在數(shù)據(jù)結(jié)構(gòu)中被引用(判定框503中的是),則該服務(wù)標識在 數(shù)據(jù)結(jié)構(gòu)中是否指定了任何相關(guān)聯(lián)的輸入變換(判定框505)。如果沒有(判定框505中的否),則使用輸入數(shù)據(jù)來處理該請求(動作508)。另一方面, 如果指定了輸入變換(判定框505中的是),則對于輸入變換中的每一個,該 服務(wù)解釋變換類字段和一個或多個變換參數(shù)字段(動作506),并執(zhí)行由變換 類字段和一個或多個變換參數(shù)字段的組合所指定的輸入變換(動作507)。這 可使用圖4的變換體系結(jié)構(gòu)400來實現(xiàn)。在所有指定的輸入變換在指定的序列 中被執(zhí)行之后,在經(jīng)變換的輸入數(shù)據(jù)上處理該服務(wù)請求(動作508)以生成所 得輸出數(shù)據(jù)。
該服務(wù)隨后確定是否有要在輸出數(shù)據(jù)上執(zhí)行的任何相關(guān)聯(lián)的輸出變換(判 定框509)。如果沒有(判定框509中的否),則向數(shù)據(jù)輸出實體202或服務(wù) 序列210中的下一服務(wù)提供所得數(shù)據(jù)(動作512)。另一方面,如果指定了輸 出變換(判定框509中的是),則對于輸出變換中的每一個,該服務(wù)解釋變換 類字段和一個或多個變換參數(shù)字段(動作510),并執(zhí)行由變換類字段和一個 或多個變換參數(shù)字段的組合所指定的輸出變換(動作511)。再一次,這可使 用圖4的變換體系結(jié)構(gòu)400來實現(xiàn)。在所有指定的輸出變換都被執(zhí)行后,所得 經(jīng)變換的數(shù)據(jù)被提供給數(shù)據(jù)輸出實體202或服務(wù)序列210中的下一服務(wù)。
雖然參考圖5和相關(guān)聯(lián)的附圖和說明書描述了各個方法,但是本發(fā)明的原 理延及包括其上具有一個或多個計算機可執(zhí)行指令的一個或多個計算機可讀 介質(zhì)的計算機程序產(chǎn)品,這些指令在被服務(wù)器計算系統(tǒng)上的一個或多個處理器 執(zhí)行時使該計算系統(tǒng)執(zhí)行這些方法中的全部或部分或任一個或兩者。例如,參 考圖1,存儲器104和通信信道108可以表示這種計算機可讀介質(zhì)上的示例。 存儲器104表示物理存儲和/或存儲器介質(zhì)形式的物理計算機可讀介質(zhì)的示例。 本發(fā)明的原理還延及計算系統(tǒng)本身,其通過硬件、軟件或硬件和軟件的組合來 配置以執(zhí)行圖5的方法的所有部分。
現(xiàn)在已經(jīng)以某些細節(jié)描述了本發(fā)明的廣泛的原理,現(xiàn)將描述一更具體的示 例。本領(lǐng)域技術(shù)人員在閱讀本說明書之后將認識到,除該示例之外還有可數(shù)的 方法來實現(xiàn)本發(fā)明的更廣泛的原理。因而,該示例只是說明性的而非限制性的。
在一示例中,數(shù)據(jù)結(jié)構(gòu)300可以是如下為清楚起見添加了行號的XML文

< xml version="1.0" encoding="utf-8" >〈bridge namespace="Samples" className-"BookSearch"〉 <proxy type="Microsoft.Web.Services.BridgeRestProxy" url="http:〃booksearchexample.com/xmr /〉 <method name="Search"> <input>
〈parameter name="Service" value="AWSECommerceService" ServerName= "BookSearch'7>
〈parameter name="AWSAccessKeyId" value="% appsettings : AWSAccessKeyld 0/o" serverOnly="true" />
〈parameter name="Keywords" ServerName= "SearchTerms,7>
<parameter name="Operation" value="ItemSearch" />
〈parameter name="SearchIndex" value="Books" />
</input>
<tmnsforms>
<transform type-"Microsoft.Web.Services.XPathBridgeTransformer"〉 <data>
<attribute name="selector" value="bs:Items/bs:Item" /> (dictionary name="namespaceMapping"> <item name="bs"
value="http:〃webservices.amazon.com/AWSECommerceService/2005-10-05
/>
</dictionary>
<dictionary name="selectedNodes">
<item name="Title" value="bs:ItemAttributes/bs:Title" />
<item name="Product" value="bs:ItemAttributes/bs:ProductGroup" /〉
<item name="Author" value="bs:ItemAttributes/bs:Author" />
<item name="ASIN" value="bs:ASIN" />
</dictionary>
<data>
</transform>
</tmnsforms>
</method>
<method name="SearchRaw" outputMode="Raw"> <input><parameter name="Service" value-"AWSECommerceService" /><parameter name-"AWSAccessKeyId" value="xyz" serverOnly="true" /><parameter name="Keywords" />〈parameter name="Operation" value="ItemSearch" />〈parameter name="SearchIndex" value= "Books" /></input></method></bridge>在該數(shù)據(jù)結(jié)構(gòu)中,"bridge (橋)"元素在其屬性中定義被稱為BookSearch (書籍搜索)的服務(wù)。BookSearch服務(wù)是圖2的服務(wù)序列中所示的服務(wù)的示例。 也可以指定proxy type (代理類型)從而標識與該服務(wù)通信所要使用的代理。 proxy元素還包括可由該代理用來與第一服務(wù)連接的URL。 bridge元素定義與 BookSearch屬性相關(guān)聯(lián)的兩個方法, 一個被稱為Search (搜索)而另一個被稱 為RawSearch (原始搜索)。Search方法定義對該Search方法的某些輸入?yún)?shù)。這些參數(shù)包括Service (服務(wù))、AWSAccessKeyld (AWS訪問鍵Id) 、 Keywords (關(guān)鍵字)、Operation (操作)和Searehlndex (搜索索引)。對于輸入?yún)?shù)中的兩個,即Service和 Keywords存在ServerName (服務(wù)器名)屬性。ServerName屬性名是變換類標 識的示例。ServerName屬性的值是變換參數(shù)的示例。例如,在參數(shù)名="Service" 的元素中的ServerName屬性指示其中名為"Service"的參數(shù)將被映射到名字 "BookSearch"的參數(shù)映射類變換。類似地,"Keywords"參數(shù)被映射到 "SearchTerms (搜索項)"參數(shù)。因而,"input (輸入)"元素定義兩個參 數(shù)的映射功能。"transforms (變換)"元素指定名為"XPathBridgeTransformer (X路徑 橋變換器)"的輸出變換,該變換從所得數(shù)據(jù)中提取名-值對并將其置于XML 文檔的形式。XPathBridgeTransformer引用是變換類標識的示例。在這一情況 下,從搜索結(jié)果中提取Title (標題)、ProductGroup (產(chǎn)品組)、Author (作 者)、和ASIN字段并將其置于XML文檔中。因此,itemname (項目名)元素是變換參數(shù)的示例。除未指定輸出變換之外,SearchRaw方法類似于Search 方法。因此,本發(fā)明的原理提供了一種用于在到服務(wù)的輸入數(shù)據(jù)和來自服務(wù)的輸出數(shù)據(jù)兩者上聲明性地指定變換的方便的機制。為改變變換,不必改變底層代碼,而是變更高層聲明。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所述實施例在所有方面都應(yīng)被認為僅是說明性而非限制性的。從而,本發(fā)明的范 圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方式的含 義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍涵蓋。
權(quán)利要求
1.一種或多種其上具有一數(shù)據(jù)結(jié)構(gòu)的計算機可讀介質(zhì),所述數(shù)據(jù)結(jié)構(gòu)包括多個服務(wù)標識字段,每個服務(wù)標識字段都標識兩個或更多服務(wù)的序列中的一個服務(wù);以及變換類字段,所述變換類字段指定在輸入數(shù)據(jù)被提供給所述服務(wù)序列之前在該輸入數(shù)據(jù)上、在所述服務(wù)序列中的所述多個服務(wù)的兩個服務(wù)之間提供的服務(wù)間數(shù)據(jù)上、或在從所述服務(wù)序列輸出的輸出數(shù)據(jù)上執(zhí)行的一類變換;以及標識所述一類變換的一個或多個參數(shù)從而更具體地定義所述變換的一個或多個變換參數(shù)字段。
2. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述多 個服務(wù)標識字段、所述類變換類字段和所述一個或多個變換參數(shù)字段是使用文 本來指定的。
3. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述變 換類字段指定在所述輸入數(shù)據(jù)被提供給所述服務(wù)序列之前要在該輸入數(shù)據(jù)上 執(zhí)行的一類變換,所述計算機可讀介質(zhì)上還具有用于解釋所述變換類字段和所述一個或多個變換參數(shù)字段的計算機可執(zhí)行指令;以及用于執(zhí)行由所述變換類字段和所述一個或多個變換參數(shù)字段的組合指定 的變換的計算機可執(zhí)行指令。
4. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述變 換類字段指定要在所述服務(wù)間數(shù)據(jù)上執(zhí)行的一類變換,所述計算機可讀介質(zhì)上 還具有用于解釋所述變換類字段和所述一個或多個變換參數(shù)字段的計算機可執(zhí) 行指令;以及用于執(zhí)行由所述變換類字段和所述一個或多個變換參數(shù)字段的組合指定 的變換的計算機可執(zhí)行指令。
5. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述變 換類字段指定要在從所述服務(wù)序列輸出的輸出數(shù)據(jù)上執(zhí)行的一類變換,所述計 算機可讀介質(zhì)上還具有用于解釋所述變換類字段和所述一個或多個變換參數(shù)字段的計算機可執(zhí) 行指令;以及用于執(zhí)行由所述變換類字段和所述一個或多個變換參數(shù)字段的組合指定 的變換的計算機可執(zhí)行指令。
6. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述變 換類字段是第一變換類字段,所述一類變換是第一類變換,所述變換是第一變 換,且所述一個或多個變換參數(shù)字段是第一一個或多個變換參數(shù)字段,其中所 述第一變換類字段指定在所述輸出數(shù)據(jù)被提供給所述一個或多個服務(wù)的序列 之前要在該輸入數(shù)據(jù)上執(zhí)行的一類變換,所述計算機可讀介質(zhì)上還具有指定要在所述服務(wù)序列中的所述多個服務(wù)的兩個服務(wù)之間提供的所述服 務(wù)間數(shù)據(jù)上執(zhí)行的第二類變換的第二變換類字段;以及標識所述第二類變換的一個或多個參數(shù)從而更具體地定義所述第二變換 的第二一個或多個變換參數(shù)字段。
7. 如權(quán)利要求6所述的一種或多種計算機可讀介質(zhì),其特征在于,所述計 算機可讀介質(zhì)上還具有指定要在從所述服務(wù)序列輸出的輸出數(shù)據(jù)上執(zhí)行的第三類變換的第三變 換類字段;以及標識所述第三類變換的一個或多個參數(shù)從而更具體地定義所述第三變換 的第三一個或多個變換參數(shù)字段。
8. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述變 換類字段是第一變換類字段,所述一類變換是第一類變換,所述變換是第一變 換,且所述一個或多個變換參數(shù)字段是第一一個或多個變換參數(shù)域,其中所述 第一變換類字段指定在所述輸出數(shù)據(jù)被提供給所述一個或多個服務(wù)的序列之 前要在該輸出數(shù)據(jù)上執(zhí)行的一類變換,所述計算機可讀介質(zhì)上還具有指定要在從所述服務(wù)序列輸出的輸出數(shù)據(jù)上執(zhí)行的第二類變換的第二變 換類字段;以及標識所述第二類變換的一個或多個參數(shù)從而更具體地定義所述第二變換 的第二一個或多個變換參數(shù)字段。
9. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所述變 換類字段是第一變換類字段,所述一類變換是第一類變換,所述變換是第一變 換,且所述一個或多個變換參數(shù)字段是第一一個或多個變換參數(shù)字段,其中所 述第一變換類字段指定要在所述服務(wù)序列的所述多個服務(wù)的兩個服務(wù)之間提 供的所述服務(wù)間數(shù)據(jù)上執(zhí)行的一類變換,所述計算機可讀介質(zhì)上還具有指定要在從所述服務(wù)序列輸出的輸出數(shù)據(jù)上執(zhí)行的第二類變換的第二變 換類字段;以及標識所述第二類變換的一個或多個參數(shù)從而更具體地定義所述第二變換 的第二一個或多個變換參數(shù)字段。
10. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所 述一個或多個計算機可讀介質(zhì)是物理存儲介質(zhì)。
11. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所 述一個或多個計算機可讀介質(zhì)是物理存儲器介質(zhì)。
12. 如權(quán)利要求1所述的一種或多種計算機可讀介質(zhì),其特征在于,所 述一類變換包括參數(shù)映射變換。
13. 如權(quán)利要求l所述的一種或多種計算機可讀介質(zhì),其特征在于,所 述一類變換包括格式轉(zhuǎn)換變換。
14. 如權(quán)利要求l所述的一種或多種計算機可讀介質(zhì),其特征在于,所述多個服務(wù)的至少一個或多個服務(wù)在與所述多個服務(wù)的至少一個或多個其它 服務(wù)不同的網(wǎng)絡(luò)節(jié)點上。
15. 如權(quán)利要求14所述的一種或多種計算機可讀介質(zhì),其特征在于, 所述多個服務(wù)在與生成所述輸入數(shù)據(jù)的組件相比不同的一個或多個網(wǎng)絡(luò)節(jié)點 上。
16. —種供服務(wù)接收和處理來自另一網(wǎng)絡(luò)節(jié)點的輸入數(shù)據(jù)的方法,所述方法包括接收對服務(wù)的請求及相關(guān)聯(lián)的輸入數(shù)據(jù)的動作;訪問一數(shù)據(jù)結(jié)構(gòu)的動作,所述數(shù)據(jù)結(jié)構(gòu)包括多個服務(wù)標識字段,其中每 一服務(wù)標識字段都標識兩個或更多服務(wù)的序列中的一個服務(wù),且其至少一個標 識所請求的服務(wù);指定在輸入數(shù)據(jù)被提供給所述兩個或更多服務(wù)的序列之前要 在該輸入數(shù)據(jù)上上執(zhí)行的一類變換的變換類字段;以及標識所述一類變換的一 個或多個參數(shù)從而更具體地定義所述變換的一個或多個變換參數(shù)字段; 確定所述服務(wù)請求是對于所述多個服務(wù)中的一個服務(wù)的請求的動作; 解釋所述變換類字段和所述一個或多個變換參數(shù)字段的動作;以及 通過在所述輸入數(shù)據(jù)上執(zhí)行所述變換來執(zhí)行由所述變換類字段和所述一 個或多個變換參數(shù)字段所指定的變換的動作。
17. 如權(quán)利要求16所述的方法,其特征在于,所述變換類字段是第一 變換類字段,所述一類變換是第一類變換,所述變換是第一變換,所述一個或 多個變換參數(shù)字段是第一一個或多個變換參數(shù)字段,所述數(shù)據(jù)結(jié)構(gòu)還包括指定 在輸出數(shù)據(jù)被提供給所述服務(wù)序列中的下一服務(wù)之前或在被所述服務(wù)輸出之 前要在該輸出數(shù)據(jù)上執(zhí)行的一類變換的第二變換類字段;和標識所述一類變換 的一個或多個參數(shù)從而更具體地定義所述變換的一個或多個變換參數(shù)字段,所 述方法還包括處理所述服務(wù)請求以生成所得數(shù)據(jù)的動作;解釋所述第二變換類字段和所述第二一個或多個變換參數(shù)字段的動作;以及通過在所述所得數(shù)據(jù)上執(zhí)行所述變換來執(zhí)行由所述變換類字段和所述一 個或多個變換參數(shù)字段所指定的所述第二變換的動作。
18. —種包括其上具有計算機可執(zhí)行指令的一個或多個計算機可讀介 質(zhì)的計算機程序產(chǎn)品,所述指令在被計算系統(tǒng)上的一個或多個處理器執(zhí)行時使 所述計算系統(tǒng)執(zhí)行如權(quán)利要求16所述的方法。
19. 一種供服務(wù)處理所得數(shù)據(jù)的方法,所述方法包括 處理服務(wù)請求以生成所述所得數(shù)據(jù)的動作;訪問一數(shù)據(jù)結(jié)構(gòu)的動作,所述數(shù)據(jù)結(jié)構(gòu)包括指定在所述所得數(shù)據(jù)被提供給 所述服務(wù)序列中的下一服務(wù)之前或在被所述服務(wù)輸出之前要在該所得數(shù)據(jù)上執(zhí)行的一類變換的變換類字段;以及標識所述一類變換的一個或多個參數(shù)從而更具體地定義所述變換的一個或多個變換參數(shù)字段;解釋所述變換類字段和所述一個或多個參數(shù)字段的動作;以及 通過在所述所得數(shù)據(jù)上執(zhí)行所述變換來執(zhí)行由所述變換類字段和所述一個或多個變換參數(shù)字段所指定的變換的動作。
20. —種包括其上具有計算機可執(zhí)行指令的一個或多個計算機可讀介質(zhì)的計算機程序產(chǎn)品,所述指令在被計算系統(tǒng)上的一個或多個處理器執(zhí)行時使所述計算系統(tǒng)執(zhí)行如權(quán)利要求19所述的方法。
全文摘要
一種用于指定可在完成更復雜任務(wù)的服務(wù)序列中的每一服務(wù)的輸入和輸出處發(fā)生的適當變換的聲明性模型。這些服務(wù)中的每一個都可以訪問該適當變換聲明,并可以解釋這些聲明從而得到關(guān)于在其輸入數(shù)據(jù)和/或輸出數(shù)據(jù)中要發(fā)生的變換的適當指示。為改變變換,可更改變換聲明。
文檔編號G06F17/00GK101405761SQ200780009242
公開日2009年4月8日 申請日期2007年2月13日 優(yōu)先權(quán)日2006年3月17日
發(fā)明者H-H·昆古, N·科塔里, S·N·沙科 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1