(57)【要約】【課題】連携シナリオを作成する際に用いるサービス連結情報を再利用性高く自動的に生成する。【解決手段】入力及び出力にメタデータが付与された複数の要素サービスESを連携させる際に用いる要素サービス連結情報を生成するシステムであって、メタデータが対応する複数のエンティティとその相互関係を表す意味的オントロジ(301)と、第１の要素サービスの出力のメタデータに対応するエンティティと、第２の要素サービスの入力のメタデータに対応するエンティティとの意味的オントロジ内における相互関係が、所定の条件を満たす場合に、その出力がその入力に意味的に代入可能であるとして、出力及び入力のスキーマを考慮した定義式を生成して要素サービス連結情報を生成する。【選択図】図１
2008210227.tif 000002
【特許請求の範囲】
【請求項１】
入力及び出力に対して所定のメタデータがそれぞれ付与されて構成された複数の要素サービスを連携させる際に用いるものであって、複数の要素サービスの入力又は出力間を連結するための情報である要素サービス連結情報を生成するシステムであって、
メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジと、
第１の要素サービスの出力に付与された第１のメタデータに対応するエンティティと、第２の要素サービスの入力に付与された第２のメタデータに対応するエンティティとのオントロジ内における相互関係が、所定の条件を満たす場合に、その第１の要素サービスの出力がその第２の要素サービスの入力に意味的に代入可能であることを求める第１の手段と、
代入可能である場合に、その第１の要素サービスの出力をその第２の要素サービスの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成する第２の手段と
を備えることを特徴とする要素サービス連結情報生成システム。
【請求項２】
前記条件が、前記第１のメタデータに対応するエンティティと、前記第２のメタデータに対応するエンティティとが同一又は等価であること、であることを特徴とする請求項１記載の要素サービス連結情報生成システム。
【請求項３】
前記条件が、前記第１のメタデータに対応するエンティティが、前記第２のメタデータに対応するエンティティのサブクラスであること、であることを特徴とする請求項１記載の要素サービス連結情報生成システム。
【請求項４】
前記条件が、前記第１のメタデータに対応するエンティティが、前記第１の要素サービス又はそれ以外の要素サービスの他の出力に付与されたメタデータに対応するエンティティと組み合わされた場合に、前記第２のメタデータに対応するエンティティが形成されること、であることを特徴とする請求項１記載の要素サービス連結情報生成システム。
【請求項５】
前記条件が、前記第１のメタデータに対応するエンティティと、前記第２のメタデータに対応するエンティティとがインスタンスのレベルで同一又は等価であること、であり、
前記第２の手段において、インスタンスごとに対応する定義式を作成する
ことを特徴とする請求項１記載の要素サービス連結情報生成システム。
【請求項６】
前記オントロジにおいて、全てのエンティティは物理的エンティティと抽象的エンティティのいずれかの下方クラスに属し、抽象的エンティティの下方クラスに属する全てのエンティティは、物理的エンティティの下方クラスに属する全てのエンティティの下位に属するという制約を与えられており、
前記第１の手段が、前記第１の要素サービスの出力が意味的に物理的な事象であり且つ前記第２の要素サービスの入力が意味的に抽象的な事象である場合に、その出力をその入力に意味的に代入可能であるとする
ことを特徴とする請求項１〜５のいずれか１項に記載の要素サービス連結情報生成システム。
【請求項７】
入力及び出力に対して所定のメタデータがそれぞれ付与されて構成された複数の要素サービスを連携させる際に用いるものであって、複数の要素サービスの入力又は出力間を連結するための情報である要素サービス連結情報を生成する方法であって、
メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジを用いて、
第１の要素サービスの出力に付与された第１のメタデータに対応するエンティティと、第２の要素サービスの入力に付与された第２のメタデータに対応するエンティティとのオントロジ内における相互関係が、所定の条件を満たす場合に、その第１の要素サービスの出力がその第２の要素サービスの入力に意味的に代入可能であることを求める第１の過程と、
代入可能である場合に、その第１の要素サービスの出力をその第２の要素サービスの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成する第２の過程と
を含んでいることを特徴とする要素サービス連結情報生成方法。
【請求項８】
入力及び出力に対して所定のメタデータがそれぞれ付与されて構成された複数の要素サービスを連携させる際に用いるものであって、複数の要素サービスの入力又は出力間を連結するための情報である要素サービス連結情報を生成する方法をコンピュータで実行するためのプログラムであって、
メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジを用いて、
第１の要素サービスの出力に付与された第１のメタデータに対応するエンティティと、第２の要素サービスの入力に付与された第２のメタデータに対応するエンティティとのオントロジ内における相互関係が、所定の条件を満たす場合に、その第１の要素サービスの出力がその第２の要素サービスの入力に意味的に代入可能であることを求める第１の過程と、
代入可能である場合に、その第１の要素サービスの出力をその第２の要素サービスの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成する第２の過程と
をコンピュータで実行するための記述を含んでいることを特徴とする要素サービス連結情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に分散した複数のサービスを連携させて実行するシステムにおいてサービスを連携するために用いるサービス連結情報を生成する際に用いて好適なサービス連結情報生成システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、SOA(サービス指向アーキテクチャ)の実現技術の１つとして、サービス連携技術が注目を浴びている。サービス連携技術で用いられるサービスは、例えばWSDL(Web Services Description Language)が定めた技術仕様に基づくWebサービスインタフェースやUPnP(Universal Plug and Play)仕様に基づくサービスインタフェースを定義し、SOAP(Simple Object Access Protocol、※国際標準化団体W3Cが定めた技術仕様)などによってメッセージ送受を行う機能を提供する。これらインタフェース定義されたサービスを順次若しくは並列的に実行するワークフロー即ち連携シナリオは、シナリオ実行エンジンによって実行される。連携シナリオにおいて参照・呼び出される、前記インタフェース定義されたサービスを本発明では要素サービスと呼ぶこととする。
【０００３】
一般にWebサービスを用いた複雑なワークフロー(連携シナリオ)を記述するワークフロー記述言語としてはBPEL(Business Process Execution Language)などが用いられる。BPEL記述に基づき、ワークフローを実行するシナリオ実行エンジンはBPELエンジンと呼ばれる。
【０００４】
BPELシステムのほかには、シナリオ実行エンジンと要素サービスとの間でインタフェース整合がとれない場合に仲介サービスを発見し、これを含めてサービスを合成する機能を有するシステム(例えば特許文献１)、サービスが提供されている同一領域の同等機能を持つ他のサービス要素への動的適応を可能とするシステム(例えば特許文献２)などが存在する。これらシステムを用いることによって、要素サービスを組み合わせた連携シナリオを利用することが可能である。
【０００５】
連携シナリオの作成に際しては、本発明の発明者らが検討中の技術において、連携シナリオにおける要素サービス間のデータフロー(データの受け渡し)を要素サービス連結情報として作成してシステムに保持することによって、データフロー定義の再利用性を高め、人手を減らし、効率的に連携シナリオを作成することが可能となることがわかっている。
【０００６】
また、連携シナリオを作成するシステムにおいて要素サービス連結情報を自動的に生成することは、連携シナリオ作成の手間の更なる低減に寄与すると考えられる。ここで、要素サービス連結情報は、要素サービスのインタフェースすなわち入力・出力パラメータの関係を定義するものである。
【０００７】
なお、入力・出力パラメータの関係の定義の方法としてはパラメータ帳票を用いる方法(特許文献３)などがあるが、この方法ではパラメータどうしの意味的相違とスキーマの相違の両面が混在して機械的に処理されており、定義の再利用性に課題があると考えられる。
【０００８】
【特許文献１】特開２００５−７１０５２号公報
【特許文献２】特開２００５−２５０８４４号公報
【特許文献３】特開２００５−３３２１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上述した背景に鑑みてなされたものであり、連携サービスを表す連携シナリオを作成する際に用いられるものであって、インタフェースすなわち入力・出力パラメータの関係を定義するものであるサービス連結情報を再利用性高く自動的に生成することができるサービス連結情報生成システム、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１記載の発明は、入力及び出力に対して所定のメタデータがそれぞれ付与されて構成された複数の要素サービスを連携させる際に用いるものであって、複数の要素サービスの入力又は出力間を連結するための情報である要素サービス連結情報を生成するシステムであって、メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジと、第１の要素サービスの出力に付与された第１のメタデータに対応するエンティティと、第２の要素サービスの入力に付与された第２のメタデータに対応するエンティティとのオントロジ内における相互関係が、所定の条件を満たす場合に、その第１の要素サービスの出力がその第２の要素サービスの入力に意味的に代入可能であることを求める第１の手段と、代入可能である場合に、その第１の要素サービスの出力をその第２の要素サービスの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成する第２の手段とを備えることを特徴とする要素サービス連結情報生成システムである。
【００１１】
請求項２記載の発明は、前記条件が、前記第１のメタデータに対応するエンティティと、前記第２のメタデータに対応するエンティティとが同一又は等価であること、であることを特徴とする。請求項３記載の発明は、前記条件が、前記第１のメタデータに対応するエンティティが、前記第２のメタデータに対応するエンティティのサブクラスであること、であることを特徴とする。
【００１２】
請求項４記載の発明は、前記条件が、前記第１のメタデータに対応するエンティティが、前記第１の要素サービス又はそれ以外の要素サービスの他の出力に付与されたメタデータに対応するエンティティと組み合わされた場合に、前記第２のメタデータに対応するエンティティが形成されること、であることを特徴とする。請求項５記載の発明は、前記条件が、前記第１のメタデータに対応するエンティティと、前記第２のメタデータに対応するエンティティとがインスタンスのレベルで同一又は等価であること、であり、前記第２の手段において、インスタンスごとに対応する定義式を作成することを特徴とする。
【００１３】
請求項６記載の発明は、前記オントロジにおいて、全てのエンティティは物理的エンティティと抽象的エンティティのいずれかの下方クラスに属し、抽象的エンティティの下方クラスに属する全てのエンティティは、物理的エンティティの下方クラスに属する全てのエンティティの下位に属するという制約を与えられており、前記第１の手段が、前記第１の要素サービスの出力が意味的に物理的な事象であり且つ前記第２の要素サービスの入力が意味的に抽象的な事象である場合に、その出力をその入力に意味的に代入可能であるとすることを特徴とする。
【００１４】
また、請求項７記載の発明は、入力及び出力に対して所定のメタデータがそれぞれ付与されて構成された複数の要素サービスを連携させる際に用いるものであって、複数の要素サービスの入力又は出力間を連結するための情報である要素サービス連結情報を生成する方法であって、メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジを用いて、第１の要素サービスの出力に付与された第１のメタデータに対応するエンティティと、第２の要素サービスの入力に付与された第２のメタデータに対応するエンティティとのオントロジ内における相互関係が、所定の条件を満たす場合に、その第１の要素サービスの出力がその第２の要素サービスの入力に意味的に代入可能であることを求める第１の過程と、代入可能である場合に、その第１の要素サービスの出力をその第２の要素サービスの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成する第２の過程とを含んでいることを特徴とする要素サービス連結情報生成方法である。
【００１５】
また、請求項８記載の発明は、入力及び出力に対して所定のメタデータがそれぞれ付与されて構成された複数の要素サービスを連携させる際に用いるものであって、複数の要素サービスの入力又は出力間を連結するための情報である要素サービス連結情報を生成する方法をコンピュータで実行するためのプログラムであって、メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジを用いて、第１の要素サービスの出力に付与された第１のメタデータに対応するエンティティと、第２の要素サービスの入力に付与された第２のメタデータに対応するエンティティとのオントロジ内における相互関係が、所定の条件を満たす場合に、その第１の要素サービスの出力がその第２の要素サービスの入力に意味的に代入可能であることを求める第１の過程と、代入可能である場合に、その第１の要素サービスの出力をその第２の要素サービスの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成する第２の過程とをコンピュータで実行するための記述を含んでいることを特徴とする要素サービス連結情報生成プログラムである。
【発明の効果】
【００１６】
本発明によれば、メタデータが対応づけられる複数のエンティティとその相互関係を表す情報とからなるオントロジを参照して、第１の要素サービスの出力が第２の要素サービスの入力に意味的に代入可能であることを求め、代入可能である場合に、第１の要素サービスの出力を第２の要素サービスの入力に代入する場合の対応付けを出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報を生成するようにしたので、要素サービスのインタフェースを整合し、インタフェースすなわち入力・出力パラメータの関係を自動的に定義し、連携サービスを表すシナリオを生成することができる。
【００１７】
特に、要素サービスの規約に対して付与するメタデータとして、意味的オントロジに存在するエンティティを適切にあてがうことを考慮すれば、意味的オントロジにおけるエンティティ間は再利用性が高く、逆にサービスの規約に対してメタデータをどのように付与するかという、意味的に分かりやすい指針を与えることが可能となる。また、抽象的エンティティの物理的エンティティに対する包含関係を利用することによって、従来のマッピングでは不可能であった、具体的な物を表すパラメータを、抽象的な事象を示すパラメータにマッピングすることが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を実施するための最良の実施の形態について図面を参照し説明する。本発明によるサービス連結情報生成システムを含む連携シナリオ作成システムのシステム図を図１に示す。図１に示す連携シナリオ作成システムは、コンピュータ及びその周辺装置を用いて所定のプログラムを実行することで実現されるものであるが、その構成要素の一部として本発明が特徴とする構成であるところの、少なくとも要素サービス連結情報生成部300を含んで構成されるサービス連結情報生成システムを含んでいる。
【００１９】
図１に示す要素サービス群202を構成する複数の要素サービスESは、ネットワーク201を介してユーザ210(端末あるいは端末を操作する操作者を意味する。)ほかの図示していない種々の端末(コンピュータ端末、携帯情報端末等)において利用可能である。サービス要素ESとは、対象を計算機環境で取り扱えるようにしたエンティティ(entity、実体ともいう)であって、ネットワーク201に接続されたサービス提供装置によって提供されるデータの集合を表し、ネットワーク201上で利用可能なプロセス又はデータが含まれる。サービス要素ESとしては、例えば、インターネット通信網などのWebで接続されたシステム間で利用される技術を用いたWebサービスによる気象情報や株価情報の提供や、企業間のエンタープライズアプリケーション統合などが実現されている。また、汎用のピアツーピア(Peer to Peer：P2P)プラットフォームであるJXTAを利用し、ネットワークによる様々のサービスを提供するプログラムが、ネットワーク上で分散して用いられている。
【００２０】
また、サービス要素ESの他の例としては、Webサービスを構成するEJB(enterprise Java(登録商標) Beans)などで実現されているコンポーネント、ネットワークを経由してアクセスできる映像などのコンテンツ、ネットワーク201に接続されたプリンタやディスプレイ、どの程度計算機が動作しているかを示すCPU資源や、どの程度ネットワークが使用されているかを示すネットワーク帯域といった計算機環境的リソース、ネットワーク上でサービスを実現するための複数のサービス要素の提供順序を記述したサービステンプレートなどがある。また、常時接続されたサーバ上で動作するソフトウェアばかりがサービス要素ではない。例えば、物理的に近い他ユーザとの数の限られた通信が可能な携帯端末上で動作するソフトウェアもサービス要素である。また、ネットワーク201はインターネットを含む公衆及び専用情報通信網等から構成されている。
【００２１】
上述したように図１に示す任意の要素サービスESはネットワーク201を介して利用可能であり、シナリオ実行エンジン111は、前記要素サービスESを連携させるシナリオ(連携シナリオ)を実行することで複数の要素サービスを利用可能にする。また、シナリオ作成部102と要素サービス連結情報作成部106は、ネットワーク201を介してユーザ210から利用することが出来る。
【００２２】
シナリオ実行エンジン111は、要素サービスESのワークフローである連携シナリオに記載された順番に従い、N(Nは自然数)番目の要素サービスを提供するサービス提供装置から出力情報を入力すると、次のサービス実行要求を、連携シナリオに記載された(N+1)番目のサービス要素を実行するサービス提供装置の入力情報として送出する、といった処理を繰り返す。ここで、シナリオ実行エンジン111は、プラットフォームのコアモジュールであり、連携シナリオを読み込んだ後、XML(Extensible Markup Language)パーサにより妥当性をチェックし、連携シナリオを実行する。また、イベント駆動型システムでの適用時には、イベントに応じた該当の連携シナリオを実行し、実行中に、上位アプリケーションのプロセスに処理を委譲する際、実行を待機することも可能である。
【００２３】
シナリオ作成部102は、ユーザ210からの指示に従い、要素サービス連結情報記憶部109に記憶されている要素サービス連結情報を参照して、複数の要素サービスすなわちインタフェース定義された複数のサービスを、順次若しくは並列的に実行するワークフローである連携シナリオを作成する。連携シナリオの概念的構成例を図２に示す。
【００２４】
要素サービス連結情報記憶部109に記憶される要素サービス連結情報は、要素サービス連結情報生成部300が自動的に生成するほか、ユーザ210からの指示に従って要素サービス連結情報作成部106が作成することもできる。
【００２５】
次に、図２の連携シナリオST1を作成する処理の流れについて、図３のフローチャートを参照して説明する。図２の連携シナリオST1は、要素サービスAを呼び出した後に要素サービスBを呼び出し、その後に更に要素サービスCを呼び出し、その後に更に要素サービスDを呼び出すという連携シナリオである。ここで、要素サービスA〜Dは図１のサービス要素ESに対応する。
【００２６】
ユーザ210はシナリオ作成部102にアクセスし、図３に示す連携シナリオ作成処理が実行される。ステップS101においてユーザ210はシナリオ作成部102にログインし、ステップS102においてユーザ210の表示面上にシナリオを作成するための画面が表示される。
【００２７】
ユーザ210は、ステップS103における画面誘導に従い、連携シナリオST1を表す要素サービスに対応するアイコンをGUI(グラフィカルユーザインターフェース)フロー図上で選択する。
【００２８】
図２の連携シナリオST1に示されているような、要素サービスAから要素サービスB、要素サービスBから要素サービスC、要素サービスCから要素サービスDという各組み合わせについて、要素サービス連結情報記憶部109が何らの要素サービス連結情報を持っていない場合(ステップS104で判定結果が「yes」)、ステップS201以降の処理において要素サービス連結情報生成部300はサービス連結情報を生成する。
【００２９】
ステップS201〜S203において、要素サービス連結情報生成部300は、要素サービスBの入力パラメータのすべて、要素サービスCの入力パラメータのすべて及び要素サービスDの入力パラメータのすべてについて、要素サービスAの出力パラメータのいずれか、要素サービスBの出力パラメータのいずれか又は要素サービスCの出力パラメータのいずれかから、データを取得することが出来ないかの計算を行う。
【００３０】
以下、一例として、ステップS201において要素サービスAと要素サービスBを選択した場合、すなわち要素サービスBの入力パラメータを、要素サービスAの出力パラメータから取得することができるか否かを計算する場合について説明する。なお、以下の説明では要素サービスBの入力パラメータを要素サービスAの出力パラメータから取得可能な場合を例として説明する。これに対して取得できない場合にはその旨を示す情報が要素サービス連結情報記憶部109に記憶され、シナリオ作成部102などを介してユーザ210に通知されることになる。
【００３１】
なお、図５に例示するように、要素サービスAは入力I_A1、入力I_A2、出力O_A3及び出力O_A4を有し、要素サービスBは入力I_B1、入力I_B2、出力O_B3及び出力O_B4を有するものとする。この場合、要素サービスBの入力パラメータを、要素サービスAの出力パラメータから取得することができるとは、出力O_A3や出力O_A4から得られるデータを、直接あるいはなんらかの変換処理を行った後、入力I_B1及び入力I_B2に受け渡すことができることを意味する。
【００３２】
ステップS202で、要素サービス連結情報生成部300は、パラメータ名について適切なマッピングを行うなど、各種インタフェースの整合をとる処理を行い、整合されたパラメータ間の関係を示す定義式を要素サービス連結情報記憶部109に記憶する。ここでパラメータ名について適切なマッピングを行うとは、例えば複数のサービス要素を順次呼び出す際に、最初に呼び出したサービス要素のパラメータの５ 番目に入る返り値を、次に呼び出すサービス要素のパラメータの３ 番目に入れて呼び出す等のサービス要素を呼び出す際の必要なパラメータの設定のことを意味する。ステップS202は、ステップS202-1とそれに続くステップS202-2から成る。先ずステップS202-1について説明する。
【００３３】
ステップS202-1では、各要素サービス(ここでは要素サービスAと要素サービスB)の出力・入力に付与されたメタデータ(データのためのデータ)間の意味的関係を、意味的オントロジ記憶部301から検索し、出力・入力間の意味的な代入関係を求める処理を行う。
【００３４】
すべての要素サービスESは、該要素サービスがどのような入力・出力を有するかという情報を記述した規約を有する。規約は、WSDLなどの形式に従い記述される。WSDL形式などの規約において記述されるパラメータは、その名称や粒度(granularity)や役割が、ドメイン毎に異なる。ここで、１つのドメインとは、ある１つ以上の要素サービス群(例えば図１の要素サービス群202)を提供する１つの提供者に関する。即ち、ドメインが異なれば、パラメータの名称や粒度や役割が異なる。以降では、パラメータの名称や粒度や役割のことをスキーマと呼ぶこととし、パラメータxのスキーマをS{x}と標記する。
【００３５】
上述したように例えばドメインが異なれば、意味的に同じパラメータであってもスキーマが通常、異なる。意味的に同じパラメータであっても、スキーマが異なれば、ある要素サービスの出力を他の要素サービスの入力にそのままの形では代入することはできない。したがって、代入の際に用いられる入力・出力パラメータの関係を定義する定義式としては、パラメータxの意味的な相互関係だけではなく、スキーマS{x}の相互関係にも配慮したものが求められることになる。
【００３６】
本システムでは異なるドメインに対応するため、上述した入力・出力についての規約に記載されているパラメータに対して、意味的情報(セマンティクス)を含むメタデータが付与されていることとする。例えば図５のように、入力I_A1、入力I_A2、出力O_A3、出力O_A4、入力I_B1、入力I_B2、出力O_B3、出力O_B4に対しては、それぞれi_A1、i_A2、o_A3、o_A4、i_B1、i_B2、o_B3、o_B4というメタデータが付与されていることとする。
このメタデータの付与方法は、要素サービスがWSDL規約を有するウェブサービスの場合、SAWSDL(Semantic Annotations for Web Services Description、W3Cで標準化作業中、http://www.w3.org/2002/ws/sawsdl/）に従い、WSDLに注釈を付記する形で実現する。あるいは、要素サービスがウェブサービスよりも抽象的に定義されている場合、すなわちOWLの拡張様式であるOWL-S(http://www.daml.org/services/owl-s/)に従い規約が定義されている場合は、その規約に記載されているパラメータ等自体がメタデータに相当する。
【００３７】
意味的情報を含むメタデータには、エンティティ間の論理的な関係が、RDF(Resource Description Framework)やOWL(Webオントロジ言語)などの形式に従い、オントロジ(意味的オントロジ)として保持されている。オントロジ(意味的オントロジ)とは、語彙についてのある知識ベースでの前提概念と、その概念同士の相互関係を明示するものである。本システムにおいては、要素サービスの入力及び出力に対して所定のメタデータがそれぞれ付与されており、オントロジは、それらのメタデータが対応づけられる複数のエンティティとその相互関係を表す情報とから構成されている。
【００３８】
任意の１つのメタデータは、意味的オントロジにおける１つ以上のエンティティに対応する。すべてのエンティティは、抽象的エンティティか具体的エンティティのいずれかのサブクラスであるとする。本発明では意味的オントロジを用いて入力・出力パラメータ間の意味的な相互関係の有無・内容を認識し、その認識結果に基づいて入力・出力パラメータの関係を定義する定義式を生成するが、その際に用いる意味的オントロジが意味的オントロジ記憶部301に記憶されている。
【００３９】
例えば図６のように、意味的オントロジ記憶部301に記憶される意味的オントロジでは、“食品”は“製品”のサブクラスであり、“製品”は“物理的エンティティ”のサブクラスである。すなわち、各エンティティの関係は「食品⊆製品⊆物理的エンティティ」の関係となっている。ここで「X⊆Y」は、集合Xが集合Yの部分集合であることを表す。また、「owl:subClassOf」は、OWLにおいてサブクラスを定義するプロパティである。
【００４０】
また例えば図６のように、意味的オントロジ記憶部301に記憶されている意味的オントロジにおいて、“イベント”は“通知”のサブクラスであり、“通知”は“抽象的エンティティ”のサブクラスである。すなわち、「イベント⊆通知⊆抽象的エンティティ」の関係となる。
【００４１】
ステップS202-1では、例えば、第１の要素サービス(この例では要素サービスA)の出力のメタデータと、第２の要素サービス(この例では要素サービスB)の入力のメタデータとが、意味的オントロジにおいて同一のエンティティに対応する場合に、その出力がその入力に対して意味的に代入可能な関係であると認識することができる。例えば図５に示すように、メタデータo_A3とメタデータi_B1が、ともに図７に示すエンティティXである場合、i_B1<=o_A3との関係が求められることになる。但しm<=nとはnはmに意味的に代入可能であることを表す。
【００４２】
具体的には例えば出力O_A3と、入力I_B1がともに人の名前であり、それぞれに対してメタデータo_A3=“human”とメタデータi_B1=“human”が付与されている場合、さらに意味的オントロジ記憶部301内の意味的オントロジにエンティティX=“human”が保持されているとき、ステップS202-1では、第１の要素サービス(この例では要素サービスA)の出力O_A3のメタデータo_A3と、第２の要素サービス(この例では要素サービスB)の入力I_B1のメタデータi_B1とが、同一の意味的オントロジのエンティティであると判定され、出力O_A3が入力I_B1に対して意味的に代入可能であるとの関係が求められることになる。
【００４３】
次にステップS202-2の処理について説明する。ステップS202-2では、ステップS202-1で求められた意味的関係に基づき、スキーマDB(データベース)302を参照し、出力・入力の受け渡し定義式を生成する処理が行われる。
【００４４】
例えばメタデータo_A3とメタデータi_B1が、「i_B1<=o_A3」である場合、要素サービス連結情報生成部300はスキーマDB302を参照し、スキーマDB302の中に、メタデータo_A3に対応するスキーマS{O_A3}とメタデータi_B1に対応するスキーマS{I_B1}との関係が既に保持されているかどうか検索する。保持されていなければ、スキーマS{O_A3}とスキーマS{I_B1}の関係をスキーマDB302に登録する必要があるが、一般的には、メタデータo_A3=メタデータi_B1である場合には、スキーマS{O_A3}=スキーマS{I_B1}が典型的である。
【００４５】
スキーマS{O_A3}=スキーマS{I_B1}が得られたとき、要素サービス連結情報生成部300は、入力I_B1が出力O_A3より得られるということを意味する定義式を生成することが出来る。生成された定義式は要素サービス連結情報記憶部109に格納される。この場合、定義式が表す情報は、出力O_A3が入力I_B1に対応し、それらのスキーマがS{O_A3}=S{I_B1}の関係であること、となる。また、得られたスキーマS{O_A3}=スキーマS{I_B1}の関係を示す情報がスキーマDB302に格納される。
【００４６】
以上のステップを入力I_B1と入力I_B2に関して実行することによって、要素サービスBの入力パラメータが要素サービスAの出力パラメータから取得されることを計算・認識し、それらの間の関係を示す定義式を生成することが出来る。以上によりステップS202-2が終了する。
【００４７】
次にステップS203の条件判断に従い、ステップS201〜S203を、要素サービスBの入力パラメータのすべて、要素サービスCの入力パラメータのすべて及び要素サービスDの入力パラメータのすべてについて実行する。
【００４８】
このようにして、要素サービスAの出力パラメータのいずれか、要素サービスBの出力パラメータのいずれか又は要素サービスCの出力パラメータのいずれかから、データを取得する定義式を求めることが出来る。
【００４９】
次にステップS105でシナリオ作成終了の旨がユーザより指示されたかいなかを判定し、指示された場合、ステップS106においてシナリオ作成部102が連携シナリオST1を表すシナリオ文を生成する。シナリオ文は、BPEL形式に従うことが出来るがそれに限らない。このときシナリオ作成部102、要素サービス間のデータの受け渡しについては定義式を参照するよう、シナリオ文を生成する。
【００５０】
ここで生成された連携シナリオST1を、シナリオ実行エンジン111に読み込ませることによって、シナリオ実行エンジン111は連携シナリオST1に記載された内容に従って要素サービスを制御することが可能となる。
【００５１】
以上の説明により、本発明を実施するための最良の形態が説明されるが、上記ステップS202-1においては、ある要素サービスの出力と他の要素サービスの入力とが意味的に代入可能であるとの関係を求める条件として上記の図７を参照して説明した例に従うほかに、図８〜図１１に例示する条件のいずれかに従う下記の例が存在する。すなわち、ステップS202-1では、要素サービスAの出力に付与されたメタデータに対応するエンティティと、要素サービスBの入力に付与されたメタデータに対応するエンティティとの意味的オントロジ内における相互関係が、所定の条件を満たす場合に、その要素サービスAの出力がその要素サービスBの入力に意味的に代入可能であると求めるとともに、ステップS202-2では、代入可能である場合に、その要素サービスAの出力をその要素サービスBの入力に代入する場合の対応付けを、出力及び入力のスキーマを考慮して示す定義式を生成し、その定義式が示す情報を含む要素サービス連結情報が生成されるようになっていた。
【００５２】
そして、その際の所定の条件が、上記の実施の形態では、要素サービスAの出力のメタデータに対応するエンティティと、要素サービスBの入力のメタデータに対応するエンティティとが同一であることであった。これに対して、以下の例では、それらのエンティティが等価であること、一方が他方のサブクラスであること、さらに複数のメタデータのエンティティと組み合わされた場合に要素サービスBの入力のメタデータに対応するエンティティが形成されること、及びそれらのエンティティがインスタンスのレベルで同一又は等価であること、を所定の条件としている。
【００５３】
図８に示す場合、要素サービスAの出力O_A3のメタデータo_A3がエンティティX、要素サービスBの入力I_B1のメタデータi_B1がエンティティYであり、意味的オントロジにおいてXとYが等価(owl:equivalentClass(=OWLにおいて二つのクラスが等価であると表すプロパティ))の関係にある場合に、「i_B1<=o_A3」とする。具体的には出力O_A3と入力I_B1がともに「食品」を表し、それぞれに対してメタデータo_A3=“食品”とメタデータi_B1=“食材”が付与されているとき、意味オントロジにおいてX is equivalentclass of Y、又はY is equivalentclass of Xが保持されている場合に生じうる。この場合、典型的には定義式はS{O_A3}=S{I_B1}である。
【００５４】
あるいは推移性により、X is equivalentclass of mかつm is equivalentclass of Yの場合に生じうる(mは任意のエンティティ)。
【００５５】
図９に示す場合、メタデータo_A3がエンティティX、メタデータi_B1がエンティティYであり、意味的オントロジにおいてXとYが下方クラス関係(owl:subClassOf(=OWLにおいて一つのクラスが他のクラスのサブクラスであると表すプロパティ))の関係にある場合、「i_B1<=o_A3」とする。具体的には、出力O_A3と入力I_B1がともに「食品」を表し、それぞれに対してメタデータo_A3=“食品”とメタデータi_B1=“製品”が付与されているときに、意味オントロジにおいてX  is  subclass  of  Yが保持されているときに生じうる。この場合、典型的には定義式はS{O_A3}=S{I_B1}である。あるいは推移性により、X is subclass of mかつm is subclass of Yの場合に生じうる(mは任意のエンティティ)。
【００５６】
図１０に示す場合、メタデータo_A3がエンティティX、要素サービスAの出力O_A4のメタデータo_A4がエンティティY、メタデータi_B1がエンティティZであり、意味的オントロジにおいてowl:unionOf, rdf:Seq(owl:unionOfはOWLによる参照クラスの和集合を表すプロパティ、rdf:SeqはRDFによる順番のある(Sequence)リストを表すコンテナ・モデル)の包含関係が保持されている場合に、「i_B1<=o_A3+"T"+o_A4」であるとする。
【００５７】
具体的には出力O_A3がxsd:date形式(＝XMLスキーマによる暦の日付を表すデータ型)の日にち、出力O_A4がxsd:time形式(＝XMLスキーマによる毎日定期的に繰り返される時刻を表すデータ型)の時刻、I_B1がxsd:dateTime形式(＝XMLスキーマによる特定の時刻のインスタンスを表す型)の日時を表す場合、それぞれに対してメタデータo_A3=“日にち”とメタデータo_A4=“時刻”とメタデータi_B1=“日時”が付与されているとき、意味的オントロジにおいてZ is union of {X+"T"+Y}が保持されているときに生じうる。この場合、典型的には定義式はS{I_B1}=S{O_A3}+"T"+S{O_A4}である。なお、xsd:String形式はXMLスキーマによる文字列を表すデータ型である。
【００５８】
また、「xsd:date」のパターンは「CCYY-MM-DD」である。「xsd:time」のパターンは「hh:mm:ss.sss」である。そして、「xsd:dateTime」 のパターンは 「CCYY-MM-DDThh:mm:ss」である。ただし、「CC」は世紀、「YY」は年、「MM」は月、「DD」は日を表し、「T」は日付と時刻の区切り記号であり、「hh」、「mm」、および「ss」は、それぞれ時、分、秒を表す。
【００５９】
図１１に示すような場合、メタデータo_A3がエンティティX、メタデータi_B1がエンティティYであり、意味的オントロジにおいてXとYのそれぞれの個体に対する等価関係(owl:sameAs(＝OWLによる参照元のインスタンスが参照しているインスタンスと同じものを表していることを示すプロパティ))が保持されている場合、意味的には「i_B1<=o_A3」であるが、S{I_B1}とS{O_A3}の個体(インスタンス)に対する対応関係を逐一記述した定義式を生成する。
【００６０】
具体的には出力O_A3と入力I_B1がともに「月」を表し、それぞれに対してメタデータo_A3=“month_number”とメタデータi_B1=“month”が付与されているとき、意味的オントロジにおいてXの個体(インスタンス)“1”とYの個体“January”が同一、Xの個体“2”とYの個体“February”が同一…といった関係が保持されている場合に生じうる。図１１に示すowl:DataRange, owl:oneOfは、OWLによる列挙クラスを定義するプロパティであり、そのクラスを形成する個体を列挙することによって、クラスを記述することができる。
【００６１】
以上の説明により、本発明を実施するための最良の形態が説明されるが、図３のステップS202-1におけるその他の実施の形態についてさらに説明する。
【００６２】
図３のステップS202においては、「物理的エンティティ⊆抽象的エンティティ」という制限を加えることも出来る。すなわち、意味的オントロジ記憶部301内の意味的オントロジにおいて、全てのエンティティは物理的エンティティと抽象的エンティティのいずれかの下方クラスに属するとし、さらに抽象的エンティティの下方クラスに属する全てのエンティティは、物理的エンティティの下方クラスに属する全てのエンティティの下位に属するという制約を与えることができるのである。この制限を加えることによって、ステップS202-1において、「物理的エンティティ」のsubclass(サブクラス)にある全てエンティティは、「抽象的エンティティ」のsubclassにある全てエンティティに対して、意味的に代入が可能であるとすることができる。ここで「物理的エンティティ」には具体的な物を表すパラメータのメタデータが属することになる。また、「抽象的エンティティ」には抽象的な事象を示すパラメータのメタデータが属することになる。
【００６３】
例えば図６に示すように物理的エンティティと抽象的エンティティの意味的オントロジが同時に意味的オントロジ記憶部301に保持されている場合、物理的エンティティに属する要素サービス乙の「製品」を表す出力パラメータを、抽象的エンティティに属する別の要素サービス丙における「イベント」を表すパラメータに意味的に代入することが可能になる。そしてステップS202-2において、スキーマDB302において要素サービス乙の「製品」スキーマと、要素サービス丙における「イベント」スキーマの対応関係を保持することによって、定義式を生成する。例えば、物理的エンティティと抽象的エンティティを対応させるための付加文字列を加えることで、「イベント」=「製品」+“を購入します”といった定義式が考えられる。
【００６４】
上記の実施の形態によれば、自動的に、要素サービスのインタフェースを整合し、インタフェースすなわち入力・出力パラメータの関係を定義して、連携サービスを表すシナリオを作成することができる。特に、要素サービスの規約に対して付与するメタデータとして、意味的オントロジに存在するエンティティを適切にあてがうことを考慮すれば、意味的オントロジにおけるエンティティ間は再利用性が高く、逆にサービスの規約に対してメタデータをどのように付与するかという、意味的に分かりやすい指針を与えることが可能となる。また、抽象的エンティティの物理的エンティティに対する包含関係を利用することによって、従来のマッピングでは不可能であった、具体的な物を表すパラメータを、抽象的な事象を示すパラメータにマッピングすることが可能となる。
【００６５】
なお、図１を参照して説明したシステム構成は、図４に示すように、シナリオ作成部102や要素サービス連結情報作成部106を、ユーザ210におけるPC(パーソナルコンピュータ)などの装置が有しても良い。なお、図４に示す構成における各機能の内容と処理ステップは、図１等を参照して説明した上記の実施の形態と同様である。
【００６６】
本発明の実施の形態は、上記のものに限定されず、例えば各構成をネットワーク201などを介してさらに分割、分散して配置するようにしたり、あるいは各記憶部、DBなどの構成要素を１つにまとめたりする変更を適宜行うことができる。また、本発明のサービス連結情報生成システムは、要素サービス連結情報生成部300を主要な構成要素とするものであるが、シナリオ作成部102、要素サービス連結情報作成部106などの他の構成要素と統合した形で構成することもできる。本発明のシステムは、コンピュータ及びその周辺装置を用いて実行されるプログラムとして構成することができ、そのプログラムはコンピュータ読み取り可能な記録媒体や通信回線を介して配布することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明を実施するための最良の実施の形態における一般的な構成を示すシステム図
【図２】図１の構成において用いる連携シナリオの一例を示す図
【図３】図１の構成における処理の流れを示すフローチャート
【図４】図１に示す構成の変更例を示すシステム図
【図５】要素サービスA及びBのパラメータに付与されたメタデータを表す図
【図６】図１の意味的オントロジ記憶部301に記憶されている意味的オントロジの構成を表す図
【図７】図１の意味的オントロジ記憶部301に記憶されている意味的オントロジに保持されているエンティティ間の関係の一例を表す図
【図８】図１の意味的オントロジ記憶部301に記憶されている意味的オントロジに保持されているエンティティ間の関係の他の例を表す図
【図９】図１の意味的オントロジ記憶部301に記憶されている意味的オントロジに保持されているエンティティ間の関係の他の例を表す図
【図１０】図１の意味的オントロジ記憶部301に記憶されている意味的オントロジに保持されているエンティティ間の関係の他の例を表す図
【図１１】図１の意味的オントロジ記憶部301に記憶されている意味的オントロジに保持されているエンティティ間の関係の他の例を表す図
【符号の説明】
【００６８】
102  シナリオ作成部
106  要素サービス連結情報作成部
111  シナリオ実行エンジン
201  ネットワーク
210  ユーザ
ST1  連携シナリオ
ES、A〜D  要素サービス
I_A1、I_A2  要素サービスAが有する入力
O_A1、O_A2  要素サービスAが有する出力
I_B1、I_B2  要素サービスBが有する入力
O_B1、O_B2  要素サービスBが有する出力
S101〜S203  実施形態におけるフローチャートのステップ番号
【図１】
2008210227.tif 000003
【図２】
2008210227.tif 000004
【図３】
2008210227.tif 000005
【図４】
2008210227.tif 000006
【図５】
2008210227.tif 000007
【図６】
2008210227.tif 000008
【図７】
2008210227.tif 000009
【図８】
2008210227.tif 000010
【図９】
2008210227.tif 000011
【図１０】
2008210227.tif 000012
【図１１】
2008210227.tif 000013