(57)【要約】【課題】処理フレームワーク連携時のスループットを向上できること。【解決手段】処理フレームワーク連携装置は、要求されたサービスのサービス定義Ｓに含まれるフィルタ４０２，４１３を有する処理フレームワークＦＷ−Ａ，ＦＷ−Ｂ間の連携ポイントＰをキューイングシステムＱで接続する。インメモリ型および非インメモリ型のキューイングシステムＱの処理遅延Ｔａと、実際にデータ転送した際に測定した転送遅延Ｔｂとに基づき、最短の転送遅延ＴｂのキューＱｕｅｕｅ１に対し、非インメモリ型のキューＱｕｅｕｅ５の転送遅延Ｔｂが所定の範囲にあれば、このキューＱｕｅｕｅ５をキューイングシステムＱとして選択する。【選択図】図６
2020071729.tif 000002
【特許請求の範囲】
【請求項１】
要求されたサービスのサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携装置において、
メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する制御部、
を備えたことを特徴とする処理フレームワーク連携装置。
【請求項２】
前記制御部は、
前記サービス定義から、前記処理フレームワーク間の前記連携ポイントを抽出する連携ポイント抽出部と、
抽出した前記連携ポイント毎に、利用可能な複数の前記キューイングシステムを抽出する連携システム抽出部と、
抽出した前記キューイングシステムで前記連携ポイントを接続し、前記処理フレームワーク間のデータの転送遅延を測定する遅延測定部と、
測定した前記転送遅延に基づいて、利用するキューイングシステムとして、前記インメモリ型あるいは非インメモリ型を選択する選択部と、
選択した前記キューイングシステムで前記連携ポイントを接続する連携の処理を挿入する連携システム挿入部と、
を備えたことを特徴とする請求項１に記載の処理フレームワーク連携装置。
【請求項３】
前記選択部は、
複数の前記キューイングシステムのうち最短の前記転送遅延の前記キューイングシステムに対し、前記非インメモリ型の転送遅延が所定の範囲にあれば、前記非インメモリ型のうち最短の転送遅延の前記キューイングシステムを選択することを特徴とする請求項２に記載の処理フレームワーク連携装置。
【請求項４】
前記連携ポイント抽出部は、
前記サービス定義に含まれる前記処理が動作する前記処理フレームワークを求め、当該処理フレームワーク間の前記連携ポイントを抽出することを特徴とする請求項２または３に記載の処理フレームワーク連携装置。
【請求項５】
前記連携システム抽出部は、
抽出した前記連携ポイントの両端の前記キューイングシステムで共用可能な前記キューイングシステムを抽出することを特徴とする請求項２〜４のいずれか一つに記載の処理フレームワーク連携装置。
【請求項６】
前記遅延測定部は、
抽出した前記キューイングシステムで前記連携ポイントを接続し、前記処理フレームワーク間でサンプルデータを実際に転送して前記転送遅延を測定することを特徴とする請求項２〜５のいずれか一つに記載の処理フレームワーク連携装置。
【請求項７】
前記選択部は、
複数の前記キューイングシステムのうち、最短の前記転送遅延の前記キューイングシステムに対し、前記非インメモリ型の転送遅延が所定の範囲になければ、前記インメモリ型のうち転送速度が最短の前記キューイングシステムを選択することを特徴とする請求項２〜６のいずれか一つに記載の処理フレームワーク連携装置。
【請求項８】
前記制御部は、
前記サービスが扱うデータの発生頻度が所定頻度より高い場合、前記データを連続的に転送した時の複数の前記キューイングシステムのスループットを測定し、複数の前記キューイングシステムのうち最大の前記スループットのものに対し、前記非インメモリ型の前記スループットが所定の範囲にあれば、当該非インメモリ型のうち最大のスループットのものを選択することを特徴とする請求項１〜７のいずれか一つに記載の処理フレームワーク連携装置。
【請求項９】
前記制御部は、
前記サービスが扱うデータのサイズが所定のサイズよりも大きい場合、予めサービスで利用する所定のデータサイズを転送し、前記キューイングシステムのそれぞれの前記転送遅延を測定することを特徴とする請求項１〜８のいずれか一つに記載の処理フレームワーク連携装置。
【請求項１０】
前記制御部は、
前記サービス内に前記連携ポイントが複数存在する場合、最短の前記転送遅延が大きい連携ポイントからキューイングシステムを選択し、他の前記連携ポイントは選択済みのキューイングシステムが利用可能であれば、選択済みの同じキューイングシステムを利用することを特徴とする請求項１〜９のいずれか一つに記載の処理フレームワーク連携装置。
【請求項１１】
前記制御部は、
複数のサービスが実行されている場合、他のサービスで利用している前記キューイングシステムを優先して選択することを特徴とする請求項１〜１０のいずれか一つに記載の処理フレームワーク連携装置。
【請求項１２】
前記制御部は、
前記サービス全体の実行にかかる実行遅延を測定し、当該実行遅延が前記転送遅延または前記処理遅延よりも十分に大きい場合、前記転送遅延が最長の前記キューイングシステムから優先して選択することを特徴とする請求項１〜１１のいずれか一つに記載の処理フレームワーク連携装置。
【請求項１３】
要求されたサービスのサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携方法において、
メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する、
処理をコンピュータが実行することを特徴とする処理フレームワーク連携方法。
【請求項１４】
要求されたサービスのサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携プログラムにおいて、
メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する、
処理をコンピュータに実行させることを特徴とする処理フレームワーク連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理フレームワークを連携させる処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラムに関する。
【背景技術】
【０００２】
近年のＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）では、センサのデータだけに限らず、カメラの映像や音声等のメディアを活用することでより多様なＩｏＴサービスが実現可能となっている。このようなＩｏＴサービスを簡単かつ短時間に開発できるとともに、低遅延でリアルタイムに実行するための処理フレームワークが多数存在している。例えば、これらの処理フレームワークの利用者が、キューイングシステムを用いて連携させれば複数の処理フレームワークを用いるサービスが開発できるようになる。
【０００３】
従来技術として、システム停止時に高速で揮発性の記憶領域から低速で不揮発性の記憶領域にメッセージを退避させて処理速度の向上とシステム停止時のメッセージの損失を防ぐ技術がある（例えば、下記特許文献１参照。）。また、高速小容量キューの空きとメッセージの滞留速度、およびメッセージの優先度に基づいて、高速小容量のキューあるいは低速大容量のキューのいずれかから選択し、キューの処理遅延を防ぐ技術がある（例えば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２２６３８５号公報
【特許文献２】特開２００６−２７７４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では複数の処理フレームワークを連携させたサービスを低遅延でリアルタイムに実行することができなかった。従来技術２のようにキューをメモリ等の揮発領域に配置する構成（ｉｎ  Ｍｅｍｏｒｙ、インメモリ型）と、キューをディスク等の不揮発領域に配置する構成（ｎｏｔ  ｉｎ  Ｍｅｍｏｒｙ、非インメモリ型と称す）の組み合わせにより、高速小容量と低速大容量の特性を活かすことができる。しかし、例えば、キューイングシステムに高速なインメモリ型を選択した場合、サービスをリアルタイムに実行可能であるものの、多数のサービスの同時利用により、メモリ不足が生じサービスのスループットが低下してしまう。
【０００６】
ここで、従来技術では、処理フレームワークの処理にかかる処理遅延以外の他の遅延を考慮していない。このため、複数の処理フレームワーク間を、各キューイングシステムを用いて連携させる場合に、転送遅延等の他の遅延に対応して適切なキューイングシステムを選択できず、複数の処理フレームワークを連携させたサービスを低遅延でリアルタイムに実行できず処理全体のスループットを向上できなかった。例えば、処理遅延が少ないインメモリ型であっても処理フレームワーク間の距離が離れている場合には、転送遅延が大きくなり、非インメモリ型の転送遅延に近づく。
【０００７】
一つの側面では、本発明は、処理フレームワーク連携時のスループットを向上できることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、処理フレームワーク連携装置は、要求されたサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携装置において、メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する制御部、を備えたことを要件とする。
【発明の効果】
【０００９】
本発明の一態様によれば、処理フレームワーク連携時のスループットを向上できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態かかる処理フレームワーク連携装置が行う処理フレームワーク連携処理の説明図である。
【図２】図２は、実施の形態にかかる処理フレームワーク連携装置の機能を示すブロック図である。
【図３】図３は、実施の形態にかかる処理フレームワーク連携装置のハードウェア構成例を示す図である。
【図４】図４は、実施の形態にかかる処理フレームワーク連携装置の連携ポイント抽出部の処理を説明する図である。
【図５】図５は、実施の形態にかかる処理フレームワーク連携装置の連携システム抽出部の処理を説明する図表である。
【図６】図６は、実施の形態にかかる処理フレームワーク連携装置の遅延測定部および連携システム選択部の処理を説明する図である。
【図７】図７は、実施の形態にかかる処理フレームワーク連携装置の連携システム挿入部の処理を説明する図である。
【図８】図８は、実施の形態にかかる処理フレームワーク連携装置の処理例を示すフローチャートである。
【図９】図９は、実施の形態にかかる処理フレームワーク連携装置の他の処理例を示す図である。（その１）
【図１０】図１０は、実施の形態にかかる処理フレームワーク連携装置の他の処理例を示す図である。（その２）
【図１１】図１１は、実施の形態にかかる処理フレームワーク連携装置の他の処理例を示す図である。（その３）
【図１２】図１２は、実施の形態にかかる処理フレームワーク連携装置の他の処理例を示す図である。（その４）
【図１３】図１３は、実施の形態にかかる処理フレームワーク連携装置の他の処理例を示す図である。（その５）
【発明を実施するための形態】
【００１１】
以下に図面を参照して、開示の処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラムの実施の形態を詳細に説明する。
【００１２】
図１は、実施の形態にかかる処理フレームワーク連携装置が行う処理フレームワーク連携処理の説明図である。例えば、多様なＩｏＴのサービスを簡単・短時間に開発し、低遅延でリアルタイムに実行するための処理フレームワークが多数存在している。各処理フレームワークは、データやメディアの取得、加工・検出・分析などの処理（フィルタと称す）をライブラリとして提供している。処理フレームワーク連携装置は、フィルタの組み合わせによって様々なサービスを提供できる。
【００１３】
図１（ａ）に示すように、既存の単一の処理フレームワークＦＷ−ＡはフィルタＡ１，〜Ａ３を有し、ＦＷ−ＢはフィルタＢ１，Ｂ２を有しており、それぞれ利用可能なフィルタや開発可能なサービスに制限がある。このため、異なる処理フレームワークＦＷ−Ａ，ＦＷ−Ｂ間をキューイングシステムＱで接続することで、要求するサービスのフィルタを有する複数の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂを連携させたサービスが提供できる。
【００１４】
キューイングシステムＱは、インメモリ型と、非インメモリ型とを有する。インメモリ型は、キュー（Ｑｕｅｕｅ）をメモリ等の揮発領域に配置する構成であり、高速（高スループット、処理遅延小）だが、メモリ使用量が大きい特性を有する。実施の形態では、非インメモリ型は、キューをディスク等の不揮発領域に配置する構成を称し、メモリ使用量は小さいが、低速（低スループットで処理遅延大）の特性を有する。
【００１５】
ここで、キューイングシステムＱに高速なインメモリ型を選択した場合、サービスをリアルタイムに実行可能であるものの、多数のサービスの同時利用により、メモリ不足が生じサービスのスループットが低下してしまう。
【００１６】
実施の形態では、図１（ｂ）に示す処理により処理フレームワークＦＷ−Ａ，ＦＷ−Ｂを連携させる処理を行う。発明者らは、複数の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂを連携させる際に、キューイングシステムＱの処理遅延Ｔａが、他の遅延より十分に小さければ、非インメモリ型を利用しても大きな影響が生じないことに着目した。実施の形態では、キューイングシステムＱの処理遅延Ｔａが、他の遅延より十分に小さければ、非インメモリ型のキューイングシステムＱを利用する。他の遅延とは、処理フレームワークＦＷ−Ａ，ＦＷ−Ｂ間の転送遅延Ｔｂ、サービス全体の処理時間である実行遅延（後述する）等である。例えば、処理遅延Ｔａが小さいインメモリ型であっても処理フレームワークＦＷ−Ａ，ＦＷ−Ｂ間の距離が離れている場合には、転送遅延Ｔｂが大きくなり、非インメモリ型の転送遅延Ｔｂに近づく。
【００１７】
ここで、転送遅延Ｔｂが処理遅延Ｔａに対して大きい場合、処理遅延Ｔａが大きくなっても影響度が小さいため、キューイングシステムＱとしてメモリ使用量が少ない非インメモリ型を選択することで、メモリ不足の発生を抑制する。一方、転送遅延Ｔｂが小さい場合は、処理遅延の影響度が大きいため、キューイングシステムＱとしてインメモリ型を選択して、高速な処理を実行可能とする。
【００１８】
はじめに、処理フレームワーク連携装置は、サービス定義Ｓに含まれる各フィルタが動作する処理フレームワークＦＷを求める。図１（ｂ）の例では、サービス定義Ｓがフィルタ１、フィルタ２、フィルタ３であったとする。この場合、処理フレームワーク連携装置は、フィルタ１，２が処理フレームワークＦＷ−Ａ、フィルタ３が処理フレームワークＦＷ−Ｂである。加えて、処理フレームワーク連携装置は、処理フレームワークＦＷが切り替わる連携ポイントＰを抽出する。この際、処理フレームワーク連携装置は、連携ポイントＰ両端の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂが利用（共用）可能なキューイングシステムＱ（連携システム）を抽出する。
【００１９】
ここで、処理フレームワークＦＷ−Ａ，ＦＷ−Ｂが利用可能なキューイングシステムＱ（連携システム）がキュー（Ｑｕｅｕｅ１，４，５）であったとする。Ｑｕｅｕｅ１がインメモリ型、Ｑｕｅｕｅ４，５が非インメモリ型であったとする。処理フレームワーク連携装置は、抽出したキューイングシステムＱ（Ｑｕｅｕｅ１，４，５）で処理フレームワーク間をそれぞれ接続し、実際にデータ（サンプルデータ）を転送して転送遅延Ｔｂを測定する。そして、処理フレームワーク連携装置は、転送遅延Ｔｂの測定結果を用いて最適なキューイングシステムＱとして、Ｑｕｅｕｅ１，４，５のいずれかを選択する。
【００２０】
各キューイングシステムＱ（Ｑｕｅｕｅ１，４，５）は、それぞれキュー受信からキュー送信までに所定の処理遅延（処理時間に相当）Ｔａを有する。また、データ送信側の処理フレームワークＦＷ−Ａ（フィルタ２（４０２））からデータ送信した後、データ受信側の処理フレームワークＦＷ−Ｂ（フィルタ３（４１３））でデータ受信するまでに所定の転送遅延（転送時間に相当）Ｔｂを有する。転送遅延ＴｂはキューイングシステムＱ（Ｑｕｅｕｅ１，４，５）の処理遅延Ｔａを含む。
【００２１】
そして、処理フレームワーク連携装置は、所定の条件にしたがい、利用するキューイングシステムＱを選択する。この際、例えば、最短のキューイングシステムＱがインメモリ型のＱｕｅｕｅ１であり、非インメモリ型のキューイングシステムＱ（例えばＱｕｅｕｅ５）の転送遅延ＴｂがＱｕｅｕｅ１に近い所定の許容度の範囲内であったとする。
【００２２】
この場合、処理フレームワーク連携装置は、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ５）を選択する。このように、実施の形態の処理フレームワーク連携装置は、単にキューイングシステムＱを処理遅延Ｔａだけで選択せずに、実際のデータ転送を行った時の転送遅延Ｔｂを用いてキューイングシステムＱを選択する。これにより、高速なインメモリ型だけではなく、大容量でメモリ使用量が小さい非インメモリ型のキューイングシステムＱも選択可能としている。
【００２３】
この後、処理フレームワーク連携装置は、選択したキューイングシステムＱ（Ｑｕｅｕｅ５）を用いるために必要な連携処理（入出力処理）７０１，７０２を連携ポイントＰの両端の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂに挿入する。連携処理７０１は、処理フレームワークＦＷ−Ａのフィルタ２（４０２）が出力したデータをＱｕｅｕｅ５へ出力する出力処理である。連携処理７０２は、Ｑｕｅｕｅ５から入力されるデータを入力処理し、処理フレームワークＦＷ−Ｂのフィルタ３（４１３）へ出力する入力処理である。
【００２４】
そして、処理フレームワーク連携装置は、当初のサービス定義Ｓに連携処理７０１，７０２を挿入した修正後のサービス定義Ｓ’をユーザに出力する。
【００２５】
上記のように、実施の形態では、サービス定義Ｓに対応するフィルタが動作する処理フレームワークＦＷ−Ａ，ＦＷ−Ｂを抽出して連携させる。この際、処理フレームワークＦＷ−Ａ，ＦＷ−Ｂ間の転送遅延Ｔｂを実際に測定する。また、選択したキューイングシステムＱを用いるために必要な連携処理７０１，７０２を連携ポイントＰの両端の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂにそれぞれ挿入する。
【００２６】
これにより、処理フレームワーク間を接続する最適なキューイングシステムＱを選択することができ、インメモリ型に限らず非インメモリ型のキューイングシステムＱも選択可能となる。例えば、非インメモリ型のキューイングシステムＱの選択時には、多数のサービスを同時に利用する際のメモリ不足を回避でき、結果として低遅延かつスループットの向上を図ることができるようになる。
【００２７】
また、異なる処理フレームワークＦＷ−Ａで動作するフィルタ１，２と，ＦＷ−Ｂで動作するフィルタ３をキューイングシステムＱで接続でき、複数の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂの連携により要求されるサービスに対して柔軟に対応できる。これにより、要求される各種サービスの開発および提供が行えるようになる。
【００２８】
図２は、実施の形態にかかる処理フレームワーク連携装置の機能を示すブロック図である。処理フレームワーク連携装置１００は、連携ポイント抽出部２０１、フィルタデータベース（ＤＢ）２０２、連携システム抽出部２０３、フレームワークＤＢ２０４、遅延測定部２０５、連携システム選択部２０６、連携システム挿入部２０７、を含む。
【００２９】
連携ポイント抽出部２０１は、ユーザが要求するサービス定義Ｓに含まれるフィルタを利用可能な複数の処理フレームワークをフィルタＤＢ２０２から抽出し、処理フレームワークが切り替わる連携ポイントを抽出する。フィルタＤＢ２０２は、フィルタ毎の処理フレームワークを記憶保持する。
【００３０】
連携システム抽出部２０３は、フレームワークＤＢ２０４を参照して、連携ポイント両端の処理フレームワークが利用（共用）可能なキューイングシステムＱを連携システムとして抽出する。フレームワークＤＢ２０４は、処理フレームワーク毎の対応キューイングシステムＱをインメモリ型および非インメモリ型別に記憶保持する。
【００３１】
フィルタＤＢ２０２およびフレームワークＤＢ２０４が保持する情報は、フレームワークＦＷ毎に固有の情報であり、予め記憶保持しておくことができる。
【００３２】
遅延測定部２０５は、連携システム抽出部２０３が抽出したキューイングシステムＱで処理フレームワーク間をそれぞれ接続し、データ転送した時の転送遅延を測定する。この遅延測定部２０５は、実際に適当なサンプルデータを用いて遅延特性を測定する。連携システム選択部２０６は、測定した転送遅延を用い所定の判断条件に基づいて、最適なキューイングシステムＱを選択する。この連携システム選択部２０６では、所定の判断条件により、インメモリ型あるいは非インメモリ型のキューイングシステムＱを選択する。
【００３３】
連携システム挿入部２０７は、連携システム選択部２０６が選択したキューイングシステムＱを用いるために必要な連携処理を両端の処理フレームワークにそれぞれ挿入し、複数の処理フレームワークが連携して実行可能なサービス定義Ｓ’の情報を出力する。
【００３４】
図３は、実施の形態にかかる処理フレームワーク連携装置のハードウェア構成例を示す図である。図２に示した処理フレームワーク連携装置１００は、図３に示すハードウェアを用いることができ、例えば、サーバを用いることができる。
【００３５】
例えば、処理フレームワーク連携装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１、メモリ３０２、ネットワークインタフェース（Ｉ／Ｆ）３０３、記録媒体ＩＦ３０４、記録媒体３０５、を含む。３００は各部を接続するバスである。
【００３６】
ＣＰＵ３０１は、処理フレームワーク連携装置１００の全体の制御を司る制御部として機能する演算処理装置である。メモリ３０２は、不揮発性メモリおよび揮発性メモリを含む。不揮発性メモリは、例えば、ＣＰＵ３０１のプログラムを格納するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。揮発性メモリは、例えば、ＣＰＵ３０１のワークエリアとして使用されるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。
【００３７】
ネットワークＩ／Ｆ３０３は、ネットワーク３１０を通じてサーバやクラウド等、処理フレームワーク連携装置１００外部の処理フレームワークにアクセスし、外部の処理フレームワークを利用することもできる。ネットワークＩＦ３０３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１０を介して外部のサーバやクラウド等に通信接続される。
【００３８】
記録媒体ＩＦ３０４は、ＣＰＵ３０１が処理した情報を記録媒体３０５との間で読み書きするためのインタフェースである。記録媒体３０５は、メモリ３０２を補助する記録装置である。例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュドライブ等を用いることができる。
【００３９】
メモリ３０２または記録媒体３０５に記録されたプログラムをＣＰＵ３０１が実行することにより、図２に示した処理フレームワーク連携装置１００の各機能を実現する。また、メモリ３０２や記録媒体３０５は、図２に示したフィルタＤＢ２０２、フレームワークＤＢ２０４の情報を予め保持しておくことができる。そして、ＣＰＵ３０１は、サービスに対応してフィルタが動作するフレームワークＦＷの情報や、フレームワークＦＷ毎のキューイングシステムの情報を簡単に読み出すことができる。
【００４０】
そして、実施の形態では、例えば、インメモリ型のキューイングシステムＱは、キュー（Ｑｕｅｕｅ）をメモリ３０２上に配置する。また、非インメモリ型のキューイングシステムＱでは、キュー（Ｑｕｅｕｅ）をディスク等の記録媒体３０５上に配置する。
【００４１】
次に、実施の形態にかかる処理フレームワーク連携装置が行う処理を機能別に順に説明する。
【００４２】
図４は、実施の形態にかかる処理フレームワーク連携装置の連携ポイント抽出部の処理を説明する図である。処理フレームワーク連携装置１００の連携ポイント抽出部２０１が行う処理について説明する。図４（ａ）は、所定のサービス定義Ｓに対応するフィルタを示す図、図４（ｂ）は、フィルタＤＢ２０２が保持するフィルタ毎の処理フレームワークの情報を示す図表である。
【００４３】
図４（ａ）に示すように、サービス定義Ｓがフィルタ１（４０１）〜フィルタ２（４０２）〜フィルタ３（４１３）であったとする。この場合、連携ポイント抽出部２０１は、図４（ｂ）に示すフィルタＤＢ２０２を参照して該当するフィルタ１（４０１）、フィルタ２（４０２）、フィルタ３（４１３）を利用可能な処理フレームワークＦＷを求める。
【００４４】
図４（ｂ）に示す例では、フィルタＤＢ２０２には、フィルタ１，２（４０１，４０２）は処理フレームワークＦＷ−Ａであり、フィルタ３（４１３）は処理フレームワークＦＷ−Ｂであることが保持されている。この場合、連携ポイント抽出部２０１は、処理フレームワークＦＷが切り替わる連携ポイントＰの処理フレームワークＦＷが、処理フレームワークＦＷ−Ａ（フィルタ２）と、ＦＷ−Ｂ（フィルタ３）部分であることを抽出する。
【００４５】
図５は、実施の形態にかかる処理フレームワーク連携装置の連携システム抽出部の処理を説明する図表である。処理フレームワーク連携装置１００の連携システム抽出部２０３は、フレームワークＤＢ２０４に格納された処理フレームワーク毎のキューイングシステムＱを参照する。そして、連携ポイントＰの両端の処理フレームワークＦＷが利用（共用）可能なキューイングシステムＱ（連携システム）を抽出する。
【００４６】
図５に示す例では、フレームワークＤＢ２０４には、処理フレームワークＦＷ−Ａに対応するキューイングシステムＱとして、インメモリ型がＱｕｅｕｅ１と、Ｑｕｅｕｅ２であり、非インメモリ型がＱｕｅｕｅ４と、Ｑｕｅｕｅ５である情報が格納されている。また、処理フレームワークＦＷ−Ｂに対応するキューイングシステムＱとして、インメモリ型がＱｕｅｕｅ１であり、非インメモリ型がＱｕｅｕｅ３と、Ｑｕｅｕｅ４と、Ｑｕｅｕｅ５である情報が格納されている。
【００４７】
この場合、連携システム抽出部２０３は、異なる２つの処理フレームワークＦＷ−ＡとＦＷ−Ｂとの間で共通する（共用可能な）キューとして、インメモリ型はＱｕｅｕｅ１を抽出し、非インメモリ型はＱｕｅｕｅ４とＱｕｅｕｅ５を抽出する。ここで、連携システム抽出部２０３は、インメモリ型のＱｕｅｕｅ１と、非インメモリ型のＱｕｅｕｅ４，５が連携ポイントＰの両端（フィルタ２とフィルタ３）の処理フレームワークＦＷ−ＡとＦＷ−Ｂが利用可能なキューイングシステムＱと判断し、抽出する。
【００４８】
なお、連携システム抽出部２０３は、インメモリ型のＱｕｅｕｅ２は、一方の処理フレームワークＦＷ−Ａのみにあり、ＦＷ−Ｂにはなく共用できないため抽出しない。同様に、非インメモリ型のＱｕｅｕｅ３は、一方の処理フレームワークＦＷ−Ｂのみにあり、ＦＷ−Ａにはなく共用できないため抽出しない。
【００４９】
図６は、実施の形態にかかる処理フレームワーク連携装置の遅延測定部および連携システム選択部の処理を説明する図である。処理フレームワーク連携装置１００の遅延測定部２０５は、連携システム抽出部２０３が抽出したキューイングシステムＱで処理フレームワーク間をそれぞれ接続し、データ（サンプルデータ）を転送した時の転送遅延を測定する。また、連携システム選択部２０６は、遅延測定部２０５による転送遅延の測定結果を用いて最適なキューイングシステムＱを選択する。
【００５０】
図６（ａ）は、連携システム抽出部２０３が抽出したキューイングシステムＱであるインメモリ型のＱｕｅｕｅ１と、非インメモリ型のＱｕｅｕｅ４，５を示す。これらインメモリ型のＱｕｅｕｅ１と、非インメモリ型のＱｕｅｕｅ４，５は、連携ポイントＰ両端に位置する。処理フレームワークＦＷ−Ａは、フィルタ２（４０２）がＱｕｅｕｅ１，４，５にデータ出力する。Ｑｕｅｕｅ１，４，５は、処理フレームワークＦＷ−Ｂのフィルタ３（４１３）にデータ入力する。
【００５１】
ここで、各キューイングシステムＱ（Ｑｕｅｕｅ１，４，５）は、それぞれキュー受信からキュー送信までに所定の処理遅延（処理時間に相当）Ｔａを有する。また、データ送信側の処理フレームワークＦＷ−Ａ（フィルタ２（４０２））からデータ送信した後、データ受信側の処理フレームワークＦＷ−Ｂ（フィルタ３（４１３））でデータ受信するまでに所定の転送遅延（転送時間に相当）Ｔｂを有する。転送遅延ＴｂはキューイングシステムＱ（Ｑｕｅｕｅ１，４，５）の処理遅延Ｔａを含む。
【００５２】
処理遅延Ｔａは、キューイングシステムＱ毎に異なる。一般的には、インメモリ型（Ｑｕｅｕｅ１）の方が、非インメモリ型（Ｑｕｅｕｅ４，５）よりも処理遅延Ｔａは短い。また、転送遅延Ｔｂは、処理遅延Ｔａを含むが、実際のデータ転送状態の影響を受けるため、インメモリ型が短いとは限らず、非インメモリ型でも短い場合が生じる。このため、遅延測定部２０５は、連携システム抽出部２０３が抽出した各キューイングシステムＱである、インメモリ型のＱｕｅｕｅ１と、非インメモリ型のＱｕｅｕｅ４，５について、それぞれサンプルデータを実際に転送して転送遅延Ｔｂを測定する。サンプルデータは、例えばランダムな２値のデータ列を用いることができる。
【００５３】
図６（ｂ）は、連携システム抽出部２０３が抽出したキューイングシステムＱであるインメモリ型のＱｕｅｕｅ１と、非インメモリ型のＱｕｅｕｅ４，５の転送遅延Ｔｂの転送遅延測定結果６００を示す図表である。処理遅延Ｔａは固定の特性値（参考値）である。
【００５４】
遅延測定部２０５は、各キューイングシステムＱ（Ｑｕｅｕｅ１，４，５）で処理フレームワーク間をそれぞれ接続し、所定のサンプルデータを転送して転送遅延Ｔｂを測定する。転送遅延Ｔｂは、前段の処理フレームワークＦＷ−Ａのフィルタ４０２がデータ送信した後、後段の処理フレームワークＦＷ−Ｂのフィルタ４１３がデータ受信するまでの期間である。遅延測定部２０５は、各キューイングシステムＱ（Ｑｕｅｕｅ１，４，５）毎の転送遅延Ｔｂの転送遅延測定結果６００を、例えばメモリ３０２や記録媒体３０５等に格納保持する。各キューイングシステムＱ毎の転送遅延Ｔｂを格納保持しておくことで、以後同様の処理フレームワークＦＷの接続時の転送遅延Ｔｂを測定せずにメモリ３０２や記録媒体３０５等から読み出して利用できる。
【００５５】
そして、連携システム選択部２０６は、以下の条件１．〜３．にしたがい、利用するキューイングシステムＱを選択する。
１．転送遅延Ｔｂが最短のキューイングシステムＱを最短の転送遅延Ｄｍｉｎとする。
２．転送遅延ＴｂがＤｍｉｎ×Ｎ以下である非インメモリ型のキューイングシステムＱがあれば、転送遅延Ｔｂが最短のものを選択する。Ｎは最短からの許容度（定数）
３．転送遅延ＴｂがＤｍｉｎ×Ｎ以下である非インメモリ型のキューイングシステムＱがなければ、インメモリ型キューイングシステムＱで転送遅延Ｔｂが最短のものを選択する。
【００５６】
例えば、図６（ｂ）の転送遅延測定結果６００では、転送遅延Ｔｂが最短（Ｄｍｉｎ）なものはインメモリ型のＱｕｅｕｅ１（７００ｍｓｅｃ）である。次に短いのは非インメモリ型のＱｕｅｕｅ５（９００ｍｓｅｃ）であり、最後は非インメモリ型のＱｕｅｕｅ４（１２００ｍｓｅｃ）であったとする。
【００５７】
連携システム選択部２０６は、図６（ｂ）の転送遅延測定結果６００を参照し、Ｎ＝１．３に設定した場合には、キューイングシステムＱとして、Ｑｕｅｕｅ５を選択する。この場合、（Ｑｕｅｕｅ５の転送遅延Ｔｂ＝９００ｍｓｅｃ）＜（Ｑｕｅｕｅ１の転送遅延Ｔｂ＝７００×１．３＝９１０）である。
【００５８】
また、Ｎ＝１．２に設定した場合には、連携システム選択部２０６は、キューイングシステムＱとして、Ｑｕｅｕｅ１を選択する。この場合、（Ｑｕｅｕｅ５の転送遅延Ｔｂ＝９００ｍｓｅｃ）＞（Ｑｕｅｕｅ１の転送遅延Ｔｂ＝７００×１．２＝８４０）である。
【００５９】
Ｎは、最短（ベストエフォート）に対してどの程度遅延してもよいかを示す定数であり、ユーザが任意に設定する。
【００６０】
図６（ｂ）の転送遅延測定結果６００では、非インメモリ型のＱｕｅｕｅ５の転送遅延Ｔｂ（９００ｍｓｅｃ）がインメモリ型のＱｕｅｕｅ１の転送遅延Ｔｂ（７００ｍｓｅｃ）に近い値となっている。Ｑｕｅｕｅ５を用いた転送では、例えば、データ送信からデータ受信までの転送距離が短いために転送遅延Ｔｂが短くなることがある。このように、実施の形態では、実際に処理フレームワークＦＷ間でデータを転送した際の転送遅延Ｔｂを用いて最適なキューイングシステムＱを選択している。
【００６１】
図７は、実施の形態にかかる処理フレームワーク連携装置の連携システム挿入部の処理を説明する図である。処理フレームワーク連携装置１００の連携システム挿入部２０７は、連携システム選択部２０６が選択した最適なキューイングシステムＱで処理フレームワーク間を接続する処理を行う。
【００６２】
図７（ａ）には、連携システム選択部２０６がサービス定義に対応して選択したキューイングシステムＱの選択状態を示す。図７（ａ）の例では、処理フレームワークＦＷ−Ａ(フィルタ１，２）と、ＦＷ−Ｂ（フィルタ３）間の連携ポイントＰには、キューイングシステムＱとして最適なＱｕｅｕｅ５を配置する。
【００６３】
そして、連携システム挿入部２０７は、選択したキューイングシステムＱ（Ｑｕｅｕｅ５）を用いるために必要な連携処理を連携ポイントＰ両端の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂにそれぞれ挿入する。
【００６４】
図７（ｂ）の例では、連携システム挿入部２０７は、処理フレームワークＦＷ−Ａのフィルタ１（４０１），フィルタ２（４０２）の後段にＦＷ−Ａの連携処理７０１を挿入する。また、連携システム挿入部２０７は、処理フレームワークＦＷ−Ｂのフィルタ３（４１３）の前段にＦＷ−Ｂの連携処理７０２を挿入する。連携処理７０１は、処理フレームワークＦＷ−Ａのフィルタ２（４０２）が出力したデータをＱｕｅｕｅ５へ出力する処理である。連携処理７０２は、Ｑｕｅｕｅ５から入力されるデータを処理フレームワークＦＷ−Ｂのフィルタ３（４１３）へ出力する処理である。
【００６５】
このように、連携システム挿入部２０７は、図７（ａ）に示した当初のサービス定義Ｓに連携処理７０１，７０２を挿入した修正後のサービス定義Ｓ’をユーザに出力する。これにより、複数の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂが連携して実行可能なサービスの情報（修正後のサービス定義Ｓ’）をユーザに出力できる。
【００６６】
修正後のサービス定義Ｓ’は、複数の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂ間の転送遅延が最短となるキューイングシステムＱを介して連携させたものである。これにより、実施の形態によれば、複数の処理フレームワークＦＷ−Ａ，ＦＷ−Ｂが連携した所定のサービスのスループットを向上できるようになる。上記の説明では、連携ポイントＰが一つの場合を例に説明したが、連携ポイントＰが複数の場合にも、それぞれの連携ポイントＰに対して転送遅延が最短となる最適なキューイングシステムＱを選択すればよい。
【００６７】
図８は、実施の形態にかかる処理フレームワーク連携装置の処理例を示すフローチャートである。処理フレームワーク連携装置１００のＣＰＵ３０１が実行する各機能部（図２参照）の処理を順に説明する。
【００６８】
はじめに、処理フレームワーク連携装置１００（連携ポイント抽出部２０１）は、フィルタＤＢ２０２を参照し、要求されたサービス定義Ｓの各フィルタが動作する処理フレームワークＦＷを求める（ステップＳ８０１）。次に、処理フレームワーク連携装置１００（連携ポイント抽出部２０１）は、処理フレームワークＦＷが切り替わる連携ポイントＰを抽出する（ステップＳ８０２）。
【００６９】
次に、処理フレームワーク連携装置１００は、一つの連携ポイントＰに対して以下の処理を実行する。はじめに、処理フレームワーク連携装置１００（連携ポイント抽出部２０１）は、フレームワークＤＢ２０４を参照し、連携ポイントＰ両端の処理フレームワークＦＷが利用可能なキューイングシステムＱ（Ｑｕｅｕｅ）を抽出する（ステップＳ８０３）。
【００７０】
次に、処理フレームワーク連携装置１００（遅延測定部２０５）は、処理フレームワークＦＷ間を抽出したキューイングシステムＱ（Ｑｕｅｕｅ）で接続し、それぞれの転送遅延Ｔｂを測定する（ステップＳ８０４）。なお、予めステップＳ８０３で抽出した複数のキューイングシステムＱを用いて実際にデータ転送した時の各キューイングシステムＱ（Ｑｕｅｕｅ）それぞれの転送遅延Ｔｂを測定し、転送遅延測定結果６００をメモリ３０２に格納しておいてもよい。
【００７１】
次に、処理フレームワーク連携装置１００（連携システム選択部２０６）は、各キューイングシステムＱ（Ｑｕｅｕｅ）の転送遅延Ｔｂについて、上記の所定の条件１．〜３．を適用して最適なキューイングシステムＱ（Ｑｕｅｕｅ）を選択する。
【００７２】
例えば、処理フレームワーク連携装置１００（連携システム選択部２０６）は、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎであるかを判断する（ステップＳ８０５）。
【００７３】
ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎの条件を満たしたとする（ステップＳ８０５：Ｙｅｓ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最短の非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０６）。
【００７４】
一方、ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎの条件を満たさなかったとする（ステップＳ８０５：Ｎｏ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最短のインメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０７）。
【００７５】
この後、処理フレームワーク連携装置１００（連携システム挿入部２０７）は、連携ポイントＰの両端に、各端の処理フレームワークＦＷで動作し、選択したキューイングシステムＱ（Ｑｕｅｕｅ）を用いる連携処理を挿入する（ステップＳ８０８）。この処理フレームワーク連携装置１００（連携システム選択部２０６）は、処理フレームワークが連携して実行可能なサービス（修正後のサービス定義Ｓ’）を出力する。
【００７６】
上記処理によれば、連携ポイントＰで処理フレームワークＦＷ間を接続した際に利用可能な複数のキューイングシステムＱに対し実際のデータ転送を行って転送遅延Ｔｂを求めている。この際、非インメモリ型であっても短い転送遅延Ｔｂが得られた場合には、インメモリ型よりも非インメモリ型のキューイングシステムＱを選択できるようになる。非インメモリ型の採用時には、キューをディスク（記録媒体３０５）等に配置することができ、スループットの低下を防ぎつつメモリ３０２の使用量を少なくできる。また、多数のサービスの同時利用時においても、大容量のディスク領域を使用でき、メモリ３０２のメモリ不足を防ぐことができる。
【００７７】
次に、上述した処理例以外の他の各種処理例について説明する。図９〜図１３は、実施の形態にかかる処理フレームワーク連携装置の他の処理例を示す図である。これらの各図では、図８に示したフローチャートを基本とし、異なる処理のみを抽出して記載してある。なお、処理フレームワーク連携装置１００の制御部（ＣＰＵ３０１）は、図８に示した処理を基本として、下記１．〜５．に示すサービスの状態の変化に対応して図９〜図１３のいずれかの処理を実行できる。
【００７８】
（１．サービスが扱うデータの発生頻度が高い場合）
サービスが扱うデータの発生頻度が所定の発生頻度よりも高い場合、非インメモリ型では処理が間に合わなくなるため、非インメモリ型よりも高速処理が可能なインメモリ型が有効となる。このような場合、処理フレームワーク連携装置１００（遅延測定部２０５）は、上述した実施の形態で説明した転送遅延に代えて、データを連続的に転送した時のスループットを測定する。
【００７９】
そして、処理フレームワーク連携装置１００（連携システム選択部２０６）は、以下の条件ａ．〜ｃ．にしたがってキューイングシステムＱを選択する。
ａ．スループットが最大のキューイングシステムＱのスループットをＴｍａｘとする。
ｂ．スループットがＴｍａｘ÷Ｎ'以上である非インメモリ型のキューイングシステムＱがあれば、スループットが最大の非インメモリ型のキューイングシステムＱを選択する。Ｎ'は最大からの許容度（定数）。
ｃ．スループットがＴｍａｘ÷Ｎ'以上である非インメモリ型のキューイングシステムＱがなければ、インメモリ型のキューイングシステムＱのうちスループットが最大のキューイングシステムＱを選択する。
【００８０】
図９は、サービスが扱うデータの発生頻度が高い場合の処理例を示すフローチャートである。図９では、図８のステップＳ８０４〜ステップＳ８０７の処理を置き換えている。図８のステップＳ８０３の処理後、処理フレームワーク連携装置１００（遅延測定部２０５）は、処理フレームワークＦＷ間を抽出したキューイングシステムＱ（Ｑｕｅｕｅ）で接続する。そして、それぞれのキューイングシステムＱのスループットを測定する（ステップＳ８０４ａ）。
【００８１】
次に、処理フレームワーク連携装置１００（連携システム選択部２０６）は、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最大スループット≧最大スループット／Ｎ'であるかを判断する（ステップＳ８０５ａ）。
【００８２】
ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最大スループット≧最大スループット／Ｎ'の条件を満たしたとする（ステップＳ８０５ａ：Ｙｅｓ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、スループットが最大の非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０６ａ）。
【００８３】
一方、ステップＳ８０５ａの判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最大スループット≧最大スループット／Ｎ'の条件を満たさなかったとする（ステップＳ８０５ａ：Ｎｏ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、スループットが最大のインメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０７ａ）。この後、図８のステップＳ８０８の処理に移行する。
【００８４】
このように、サービスが扱うデータの発生頻度が高い場合には、非インメモリ型よりも高速処理が可能なインメモリ型を優先的に使用することで、スループットを向上させることができるようになる。
【００８５】
（２．サービスが扱うデータサイズが大きい場合）
サービスが扱うデータサイズが所定のデータサイズよりも大きい場合、インメモリ型ではメモリ３０２の使用量が大きくなるため、データ領域を大きく取れる非インメモリ型が有効となる。このような場合、処理フレームワーク連携装置１００（遅延測定部２０５）は、サービスで使用する指定データサイズに対応した大きなデータサイズのサンプルデータを用いて転送遅延Ｔｂを測定する。
【００８６】
図１０は、サービスが扱うデータサイズが大きい場合の処理例を示すフローチャートである。図１０では、図８のステップＳ８０４の処理を置き換えている。図８のステップＳ８０３の処理後、処理フレームワーク連携装置１００（遅延測定部２０５）は、処理フレームワークＦＷ間を抽出したキューイングシステムＱ（Ｑｕｅｕｅ）で接続する。そして、指定データサイズを用いてそれぞれのキューイングシステムＱの転送遅延Ｔｂを測定する（ステップＳ８０４ｂ）。この後、図８のステップＳ８０５の処理に移行する。
【００８７】
このように、サービスが扱うデータサイズが大きい場合には、サービスで使用する指定データサイズに対応した大きなデータサイズを用いて、転送遅延Ｔｂを測定する。これにより、例えば、大きなデータサイズの転送時には、インメモリ型よりもメモリ容量を確保できる非インメモリ型を優先的に使用することで、データ転送のスループットを向上できるようになる。
【００８８】
（３．サービス内の連携ポイントが複数存在する場合）
上記の実施形態では、連携ポイントＰが一つの場合を説明したが、以下には、サービス内の連携ポイントＰが複数存在する場合の処理例を説明する。サービス内の連携ポイントＰが複数存在する場合、転送遅延Ｔｂが大きい連携ポイントＰがサービス全体の処理遅延に影響する（ボトルネックになる）。また、利用するキューイングシステムＱが増えるとメモリ使用量が多くなる。このため、この処理例では、最短の転送遅延Ｄｍｉｎが最長の（最短転送遅延が大きい）連携ポイントＰからキューイングシステムＱを選択していく。また、選択済みのキューイングシステムＱが利用可能な連携ポイントは同じシステムを使用する。
【００８９】
図１１は、サービス内の連携ポイントが複数存在する場合の処理例を示すフローチャートである。図１１に示すように、図８のステップＳ８０３と、ステップＳ８０４の処理により各連携ポイントに対して行う処理の実行後、最短の転送遅延Ｔｂの大きい連携ポイントＰから順に行う処理を実行する。
【００９０】
図８のステップＳ８０４の処理後、処理フレームワーク連携装置１００（連携システム選択部２０６）は、選択済みで利用可能なキューイングシステムＱ（Ｑｕｅｕｅ）があるか判断する（ステップＳ１１０１）。判断結果、選択済みで利用可能なキューイングシステムＱがあれば（ステップＳ１１０１：Ｙｅｓ）、遅延測定部２０５は、非インメモリ型のキューイングシステムＱの最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎであるかを判断する（ステップＳ８０５）。
【００９１】
ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎの条件を満たしたとする（ステップＳ８０５：Ｙｅｓ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最短の非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０６）。
【００９２】
一方、ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎの条件を満たさなかったとする（ステップＳ８０５：Ｎｏ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最短のインメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０７）。
【００９３】
また、ステップＳ１１０１の判断結果、選択済みで利用可能なキューイングシステムＱがなければ（ステップＳ１１０１：Ｎｏ）、処理フレームワーク連携装置１００（連携システム選択部２０６）は、ステップＳ１１０２を実行する。ステップＳ１１０２では、処理フレームワーク連携装置１００（連携システム選択部２０６）は、選択済みで利用可能なキューイングシステムＱの中で転送遅延Ｔｂが最短のものを選択する（ステップＳ１１０２）。そして、上記ステップＳ８０６，ステップＳ８０７、またはステップＳ１１０２の実行後、ステップＳ８０８の処理に移行する。
【００９４】
このように、サービス内の連携ポイントＰが複数存在する場合には、複数の処理フレームワークＦＷを接続するキューイングシステムＱのうち、転送遅延Ｔｂが最長の連携ポイントＰから順にキューイングシステムＱを選択していく。そして、選択済みのキューイングシステムＱがあれば選択済みで利用可能なキューイングシステムＱの中で遅延が最短なキューイングシステムＱを選択する。なお、選択済みで利用可能なキューイングシステムＱがなければ、上記実施の形態で説明した処理例同様に、最短の転送遅延Ｔｂに基づき、非インメモリ型を優先して選択する。これにより、連携ポイントＰが複数の場合でも、システム全体のスループットを向上できるようになる。
【００９５】
（４．複数のサービスが実行されている場合）
複数のサービスが実行されている場合には、利用するキューイングシステムＱが増え、メモリ使用量が多くなる。このような場合、他のサービスで既に利用しているキューイングシステムＱを優先して選択する。この際、他のサービスの転送遅延Ｔｂでサービスに影響が生じる場合、転送遅延Ｔｂを再度測定し、キューイングシステムＱを再選択してもよい。また、サービスの優先度をもとに、転送遅延Ｔｂの再測定と、キューイングシステムＱの再選択を行ってもよい。
【００９６】
図１２は、複数のサービスが実行されている場合の処理例を示すフローチャートである。図８のステップＳ８０３の処理の実行後、処理フレームワーク連携装置１００（連携システム抽出部２０３）は、既に他のサービスが利用しているキューイングシステムＱがあれば、この利用中のキューイングシステムＱに絞り込む（ステップＳ１２０１）。この後、ステップＳ８０４の処理に移行する。
【００９７】
このように、複数のサービスが実行されている場合には、他のサービスで既に利用しているキューイングシステムＱを優先して選択する。これにより、例えば、同じ映像を複数のサービスで使用する場合等、複数のサービスの実行時に他のサービスで利用しているキューイングシステムＱを使用することで、メモリの使用量を削減できるようになる。
【００９８】
（５．サービスの実行遅延が転送遅延または処理遅延よりも十分に大きい場合）
図１３（ａ）は、修正後のサービス定義Ｓ’を示す図である。サービス全体の実行時間である実行遅延Ｔｃが転送遅延Ｔｂまたは処理遅延Ｔａより十分に大きい場合には、キューイングシステムＱによる遅延の影響が小さいため、転送遅延Ｔｂが大きい場合でも影響が生じない。この場合、転送遅延Ｔｂに加えてサービス全体の実行時間（実行遅延Ｔｃ）についても測定しておくことで、実行遅延Ｔｃが転送遅延Ｔｂより十分に大きければ転送遅延Ｔｂが大きいキューイングシステムＱを選択する。
【００９９】
図１３（ｂ）は、サービスの実行遅延が転送遅延または処理遅延よりも十分に大きい場合の処理例を示すフローチャートである。図８のステップＳ８０３の処理実行後、処理フレームワーク連携装置１００（遅延測定部２０５）は、処理フレームワークＦＷ間を抽出したキューイングシステムＱ（Ｑｕｅｕｅ）で接続する。そして、それぞれのキューイングシステムＱの転送遅延Ｔｂと実行遅延Ｔｃを測定する（ステップＳ８０４ｃ）。
【０１００】
この後、処理フレームワーク連携装置１００（遅延測定部２０５）は、実行遅延Ｔｃ≧最短の転送遅延Ｔｂ×Ｍ（定数）であるか判断する（ステップＳ１３０１）。ここでは、最短の転送遅延ＴｂのキューイングシステムＱに対する判断を行う。判断の結果、実行遅延Ｔｃ≧最短の転送遅延Ｄｍｉｎ×Ｍ（定数）であれば（ステップＳ１３０１：Ｙｅｓ）、ステップＳ１３０２の処理に移行する。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最長のキューイングシステムＱから優先的に選択する（ステップＳ１３０２）。一方、実行遅延Ｔｃ≧最短の転送遅延Ｄｍｉｎ×Ｍ（定数）でなかったとする（ステップＳ１３０１：Ｎｏ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、ステップＳ８０５の処理に移行する。
【０１０１】
ステップＳ８０５では、遅延測定部２０５は、非インメモリ型のキューイングシステムＱの最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎであるかを判断する（ステップＳ８０５）。ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎの条件を満たしたとする（ステップＳ８０５：Ｙｅｓ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最短の非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０６）。
【０１０２】
一方、ステップＳ８０５の判断結果、非インメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）の最短の転送遅延Ｔｂ≦最短の転送遅延Ｄｍｉｎ×Ｎの条件を満たさなかったとする（ステップＳ８０５：Ｎｏ）。この場合、処理フレームワーク連携装置１００（連携システム選択部２０６）は、転送遅延Ｔｂが最短のインメモリ型のキューイングシステムＱ（Ｑｕｅｕｅ）を選択する（ステップＳ８０７）。そして、ステップＳ８０６，ステップＳ８０７，ステップＳ１３０２の処理後は、ステップＳ８０８の処理に移行する。
【０１０３】
このように、サービスの実行遅延Ｔｃが転送遅延Ｔｂまたは処理遅延Ｔａよりも十分に大きい場合には、キューイングシステムＱによる遅延の影響が相対的に小さくなり、転送遅延Ｔｂが大きくても影響が生じない。このため、実行遅延Ｔｃを測定し、実行遅延Ｔｃが転送遅延Ｔｂより十分に大きい場合には、転送遅延Ｔｂが大きいキューイングシステムＱを選択する。これにより、他のサービスが低遅延のキューイングシステムＱを利用できるようになる。
【０１０４】
以上説明した実施の形態によれば、サービス定義に対応するフィルタが動作する処理フレームワークを連携させる際に、処理フレームワーク間の転送遅延を測定する。これにより、処理フレームワーク間を接続する最適なキューイングシステムを選択することができ、インメモリ型に限らず非インメモリ型のキューイングシステムも選択可能となる。例えば、複数のキューイングシステムのうち最短の転送遅延のものに対し、非インメモリ型の転送遅延が所定の範囲にあれば、非インメモリ型のうち最短の転送遅延のものを選択する。非インメモリ型のキューイングシステムの選択時には、多数のサービスを同時に利用する際のメモリ不足を回避でき、結果としてサービスを低遅延でスループットを向上できるようになる。
【０１０５】
また、選択したキューイングシステムを用いるために必要な連携処理を連携ポイントの両端の処理フレームワークにそれぞれ挿入する。これにより、異なる処理フレームワークにあるフィルタをキューイングシステムで接続でき、複数の処理フレームワークの連携により要求されるサービスに対して柔軟に対応でき、また、各種サービスの開発および提供が行えるようになる。
【０１０６】
また、キューイングシステムの処理遅延が、他の遅延より十分に小さければ、非インメモリ型でも影響が出ないことに着目し、キューイングシステムを用いて、処理フレームワークの間でデータを実際に転送させた時の転送遅延を測定している。これにより、キューイングシステム自体の処理遅延だけではなく、転送遅延の測定結果を用いることで、実際のサービス提供時に低遅延でスループットを向上できるようになる。
【０１０７】
また、サービス定義に含まれる処理が動作する処理フレームワークを求め、処理フレームワーク間の連携ポイントを抽出する。また、抽出した連携ポイントの両端のキューイングシステムで共用可能なキューイングシステムを抽出する。この際、サービス定義に含まれる処理が動作する処理フレームワークと、共用可能なキューイングシステムの情報は、データベース上に予め保持しておくことができ、データベースを参照して容易に得ることができる。また、異なる処理フレームワークにあるフィルタをキューイングシステムで接続し、複数の処理フレームワークを連携することができるようになる。
【０１０８】
また、複数のキューイングシステムのうち、最短の転送遅延に対し、非インメモリ型の転送遅延が所定の範囲になければ、インメモリ型のうち転送速度が最短のものを選択する。このように、実施の形態では、できるだけ非インメモリ型を優先して利用するようにしているが、インメモリ型を含めて多様なキューイングシステムを選択できる。
【０１０９】
また、処理フレームワーク間に挿入する連携の処理に対応してサービス定義Ｓを修正したサービス定義Ｓ’として出力することで、処理フレームワークが連携して実行可能となる。
【０１１０】
また、サービスが扱うデータの発生頻度が所定頻度より高い場合、データを連続的に転送した時の複数のキューイングシステムのスループットを測定することとしてもよい。そして、複数のキューイングシステムのうち最大の前記スループットのものに対し、非インメモリ型のスループットが所定の範囲にあれば、非インメモリ型のうち最大のスループットのものを選択する。このように、データの発生頻度が高いことに対応して高速なインメモリ型を選択することで、処理全体のスループットの低下を抑制できるようになる。
【０１１１】
また、サービスが扱うデータのサイズが所定のサイズよりも大きい場合、予めサービスで利用する所定のデータサイズを転送し、キューイングシステムのそれぞれの転送遅延を測定してもよい。これにより、実際のサービスで大きなデータサイズを利用する場合に対応して非インメモリ型を選択することで、処理全体のスループットの低下を防ぐことができるようになる。
【０１１２】
また、サービス内に連携ポイントが複数存在する場合、最短転送遅延が大きい連携ポイントからキューイングシステムを選択し、他の連携ポイントは選択済みのキューイングシステムが利用可能であれば、選択済みの同じキューイングシステムを利用してもよい。これにより、複数の連携ポイントを有するサービスの実行時における転送遅延が大きい連携ポイントの発生を抑制でき、処理全体のスループットの低下を防ぐことができるようになる。
【０１１３】
また、複数のサービスが実行されている場合、他のサービスで利用しているキューイングシステムを優先して選択してもよい。例えば、同じ映像を異なる複数のサービスで利用する場合等において、各サービスで同じキューイングシステムを用いる。これにより、利用するキューイングシステムの増加を抑えてメモリ使用量を抑制でき、処理全体のスループットの低下を防ぐことができるようになる。
【０１１４】
また、サービス全体の実行にかかる実行遅延を測定し、実行遅延が転送遅延または処理遅延よりも十分に大きい場合、転送遅延が最長のキューイングシステムから優先して選択してもよい。このような場合、キューイングシステムによる処理遅延または転送遅延が大きい場合でも、サービス全体に対する遅延の影響が小さいため、非インメモリ型等の転送遅延が最長のキューイングシステムから選択していくことができる。これにより、他のサービスが低遅延（処理遅延および転送遅延）のキューイングシステムを利用できるようになり、複数のサービス実行時の処理全体のスループットの低下を防ぐことができるようになる。
【０１１５】
なお、本発明の実施の形態で説明した処理フレームワーク連携プログラムは、予め用意されたプログラムをサーバ等のプロセッサに実行させることにより実現することができる。本制御方法は、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータが記録媒体から読み出し実行する。また本制御方法は、インターネット等のネットワークを介して配布してもよい。
【０１１６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１７】
（付記１）要求されたサービスのサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携装置において、
メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する制御部、
を備えたことを特徴とする処理フレームワーク連携装置。
【０１１８】
（付記２）前記制御部は、
前記サービス定義から、前記処理フレームワーク間の前記連携ポイントを抽出する連携ポイント抽出部と、
抽出した前記連携ポイント毎に、利用可能な複数の前記キューイングシステムを抽出する連携システム抽出部と、
抽出した前記キューイングシステムで前記連携ポイントを接続し、前記処理フレームワーク間のデータの転送遅延を測定する遅延測定部と、
測定した前記転送遅延に基づいて、利用するキューイングシステムとして、前記インメモリ型あるいは非インメモリ型を選択する選択部と、
選択した前記キューイングシステムで前記連携ポイントを接続する連携の処理を挿入する連携システム挿入部と、
を備えたことを特徴とする付記１に記載の処理フレームワーク連携装置。
【０１１９】
（付記３）前記選択部は、
複数の前記キューイングシステムのうち最短の前記転送遅延の前記キューイングシステムに対し、前記非インメモリ型の転送遅延が所定の範囲にあれば、前記非インメモリ型のうち最短の転送遅延の前記キューイングシステムを選択することを特徴とする付記２に記載の処理フレームワーク連携装置。
【０１２０】
（付記４）前記連携ポイント抽出部は、
前記サービス定義に含まれる前記処理が動作する前記処理フレームワークを求め、当該処理フレームワーク間の前記連携ポイントを抽出することを特徴とする付記２または３に記載の処理フレームワーク連携装置。
【０１２１】
（付記５）前記連携システム抽出部は、
抽出した前記連携ポイントの両端の前記キューイングシステムで共用可能な前記キューイングシステムを抽出することを特徴とする付記２〜４のいずれか一つに記載の処理フレームワーク連携装置。
【０１２２】
（付記６）前記遅延測定部は、
抽出した前記キューイングシステムで前記連携ポイントを接続し、前記処理フレームワーク間でサンプルデータを実際に転送して前記転送遅延を測定することを特徴とする付記２〜５のいずれか一つに記載の処理フレームワーク連携装置。
【０１２３】
（付記７）前記選択部は、
複数の前記キューイングシステムのうち、最短の前記転送遅延の前記キューイングシステムに対し、前記非インメモリ型の転送遅延が所定の範囲になければ、前記インメモリ型のうち転送速度が最短の前記キューイングシステムを選択することを特徴とする付記２〜６のいずれか一つに記載の処理フレームワーク連携装置。
【０１２４】
（付記８）前記連携システム挿入部は、前記連携の処理の挿入に対応して修正した前記サービス定義を出力することを特徴とする付記２〜７のいずれか一つに記載の処理フレームワーク連携装置。
【０１２５】
（付記９）前記制御部は、
前記サービスが扱うデータの発生頻度が所定頻度より高い場合、前記データを連続的に転送した時の複数の前記キューイングシステムのスループットを測定し、複数の前記キューイングシステムのうち最大の前記スループットのものに対し、前記非インメモリ型の前記スループットが所定の範囲にあれば、当該非インメモリ型のうち最大のスループットのものを選択することを特徴とする付記１〜８のいずれか一つに記載の処理フレームワーク連携装置。
【０１２６】
（付記１０）前記制御部は、
前記サービスが扱うデータのサイズが所定のサイズよりも大きい場合、予めサービスで利用する所定のデータサイズを転送し、前記キューイングシステムのそれぞれの前記転送遅延を測定することを特徴とする付記１〜９のいずれか一つに記載の処理フレームワーク連携装置。
【０１２７】
（付記１１）前記制御部は、
前記サービス内に前記連携ポイントが複数存在する場合、最短の前記転送遅延が大きい連携ポイントからキューイングシステムを選択し、他の前記連携ポイントは選択済みのキューイングシステムが利用可能であれば、選択済みの同じキューイングシステムを利用することを特徴とする付記１〜１０のいずれか一つに記載の処理フレームワーク連携装置。
【０１２８】
（付記１２）前記制御部は、
複数のサービスが実行されている場合、他のサービスで利用している前記キューイングシステムを優先して選択することを特徴とする付記１〜１１のいずれか一つに記載の処理フレームワーク連携装置。
【０１２９】
（付記１３）前記制御部は、
前記サービス全体の実行にかかる実行遅延を測定し、当該実行遅延が前記転送遅延または前記処理遅延よりも十分に大きい場合、前記転送遅延が最長の前記キューイングシステムから優先して選択することを特徴とする付記１〜１２のいずれか一つに記載の処理フレームワーク連携装置。
【０１３０】
（付記１４）要求されたサービスのサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携方法において、
メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する、
処理をコンピュータが実行することを特徴とする処理フレームワーク連携方法。
【０１３１】
（付記１５）要求されたサービスのサービス定義に含まれる処理を有する処理フレームワーク間の連携ポイントをキューイングシステムで接続する処理フレームワーク連携プログラムにおいて、
メモリ上にキューを配置したインメモリ型およびディスク上にキューを配置した非インメモリ型の前記キューイングシステムそれぞれのキューイングの処理遅延と、前記処理フレームワーク間でのデータ転送にかかる転送遅延とに基づき、前記インメモリ型あるいは前記非インメモリ型を前記キューイングシステムとして選択する、
処理をコンピュータに実行させることを特徴とする処理フレームワーク連携プログラム。
【符号の説明】
【０１３２】
１００  処理フレームワーク連携装置
２０１  連携ポイント抽出部
２０２  フィルタデータベース（ＤＢ）
２０３  連携システム抽出部
２０４  フレームワークデータベース（ＤＢ）
２０５  遅延測定部
２０６  連携システム選択部
２０７  連携システム挿入部
３０１  ＣＰＵ
３０２  メモリ
３０５  記録媒体
３１０  ネットワーク
４０１，４０２，４１３  フィルタ
６００  転送遅延測定結果
７０１，７０２  連携処理（入出力処理）
Ｄｍｉｎ  最短の転送遅延
ＦＷ（ＦＷ−Ａ，ＦＷ−Ｂ）  処理フレームワーク
Ｐ  連携ポイント
Ｑ  キューイングシステム
Ｔａ  処理遅延
Ｔｂ  転送遅延
Ｔｃ  実行遅延
【図１】
2020071729.tif 000003
【図２】
2020071729.tif 000004
【図３】
2020071729.tif 000005
【図４】
2020071729.tif 000006
【図５】
2020071729.tif 000007
【図６】
2020071729.tif 000008
【図７】
2020071729.tif 000009
【図８】
2020071729.tif 000010
【図９】
2020071729.tif 000011
【図１０】
2020071729.tif 000012
【図１１】
2020071729.tif 000013
【図１２】
2020071729.tif 000014
【図１３】
2020071729.tif 000015