專利名稱:用于提供web服務的設備以及方法
技術領域:
本發明涉及用于提供Web服務的設備以及方法。具體來說,本 發明涉及用于判斷用于請求服務的服務請求消息是否滿足規范,然后 提供對應于服務請求消息的服務的設備,并涉及用于執行同一種操作 的方法。
背景技術:
迄今為止,WSDL (Web服務描述語言) 一直被用作描述Web 服務的接口的規范的語言(參見作為有關WSDL的技術文件的專利 文件1)。在用于提供Web服務的提供設備中,用于請求可以由設 備進行處理的服務的消息的數據結構的規范是以WSDL編寫的。然 后,提供設備作為服務的定義數據來說明編寫的規范。用于請求Web 服務的請求設備生成符合所說明的數據結構的消息,并向提供設備發 送該消息。提供設備根據消息中的每一個元素是否都匹配以WSDL 編寫的數據中的對應元素,判斷接收到的消息是否符合規范。如果消 息符合規范,則適當地對服務進行處理。此外,請求設備還可以根據 定義數據自動地生成用于請求服務的應用程序。[專利文件 1日本未經審查的專利申請出版物 No. 2005-174120發明內容[本發明解決的問題用于請求Web服務的消息包含用于標識服務提供設備的URI (統一資源標識符),被請求的服務的標識名,以及要被饋送到服務 以便服務進行處理的輸A數據。被請求的服務由URI和服務標識名 稱唯一地標識,服務標識名稱確定被標識的服務的輸入數據的數據結
構。以WSDL編寫的定義數據作為這樣的URI、標識名稱,以及輸 入數據的數據結構的組合來定義Web服務的接口。當Web服務提供設備提供彼此類似的多個服務時,則可能需要 通過附加通用的標識名稱來管理這些服務。例如,當作為Web服務 提供使用應用程序表單的應用程序服務時,服務"submit,,的內容是通 用的,而與應用程序表單的類型無關,雖然對于每一種類型的應用程 序表單,輸入數據的結構是不同的。相應地,通過附加通用的標識名 稱并根據輸入數據的結構執行不同的操作來管理這些服務,不僅使得 對用于對服務進行處理的程序的維護和管理更加容易,而且對于提供 方法過載功能的已知程序語言,具有高的親和力。然而,如果對具有以已知WSDL編寫的不同數據結構的輸入數 據的多個服務定義了相同的標識名稱,則不能執行成功的操作,因為 不能唯一地標識服務。當為每一個服務提供了提供設備時,定義具有 相同的標識名稱的多個服務成為可能。然而,隨著服務的數量增大, 這需要許多提供設備,這可能會導致系統復雜化。相應地,本發明的目的是提供一種能夠解決上文所描述的問題的 提供設備、系統、方法以及程序。此目的是通過將所附的權利要求中 的獨立權利要求中所描述的特征組合起來取得的。另外,從屬權利要 求定義了本發明的進一步的有益的實施例。[解決問題的手段為解決上文所描述的問題,根據本發明的一個方面,提供了一種 用于接收服務請求消息并提供對應于接收到的服務請求消息中包含 的輸入數據的結構的服務的提供設備,該提供設備包括通用定義存 儲器,用于預先存儲通用定義數據,該通用定義數據定義要被接收到 的服務請求消息的數據結構共同滿足的規范,而與消息中包含的輸入 數據的數據結構無關,用于使用通信接口接收所述服務請求消息的接 收器,所述服務請求消息包含所述輸入數據和允許將所述輸入數據的 數據結構標識為元素的接口標識符,通用驗證器,用于通過中央處理 單元的操作,根據所述接收到的服務請求消息中的每一個元素是否匹 配所述通用定義數據中的對應元素,驗證所述接收到的服務請求消息 是否滿足所述規范,單個定義存儲器,用于與所述接口標識符相關聯 地預先存儲單個定義數據,所述單個定義數據定義由所述接口標識符 所標識的數據結構的規范,所述規范將被匹配于所述通用定義數據中的ANY元素的輸入數據滿足,其中所述ANY元素匹配于不同數據 結構中的任何輸入數據,檢索器,用于通過所述中央處理單元的操作 從所述單個定義存儲器中檢索和讀出對應于所述接收到的服務請求 消息中包含的所述接口標識符的單個定義數據,單個驗證器,用于通 過所述中央處理單元的操作,確定如果所述服務請求消息中的每一個 元素都匹配所述檢索到的單個定義數據中的所述對應元素,則所述服 務請求消息滿足所述規范,以及服務處理器,用于如果所述服務請求 消息中的每一個元素都塔配所述通用定義數據和所述單個定義數據 中的所述對應元素,則通過所述中央處理單元的操作,對對應于所述服務請求消息中包含的所述輸入數據的數據結構的所述服務進行處 理。此外,還提供了一種使信息處理設備用作提供設備的程序。在如上文所提及的本發明的發明內容中,并沒有列舉本發明的所 有必要的特征,這些特征的再組合也可以構成本發明。
圖1顯示了信息系統10的配置的概述。圖2顯示了信息系統20的配置的概述。圖3顯示了服務提供設備30的功能配置。圖4顯示了服務處理單元300的功能配置。圖5顯示了接口定義單元310的功能配置。圖6顯示了存儲在通用定義存儲器400中的通用定義數據的示例。圖7顯示了單個定義存儲器430中的數據結構的示例。圖8顯示了測試WSDL文件700的示例。圖9顯示了用于響應來自用戶的輸入生成單個定義數據的過
圖10顯示了輸入接收器500顯示出的輸入屏幕的示例。 圖11顯示了響應接收服務請求消息對服務進行處理的流程。 圖12顯示了用作服務提供設備30的信息處理設備1200 的硬件配置的示例。[附圖標記J10:信息系統20:信息系統30:服務提供設備100:服務提供設備105:定義數據110:服務請求設備200:服務提供設備205:定義數據210:服務請求設備300:服務處理單元310:接口定義單元320:服務請求設備400:通用定義存儲器410:接收器420:通用驗證器430:單個定義存儲器440:檢索器450:單個驗證器460:服務處理器;500:輸入接收器510:定義數據生成器520:定義數據管理器700:測試WSDL文件
1200: 信息處理i殳備具體實施方式
雖然下面將通過具體實施方式
(下面,簡稱為實施例)來描述本發明,但是,下面將給出的實施例并不限制由權利要求所定義的本發 明,并非實施例中所描述的所有特征的組合對本發明的解決手段都是 不可缺少的。圖1顯示了信息系統10的配置的概述。信息系統10包括服 務提供設備100-1到100-N和分別對應于服務提供設備100-1到 100-N的服務請求設備110-1到110-N。服務提供設備100-1到 100-N中的每一個都根據具有彼此不同的數據結構的輸入數據提供 類似的服務。例如,所有服務提供設備100-1到100-N都接受提 交的在工作流管理中所使用的應用程序表單數據。然而,每一個服務 提供設備100-1到100-N都涵蓋了對不同種類的應用程序表單的 處理。服務提供設備100-1到100-N分別存儲對應的定義數據 105-1到105-N。定義數據105-1到105-N是以例如WSDL編寫 的。在從對應的服務請求設備110接收服務請求消息時,每一個服 務提供設備100-1到100-N驗證服務請求消息的數據結構是否滿 足規范。此驗證是根據對應的定義數據105中的每一個元素是否都 匹配服務請求消息中的對應元素來執行的。圖1概要顯示了通過將 定義數據105安排在服務提供設備100的附近來使用定義數據 105進行的驗證。此外,還向對應的服務請求設備110說明定義數據105。每一 個服務請求設備110-1到110-N都從服務提供設備100獲取對應 的定義數據105,并將定義數據105存儲在其中。服務請求設備 110-1到110-N的每一個用戶都創建用于請求服務的應用程序,以 便在瀏覽所獲得的定義數據105時請求消息符合規范。然后,用戶 在服務請求設備110中運行應用程序。或者,每一個服務請求設備110-1到110-N都可以利用基于定義數據自動地創建應用程序的軟 件來自動地創建用于請求服務的應用程序。相應地,可以安裝多個服務提供設備和多段定義數據,以提供使 用具有不同結構的輸入數據的類似的服務類型。然而,此配置需要與 輸入數據的數據結構的類型數成比例的服務提供設備。例如,在作為 對應的定義數據提供定義數據105-(N+l)之后必須新添加服務提供 設備,以便添加具有不同數據結構的輸入數據。添加服務提供設備 100-(N+l)需要安裝新的設備,或需要修改Web頁面的配置,并新 開發用于對服務進行處理的應用程序,即使不另外安裝設備,這是比 較麻煩的。圖2顯示了信息系統20的配置的概述。信息系統20包括服 務提供設備200和服務請求設備210。即使服務請求消息包含不同 數據結構的多段輸入數據中的任何一段,服務提供設備200根據數 據結構對操作進行分類,并有選擇地對適當的服務進行處理。服務提 供設備200還存儲定義數據205。如在如圖1所示的情況,定義數 據205用于驗證服務請求消息是否滿足規范。定義數據205包括匹配不同數據結構的任何輸入數據的ANY 元素。具體來說,服務提供設備200根據定義數據205判斷是否滿 足要被共同滿足的規范,而與輸入數據的數據結構無關。另一方面, 服務提供設備200不根據定義數據205判斷服務請求消息中包含 的輸入數據是否滿足規范。在輸入數據的數據結構之外的數據結構滿 足規范的條件下,服務提供設備200基于輸入數據執行操作。將定義數據205通知給服務請求設備210。定義數據205用于 在服務請求設備210中開發應用程序。然而,由于定義數據205包 含輸入數據的ANY元素,可以限制用于請求服務的應用程序的自動 創建。具體來說,在完全理解在服務提供設備200中根據數據結構 執行操作的分類之后,程序開發人員必須創建適合于操作的適當的應 用程序。因此,最初用于對接口進行定義的定義數據205,不起作用。 結果,難以準確地定義程序的規范,可能要花許多精力和成本來維護
和管理或改進程序。另一方面,如下所示的服務提供設備30將接口定義清楚地通知 給服務請求設備。同時,可以由一個服務提供設備30對具有多個不 同數據結構的輸入數據進行處理。下面將具體地描述服務提供設備 30。圖3顯示了服務提供設備30的功能配置。服務提供設備30 包括服務處理單元300和接口定義單元310。服務提供設備30被 設計為響應來自每一個服務請求設備320-1到320-N的請求而對 服務進行處理。服務處理單元300被虛擬地分配給Web系統上的一 個位置。即,使用URI (統一資源標識符)從外部以可標識的方式對 服務處理單元300進行管理。服務處理單元300從服務請求設備 320-1到320-N中的某一個(例如,服務請求設備320-1 )接收服務 請求消息。然后,服務處理單元300驗證服務請求消息是否滿足必 須滿足的規范以請求可以由服務處理單元300進行處理的服務。此 驗證是#>據通用定義數據和單個定義數據執行的。通用定義數據定義 了不管輸入數據的數據結構如何而共同滿足的規范,而單個定義數據 允許對輸入數據的數據結構是否滿足規范進行單個的驗證。如果滿足 規范,則服務處理單元300對服務進行處理,并將處理結果返回到 服務請求設備320-1。接口定義單元310從用戶接受有關輸入數據的數據結構的新的 規范的輸入。接口定義單元310根據此規范生成單個定義數據,并 將所生成的單個定義數據存儲在服務處理單元300中。這可使服務 處理單元300根據此單個定義數據驗證服務請求消息。此外,接口 定義單元310還將所生成的單個定義數據通知給服務請求設備 320-1到320-N。這可使每一個服務請求設備320-1到320-N生成 符合單個定義數據的服務請求消息,并將所生成的服務請求消息發送 到服務處理單元300。圖4顯示了服務處理單元300的功能配置。服務處理單元300 具有通用定義存儲器400,接收器410,通用驗證器420,單個定義 存儲器430,檢索器440,單個驗證器450,以及服務處理器460。 服務處理單元300向服務請求設備320-1到320-N提供Web服 務。這些單元中的每一個單元都是通過稍后將描述的中央處理單元 (CPU) 1000和隨機存取存儲器(RAM) 1020的操作來實現的。下面 將作為示例描述這些單元中的每一個單元的功能,其中,在從服務請 求設備320-1接收服務請求之后服務處理單元300對服務進行處 理。通用定義存儲器400預先存儲通用定義數據,該通用定義數據 定義接收到的服務請求消息的數據結構應該共同滿足的規范,而與消 息中包含的輸入數據的數據結構無關。通用定義數據可以以例如 Web服務描述語言WSDL進行編寫。此通用定義數據包含可擴展標 記語言XML的ANY數據類型的元素或"ANY"元素。ANY類型元 素或ANY元素匹配不同數據結構的多段輸入數據中的任何一個。利 用此配置,可以判斷不包括服務請求消息的輸入數據的部分是否滿足 規范。接收器410使用稍后所描述的通信接口 (I/F) l(BO從服務請 求設備320-1接收服務請求消息,包括輸入數據和允許將輸入數據的 數據結構標識為元素的接口 ID。此服務請求消息是,例如,包含接 口 ID作為元素的SOAP(簡單對象訪問協議)消息。此接口 ID可 以由在服務請求設備320-1中操作的用于請求服務的應用程序來提 供,作為SOAP消息中的預先確定的標記的屬性值。或者,此接口 ID 可以是SOAP消息中設置的命名空間的名稱。通用驗證器420從通用定義存儲器400讀出通用定義數據。然 后,通用驗證器420通過CPU 1000的操作,根據接收到的服務請 求消息中的每一個元素是否匹配通用定義數據中的對應元素,來驗證 接收到的服務請求消息是否滿足規范。例如,由于通用定義數據中的 ANY元素匹配任何數據,構的輸入數據,因此,服務請求消息滿足 通用的規范,即使它包含任何數據結構的輸入數據。然而,如果不包 括輸入數據的部分中的每一個元素不匹配通用定義數據中包括的對
應元素,則服務請求消息不滿足規范。例如,此驗證判斷可以作為使用XML架構的WSDL驗證過程來實現。單個定義存儲器430與接口 ID相關聯地預先存儲單個定義 數據,單個定義數據定義由接口 ID所標識的數據結構的規范。單個 定義數據定義了匹配通用定義數據中的ANY元素的輸入數據應該 滿足的數據結構的規范。此外,還可以通過將通用定義數據中包括的 ANY數據類型的元素或ANY元素替換為匹配具有不同數據類型或 不同標識信息的輸入數#的多個元素來生成每一個單個定義數據。檢索器440通過CPU的操作從單個定義存儲器430中檢索 并讀出對應于接收到的服務請求消息中包括的接口 ID的單個定義 數據。在服務請求消息的每一個元素都匹配檢索到的單個定義數據的 對應元素的條件下,那么,單個驗證器450通過CPU 1000的操作 判斷服務請求消息滿足規范。此判斷也可以作為使用XML架構的 WSDL驗證過程來實現。如果服務請求消息中的每一個元素都匹配通用定義數據和單個 定義數據中的對應元素,那么,服務處理器460通過CPU 1000的 操作,對對應于服務請求消息中包含的輸入數據的數據結構的服務進 行處理。圖5顯示了接口定義單元310的功能配置.接口定義單元310 具有輸入接收器500、定義數據生成器510,以及定義數據管理器 520。為了對服務進行處理,對于輸入數據中包括的每一個輸入項, 輸入接收器500接收用戶通過諸如鍵盤或指示設備之類的輸入設備 輸入的輸入項的項目名和輸入項的數據類型。例如,在提供了用于接 受提交的在工作流管理中所使用的應用程序表單的服務的情況下,在 應用程序表單中寫入的數據對應于輸入數據,應用程序表單中包括的 每一項都對應于輸入數據的輸入項。可以根據項的特征,向應用程序 表單的項中輸入數值或字符。這樣的數據特征對應于數據類型。即, 當用戶希望提供用于接受提交的新的應用程序表單的服務時,用戶只 需要使用鍵盤等等向輸入接收器500中輸入應用程序表單中包括的
每一項的項目名,數據類型,及其他信息。定義數據生成器510通過CPU 1000的操作從通用定義存儲 器400中讀出通用定義數據。然后,定義數據生成器510將通用定 義數據中包括的ANY元素替換為以由輸入接收器500接收到的項 目名作為元素名稱、并以由輸入接收器500接收到的數據類型作為 數據類型屬性的元素。然后,定義數據生成器510使用替換后的定 義數據作為生成的新的單個定義數據,并將生成的單個定義數據提供到定義數據管理器520。定義數據管理器520通過CPU 1000的操 作與允許標識替換后的元素的接口 ID相關聯地將生成的單個定義 數據存儲在單個定義存儲器430中。然后,定義數據管理器520將 接口 ID通知給服務請求設備320-1到320-N。接口 ID可以通過 接受用戶的輸入以及項目名的輸入等等(例如)來生成。此外,還可 以根據預先確定的規則生成沒有重復的字符、簽名或編號,并用作接 口 ID。或者,可以生成接口 ID并將其包括在單個定義數據中。例如, 定義數據生成器510可以通過將通用定義數據中的ANY元素替換 為以項目名為元素名稱的元素,然后將元素的標識信息作為命名空間 的名稱添加到定義數據中,來生成新的單個定義數據。在此情況下, 定義數據管理器520不必與單個定義數據分開地將接口 ID通知給 服務請求設備320-1到320-N.如果定義數據管理器520將單個定 義數據通知給服務請求設備320-1到320-N,也將其中包括的接口 ID通知給服務請求i殳備320-1到320-N。在這樣的情況下,服務請 求設備320-1到320-N只需要基于通知的單個定義數據生成服務 請求消息。如此,服務請求設備320-1到320-N可以包括作為服務 請求消息中的命名空間的名稱提供給它們的接口 ID,而不進行涉及 接口 ID的顯式處理。圖6是存儲在通用定義存儲器400中的通用定義數據的示例。 此通用定義數據是以WSDL編寫的,不僅包含用于定義輸入數據的 數據結構的類型定義,而且還包含消息定義、綁定定義,以及服務定, 義。圖6有選擇地顯示了這些定義之中的類型定義。在此通用定義 數據中,在第3行中定義了服務標識信息"submit"。在隨后的第4 行到第9行中,定義了對服務進行處理所需的輸入數據的數據結構。 具體來說,第6行表示元素名稱為"fixedParameter"的數據是字符串 類型"string"。第7行的數據是ANY元素,并匹配給定數量的給定 數據類型的元素。第5和8行表示第6和7行的元素是按此順序 編寫的。具體來說,如果服務"submit"的輸入數據是以字符串類型 "fixedParameter,,的元素開始接下來是給定元素的數據,那么,輸入 數據被判斷為符合規范。第11到17行顯示了具有標識信息"submitReseponse,,的服 務。此服務的輸入數據的數據結構不包含ANY元素。相應地,只有 給定了預先定義數據,即,標識名稱為"submitReturn"的字符串類型 的數據,被允許作為此服務的輸入,而其他類型的輸入被判斷不滿足 規范。圖7顯示了單個定義存儲器430中的數據結構的示例。單個定 義存儲器430與接口 ID相關聯地預先存儲單個定義數據,單個定 義數據定義由接口 ID所標識的數據結構的規范。單個定義數據是, 例如,彼此獨立的WSDL文件,并可以根據其應用和服務的處理內 容,附加不同的文件名。例如,接口 ID為1的單個定義數據包括 在名為"TEST.wsdl,,的文件中。存儲在此文件中的單個定義數據被稱 為測試wsdl文件700。檢索器440從接收到的服務請求消息中提 取接口 ID,然后從單個定義存儲器430中檢索對應于接口 ID的 WSDL文件。然后,檢索器440讀出檢索到的WSDL文件,并將 WSDL文件輸出到單個驗證器450。圖8顯示了測試WSDL文件700的示例。類似于圖6的i兌 明,圖8有選擇地顯示了來自單個定義數據的數據類型定義。此單 個定義數據定義了匹配通用定義數據中的ANY元素的輸入數據應 該滿足的數據結構的規范。數據結構由如圖7所示的接口 ID"1"來 進行標識。具體來說,圖8中的第3行指出,定義了服務"submit"
的接口。在第4到10行寫入了定義的實體。第6行表示元素名稱 為"fixedParameter"的數據是字符串類型"string"。這與圖6的第6 行顯示的說明相同。具體來說,第6行指出要一定滿足的規范,即 使輸入數據的數據結構不同。相比之下,第7和8行定義了代替如圖6所示的ANY元素 的特定元素名稱和數據類'型。笫 7行表示元素名稱為 "variableParameterl,,的數據是字符串類型"string"。第8行表示元 素名稱為"variableParameter2"的數據是字符串類型"string"。具體來 說,不由通用驗證器420判斷服務請求消息中的"fixedParameter,, 之后的每一個元素是否滿足規范。然而,每一個元素是否專門滿足規 范由單個驗證器450來進行判斷。如圖8所示,根據本發明的實施例的數據結構對應于一個概念, 不僅包括一個元素的數據類型,而且還包括由多個元素構成的數據中 的元素的數量,每一個元素的標識名稱,以及每一個元素的數據類型。 根據實施例的服務提供設備30允許具有相同的標識名稱的服務的 如上文所描述的各種輸入數據,并能夠有選擇地根據數據結構執行適 當的操作。圖9顯示了用于響應來自用戶的輸入生成單個定義數據的過 程。輸入接收器500向用戶顯示輸入屏幕,并從用戶那里接收項目 名以及其數據類型的輸入(S900)。輸入接收器500也在輸入屏幕上 接收接口 ID的輸入(S910)。請參看圖10,該圖說明了用于定義應用程序表單數據的接口的輸入屏幕,應用程序表單數據是有關接受提 交的在工作流管理中所使用的應用程序表單的服務的輸入數據。圖10顯示了輸入接收器500顯示出的輸入屏幕的示例。在此 輸入屏幕上的字段"FIELD NAME,,處顯示了已經輸入的輸入項的名 稱列表。與"COMMENT"相關聯地顯示了每一個輸入項,用于描述輸 入項的角色,"TYPE"和"CONTAINER TYPE"表示項的數據類型, 項的"ATTRIBUTE",信息表示輸入項是否要利用WSDL數據進行 驗證。作為示例,輸入項"Userld,,表示申請人的標識信息,其數據類
型是正文類型。該項也要利用wsdl數據進行驗證。在用戶利用指示設備等等選擇輸入項時,有關輸入項的情況在屏 幕下部顯示的"fieldproperty"中變得可編輯。具體來說,例如, 輸入接收器500接收在field property中的字段"field name"處輸入的字符串作為輸入項的項目名。此項目名被用作單個 定義數據中的輸入數據中包含的元素的元素名稱。然后,輸入接收器 500 接收在 field property 中的字段"type"或 "container type"處輸入的數據類型作為輸入項的數據類型。此 數據類型被用作單個定義數據中的輸入數據中包含的元素的屬性值。此外,輸入接收器500還在屏幕的上部顯示了接口 id輸入字 段。具體來說,輸入接收器500接收在此接口 id輸入字段中輸入 的字符串作為接口 id。此輸入接口 id可以作為單個定義數據的命 名空間的名稱包括在單個定義數據中。或者,可以與單個定義數據分 開獨立地生成接口 id,并與單個定義數據相關聯地向服務請求設備 320-1到320-n輸出。請回頭參看圖9,定義數據生成器510然后根據已經輸入的項 目名和數據類型,生成單個定義數據(s920)。具體來說,定義數據生 成器510首先從通用定義存儲器400讀出通用定義數據。然后,定 義數據生成器510將通用定義數據中包含的any元素替換為以由 輸入接收器500接收到的項目名作為元素名稱、并以由輸入接收器 500接收到的數據類型作為數據類型屬性的元素。然后,定義數據生 成器510使用替換后的定義數據作為新的單個定義數據。定義數據管理器520與允許標識下一個替換后的元素的接口 id相關聯地將生成的單個定義數據通知給服務請求設備320-1到 320-n (s930)。此接口 id例如對應于圖10中所顯示的接口 id輸 入字段處的一個輸入。被通知了接口 id的每一個服務請求設備 320-1到320-n都可以包括根據對應于接口 id的單個定義數據生 成的服務請求消息中的接口 id,并可以向服務提供設備30發送服 務請求消息。定義數據管理器520與對應的接口 id相關聯地將生 成的單個定義數據存儲在單個定義存儲器430中(S940)。圖11顯示了響應接收服務請求消息對服務進行處理的流程。接 收器410從服務請求設備320-1接收服務請求消息,該服務請求消 息包含輸入數據和允許將輸入數據的數據結構標識為元素的接口 ID (SllOO)。然后,通用驗證器420驗證服務請求消息的數據結構是否 滿足不管輸入數據的數據結構如何都要共同滿足的規范(SlllO)。具 體來說,通用驗證器420從通用定義存儲器400中讀出通用定義數 據,并判斷接收到的服務請求消息中的每一個元素是否都匹配通用定 義數據中的對應元素。例如,當輸入數據之外的部分不符合規范時或 當不包含接口 ID時,通用驗證器420判斷木滿足要共同滿足的規 范。檢索器440通過CPU的操作從單個定義存儲器430中檢索 并讀出對應于接收到的服務請求消息中包括的接口 ID的單個定義 數據(S1120)。如果沒有檢索這樣的單個定義數據(S1125:NO),則服 務處理器460返回一個錯誤通知,指出服務請求消息不滿足規范 (S1150)。如果檢索到了單個定義數據(S1125:YES),則單個驗證器 450判斷服務請求消息是否滿足單個定義數據(S1130)。此驗證是根 據服務請求消息中的每一個元素是否都匹配單個定義數據中的對應 元素來執行的。如果服務請求消息中的每一個元素都匹配通用定義數據和單個 定義數據中的對應元素(S1140:YES),那么,服務處理器460對對 應于服務請求消息中包含的輸入數據的數據結構的服務進行處理 (S1160)。然后,服務處理器460返回對服務進行處理的處理結果 (S1170)。另一方面,如果服務請求消息中有任何元素不匹配通用定義 數據中的或單個定義數據中的對應元素的話(S1140:NO),則服務處 理器460返回一個錯誤通知,指出服務請求消息不符合規范 (S1150)。圖12顯示了用作服務提供設備30的信息處理設備1200的 硬件配置的示例。信息處理設備1200具有CPU (中央處理單元)
外圍部分,輸入/輸出(I/O)部分,以及舊式I/O部分。CPU外圍 部分包括CPU 1000、 RAM (隨機存取存儲器)1020,以及圖形控制 器1075,它們通過主機控制器1082彼此連接在一起。I/O部分包 括通信接口 (I/F) 1030、硬盤驅動器(HDD) 1040,以及CD-ROM(壓 縮光盤-只讀存儲器)驅動器1060,它們通過I/O控制器1084連接 到主機控制器1082。舊式I/O部分包括ROM 1010、軟磁盤驅動器 (FD驅動器)1050,以及I/O芯片1070,它們連接到I/O控制器 1084。CPU 1000和圖形控制器1075以較高的傳輸速率訪問RAM 1020。主機控制器1082將RAM 1020、 CPU 1000,以及圖形控制 器1075互連在一起。CPU 1000基于存儲在ROM 1010和RAM 1020中的程序而進行操作,并對每一部分進行控制。圖形控制器 1075在RAM 1020中提供的幀緩沖器中獲取由CPU 1000等等所 生成的圖像數據,并使使顯示設備1080在其上面顯示對應于圖像數 據的圖像。代替此配置,圖形控制器1075可以包括幀緩沖器,用于 在其中存儲由CPU 1000等等生成的圖像數據。I/O控制器1084將主機控制器1082以及諸如通信接口 1030、 HDD 1040,以及CD-ROM驅動器1060之類的相對來說速 度比較高的I/O設備互連在一起。通信接口 1030通過網絡與外部 設備進行通信。HDD 1040存儲供信息處理設備1200使用的程序和 數據。CD-ROM驅動器1060從CD-ROM 1095讀取程序或數據, 并將程序或數據提供到RAM 1020或HDD 1040。ROM 1010以及諸如FD驅動器1050和I/O芯片1070之 類的相對來說速度比較低的I/O設備,連接到I/O控制器1084。 ROM 1010存儲在信息處理設備1200啟動時由CPU 1000所執行 的啟動程序,以及依賴于信息處理設備1200的硬件的程序。FD驅 動器1050從軟盤1090讀取程序或數據,并通過I/O芯片1070 將程序或數據提供到RAM 1020或HDD 1040。 I/O芯片1070通 過,例如,并行端口、串行端口、鍵盤端口或鼠標端口等等,連接到 軟盤1090和各種輸入/輸出i殳備。要提供到信息處理設備1200的程序存儲在記錄介質上,如軟盤 10卯、CD-ROM 1095,或IC(集成電路)卡,并由用戶提供到信息 處理i殳備1200。通過I/O芯片1070和/或I/O控制器1084從記 錄介質中讀出程序,并安裝到信息處理設備1200中,由其執行。由 于程序使信息處理設備1200等等執行的操作與參考圖1到11描 述的服務提供設備30執行的操作相同,因此,省略了其說明。上文所描述的程序可以存儲在外部記錄介質上。記錄介質不僅可 以是軟盤1090或CD-ROM 1095,而且還可以是諸如DVD (數字 通用光盤)或PD (相位變化可重寫光盤)之類的光記錄介質,諸如 MD (微型光盤)之類的磁光記錄介質,磁帶介質,以及諸如IC卡 之類的半導體存儲器。此外,程序還可以通過網絡,使用連接到專用 通信網或因特網的服務器系統中提供的諸如HDD或RAM之類的 存儲設備,提供到信息處理設備1200。如上文所描述的,有關WSDL等等中的接口定義,根據實施例 的服務提供設備30可以管理使用具有相同的標識名稱的不同數據 結構的輸入數據的多個服務。這使得請求服務的用戶利用接口定義更 有效地開發應用程序。另一方面,提供服務的用戶不必新添加服務提 供設備30,并可以使用現有的服務提供設備30,無需進行任何修改, 即使添加了新服務。此外,在開發定義數據時,還可以提供現有的程 序語言中的相當于方法過載的功能。此外,有關添加新服務所需的新 的單個定義數據的開發,可以通過提供允許為每一個輸入項輸入數據 的接口定義單元310來改進用戶的方便性。盡管是使用本發明的實施例來對本發明進行描述的,但是,本發 明的技術范圍不僅限于上文的實施例中所描述的范圍。對于那些本領 域普通技術人員顯而易見的是,可以向上文所描述的實施例中添加各 種修改或改進。例如,服務提供設備30可以按照對服務進行處理之 后消息返回處理的順序使用通用定義數據和使用單個定義數據進行 驗證。具體來說,通用定義數據定義了不管通知消息的輸出數據的數
據結構如何而共同滿足的規范。另一方面,單個定義數據定義了要被 通知消息的輸出數據的數據結構滿足的規范。在對服務進行處理之后,服務提供設備30生成輸出信息,以便允許標識服務的輸出消息 的數據結構的接口 ID包含在輸出消息中。然后,服務提供設備30 判斷輸出消息是否滿足通用定義數據,并判斷輸出消息是否滿足對應 于接口 ID的單個定義數據。如果輸出消息滿足每一個規范,則將輸 出消息返回到服務請求設備。從所附的權利要求可以看出,這樣的修 改或改進也可以包括在本發明的技術范圍內。
權利要求
1.一種用于接收服務請求消息并提供對應于所述接收到的服務請求消息中包含的輸入數據的結構的服務的提供設備,包括通用定義存儲器,用于預先存儲通用定義數據,所述通用定義數據定義要被所述接收到的服務請求消息的數據結構共同滿足的規范,而與所述消息中包含的所述輸入數據的數據結構無關;用于使用通信接口接收所述服務請求消息的接收器,所述服務請求消息包含所述輸入數據和允許將所述輸入數據的數據結構標識為元素的接口標識符;通用驗證器,用于通過中央處理單元的操作,根據所述接收到的服務請求消息中的每一個元素是否匹配所述通用定義數據中的所述對應元素,驗證所述接收到的服務請求消息是否滿足所述規范;單個定義存儲器,用于與所述接口標識符相關聯地預先存儲單個定義數據,所述單個定義數據定義由所述接口標識符所標識的數據結構的規范,所述規范將被匹配于所述通用定義數據中的ANY元素的輸入數據滿足,其中所述ANY元素匹配于不同數據結構中的任何輸入數據;檢索器,用于通過所述中央處理單元的操作從所述單個定義存儲器中檢索和讀出對應于所述接收到的服務請求消息中包含的所述接口標識符的單個定義數據;單個驗證器,用于通過所述中央處理單元的操作,確定如果所述服務請求消息中的每一個元素都匹配所述檢索到的單個定義數據中的所述對應元素,則所述服務請求消息滿足所述規范;以及服務處理器,用于如果所述服務請求消息中的每一個元素都匹配所述通用定義數據和所述單個定義數據中的所述對應元素,則通過所述中央處理單元的操作,對對應于所述服務請求消息中包含的所述輸入數據的數據結構的所述服務進行處理。
2. 根據權利要求1所述的提供設備,其中,所述提供設備是用于提供Web服務的設備,以及其中,所述通用定義存儲器存儲包括ANY數據類型的元素或 可擴展標記語言XML的ANY元素,并且以Web服務描述語言 WSDL編寫的數據,作為所述通用定義數據,以及其中,所述接收器以所述服務請求消息的形式,接收包括所述接 口標識符作為元素的簡單對象訪問協議SOAP消息,以及其中,所述通用驗證器以WSDL驗證操作的形式,判斷所述服 務請求消息中的每一個元素是否都匹配所述通用定義數據中的所述 對應元素,以及其中,所述單個定義存儲器預先存儲多段單個定義數據,其中這 些多段單個定義數據通過將所述通用定義數據中包含的ANY數據 類型的元素或ANY元素替換為匹配具有不同數據類型或不同標識 信息的所述輸入數據的多個元素而獲得,以及其中,所述單個驗證器以所述WSDL驗證操作的形式,判斷所 述服務請求消息中的每個元素是否都匹配所述單個定義數據中的所 述對應元素。
3. 根據權利要求2所述的提供設備,其中,所述接收器接收 在所述SOAP消息中設置的命名空間的名稱作為所述接口標識符。
4. 根據權利要求3所述的提供設備,進一步包括 輸入接收器,用于對于所述輸入數據中包括的每一個輸入項,接收用戶通過輸入/輸出設備輸入的所述輸入項的項目名和所述輸入項 的數據類型;定義數據生成器,用于通過所述中央處理單元的操作,通過從所 述通用定義存儲器中讀出所述通用定義數據,將所述通用定義數據中 包含的所述ANY元素替換為以由所述輸入接收器接收到的所述項 目名作為元素名稱、并以由所述輸入接收器接收到的所述數據類型作 為數據類型屬性的元素,并添加所述替換后的元素的所述標識信息作 為命名空間的所述名稱,生成新的單個定義數據;以及定義數據管理器,用于通過所述中央處理單元的操作,將所述生成的單個定義數據存儲在所述單個定義存儲器中,并用于通知請求設 備,以便請求所述生成的單個定義數據的服務。
5. 根據權利要求2所述的提供設備,進一步包括 輸入接收器,用于對于所述輸入數據中包括的每一個輸入項,接收用戶通過輸入/輸出設備輸入的所述輸入項的項目名和所述輸入項 的數據類型;定義數據生成器,用于通過所述中央處理單元的操作,通過從所 述通用定義存儲器中讀出所述通用定義數據,將所述通用定義數據中 包含的所述ANY元素替換為以由所述輸入接收器接收到的所述項 目名作為元素名稱、并以由所述輸入接收器接收到的所述數據類型作 為數據類型屬性的元素,生成新的單個定義數據;以及定義數據管理器,用于通過所述中央處理單元的操作,與允許標 識所述替換后的元素相關聯地將所述生成的單個定義數據存儲在所 述單個定義存儲器中,并用于通知請求設備,以便請求所述接口標識 符的服務。
6. —種系統,包括用于發送服務請求消息以便請求服務的請 求設備;以及用于接收服務請求消息并提供對應于所述接收到的服務 請求消息中包含的輸入數據的結構的服務的提供設備,其中,所述提 供設備包括通用定義存儲器,用于預先存儲通用定義數據,所述通用定義數 據定義要被所述接收到的服務請求消息的數據結構共同滿足的規范, 而與所述消息中包含的所述輸入數據的數據結構無關,用于使用通信接口接收所述服務請求消息的接收器,所述服務請 求消息包含所迷輸入數據和允許將所述輸入數據的數據結構標識為 元素的接口標識符,通用驗證器,用于通過中央處理單元的操作,根據所述接收到的服務請求消息中的每一個元素是否匹配所述通用定義數據中的所述 對應元素,驗證所述接收到的服務請求消息是否滿足所述規范,單個定義存儲器,用于與所述接口標識符相關聯地預先存儲單個 定義數據,所述單個定義數據定義由所述接口標識符所標識的數據結構的規范,所述規范將被匹配于所述通用定義數據中的ANY元素的 所述輸入數據滿足,其中所述ANY元素匹配于不同數據結構中的任 何輸入數據,檢索器,用于通過所述中央處理單元的操作,從所述單個定義存 儲器中檢索和讀出對應于所述接收到的服務請求消息中包含的所述 接口標識符的單個定義數據,單個驗證器,用于通過所述中央處理單元的操作,確定如果所述 服務請求消息中的每一個元素都匹配所述檢索到的單個定義數據中 的所述對應元素,則所述服務請求消息滿足所述規范,服務處理器,用于如果所述服務請求消息中的每一個元素都匹配 所述通用定義數據和所述單個定義數據中的所述對應元素,則通過所 述中央處理單元的操作,對對應于所述服務請求消息中包含的所述輸 入數據的數據結構的所述服務進行處理,以及定義數據管理器,用于通過所述中央處理單元的操作,將與允許標識所述單個定義數據中包含的所述輸入數據的數據結構的所述接口標識符關聯的每一個單個定義數據通知給所述請求設備,以及其中,所述請求設備包括由所述定義數據管理器在根據對應于所 述接口標識符的所述單個定義數據生成的所述服務請求消息中通知的所述接口標識符,并向所述提供設備發送所述服務請求消息。
7. —種程序產品,用于使信息處理設備用作用于接收服務請求消息并提供對應于所述接收到的服務請求消息中包含的輸入數據的結構的服務,所述程序使所述信息處理設備用作通用定義存儲器,用于預先存儲通用定義數據,所述通用定義數據定義要被所述接收到的服務請求消息的數據結構共同滿足的規范,而與所述消息中包含的所述輸入數據的數據結構無關;用于使用通信接口接收所述服務請求消息的接收器,所述服務請求消息包含所述輸入數據和允許將所述輸入數據的數據結構標識為元素的接口標識符; 通用驗證器,用于通過中央處理單元的操作,根據所述接收到的 服務請求消息中的每一個元素是否匹配所述通用定義數據中的所述對應元素,驗證所述接收到的服務請求消息是否滿足所述規范;單個定義存儲器,用于與所述接口標識符相關聯地預先存儲單個 定義數據,所述單個定義數據定義由所述接口標識符所標識的數據結 構的規范,所述規范將被匹配于所述通用定義數據中的ANY元素的 所述輸入數據滿足,其中所述ANY元素匹配于不同數據結構中的任 何輸入數據;檢索器,用于通過所述中央處理單元的操作,從所述單個定義存 儲器中檢索和讀出對應于所述接收到的服務請求消息中包含的所述 接口標識符的單個定義數據;單個驗證器,用于通過所述中央處理單元的操作,確定如果所述 服務請求消息中的每一個元素都匹配所述檢索到的單個定義數據中 的所述對應元素,則所述服務請求消息滿足所述規范;以及服務處理器,用于如果所述服務請求消息中的每一個元素都匹配 所述通用定義數據和所述單個定義數據中的所述對應元素,則通過所 述中央處理單元的操作,對對應于所述服務請求消息中包含的所述輸 入數據的數據結構的所述服務進行處理。
8. —種用于接收服務請求消息,并提供對應于所述接收到的服 務請求消息中包含的輸入數據的結構的服務的方法,包括預先存儲通用定義數據,所述通用定義數據定義要被所述接收到 的服務請求消息的數據結構共同滿足的規范,而與所述消息中包含的 所述輸入數據的數據結構無關;使用通信接口接收所述服務請求消息,所述服務請求消息包含所 述輸入數據和允許將所述輸入數據的數據結構標識為元素的接口標 識符;通過中央處理單元的操作,根據所述接收到的服務請求消息中的 每一個元素是否匹配所述通用定義數據中的所述對應元素,驗證所述 接收到的服務請求消息是否滿足所述規范; 與所述接口標識符相關聯地預先存儲單個定義數據,所述單個定 義數據定義由所述接口標識符所標識的數據結構的規范,所述規范將被匹配于所述通用定義數據中的ANY元素的輸入數據滿足,其中所 述ANY元素匹配于不同數據結構中的任何輸入數據;通過所述中央處理單元的操作,檢索和讀出對應于所述接收到的 服務請求消息中包含的所述接口標識符的單個定義數據;通過所述中央處理單元的操作,確定如果所述服務請求消息中的 每一個元素都匹配所述檢索到的單個定義數據中的所述對應元素,則 所述服務請求消息滿足所述規范;以及如果所述服務請求消息中的每一個元素都匹配所述通用定義數 據和所述單個定義數據中的所述對應元素,則通過所述中央處理單元的操作,對對應于所述服務請求消息中包含的所述輸入數據的數據結 構的所述服務進行處理。
全文摘要
公開了用于提供WEB服務的設備以及方法,用于使得用于提供Web服務的系統的開發或維護和管理更加容易。用于提供服務的提供設備存儲通用定義數據,該通用定義數據定義將由服務請求消息滿足的規范,而與接收到的服務請求消息中包含的輸入數據的數據結構無關,以及定義由不同數據結構的輸入數據滿足的單個定義數據。在接收到包含輸入數據和允許將輸入數據的數據結構標識為元素的接口ID的服務請求消息時,提供設備驗證服務請求消息的數據結構是否滿足通用定義數據。此外,提供設備還檢索對應于接收到的接口ID的單個定義數據,并判斷服務請求消息是否滿足單個定義數據。如果服務請求消息滿足通用定義數據和單個定義數據,則提供設備對對應于輸入數據的數據結構的服務進行處理。
文檔編號H04L29/08GK101166197SQ200710180250
公開日2008年4月23日 申請日期2007年10月16日 優先權日2006年10月17日
發明者伊庭嘉仁 申請人:國際商業機器公司