專利名稱:服務(wù)流程處理方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種服務(wù)流程處理方法和設(shè)備。
背景技術(shù):
迄今為止,眾所周知根據(jù)用于順序執(zhí)行Web服務(wù)的結(jié)構(gòu)化 文檔(Web服務(wù)流程描述文檔)順序執(zhí)行Web服務(wù)的技術(shù)(例如, Web服務(wù)的業(yè)務(wù)流程執(zhí)行語言(BPEL4WS)版本1.1 ,
pelco11/)。對于該結(jié)構(gòu)化文檔,使用Web服務(wù)業(yè)務(wù)流程執(zhí)行語言 (WS-BPEL)。 WS-BPEL是以可擴(kuò)展標(biāo)記語言(XML)描述的Web 服務(wù)流程描述語言。由結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)管理 WS-BPEL規(guī)范(Web服務(wù)業(yè)務(wù)流程執(zhí)行語言版本2.0 , http :〃docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html)。
注意,對于WS-BPEL, y使用Web服務(wù)描述語言(WSDL)作為 用于識別Web服務(wù)的接口 。 WSDL是用于描迷Web服務(wù)接口的語 言,其中,利用萬維網(wǎng)聯(lián)盟(W3C)來發(fā)布WSDL^L范。詳見 http:〃www.w3.org/TR/wsdl。
讀取We b服務(wù)流程描述文檔并根據(jù)其描述內(nèi)容順序執(zhí)行 Web服務(wù)的流程處理設(shè)備,根據(jù)Web服務(wù)流程描述的內(nèi)容,進(jìn) 行用以按照下面的流程執(zhí)行Web服務(wù)的處理。
首先,讀耳又要調(diào)用的Web服務(wù)的Web服務(wù)接口描述文檔 (WSDL)。然后參考構(gòu)成以WSDL描述的結(jié)構(gòu)定義的才莫式語言 (XML模式,XML Schema),以得知目標(biāo)Web服務(wù)能夠接收的消 息的類型。由W3C定義XML模式。通過使用所參考的模式生成 XML格式的筒單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)消息的框架。由W3C定義SOAP。
接著,使用XPath(XML路徑語言)將要發(fā)送的數(shù)據(jù)插入所生 成的SOAP消息的框架中,以完成SOAP消息,并且發(fā)送SOAP 消息。由W3C定義XPath。作為SOAP消息來接收作為被調(diào)用的 結(jié)果來自Web服務(wù)的應(yīng)答。
接著,進(jìn)行用以從所接收的SOAP消息提取數(shù)據(jù)或處理該 消息等的處理。然后利用上述方法將處理結(jié)果生成為S O A P消 息,并且將處理結(jié)果發(fā)送至下一Web服務(wù)。該流程處理設(shè)備按 照上述流程進(jìn)行處理。
通常,在處理XML和其它結(jié)構(gòu)化文檔時, -使用由W3C定義 的文檔對象模型(Document Object Model, DOM)。因此,即使在 XML SOAP消息生成的處理中,通常也使用DOM接口 。
然而,按照上述處理流程,在首先生成SOAP消息的框架 之后將值插入必需元素中,這意味著有時會將實際上沒有插入 值的元素寫為SOAP消息。因此,還存在將不必要的信息發(fā)送至 所調(diào)用的Web服務(wù)的問題。
如果在生成SOAP消息時使用DOM—次讀取整個模式,則 如果SOAP消息自身很大,就會大大消耗存儲器等資源。在這種 情況下,特別是如果通過低資源裝置等來執(zhí)行該流程處理設(shè)備, 則在生成SOAP消息時,可能超出可處理的資源大小。因而此時 可能發(fā)生處理錯誤,從而使得難以進(jìn)入We b服務(wù)流程描述文檔 中所描述的后續(xù)處理。
發(fā)明內(nèi)容
本發(fā)明的一個目的是向Web服務(wù)發(fā)送不包括不必要的信息 的消息。
本發(fā)明的另 一 目的是使用少量資源生成要發(fā)送至Web服務(wù)的消息。
本發(fā)明的另 一 目的是提供一種服務(wù)流程處理方法,用于基
于Web服務(wù)流程描述文檔和從第一Web服務(wù)所接收的第 一消息 向第二 We b服務(wù)發(fā)送第二消息,所述服務(wù)流程處理方法包括 數(shù)據(jù)提取步驟,用于基于所述Web服務(wù)流程描述文檔中的描述, 從所述第一消息中提取數(shù)據(jù);位置信息提取步驟,用于從所述 Web服務(wù)流程描述文檔中提取表示所述第二消息中與所提取的 數(shù)據(jù)相對應(yīng)的位置的位置信息;以及構(gòu)建步驟,用于基于從所 述Web服務(wù)流程描述文檔所提取的所述位置信息,構(gòu)建所述第 二消息的結(jié)構(gòu),其中,在所述構(gòu)建步驟中,基于從所述Web服 務(wù)流程描述文檔所提取的所述位置信息,將從所述第 一 消息所 提取的數(shù)據(jù)插入在所述第二消息的結(jié)構(gòu)中。
本發(fā)明的另一目的是提供一種服務(wù)流程處理設(shè)備,用于基 于We b服務(wù)流程描述文檔和從第一 We b服務(wù)所接收的第 一 消息 向第二 We b服務(wù)發(fā)送第二消息,所述服務(wù)流程處理設(shè)備包括 數(shù)據(jù)提取部件,用于基于所述Web服務(wù)流程描述文檔中的描述, 從所述第一消息中提取數(shù)據(jù);位置信息提取部件,用于從所述 Web服務(wù)流程描述文檔中提取表示所述第二消息中與所提取的 數(shù)據(jù)相對應(yīng)的位置的位置信息;以及構(gòu)建部件,用于基于從所 述We b服務(wù)流程描述文檔所提取的所述位置信息,構(gòu)建所述第 二消息的結(jié)構(gòu),其中,所述構(gòu)建部件基于從所述Web服務(wù)流程 描述文檔所提取的所述位置信息,將從所述第 一 肖,t所提取的 數(shù)據(jù)插入在所述第二消息的結(jié)構(gòu)中。
通過以下參考附圖對典型實施例的說明,本發(fā)明其它特征 將顯而易見。
圖l示出第一實施例中的Web服務(wù)流程處理設(shè)備的概要; 圖2示出消息生成和結(jié)構(gòu)-驗證單元103的示例性內(nèi)部處理 結(jié)構(gòu);
圖3示出第一實施例中的Web服務(wù)流程描述文檔106的示例 性結(jié)構(gòu);
圖4示出第一實施例中的SOAP消息生成處理的具體例子; 圖5示出第二實施例中的消息生成和結(jié)構(gòu)驗證單元103的 內(nèi)部處理結(jié)構(gòu);
圖6A和6B示出第二實施例中的SOAP消息驗證的具體例
子;
圖7示出第三實施例中的示例性識別信息; 圖8示出用作Web服務(wù)流程處理設(shè)備的信息處理設(shè)備的示 例性硬件結(jié)構(gòu)。
具體實施例方式
下面參考附圖詳細(xì)說明用于實現(xiàn)本發(fā)明的最佳方式。 第一實施例
作為第 一 實施例4吏用圖1 ~ 4來i^L明4吏用識別信息生成結(jié) 構(gòu)化文檔格式的消息的處理概要。注意,該識別信息將以 XP ath(XML路徑語言)來描述。
圖l示出第一實施例中的Web服務(wù)流程處理設(shè)備的概要。在 圖l中,附圖標(biāo)記101為具有復(fù)制、掃描和打印等多種功能的多 功能外圍設(shè)備(MFP)。在第一實施例中,MFP 101用作Web服務(wù) 流程處理設(shè)備102,其能夠讀取Web服務(wù)流程描述文檔,并且能 夠根據(jù)所讀取的描述文檔的描述內(nèi)容順序執(zhí)行We b服務(wù)。
此外,Web服務(wù)流程處理設(shè)備102包括XPath結(jié)構(gòu)化文檔格 式的消息生成和結(jié)構(gòu)驗證單元10 3 。附圖標(biāo)記104是由Web服務(wù)流程處理設(shè)備102所調(diào)用的外部 Web服務(wù)A,附圖標(biāo)記105是由Web服務(wù)流程處理設(shè)備102所調(diào)用 的外部Web服務(wù)B。夕卜部Web服務(wù)A 104和外部Web服務(wù)B 105通 過網(wǎng)絡(luò)(未示出)連接到Web服務(wù)流程處理i殳備102。
附圖標(biāo)記106是描述用于順序調(diào)用外部Web服務(wù)A 104和外 部Web服務(wù)B 105的過程的Web服務(wù)流程描述文檔。附圖標(biāo)記107 是外部Web服務(wù)A的Web服務(wù)接口描述文檔,附圖標(biāo)記108是外 部Web服務(wù)B的Web服務(wù)接口描述文檔。下面將說明這些描述文 檔的i,細(xì)構(gòu)成。
這里,將說明用于通過Web服務(wù)流程處理設(shè)備102的消息生 成和結(jié)構(gòu)驗證單元103使用識別信息來生成結(jié)構(gòu)化文檔格式的 消息的處理。
首先,Web服務(wù)流程處理設(shè)備102從與網(wǎng)絡(luò)(未示出)連接的 服務(wù)器讀取Web服務(wù)流程描述文檔106,并且根據(jù)Web服務(wù)流程 描述文檔106的描述內(nèi)容開始流程處理。注意,Web服務(wù)流程處 理設(shè)備102可以通過驅(qū)動裝置讀取存儲在MFP 101內(nèi)的存儲介 質(zhì)(未示出)中的We b服務(wù)流程描述文檔10 6 。
然后順序執(zhí)行Web服務(wù)流程描述文檔106的描述內(nèi)容,直到 與外部Web服務(wù)A 104的調(diào)用相關(guān)聯(lián)的描述內(nèi)容為止。
接著,消息生成和結(jié)構(gòu)-瞼證單元103生成請求SOAP消息A 109。此時,使用關(guān)于Web服務(wù)流程描述文檔中所描述的XPath 的信息(如果進(jìn)行,瞼證,還使用外部Web服務(wù)A的Web服務(wù)接口 描述文檔107的內(nèi)容)。注意,下面將詳細(xì)i兌明消息生成和驗證。
接著,消息生成和結(jié)構(gòu)驗證單元103將所生成的請求SOAP 消息A 109發(fā)送至外部Web服務(wù)A 104。通過外部Web服務(wù)A 104 對請求SOAP消息A 109進(jìn)行處理,并且作為結(jié)果返回應(yīng)答SOAP 消息A 110。消息生成和結(jié)構(gòu)驗證單元103接收應(yīng)答SOAP消息A110。
接著,消息生成和結(jié)構(gòu)驗證單元103從應(yīng)答SOAP消息A 110 提取關(guān)于處理結(jié)果的信息。然后使用在此所提取的信息和關(guān)于 Web服務(wù)流程描述文檔106中所描述的XPath的信息(如果進(jìn)行 驗證,還使用外部Web服務(wù)B的Web服務(wù)接口描述文檔108的內(nèi) 容),生成請求SOAP消息B 111。
接著,消息生成和結(jié)構(gòu)驗證單元103將所生成的請求SOAP 消息B lll發(fā)送至外部Web服務(wù)B 105。通過外部Web服務(wù)B 105 對請求SOAP消息B lll進(jìn)行處理,并且作為結(jié)果返回應(yīng)答SOAP 消息B 112。 Web服務(wù)流程處理設(shè)備102接收應(yīng)答SOAP消息B 112。
因此,當(dāng)調(diào)用外部Web月艮務(wù)B 105時,消息生成和結(jié)構(gòu)-驗i正 單元103生成必需的請求SOAP消息B 111。此時,使用Web服務(wù) 流程描述文檔106的內(nèi)容和應(yīng)答SOAP消息A 110的內(nèi)容(如果進(jìn) 行驗證,還使用外部Web服務(wù)B的Web服務(wù)4妄口描述文檔108的 內(nèi)容)。
這里,將^f吏用圖2說明消息生成和結(jié)構(gòu)-驗證單元103的處理 的詳細(xì)內(nèi)容。注意,圖2示出在調(diào)用外部Web月良務(wù)B 105的Web 服務(wù)時用于生成請求SOAP消息B lll的處理。
圖2示出用于說明被分解成功能的消息生成和結(jié)構(gòu)驗證單 元103的結(jié)構(gòu)的例子。在圖2中,附圖標(biāo)記201是^v外部Web服務(wù) A 104接收應(yīng)答SOAP消息A 110的消息接收單元。附圖標(biāo)記202 是使用Web服務(wù)流程描述文檔106中所描述的XPath的內(nèi)容從應(yīng) 答SOAP消息A 110提取必需數(shù)據(jù)的數(shù)據(jù)提取單元。
該XPath是包括消息的結(jié)構(gòu)信息并指示消息中的具體位置 的識別信息。
附圖標(biāo)記203是XPath表達(dá)式關(guān)聯(lián)單元,其提取由數(shù)據(jù)提取單元202所提取的數(shù)據(jù),并從Web服務(wù)流程描述文檔106提取與 下一調(diào)用的Web服務(wù)相關(guān)聯(lián)的XPath表達(dá)式,并且將該信息作為 關(guān)聯(lián)信息進(jìn)行保持。與下一調(diào)用的Web服務(wù)相關(guān)聯(lián)的XPath表達(dá) 式是如下識別信息,該識別信息包括要插入所提取的數(shù)據(jù)的 Web服務(wù)流程描述文檔106中所描述的消息的結(jié)構(gòu)信息并且指 示消息中要插入該數(shù)據(jù)的具體位置。
附圖標(biāo)記204是消息生成單元,其通過根據(jù)XPath表達(dá)式關(guān) 聯(lián)單元203所關(guān)聯(lián)的信息構(gòu)建請求SOAP消息來生成消息。這里, 使用與下一調(diào)用的Web服務(wù)相關(guān)聯(lián)的XPath表達(dá)式和與此相對 應(yīng)的由數(shù)據(jù)提取單元202所提取的數(shù)據(jù),生成請求S 0 A P消息B 111。
盡管如上說明了消息生成和結(jié)構(gòu)驗證單元103的處理流 程,接著使用具體Web服務(wù)流程描述文檔詳細(xì)說明處理內(nèi)容。
圖3示出第一實施例中的Web服務(wù)流程描述文檔106的示例 性構(gòu)成。由描述程序所使用的變量的聲明等的聲明部分301和描 述流程處理的邏輯等的邏輯部分302構(gòu)成Web力良務(wù)流程描述文 檔106。
注意,盡管在邏輯部分302中包括所有流程處理的內(nèi)容, 但是省略了用于從客戶機(jī)接收請求消息的描述和將應(yīng)答消息返 回至客戶機(jī)的描述。
首先,在聲明部分301中,附圖標(biāo)記311是用于指定Web服 務(wù)流程描述文檔106自身的信息和用于指定要調(diào)用的Web服務(wù) 的接口描述文檔(107、 108)的信息。附圖標(biāo)記312是Web服務(wù)流 程處理中所使用的變量信息。
在邏輯部分302中,附圖標(biāo)記321是以下處理的內(nèi)容調(diào)用 外部Web服務(wù)A, 4吏外部Web服務(wù)A進(jìn)行處理,并且接收包含處 理結(jié)果的應(yīng)答消息。附圖標(biāo)記322是以下處理的內(nèi)容從所接收到的包含處理結(jié)果的應(yīng)答消息中提取該處理結(jié)果,并且生成外
部Web服務(wù)B可解釋的請求消息。附圖標(biāo)記323是以下處理的內(nèi) 容調(diào)用外部Web服務(wù)B,使外部Web服務(wù)B進(jìn)行處理,并且接 收包含處理結(jié)果的應(yīng)答消息。
在圖3中,附圖標(biāo)記303是與Web月l務(wù)流程描述文檔106的構(gòu) 成相對應(yīng)的具體描述的例子。在該例子中,以符合用于以XML 文檔進(jìn)行描述的標(biāo)準(zhǔn)規(guī)范的語言,來描述Web服務(wù)的WS-BPEL 處理流程。注意,WS-BPEL是Web Services Business Process Execution Language(Web服務(wù)業(yè)務(wù)流程執(zhí)行語言)的縮寫,XML 是extensible Markup Language(可擴(kuò)展才示i己i吾言)的縮寫。
這里,將Web月艮務(wù)流程描述文檔106的構(gòu)成和示例性描述 303相比較的同時鄉(xiāng)合出詳細(xì)說明。附圖標(biāo)記331對應(yīng)于聲明部分 301中的描述內(nèi)容311。對于附圖標(biāo)記331,在作為〈process〉標(biāo) 簽的屬性值的命名空間中,描述用于指定Web服務(wù)流程描述文 檔106自身的信息和用于指定要調(diào)用的Web服務(wù)(外部Web服務(wù) A和B)的接口描述文檔(WSDL文檔)的信息。
附圖標(biāo)記332對應(yīng)于聲明部分301中的描述內(nèi)容312。對于 附圖標(biāo)記332,使用各〈variable〉標(biāo)簽來描述在進(jìn)行流程處理時 所使用的消息變量的類型信息。
附圖標(biāo)記333對應(yīng)于邏輯部分302中的描述內(nèi)容321。對于 附圖標(biāo)記333,使用〈invoke〉標(biāo)簽來描述以下處理的內(nèi)容調(diào)用 外部Web服務(wù)A,使得進(jìn)行處理,并且接收包含處理結(jié)果的應(yīng)答 消息。
附圖標(biāo)記334對應(yīng)于邏輯部分302中的描述內(nèi)容322。對于 附圖標(biāo)記334,使用〈assign〉標(biāo)簽等來描述以下處理的內(nèi)容使 用XPath從所接收的應(yīng)答消息中提取處理結(jié)果,并且根據(jù)所提取 出的處理結(jié)果和XPath生成外部Web服務(wù)B可解釋的請求消息。附圖標(biāo)記335對應(yīng)于邏輯部分302中的描述內(nèi)容323。對于 附圖標(biāo)記335,使用〈hwoke〉標(biāo)簽來描述以下處理的內(nèi)容調(diào)用 外部Web服務(wù)B,使得進(jìn)行處理,并且接收包含處理結(jié)果的應(yīng)答 消息。
將與邏輯部分302的描述內(nèi)容相對應(yīng)的<assign>和 〈invoke〉標(biāo)簽稱為WS-BPEL中的活動。Web服務(wù)流程處理的表 示祐:抽象化,如〈assign〉標(biāo)簽表示處理或轉(zhuǎn)4灸消息,<invoke> 標(biāo)簽表示調(diào)用外部Web服務(wù)。
接著,將使用圖4所示的SOAP消息的具體例子來說明用于 通過消息生成和結(jié)構(gòu)驗證單元10 3生成S O AP消息的處理的流 程。
附圖標(biāo)記401是來自外部Web服務(wù)A 104的應(yīng)答SOAP消息A 110的具體例子。附圖標(biāo)記402是附圖標(biāo)記3 3 4所表示的部分,即, 以下處理的內(nèi)容使用XPath從所接收到的應(yīng)答S O AP消息A 110 中提取處理結(jié)果,并且#^居該處理結(jié)果和XPath生成外部Web 服務(wù)B可解釋的請求SOAP消息B 111。
將使用附圖標(biāo)記401和402來說明數(shù)據(jù)提取單元202的處 理。在附圖標(biāo)記402中,在〈assign〉標(biāo)簽的后級描述〈copy〉標(biāo)簽, 并且在〈copy〉標(biāo)簽的后級描述〈from〉和〈to〉標(biāo)簽。將〈copy〉標(biāo) 簽解釋為表示從接收消息中與〈from〉標(biāo)簽中所描述的XPath 相對應(yīng)的位置提取數(shù)據(jù),并且將該數(shù)據(jù)插入下 一 要發(fā)送的消,t、 中與〈to〉標(biāo)簽中所描述的XPath相對應(yīng)的位置處。
因此,如附圖標(biāo)記403所示,首先4吏用〈from〉標(biāo)簽中所示 的"/Response/data/address"從應(yīng)答SOAP消息A中提取〈address〉 標(biāo)簽中的數(shù)據(jù)"tokyo"。類似地,提取如附圖標(biāo)記404所示的數(shù) 據(jù)"abc"和附圖標(biāo)記405所示的數(shù)據(jù)"03-1234-5678"。
即,為了提取該數(shù)據(jù),使用包括Web服務(wù)流程描述文檔106(303)中所描述的(應(yīng)答)消息的結(jié)構(gòu)信息和表示該(應(yīng)答)消 息中的具體位置的〈from〉標(biāo)簽的XPath,作為識別信息。
接著,使用附圖標(biāo)記406來說明XPath表達(dá)式關(guān)聯(lián)單元203 的處理(406A)。通過將附圖標(biāo)記403 ~ 405的所提取的數(shù)據(jù)與附 圖標(biāo)記402的〈to〉標(biāo)簽中所描述的XPath相關(guān)聯(lián),獲得附圖標(biāo)記 406。對于附圖標(biāo)記407,將附圖標(biāo)記403的所提取的數(shù)據(jù)"tokyo" 與相應(yīng)的〈to〉標(biāo)簽中所描述的"/Request/address"相關(guān)聯(lián)。類似 地,對于附圖標(biāo)記408和409,分別將"abc"和"03-1234-5678"與 "/Request/person/name"和"/Request/person/phone"相關(guān)聯(lián)并且 進(jìn)行保持。
這些 <化>標(biāo)簽中所描述的XPath是如下識別信息,該識別信 息包括表示附圖標(biāo)記403 ~ 405的所提取的數(shù)據(jù)的插入目的地 的、Web服務(wù)流程描述文檔中所描述的消息的結(jié)構(gòu)信息,并指 示消息中的具體位置。
接著,將說明下面的處理依次使用附圖標(biāo)記406的關(guān)聯(lián) 信息,在消息生成單元204中構(gòu)建消息。首先,如附圖標(biāo)記410 所示,根據(jù)附圖標(biāo)記407的信息中的XPath "/Request/address"來 構(gòu)建XML結(jié)構(gòu)〈Request〉〈addressx/address〉 </Request〉。然后 生成將數(shù)據(jù)插入到〈address〉標(biāo)簽中的附圖標(biāo)記411的消息。接 著,如附圖標(biāo)記412所示,將附圖標(biāo)記408的信息嵌入附圖標(biāo)記 41 l的消息中,乂人而生成在〈address〉標(biāo)簽之后的〈person〉標(biāo)簽的 下面嵌入了信息的附圖標(biāo)記413的消息。接著,如附圖標(biāo)記414 所示,將附圖標(biāo)記409的信息嵌入附圖標(biāo)記413的消息中,從而 生成在〈name〉標(biāo)簽之后的〈phone〉標(biāo)簽中嵌入了信息的附圖標(biāo) 記415的消息。然后,通過將所生成的附圖標(biāo)記415的消息嵌入 在〈Body〉標(biāo)簽之間,最終生成附圖標(biāo)記416的SOAP消息,并且 將所生成的SOAP消息發(fā)送至外部Web"l務(wù)B 105。附圖標(biāo)記416是對外部Web月良務(wù)B 105的請求SOAP消息B lll的具體例子。
與在根據(jù)WSPL文檔創(chuàng)建了要調(diào)用的Web服務(wù)可解釋的
SOAP消息的整個框架之后插入數(shù)據(jù)相比較,第 一 實施例使得能
夠抑制在生成SOAP消息時所消耗的資源。這里的"資源"是指例
如硬盤和存儲器等。
另外,不向消息添加沒有插入數(shù)據(jù)的元素等的不必要信息
這一情況,消除了向調(diào)用的Web服務(wù)發(fā)送不必要的信息的問題。 第二實施例
接著,將參考附圖詳細(xì)說明根據(jù)本發(fā)明的第二實施例。類 似于第一實施例,在第二實施例中同樣作為XPath來處理識別信 息。在第一實施例中,消息生成單元204根據(jù)附圖標(biāo)記406所示 的關(guān)聯(lián)信息依次構(gòu)建消息。在第二實施例中,在構(gòu)建消息時, 進(jìn)行用于-瞼證消,t的準(zhǔn)確性的處理。將^f吏用圖5和6 i兌明該處理。
注意,由于圖5所示的消息生成和結(jié)構(gòu)驗證單元103與圖2 所示的結(jié)構(gòu)部分相同,因而使用圖2中的附圖標(biāo)記進(jìn)行說明。另 外,由于圖6A和6B中所示的將XPath與所提取的信息相關(guān)聯(lián)的 信息以及消息生成處理與圖4所示的信息部分相同,因而使用圖 4中的附圖標(biāo)記進(jìn)行說明。
附圖標(biāo)記501是消息生成和驗證單元。消息生成和驗證單 元501從外部Web服務(wù)B 105的Web服務(wù)接口描述文檔502讀取表 示消息結(jié)構(gòu)的模式信息。然后,在通過與來自XPath表達(dá)式關(guān)聯(lián) 單元203的關(guān)聯(lián)信息406進(jìn)行比較來驗證該結(jié)構(gòu)的準(zhǔn)確性時,構(gòu) 建(生成)消息,并且將所生成的消息作為驗證后的請求S O AP消 息B 503發(fā)送至外部Web服務(wù)B 105,。
接著,將使用消息的具體例子來說明圖5所示的處理流程。 在圖6A和6B中,直到構(gòu)建消息411為止的處理類似于圖4所示的 處理。附圖標(biāo)記601是外部Web服務(wù)B 105的示例性Web服務(wù)接口描述文檔502(WSDL文檔)。在該WSDL文檔中描述了才莫式信息
602。作為模式信息的例子說明結(jié)構(gòu)定義文檔(XML模式)。在使
用該信息進(jìn)行驗證時生成消息,從而使得該結(jié)構(gòu)符合該模式信 自
模式602表示將關(guān)于〈person〉標(biāo)簽的信息以附圖標(biāo)記603描 述為<xsd:element name= "person">。 類4以i也, 一夸關(guān)于<address> 標(biāo)簽的信息以附圖標(biāo)記604描述為〈xsd: element minOccurs = "0" maxOccurs= T'name "address" type="xsd:string"〉。將該才莫式信息與附 圖標(biāo)記605所示的〈xsd:sequence〉標(biāo)簽綁定。因此,可以根據(jù)才莫 式602的規(guī)范解釋〈address:^示簽604 —定出現(xiàn)在附圖標(biāo)記603 的〈person〉標(biāo)簽之后。
因此,消息生成和驗證單元501確認(rèn)將附圖標(biāo)記408的信息 插入附圖標(biāo)記411的消息中時的插入位置,然后生成附圖標(biāo)記 607的消息,如附圖標(biāo)記606所示,而不是生成附圖標(biāo)記413的消 息。即,在〈address〉標(biāo)簽之前插入信息408的XPath所示的XML 結(jié)構(gòu)。
然后,在確認(rèn)模式信息602的同時,將附圖標(biāo)記409的 〈phone〉標(biāo)簽和該標(biāo)簽的數(shù)據(jù)的信息插入到最佳位置,如附圖 標(biāo)記608所示,并且生成附圖標(biāo)記609的消息。然后,通過將所 生成的附圖標(biāo)記609的消息嵌入在〈Body〉標(biāo)簽之間,最終生成 附圖標(biāo)記610的S O AP消息。
通過向第 一 實施例中的SOAP消息生成進(jìn)一步添加驗證功
能,第二實施例使得能夠向外部Web服務(wù)發(fā)送更準(zhǔn)確的SOAP消 自
第三實施例
接著,將參考附圖詳細(xì)說明根據(jù)本發(fā)明的第三實施例。盡
管在第一和第二實施例中,作為XPath來處理表示具體位置的識別信息,但是,在第三實施例中,作為除XPath以外的信息來處 理識別信息。
圖7示出第三實施例中的示例性識別信息。例如,假定外 部服務(wù)可解釋的消息格式是附圖標(biāo)記701中所示的格式。附圖標(biāo) 記702是用于將數(shù)據(jù)和識別信息相關(guān)聯(lián)的信息,其中,該識別信 息使得能夠?qū)τ诟綀D標(biāo)記701的消息格式進(jìn)行數(shù)據(jù)獲取和插入。 在各服務(wù)流程描述文檔中描述附圖標(biāo)記703 、 704和705所示的部 分。首先,將關(guān)聯(lián)信息映射成附圖標(biāo)記707的形式,從而使得根 據(jù)title-base來映射[base],并且根據(jù)key二name和數(shù)據(jù)abc來映射 name=abc,如附圖標(biāo)記706所示。
類似地,如附圖標(biāo)記709中所示,如附圖標(biāo)記708所示映射 關(guān)聯(lián)信息([option], phone=03-1234-5678)。如附圖標(biāo)記710所示, 由于[base]已存在,因而通過添加[base]項,如附圖標(biāo)記711中所 示插入并映射address=tokyo 。 4艮據(jù)該流程生成對外部服務(wù)的消 白、
'&、 o
將所生成的消息711與通過將來自信息702的數(shù)據(jù)插入僅 表示框架的消息701中所獲得的附圖標(biāo)記719進(jìn)行比較。例如, 通過如附圖標(biāo)記718所示,將來自附圖標(biāo)記702的關(guān)聯(lián)信息的數(shù) 據(jù)插入僅表示仍未插入數(shù)據(jù)的框架的消息7 01中,獲得消息719 。 附圖標(biāo)記719包括不包含附圖標(biāo)記711中沒有的age^和e-mai卜 等數(shù)據(jù)的信息。因此,作為使用消息711的結(jié)果,在不向外部服 務(wù)提供不必要的信息的情況下,進(jìn)行消息生成。如果表示框架 的附圖標(biāo)記7 01的消息自身龐大,則在讀取全部消息時將消耗大 量存儲器,這是可以預(yù)料到的。
因此,通過根據(jù)上述流程依次構(gòu)建消息,還可以降低存儲 器的消耗量。
第四實施例接著,參考附圖詳細(xì)說明根據(jù)本發(fā)明的第四實施例。盡管在
第一實施例中給出了將本發(fā)明應(yīng)用于MFP的例子,但是,本發(fā) 明不局限于此,并且還可應(yīng)用于個人計算機(jī)等信息處理設(shè)備。
圖8示出作為We b服務(wù)流程處理設(shè)備的信息處理設(shè)備的示 例性硬件結(jié)構(gòu)。如圖8所示,該信息處理設(shè)備包括輸入裝置801、 顯示裝置802、存儲介質(zhì)驅(qū)動裝置803、存儲介質(zhì)804、 ROM 805、 RAM 806、 CPU 807、 4妄口裝置808和石更盤(HD)809。
由操作者操作的鍵盤和鼠標(biāo)等構(gòu)成輸入裝置8 01,輸入裝 置801用于向該信息處理設(shè)備輸入各種類型的操作信息等。由操 作者使用的顯示器等構(gòu)成顯示裝置802,顯示裝置802用于顯示 各種類型的信息(或窗口)等。接口裝置806是用于將信息處理設(shè) 備連接至網(wǎng)絡(luò)等的接口 。
通過例如C D - R 0 M等存儲介質(zhì)8 04向信息處理設(shè)備提供用 于上述消息生成和結(jié)構(gòu)驗證單元103等進(jìn)行處理的程序,或者通 過網(wǎng)絡(luò)等下載該程序。將存儲介質(zhì)804設(shè)置在存儲介質(zhì)驅(qū)動裝置 803中,并且通過存儲介質(zhì)驅(qū)動裝置803將該程序從存儲介質(zhì)804 安裝到HD 809上。
ROM 805存儲在向信息處理設(shè)備供電時初始讀取的程序 等。RAM 806是信息處理設(shè)備的主存儲器。CPU 807存儲從HD 809讀出至RAM 806的程序,并且通過#1行該程序?qū)崿F(xiàn)上述處理 內(nèi)容。HD 809存儲除程序外的例如Web服務(wù)流程描述文檔和 Web服務(wù)接口描述文檔等。
注意,本發(fā)明可應(yīng)用于由多個裝置(例如,主計算機(jī)、接口 裝置、閱讀器、打印機(jī)等)構(gòu)成的系統(tǒng)或由單個裝置(例如,復(fù) 印機(jī)、傳真機(jī)等)構(gòu)成的設(shè)備。
還可以這樣實現(xiàn)本發(fā)明的目的向系統(tǒng)或i殳備才是供記錄用 于實現(xiàn)上述實施例的功能的軟件的程序代碼的記錄介質(zhì),并且該系統(tǒng)或設(shè)備中的計算機(jī)(CPU或MPU)讀出和執(zhí)行存儲在該記 錄介質(zhì)上的程序代碼。
在這種情況下,從計算機(jī)可讀記錄介質(zhì)讀出的實際程序代 碼實現(xiàn)上述實施例的功能,記錄該程序代碼的記錄介質(zhì)構(gòu)成本 發(fā)明。
可用于提供該程序代碼的記錄介質(zhì)包括例如軟盤、硬盤、 光盤、磁光盤、CD-ROM、 CD-R、磁帶、非易失性存儲卡和ROM。
作為執(zhí)行由計算機(jī)讀出的程序代碼的結(jié)果,本發(fā)明不僅包 含實現(xiàn)上述實施例的功能的模式,而且還包含下面的模式。即, 本發(fā)明還包含這樣 一種模式運行在計算機(jī)上的操作系統(tǒng)(OS) 等基于該程序代碼中的指令進(jìn)行部分或全部實際處理,并且作 為該處理的結(jié)果實現(xiàn)上述實施例的功能。
此外,本發(fā)明還包含下面的模式將從記錄介質(zhì)讀出的程 序代碼寫入設(shè)置在插入計算機(jī)中的功能擴(kuò)展板或與計算機(jī)連接
的功能擴(kuò)展單元中的存儲器中,然后,該功能擴(kuò)展板或功能擴(kuò) 展單元中所設(shè)置的C P U等基于該程序代碼中的指令進(jìn)行部分或 全部實際處理,作為該處理的結(jié)果,實現(xiàn)上述實施例的功能。
盡管參考典型實施例說明了本發(fā)明,但是應(yīng)該理解,本發(fā) 明不局限于所公開的典型實施例。所附權(quán)利要求書的范圍符合 最寬的解釋,以包含所有這類修改、等同結(jié)構(gòu)和功能。
權(quán)利要求
1. 一種服務(wù)流程處理方法,用于基于Web服務(wù)流程描述文檔和從第一Web服務(wù)所接收的第一消息向第二Web服務(wù)發(fā)送第二消息,所述服務(wù)流程處理方法包括數(shù)據(jù)提取步驟,用于基于所述Web服務(wù)流程描述文檔中的描述,從所述第一消息中提取數(shù)據(jù);位置信息提取步驟,用于從所述Web服務(wù)流程描述文檔中提取表示所述第二消息中與所提取的數(shù)據(jù)相對應(yīng)的位置的位置信息;以及構(gòu)建步驟,用于基于從所述Web服務(wù)流程描述文檔所提取的所述位置信息,構(gòu)建所述第二消息的結(jié)構(gòu),其中,在所述構(gòu)建步驟中,基于從所述Web服務(wù)流程描述文檔所提取的所述位置信息,將從所述第一消息所提取的數(shù)據(jù)插入在所述第二消息的結(jié)構(gòu)中。
2. 根據(jù)權(quán)利要求l所述的服務(wù)流程處理方法,其特征在于, 在所述位置信息提取步驟中,提取表示所述第二消息中與所提 取的數(shù)據(jù)相對應(yīng)的位置的XPath,作為所述位置信息。
3. 根據(jù)權(quán)利要求l所述的服務(wù)流程處理方法,其特征在于, 在所述構(gòu)建步驟中,從表示由所述第二Web服務(wù)所接收的消息 的結(jié)構(gòu)的結(jié)構(gòu)信息中提取與從所述Web服務(wù)流程描述文檔所提 取的所述位置信息所表示的位置相對應(yīng)的信息,并且基于從所 述結(jié)構(gòu)信,包、所提取的信息構(gòu)建所述第二消,t-的結(jié)構(gòu)。
4. 根據(jù)權(quán)利要求l所述的服務(wù)流程處理方法,其特征在于, 在所述數(shù)據(jù)^提取步驟中,響應(yīng)于對所述第一Web服務(wù)的請求,接收所述第一消息;以及'在所述位置信息提取步驟中,將所提取的數(shù)據(jù)與所述位置 信息相關(guān)聯(lián)地進(jìn)行保持。
5. 根據(jù)權(quán)利要求l所述的服務(wù)流程處理方法,其特征在于,在所述構(gòu)建步驟中,構(gòu)建作為結(jié)構(gòu)化文檔的所述第二消息的結(jié)構(gòu)。
6. —種服務(wù)流程處理設(shè)備,用于基于Web服務(wù)流程描述文 檔和從第一 We b服務(wù)所接收的第 一 消息向第二 We b服務(wù)發(fā)送第 二消息,所述服務(wù)流程處理設(shè)備包括數(shù)據(jù)提取部件,用于基于所述We b服務(wù)流程描述文檔中的 描述,從所述第一消息中提取數(shù)據(jù);位置信息提取部件,用于從所述Web服務(wù)流程描述文檔中 提取表示所述第二消息中與所提取的數(shù)據(jù)相對應(yīng)的位置的位置 信息;以及構(gòu)建部件,用于基于從所述Web服務(wù)流程描述文檔所提取 的所述位置信息,構(gòu)建所述第二消息的結(jié)構(gòu),其中,所述構(gòu)建部件基于從所述Web服務(wù)流程描述文檔所 提取的所述位置信息,將從所述第 一 消息所提取的數(shù)據(jù)插入在 所述第二消息的結(jié)構(gòu)中。
7. 根據(jù)權(quán)利要求6所述的服務(wù)流程處理設(shè)備,其特征在于, 所述位置信息提取部件提取表示所述第二消息中與所提取的數(shù) 據(jù)相對應(yīng)的位置的XPath,作為所述位置信息。
8. 根據(jù)權(quán)利要求6所述的服務(wù)流程處理設(shè)備,其特征在于, 所述構(gòu)建部件從表示由所述第二 We b服務(wù)所接收的消息的結(jié)構(gòu) 的結(jié)構(gòu)信息中提取與從所述We b服務(wù)流程描述文檔所提取的所 述位置信息所表示的位置相對應(yīng)的信息,并且基于從所述結(jié)構(gòu) 信息所提取的信息構(gòu)建所述第二消息的結(jié)構(gòu)。
9. 根據(jù)權(quán)利要求6所述的服務(wù)流程處理設(shè)備,其特征在于, 所述數(shù)據(jù)提取部件響應(yīng)于對所述第一 Web服務(wù)的請求,接收所述第一消息;以及所述位置信,I;提取部件將所提取的數(shù)據(jù)與所述位置信息相關(guān)聯(lián)地進(jìn)行保持。
10.根據(jù)權(quán)利要求6所述的服務(wù)流程處理設(shè)備,其特征在 于,所述構(gòu)建部件構(gòu)建作為結(jié)構(gòu)化文檔的所述第二消息的結(jié)構(gòu)。
全文摘要
本發(fā)明涉及一種服務(wù)流程處理方法和設(shè)備。所述服務(wù)流程處理設(shè)備從第一Web服務(wù)接收第一消息,并且基于服務(wù)流程描述文檔中的描述從第一消息中提取數(shù)據(jù)。服務(wù)流程處理設(shè)備從Web服務(wù)流程描述文檔中提取表示第二消息中與所提取的數(shù)據(jù)相對應(yīng)的位置的位置信息,并且基于所提取的位置信息構(gòu)建第二消息的結(jié)構(gòu)。服務(wù)流程處理設(shè)備基于從Web服務(wù)流程描述文檔所提取的位置信息,將從第一消息所提取的數(shù)據(jù)插入第二消息的結(jié)構(gòu)中,并且將插入了從第一消息所提取的數(shù)據(jù)的第二消息發(fā)送至第二Web服務(wù)。
文檔編號H04L29/06GK101534307SQ200910117869
公開日2009年9月16日 申請日期2009年3月13日 優(yōu)先權(quán)日2008年3月13日
發(fā)明者巖崎晉吾 申請人:佳能株式會社