(57)【特許請求の範囲】
【請求項１】
コンピュータに、
ローカルレジストリ記録装置から、「データ項目についての値」「整合性をチェックする対象のパブリックデータを指定するパブリックデータ指定情報」「整合性をチェックする項目の指定、当該項目について整合性がないと判断された場合に実行される複数の整合性確保処理のうちのいずれかの整合性確保処理の設定を含む整合性確保ルール、を指定するルール指定情報」を含むローカルデータを取得するローカルデータ取得機能と、
前記ローカルレジストリ記録装置から取得された前記ローカルデータに含まれている前記パブリックデータ指定情報に基づいて、パブリックレジストリ記録装置から、データ項目についての値を持ち前記ローカルデータとの間で整合性をチェックする対象であるパブリックデータを取得するパブリックデータ取得機能と、
ルール記録装置から、前記ローカルレジストリ記録装置から取得された前記ローカルデータに含まれている前記ルール指定情報で指定されている整合性確保ルールを取得し、この取得された整合性確保ルールで指定されている前記整合性をチェックする項目について、前記ローカルデータと前記パブリックデータとの間で値が整合しているか否か判断する比較機能と、
前記比較機能によって、前記整合性をチェックする項目について前記ローカルデータと前記パブリックデータとの間で値が整合していないと判断された場合に、前記整合性確保ルールで設定されている整合性確保処理を実行する処理機能と
を実現させるためのデータ整合プログラム。
【請求項２】
請求項１記載のデータ整合プログラムにおいて、
前記複数の整合性確保処理は、不整合の生じたデータ項目の値として前記パブリックデータの値を返す処理、前記パブリックデータの不整合の生じたデータ項目の値で前記ローカルデータの不整合の生じたデータ項目の値を更新する処理、不整合が発生したことを通知する処理のうちの少なくとも一つを含むことを特徴とするデータ整合プログラム。
【請求項３】
請求項１又は請求項２記載のデータ整合プログラムにおいて、
前記ローカルレジストリ記録装置は、特定の条件を満たすデータのみが登録されるローカルレジストリであり、
前記パブリックレジストリ記録装置は、前記特定の条件を満たさないデータであっても登録されるパブリックレジストリである
ことを特徴とするデータ整合プログラム。
【請求項４】
ローカルレジストリ記録装置から、「データ項目についての値」「整合性をチェックする対象のパブリックデータを指定するパブリックデータ指定情報」「整合性をチェックする項目の指定、当該項目について整合性がないと判断された場合に実行される複数の整合性確保処理のうちのいずれかの整合性確保処理の設定を含む整合性確保ルール、を指定するルール指定情報」を含むローカルデータを取得するローカルデータ取得手段と、
前記ローカルレジストリ記録装置から取得された前記ローカルデータに含まれている前記パブリックデータ指定情報に基づいて、パブリックレジストリ記録装置から、データ項目についての値を持ち前記ローカルデータとの間で整合性をチェックする対象であるパブリックデータを取得するパブリックデータ取得手段と、
ルール記録装置から、前記ローカルレジストリ記録装置から取得された前記ローカルデータに含まれている前記ルール指定情報で指定されている整合性確保ルールを取得し、この取得された整合性確保ルールで指定されている前記整合性をチェックする項目について、前記ローカルデータと前記パブリックデータとの間で値が整合しているか否か判断する比較手段と、
前記比較手段によって、前記整合性をチェックする項目について前記ローカルデータと前記パブリックデータとの間で値が整合していないと判断された場合に、前記整合性確保ルールで設定されている整合性確保処理を実行する処理手段と
を具備するデータ整合システム。
【請求項５】
請求項４記載のデータ整合システムにおいて、
前記複数の整合性確保処理は、不整合の生じたデータ項目の値として前記パブリックデータの値を返す処理、前記パブリックデータの不整合の生じたデータ項目の値で前記ローカルデータの不整合の生じたデータ項目の値を更新する処理、不整合が発生したことを通知する処理のうちの少なくとも一つを含むことを特徴とするデータ整合システム。
【請求項６】
コンピュータシステムに実行させるデータ整合方法において、
前記コンピュータシステムは、ローカルレジストリ記録装置から、「データ項目についての値」「整合性をチェックする対象のパブリックデータを指定するパブリックデータ指定情報」「整合性をチェックする項目の指定、当該項目について整合性がないと判断された場合に実行される複数の整合性確保処理のうちのいずれかの整合性確保処理の設定を含む整合性確保ルール、を指定するルール指定情報」を含むローカルデータを取得し、
前記コンピュータシステムは、前記ローカルレジストリ記録装置から取得された前記ローカルデータに含まれている前記パブリックデータ指定情報に基づいて、パブリックレジストリ記録装置から、データ項目についての値を持ち前記ローカルデータとの間で整合性をチェックする対象であるパブリックデータを取得し、
前記コンピュータシステムは、ルール記録装置から、前記ローカルレジストリ記録装置から取得された前記ローカルデータに含まれている前記ルール指定情報で指定されている整合性確保ルールを取得し、この取得された整合性確保ルールで指定されている前記整合性をチェックする項目について、前記ローカルデータと前記パブリックデータとの間で値が整合しているか否か判断し、
前記コンピュータシステムは、前記整合性をチェックする項目について前記ローカルデータと前記パブリックデータとの間で値が整合していないと判断された場合に、前記整合性確保ルールで設定されている整合性確保処理を実行する
ことを特徴とするデータ整合方法。
【請求項７】
請求項６記載のデータ整合方法において、
前記複数の整合性確保処理は、不整合の生じたデータ項目の値として前記パブリックデータの値を返す処理、前記パブリックデータの不整合の生じたデータ項目の値で前記ローカルデータの不整合の生じたデータ項目の値を更新する処理、不整合が発生したことを通知する処理のうちの少なくとも一つを含むことを特徴とするデータ整合方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｗｅｂサービスに関するデータの検索結果を提供する複数のレジストリ間で、データの整合性を確保するためのデータ整合プログラム及びシステム並びに方法に関する。
【０００２】
【従来の技術】
インターネット上で柔軟に企業間システムを連携する技術への要望が高まっている。激化するグローバル競争の下で、企業グループは統合や再編を繰り返している。各企業は自社の得意分野に集中し、他分野では他社と連携を図る傾向にある。
【０００３】
提携企業間では、単なる物の売買に限らず、例えば部品会社と組み立て会社が設計段階から協調するなどのように、より密なコラボレーションが求められる。
【０００４】
このため、企業間のシステムを迅速に連携させ、かつビジネス環境の変化に柔軟に対応するための技術が求められ、このような技術の一つとしてＷｅｂサービスが注目されている。
【０００５】
Ｗｅｂサービスの一例として、インターネットなどのようなネットワーク上でＸＭＬ（Extensible Markup Language）形式のメッセージを送受信してシステムを連携させる技術がある。
【０００６】
図１４は、一般的なＷｅｂシステムの構成の一例を示すブロック図である。
【０００７】
一般的なＷｅｂシステムでは、Ｗｅｂアプリケーション１ａによるサービスやホームページ１ｂがＷｅｂサーバ１からネットワーク２を経由してＷｅｂブラウザ３に通知され、利用者４に提供される。
【０００８】
一方、図１５は、Ｗｅｂサービスの一例を示すブロック図である。
【０００９】
Ｗｅｂサービスでは、一方のシステム５ａのサービスアプリケーション６ａと他方のシステム５ｂのサービスアプリケーション６ｂとがＸＭＬデータ（ＸＭＬメッセージ）７を送受信し、直接連携して動作する。
【００１０】
ＸＭＬデータ７は、システム５ａとシステム５ｂとの間で、例えばＨＴＴＰなどのようなインターネット標準プロトコルにしたがって送受信されるため、ファイアウォールも容易に通過可能である。
【００１１】
Ｗｅｂサービスでは、ネットワーク２として例えばインターネットが利用されるため、従来から企業間のデータ交換に使われてきたＥＤＩ（Electronic Data Interchange）よりも構築コストがかからない。
【００１２】
Ｗｅｂサービスによって企業間システムを迅速かつ柔軟に連携させるために、様々な標準化が進んでいる。
【００１３】
主な標準として、企業間で交換するＸＭＬデータの形式、ビジネスプロセスの標準、ＸＭＬデータを送受信するためのメッセージングプロトコル標準、サービス登録又は検索するためのレジストリ標準などがある。
【００１４】
これらの標準が実装され、適切な運用体制が整うと、第１にオープンかつダイナミックな企業間システム連携機構が構築可能となる。第２にインターネット上のサービスを部品として利用するシステム開発パラダイムが実現可能となる。
【００１５】
図１６は、Ｗｅｂサービスに関するレジストリの適用例を示す図である。
【００１６】
ホテルや航空会社などのＷｅｂサービスの提供者は、自社のシステム７ａ〜７ｄによって提供されるサービスをＷｅｂサービスとしてインターネットなどのネットワーク２上に公開する。サービス提供者は、自社のＷｅｂサービスをレジストリ８に登録する。
【００１７】
Ｗｅｂサービスの利用者である旅行代理店のシステム９は、レジストリ８を検索してＷｅｂサービスを選択し、標準ビジネスプロセスにしたがって選択されたＷｅｂサービスを利用する。
【００１８】
Ｗｅｂサービスのレジストリ標準として、ＵＤＤＩ（Universal Description Discovery, and Integration）がある。
【００１９】
ＵＤＤＩとは、Ｗｅｂサービスの記述、発見、統合を実現するためのレジストリ仕様である。
【００２０】
図１７は、ＵＤＤＩにしたがったレジストリの一例を示す図である。レジストリ８は、Ｗｅｂサービスの電話帳としてもディレクトリサービスを提供する。
【００２１】
複数の会社が共同でパブリックレジストリを運営する場合がある。Ｗｅｂサービスの提供者は、自己のＷｅｂサービスに関するデータをパブリックレジストリに登録し、Ｗｅｂサービスの利用者は、自己の利用したいＷｅｂサービスに関するデータをパブリックレジストリから検索し、Ｗｅｂサービスを利用する。
【００２２】
【非特許文献１】
ユーディーディーアイ・バージョン３．０（UDDI Version 3.0 published Specification）, [online], ２００２年７月１９日、インターネット＜URL: http://uddi.org/pubs/uddi-v3.00-published-20020719.pdf＞
【００２３】
【非特許文献２】
ウェブ・サービスズ・ディスクリプション・ランゲージ（ダブリューエスディーエル）１．１（Web services Description Language (WSDL) 1.1）, ダブリュースリーシー・ノート（W3C Note）, [online], ２００１年３月１５日、インターネット＜http://www.w3.org/TR/wsdl＞
【００２４】
【非特許文献３】
川村隆浩、長谷川哲夫、大須賀昭彦、山本純一（T. Kawamura, T. Hasegawa, A Ohsuga, J. Yamamoto）: プロポーザル・オブ・セマンティックス−ベースト・ウェブ・サービス・マッチメーキング(Proposal of Semantics-based Web Service Matchmaking)，プロシーディングス・オブ・インターナショナル・コンファレンス・オン・コンピューショナル・インテリジェンス・アンド・マルチメディア・アプリケーションズ ２００１（アイシーシーアイエムエー）（Proceedings of International Conference on Computational intelligence and Multimedia Applications 2001 (ICCIMA 01)）, アイトリプルイー（IEEE）, pp.87-92, Nov, 2001.
【００２５】
【非特許文献４】
ダブリューエスエムイー・ウェブ・サービスズ・マッチメーキング・エンジン（WSME Web Services Matchmaking Engine）, [online], ２００２年７月１６日、インターネット＜http://dwdemos.alphaworks.ibm.com/wstk/common/wstkdoc/services/demos/wsme/wsme.pdf＞
【００２６】
【発明が解決しようとする課題】
パブリックレジストリには、誰でも自由にＷｅｂサービスを登録できる。したがって、登録されたＷｅｂサービスについての品質や信頼性は補償されない。パブリックレジストリから検索されたＷｅｂサービスの品質や信頼性のチェックは、サービス利用者に委ねられている。
【００２７】
しかしながら、サービス利用者にとって検索のたびにＷｅｂサービスの品質や信頼性をチェックすることは困難である。
【００２８】
登録自由なパブリックレジストリとは対象的に、ある特定の業界や特定の企業のポリシーにしたがって、登録されるＷｅｂサービスを統制するローカルレジストリがある。
【００２９】
図１８は、ローカルレジストリとパブリックレジストリとの関係の一例を示す図である。
【００３０】
例えば、旅行代理店は、企業内にローカルレジストリ１０を所有している。この旅行代理店の従業者やシステム９は、原則としてパブリックレジストリ１１ではなく、ローカルレジストリ１０を用いてＷｅｂサービスに関するデータを検索する。
【００３１】
新たなＷｅｂサービスをローカルレジストリ１０に登録したい旅行代理店の従業者は、その旨をローカルレジストリ１０の管理者に申請する。
【００３２】
ローカルレジストリ１０の管理者は、ローカルレジストリ１０に新規登録候補のＷｅｂサービスを登録する前に、この新規登録候補のＷｅｂサービスの品質や信頼性を調査して所定の基準を満たす場合に登録を許可する。
【００３３】
登録する場合には、調査結果なども補足データとしてローカルレジストリ１０に登録する。
【００３４】
このような手順で登録作業が行われることで、ローカルレジストリ１０の利用者（企業の従業者や自社システム）は、品質や信頼性の保証されたＷｅｂサービスに関するデータのみを検索できる。
【００３５】
ローカルレジストリ１０とパブリックレジストリ１１とが実現される場合、図１９に示すように双方の整合性の確保が必要になる場合がある。
【００３６】
この図１９において、ホテル業者が自社予約サービスをパブリックレジストリ１１に登録する。旅行代理店におけるローカルレジストリ１０の管理者は、パブリックレジストリ１１に登録されている予約サービスに関するデータを検索し、この予約サービスに関するデータを自社のローカルレジストリ１０に登録する。
【００３７】
次に、ホテル業者は、パブリックレジストリ１１内の自社の登録内容を更新したとする。例えば、ホテル業者は、予約サービスへのアクセスＵＲＬ（Uniform Resource Locators）を変更する。
【００３８】
この時点で、パブリックレジストリ１１にはホテル業者の更新後の予約サービスに関するデータが登録されているのに対し、旅行代理店のローカルレジストリ１０にはホテル業者の更新前の予約サービスに関するデータが登録されている。したがって、ローカルレジストリ１０とパブリックレジストリ１１の登録内容に不整合が生じる。
【００３９】
本発明は、以上のような実情に鑑みてなされたもので、ローカルレジストリとパブリックレジストリとの登録内容を整合させるデータ整合プログラム及びシステム並びに方法を提供することを目的とする。
【００４０】
【課題を解決するための手段】
本発明を実現するにあたって講じた具体的手段について以下に説明する。
【００４１】
本発明の一態様のデータ整合プログラムは、コンピュータに、ローカルレジストリ記録装置から、「データ項目についての値」「整合性をチェックする対象のパブリックデータを指定するパブリックデータ指定情報」「整合性をチェックする項目の指定、当該項目について整合性がないと判断された場合に実行される複数の整合性確保処理のうちのいずれかの整合性確保処理の設定を含む整合性確保ルール、を指定するルール指定情報」を含むローカルデータを取得するローカルデータ取得機能と、ローカルレジストリ記録装置から取得されたローカルデータに含まれているパブリックデータ指定情報に基づいて、パブリックレジストリ記録装置から、データ項目についての値を持ちローカルデータとの間で整合性をチェックする対象であるパブリックデータを取得するパブリックデータ取得機能と、ルール記録装置から、ローカルレジストリ記録装置から取得されたローカルデータに含まれているルール指定情報で指定されている整合性確保ルールを取得し、この取得された整合性確保ルールで指定されている整合性をチェックする項目について、ローカルデータとパブリックデータとの間で値が整合しているか否か判断する比較機能と、比較機能によって、整合性をチェックする項目についてローカルデータとパブリックデータとの間で値が整合していないと判断された場合に、整合性確保ルールで設定されている整合性確保処理を実行する処理機能とを実現させる。
【００４２】
これにより、ローカルレジストリ記録装置のローカルデータとパブリックレジストリ記録装置のパブリックデータとの間でデータを整合させることができる。
【００４３】
なお、本発明において、複数の整合性確保処理は、不整合の生じたデータ項目の値として前記パブリックデータの値を返す処理を含むとしてもよい。複数の整合性確保処理は、前記パブリックデータの不整合の生じたデータ項目の値で、前記ローカルデータの不整合の生じたデータ項目の値を更新する処理を含むとしてもよい。これにより、パブリックレジストリ記録装置の登録内容を変更するのみでローカルレジストリ記録装置の登録内容も変更できる。複数の整合性確保処理は、不整合が発生したことを通知する処理を含むとしてもよい。
【００４５】
また、本発明において、ローカルレジストリ記録装置は特定の条件を満たすデータのみが登録されるローカルレジストリであり、パブリックレジストリ記録装置は特定の条件を満たさないデータであっても登録されるパブリックレジストリであるとしてもよい。これにより、ローカルレジストリとパブリックレジストリとの間でＷｅｂサービスに関するデータを整合させることができる。
【００４６】
なお、本発明のデータ整合プログラム又はこのプログラムを記録した記録媒体を用いることによって、上記各機能を有していないコンピュータ、コンピュータシステム、サーバ、クライアントに対しても、簡単にこれらの機能を付加することができる。
【００４７】
本発明で実現される機能と同様の動作を実現する手段をデータ整合システムに具備することにより、同様の作用効果を得ることができる。
【００４８】
本発明のデータ整合プログラム又はこのプログラムを記録した記録媒体をコンピュータに適用することによって、Ｗｅｂサービスに関するデータを複数の記録装置間で整合させるデータ整合方法がコンピュータ上で実施される。
【００４９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００５０】
以下の各図において同一の部分については同一の符号を付してその説明を省略し、異なる部分についてのみ詳しく説明する。
【００５１】
本実施の形態においては、ローカルレジストリに登録されたＷｅｂサービスに関するデータ（以下、「ローカルデータ」という）がパブリックレジストリに登録されたＷｅｂサービスに関するデータ（以下、「パブリックデータ」という）と不整合になった場合に、ローカルデータを更新し、双方のレジストリを整合させるデータ整合システムについて説明する。
【００５２】
図１は、本実施の形態に係るデータ整合システムの構成の一例を示すブロック図である。
【００５３】
データ整合プログラム１２は、記録媒体１３に記録されており、ローカルレジストリ１４としての機能を実現する計算機システムに読み込まれ、起動することにより、データ整合システム１５として動作する。
【００５４】
ローカルレジストリ１４は、サービスデータ記録部１６、サービス管理部１７、サービス検索部１８、データ整合システム１５を具備する。
【００５５】
本実施の形態においては、ＷｅｂサービスＡ〜Ｃのうち、ＷｅｂサービスＡ、Ｃに関するデータがローカルレジストリ１４に登録されている。ローカルレジストリ１２に登録されているＷｅｂサービスＡ、Ｃに関するデータは、それぞれローカルデータ１９ａ、１９ｃである。
【００５６】
ローカルデータ１９ａ、１９ｃは、サービス管理部１７を介してサービスデータ記録部１６に登録される。サービスデータ記録部１６に登録されたローカルデータ１９ａ、１９ｃは、サービス検索部１８による検索対象となる。
【００５７】
パブリックレジストリ１１は、サービスデータ記録部２０、サービス管理部２１、サービス検索部２２を具備する。
【００５８】
本実施の形態においては、ＷｅｂサービスＡ、Ｂに関するデータがパブリックレジストリ１１に登録されている。パブリックレジストリ１１に登録されているＷｅｂサービスＡ、Ｂに関するデータは、それぞれパブリックデータ２３ａ、２３ｂである。
【００５９】
ローカルレジストリ１４とパブリックレジストリ１１において、同じＷｅｂサービスに関するデータが登録されている場合、このＷｅｂサービスに関するローカルデータとパブリックデータとは対応関係を持つ。対応関係を持つローカルデータとパブリックデータとは、データ整合システム１５による整合性確保の対象となる。
【００６０】
上記図１の例では、ローカルレジストリ１４とパブリックレジストリ１１の双方に登録されているＷｅｂサービスＡに関するローカルデータ１９ａとパブリックデータ２３ａについては整合性確保の対象となり、ローカルレジストリ１４とパブリックレジストリ１１とのうち一方にのみ登録されているＷｅｂサービスＢに関するパブリックデータ２３ｂとＷｅｂサービスＣに関するローカルデータ１９ｃについては整合性確保の対象外となる。
【００６１】
整合性確保の対象となっているＷｅｂサービスＡに関するローカルデータ１９ａには、ローカルレジストリ１４とパブリックレジストリ１１との間でＷｅｂサービスＡに関する登録内容に不整合が発生した場合に、対処方法を定めた整合性確保ルールを指定するルール指定データが含まれている。
【００６２】
さらに、整合性確保の対象となっているＷｅｂサービスＡに関するローカルデータ１９ａには、対応関係にあるパブリックデータ２３ａを指定する関係データが含まれている。
【００６３】
データ整合システム１５は、不整合が発生した場合に、指定されている整合性確保ルールにしたがって整合性確保処理を実行する。
【００６４】
なお、不整合の発生したローカルデータにルール指定データが含まれていない場合、データ整合システム１５は、デフォルトの整合性確保ルールにしたがって整合性確保処理を実行する。
【００６５】
本実施の形態においては、ＵＤＤＩ Version1.0 仕様（以下、「ＵＤＤＩ仕様」という）に基づくパブリックレジストリ１１とローカルレジストリ１４との間で整合性を確保する機構について説明する。
【００６６】
ＵＤＤＩ仕様では、サービスの登録、更新、削除、検索の４種類のＡＰＩ（Application Programming Interface）がＸＭＬ形式で規定される。また、ＵＤＤＩ仕様では、この４種類のＡＰＩにしたがってやり取りされるデータ形式も規定されている。
【００６７】
データ整合システム１５は、主に、ローカルデータ取得部１５ａ、パブリックデータ取得部１５ｂ、比較部１５ｃ、処理部１５ｄとを具備する。また、比較部１５ｃ、処理部１５ｄは、整合性確保ルールＲ1〜Ｒnの記録されている整合性確保ルール記録部２４をアクセスする。
【００６８】
ローカルデータ取得部１５ａは、サービス検索部１８を介してローカルレジストリ１４のサービスデータ記録部１６を検索し、検索されたローカルデータを取得する。
【００６９】
本実施の形態においては、ローカルデータには関係データが含まれている場合があるため、ローカルデータ取得部１５ａは、関係データの取得機能も実現する。
【００７０】
パブリックデータ取得部１５ｂは、パブリックレジストリを検索し、検索されたパブリックデータを取得する。
【００７１】
比較部１５ｃは、取得されたローカルデータに含まれているルール指定データによって指定された整合性確保ルールにしたがって、同一のＷｅｂサービスに関するローカルデータとパブリックデータとを比較し、不整合の有無を判定する。
【００７２】
なお、整合性確保ルールには、ローカルデータとパブリックデータとの間で整合性を確保する項目についても指定されている。
【００７３】
処理部１５ｄは、不整合が発生した場合に、整合性確保ルールにしたがった整合性確保処理を実行する。
【００７４】
図２は、本実施の形態においてローカルレジストリ及びパブリックレジストリとで扱われるデータの構造の一例を示す図である。
【００７５】
ローカルレジストリ１４及びパブリックレジストリ１１は、ＵＤＤＩ仕様のレジストリとする。
【００７６】
ローカルレジストリ１４及びパブリックレジストリ１１では、businessEntry、businessService、bindingTemplate、tModelという４種類のデータが扱われる。
【００７７】
会社名、業種などの各企業に関するデータは、businessEntryという単位で表現される。
【００７８】
各企業についてのbusinessEntryには、この企業の提供するＷｅｂサービスを表現するbusinessServiceが少なくとも一つ含まれる。一つのbusinessServiceは、互いに関連するＷｅｂサービスの集合を表現する。なお、一つのbusinessServiceが一つのＷｅｂサービスを表現するとしてもよい。
【００７９】
例えば、ある旅行代理店を表すbusinessEntryには、ホテル予約サービスを表すbusinessServiceやレンタカー予約サービスを表すbusinessServiceなどが含まれる。
【００８０】
そして、ホテル予約サービスを表すbusinessServiceは、空き部屋照合サービス、部屋予約サービス、キャンセルサービスなどの互いに関連するＷｅｂサービスから構成される。
【００８１】
各bindingTemplateには、businessServiceを構成する各Ｗｅｂサービスのアクセス先、アクセス方法などの詳細データが記述されている。なお、一つのbusinessServiceは、例えばインターネットからのアクセス、ＦＡＸによるアクセスなどのように複数のアクセス方法を持つ場合もある。このため、一つのbusinessServiceが複数のbindingTemplateを持つ場合がある。
【００８２】
tModelには、各Ｗｅｂサービスの厳密なインタフェース仕様が規定されている。
【００８３】
本実施の形態においては、bindingTemplateの整合性を確保する場合について説明するが、businessEntry、businessService、tModelなどの他の種類のデータの整合性を確保する場合も同様である。
【００８４】
なお、ＵＤＤＩ仕様では、ＡＰＩと論理的なデータ構造が規定されているが、レジストリの実装方法については規定されていない。すなわち、ＡＰＩにしたがってやり取りされるＸＭＬデータの論理的な形式は規定されているが、実際にデータをレジストリに記録する方法については規定されていない。
【００８５】
そこで本実施の形態においては、論理的なデータ構造について説明し、この論理的なデータ構造を実装する方法は問わないものとして説明する。例えば、実装の方法としては、リレーショナルデータベースを使った実装、オブジェクト指向データベースを使った実装などがある。
【００８６】
以下に、Ｗｅｂサービスに関する論理的なデータ構造について説明する。なお、本実施の形態においてはＵＤＤＩ仕様で定義されているデータ種類のうちbindingTemplateの構造と処理手順を例として説明するが、businessEntry、businessService、tModelなどの他の種類のデータの構造と処理手順についても同様である。
【００８７】
表１に、ＵＤＤＩ仕様で規定されているbindingTemplateのデータ構造を示す。
【００８８】
【表１】
0004334253.tif 000002
【００８９】
表１中のbindingKeyは、各bindingTemplateのＩＤである。accessPointはこのＷｅｂサービスへのアクセスポイント（ＵＲＬなど）を記述するためのオプション属性である。
【００９０】
hostingRedirector属性には、別のbindingTemplateのbindingKeyが記述される。このhostingRedirectorは、accessPointにアクセスポイントを記述することなく、別のbindingTemplateを参照することを目的として用意されている。
【００９１】
bindingTemplateでは、accessPointとhostingRedirectorとのうち少なくとも一方に値が設定される必要がある。
【００９２】
description属性は、Ｗｅｂサービスに関するデータを文字列で記述するために用意されている。このdescriptionには、２５５文字以内の文字列が設定され、例えば言語毎に説明を記述できる。
【００９３】
図３は、ＵＤＤＩ仕様で規定されているbindingTemplateのデータ構造を用いた本実施の形態に係るローカルデータとパブリックデータの一例を示すブロック図である。この図３においては、上記図１のＷｅｂサービスＡがホテル予約サービスに対応し、ローカルデータ１９ａがローカルレジストリ１４に登録されたホテル予約サービスに関するbindingTemplate２５に対応し、パブリックデータ２３ａがパブリックレジストリ１１に登録されたホテル予約サービスに関するbindingTemplate２６に対応する。ローカルデータ１９ａは、パブリックデータ２３ａとの間の関係データを含む。この場合、ローカルデータ１９ａと関係データとはともに記録装置に記録され、関係データを含むローカルデータ１９ａが記録装置から読み出される。
【００９４】
本実施の形態においては、整合性確保を目的として上記の属性を以下のように利用する。
【００９５】
ローカルレジストリ１４に登録されたbindingTemplate２５からパブリックレジストリ１１に登録されたbindingTemplate２６を参照するために、bindingTemplate２５のhostingRedirector属性に、対応関係にあるbindingTemplate２６を識別するためのデータが与えられる。このhostingRedirector属性に設定される値は、関係データに対応する。
【００９６】
ホテル予約サービスに関するbindingTemplate２６は、パブリックレジストリ１１に登録されており、このbindingTemplate２６のＩＤ、すなわちbindingKey属性の値は、publickey_123である。
【００９７】
ホテル予約サービスに関するbindingTemplate２５は、ローカルレジストリ１４に登録されている。bindingTemplate２５のＩＤは、localkey_001である。
【００９８】
bindingTemplate２５は、bindingTemplate２６を参照している。すなわち、buindingTemplate２５のhostingRedirector属性には、bindingTemplate２６のＩＤであるpublickey_123が設定されている。
【００９９】
本実施の形態において、bindingTemplate２５のdescription属性には、整合性確保ルールを識別するためのデータが設定される。例えば、bindingTemplate２５のdescription属性には、rule:rule_1が設定されている。この設定により、bindingTemplate２５はrule_1で指定される整合性確保ルールＲ1にしたがって整合性が確保される。
【０１００】
本実施の形態においては、ローカルデータのbindingTemplate２５とパブリックデータのbindingTemplate２６との間で整合性を確保するが、bindingTemplate２５とbindingTemplate２６とは、全ての属性（データ項目）で値が一致している必要はない。
【０１０１】
この図３の例では、accessPoint属性の値は双方とも「http://www.abc.com/efg」で一致しているがdescription属性の値は異なる。この例において、bindingTemplate２５のdescription属性には、「部屋の質は高い」というコメントが設定されており、bindingTemplate２６のdescription属性には、「部屋予約のサービス」というコメントが設定されている。
【０１０２】
bindingTemplateにおけるどの属性が整合性確保の対象となるかについては、rule_1で指定される整合性確保ルールＲ1で定義されている。
【０１０３】
図４は、ＸＭＬ形式で記述されたローカルデータであるbuindingTemplate２５の一例を示す図である。
【０１０４】
この図４の例に示すように、hostingRedirector属性に値が設定されているbindingTemplateが整合性確保の対象となるローカルデータである。
【０１０５】
hostingRedirector属性に値が設定されているbindingTemplateに対しては、description属性で指定されている整合性確保ルールに基づいて整合性確保処理が実行される。
【０１０６】
処理部１５ｄは、整合性確保ルールにおける定義内容によって異なる整合性確保処理を実行する。具体的な整合性確保処理を実行するまでの処理の流れについて以下に説明する。
【０１０７】
図５は、データ整合システム１５の動作の例を示すシーケンス図である。この図５における縦線は上記図１、３に示す構成要素とシステム外部アクタ（ローカルレジストリ１４の管理者と利用者）を表し、上から下に向かって時間の流れを表す。特に説明がない限り、図５に示す構成要素はローカルレジストリ１４に具備されている要素であるとする。
【０１０８】
ＵＤＤＩ仕様をベースとしたサービス検索部１８には、いくつかのタイプの検索機能が備わっている。この図５では、キーワードによりローカルレジストリ１４に登録されているbindingTemplateが検索される場合を例として示している。
【０１０９】
ローカルレジストリ１４の利用者（ローカルレジストリ１４にアクセスする人間又はシステム）は、キーワード「ホテル予約」を引数としてbindingTemplateの検索を試みる。
【０１１０】
サービス検索部１８は、サービスデータ記録部１６からキーワード「ホテル予約」にマッチしたbindingTemplateの一覧を求める。
【０１１１】
ローカルレジストリ１４の利用者は、キーワード「ホテル予約」に適合したbindingTemplateの一覧を取得する。このbindingTemplateの一覧には、この一覧を構成する各bindingTemplateの概要（サービス名、bindingKey属性の値など）のリストが含まれる。
【０１１２】
一覧を構成する各bindingTemplateの詳細データを取得するために、さらにbindingKeyを引数として詳細データを取得する必要がある。
【０１１３】
この図５の例では、利用者は、あるＷｅｂサービスのbindingKey属性の値localkey_001を引数として詳細データの取得を試みている。
【０１１４】
サービス検索部１８は、利用者からの詳細データの取得要求をデータ整合システム１５に転送する。
【０１１５】
データ整合システム１５は、サービスデータ記録部１６からbindingKey属性の値がlocalkey_001であるbindingTemplate２５を取り出す。
【０１１６】
ここから先の整合性確保処理の内容は、整合性確保ルールに応じた内容となる。
【０１１７】
例えば、ある整合性確保ルールで定義された内容にしたがって、データ整合システム１５は、bindingTemplate２５と対応関係にあるbindingTemplate２６をパブリックレジストリ１１から取り出し、bindingTemplate２５とbindingTemplate２６と比較し、比較項目について不整合があったらパブリックレジストリ１１のbindingTemplate２６の内容でローカルレジストリ１４のbindingTemplate２５の内容を更新するとしてもよい。
【０１１８】
また、例えば別の整合性確保ルールで定義された内容にしたがって、データ整合システム１５は、不整合があってもローカルレジストリ１４のbindingTemplate２５を更新することなく、不整合がある旨をローカルレジストリ１４の管理者に通知するとしてもよい。
【０１１９】
このように、整合性確保処理の具体的な内容は整合性確保ルールに依存するが、整合性確保処理を実行するまでの動作は全整合性確保ルールで共通化することができる。
【０１２０】
図６は、詳細データ取得要求を受け付けた後におけるデータ整合システム１５の動作の一例を示すフローチャートである。
【０１２１】
ステップＳ１において、データ整合システム１５は、ローカルレジストリ１４に登録されているローカルデータ（例えばbindingTemplate）を取得する。
【０１２２】
ステップＳ２において、データ整合システム２５は、ローカルデータに含まれている関係データ（例えばbindingTemplateのhostingRedirector属性の値）を調べる。
【０１２３】
hostingRedirector属性に値が設定されていない場合、データ整合システム１５は、ローカルデータと対応関係のあるパブリックデータはないと判断し、ステップＳ３において、データ整合システム１５は、ローカルデータを返却する。
【０１２４】
hostingRedirector属性に値が設定されている場合、ステップＳ４において、データ整合システム１５は、その値をキー（bindingKey）としてパブリックレジストリ１１の検索を要求し、パブリックレジストリ１１に公開されているパブリックデータ（例えばbindingTemplate）を取得する。
【０１２５】
ステップＳ５において、データ整合システム１５は、ローカルデータに含まれているルール指定データ（例えばbindingTemplateのdescription属性の値）に基づいて、整合性確保ルールを取得する。
【０１２６】
ステップＳ６において、データ整合システム１５は、取得した整合性確保ルールに基づいて、ローカルデータとパブリックデータを比較する。
【０１２７】
不整合がない場合、上記ステップＳ３と同様に、データ整合システム１５は、ローカルデータを返却する。
【０１２８】
不整合がある場合、ステップＳ７において、データ整合システム１５は、取得した整合性確保ルールに基づいて整合性確保処理を実行し、ステップＳ８において、処理後のローカルデータ又はパブリックデータを返却する。
【０１２９】
以下に、整合性確保ルールＲ1〜Ｒnについて説明する。
【０１３０】
上述したように、整合性確保処理の内容は、整合性確保ルールＲ1〜Ｒnに依存する。
【０１３１】
図７は、本実施の形態に係る整合性確保ルールＲ1〜Ｒnの一例を示す図である。
【０１３２】
本実施の形態において各整合性確保ルールＲ1〜Ｒnには、整合性確保の処理内容と比較項目とが設定される。
【０１３３】
整合性確保の処理内容としては、例えば「不整合が生じたらローカルデータを即座に更新する」旨の命令、「不整合が生じたらローカルレジストリの管理者に通知する」旨の命令などが記述されている。
【０１３４】
比較項目では、ローカルデータとパブリックデータとが整合しているか否かの判定対象となる項目が特定されている。
【０１３５】
この図７の例では、bindingTemplateのaccessPoint属性の値が比較され、整合性が判定される。
【０１３６】
本実施の形態に係る整合性確保の処理内容は、汎用のプログラミング言語で実装してもよく、処理内容を記述するための特定のスクリプト言語を定義し、そのスクリプト言語を使って処理内容を記述してもよい。
【０１３７】
また、本実施の形態において、比較項目は、ＸＭＬ形式で記述されているが、他の形式で記述されてもよい。
【０１３８】
また、本実施の形態において、整合性確保ルールＲ1〜Ｒnでは、処理内容と比較項目が設定されているが、他の事項が設定されるとしてもよい。例えば、一日一回整合性を調査する旨などの整合性確保処理の実行タイミングが設定されてもよい。
【０１３９】
以下に、整合性確保ルールＲ1〜Ｒnにおいて定義されている整合性確保処理の内容について３つの例を挙げて説明する。
【０１４０】
第１の例は、「ローカルデータを無視し、パブリックデータのみを参照する」旨を定めた整合性確保ルールである。
【０１４１】
図８は、この第１の例に係る整合性確保ルールにしたがって実行される整合性確保処理を示すシーケンス図である。
【０１４２】
データ整合システム１５は、検索したローカルデータと対応関係にあるパブリックデータの取得をパブリックレジストリ１１のサービス検索部２２に依頼し、パブリックデータを取得する。
【０１４３】
データ整合システム１５は、検索したローカルデータを無視して、取得したパブリックデータをローカルレジストリ１４のサービス検索部１８に返す。
【０１４４】
サービス検索部１８は、データ整合システム１５から取得したパブリックデータを利用者に提供する。
【０１４５】
図９は、第１の例に係る整合性確保ルールとローカルデータとパブリックデータの関係の例を示す図である。
【０１４６】
ローカルデータであるbindingTemplate２５には、rule_1で指定される整合性確保ルールＲ1を使用する旨が記述されており、hostingRedirector属性に値publickey_123が設定されている。
【０１４７】
この場合、データ整合システム１５は、bindingKey属性の値がpublickey_123のbindingTemplate２６をパブリックレジストリ１１で検索し、整合性確保ルールＲ1にしたがって、ローカルデータは無視して検索したパブリックデータを返却する。
【０１４８】
第２の例は、「ローカルデータとパブリックデータとの間で比較項目に不整合が発生した場合に、パブリックデータにあわせてローカルデータを即座に更新し、更新後のローカルデータを返却する」旨を定めた整合性確保ルールである。
【０１４９】
図１０は、この第２の例に係る整合性確保ルールにしたがって実行される整合性確保処理を示すシーケンス図である。
【０１５０】
データ整合システム１５は、検索したローカルデータと対応関係にあるパブリックデータの取得をパブリックレジストリ１１のサービス検索部２２に依頼し、パブリックデータを取得する。
【０１５１】
データ整合システム１５は、検索したローカルデータとパブリックデータとの比較項目について、整合性の有無を判定し、整合性がない場合は、パブリックデータにおける比較項目の値でローカルデータにおける比較項目の値を更新する。
【０１５２】
そして、データ整合システム１５は、更新後のローカルデータをサービス検索部１８に返す。
【０１５３】
サービス検索部１８は、データ整合システム１５から取得した更新後のローカルデータを利用者に提供する。
【０１５４】
図１１は、第２の例に係る整合性確保ルールとローカルデータとパブリックデータの関係の例を示す図である。
【０１５５】
ローカルデータであるbindingTemplate２５には、rule_2で指定される整合性確保ルールＲ2を使用する旨が記述されており、hostingRedirector属性に値publickey_123が設定されている。
【０１５６】
この場合、データ整合システム１５は、bindingKey属性の値がpublickey_123のbindingTemplate２６をパブリックレジストリ１１で検索する。
【０１５７】
次に、データ整合システム１５は、整合性確保ルールＲ2の比較項目で指定されているaccessPoint属性に関して、bindingTemplate２５とbindingTemplate２６との間で値を比較する。
【０１５８】
この例では、bindingTemplate２５のaccessPoint属性には「http://www.abc.com/efg」が設定されており、bindingTemplate２６のaccessPoint属性には「http://www.abc.com/hij」が設定されているため、比較項目であるaccessPoint属性の値が異なっている。
【０１５９】
そこで、データ整合システム１５は、bindingTemplate２５におけるaccessPoint属性の値をbindingTemplate２６におけるaccessPoint属性の値で更新し、更新されたbindingTemplate２５を返却する。
【０１６０】
なお、比較項目で指定されていない属性に関しては、比較対象外である。例えば、この例において、bindingKey属性、description属性の値もローカルデータとパブリックデータとで異なるが、この値については整合性確保の対象外である。
【０１６１】
第３の例は、「ローカルデータとパブリックデータとの間で比較項目に不整合が発生した場合に、ローカルデータを更新することなく、不整合が発生した旨の通知をローカルレジストリの管理者に通知する」旨を定めた整合性確保ルールである。
【０１６２】
図１２は、この第３の例に係る整合性確保ルールにしたがって実行される整合性確保処理を示すシーケンス図である。
【０１６３】
データ整合システム１５は、検索したローカルデータと対応関係にあるパブリックデータの取得をパブリックレジストリ１１のサービス検索部２２に依頼し、パブリックデータを取得する。
【０１６４】
データ整合システム１５は、検索したローカルデータをサービス検索部１８に返す。
【０１６５】
サービス検索部１８は、データ整合システム１５から取得したローカルデータを利用者に提供する。
【０１６６】
また、データ整合システム１５は、検索したローカルデータとパブリックデータとの比較項目について、整合性の有無を判定し、整合性がない場合は、その旨をローカルレジストリ管理者に通知する。
【０１６７】
図１３は、第３の例に係る整合性確保ルールとローカルデータとパブリックデータの関係の例を示す図である。
【０１６８】
ローカルデータであるbindingTemplate２５には、rule_3で指定される整合性確保ルールＲ3に使用する旨が記述されており、hostingRedirector属性に値publickey_123が設定されている。
【０１６９】
この場合、データ整合システム１５は、bindingKey属性の値がpublickey_123のbindingTemplate２６をパブリックレジストリ１１で検索する。
【０１７０】
次に、データ整合システム１５は、整合性確保ルールＲ3の比較項目で指定されているaccessPoint属性に関して、bindingTemplate２５とbindingTemplate２６との間で値を比較する。
【０１７１】
比較項目であるaccessPointの値が異なっている場合、データ整合システム１５は、この時点ではbindingTemplate２５を更新することなく、検索されたbindingTemplate２５をそのまま返却する。
【０１７２】
また、データ整合システム２５は、不整合が発生している旨をローカルレジストリ管理者に通知する。
【０１７３】
以上説明した本実施の形態においては、ローカルデータとパブリックデータとの間で不整合が発生した場合に、予め定められた整合性確保ルールにしたがって整合性確保処理が実行される。したがって、ローカルレジストリ管理者にとってローカルデータとパブリックデータとの間の整合性の確保が容易になる。
【０１７４】
例えば、パブリックデータの内容にしたがってローカルデータを更新する整合性確保処理を適用することにより、パブリックデータのみを新規の内容に変更すれば、ローカルデータまでも自動的に変更可能であり、ローカルレジストリの管理者の管理労力が低減される。
【０１７５】
また、整合性確保ルールによっては、利用者がローカルレジストリ１４にアクセスした時点でリアルタイムにローカルデータとパブリックデータとの間で整合性が確保されるため、利用者が不整合の影響を受けることを防止できる。
【０１７６】
また、利用者がローカルデータにアクセスしたときに整合性をチェックすることにより、例えば定期的にローカルレジストリ１４とパブリックレジストリ１１の全データの整合性を調査する必要がなく、装備と保守作業とを簡略化できる。
【０１７７】
なお、本実施の形態に係るデータ整合システム１５の各構成要素は、同様の動作を実現可能であれば配置を変更させてもよく、また各構成要素を自由に組み合わせてもよく、各構成要素を自由に分割してもよい。
【０１７８】
例えば、ローカルデータ取得部１５ａから関係データを取得する部分を独立させてもよい。また、ローカルデータを記録する記録部と関係データを記録する記録部とを別構造としてもよい。
【０１７９】
また、本実施の形態において、データ整合システム１５は複数の計算機により構成され、データ整合プログラム１２は複数の計算機に分散して配置され、互いに連携を取りつつ処理を実行するとしてもよい。
【０１８０】
本実施の形態に係るデータ整合プログラム１２は、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んでコンピュータに適用可能である。またデータ整合プログラム１２は、通信媒体により伝送してコンピュータに適用することも可能である。コンピュータは、記録媒体に記録されたデータ整合プログラム１２を読み込み、データ整合プログラム１２によって動作が制御されることにより、上記の機能を実現する。
【０１８１】
【発明の効果】
以上詳記したように本発明においては、複数の記録装置に記録され、互いに対応関係にあるＷｅｂサービスに関するデータを容易かつ適切に整合させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るデータ整合システムの構成の一例を示すブロック図。
【図２】同実施の形態においてローカルレジストリ及びパブリックレジストリとで扱われるデータの構造の一例を示す図。
【図３】ＵＤＤＩ仕様で規定されているbindingTemplateのデータ構造を用いた同実施の形態に係るローカルデータとパブリックデータの一例を示すブロック図。
【図４】ＸＭＬ形式で記述されたローカルデータであるbuindingTemplateの一例を示す図。
【図５】同実施の形態に係るデータ整合システムの動作の例を示すシーケンス図。
【図６】同実施の形態に係る詳細データ取得要求を受け付けた後におけるデータ整合システムの動作の一例を示すフローチャート。
【図７】同実施の形態に係る整合性確保ルールの一例を示す図。
【図８】同実施の形態に係る整合性確保ルールの第１の例にしたがって実行される整合性確保処理を示すシーケンス図。
【図９】整合性確保ルールの第１の例とローカルデータとパブリックデータの関係の例を示す図。
【図１０】同実施の形態に係る整合性確保ルールの第２の例にしたがって実行される整合性確保処理を示すシーケンス図。
【図１１】整合性確保ルールの第２の例とローカルデータとパブリックデータの関係の例を示す図。
【図１２】同実施の形態に係る整合性確保ルールの第３の例にしたがって実行される整合性確保処理を示すシーケンス図。
【図１３】整合性確保ルールの第３の例とローカルデータとパブリックデータの関係の例を示す図。
【図１４】一般的なＷｅｂシステムの構成の一例を示すブロック図。
【図１５】Ｗｅｂサービスの一例を示すブロック図。
【図１６】Ｗｅｂサービスに関するレジストリの適用例を示す図。
【図１７】ＵＤＤＩにしたがったレジストリの一例を示す図。
【図１８】ローカルレジストリとパブリックレジストリとの関係の一例を示す図。
【図１９】ローカルレジストリとパブリックレジストリとの間で不整合が発生する一例を示す図。
【符号の説明】
１１…パブリックレジストリ
１２…データ整合プログラム
１３…記録媒体
１４…ローカルレジストリ
１５…データ整合システム
１５ａ…ローカルデータ取得部
１５ｂ…パブリックデータ取得部
１５ｃ…比較部
１５ｄ…処理部
１６、２０…サービスデータ記録部
１７、２１…サービス管理部
１８、２２…サービス検索部
１９ａ、１９ｃ…ローカルデータ
２３ａ、２３ｂ…パブリックデータ
２４…整合性確保ルール記録部
２５、２６…bindingTemplate
【図１】
0004334253.tif 000003
【図２】
0004334253.tif 000004
【図３】
0004334253.tif 000005
【図４】
0004334253.tif 000006
【図５】
0004334253.tif 000007
【図６】
0004334253.tif 000008
【図７】
0004334253.tif 000009
【図８】
0004334253.tif 000010
【図９】
0004334253.tif 000011
【図１０】
0004334253.tif 000012
【図１１】
0004334253.tif 000013
【図１２】
0004334253.tif 000014
【図１３】
0004334253.tif 000015
【図１４】
0004334253.tif 000016
【図１５】
0004334253.tif 000017
【図１６】
0004334253.tif 000018
【図１７】
0004334253.tif 000019
【図１８】
0004334253.tif 000020
【図１９】
0004334253.tif 000021