(57)【特許請求の範囲】
【請求項１】
割り当てられた実行回路を実体化して該実行回路によって情報サービスのデータ処理を実行し、他のリソースに依存せずにデータの入出力が可能なハードウェアリソースを有するハードウェアリソース群と、
要求されたハードウェア機能に必要なハードウェアリソースを前記ハードウェアリソース群の中から確保し、確保した前記ハードウェアリソースに該ハードウェア機能の実行回路を実体化させるハードウェアリソースマネージャと、
ユーザから要求された情報サービスに必要なハードウェア機能を判別し、該ハードウェア機能を前記ハードウェアリソースマネージャに要求するサービスマネージャと、を有する情報サービスシステム。
【請求項２】
割り当てられた実行プログラムを実体化し、該実行プログラムによって情報サービスのデータ処理を実行するソフトウェアリソースを有するソフトウェアリソース群と、
要求されたソフトウェア機能に必要なソフトウェアリソースを前記ソフトウェアリソース群の中から確保し、確保した前記ソフトウェアリソースに該ソフトウェア機能の実行プログラムを実体化させるソフトウェアリソースマネージャと、を更に有し、
前記サービスマネージャは、前記ユーザから要求された情報サービスに必要なソフウェア機能を更に判別し、該ソフトウェア機能を前記ソフトウェアリソースマネージャに要求する、
請求項１に記載の情報サービスシステム。
【請求項３】
前記ソフトウェアリソースは、ユーザ端末との通信に用いられるサービス用ネットワークに接続されたサーバコンピュータであり、前記ハードウェアリソースは前記サービス用ネットワークに前記サーバコンピュータと並列に接続されたデバイスである、請求項２に記載の情報サービスシステム。
【請求項４】
前記サーバコンピュータおよび前記デバイスは、前記ソフトウェアリソースマネージャおよび前記ハードウェアリソースマネージャが接続されたオペレーション用ネットワークに更に接続され、
前記サービスマネージャが前記サービス用ネットワークと前記オペレーション用ネットワークの両方に接続され、前記サービス用ネットワークによって前記ユーザ端末と通信し、前記オペレーション用ネットワークによって前記ソフトウェアリソースマネージャおよび前記ハードウェアリソースマネージャと通信する、
請求項３に記載の情報サービスシステム。
【請求項５】
前記サーバコンピュータと前記デバイスを直接接続する配線があり、
前記サーバコンピュータ上の実行プログラムと前記デバイス上の実行回路との間では前記配線で信号を伝送する、
請求項３または４に記載の情報サービスシステム。
【請求項６】
前記ハードウェアリソースは任意の回路を適宜構築することが可能なリコンフィギャラブルデバイスである、請求項１から５のいずれか１項に記載の情報サービスシステム。
【請求項７】
前記リコンフィギャラブルデバイスが複数個あり、前記複数のリコンフィギャラブルデバイスを同時に複数のユーザの情報サービスにそれぞれ割り当てることができる、請求項６に記載の情報サービスシステム。
【請求項８】
前記リコンフィギャラブルデバイスが複数個あり、前記リコンフィギャラブルデバイス同士を直接接続する配線があり、
前記リコンフィギャラブルデバイスを跨いて構築される実行回路は該配線でリコンフィギャラブルデバイス間の信号を伝送する、
請求項６または７に記載の情報サービスシステム。
【請求項９】
雛形回路の構成を表す構成情報と該雛形回路を実行回路に実体化した場合に生じる負荷を示す発生負荷とを含む諸元情報が予め記録された回路構成情報データベースと、
前記ハードウェアリソースによって実体化されている実行回路と前記ハードウェアリソース群に生じている負荷を示す負荷状況とが記録される稼働状態データベースと、を更に有し、
前記サービスマネージャは、前記ハードウェア機能を実現するのに用いるべき雛形回路を前記ハードウェアリソースマネージャに通知し、
前記ハードウェアリソースマネージャは、前記回路構成情報データベースにおける前記雛形回路の発生負荷と、前記稼働状態データベースにおける前記負荷状況とに基づいて、該雛形回路のために確保するハードウェアリソースを決定する、
請求項１から８のいずれか１項に記載の情報サービスシステム。
【請求項１０】
前記ユーザから要求される前記情報サービスには優先度が設定されており、
前記サービスマネージャは前記ハードウェアリソースマネージャに前記優先度を通知し、
前記ハードウェアリソースマネージャは、前記情報サービスのハードウェア機能に必要なハードウェアリソースを前記ハードウェアリソース群の中から確保するとき、前記優先度の高い情報サービスを優先させる、
請求項１から９のいずれか１項に記載の情報サービスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製造後にも動作内容を再構成することが可能（リコンフィギャラブル）なＬＳＩ、プロセッサ、デバイスの応用方法に関するものである。本発明が適用される領域は、例えば、利用者端末が有線あるいは無線の通信を介してネットワーク上のサーバあるいはデータセンタと接続し、サーバあるいはデータセンタを利用する情報通信サービスの分野である。
【背景技術】
【０００２】
近年、高速な通信ネットワークの普及に伴い、ユーザの手元にあるユーザ端末と、遠隔地に設置されているサーバコンピュータを連携動作させることによって、ユーザ端末から情報を登録したり、検索したり、加工したりできる情報サービスの提供が可能となってきている。
【０００３】
図１は、データセンタを備えた一般的な情報サービスシステムの構成を示すブロック図である。図１を参照すると、ユーザ端末１２１〜１２３が通信ネットワーク１１０に接続されている。また通信ネットワーク１１０にはネットワークスイッチ１１１が接続されている。ネットワークスイッチ１１１には更にサービス用ネットワーク１１２によってサーバコンピュータ１４１〜１４６が接続されている。サーバコンピュータ１４１〜１４６は更にオペレーション用ネットワーク１１３によってオペレーション用端末１３０と接続されている。
【０００４】
ユーザ端末１２１〜１２３は、それぞれ異なるユーザが所有する端末装置であり、通信ネットワーク１１０、ネットワークスイッチ１１１、およびサービス用ネットワーク１１２を介してサーバコンピュータ１４１〜１４６とデータ通信を行なうことが可能となっている。
【０００５】
サーバコンピュータ１４１〜１４６は、高速で計算を実行する機能や、大容量の情報を記憶する機能を有しており、情報の生成、加工、検索等を行なうことによって、ユーザ端末１２１〜１２３に対して情報サービスを提供する。
【０００６】
サーバコンピュータ１４１〜１４６は同一機能を有しており、どれか１台に故障等の障害が発生しても、他のサーバコンピュータが稼働し続けることによって、システム全体としてはサービス提供を継続することが可能となっている。
【０００７】
オペレーション用端末１３０は、サーバコンピュータ１４１〜１４６の運用者が操作する端末であり、オペレーション用ネットワーク１１３を介してサーバコンピュータ１４１〜１４６とデータ通信を行なうことが可能となっている。運用者はオペレーション用端末１３０を操作することにより、サーバコンピュータ１４１〜１４６の動作状況を確認したり、そこで動作するソフトウェアプログラムを更新したりできる。
【０００８】
このようなシステムにおいて、ユーザ端末１２１〜１２３からの情報サービスへのアクセスが多い場合、特定のサーバコンピュータに処理負荷が集中することを避けるため、ネットワークスイッチ１１１に負荷分散機能（ロードバランシング機能）を持たせて、処理負荷を複数のサーバコンピュータ１４１〜１４６に分散させる方法が取られる場合がある（非特許文献１参照）。
【０００９】
図１に示したようなシステムでは、データの生成、加工、検索などのデータ処理はサーバコンピュータ１４１〜１４６上のソフトウェアによって行なわれる。すなわち、データ処理はサーバコンピュータ１４１〜１４６内のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）により逐次処理あるいは時分割処理によって実行される。
【００１０】
近年、通信ネットワークの高速化や広帯域化により、大容量のマルチメディアデータやリアルタイムデータが通信ネットワークを介して送受信されるようになった。そのため、この種のサーバコンピュータ１４１〜１４６で処理すべきデータ量が増加してきている。
【００１１】
この処理すべきデータ量の増加に対する対応方法の一つとして、ハードウェアのアクセラレータをサーバコンピュータに接続し、データ処理の一部をハードウェアで実行するという方法がある。ハードウェアのアクセラレータは、データ処理の汎用性という点ではＣＰＵには劣るが、特定の処理であれば高速かつ低消費電力で実行することができる。このため、ＣＰＵによるソフトウェア処理と、アクセラレータによるハードウェア処理を組み合わせることにより、データ処理を効率的に行なうことが可能となる（非特許文献２参照）。
【００１２】
図２は、サーバコンピュータにアクセラレータを接続した構成の情報サービスシステムの構成を示すブロック図である。図２では、ハードウェアのアクセラレータ２５１〜２５３が、サーバコンピュータ１４１〜１４３にそれぞれ接続されており、各サーバコンピュータのデータ処理を支援する。
【００１３】
ハードウェアのアクセラレータとしては、特定の処理に最適化され、ハードウェア的に機能が固定化されたデバイスや装置を組み込んだものが挙げられる。アクセラレータの例として、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＡＳＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｓｔａｎｄａｒｄ  Ｐｒｏｄｕｃｅ）等のＬＳＩがある。
【００１４】
また、それとは別に、機能が固定的でなく、回路構成を変更することによって多様な機能を実現することが可能なハードウェアのデバイスも存在する。そのようなものとして、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のリコンフィギャラブルデバイスがある。リコンフィギャラブルデバイスは、特定の処理に対する純粋な処理能力で比較した場合には専用ＬＳＩより劣るが、製品に組み込まれた後でも機能を修正したり、追加したりできるという強みを持っている（非特許文献３参照）。
【００１５】
このため、図２に示したような情報サービスシステムのアクセラレータ２５１〜２５３としてリコンフィギャラブルデバイスが利用されることもある。多数のリコンフィギャラブルデバイスを組み合わせて、物理計算や金融計算など、特定の科学計算処理を高速で実施するシステムもある（特許文献１参照）。
【００１６】
図３は、サーバコンピュータにリコンフィギャラブルデバイスを接続した情報サービスシステムの構成例を示すブロック図である。図３を参照すると、サーバコンピュータ３４１、３４２がオペレーション用ネットワーク３１３を介してオペレーション用端末３３０に接続されている。サーバコンピュータ３４１とサーバコンピュータ３４２の間にはアクセラレタータ３５１〜３５６が接続されている。
【００１７】
図３において、アクセラレータ３５１〜３５６は、隣接した同士で直接データを受け渡すことにより、全体として演算処理のパイプラインを形成する。
【００１８】
サーバコンピュータ３４１がアクセラレータ３５１〜３５６で形成されたパイプラインに入力データを与え、サーバコンピュータ３４２が演算結果である出力データをパイプラインから回収する。その場合、全てのサーバコンピュータと全てのアクセラレータは唯一つの科学計算課題の演算処理に利用される。システム運用者は、唯一つの科学計算課題のためのオペレーションを、サーバコンピュータ３４１、アクセラレータ３５１〜３５６、およびサーバコンピュータ３４２で構成された情報サービスシステムにて実行させることになる。
【００１９】
具体的には、運用者は、オペレータ用端末３３０から、オペレーション用ネットワーク３１３を介して、サーバコンピュータ３４１〜３４２と、アクセラレータ３５１〜３５６に指示を出すことができる。まずは準備段階として、運用者はサーバコンピュータ３４１〜３４２のそれぞれに必要なプログラムあるいはデータを設定し、同様にアクセラレータ３５１〜３５６のそれぞれに、担当処理に応じた回路構成を設定する。全ての準備作業が整ったら、運用者は実行段階として情報サービスシステムに演算を開始させ、演算が終了したらシステムを停止させる。
【００２０】
図３に示した様なシステムでは、１人のユーザの１つの利用目的のために全ての計算資源を用いることができる。そのため、アクセラレータ３５１〜３５６に対するリコンフィグ処理を行なう準備段階と、アクセラレータ３５１〜３５６を利用して実際に演算処理を行なう計算処理段階とを明確に分離されている。
【００２１】
なお、本明細書では、サーバコンピュータとハードウェアアクセラレータとをあわせて計算資源と呼ぶこともある。
【先行技術文献】
【特許文献】
【００２２】
【特許文献１】特開２００６−３９７９０号公報
【非特許文献】
【００２３】
【非特許文献１】情報処理学会誌「情報処理」Ｖｏｌ．５０  Ｎｏ．１１  １０８０−１０８５、「特集  クラウドコンピューティング  スケールアウトの技術」
【非特許文献２】情報処理学会誌「情報処理」Ｖｏｌ．５０  Ｎｏ．２  ９５−９９、「特集  アクセラレータ，再び    アクセラレータ技術の影と光」
【非特許文献３】日経エレクトロニクス  ２００９年７月２７日，  ６１−７１、「やわらかくなるＬＳＩ」
【発明の概要】
【発明が解決しようとする課題】
【００２４】
上述したような一般的な技術には以下に示すような問題点がある。
【００２５】
（各サーバにアクセラレータが括りつけの場合の問題点）
図２に示したように、アクセラレータ２５１〜２５３がサーバコンピュータ１４１〜１４３にそれぞれ括りつけで接続されている場合、例えばアクセラレータ２５１が処理するデータは、必ずサーバコンピュータ１４１を経由して入出力することになる。サーバコンピュータ１４１が複数のユーザに向けた情報の提供を担当している場合、その内部で共通に利用されるバスやメモリ等では複数ユーザ向けのデータが混在することになる。
【００２６】
一つのサーバコンピュータ内では、演算処理やデータ転送は、時分割で行なわれるため、扱うデータが大容量ストリームデータである場合、サポートすべきユーザ数が増える程、サーバコンピュータ内のバス上でのデータコリジョンや処理落ちが発生する可能性が高くなる。そのような場合、サーバコンピュータ１４１に接続されたアクセラレータ２５１が高速でデータ処理が可能であったとしても、データの出入口となるサーバコンピュータ１４１側での処理がボトルネックとなり、最大限のパフォーマンスを発揮できない場合がある。
【００２７】
これを回避するために、１台のサーバコンピュータと１台のアクセラレータで１つの大容量ストリームデータをサポートする方法も考えられる。しかし、不特定多数のユーザが利用することを想定したデータセンタにおいては、用意すべき計算資源が増大してしまうという課題がある。
【００２８】
また、本来は時分割によるマルチプロセスを特徴としていたサーバコンピュータの性能を充分に活かせないという課題がある。
【００２９】
（複数のアクセラレータを束として利用する場合の問題点）
図３に示したような特定の科学計算を高速で実行するシステムにおいては、ただ一つの目的に全計算資源が利用される。しかし、不特定多数のユーザが計算資源を共有するような用途では、各ユーザがそれぞれ自由なタイミングで異なる情報サービスを要求してくるため、有限な計算資源を分割しながら運用することが必要となる。
【００３０】
また、あるユーザがシステムを利用していない状況でも、別のユーザがシステムを利用しているという状況が起こりえる。そのため、基本的には常に稼働状態を維持して、その稼働状態においてリコンフィグ動作を実施しなければならないという課題がある。
【００３１】
上述したような各問題点あるいはそれらが組み合わされることにより、計算資源を有効に利用した効率のよい情報サービスの提供が阻害されている。
【００３２】
本発明の目的は、計算資源を有効に利用して効率良く情報サービスを提供することが可能な技術を提供することである。
【課題を解決するための手段】
【００３３】
上記目的を達成するために、本発明の情報サービスシステムは、
割り当てられた実行回路を実体化し、該実行回路によって情報サービスのデータ処理を実行する、他のリソースに依存せずにデータの入出力が可能なハードウェアリソースを有するハードウェアリソース群と、
要求されたハードウェア機能に必要なハードウェアリソースを前記ハードウェアリソース群の中から確保し、確保した前記ハードウェアリソースに該ハードウェア機能の実行回路を実体化させるハードウェアリソースマネージャと、
前記ユーザから要求された情報サービスに必要なハードウェア機能を判別し、該ハードウェア機能を前記ハードウェアリソースマネージャに要求するサービスマネージャと、を有している。
【発明の効果】
【００３４】
本発明によれば、計算資源を有効に利用して効率良く情報サービスを提供することができる。
【図面の簡単な説明】
【００３５】
【図１】データセンタを備えた一般的な情報サービスシステムの構成を示すブロック図である。
【図２】サーバコンピュータにアクセラレータを接続した構成の情報サービスシステムの構成を示すブロック図である。
【図３】サーバコンピュータにリコンフィギャラブルデバイスを接続した情報サービスシステムの構成例を示すブロック図である。
【図４】本発明の実施形態による情報サービスシステムの構成を示すブロック図である。
【図５】計算資源管理における状態の遷移を示す図である。
【図６】サービス開始要求および検索の処理を示すシーケンス図である。
【図７】計算資源の予約処理を示すシーケンス図である。
【図８】構築処理を示すシーケンス図である。
【図９】実行プログラムおよび実行回路の初期化処理を示すシーケンス図である。
【図１０】実行プログラムおよび実行回路の動作を開始させ、情報サービスの提供を開始させる動作始動処理を示すシーケンス図である。
【図１１】ユーザ端末４２１からサービスマネージャ４７０にサービス終了が要求される様子を示すシーケンス図である。
【図１２】動作停止処理を示すシーケンス図である。
【図１３】終了化処理を示すシーケンス図である。
【図１４】終了化処理を示すシーケンス図である。
【図１５】情報サービスシステムが提供する情報サービスをシステムに追加あるいは削除するメンテナンス処理を示すシーケンス図である。
【図１６】ある情報サービスにおけるユーザ端末とソフトウェア機能とハードウェア機能との接続構成の一例を示す図である。
【図１７】サービス構成情報ＤＢ４７１、プログラム情報ＤＢ４８１、回路構成情報ＤＢ４９１が管理する情報を示す図である。
【図１８】サービスマネージャ４７０、ＳＷリソースマネージャ４８０、ＨＷリソースマネージャ４９０が管理する情報の一例を示す図である。
【図１９】情報サービスシステムのＳＷリソースおよびＨＷリソースに情報サービスのプログラムおよび回路が展開された様子を示す図である。
【図２０】図１９に示したようにプログラムと回路が展開されたシステムにおけるサーバ稼働状態ＤＢ４８２とＲＵ稼働状態ＤＢ４９２の管理情報を示す図である。
【図２１】第３の実施例による情報サービスシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００３６】
本実施形態では、一般的なサーバコンピュータと、リコンフィギャラブルデバイスを用いたハードウェアアクセラレータを、それぞれ複数組み合わせてデータセンタに適用する新たな手法を提案する。特に、このデータセンタの計算処理能力は、複数のユーザに対し、各ユーザの要求に応じた異なるアプリケーションを同時に提供することができる。具体的な適用分野の例としては、音声や動画などのメディア情報処理、信号の暗号化および復号化を含むストリーミング処理など、高速での処理や実時間性が要求される情報サービスが挙げられる。
【００３７】
本発明の実施形態について図面を参照して詳細に説明する。
【００３８】
以下の説明において、リコンフィギュアラブルなデバイスを搭載し、ネットワークを介したデータ通信が可能なハードウェアアクセラレータを、リコンフィグユニット（ＲＵ（Reconfigurable Unit））と呼ぶこととする。
【００３９】
ＲＵは、ネットワークを介して外部から回路構成情報を与えることにより、内部のデバイスの回路構成を変更可能である。ＲＵの回路構成を変更することにより、提供する処理機能を変更することができる。なお、このようなＲＵそれ自体は市井技術として存在しているものである。
【００４０】
図４は、本発明の実施形態による情報サービスシステムの構成を示すブロック図である。図４を参照すると、ユーザ端末４２１〜４２３が通信ネットワーク４１０に接続されている。また通信ネットワーク４１０にはネットワークスイッチ４１１が接続されている。ネットワークスイッチ４１１には更にサービス用ネットワーク４１２によって、サービスマネージャ４７０、サーバコンピュータ４４１〜４４３、およびリコンフィグユニット（ＲＵ）４５１〜４５３が接続されている。サーバコンピュータ４４３〜４４３は、更にオペレーション用ネットワーク４１３によって、オペレーション用端末４３０、サービス構成情報データベース（以下、サービス構成情報ＤＢ）４７１、ソフトウェアリソースマネージャ（以下、ＳＷリソースマネージャ）４８０、プログラム情報データベース（以下、プログラム情報ＤＢ）４８１、サーバ稼働状態データベース（以下、サーバ稼働状態ＤＢ）４８２、ハードウェアリソースマネージャ（以下、ＨＷリソースマネージャ）４９０、回路構成情報データベース（以下、回路構成情報ＤＢ）４９１、およびリコンフィグユニット稼働状態データベース（以下、リコンフィグユニット稼働状態ＤＢ）４９２と接続されている。
【００４１】
ＲＵ４５１〜４５３は、上述したようなリコンフィギャラブルなデバイスを搭載し、ネットワークを介したデータ通信が可能なハードウェアアクセラレータである。ＲＵ４５１〜４５３は、ハードウェアリソースマネージャ４９０から与えられる回路構成の情報を基に内部に実行回路を展開し、その実行回路で処理を実行する。実行回路はＲＵの内部に閉じて展開されてもよく、あるいは１つの実行回路が複数のＲＵに跨って展開されてもよい。ＲＵ４５１〜４５３は直接接続する配線で相互に接続されており、１つの実行回路が複数のＲＵに跨っている場合、実行回路内でＲＵ間をわたる信号はこの配線で伝達される。
【００４２】
ユーザ端末４２１〜４２３は、それぞれ異なるユーザが所有する端末装置であり、通信ネットワーク４１０、ネットワークスイッチ４１１、およびサービス用ネットワーク４１２を介してサーバコンピュータ４４１〜４４３およびリコンフィグユニット４５１〜４５３とデータ通信を行なうことができる。
【００４３】
オペレーション用端末４３０は、オペレーション用ネットワーク４１３に接続する全てのサーバコンピュータ４４１〜４４３およびリコンフィグユニット４５１〜４５３とデータ通信を行なうことができ、それら各々の動作状況を確認することができる。
【００４４】
以上に示した各構成要素は個々に既存の技術や製品として存在するものである。
【００４５】
続いて、本実施形態に特徴的な構成要素について述べる。
【００４６】
ＳＷリソースマネージャ４８０は、サーバコンピュータ４４１〜４４３で提供するソフトウェア処理のための計算資源を管理するものとして設けられている。
【００４７】
プログラム情報ＤＢ４８１は、実際にサーバコンピュータ４４１〜４４３上で動作させる個々のプログラムの実行ファイルおよびそのプログラムを実行する際にサーバに掛かる負荷の負荷見積情報を記憶するデータベースとして設けられている。
【００４８】
サーバ稼働状態ＤＢ４８２は、サーバコンピュータ４４１〜４４３が、現在どのプログラムを実行しており、どのような負荷状況にあるかを記憶するデータベースとして設けられている。
【００４９】
ＨＷリソースマネージャ４９０は、リコンフィグユニット４５１〜４５３で提供するハードウェア処理のための計算資源を管理するものとして設けられている。
【００５０】
回路構成情報ＤＢ４９１は、実際にリコンフィグユニット４５１〜４５３上に展開させる個々の回路の回路構成情報およびその回路を動作させる際にリコンフィグユニット４５１〜４５３に掛かる負荷の負荷見積情報を記憶するものとして設けられている。
【００５１】
リコンフィグユニット稼働状態ＤＢ４９２は、リコンフィグユニット４５１〜４５３が、現在どの回路を展開しており、どのような負荷状況にあるかを記憶するデータベースとして設けられている。
【００５２】
サービスマネージャ４７０は、各ユーザについての全体として情報サービスの実施を管理するものとして設けられている。サービスマネージャ４７０は、複数のユーザに対する情報サービスの提供について、それぞれの状態を個別に管理し、制御する。
【００５３】
サービス構成情報ＤＢ４７１は、個々の情報サービスと、それを実施するために必要となるソフトウェア機能およびハードウェア機能との対応関係を記憶するデータベースとして設けられている。
【００５４】
上述した各構成要素が組み合わされて、どのように機能するかについて以下に詳述する。
【００５５】
ユーザ向けの情報サービスは、ソフトウェアだけで実現できるサービス、ハードウェアだけで実現できるサービス、ソフトウェアとハードウェアを組み合わせて実現できるサービスの三種類に大別できる。ここではソフトウェアとハードウェアを組み合わせて実現する情報サービスを例として説明を行なう。
【００５６】
ここでは情報サービスの処理を以下のように分類する。
・  サービスの登録と削除
・  サービスの開始要求
・  サービス構成要素の検索
・  予約
・  構築
・  初期化
・  動作始動
・  サービスの終了要求
・  動作停止
・  終了化
・  解体・解約
以下、それぞれの処理について順次説明する。
【００５７】
（サービスの登録と削除）
ソフトウェアＳとハードウェアＨの組み合わせによって実現される情報サービスＡがある場合、運用者はオペレーション用端末４３０を操作し、情報サービスＡに関して以下の各種登録処理を実施する。
【００５８】
プログラム情報ＤＢ４８１には以下の情報を追加登録する。
・  雛形プログラムＳのＩＤ
・  雛形プログラムＳのプログラム実体ファイル
・  雛形プログラムＳをサーバコンピュータで実行する時に生じる負荷情報
・  雛形プログラムＳの外部入出力ポート情報
回路構成情報ＤＢ４９１には以下の情報を追加登録する。
・  雛形回路ＨのＩＤ
・  雛形回路Ｈの回路構成情報実体
・  雛形回路Ｈをリコンフィグユニットへ展開する時に生じる負荷情報
・  雛形回路Ｈの入出力ポート情報
サービス構成情報ＤＢ４７１には以下の情報を追加登録する。
・  情報サービスＡのＩＤ
・  情報サービスＡを構成する雛形プログラムＩＤ
・  情報サービスＡを構成する雛形回路ＩＤ
・  ユーザ端末、雛形プログラム、雛形回路の各ポートの接続関係
なお、新しい情報サービスの情報を追加登録する際に、その情報サービスで用いられる雛形プログラムに相当するプログラムがプログラム情報ＤＢ４８１に既に登録されている場合、その登録されている情報が利用できる。そのため、運用者は新たな雛形プログラムを登録する必要はない。それと同様に、情報サービスで用いられる雛形回路に相当する回路が回路構成情報ＤＢ４９１に既に登録されている場合、その登録されている情報が利用できるため、新たな雛形回路を登録する必要は無い。
【００５９】
また、削除処理は、サービス構成情報ＤＢ４７１、プログラム情報ＤＢ４８１、回路構成情報ＤＢ４９１より、上記に示した項目を削除することによって行なわれる。
【００６０】
（サービスの開始要求）
サービスの開始要求は、ユーザ端末４２１〜４２３が、要求するサービスのサービスＩＤをサービスマネージャ４７０に送信することによって行なわれる。このとき、サービス動作をカスタマイズするための動作パラメタが合わせて通知される。
【００６１】
（サービス構成要素の検索）
サービスマネージャ４７０はユーザ端末４２１〜４２３が要求するサービスＩＤを受信し、情報サービスを提供するために必要なソフトウェア機能とハードウェア機能をサービス構成情報ＤＢより検索する。この検索の結果、サービスマネージャ４７０は、サービス提供に必要なソフトウェア機能としての雛形プロラムＩＤと、同じくサービス提供に必要なハードウェア機能としての雛形回路ＩＤを取得する。
【００６２】
（予約）
続いてサービスマネージャ４７０は、プログラムを展開して実行させることが可能なサーバコンピュータ、および、回路を展開して実行させることが可能なリコンフィグユニット（ＲＵ）を探し出し、それぞれの計算資源を予約する。
【００６３】
計算資源の予約の流れは以下の通りである。
【００６４】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、雛形プログラムＩＤを通知し、このプログラムを実行することが可能な計算資源の割当を要求する。
【００６５】
ＳＷリソースマネージャ４８０は、雛形プログラムＩＤを検索キーとして、プログラム情報ＤＢ４８１から雛形プログラムの実行用ファイルの本体、実行によって発生する負荷（発生負荷）、利用される入出力ポート等を含む、実行することになるプログラムの緒元情報を取得する。
【００６６】
次にＳＷリソースマネージャ４８０は、サーバ稼働状態ＤＢ４８２に対して、検索で得た発生負荷を受け入れることが可能なサーバコンピュータの検索を指示する。この結果、サーバ稼働状態ＤＢより、プログラムを走らせることが可能なサーバコンピュータの一覧情報が、ＳＷリソースマネージャ４８０に通知される。
【００６７】
ＳＷリソースマネージャ４８０は、通知されたサーバコンピュータ一覧情報から一つのサーバコンピュータを選択し、サーバ稼働状態ＤＢ４８２に対し、今後発生する予定の負荷を示す負荷情報を通知する。
【００６８】
これまでの手続きにより、ＳＷリソースマネージャ４８０は、雛形プログラムが、どのサーバコンピュータで実施されるべきかを把握したことになる。ＳＷリソースマネージャ４８０は、雛形プログラムがどのサーバコンピュータで実施されるべきかという割当ＳＷリソースを示す割当ＳＷリソース情報を自身が管理する情報に追加する。
【００６９】
そして、ＳＷリソースマネージャ４８０は、割当ＳＷリソース情報ＩＤを、サービスマネージャ４７０に通知し、必要な計算資源が予約できたことを通知する。
【００７０】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、雛形回路ＩＤを通知し、この回路を実現することが可能な計算リソースの割当を要求する。
【００７１】
ＨＷリソースマネージャ４９０は、雛形回路ＩＤを検索キーとして、回路構成情報ＤＢ４９１から雛形回路の実行用回路構成情報、発生負荷、入出力ポート等を含む、実行することになる回路の緒元情報を取得する。
【００７２】
次にＨＷリソースマネージャ４９０は、ＲＵ稼働状態ＤＢ４９２に対して、検索で得た発生負荷を受け入れることが可能なＲＵの検索を指示する。この結果、ＲＵ稼働状態ＤＢ４９２より、回路を展開して実行することが可能なＲＵの一覧情報がＨＷリソースマネージャ４９０に通知される。
【００７３】
ＨＷリソースマネージャ４９０は、通知されたＲＵ一覧情報から一つのＲＵを選択し、ＲＵ稼働状態ＤＢ４９２に対し、今後発生する予定の負荷を示す負荷情報を通知する。
【００７４】
これまでの手続きにより、ＨＷリソースマネージャ４９０は、雛形回路が、どのＲＵで実施されるべきかを把握したことになる。ＨＷリソースマネージャ４９０は、この雛形回路がどのＲＵで実施されるべきかという割当ＨＷリソースを示す割当ＨＷリソース情報として、自身が管理する情報に追加する。そしてＨＷリソースマネージャ４９０は、割当ＨＷリソース情報ＩＤを、サービスマネージャ４７０に通知し、必要な計算資源が予約できたことを通知する。
【００７５】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０とＨＷリソースマネージャ４９０の両方から予約完了の通知を受けると、その後の処理が継続できると判断する。もし、どちらか一方あるいは両方から、「予約不可」という旨の返信があった場合、ユーザが要求する情報サービスは提供できないことになる。そのため、その場合、サービスマネージャ４７０は、ユーザ端末４２１〜４２３からのサービス要求に対し「サービス提供不可」の返信を行ない、またＳＷリソースマネージャ４８０、ＨＷリソースマネージャ４９０を通して計算資源の予約を解除する。
【００７６】
なお、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による予約の処理とＨＷリソースマネージャ４９０による予約の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
【００７７】
（構築）
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０とＨＷリソースマネージャ４９０の両方から割当リソース情報ＩＤを受け取ると、ユーザ端末が要求する情報サービスが提供可能であると判断する。その場合、サービスマネージャ４７０は、予約された状態となっている計算資源によってソフトウェア機能およびハードウェア機能を実体のあるものとして構築するための構築処理を行う。
【００７８】
構築処理の流れは以下の通りである。
【００７９】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、割当られたＳＷリソース情報ＩＤと共に構築要求を通知する。
【００８０】
ＳＷリソースマネージャ４８０は、構築要求の通知を受けると、自身が管理している割当情報を参照し、先ほど予約したサーバコンピュータに対してプログラムの実行用ファイル本体をロードし、ソフトウェア機能を実行プログラムとして実体化させる。
【００８１】
実行プログラムにはサーバコンピュータによって実行プログラムＩＤが付与される。このＩＤは、どのサーバコンピュータ上の、どの実行プログラムであるかを一意に特定する識別情報である。また、実行プログラムが実体化することにより、実行プログラムが利用する入出力ポートのアドレスが確定する。また、ＳＷリソースマネージャ４８０が管理情報を設定することにより、ＳＷリソースが実体化した実行プログラムが特定ユーザに割り当てられた状態となる。
【００８２】
サーバコンピュータは、実行プログラムＩＤおよび入出力ポートアドレスと共に、構築処理の完了をＳＷリソースマネージャ４８０に通知する。ＳＷリソースマネージャ４８０は、サーバ稼働状態ＤＢ４８２に対し、予約していたサーバコンピュータに実行プロラムが展開されたことを通知する。また、ＳＷリソースマネージャ４８０は、サービスマネージャ４７０に対して、割当ＳＷリソースの構築が完了したことを通知する。このとき、実行プログラムの入出力ポート名と、そのアドレスに関する情報もあわせてサービスマネージャ４７０に通知される。
【００８３】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、割当ＨＷリソース情報ＩＤと共に構築要求を通知する。
【００８４】
ＨＷリソースマネージャ４９０は、構築要求の通知を受けると、自身が管理している割当情報を参照し、先ほど予約したＲＵに回路構成情報を展開させ、ハードウェア機能を実行回路として実体化させる。実行回路には、ＲＵによって実行回路ＩＤが付与される。このＩＤは、どのＲＵ上の、どの実行プログラムであるかを一意に特定できる識別情報である。また回路が実体化することにより、実行回路が利用する入出力ポートのアドレスが確定する。また、ＨＷリソースマネージャ４９０が管理情報を設定することにより、ＨＷリソースが実体化した実行回路が特定ユーザに割り当てられた状態となる。
【００８５】
ＲＵは、実行回路ＩＤおよび入出力ポートアドレスと共に、構築処理の完了をＨＷリソースマネージャ４９０に通知する。ＨＷリソースマネージャ４９０は、ＲＵ稼働状態ＤＢ４９２に対し、予約していたＲＵに実行回路が展開されたことを通知する。また、ＨＷリソースマネージャ４９０は、サービスマネージャ４７０に対して割当ＨＷリソースの構築が完了したことを通知する。このとき、実行回路の入出力ポート名と、そのアドレスに関する情報もあわせてサービスマネージャ４７０に通知される。
【００８６】
なお、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による構築の処理とＨＷリソースマネージャ４９０による構築の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
【００８７】
（初期化）
上述した構築処理により、ソフトウェア機能がサーバコンピュータ上に、ハードウェア機能がリコンフィグユニット上に構築される。続いて、初期化処理を実施し、これら構築されたサービス構成要素に対して動作パラメタの設定や入出力ポート同士の対応付けを行なう。初期化の処理の流れは以下の通りである。
【００８８】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、割当ＳＷリソースの初期化要求を通知する。サービス要求時に動作パラメタが付されていた場合には、この動作パラメタの情報も合わせてＳＷリソースマネージャ４８０に通知される。また、構築処理の結果として得られた、入出力ポート名と確定したアドレスの全体も合わせてＳＷリソースマネージャ４８０に通知される。
【００８９】
ＳＷリソースマネージャ４８０は、実行プログラムがロードされたサーバコンピュータに対して、動作パラメタ、入出力ポート名、および確定したアドレスの全体と合わせて、初期化要求を通知する。
【００９０】
これを受けて、サーバコンピュータは、実行プログラムの入出力ポートと、実行回路の入出力ポートおよびユーザ端末側の入出力ポートとの相互接続（アドレス指定）を行なう。また、サーバコンピュータは、動作パラメタに従って、実行プログラムの動作をカスタマイズする。
【００９１】
これらの初期化処理を行なうことにより、サーバコンピュータ上の実行プログラムは、サービス提供に必要なソフトウェア機能を動作させるための全ての準備処理が完了する。
【００９２】
実行プログラムの初期化が終わると、サーバコンピュータはＳＷリソースマネージャ４８０に対して初期化完了の通知を行なう。ＳＷリソースマネージャ４８０は、サービスマネージャ４７０に対して、初期化完了を通知する。
【００９３】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、割当ＨＷリソースの初期化要求を通知する。サービス要求時に動作パラメタが付されていた場合には、この動作パラメタの情報もＨＷリソースマネージャ４９０に合わせて通知される。また、構築処理の結果として得られた入出力ポート名と確定したアドレスの全体もＨＷリソースマネージャ４９０に合わせて通知される。
【００９４】
ＨＷリソースマネージャ４９０は、実行回路のロードされたＲＵに対して、動作パラメタ、入出力ポート名、および確定したアドレスの全体と合わせて、初期化要求を通知する。これを受けて、ＲＵは、実行プログラムの入出力ポートと、実行回路の入出力ポートおよびユーザ端末側の入出力ポートとの相互接続（アドレス指定）を行なう。また、ＲＵは、動作パラメタに従って実行回路の動作をカスタマイズする。
【００９５】
これらの初期化処理を行なうことにより、ＲＵ上の実行回路は、サービス提供に必要なハードウェア機能を動作させるための全ての準備処理が完了する。実行回路の初期化が終わると、ＲＵはＨＷリソースマネージャ４９０に対して初期化完了の通知を行なう。ＨＷリソースマネージャ４９０は、サービスマネージャ４７０に対して初期化完了を通知する。
【００９６】
なお、ここで、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による初期化の処理と、ＨＷリソースマネージャ４９０による初期化の処理のどちらが先に実行されてもよく、また同時に実行しても構わない。
【００９７】
（動作始動）
初期化処理により、ユーザ端末と実行プログラムおよび実行回路の入出力ポートとの接続関係が与えられて情報サービスを実行する準備が整う。続いて、サービスマネージャ４７０はサービス提供を開始するための動作始動処理を行なう。
【００９８】
動作開始処理の流れは以下の通りである。
【００９９】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、割当ＳＷリソースの動作始動要求を通知する。これを受けて、ＳＷリソースマネージャ４８０は、サーバコンピュータに対し、動作始動要求を通知する。サーバコンピュータは、実行プログラムの実行を開始した後、ＳＷリソースマネージャ４８０に対して動作始動完了を通知する。ＳＷリソースマネージャ４８０は、サービスマネージャ４７０に対して動作始動完了を通知する。
【０１００】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、割当ＨＷリソースの動作始動要求を通知する。これを受けて、ＨＷリソースマネージャ４９０は、ＲＵに対して動作始動要求を通知する。ＲＵは、実行回路の動作を開始した後、ＨＷリソースマネージャ４９０に対して動作始動完了を通知する。ＨＷリソースマネージャ４９０は、サービスマネージャ４７０に対して動作開始完了を通知する。
【０１０１】
なお、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による動作始動の処理とＨＷリソースマネージャ４９０による動作始動の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
【０１０２】
ソフトウェア機能を提供する実行プログラム、ハードウェア機能を提供する実行回路の両方が動作始動すると、サービスマネージャ４７０はサービス始動をユーザ端末に通知する。この時、ユーザ端末の入出ポートが接続すべき、実行プログラムおよび実行回路の入出力ポートのアドレスも合わせて通知される。これによりユーザ端末が実行プログラムおよび実行回路に接続することが可能となる。
【０１０３】
これまでに説明した「サービスの開始要求」から「動作始動」までの一連の処理が実行されることにより、ユーザ端末が要求した情報サービスがユーザ端末に提供される。
【０１０４】
（サービスの終了要求）
サービスの終了要求は、運用者から終了を要求されたユーザ端末か、情報サービスの所定の処理を実行した実行プログラムまたは実行回路のいずれかによって発せられ、サービスマネージャ４７０に通知される。
【０１０５】
（動作停止）
サービスマネージャ４７０が終了要求を受け付けると、情報サービスを構成している実行プログラムおよび実行回路の動作が停止される。
【０１０６】
動作停止処理の流れは以下の通りである。
【０１０７】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、割当ＳＷリソースの動作停止要求を通知する。これを受けて、ＳＷリソースマネージャ４８０は、サーバコンピュータに対して動作停止要求を通知する。サーバコンピュータは、実行プログラムの動作を停止させた後、ＳＷリソースマネージャ４８０に対して、動作停止完了を通知する。ＳＷリソースマネージャ４８０は、サービスマネージャ４７０に対して動作停止完了を通知する。
【０１０８】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、割当ＨＷリソースの動作始動要求を通知する。これを受けて、ＨＷリソースマネージャ４９０は、ＲＵに対して動作停止要求を通知する。ＲＵは、実行回路の動作を停止させた後、ＨＷリソースマネージャ４９０に対して動作停止完了を通知する。ＨＷリソースマネージャ４９０は、サービスマネージャ４７０に対して動作停止完了を通知する。
【０１０９】
なお、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による動作停止の処理とＨＷリソースマネージャ４９０による動作停止の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
【０１１０】
（終了化）
上述した動作停止処理により実行プログラムおよび実行回路が動作を停止すると、続いて、サービスマネージャ４７０は、実行プログラムおよび実行回路に用いられていた計算資源を初期化処理が行なわれる前の状態に戻す終了化を行う。
【０１１１】
終了化の流れは以下の通りである。
【０１１２】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、割当ＳＷリソースの終了化要求を通知する。ＳＷリソースマネージャ４８０は、実行プログラムのあるサーバコンピュータに対して終了化要求を通知する。これを受けて、サーバコンピュータは、実行プログラムの入出力ポートの接続先アドレスと、カスタマイズされた動作内容を、初期化処理を行なう前のデフォルト値に戻す。実行プログラムの終了化が終わると、サーバコンピュータはＳＷリソースマネージャ４８０に対して、終了化完了の通知を行なう。ＳＷリソースマネージャ４８０は、サービスマネージャ４７０に対して、終了化完了を通知する。
【０１１３】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、割当ＨＷリソースの終了化要求を通知する。
【０１１４】
ＨＷリソースマネージャ４９０は、実行回路のあるＲＵに対して、終了化要求を通知する。これを受けて、ＲＵは、実行回路の入出力ポートの接続先アドレスと、カスタマイズされた動作内容を、初期化処理を行う前のデフォルト値に戻す。実行回路の終了化が終わると、ＲＵはＨＷリソースマネージャ４９０に対して、終了化完了の通知を行なう。ＨＷリソースマネージャ４９０は、サービスマネージャ４７０に対して、終了化完了を通知する。
【０１１５】
なお、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による初期化の処理とＨＷリソースマネージャ４９０による初期化の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
【０１１６】
また、ここに示した終了化処理は、実行プログラムのアンロードや実行回路の消去がすぐに行なわれるような場合には省略してもよい。
【０１１７】
（解体・解約）
上述した動作停止処理および終了化処理により、割当ＳＷリソースと割当ＨＷリソースの両方が、その割当を解除することが可能な状況となる。それに続いて、実体化されていた計算資源を削除する解体処理と、その計算資源のユーザへの割当を削除する解約処理を行ない、計算資源を他のサービスおよび他のユーザに割当可能な資源に還す処理を行なう。
【０１１８】
解体処理および解約処理の流れは以下の通りである。
【０１１９】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０に対して、割当ＳＷリソース情報ＩＤと共に、解体・解約要求を通知する。ＳＷリソースマネージャ４８０は、解体・解約要求の通知を受けると、自身が管理している割当情報を参照し、サーバコンピュータに対して、実行プログラムのアンロードを要求し、構築したソフトウェア機能の解体を実施させる。さらにＳＷリソースマネージャ４８０は、今回のサービス提供における特定ユーザに対するＳＷリソース割当の管理情報を削除する。また、ＳＷリソースマネージャ４８０は、実行プログラムのアンロードと割当リソースの開放を確認し、解体・解約の完了をサービスマネージャ４７０に通知する。
【０１２０】
また、サービスマネージャ４７０は、ＨＷリソースマネージャ４９０に対して、割当ＨＷリソース情報ＩＤと共に、解体・解約要求を通知する。ＨＷリソースマネージャ４９０は、解体・解約要求の通知を受けると、自身が管理している割当情報を参照し、ＲＵに対して、実行回路の削除を要求し、構築したハードウェア機能の解体を実施させる。さらにＨＷリソースマネージャ４９０は、今回のサービス提供における特定ユーザに対するＨＷリソース割当の管理情報を削除する。ＨＷリソースマネージャ４９０は、実行回路の削除と割当リソースの開放を確認し、解体・解約の完了をサービスマネージャ４７０に通知する。
【０１２１】
サービスマネージャ４７０は、割当ＳＷリソースが解体・解約された旨の通知と割当ＨＷリソースが解体・解約された旨の通知の両方を受けると、今回のサービスの提供のために自身が管理していた情報を削除し、サービスの要求処理から始まった情報サービスの一連の処理を終端させる。
【０１２２】
また、このときに、サービスマネージャ４７０がユーザ端末に対してサービス終了を通知することにしてもよい。ただし、ユーザ端末に対してサービス終了を通知するタイミングは、動作停止が完了したとき、あるいは終了化処理が完了したときにしてもよい。
【０１２３】
なお、サービスマネージャ４７０からみて、ＳＷリソースマネージャ４８０による解体・解約の処理とＨＷリソースマネージャ４９０による解体・解約の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
【０１２４】
なお、本実施形態では説明を簡潔にするために、１つのユーザ端末から要求された１つの情報サービスの実行に着目した説明をしてきたが、実際には複数のユーザ端末から要求された情報サービスが同時に実行されるのが通常である。その場合、複数あるサーバコンピュータ４４１〜４４３やＲＵ４５１〜４５３を同時に複数のユーザの情報サービスに割り当てることができる。
【０１２５】
例えば、複数のユーザ端末の情報サービスの複数の実行回路が複数のＲＵ上にそれぞれ構築されてもよく、また１つのユーザ端末の１つの情報サービスの１つの実行回路が複数のＲＵを跨いで構築されてもよい。
【０１２６】
以上説明したように、本実施形態のシステムは、ハードウェアのアクセラレータ（ＲＵ４５１〜４５３）をネットワーク上においてサーバコンピュータ４４１〜４４３と並列に配置しているので、ソフトウェアの処理とハードウェアの処理のデータ入出力を別個独立に行うことができ、ハードウェアのアクセラレータによる処理の実行においてサーバコンピュータ４４１〜４４３の構成がボトルネックになることが無い。
【０１２７】
また、ＳＷリソースマネージャ４８０はソフトウェアの計算資源であるサーバコンピュータ４４１〜４４３を個々に管理し、ＨＷリソースマネージャ４９０はハードウェアの計算資源であるＲＵ４５１〜４５３を個々に管理し、ユーザからの要求に応じてオンデマンドで計算資源をユーザおよび情報サービスに割り当てて実体化するので、予め過剰な計算資源を用意しておく必要が無く、有限な計算資源を要求に応じて有効に活用することができる。
【０１２８】
また、再構成可能なハードウェアにより、要求に応じて実行回路を構築するため、様々な情報サービスが混在しても個々のサービスに専用回路が不要となるので、統計多重効果が期待でき、用意しておくべきハードウェアの計算資源を削減することができる。
【０１２９】
また、サービスマネージャ４７０が複数ユーザのそれぞれに対する情報サービスの提供を管理し、個々の情報サービスの状況に応じてＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０を制御するので、複数のユーザに対して並行して個々に情報サービスを提供することができる。システムを複数のユーザおよび複数の情報サービスが共有する場合にも、ある情報サービスのためのリコンフィグ処理のためにシステム全体を停止させずに他の情報サービスを継続することができる。
【０１３０】
また、本実施形態では、サービスマネージャ４７０がサービス用ネットワーク４１２とオペレーション用ネットワーク４１３の両方に接続されている。そして、サービスマネージャ４７０はサービス用ネットワーク４１２によってユーザ端末と通信し、オペレーション用ネットワーク４１３によってＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０と通信する。そのため、サービス開始要求のようなユーザ端末４２１〜４２３とサービスマネージャ４７０の通信のネットワーク負荷によるＳＷリソースおよびＨＷリソースの通信への影響が低減され、かつ、サービスマネージャ４７０とＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０との通信のネットワーク負荷によるＳＷリソースおよびＨＷリソースの通信への影響が低減される。
【０１３１】
また、専用機能などのための拡張ボードをサーバコンピュータに搭載する構成では拡張ボードを増設するためにサーバコンピュータを増設する必要があったが、本実施形態では、ＲＵ４５１〜４５３がサーバコンピュータ４４１〜４４３と並列に配置されているので、ハードウェアとソフトウェアのそれぞれの増減を独立に行うことができ、システム構成の自由度が向上する。
【０１３２】
（第１の実施例）
第１の実施例による情報サービスシステムは、図４に示したものと同様の構成を有している。図４に示されているサーバコンピュータ４４１〜４４３と、リコンフィグユニット４５１〜４５３は、実際に情報サービスの計算処理を実施する計算資源である。この計算資源は、複数のユーザ、複数のサービスで共有される。
【０１３３】
図５は、計算資源管理における状態の遷移を示す図である。本実施例では、計算資源の状態を図５に示すように場合わけすることにより、計算資源の管理を容易にしている。
【０１３４】
「未使用」は、まだその計算資源がどのユーザにも割当てられておらず、プログラムのロードや、回路の展開が為されていない状態を指す。「予約済」は、情報サービスを構成するために、その計算資源が特定のユーザに割当てられているが、この時点では、プログラムのロードや、回路の展開が為されていない状態を指す。「構築済」は、情報サービスを構成するために、その計算資源が特定のユーザに割当てられており、かつ、プログラムのロードや、回路の展開が為された状態を指す。「動作待機」は、プログラムや回路に、個別の動作パラメタが与えられ、実際に情報提供サービスを開始することが可能な待機状態を指す。「動作実行」は、実際にプログラムや回路が情報サービス提供に利用されていて、計算資源が動作状態にあることを指す。
【０１３５】
以上のような計算資源の状態遷移の過程について図６〜１４を用いて以下に説明する。
【０１３６】
図６は、サービス開始要求および検索の処理を示すシーケンス図である。
【０１３７】
図６を参照すると、ユーザ端末４２１より、サービスマネージャ４７０に対して、情報サービスの要求が行なわれている。この時、ユーザ端末４２１からサービスマネージャ４７０に対して、情報サービスＩＤだけでなく、動作パラメタも一緒に通知されることもある。サービスマネージャ４７０は、情報サービスを構成するのに必要な、ソフトウェア機能を実現する雛形プログラムの識別情報である雛形プログラムＩＤと、ハードウェア機能を実現する雛形回路の識別情報である雛形回路ＩＤを、サービス構成情報ＤＢ４７１から取得する。
【０１３８】
図７は、計算資源の予約処理を示すシーケンス図である。
【０１３９】
まずソフトウェア機能に関して、サービスマネージャ４７０は、雛形プログラムＩＤをＳＷリソースマネージャ４８０に送る。これを元に、ＳＷリソースマネージャ４８０は、当該プログラムの負荷情報など、諸元情報をプログラム情報ＤＢ４８１より取得する。続いてＳＷリソースマネージャ４８０は、当該プログラムを追加動作させることが可能なサーバコンピュータをサーバ稼働状態ＤＢ４８２に問い合わせ、候補一覧を得る。ＳＷリソースマネージャ４８０は、候補一覧のなかから、当該プログラムを動作させるサーバコンピュータを一つ選び、サーバ稼働状態ＤＢ４８２に資源の予約を要求する。なお、この時、候補一覧からサーバコンピュータを選ぶ方法としては、その時点で最も負荷の小さいサーバに割当てるという方法や、同じ雛形プログラムが展開されているサーバに対して優先的に割当てるという方法などが挙げられる。
【０１４０】
以上、ソフトウェア機能に関する予約について示したが、ハードウェア機能に関する予約に関しても同様に行なわれる。ハードウェア機能に関しては、サービスマネージャ４７０は、雛形回路ＩＤをＨＷリソースマネージャ４９０に送る。これを元に、ＨＷリソースマネージャ４９０は、当該回路の負荷情報など、諸元情報を回路構成情報ＤＢ４９１より取得する。続いてＨＷリソースマネージャ４９０は、当該回路を追加動作させることが可能なＲＵをＲＵ稼働状態ＤＢ４９２に問い合わせ、候補一覧を得る。ＨＷリソースマネージャ４９０は、候補一覧のなかから、当該回路を動作させるＲＵを一つ選び、ＲＵ稼働状態ＤＢ４９２に資源の予約を要求する。
【０１４１】
図８は、構築処理を示すシーケンス図である。
【０１４２】
図８では、サービスマネージャ４７０が、ＳＷリソースマネージャ４８０とＨＷリソースマネージャ４９０に指示を送り、サーバコンピュータに実行プログラムを、リコンフィグユニットに実行回路を構築させる。これにより、実行プログラムおよび実行回路が具体的に計算資源上に実体化するため、実行プログラムおよび実行回路の各々が利用する通信ポートのアドレスが確定され、このアドレス情報がサービスマネージャ４７０に通知される。
【０１４３】
図９は、実行プログラムおよび実行回路の初期化処理を示すシーケンス図である。
【０１４４】
初期化処理において、サービスマネージャ４７０は、まず、サービス要求時にユーザ端末４２１から示されていた動作パラメタをプログラムや回路に反映することによりプログラムや回路の動作変数等を設定する。また、構築処理で明らかとなった通信ポートのアドレス情報をプログラムおよび回路のそれぞれに相互に設定することにより、ユーザ端末と実行プログラムと実行回路の間の通信経路を確立し、動作の準備を整える。
【０１４５】
図１０は、実行プログラムおよび実行回路の動作を開始させ、情報サービスの提供を開始させる動作始動処理を示すシーケンス図である。
【０１４６】
サービスマネージャ４７０がＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０に動作始動を要求し、それを受けたＳＷリソースマネージャ４８０とＨＷリソースマネージャ４９０がそれぞれサーバコンピュータの実行プログラムとＲＵの実行回路を始動させる。
【０１４７】
図１１は、ユーザ端末４２１からサービスマネージャ４７０にサービス終了が要求される様子を示すシーケンス図である。ここではユーザ端末４２１からサービスマネージャ４７０にサービス終了が要求されるものとしている。
【０１４８】
図１２は、動作停止処理を示すシーケンス図である。図１１に示したようにサービス終了要求を受けたサービスマネージャ４７０は、ＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０に動作停止を要求する。動作停止要求を受けたＳＷリソースマネージャ４８０はサーバコンピュータ上の実行プログラムの動作を停止し、同じく動作停止要求を受けたＨＷリソースマネージャ４９０はＲＵ上の実行回路の動作を停止する。
【０１４９】
図１３は、終了化処理を示すシーケンス図である。
【０１５０】
サービスマネージャ４７０がＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０に終了化を要求し、それを受けたＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０が、上述した初期化処理でプログラムや回路に適用されたカスタマイズおよび設定された通信経路を解除し、プログラムおよび回路を初期化処理前の「構築済」の状態に戻す。
【０１５１】
図１４は、計算資源の解体および解約の処理を示すシーケンス図である。
【０１５２】
サービスマネージャ４７０は、ＳＷリソースマネージャ４８０にＳＷリソースの解体・解約を要求し、ＨＷリソースマネージャ４９０にＨＷリソースの解体・解約を要求する。それを受けたＳＷリソースマネージャ４８０は、サーバコンピュータ上のプログラムをアンロードするとともに、そのプログラムへのユーザ割り当てを削除する。同様に解体・解約の要求を受けたＨＷリソースマネージャ４９０は、ＲＵ上の回路を解体するとともに、その回路へのユーザ割り当てを削除する。これらによってＳＷリソースおよびＨＷリソースは予約がされていない状態に戻る。
【０１５３】
図１５は、情報サービスシステムが提供する情報サービスをシステムに追加あるいは削除するメンテナンス処理を示すシーケンス図である。この情報サービスを追加する処理は、図６〜１４に示した情報サービスの提供の前に予め行われる処理である。
【０１５４】
情報サービスの追加あるいは削除の処理には、雛形回路の追加あるいは削除の処理と、雛形プログラムの追加あるいは削除の処理と、情報サービスの追加あるいは削除の処理とが含まれる。
【０１５５】
雛形回路の追加あるいは削除の処理においては、オペレーション用端末４３０が、運用者の操作に従って回路構成情報ＤＢ４９１に新たな雛形回路の諸元情報を追加したり、あるいは回路構成情報ＤＢ４９１から雛形回路の諸元情報を削除したりする。
【０１５６】
雛形プログラムの追加あるいは削除の処理においては、オペレーション用端末４３０が、運用者の操作に従ってプログラム情報ＤＢ４８１に新たな雛形プログラムの諸元情報を追加したり、あるいはプログラム情報ＤＢ４８１から雛形プログラムの諸元情報を削除したりする。
【０１５７】
情報サービスの追加あるいは削除の処理においては、オペレーション用端末４３０が、運用者の操作に従ってサービス構成情報ＤＢ４７１に新たなサービスの情報を追加したり、あるいはサービス構成情報ＤＢ４７１からサービスの情報を削除したりする。ここで追加されたり削除されたりするサービスの情報には、情報サービスの識別情報であるサービスＩＤと、その情報サービスに用いられる雛形プログラムおよび雛形回路の識別情報である雛形プログラムＩＤおよび雛形回路ＩＤとを対応付ける対応付け情報が含まれている。
【０１５８】
続いて、図１６〜２０を用いて、サービスマネージャ４７０、ＳＷリソースマネージャ４８０、ＨＷリソースマネージャ４９０、サービス構成情報ＤＢ４７１、プログラム情報ＤＢ４８１、回路構成情報ＤＢ４９１が保持あるいは利用するデータの例について説明する。
【０１５９】
図１６は、ある情報サービスにおけるユーザ端末とソフトウェア機能とハードウェア機能との接続構成の一例を示す図である。図１６には、情報サービスＡ２００を実現する構成が示されている。情報サービスＡ２００は、ユーザ端末Ｕ、ソフト機能Ｓ０１、ハード機能Ｈ２１、ハード機能Ｈ２２により実現されるものとする。
【０１６０】
図１６の例では、ユーザ端末Ｕでは、通信ポートＰ１がハードウェア機能Ｈ２１の通信ポートＰ１と接続され、通信ポートＰ２がハードウェア機能Ｈ２２の通信ポートＰ２と接続され、通信ポートＰ３がソフトウェア機能Ｓ０１の通信ポートＰ１と接続されている。また、ソフトウェア機能Ｓ０１の通信ポートＰ２はハードウェア機能Ｈ２２の通信ポートＰ３接続されている。また、ハードウェア機能Ｈ２１の通信ポートＰ２はハードウェア機能Ｈ２２の通信ポートＰ１と接続されている。
【０１６１】
この相互接続による通信を利用してユーザ端末Ｕとソフトウェア機能Ｓ０１とハードウェア機能Ｈ２１、２２が連携動作することにより、情報サービスＡ２００が実現される。
【０１６２】
図１７は、サービス構成情報ＤＢ４７１、プログラム情報ＤＢ４８１、回路構成情報ＤＢ４９１が管理する情報を示す図である。サービス構成情報ＤＢ４７１には、情報サービスＡ２００には、ソフトウェア機能Ｓ０１、ハードウェア機能Ｈ２１、Ｈ２２が構成要素となることが記憶されている。またサービス構成情報ＤＢ４７１には、更に、それぞれの通信ポートをどのように接続するかというポート接続関係定義の情報が含まれている。
【０１６３】
また、プログラム情報ＤＢ４８１には、ソフトウェア機能Ｓ０１の諸元情報が記憶されており、その諸元情報にプログラムの実体ファイル、想定される負荷、入出力ポートが含まれている。
【０１６４】
また、回路構成情報ＤＢ４９１には、ハードウェア機能Ｈ２１、Ｈ２２の諸元情報が記憶されており、その諸元情報には回路構成用の実体ファイル、想定される負荷、入出力ポートが含まれている。
【０１６５】
なお、ソフトウェア機能の負荷として、ここではメモリ使用量を例として挙げているが、本発明がこれに限定されるものではない。例えば、メモリ使用量の他にＣＰＵ負荷など他の要素を組み合わせたものであっても構わない。同様に、ハードウェア機能の負荷として、ここでは領域面積を例として挙げているが、本発明がこれに限定されるものではない。例えば、領域面積の他に消費電力など他の要素を組み合わせたものであっても構わない。
【０１６６】
図１８は、サービスマネージャ４７０、ＳＷリソースマネージャ４８０、ＨＷリソースマネージャ４９０が管理する情報の一例を示す図である。図１８を参照すると、図５に示した各処理に伴って、サービスマネージャ４７０、ＳＷリソースマネージャ４８０、およびＨＷリソースマネージャ４９０のそれぞれの情報の値が確定したり、削除されたりする様子が示されている。
【０１６７】
例えば、サービス開始要求の処理によって、サービスマネージャ４７０が管理する情報に新たな情報サービスのエントリが追加される。その状態では、その情報サービスに対応する情報がＳＷリソースマネージャ４８０やＨＷリソースマネージャ４９０には存在しない。処理が進んで予約の処理が行われると、ＳＷリソースマネージャ４８０やＨＷリソースマネージャ４９０にエントリが追加される。
【０１６８】
図１９は、情報サービスシステムのＳＷリソースおよびＨＷリソースに情報サービスのプログラムおよび回路が展開された様子を示す図である。図１９の例では、ＳＷリソースであるサーバコンピュータが３台、ＨＷリソースであるリコンフィグユニットが３台示されている。
【０１６９】
この例では、プログラムｘｐｇ０１、ｘｐｇ０２がサーバコンピュータｓｖ０１に展開され、実体化されている。また、プログラムｘｐｇ０３、ｘｐｇ０４が展開され、実体化されている。
【０１７０】
また、回路ｘｃｔ０１、ｘｃｔ０２がリコンフィグユニットｒｕ０１に展開され、実体化されている。また、回路ｘｃｔ０３がリコンフィグユニットｒｕ０２に展開され、実体化されている。また、回路ｘｃｔ０４がリコンフィグユニットｒｕ０３に展開され、実体化されている。
【０１７１】
リコンフィグユニットｒｕ０１〜ｒｕ０３はそれぞれ内部がＡ、Ｂ、Ｃ、Ｄの４区画に分かれている。回路は複数の区画に跨って構成することができる。例えば、回路ｘｃｔ０２は、リコンフィグユニットｒｕ０１の区画Ａ、Ｂに跨って構成されている。
【０１７２】
図２０は、図１９に示したようにプログラムと回路が展開されたシステムにおけるサーバ稼働状態ＤＢ４８２とＲＵ稼働状態ＤＢ４９２の管理情報を示す図である。
【０１７３】
サーバ稼働状態ＤＢ４８２には、各サーバコンピュータに関する管理情報であるサーバコンピュータ管理情報と、各実行プログラムに関する管理情報である実行プログラム管理情報とが保持されている。
【０１７４】
ＲＵ稼働状態ＤＢ４９２には、各ＲＵに関する管理情報であるリコンフィグユニット管理情報と、各実行回路に関する管理情報である実行回路管理情報とが保持されている。
【０１７５】
これらの管理情報はサーバコンピュータ、リコンフィグユニット、実行プログラム、および実行回路の即時的な稼働状態を示すものであり、実際のサーバコンピュータおよび実際のリコンフィグユニットより一定時間おきに収集された実測値で更新される。
【０１７６】
（第２の実施例）
上述した実施形態のシステムでは有限な計算資源を複数ユーザで共有利用している。そのため一時的に大勢のユーザがシステムにアクセスしてくると計算資源が不足し、計算資源が割り当てられないユーザが出てくる。一般的な手法を用いた場合、早い者勝ちで計算資源が割り当てられることになる。しかし、早い者勝ちで計算資源を割り当てた場合、優先度の高いユーザや優先度の高い情報サービスに計算資源が割り当てられないということが起こる。
【０１７７】
それを回避するために、第２の実施例では、情報サービスの動作パラメタに優先度を設定し、その優先度に基づいて、ＳＷリソースおよびＨＷリソースといった計算資源を割り当てる。一例として、ここでは、サーバコンピュータまたはリコンフィグユニットに空き資源が存在しない状況において、新たな情報サービスの要求が発生した場合、既に動作している情報サービスのうち新たな情報サービスよりも優先度が低いサービスを強制終了して計算資源を回収し、新たに要求のあった情報サービスに割当てることにする。
【０１７８】
サービスを開始しようとするとき、ユーザ端末４２１〜４２３は、サービスマネージャ４７０に送信するサービス開始要求内の動作パラメタに優先度を含める。具体的には、図６のサービス開始要求に含まれている動作パラメタに優先度の値を設定することにすればよい。
【０１７９】
サービス開始要求を受けたサービスマネージャ４７０は、ＳＷリソースマネージャ４８０とＨＷリソースマネージャ４９０に計算資源の割り当てを要求するときに、この優先度も通知する。具体的には、図７のＳＷリソースの仮予約要求およびＨＷリソースの仮予約要求に優先度の値を設定することにすればよい。
【０１８０】
ＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０は、通知された優先度に基づく判断で計算資源の割り当てを決定する。
【０１８１】
一例として、優先度が高い方から順に、１、２、３、４、５を表現されるものとする。サーバコンピュータとリコンフィグユニットの両方あるいは一方に空き資源が存在しない状況において、新たにサービス要求が優先度３で発生した場合、既に動作している優先度５のサービスを、システムにより強制終了して計算資源を回収し、新たなサービスに割当てる。
【０１８２】
そのために、ＳＷリソースマネージャ４８０は、図２０に示したサーバ稼働状態ＤＢ４８２の実行プログラム管理情報に、更に実行プログラム毎に優先度を記録しておく。そして、新たに要求された情報サービスに計算資源を割り当てるとき、ＳＷリソースマネージャ４８０は、新たな情報サービスの優先度と実行プログラム管理情報に記録されている優先度を比較し、新たな情報サービスよりも優先度の低い情報サービスを強制終了する。情報サービスの強制終了を行うときにはＳＷリソースマネージャ４８０がサービスマネージャ４７０に対してサービスの終了要求を送り、サービスマネージャ４７０がＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０に、動作停止、終了化、計算資源の解体・解約を要求する。
【０１８３】
同様に、ＨＷリソースマネージャ４９０は、図２０に示したＲＵ稼働状態ＤＢ４９２の実行回路管理情報に、更に実行回路毎に優先度を記録しておく。そして、新たに要求された情報サービスに計算資源を割り当てるとき、ＨＷリソースマネージャ４９０は、新たな情報サービスの優先度と実行回路管理情報に記録されている優先度を比較し、新たな情報サービスよりも優先度の低い情報サービスを強制終了する。情報サービスの強制終了を行うときにはＨＷリソースマネージャ４９０がサービスマネージャ４７０に対してサービスの終了要求を送り、サービスマネージャ４７０がＳＷリソースマネージャ４８０およびＨＷリソースマネージャ４９０に、動作停止、終了化、計算資源の解体・解約を要求する。
【０１８４】
以上の動作により、第の実施例では複数のユーザがシステムを共有利用する場合でも優先度の高いサービスを優先的に実行することができる。
【０１８５】
（第３の実施例）
図４には、サーバコンピュータ４４１〜４４３とリコンフィグユニット４５１〜４５３は直接接続されていない構成のシステムを例示した。しかし、本発明はこれに限定されるものではない。他の例としてサーバコンピュータとリコンフィグユニットの間を直接接続し、実行プログラムと実行回路の間の信号をサーバコンピュータとリコンフィグユニットで直接送受信することにしてもよい。
【０１８６】
図２１は、第３の実施例による情報サービスシステムの構成を示すブロック図である。図２１を参照すると、第３の実施例によるシステムは、サーバコンピュータ４４１とリコンフィグユニット４５１が接続され、サーバコンピュータ４４２とリコンフィグユニット４５２が接続され、サーバコンピュータ４４３とリコンフィグユニット４５３が接続されている点で図４のシステムと異なる。これらの接続は、サービス用ネットワーク４１２やオペレーション用ネットワーク４１３から分離された専用バスで構成されている。
【０１８７】
サーバコンピュータ上に構築された実行プログラムと、そのサーバコンピュータと直接接続されたリコンフィグユニット上に構築された実行回路の間では専用バスでデータが送受信される。ただし、リコンフィグユニット４５１〜４５３は、図４のものと同様、サービス用ネットワーク４１２にも接続されており、ユーザ端末４２１〜４２３、他のリコンフィグユニット、直接接続されていないサーバコンピュータとの間では、直接接続されたサーバコンピュータに依存せずにデータの入出力が可能である。
【０１８８】
更に本実施例では、リコンフィグユニット４５１〜４５３は、サービス用ネットワーク４１２に対して複数のネットワークインタフェースを有し、内部に複数の実行回路を構築する場合には実行回路毎に独立したネットワークインタフェースを用いる。これにより、データを送受信するときに実行回路間で生じるパケットのコリジョンを低減することができる。そして、特にストリーム処理を円滑化し、ストリーム処理を伴う情報サービスの品質を向上させることができる。
【符号の説明】
【０１８９】
４１０    通信ネットワーク
４１１    ネットワークスイッチ
４１２    サービス用ネットワーク
４１３    オペレーション用ネットワーク
４２１    ユーザ端末
４３０    オペレーション用端末
４４１〜４４３    サーバコンピュータ
４５１〜４５３    リコンフィグユニット
４７０    サービスマネージャ
４７１    サービス構成情報データベース
４８０    ＳＷリソースマネージャ
４８１    プログラム情報データベース
４８２    サーバ稼働状態データベース
４９０    ハードウェアリソースマネージャ
４９１    回路構成情報データベース
４９２    リコンフィグユニット稼働状態データベース
【図１】
0005420477.tif 000002
【図２】
0005420477.tif 000003
【図３】
0005420477.tif 000004
【図４】
0005420477.tif 000005
【図５】
0005420477.tif 000006
【図６】
0005420477.tif 000007
【図７】
0005420477.tif 000008
【図８】
0005420477.tif 000009
【図９】
0005420477.tif 000010
【図１０】
0005420477.tif 000011
【図１１】
0005420477.tif 000012
【図１２】
0005420477.tif 000013
【図１３】
0005420477.tif 000014
【図１４】
0005420477.tif 000015
【図１５】
0005420477.tif 000016
【図１６】
0005420477.tif 000017
【図１７】
0005420477.tif 000018
【図１８】
0005420477.tif 000019
【図１９】
0005420477.tif 000020
【図２０】
0005420477.tif 000021
【図２１】
0005420477.tif 000022