(57)【要約】【課題】  検証処理を分担できる相手を発見できる構造化文書検証装置を提供する。【解決手段】  本発明の構造化文書検証装置２１０は、構造化文書がスキーマ文書のスキーマに適合するかを検証する妥当性検証部２１０と、妥当性検証部２１０で利用されるスキーマ文書と、スキーマ文書を利用した検証で対象となる構造化文書の利用に関する相手先とを対応付けたスキーマ利用履歴情報を記憶するスキーマ利用履歴記憶部２１１と、スキーマ利用履歴情報に基づいて構造化文書の検証処理の分担の可能な相手と分担の可能な構造化文書を判定する分担可能性判定部２１２と、分担可能性判定部２１２によって検証処理の分担が可能と判定された相手と構造化文書を検証処理の利用者へ通知する分担可能性通知部２１３と備える。【選択図】          図１
2007052748.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書がスキーマ文書のスキーマに適合するかを検証する検証部と、
前記検証部で利用したスキーマ文書と、前記スキーマ文書を利用した検証で対象となった構造化文書の利用に関する相手先とを対応付けたスキーマ利用履歴情報を記憶する記憶部と、
前記スキーマ利用履歴情報に基づいて前記構造化文書の検証処理の分担の可能な相手と分担の可能な構造化文書を判定する判定部とを備えることを特徴とする構造化文書検証装置。
【請求項２】
前記判定部によって検証処理の分担が可能と判定された相手と構造化文書を前記検証処理の利用者へ通知する通知部をさらに備えることを特徴とする請求項１に記載の構造化文書検証装置。
【請求項３】
前記記憶部は、前記検証対象となった構造化文書の送受信に関連する相手、前記検証対象となった構造化文書の入出力に関連する相手および前記検証対象となった構造化文書の作成に関連する相手のうちの少なくとも一つを前記構造化文書の利用に関連する相手先として前記スキーマ利用履歴情報を記憶することを特徴とする請求項１に記載の構造化文書検証装置。
【請求項４】
前記記憶部は、文書単位及び要素単位の一方で前記スキーマ利用履歴情報を記憶することを特徴とする請求項１に記載の構造化文書検証装置。
【請求項５】
前記構造化文書はＸＭＬを用いて表現され、
前記構造化文書はＳＯＡＰエンベロープを用いてボディ部にラッピングされ、
前記スキーマ利用履歴情報は前記ＳＯＡＰエンベロープのヘッダ部に含まれることを特徴とする請求項１に記載の構造化文書検証装置。
【請求項６】
前記記憶部は、サービス要求側からサービス要求を受け付けたときに、前記スキーマ利用履歴情報を記憶することを特徴とする請求項１に記載の構造化文書検証装置。
【請求項７】
前記記憶部は、サービス要求に必要な構造化文書を検証するためのスキーマ文書と、前記サービス要求に対応する応答に必要な構造化文書を検証するためのスキーマ文書とを前記検証部で利用したスキーマ文書として記憶することを特徴とする請求項１に記載の構造化文書検証装置。
【請求項８】
前記サービス要求側から受け付けたサービス要求に基づくサービス要求をサービス提供側へ送信し、該サービス提供側から前記サービス要求に基づくサービス応答を受信し、該受信したサービス応答を前記サービス要求側へ送信する手段をさらに備えることを特徴とする請求項１に記載の構造化文書検証装置。
【請求項９】
前記サービス要求側から受け取ったサービス要求を伝播する際に、前記スキーマ利用履歴情報を付加して伝播させる手段をさらに備えることを特徴とする請求項１に記載の構造化文書検証装置。
【請求項１０】
前記検証部でのスキーマ文書の検証実行の結果をサービス提供側へ通知する通知部をさらに備えることを特徴とする請求項１に記載の構造化文書検証装置。
【請求項１１】
構造化文書がスキーマ文書のスキーマに適合するかを検証するステップと、
前記検証で利用されるスキーマ文書と、前記スキーマ文書を利用した検証で対象となる構造化文書の利用に関する相手先とを対応付けたスキーマ利用履歴情報を記憶部に記憶するステップと、
前記スキーマ利用履歴情報に基づいて前記構造化文書の検証処理の分担の可能な相手と分担の可能な構造化文書を判定するステップとを有することを特徴とする構造化文書検証方法。
【請求項１２】
前記検証処理の分担が可能と判定された相手と構造化文書を前記検証処理の利用者へ通知するステップをさらに有することを特徴とする請求項１１に記載の構造化文書検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書において、文書が取りうる構造と内容とを文法的に規定するスキーマに対して、ある文書が適合しているかどうかを検証する構造化文書検証装置および構造化文書検証方法に関する。
【背景技術】
【０００２】
従来、ＸＭＬ（eXtensible Markup Language）やＳＧＭＬ（Standard Generalized Markup Language）といった構造化文書をネットワーク上に流通させる場合、文書が取りうる構造と内容とを文法的に規定するスキーマに対して、ある構造化文書が適合しているかどうかを検証する技術が提案されている。この構造化文書の検証処理は、ウェブサービスなどのように、文書をサービスの入出力データとして用いる場合には必須の処理となるが、携帯電話などの低計算能力デバイスにとっては負荷が大きい処理である。このため、例えば特許文献１に開示されるように、計算能力不足などにより検証処理ができない文書を受信した場合には、ネットワーク上の他のサービスに検証処理を委託するという技術が提案されている。
【特許文献１】特開２００４−３０６５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術では、ネットワーク上に複数のサービスが存在し、これらのサービスから検証処理を行うサービスに対して検証処理の依頼が集中してしまった場合、検証処理を行うサービスの負荷が大きくなってしまうという問題がある。
【０００４】
そこで、本発明は、上記問題点に鑑みてなされたもので、構造化文書の検証処理が一つのサービスに集中することなく、構造化文書の検証処理の負荷を軽減できる構造化文書検証装置および構造化文書検証方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の構造化文書検証装置は、構造化文書がスキーマ文書のスキーマに適合するかを検証する検証部と、前記検証部で利用したスキーマ文書と、前記スキーマ文書を利用した検証で対象となった構造化文書の利用に関する相手先とを対応付けたスキーマ利用履歴情報を記憶する記憶部と、前記スキーマ利用履歴情報に基づいて前記構造化文書の検証処理の分担の可能な相手と分担の可能な構造化文書を判定する判定部とを備える。本発明によれば、サービス間でやりとりされる構造化文書に応じて検証処理を分担できる相手を見つけることができる。その後の検証処理の分担により検証処理が一つのサービスに集中することなくなるため、検証処理の負荷を軽減できる。よって、連携したサービス全体として処理の最適化を図りやすくなる。
【０００６】
本発明の構造化文書検証装置は、前記判定部によって検証処理の分担が可能と判定された相手と構造化文書を前記検証処理の利用者へ通知する通知部をさらに備える。本発明によれば、利用者は検証処理の分担が可能と判定された相手と構造化文書を知ることができる。前記記憶部は、前記検証対象となった構造化文書の送受信に関連する相手、前記検証対象となった構造化文書の入出力に関連する相手および前記検証対象となった構造化文書の作成に関連する相手のうちの少なくとも一つを前記構造化文書の利用に関連する相手先として前記スキーマ利用履歴情報を記憶するとよい。前記記憶部は、文書単位及び要素単位の一方で前記スキーマ利用履歴情報を記憶するとよい。これにより、文書単位及び文書の要素単位に検証処理を分担できる。
【０００７】
本発明の構造化文書検証装置において、前記構造化文書はＸＭＬを用いて表現され、前記構造化文書はＳＯＡＰエンベロープを用いてボディ部にラッピングされ、前記スキーマ利用履歴情報は前記ＳＯＡＰエンベロープのヘッダ部に含まれる。前記記憶部は、サービス要求側からサービス要求を受け付けたときに、前記スキーマ利用履歴情報を記憶するとよい。前記記憶部は、サービス要求に必要な構造化文書を検証するためのスキーマ文書と、前記サービス要求に対応する応答に必要な構造化文書を検証するためのスキーマ文書とを前記検証部で利用したスキーマ文書として記憶するとよい。
【０００８】
本発明の構造化文書検証装置は、前記サービス要求側から受け付けたサービス要求に基づくサービス要求をサービス提供側へ送信し、該サービス提供側から前記サービス要求に基づくサービス応答を受信し、該受信したサービス応答を前記サービス要求側へ送信する手段をさらに備える。これにより、ハブ型による分担可能性判定を実現できる。本発明の構造化文書検証装置は、前記サービス要求側から受け取ったサービス要求を伝播する際に、前記スキーマ利用履歴情報を付加して伝播させる手段をさらに備える。本発明によれば、スキーマ利用履歴情報をサービス要求とともに流通させることにより、分担可能性判定の際に流通する情報を利用できる。これにより、チェーン型による分担可能性判定が実現できる。
【０００９】
本発明の構造化文書検証装置は、前記検証部でのスキーマ文書の検証実行の結果をサービス提供側へ通知する通知部をさらに備える。これにより、特定のサービスに情報が集まり、そのサービスが分担可能性を判定できる。
【００１０】
本発明の構造化文書検証方法は、構造化文書がスキーマ文書のスキーマに適合するかを検証するステップと、前記検証で利用されるスキーマ文書と、前記スキーマ文書を利用した検証で対象となる構造化文書の利用に関する相手先とを対応付けたスキーマ利用履歴情報を記憶部に記憶するステップと、前記スキーマ利用履歴情報に基づいて前記構造化文書の検証処理の分担の可能な相手と分担の可能な構造化文書を判定するステップとを有する。本発明によれば、サービス間でやりとりされる構造化文書に応じて検証処理を分担できる相手を見つけることができる。その後の検証処理の分担により検証処理が一つのサービスに集中することなくなるため、検証処理の負荷を軽減できる。よって、連携したサービス全体として処理の最適化を図りやすくなる。
【００１１】
本発明の構造化文書検証方法は、前記検証処理の分担が可能と判定された相手と構造化文書を前記検証処理の利用者へ通知するステップをさらに有する。本発明によれば、利用者は検証処理の分担が可能と判定された相手と構造化文書を知ることができる。
【００１２】
本発明の構造化文書検証装置は、構造化文書に対して所定の処理を行う処理部と、前記構造化文書の検証処理の分担相手との間で規定された分担方法に関する情報に基づいて前記処理部による処理後の構造化文書のうち分担対象となる部分が文書スキーマに適合するかを検証する分担検証部と、前記分担検証部による検証結果に基づいて前記構造化文書のうち分担対象となる部分が検証済みであることを示す検証済み情報を生成し、該検証済み情報を前記検証部で検証処理の対象となった構造化文書に対して付与する分担付与部とをさらに備えている。本発明によれば、複数のサービスで構造化文書の検証処理を分担することができるため、一つのサービスに構造化文書の検証処理の負荷が集中しないようにできる。これにより低能力デバイスへ文書を送る側が文書を検証でき、受信側の構造化文書の検証処理の負荷を軽減できる。
【００１３】
本発明の構造化文書検証装置は、前記構造化文書に対する改変を検知するための情報と前記文書スキーマに対する改変を検知するための情報を計算する計算部をさらに備え、前記分担付与部は、前記構造化文書に対する改変を検知するための情報および前記文書スキーマに対する改変を検知するための情報を前記検証済み情報に含める。前記分担付与部は、前記検証済み情報を前記構造化文書をラッピングする情報に含める。
【発明の効果】
【００１４】
本発明によれば、構造化文書の検証処理が一つのサービスに集中することなく、構造化文書の検証処理の負荷を軽減できる構造化文書検証装置および構造化文書検証方法を提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態について説明する。図１は、本発明の実施の形態に係わるに係わるシステムの構成を示す図である。システム１は、複数のサービスシステム２〜Ｎを備えている。サービスに対する要求と応答は、パブリックネットワーク６を通じて、他のサービスシステムとのメッセージ交換によって行われる。各サービスシステム２〜Ｎは同じ構成であるため、ここではサービスシステム２について具体的に説明する。
【００１６】
サービスシステム２は、サービス処理装置２１、メッセージ受信装置２２、メッセージ送信装置２３、メッセージ記憶装置２４、入出力装置２５、文書記憶装置２６、スキーマ文書記憶装置２７及び文書検証装置２８を備えている。サービスシステム２は例えばＣＰＵ（Central Processing Unit）、ＲＯＭ(Read Only Memory)、ＲＡＭ(Random Access Memory)及びハードディスク装置等を備えたサーバにより構成され、サービス処理装置２１及び文書検証装置２８の機能は所定のプログラムを実行することにより実現される。サービス処理装置２１は、文書スキーマ検証後の構造化文書データに応じて所定の処理を実行し、その処理結果を示す構造化文書データを生成する。ここで構造化文書は構造情報と文字列情報を有する。メッセージ受信装置２２は、他のサービスシステム３〜Ｎからのメッセージを受信する。メッセージ送信装置２３は、他のサービスシステム３〜Ｎに対してメッセージを送信する。
【００１７】
メッセージ記憶装置２４は、メッセージ受信装置２２で受信したメッセージやメッセージ送信装置２３から送信するメッセージを記憶する。入出力装置２５は、例えばマウスやキーボード等の入力装置及びディスプレイ装置などの出力装置により構成されている。文書記憶装置２６は、検証対象となる構造化文書を記憶する。ここで用いられる構造化文書はＸＭＬ文書である。スキーマ文書記憶装置２７は、検証に用いるスキーマ文書を一意に識別する名前空間ＵＲＩ（Uniform Resource Identifiers）と対応付けて記憶する。スキーマ言語として例えばW3C XML Schemaを用いることができる。
【００１８】
文書検証装置２８は、ある構造化文書が、ある文書スキーマに適合するかを検証する。本実施形態では、文書検証装置２８の検証の分担単位は文書ごとである。なお、検証の分担単位を要素単位としてもよい。文書検証装置２８は、検証部としての妥当性検証部２１０、記憶部としてのスキーマ利用履歴記憶部２１１、判定部及び分担可能性判定部２１２及び通知部としての分担可能性通知部２１３を備えている。
【００１９】
妥当性検証部２１０は、あるスキーマ文書に規定されたスキーマに対して、ある構造化文書が妥当であるかどうかを検証してその結果を返す機能を持つ。スキーマ利用履歴記憶部２１１は、スキーマ利用履歴情報を記憶する機能を持つ。ここで、スキーマ利用履歴情報は、妥当性検証部２１０で利用されるスキーマ文書の識別子と、そのスキーマ文書を利用した検証で対象となる構造化文書の利用に関する相手先（メッセージ交換の相手）となるサービスシステムの識別子とを対応付けたものである。スキーマ利用履歴記憶部２１１は、妥当性検証部２１０で検証が実行された時に、その検証に関するデータをスキーマ利用履歴情報に追記する。なお本実施形態では、サービスシステムの識別子としては、ＳＯＡＰ（Simple Object Access Protocol）メッセージ交換で相手を呼び出す際に使うＵＲＬ（Uniform Resource Locator）が用いられる。図２は、スキーマ利用履歴記憶部２１１に記録されたスキーマ利用履歴情報の例を示す図である。図２に示すように、スキーマ利用履歴情報は、サービスシステムの識別子及びスキーマ文書の識別子が対応付けられている。
【００２０】
分担可能性判定部２１２は、検証の分担可能性を判定するものであり、スキーマ利用履歴記憶部２１１に記憶されたスキーマ利用履歴情報に基づいて構造化文書の検証処理の分担の可能な相手と分担の可能な構造化文書を判定する。分担可能性判定部２１２は、スキーマ利用履歴記憶部２１１へのスキーマ利用履歴情報の追記をトリガーとして分担可能性の判定を行う。分担可能性判定部２１２の判定方法は、後述するように複数のサービスシステムの連携パターンによって異なる。また、分担可能性判定部２１２は、他のサービスシステムに構造化文書を送信する際に、スキーマ利用履歴情報を検証後の構造化文書に対して付加する機能を持つ。分担可能性通知部２１３は、分担可能性判定部２１２で検証処理の分担が可能と判定された相手と構造化文書を、同じサービスシステム２に属する入出力装置２５から出力するとともに、分担可能な相手先へ検証処理の分担の結果を通知する機能を持つ。これにより、検証処理の利用者へ分担結果を通知できる。
【００２１】
図３は、メッセージエンベロープの一例を示す図である。メッセージエンベロープはメッセージ記憶装置２４に記憶されている。図３に示す例では、構造化文書はＸＭＬを用いて表現され、構造化文書はＳＯＡＰエンベロープを用いてボディ部３１にラッピングされ、スキーマ利用履歴情報はＳＯＡＰエンベロープのヘッダ部３２に含まれている。
【００２２】
次に、連携パターンとそのパターンにおける判定方法を説明する。図４は、サービス要求・応答型における分担可能性判定を説明する図である。図４に示す例では、サービスシステム３がサービス要求側Ｒとして機能し、サービスシステム２がサービス応答側Ｐとして機能する。この図４において、サービス要求とはサービスを受けるために必要な情報を表現した構造化文書であり、前述したようにメッセージエンベロープにラッピングされてサービス要求側Ｒからサービス応答側Ｐへ送信される。同様に、サービス応答とはサービス要求に応じて生成された構造化文書であり、前述したようにメッセージエンベロープにラッピングされてサービス応答側Ｐからサービス要求側Ｒへ送信される。
【００２３】
サービスシステム２は、サービス要求側Ｒからサービス要求ＲｅｑＡ−１を含むメッセージを受け取ると、分担可能性判定部２１２は、サービス要求側のサービスシステム３の識別子とサービス要求のスキーマ文書ＳＲｅｑＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＡの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているか調べ、その組み合わせがスキーマ利用履歴記憶部２１１に記憶されていないと判断した場合は、その組み合わせをスキーマ利用履歴としてスキーマ利用履歴記憶部２１１に記憶する。このスキーマ利用履歴情報は、検証処理を分担する相手を見つける際に用いられる。また、サービス要求のスキーマ文書とは、サービス要求に必要な構造化文書を検証するためのスキーマ文書をいう。サービス要求に対する応答のスキーマ文書とは、前記サービス要求に対応する応答に必要な構造化文書を検証するためのスキーマ文書をいう。
【００２４】
次に、妥当性検証部２１０は、サービス要求ＲｅｑＡ−１の妥当性をスキーマ文書ＳＲｅｓＡを用いて検証する。妥当性検証部２１０で文書が妥当と判定された場合、サービス処理装置２１はサービス要求ＲｅｑＡ−１に応じて所定の処理を実行し、サービス要求ＲｅｑＡ−１に対するサービス応答としてＲｅｓＡ−１を生成し、文書記憶装置２６に格納する。サービス処理装置２１は妥当でない場合、サービス要求ＲｅｑＡ−１が妥当でないことを示した内容を持つサービス応答ＲｅｓＡ−１を生成し、文書記憶装置２６に格納する。メッセージ送信装置２３は、文書記憶装置２６からサービス応答ＲｅｓＡ−１を読み出し、これをラッピングしたメッセージを生成してメッセージ記憶装置２４に記憶させた上で、サービス要求側Ｒであるサービスシステム３に送信する。
【００２５】
次に、サービスシステム２がサービス要求側Ｒのサービスシステム３からサービス要求ＲｅｑＢ−１を受け取ると、分担可能性判定部２１２は、サービス要求側Ｒの識別子とサービス要求のスキーマ文書ＳＲｅｑＢとサービス要求に対する応答のスキーマ文書ＳＲｅｓＢの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているか調べ、その組み合わせがスキーマ利用履歴記憶部２１１に記憶されていないと判断した場合は、その組み合わせをスキーマ利用履歴情報としてスキーマ利用履歴記憶部２１１に記憶する。
【００２６】
妥当性検証部２１０は、サービス要求ＲｅｑＢ−１の妥当性を対応するスキーマ文書ＳＲｅｓＢをスキーマ文書記憶装置２７を介して読み出して検証する。妥当性検証部２１０で文書が妥当と判定された場合、サービス処理装置２１はサービス要求ＲｅｑＢ−１に応じて所定の処理を実行し、サービス要求ＲｅｑＢ−１に対するサービス応答としてＲｅｓＢ−１を生成し、文書記憶装置２６に格納する。サービス処理装置２１は、妥当でない場合は、サービス要求ＲｅｑＢ−１が妥当でないことを示した内容を持つサービス応答ＲｅｓＢ−１を生成し、文書記憶装置２６に格納する。メッセージ送信装置２３は、文書記憶装置２６からサービス応答ＲｅｓＢ−１を読み出し、これをラッピングしたメッセージを生成してメッセージ記憶装置２４に記憶させた上で、サービス要求側Ｒであるサービスシステム３に送信する。
【００２７】
次に、サービスシステム２がサービス要求側Ｒのサービスシステム３からサービス要求ＲｅｑＡ−２を受け取ると、分担可能性判定部２１２は、サービス要求側のサービスシステムの識別子とサービス要求のスキーマ文書ＳＲｅｑＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＡの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているか調べ、その組み合わせが既にスキーマ利用履歴記憶部２１１に記憶されていると判断した場合、サービス要求側Ｒであるサービスシステム３がサービス要求のスキーマ文書ＳＲｅｑＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＡ、サービス要求のスキーマ文書ＳＲｅｑＢとサービス要求に対する応答のスキーマ文書ＳＲｅｓＢの２組について分担可能であると判定する。前記判定の理由は、スキーマ利用履歴記憶部２１１に記憶されている組み合わせのうち、前記２組がサービスシステム３の識別子を持っているためである。
【００２８】
なお、本実施形態では同一のスキーマに従うサービス要求を２回受信した場合に分担可能と判定したが、これを所定回数以上あるいは単位時間あたりの頻度など、異なる規準を用いて判定しても良い。また、本実施形態では同一のサービス要求側とのメッセージ要求及び応答を全て分担可能として判定したが、複数回利用された実績のあるものだけ（前記の例ではサービス要求のスキーマ文書ＳＲｅｑＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＡの組だけ）を分担可能と判定しても良い。分担可能性通知部２１３は、分担可能性判定部２１２で判定された結果を、同じサービスシステム２に属する入出力装置２５から出力すると共に、分担可能な相手先であるサービスシステム３へその結果を通知する。
【００２９】
次に、妥当性検証部２１０は、サービス要求ＲｅｑＡ−２の妥当性をスキーマ文書ＳＲｅｓＡを用いて検証する。妥当性検証部２１０で文書が妥当と判定された場合、サービス処理装置２１はサービス要求ＲｅｑＡ−２に応じて所定の処理を実行し、サービス要求ＲｅｑＡ−２に対するサービス応答としてＲｅｓＡ−２を生成し、文書記憶装置２６に格納する。サービス処理装置２１は妥当でない場合、サービス要求ＲｅｑＡ−２が妥当でないことを示した内容を持つサービス応答ＲｅｓＡ−２を生成し、文書記憶装置２６に格納する。メッセージ送信装置２３は、文書記憶装置２６からサービス応答ＲｅｓＡ−２を読み出し、これをラッピングしたメッセージを生成してメッセージ記憶装置２４に記憶させた上で、サービス要求側Ｒであるサービスシステム３に送信する。本発明によれば、サービス間でやりとりされる構造化文書に応じて検証処理を分担できる相手を見つけることができる。その後の検証処理の分担により検証処理が一つのサービスに集中することなくなるため、検証処理の負荷を軽減できる。よって、連携したサービス全体として処理の最適化を図りやすくなる。
【００３０】
図５は、ハブ型における分担可能性判定を説明するための図である。図５では、サービスシステム２がサービスハブＨ、サービスシステム３がサービス要求側Ｒ、サービスシステム４がサービス提供側Ｐ１、サービスシステムＮがサービス提供側Ｐ２として機能する。サービスハブＨとして機能するために、サービスシステム２は、サービス要求側Ｒから受け付けたサービス要求に基づくサービス要求をサービス提供側Ｐ１、Ｐ２へ送信し、サービス提供側Ｐ１、Ｐ２からサービス要求に基づくサービス応答を受信し、この受信したサービス応答をサービス要求側Ｒへ送信する。これらの機能は、メッセージ受信装置２２およびメッセージ送信装置２３により行われる。
【００３１】
サービスハブＨであるサービスシステム２がサービス要求ＲｅｑＨＡ−１を受け取ると、分担可能性判定部２１２は、サービス要求側Ｒのサービスシステム３の識別子とサービス要求のスキーマ文書ＳＲｅｑＨＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＨＡの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているかを調べる。分担可能性判定部２１２は、前記組み合わせが記憶されていないと判断した場合は、サービス要求側Ｒのサービスシステム３の識別子とサービス要求のスキーマ文書ＳＲｅｑＨＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＨＡの組み合わせをスキーマ利用履歴記憶部２１１に記憶する。
【００３２】
次に、妥当性検証部２１０は、サービス要求側Ｒから受けたサービス要求ＲｅｑＨＡ−１の妥当性をスキーマ文書ＳＲｅｑＨＡを用いて検証する。文書が妥当と判定された場合は、ＲｅｑＨＡ−１に基づいてサービス要求ＲｅｑＰ１Ａ−１をサービス提供側Ｐ１であるサービスシステム４に送信し、サービス要求ＲｅｑＰ２Ａ−１をサービス提供側Ｐ２であるサービスシステムＮに送信し、サービスシステム４からサービス応答ＲｅｓＰ１Ａ−１を受信し、サービスシステムＮからサービス応答ＲｅｓＰ２Ａ−１を受信する。
【００３３】
サービスシステム２が前記サービス応答をそれぞれ受け取ると、分担可能性判定部２１２は、サービス提供側Ｐ１のサービスシステム４の識別子とサービス要求のスキーマ文書ＳＲｅｑＰ１Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ１Ａの組み合わせ、および、サービス提供側Ｐ２のサービスシステムＮの識別子とサービス要求のスキーマ文書ＳＲｅｑＰ２Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ２Ａの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているかを調べる。分担可能性判定部２１２は、前記の組み合わせで記憶されていないものがあれば、その組み合わせをスキーマ利用履歴記憶部２１１に記憶する。
【００３４】
そして、サービスシステム２は、サービス応答ＲｅｓＰ１Ａ−１の妥当性をスキーマ文書ＳＲｅｓＰ１Ａを用いて検証し、サービス応答ＲｅｓＰ２Ａ−１の妥当性をスキーマ文書ＳＲｅｓＰ２Ａを用いて検証する。前記検証によりいずれも妥当の場合には、サービスシステム２は、サービス応答ＲｅｓＰ１Ａ−１及びＲｅｓＰ２Ａ−１に基づいてサービス応答ＲｅｓＨＡ−１を生成し、サービス要求側Ｒであるサービスシステム３へ送信する。サービス要求ＲｅｑＨＡ−１またはサービス応答ＲｅｓＰ１Ａ−１またはＲｅｓＰ２Ａ−１のいずれか一つでも妥当でない場合は、サービスシステム２は、処理の失敗を示す内容を含むサービス応答ＲｅｓＨＡ−１を生成し、サービス要求側Ｒであるサービスシステム３へ送信する。
【００３５】
次に、サービスハブＨであるサービスシステム２がサービス要求ＲｅｑＨＢ−１を受け取ると、分担可能性判定部２１２は、サービス要求側Ｒのサービスシステム３の識別子とサービス要求のスキーマ文書ＳＲｅｑＨＢとサービス要求に対する応答のスキーマ文書ＳＲｅｓＨＢの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているかを調べる。分担可能性判定部２１２は、前記組み合わせが記憶されていないと判断した場合は、前記組み合わせをスキーマ利用履歴記憶部２１１に記憶する。
【００３６】
次に、妥当性検証部２１０は、サービス要求側Ｒから受けたサービス要求ＲｅｑＨＢ−１の妥当性をスキーマ文書ＳＲｅｑＨＢを用いて検証する。文書が妥当と判定された場合は、ＲｅｑＨＢ−１に基づいてサービス要求ＲｅｑＰ１Ｂ−１をサービス提供側Ｐ１であるサービスシステム４に送信し、サービスシステム４からサービス応答ＲｅｓＰ１Ｂ−１を受信する。
【００３７】
サービスシステム２が前記サービス応答を受け取ると、分担可能性判定部２１２は、サービス提供側Ｐ１のサービスシステム４の識別子とサービス要求のスキーマ文書ＳＲｅｑＰ１Ｂとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ１Ｂの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているかを調べる。分担可能性判定部２１２は、前記組み合わせが記憶されていない場合は、前記組み合わせをスキーマ利用履歴記憶部２１１に記憶する。
【００３８】
次に、サービス応答ＲｅｓＰ１Ｂ−１の妥当性をスキーマ文書ＳＲｅｓＰ１Ｂを用いて検証する。文書が妥当と判定された場合は、サービスシステム２は、サービス応答ＲｅｓＰ１Ｂ−１に基づいてサービス応答ＲｅｓＨＢ−１を生成し、サービス要求側Ｒであるサービスシステム３へ送信する。サービス要求ＲｅｑＨＢ−１またはサービス応答ＲｅｓＰ１Ｂ−１のいずれか一つでも妥当でない場合は、サービスシステム２は、処理の失敗を示す内容を含むサービス応答ＲｅｓＨＢ−１を生成し、サービス要求側Ｒであるサービスシステム３へ送信する。
【００３９】
次に、サービスシステム２がサービス要求側Ｒのサービスシステム３からサービス要求ＲｅｑＨＡ−２を受け取ると、分担可能性判定部２１２は、サービス要求側Ｒのサービスシステム３の識別子とサービス要求のスキーマ文書ＳＲｅｑＨＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＨＡの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているかを調べ、サービスハブＨ−サービス要求側Ｒ間の分担可能性を判定する。
【００４０】
分担可能性判定部２１２は、その組み合わせがスキーマ利用履歴記憶部２１１に記憶されていると判断した場合、サービス要求側Ｒがサービス要求のスキーマ文書ＳＲｅｑＨＡとサービス要求に対する応答のスキーマ文書ＳＲｅｓＨＡ、サービス要求のスキーマ文書ＳＲｅｑＨＢとサービス要求に対する応答のスキーマ文書ＳＲｅｓＨＢの２組について分担可能と判定する。分担可能性通知部２１３は、分担可能性判定部２１２で判定された結果を、同じサービスシステム２に属する入出力装置２５から出力すると共に、分担可能な相手先であるサービスシステム３へその結果を通知する。
【００４１】
次に、妥当性検証部２１０は、サービス要求側Ｒから受けたサービス要求ＲｅｑＨＡ−２の妥当性をスキーマ文書ＳＲｅｑＨＡを用いて検証する。文書が妥当と判定された場合は、ＲｅｑＨＡ−２に基づいてサービス要求ＲｅｑＰ１Ａ−２をサービス提供側Ｐ１であるサービスシステム４に送信し、サービス要求ＲｅｑＰ２Ａ−２をサービス提供側Ｐ２であるサービスシステムＮに送信し、サービスシステム４からサービス応答ＲｅｓＰ１Ａ−２を受信し、サービスシステムＮからサービス応答ＲｅｓＰ２Ａ−２を受信する。
【００４２】
サービスシステム２が前記サービス応答をそれぞれ受け取ると、分担可能性判定部２１２は、サービス提供側Ｐ１のサービスシステム４の識別子とサービス要求のスキーマ文書ＳＲｅｑＰ１Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ１Ａの組み合わせ、および、サービス提供側Ｐ２のサービスシステムＮの識別子とサービス要求のスキーマ文書ＳＲｅｑＰ２Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ２Ａの組み合わせがスキーマ利用履歴記憶部２１１に記憶されているかを調べる。
【００４３】
分担可能性判定部２１２は、サービス提供側Ｐ１のサービスシステム４の識別子とサービス要求のスキーマ文書ＳＲｅｑＰ１Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ１Ａの組み合わせがスキーマ利用履歴記憶部２１１に記憶されていると判断した場合、サービス提供側Ｐ１がサービス要求のスキーマ文書ＳＲｅｑＰ１Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ１Ａ、サービス要求のスキーマ文書ＳＲｅｑＰ１Ｂとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ１Ｂの２組について分担可能と判定する。
【００４４】
また、分担可能性判定部２１２は、サービス提供側Ｐ２のサービスシステムＮの識別子とサービス要求のスキーマ文書ＳＲｅｑＰ２Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ２Ａの組み合わせがスキーマ利用履歴記憶部２１１に記憶されていると判断した場合、サービス提供側Ｐ２がサービス要求のスキーマ文書ＳＲｅｑＰ２Ａとサービス要求に対する応答のスキーマ文書ＳＲｅｓＰ２Ａの１組について分担可能と判定する。分担可能性通知部２１３は、分担可能性判定部２１２で判定された結果を、同じサービスシステム２に属する入出力装置２５から出力すると共に、分担可能な相手先であるサービスシステム４およびサービスシステムＮへその結果をそれぞれ通知する。
【００４５】
次にサービスシステム２は、サービス応答ＲｅｓＰ１Ａ−２の妥当性をスキーマ文書ＳＲｅｓＰ１Ａを用いて検証し、サービス応答ＲｅｓＰ２Ａ−２の妥当性をスキーマ文書ＳＲｅｓＰ２Ａを用いて検証する。前記検証によりいずれも妥当の場合には、サービスシステム２は、サービス応答ＲｅｓＰ１Ａ−２及びＲｅｓＰ２Ａ−２に基づいてサービス応答ＲｅｓＨＡ−２を生成し、サービス要求側Ｒであるサービスシステム３へ送信する。サービス要求ＲｅｑＨＡ−２またはサービス応答ＲｅｓＰ１Ａ−２またはＲｅｓＰ２Ａ−２のいずれか一つでも妥当でない場合は、サービスシステム２は、処理の失敗を示す内容を含むサービス応答ＲｅｓＨＡ−２を生成し、サービス要求側Ｒであるサービスシステム３へ送信する。
【００４６】
図６は、チェーン型における分担可能性判定を説明するための図である。ここでは、サービス提供側Ｐ１とサービス提供側Ｐ２とサービス提供側Ｐ３が同じスキーマ文書ＳＲｅｑＡを利用した場合の例である。サービスシステム３がサービス要求側Ｒ、サービスシステム２がサービス提供側Ｐ１、サービスシステム４がサービス提供側Ｐ２、サービスシステムＮがサービス提供側Ｐ３として機能する。サービス提供側Ｐ１、Ｐ２は、サービス要求側Ｒから受け取ったサービス要求を伝播する際に、上述したスキーマ利用履歴情報を付加して伝播させる機能を持つ。この機能は、図１に示したサービスシステム２ではメッセージ送信装置２３により行われる。また、サービス提供側Ｐ２、Ｐ３は、検証部でのスキーマ文書の検証実行の結果をサービス提供側Ｐ１へ通知する機能を備える。この機能は、図１のサービスシステム２の例ではメッセージ送信装置２３によって行われる。これにより、サービス提供側Ｐ１に情報が集まり、そのサービスが分担可能性を判定できる。
【００４７】
チェーン型でサービス要求を伝播する場合、まずサービス要求側Ｒがサービス要求ＲｅｑＡ−１を含むメッセージをサービス提供側Ｐ１に送り、サービス提供側Ｐ１はサービス要求をＲｅｑＡ−１’に書き換えてサービス提供側Ｐ２に転送し、サービス提供側Ｐ２はサービス要求をＲｅｑＡ−１’に書き換えてサービス提供側Ｐ３に転送し、最後にサービス提供側Ｐ３はサービス応答ＲｅｓＡ−１を含むメッセージをサービス要求側Ｒに送りサービス提供側からサービス要求側にサービスが提供される。この処理の際に、サービス提供側Ｐ１、Ｐ２、およびＰ３は、それぞれが受信したサービス要求をスキーマ文書ＳＲｅｑＡを用いて検証するので、検証を分担できる可能性がある。
【００４８】
検証を実行したサービスシステムは、伝搬されるサービス要求を含むメッセージのヘッダ部に、検証に用いたスキーマ文書の情報とサービスの識別子を付加する。ただし、付加された情報と同じスキーマ文書を検証に用いた場合は、情報を付加するのではなく、その情報に記載された識別子が示すサービスシステムへそのスキーマ文書を用いた検証実行について通知する。このように構成することで、サービス要求のフローにおいて、あるスキーマ文書を最初に用いて検証したサービスシステムに情報が集まり、そのサービスが分担可能性を判定できる。図６では、サービス提供側Ｐ１がスキーマ文書ＳＲｅｑＡを用いた文書検証をフローの最初に実行し、ＲｅｑＡ−１’を含むメッセージのヘッダ部に対してスキーマ文書ＳＲｅｑＡの情報とサービス提供側Ｐ１の識別子とを付加する。サービス提供側Ｐ２とＰ３は、それぞれ同じスキーマ文書ＳＲｅｑＡを検証に用いるので、メッセージに情報を付加するのではなく、サービス提供側Ｐ１へ検証実行通知ＮｔｆＡ−１〜ＮｔｆＡ−４を送信する。
【００４９】
上記の実施形態では、検証単位は文書であったが、サービス処理装置２１が文書中の一部の文書要素しか入力に用いない場合には、利用した文書要素とメッセージ交換を行った相手をスキーマ利用履歴情報としてスキーマ利用履歴記憶部２１１に記載し、分担可能性の判定をするように構成しても良い。上述とあわせると、スキーマ利用履歴記憶部２１１は、文書単位及び要素単位の一方でスキーマ利用履歴情報を記憶できる。
【００５０】
また、上記の実施形態では、分担可能な相手を、メッセージ交換を行った相手（検証対象となった構造化文書の送受信に関連する相手）とした場合の例について説明したが、メッセージに含まれる文書の作成者ないし作成組織を示す情報が文書中に記述されている場合には、その作成者ないし作成組織（検証の対象となった構造化文書の作成に関連する相手）を分担可能な相手としてスキーマ利用履歴情報に記載し、分担可能性の判定をするように構成しても良い。同様に、メッセージに含まれる文書の著作権者ないし著作権を保持する組織を示す情報が文書中に記述されている場合には、その著作権者ない著作権を保持する組織を分担可能な相手（検証の対象となった構造化文書の作成に関連する相手）としてスキーマ利用履歴情報に記載し、分担可能性を判定するように構成してもよい。
【００５１】
また、検証に用いるスキーマ文書に作成者、作成組織、著作権者、ないし著作権組織（検証の対象となった構造化文書の作成に関連する相手）が記載されている場合は、メッセージ交換先にかかわらず、それらを分担可能な相手としてスキーマ利用履歴情報に記載し、分担可能性の判定をするように構成しても良い。また、紙にサービス結果を印刷する場合や紙に書かれた情報をスキャンしてサービス入力に用いる場合など、入出力装置２５を介してＸＭＬ文書を利用する場合には、入出力者や入出力組織が文書検証装置によって特定できる場合は、入出力者や入出力組織を分担可能な相手（前記検証対象となった構造化文書の入出力に関連する相手）としてスキーマ利用履歴情報に記載し、分担可能性の判定をするように構成しても良い。例えば、入出力装置２５へのログイン情報や、複合機やファックスにおける利用者毎のファイルディレクトリへの入出力などの場合には、入出力者や入出力組織が文書検証装置によって特定できる場合に該当する。
【００５２】
次に、本発明の第２実施形態について説明する。上記第１実施形態では、検証処理を分担できる相手を発見する手法について開示した。第２実施形態では検証処理を分担できる相手を発見後の検証処理の分担処理について説明する。図７は、本発明の第２の実施形態に係わるシステムの構成を示す図である。システム１０１は、それぞれ構造化文書検証装置として機能する複数のサービスシステム２〜Ｎを備えている。第１実施形態と同一箇所は同一符号を用いて説明を省略する。
【００５３】
サービスシステム２は、処理部としてのサービス処理装置２１、メッセージ受信装置２２、メッセージ送信装置２３、メッセージ記憶装置２４、入出力装置２５、文書記憶装置２６、スキーマ文書記憶装置２７及び文書検証装置１２８を備えている。
【００５４】
文書検証装置１２８は、ある構造化文書が、ある文書スキーマに適合するかを検証するものである。文書検証装置１２８は、このサービスシステム２の一部をなしている。本実施形態では、文書検証装置１２８の検証の分担の単位は文書単位である。なお、文書検証装置１２８の検証処理の分担単位を要素単位としてもよい。
【００５５】
文書検証装置１２８は、分担検証部としての妥当性検証部２２０、計算部としてのダイジェスト値計算部２２１、検証分担方法記憶部２２２、分担付与部としての検証済み情報生成部２２３、検証済み情報確認部２２４及び分担実行部２２５を備えている。妥当性検証部２２０は、後述する構造化文書の検証処理の分担相手との間で規定された分担方法に関する情報（以下、「検証処理の分担方法に関する情報」）に基づいてサービス処理装置２１による処理後の構造化文書のうち分担対象となる部分が文書スキーマに適合するかを検証する機能を持つ。妥当性検証部２１０による検証では、あるスキーマ文書に規定されたスキーマに対して、ある構造化文書が妥当であるかどうかが検証される。
【００５６】
ダイジェスト値計算部２２１は、構造化文書に対する改変を検知するための情報となる文書のダイジェスト値、および文書スキーマに対する改変を検知するための情報となる文書スキーマのダイジェスト値を計算する機能を持つ。ここで、文書及び文書スキーマのダイジェスト値とは、通信されるデータが正しいことを証明するために、元のデータから特徴的なパターンを生成し、これを数値化したもので、例えばハッシュ値がある。ハッシュ値は、ハッシュ関数によって、コンテンツを表すデータを撹乱し、一定の長さ(例えば１２８ビット)の値に圧縮したものである。文書のダイジェスト値及び文書スキーマのダイジェスト値は、後述するように、検証の分担相手となる他のサービスシステムが検証した結果をそのまま利用しても問題ないかどうかを確認するために用いられる。
【００５７】
ここで、スキーマ文書は変更される頻度が少なく、変更された場合でも同じスキーマ文書を上書きするのではなく、別のスキーマ文書として保存され識別されることが多い。したがって、スキーマ文書のダイジェスト値については毎回計算するよりも、結果を再利用する方が効率的な場合が多い。このため、本実施形態では、ダイジェスト値計算部２２１は、スキーマ文書のダイジェスト値を一度計算した場合には、その結果は計算した日時データとともにスキーマ文書記憶装置２７に記憶しておく。また、ダイジェスト値計算部２２１は、スキーマ文書記憶装置２７でのスキーマ文書の更新日時と計算した日時データとを比較し、更新日時の方が古い場合、スキーマ文書記憶装置２７に記憶されたダイジェスト値が用いられる。
【００５８】
検証分担方法記憶部２２２は、例えばハードディスク装置により構成され、上述した検証処理の分担方法に関する情報を記憶している。図８は、検証処理の分担方法に関する情報の一例を示す図である。本実施形態では、検証処理の分担方法に関する情報は、図８に模式的に示されるような、表形式のデータで検証分担方法記憶部２２２に格納されている。この検証処理の分担方法に関する情報は、例えば入出力装置２５を用いて検証分担方法記憶部２２２にデータ入力されている。この表形式データでは、各行が分担に関する一つの取り決めをそれぞれ示している。
【００５９】
表形式データの第１列は、検証の分担相手となるサービスシステムを一意に示すための識別子データであり、本実施形態ではＳＯＡＰメッセージ交換で相手を呼び出す際に使うＵＲＬ（Uniform Resource Locator）を用いている。第２列は、第１列で示した相手と分担して検証する際に用いるスキーマ文書を一意に示すための識別子データであり、本実施形態ではスキーマ文書の名前空間を示すＵＲＩを用いている。第３列は、検証対象となる文書はこのサービスシステム２が送信するものか、あるいは受信したものかを示すデータであり、本実施形態ではサービスシステム２が検証対象となる文書を送信の場合を「Ｓ」、検証対象となる文書を受信の場合を「Ｒ」で表現している。
【００６０】
第４列は検証の分担条件としての分担割合を示すデータであり、本実施形態では０以上１以下の数値を用いて表現している。上述したように検証処理の分担の単位は、文書単位であるため、検証の分担割合の数値の意味は送受信される文書数に対して、この文書検証装置１２８が検証する文書数の割合を示している。なお、検証処理の分担の単位を要素単位とする場合には、第４列は例えばＸPathで表現することができる。
【００６１】
図８の第１行が示す意味は、第１列に示された相手から受信する文書で、第２列で示されるスキーマ文書を用いた検証処理については、文書数の８０％をサービスシステム２の文書検証装置１２８が実地する、ということを表現している。また、図８の第２行が示す意味は、第１列に示された相手へ送信する文書で、第２列で示されるスキーマ文書を用いた検証処理については、このサービスシステム２の文書検証装置１２８がすべて実施する、ということを表現している。また、図８の第３行が示す意味は、第１列に示された相手から受信する文書で、第２列で示されるスキーマ文書を用いた検証処理については、文書数の半分をこのサービスシステム２の文書検証装置１２８が実施する、ということを表現している。
【００６２】
検証済み情報生成部２２３は、妥当性検証部２２０による検証結果に基づいて構造化文書のうち分担対象となる部分が検証済みであることを示す検証済み情報を生成し、この検証済み情報を検証対象となった構造化文書に対して付与する機能を持つ。本実施形態では、検証済み情報生成部２２３は、検証済み情報を、複合型の文書要素として表現し、妥当性検証の結果を示す文書要素（検証の結果）と、検証した文書のダイジェスト値を示す文書要素（検証した文書に対する改変を検知するための情報）と、検証に用いたスキーマ文書のダイジェスト値を示す文書要素（検証に用いたスキーマ文書に対する改変を検知するための情報）とを検証済み情報に含める。なお、検証済み情報生成部２２３は、妥当性検証部２２０による検証結果だけを検証済み情報に含めるようにしてもよい。検証済み情報生成部２２３は、検証済み情報を構造化文書をラッピングする情報に含めることで、検証済み情報を検証対象となった文書に対応付けて付与する。
【００６３】
この検証済み情報の一例は、図９でvs:ValidationSharingというタグ名の文書要素であり、ボディ部３１の文書に対してヘッダ部３２に付与されている。図９に示す例では、構造化文書はＸＭＬを用いて表現され、ラッピングする情報はＳＯＡＰを用いて表現されており、検証された構造化文書はＳＯＡＰボディ（ボディ部３１）に存在し、検証済み情報はＳＯＡＰヘッダ（ヘッダ部３２）に含まれている。なお、ダイジェスト値は、ダイジェスト値計算部２２１で計算したものを用いる。
【００６４】
検証済み情報確認部２２４は、ヘッダ部３２の検証済み情報に含まれるダイジェスト値と、新たにダイジェスト値計算部２２１で計算した文書および文書スキーマのダイジェスト値とを比較し、これらが一致する場合は他のサービスシステムによって検証されたことを確認する機能を持つ。
【００６５】
分担実行部２２５は、他のサービスシステム３〜Ｎとメッセージ交換する文書に対して、その文書の検証を他のサービスシステム３〜Ｎの文書検証装置と分担して実行する機能を持つ。この分担実行部２２５は、他のサービスシステム３〜Ｎへメッセージを送信する前に呼び出される。図１０は、メッセージ送信時における分担実行部２２５の処理のフローチャートである。
【００６６】
分担実行部２２５は、メッセージ送信される文書に対して、まず、検証分担方法記憶部２２２の検証処理の分担方法に関する情報中にメッセージ送信相手の識別子とその文書を検証するためのスキーマ文書の識別子が含まれるかを調べる（ステップＳ１０１）。分担実行部２２５は、検証分担方法記憶部２２２の検証処理の分担方法に関する情報中にメッセージ送信相手の識別子とその文書を検証するためのスキーマ文書の識別子が含まれている場合、分担方法に関する情報中の分担割合に応じてこの文書を分担するかを決める（ステップＳ１０２）。決め方は、本実施形態では乱数を用いている。
【００６７】
検証を分担する場合には、妥当性検証部２２０は、文書の妥当性検証を行い（ステップＳ１０３）、次にダイジェスト値計算部２２１は文書および文書スキーマのダイジェスト値を計算する（ステップＳ１０４）。そして、検証済み情報生成部２２３は、妥当性検証の結果を示す文書要素と、検証した文書のダイジェスト値を示す文書要素と、検証に用いたスキーマ文書のダイジェスト値を示す文書要素とを含む検証済み情報を生成し、この文書を送信する際のメッセージエンベロープのヘッダ部に、生成された検証済み情報を付加する（ステップＳ１０５）。図９は、検証済み情報が付加されたメッセージエンベロープの一例を示す図である。メッセージエンベロープはメッセージ記憶装置２４に記憶されている。これらの処理が終わった後に、メッセージ送信装置２３は、メッセージをメッセージ記憶装置２４から読み出して次のサービスシステム３〜Ｎに送信する。
【００６８】
また、分担実行部２２５は、サービス処理装置２１が処理の入力として用いるメッセージが受信された際に呼び出される。図１１は、メッセージ受信時における分担実行部２２５での処理フローチャートである。まず、分担実行部２２５は、受信されたメッセージに含まれる文書に対して、そのメッセージに含まれる検証済み情報が含まれるかどうかを判定する（ステップＳ２０１）。分担実行部２２５は、メッセージに検証済み情報が含まれる場合、受信した文書と検証に用いるスキーマ文書とをダイジェスト値計算部２２１に渡し、その文書および検証に用いたスキーマ文書のダイジェスト値を計算させる（ステップＳ２０３）。
【００６９】
分担実行部２２５は、検証済み情報に含まれるダイジェスト値と、新たにダイジェスト値計算部２２１で計算した文書および文書スキーマのダイジェスト値と検証済み情報確認部２２４に比較させる（ステップＳ２０４）。分担実行部２２５は、検証済み情報確認部２２４で確認された場合は、他のサービスシステム３〜Ｎによって検証の分担がなされたことがわかるので、この文書の検証は行わないと判定し、検証済み情報に含まれる検証結果をその文書の検証結果として返す（ステップＳ２０５）。分担実行部２２５は、メッセージに検証済み情報が含まれない場合（ステップＳ２０１で「いいえ」の場合）や、検証済み情報確認部２２４で確認されなかった場合（ステップＳ２０４で「いいえ」の場合）は、この文書の検証が必要と判定し、妥当性検証部２２０を用いて検証してその結果を返す（ステップＳ２０２）。このように、分担実行部２２５は、検証済み情報を用いて構造化文書及び文書スキーマに対する改変を検知し、構造化文書及び文書スキーマの改変が検知されない場合は検証済み情報に含まれる検証結果を用い、一方、構造化文書及び文書スキーマの改変結果が検知された場合は構造化文書に対する検証を妥当性検証部２２０に実施させて、その結果により検証済み情報を書き換えることで、検証処理を複数のサービスシステムで分担できる。
【００７０】
第２実施形態によれば、複数のサービスシステムで構造化文書の検証処理を分担することができるため、一つのサービスに構造化文書の検証処理の負荷が集中しないようにできる。これにより低能力デバイスへ文書を送る側が文書を検証でき、受信側の構造化文書の検証処理の負荷を軽減できる。
【００７１】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態に係わるに係わるシステムの構成を示す図である。
【図２】スキーマ利用履歴記憶部に記録された履歴情報の例を示す図である。
【図３】メッセージエンベロープの一例を示す図である。
【図４】サービス要求・応答型における分担可能性判定を説明する図である。
【図５】ハブ型における分担可能性判定を説明するための図である。
【図６】チェーン型における分担可能性判定を説明するための図である。
【図７】本発明の第２の実施形態に係わるシステムの構成を示す図である。
【図８】検証処理の分担方法に関する情報の一例を示す図である。
【図９】検証済み情報が付加されたメッセージエンベロープの一例を示す図である。
【図１０】メッセージ送信時における分担実行部の処理のフローチャートである。
【図１１】メッセージ受信時における分担実行部での処理フローチャートである。
【符号の説明】
【００７３】
１、１０１  システム                ２１０  妥当性検証部
２〜Ｎ、１０２  サービスシステム    ２１１  スキーマ利用履歴記憶部
２１  サービス処理装置              ２１２  分担可能性判定部
２２  メッセージ受信装置            ２１３  分担可能性通知部
２３  メッセージ送信装置            ２２０  妥当性検証部
２４  メッセージ記憶部              ２２１  ダイジェスト値計算部
２５  入出力装置                    ２２２  検証分担方法記憶部
２６  文書記憶装置                  ２２３  検証済み情報生成部
２７  スキーマ文書記憶装置          ２２４  検証済み情報確認部
２８、１２８  文書検証装置          ２２５  分担実行部
【図１】
2007052748.tif 000003
【図２】
2007052748.tif 000004
【図３】
2007052748.tif 000005
【図４】
2007052748.tif 000006
【図５】
2007052748.tif 000007
【図６】
2007052748.tif 000008
【図７】
2007052748.tif 000009
【図８】
2007052748.tif 000010
【図９】
2007052748.tif 000011
【図１０】
2007052748.tif 000012
【図１１】
2007052748.tif 000013