本実施形態では、一般的なサーバコンピュータと、リコンフィギャラブルデバイスを用いたハードウェアアクセラレータを、それぞれ複数組み合わせてデータセンタに適用する新たな手法を提案する。特に、このデータセンタの計算処理能力は、複数のユーザに対し、各ユーザの要求に応じた異なるアプリケーションを同時に提供することができる。具体的な適用分野の例としては、音声や動画などのメディア情報処理、信号の暗号化および復号化を含むストリーミング処理など、高速での処理や実時間性が要求される情報サービスが挙げられる。
本発明の実施形態について図面を参照して詳細に説明する。
以下の説明において、リコンフィギュアラブルなデバイスを搭載し、ネットワークを介したデータ通信が可能なハードウェアアクセラレータを、リコンフィグユニット(RU(Reconfigurable Unit))と呼ぶこととする。
RUは、ネットワークを介して外部から回路構成情報を与えることにより、内部のデバイスの回路構成を変更可能である。RUの回路構成を変更することにより、提供する処理機能を変更することができる。なお、このようなRUそれ自体は市井技術として存在しているものである。
図4は、本発明の実施形態による情報サービスシステムの構成を示すブロック図である。図4を参照すると、ユーザ端末421〜423が通信ネットワーク410に接続されている。また通信ネットワーク410にはネットワークスイッチ411が接続されている。ネットワークスイッチ411には更にサービス用ネットワーク412によって、サービスマネージャ470、サーバコンピュータ441〜443、およびリコンフィグユニット(RU)451〜453が接続されている。サーバコンピュータ443〜443は、更にオペレーション用ネットワーク413によって、オペレーション用端末430、サービス構成情報データベース(以下、サービス構成情報DB)471、ソフトウェアリソースマネージャ(以下、SWリソースマネージャ)480、プログラム情報データベース(以下、プログラム情報DB)481、サーバ稼働状態データベース(以下、サーバ稼働状態DB)482、ハードウェアリソースマネージャ(以下、HWリソースマネージャ)490、回路構成情報データベース(以下、回路構成情報DB)491、およびリコンフィグユニット稼働状態データベース(以下、リコンフィグユニット稼働状態DB)492と接続されている。
RU451〜453は、上述したようなリコンフィギャラブルなデバイスを搭載し、ネットワークを介したデータ通信が可能なハードウェアアクセラレータである。RU451〜453は、ハードウェアリソースマネージャ490から与えられる回路構成の情報を基に内部に実行回路を展開し、その実行回路で処理を実行する。実行回路はRUの内部に閉じて展開されてもよく、あるいは1つの実行回路が複数のRUに跨って展開されてもよい。RU451〜453は直接接続する配線で相互に接続されており、1つの実行回路が複数のRUに跨っている場合、実行回路内でRU間をわたる信号はこの配線で伝達される。
ユーザ端末421〜423は、それぞれ異なるユーザが所有する端末装置であり、通信ネットワーク410、ネットワークスイッチ411、およびサービス用ネットワーク412を介してサーバコンピュータ441〜443およびリコンフィグユニット451〜453とデータ通信を行なうことができる。
オペレーション用端末430は、オペレーション用ネットワーク413に接続する全てのサーバコンピュータ441〜443およびリコンフィグユニット451〜453とデータ通信を行なうことができ、それら各々の動作状況を確認することができる。
以上に示した各構成要素は個々に既存の技術や製品として存在するものである。
続いて、本実施形態に特徴的な構成要素について述べる。
SWリソースマネージャ480は、サーバコンピュータ441〜443で提供するソフトウェア処理のための計算資源を管理するものとして設けられている。
プログラム情報DB481は、実際にサーバコンピュータ441〜443上で動作させる個々のプログラムの実行ファイルおよびそのプログラムを実行する際にサーバに掛かる負荷の負荷見積情報を記憶するデータベースとして設けられている。
サーバ稼働状態DB482は、サーバコンピュータ441〜443が、現在どのプログラムを実行しており、どのような負荷状況にあるかを記憶するデータベースとして設けられている。
HWリソースマネージャ490は、リコンフィグユニット451〜453で提供するハードウェア処理のための計算資源を管理するものとして設けられている。
回路構成情報DB491は、実際にリコンフィグユニット451〜453上に展開させる個々の回路の回路構成情報およびその回路を動作させる際にリコンフィグユニット451〜453に掛かる負荷の負荷見積情報を記憶するものとして設けられている。
リコンフィグユニット稼働状態DB492は、リコンフィグユニット451〜453が、現在どの回路を展開しており、どのような負荷状況にあるかを記憶するデータベースとして設けられている。
サービスマネージャ470は、各ユーザについての全体として情報サービスの実施を管理するものとして設けられている。サービスマネージャ470は、複数のユーザに対する情報サービスの提供について、それぞれの状態を個別に管理し、制御する。
サービス構成情報DB471は、個々の情報サービスと、それを実施するために必要となるソフトウェア機能およびハードウェア機能との対応関係を記憶するデータベースとして設けられている。
上述した各構成要素が組み合わされて、どのように機能するかについて以下に詳述する。
ユーザ向けの情報サービスは、ソフトウェアだけで実現できるサービス、ハードウェアだけで実現できるサービス、ソフトウェアとハードウェアを組み合わせて実現できるサービスの三種類に大別できる。ここではソフトウェアとハードウェアを組み合わせて実現する情報サービスを例として説明を行なう。
ここでは情報サービスの処理を以下のように分類する。
・ サービスの登録と削除
・ サービスの開始要求
・ サービス構成要素の検索
・ 予約
・ 構築
・ 初期化
・ 動作始動
・ サービスの終了要求
・ 動作停止
・ 終了化
・ 解体・解約
以下、それぞれの処理について順次説明する。
(サービスの登録と削除)
ソフトウェアSとハードウェアHの組み合わせによって実現される情報サービスAがある場合、運用者はオペレーション用端末430を操作し、情報サービスAに関して以下の各種登録処理を実施する。
プログラム情報DB481には以下の情報を追加登録する。
・ 雛形プログラムSのID
・ 雛形プログラムSのプログラム実体ファイル
・ 雛形プログラムSをサーバコンピュータで実行する時に生じる負荷情報
・ 雛形プログラムSの外部入出力ポート情報
回路構成情報DB491には以下の情報を追加登録する。
・ 雛形回路HのID
・ 雛形回路Hの回路構成情報実体
・ 雛形回路Hをリコンフィグユニットへ展開する時に生じる負荷情報
・ 雛形回路Hの入出力ポート情報
サービス構成情報DB471には以下の情報を追加登録する。
・ 情報サービスAのID
・ 情報サービスAを構成する雛形プログラムID
・ 情報サービスAを構成する雛形回路ID
・ ユーザ端末、雛形プログラム、雛形回路の各ポートの接続関係
なお、新しい情報サービスの情報を追加登録する際に、その情報サービスで用いられる雛形プログラムに相当するプログラムがプログラム情報DB481に既に登録されている場合、その登録されている情報が利用できる。そのため、運用者は新たな雛形プログラムを登録する必要はない。それと同様に、情報サービスで用いられる雛形回路に相当する回路が回路構成情報DB491に既に登録されている場合、その登録されている情報が利用できるため、新たな雛形回路を登録する必要は無い。
また、削除処理は、サービス構成情報DB471、プログラム情報DB481、回路構成情報DB491より、上記に示した項目を削除することによって行なわれる。
(サービスの開始要求)
サービスの開始要求は、ユーザ端末421〜423が、要求するサービスのサービスIDをサービスマネージャ470に送信することによって行なわれる。このとき、サービス動作をカスタマイズするための動作パラメタが合わせて通知される。
(サービス構成要素の検索)
サービスマネージャ470はユーザ端末421〜423が要求するサービスIDを受信し、情報サービスを提供するために必要なソフトウェア機能とハードウェア機能をサービス構成情報DBより検索する。この検索の結果、サービスマネージャ470は、サービス提供に必要なソフトウェア機能としての雛形プロラムIDと、同じくサービス提供に必要なハードウェア機能としての雛形回路IDを取得する。
(予約)
続いてサービスマネージャ470は、プログラムを展開して実行させることが可能なサーバコンピュータ、および、回路を展開して実行させることが可能なリコンフィグユニット(RU)を探し出し、それぞれの計算資源を予約する。
計算資源の予約の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、雛形プログラムIDを通知し、このプログラムを実行することが可能な計算資源の割当を要求する。
SWリソースマネージャ480は、雛形プログラムIDを検索キーとして、プログラム情報DB481から雛形プログラムの実行用ファイルの本体、実行によって発生する負荷(発生負荷)、利用される入出力ポート等を含む、実行することになるプログラムの緒元情報を取得する。
次にSWリソースマネージャ480は、サーバ稼働状態DB482に対して、検索で得た発生負荷を受け入れることが可能なサーバコンピュータの検索を指示する。この結果、サーバ稼働状態DBより、プログラムを走らせることが可能なサーバコンピュータの一覧情報が、SWリソースマネージャ480に通知される。
SWリソースマネージャ480は、通知されたサーバコンピュータ一覧情報から一つのサーバコンピュータを選択し、サーバ稼働状態DB482に対し、今後発生する予定の負荷を示す負荷情報を通知する。
これまでの手続きにより、SWリソースマネージャ480は、雛形プログラムが、どのサーバコンピュータで実施されるべきかを把握したことになる。SWリソースマネージャ480は、雛形プログラムがどのサーバコンピュータで実施されるべきかという割当SWリソースを示す割当SWリソース情報を自身が管理する情報に追加する。
そして、SWリソースマネージャ480は、割当SWリソース情報IDを、サービスマネージャ470に通知し、必要な計算資源が予約できたことを通知する。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、雛形回路IDを通知し、この回路を実現することが可能な計算リソースの割当を要求する。
HWリソースマネージャ490は、雛形回路IDを検索キーとして、回路構成情報DB491から雛形回路の実行用回路構成情報、発生負荷、入出力ポート等を含む、実行することになる回路の緒元情報を取得する。
次にHWリソースマネージャ490は、RU稼働状態DB492に対して、検索で得た発生負荷を受け入れることが可能なRUの検索を指示する。この結果、RU稼働状態DB492より、回路を展開して実行することが可能なRUの一覧情報がHWリソースマネージャ490に通知される。
HWリソースマネージャ490は、通知されたRU一覧情報から一つのRUを選択し、RU稼働状態DB492に対し、今後発生する予定の負荷を示す負荷情報を通知する。
これまでの手続きにより、HWリソースマネージャ490は、雛形回路が、どのRUで実施されるべきかを把握したことになる。HWリソースマネージャ490は、この雛形回路がどのRUで実施されるべきかという割当HWリソースを示す割当HWリソース情報として、自身が管理する情報に追加する。そしてHWリソースマネージャ490は、割当HWリソース情報IDを、サービスマネージャ470に通知し、必要な計算資源が予約できたことを通知する。
サービスマネージャ470は、SWリソースマネージャ480とHWリソースマネージャ490の両方から予約完了の通知を受けると、その後の処理が継続できると判断する。もし、どちらか一方あるいは両方から、「予約不可」という旨の返信があった場合、ユーザが要求する情報サービスは提供できないことになる。そのため、その場合、サービスマネージャ470は、ユーザ端末421〜423からのサービス要求に対し「サービス提供不可」の返信を行ない、またSWリソースマネージャ480、HWリソースマネージャ490を通して計算資源の予約を解除する。
なお、サービスマネージャ470からみて、SWリソースマネージャ480による予約の処理とHWリソースマネージャ490による予約の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
(構築)
サービスマネージャ470は、SWリソースマネージャ480とHWリソースマネージャ490の両方から割当リソース情報IDを受け取ると、ユーザ端末が要求する情報サービスが提供可能であると判断する。その場合、サービスマネージャ470は、予約された状態となっている計算資源によってソフトウェア機能およびハードウェア機能を実体のあるものとして構築するための構築処理を行う。
構築処理の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、割当られたSWリソース情報IDと共に構築要求を通知する。
SWリソースマネージャ480は、構築要求の通知を受けると、自身が管理している割当情報を参照し、先ほど予約したサーバコンピュータに対してプログラムの実行用ファイル本体をロードし、ソフトウェア機能を実行プログラムとして実体化させる。
実行プログラムにはサーバコンピュータによって実行プログラムIDが付与される。このIDは、どのサーバコンピュータ上の、どの実行プログラムであるかを一意に特定する識別情報である。また、実行プログラムが実体化することにより、実行プログラムが利用する入出力ポートのアドレスが確定する。また、SWリソースマネージャ480が管理情報を設定することにより、SWリソースが実体化した実行プログラムが特定ユーザに割り当てられた状態となる。
サーバコンピュータは、実行プログラムIDおよび入出力ポートアドレスと共に、構築処理の完了をSWリソースマネージャ480に通知する。SWリソースマネージャ480は、サーバ稼働状態DB482に対し、予約していたサーバコンピュータに実行プロラムが展開されたことを通知する。また、SWリソースマネージャ480は、サービスマネージャ470に対して、割当SWリソースの構築が完了したことを通知する。このとき、実行プログラムの入出力ポート名と、そのアドレスに関する情報もあわせてサービスマネージャ470に通知される。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、割当HWリソース情報IDと共に構築要求を通知する。
HWリソースマネージャ490は、構築要求の通知を受けると、自身が管理している割当情報を参照し、先ほど予約したRUに回路構成情報を展開させ、ハードウェア機能を実行回路として実体化させる。実行回路には、RUによって実行回路IDが付与される。このIDは、どのRU上の、どの実行プログラムであるかを一意に特定できる識別情報である。また回路が実体化することにより、実行回路が利用する入出力ポートのアドレスが確定する。また、HWリソースマネージャ490が管理情報を設定することにより、HWリソースが実体化した実行回路が特定ユーザに割り当てられた状態となる。
RUは、実行回路IDおよび入出力ポートアドレスと共に、構築処理の完了をHWリソースマネージャ490に通知する。HWリソースマネージャ490は、RU稼働状態DB492に対し、予約していたRUに実行回路が展開されたことを通知する。また、HWリソースマネージャ490は、サービスマネージャ470に対して割当HWリソースの構築が完了したことを通知する。このとき、実行回路の入出力ポート名と、そのアドレスに関する情報もあわせてサービスマネージャ470に通知される。
なお、サービスマネージャ470からみて、SWリソースマネージャ480による構築の処理とHWリソースマネージャ490による構築の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
(初期化)
上述した構築処理により、ソフトウェア機能がサーバコンピュータ上に、ハードウェア機能がリコンフィグユニット上に構築される。続いて、初期化処理を実施し、これら構築されたサービス構成要素に対して動作パラメタの設定や入出力ポート同士の対応付けを行なう。初期化の処理の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、割当SWリソースの初期化要求を通知する。サービス要求時に動作パラメタが付されていた場合には、この動作パラメタの情報も合わせてSWリソースマネージャ480に通知される。また、構築処理の結果として得られた、入出力ポート名と確定したアドレスの全体も合わせてSWリソースマネージャ480に通知される。
SWリソースマネージャ480は、実行プログラムがロードされたサーバコンピュータに対して、動作パラメタ、入出力ポート名、および確定したアドレスの全体と合わせて、初期化要求を通知する。
これを受けて、サーバコンピュータは、実行プログラムの入出力ポートと、実行回路の入出力ポートおよびユーザ端末側の入出力ポートとの相互接続(アドレス指定)を行なう。また、サーバコンピュータは、動作パラメタに従って、実行プログラムの動作をカスタマイズする。
これらの初期化処理を行なうことにより、サーバコンピュータ上の実行プログラムは、サービス提供に必要なソフトウェア機能を動作させるための全ての準備処理が完了する。
実行プログラムの初期化が終わると、サーバコンピュータはSWリソースマネージャ480に対して初期化完了の通知を行なう。SWリソースマネージャ480は、サービスマネージャ470に対して、初期化完了を通知する。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、割当HWリソースの初期化要求を通知する。サービス要求時に動作パラメタが付されていた場合には、この動作パラメタの情報もHWリソースマネージャ490に合わせて通知される。また、構築処理の結果として得られた入出力ポート名と確定したアドレスの全体もHWリソースマネージャ490に合わせて通知される。
HWリソースマネージャ490は、実行回路のロードされたRUに対して、動作パラメタ、入出力ポート名、および確定したアドレスの全体と合わせて、初期化要求を通知する。これを受けて、RUは、実行プログラムの入出力ポートと、実行回路の入出力ポートおよびユーザ端末側の入出力ポートとの相互接続(アドレス指定)を行なう。また、RUは、動作パラメタに従って実行回路の動作をカスタマイズする。
これらの初期化処理を行なうことにより、RU上の実行回路は、サービス提供に必要なハードウェア機能を動作させるための全ての準備処理が完了する。実行回路の初期化が終わると、RUはHWリソースマネージャ490に対して初期化完了の通知を行なう。HWリソースマネージャ490は、サービスマネージャ470に対して初期化完了を通知する。
なお、ここで、サービスマネージャ470からみて、SWリソースマネージャ480による初期化の処理と、HWリソースマネージャ490による初期化の処理のどちらが先に実行されてもよく、また同時に実行しても構わない。
(動作始動)
初期化処理により、ユーザ端末と実行プログラムおよび実行回路の入出力ポートとの接続関係が与えられて情報サービスを実行する準備が整う。続いて、サービスマネージャ470はサービス提供を開始するための動作始動処理を行なう。
動作開始処理の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、割当SWリソースの動作始動要求を通知する。これを受けて、SWリソースマネージャ480は、サーバコンピュータに対し、動作始動要求を通知する。サーバコンピュータは、実行プログラムの実行を開始した後、SWリソースマネージャ480に対して動作始動完了を通知する。SWリソースマネージャ480は、サービスマネージャ470に対して動作始動完了を通知する。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、割当HWリソースの動作始動要求を通知する。これを受けて、HWリソースマネージャ490は、RUに対して動作始動要求を通知する。RUは、実行回路の動作を開始した後、HWリソースマネージャ490に対して動作始動完了を通知する。HWリソースマネージャ490は、サービスマネージャ470に対して動作開始完了を通知する。
なお、サービスマネージャ470からみて、SWリソースマネージャ480による動作始動の処理とHWリソースマネージャ490による動作始動の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
ソフトウェア機能を提供する実行プログラム、ハードウェア機能を提供する実行回路の両方が動作始動すると、サービスマネージャ470はサービス始動をユーザ端末に通知する。この時、ユーザ端末の入出ポートが接続すべき、実行プログラムおよび実行回路の入出力ポートのアドレスも合わせて通知される。これによりユーザ端末が実行プログラムおよび実行回路に接続することが可能となる。
これまでに説明した「サービスの開始要求」から「動作始動」までの一連の処理が実行されることにより、ユーザ端末が要求した情報サービスがユーザ端末に提供される。
(サービスの終了要求)
サービスの終了要求は、運用者から終了を要求されたユーザ端末か、情報サービスの所定の処理を実行した実行プログラムまたは実行回路のいずれかによって発せられ、サービスマネージャ470に通知される。
(動作停止)
サービスマネージャ470が終了要求を受け付けると、情報サービスを構成している実行プログラムおよび実行回路の動作が停止される。
動作停止処理の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、割当SWリソースの動作停止要求を通知する。これを受けて、SWリソースマネージャ480は、サーバコンピュータに対して動作停止要求を通知する。サーバコンピュータは、実行プログラムの動作を停止させた後、SWリソースマネージャ480に対して、動作停止完了を通知する。SWリソースマネージャ480は、サービスマネージャ470に対して動作停止完了を通知する。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、割当HWリソースの動作始動要求を通知する。これを受けて、HWリソースマネージャ490は、RUに対して動作停止要求を通知する。RUは、実行回路の動作を停止させた後、HWリソースマネージャ490に対して動作停止完了を通知する。HWリソースマネージャ490は、サービスマネージャ470に対して動作停止完了を通知する。
なお、サービスマネージャ470からみて、SWリソースマネージャ480による動作停止の処理とHWリソースマネージャ490による動作停止の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
(終了化)
上述した動作停止処理により実行プログラムおよび実行回路が動作を停止すると、続いて、サービスマネージャ470は、実行プログラムおよび実行回路に用いられていた計算資源を初期化処理が行なわれる前の状態に戻す終了化を行う。
終了化の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、割当SWリソースの終了化要求を通知する。SWリソースマネージャ480は、実行プログラムのあるサーバコンピュータに対して終了化要求を通知する。これを受けて、サーバコンピュータは、実行プログラムの入出力ポートの接続先アドレスと、カスタマイズされた動作内容を、初期化処理を行なう前のデフォルト値に戻す。実行プログラムの終了化が終わると、サーバコンピュータはSWリソースマネージャ480に対して、終了化完了の通知を行なう。SWリソースマネージャ480は、サービスマネージャ470に対して、終了化完了を通知する。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、割当HWリソースの終了化要求を通知する。
HWリソースマネージャ490は、実行回路のあるRUに対して、終了化要求を通知する。これを受けて、RUは、実行回路の入出力ポートの接続先アドレスと、カスタマイズされた動作内容を、初期化処理を行う前のデフォルト値に戻す。実行回路の終了化が終わると、RUはHWリソースマネージャ490に対して、終了化完了の通知を行なう。HWリソースマネージャ490は、サービスマネージャ470に対して、終了化完了を通知する。
なお、サービスマネージャ470からみて、SWリソースマネージャ480による初期化の処理とHWリソースマネージャ490による初期化の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
また、ここに示した終了化処理は、実行プログラムのアンロードや実行回路の消去がすぐに行なわれるような場合には省略してもよい。
(解体・解約)
上述した動作停止処理および終了化処理により、割当SWリソースと割当HWリソースの両方が、その割当を解除することが可能な状況となる。それに続いて、実体化されていた計算資源を削除する解体処理と、その計算資源のユーザへの割当を削除する解約処理を行ない、計算資源を他のサービスおよび他のユーザに割当可能な資源に還す処理を行なう。
解体処理および解約処理の流れは以下の通りである。
サービスマネージャ470は、SWリソースマネージャ480に対して、割当SWリソース情報IDと共に、解体・解約要求を通知する。SWリソースマネージャ480は、解体・解約要求の通知を受けると、自身が管理している割当情報を参照し、サーバコンピュータに対して、実行プログラムのアンロードを要求し、構築したソフトウェア機能の解体を実施させる。さらにSWリソースマネージャ480は、今回のサービス提供における特定ユーザに対するSWリソース割当の管理情報を削除する。また、SWリソースマネージャ480は、実行プログラムのアンロードと割当リソースの開放を確認し、解体・解約の完了をサービスマネージャ470に通知する。
また、サービスマネージャ470は、HWリソースマネージャ490に対して、割当HWリソース情報IDと共に、解体・解約要求を通知する。HWリソースマネージャ490は、解体・解約要求の通知を受けると、自身が管理している割当情報を参照し、RUに対して、実行回路の削除を要求し、構築したハードウェア機能の解体を実施させる。さらにHWリソースマネージャ490は、今回のサービス提供における特定ユーザに対するHWリソース割当の管理情報を削除する。HWリソースマネージャ490は、実行回路の削除と割当リソースの開放を確認し、解体・解約の完了をサービスマネージャ470に通知する。
サービスマネージャ470は、割当SWリソースが解体・解約された旨の通知と割当HWリソースが解体・解約された旨の通知の両方を受けると、今回のサービスの提供のために自身が管理していた情報を削除し、サービスの要求処理から始まった情報サービスの一連の処理を終端させる。
また、このときに、サービスマネージャ470がユーザ端末に対してサービス終了を通知することにしてもよい。ただし、ユーザ端末に対してサービス終了を通知するタイミングは、動作停止が完了したとき、あるいは終了化処理が完了したときにしてもよい。
なお、サービスマネージャ470からみて、SWリソースマネージャ480による解体・解約の処理とHWリソースマネージャ490による解体・解約の処理のどちらが先に実行されてもよく、また同時に実行されても構わない。
なお、本実施形態では説明を簡潔にするために、1つのユーザ端末から要求された1つの情報サービスの実行に着目した説明をしてきたが、実際には複数のユーザ端末から要求された情報サービスが同時に実行されるのが通常である。その場合、複数あるサーバコンピュータ441〜443やRU451〜453を同時に複数のユーザの情報サービスに割り当てることができる。
例えば、複数のユーザ端末の情報サービスの複数の実行回路が複数のRU上にそれぞれ構築されてもよく、また1つのユーザ端末の1つの情報サービスの1つの実行回路が複数のRUを跨いで構築されてもよい。
以上説明したように、本実施形態のシステムは、ハードウェアのアクセラレータ(RU451〜453)をネットワーク上においてサーバコンピュータ441〜443と並列に配置しているので、ソフトウェアの処理とハードウェアの処理のデータ入出力を別個独立に行うことができ、ハードウェアのアクセラレータによる処理の実行においてサーバコンピュータ441〜443の構成がボトルネックになることが無い。
また、SWリソースマネージャ480はソフトウェアの計算資源であるサーバコンピュータ441〜443を個々に管理し、HWリソースマネージャ490はハードウェアの計算資源であるRU451〜453を個々に管理し、ユーザからの要求に応じてオンデマンドで計算資源をユーザおよび情報サービスに割り当てて実体化するので、予め過剰な計算資源を用意しておく必要が無く、有限な計算資源を要求に応じて有効に活用することができる。
また、再構成可能なハードウェアにより、要求に応じて実行回路を構築するため、様々な情報サービスが混在しても個々のサービスに専用回路が不要となるので、統計多重効果が期待でき、用意しておくべきハードウェアの計算資源を削減することができる。
また、サービスマネージャ470が複数ユーザのそれぞれに対する情報サービスの提供を管理し、個々の情報サービスの状況に応じてSWリソースマネージャ480およびHWリソースマネージャ490を制御するので、複数のユーザに対して並行して個々に情報サービスを提供することができる。システムを複数のユーザおよび複数の情報サービスが共有する場合にも、ある情報サービスのためのリコンフィグ処理のためにシステム全体を停止させずに他の情報サービスを継続することができる。
また、本実施形態では、サービスマネージャ470がサービス用ネットワーク412とオペレーション用ネットワーク413の両方に接続されている。そして、サービスマネージャ470はサービス用ネットワーク412によってユーザ端末と通信し、オペレーション用ネットワーク413によってSWリソースマネージャ480およびHWリソースマネージャ490と通信する。そのため、サービス開始要求のようなユーザ端末421〜423とサービスマネージャ470の通信のネットワーク負荷によるSWリソースおよびHWリソースの通信への影響が低減され、かつ、サービスマネージャ470とSWリソースマネージャ480およびHWリソースマネージャ490との通信のネットワーク負荷によるSWリソースおよびHWリソースの通信への影響が低減される。
また、専用機能などのための拡張ボードをサーバコンピュータに搭載する構成では拡張ボードを増設するためにサーバコンピュータを増設する必要があったが、本実施形態では、RU451〜453がサーバコンピュータ441〜443と並列に配置されているので、ハードウェアとソフトウェアのそれぞれの増減を独立に行うことができ、システム構成の自由度が向上する。
(第1の実施例)
第1の実施例による情報サービスシステムは、図4に示したものと同様の構成を有している。図4に示されているサーバコンピュータ441〜443と、リコンフィグユニット451〜453は、実際に情報サービスの計算処理を実施する計算資源である。この計算資源は、複数のユーザ、複数のサービスで共有される。
図5は、計算資源管理における状態の遷移を示す図である。本実施例では、計算資源の状態を図5に示すように場合わけすることにより、計算資源の管理を容易にしている。
「未使用」は、まだその計算資源がどのユーザにも割当てられておらず、プログラムのロードや、回路の展開が為されていない状態を指す。「予約済」は、情報サービスを構成するために、その計算資源が特定のユーザに割当てられているが、この時点では、プログラムのロードや、回路の展開が為されていない状態を指す。「構築済」は、情報サービスを構成するために、その計算資源が特定のユーザに割当てられており、かつ、プログラムのロードや、回路の展開が為された状態を指す。「動作待機」は、プログラムや回路に、個別の動作パラメタが与えられ、実際に情報提供サービスを開始することが可能な待機状態を指す。「動作実行」は、実際にプログラムや回路が情報サービス提供に利用されていて、計算資源が動作状態にあることを指す。
以上のような計算資源の状態遷移の過程について図6〜14を用いて以下に説明する。
図6は、サービス開始要求および検索の処理を示すシーケンス図である。
図6を参照すると、ユーザ端末421より、サービスマネージャ470に対して、情報サービスの要求が行なわれている。この時、ユーザ端末421からサービスマネージャ470に対して、情報サービスIDだけでなく、動作パラメタも一緒に通知されることもある。サービスマネージャ470は、情報サービスを構成するのに必要な、ソフトウェア機能を実現する雛形プログラムの識別情報である雛形プログラムIDと、ハードウェア機能を実現する雛形回路の識別情報である雛形回路IDを、サービス構成情報DB471から取得する。
図7は、計算資源の予約処理を示すシーケンス図である。
まずソフトウェア機能に関して、サービスマネージャ470は、雛形プログラムIDをSWリソースマネージャ480に送る。これを元に、SWリソースマネージャ480は、当該プログラムの負荷情報など、諸元情報をプログラム情報DB481より取得する。続いてSWリソースマネージャ480は、当該プログラムを追加動作させることが可能なサーバコンピュータをサーバ稼働状態DB482に問い合わせ、候補一覧を得る。SWリソースマネージャ480は、候補一覧のなかから、当該プログラムを動作させるサーバコンピュータを一つ選び、サーバ稼働状態DB482に資源の予約を要求する。なお、この時、候補一覧からサーバコンピュータを選ぶ方法としては、その時点で最も負荷の小さいサーバに割当てるという方法や、同じ雛形プログラムが展開されているサーバに対して優先的に割当てるという方法などが挙げられる。
以上、ソフトウェア機能に関する予約について示したが、ハードウェア機能に関する予約に関しても同様に行なわれる。ハードウェア機能に関しては、サービスマネージャ470は、雛形回路IDをHWリソースマネージャ490に送る。これを元に、HWリソースマネージャ490は、当該回路の負荷情報など、諸元情報を回路構成情報DB491より取得する。続いてHWリソースマネージャ490は、当該回路を追加動作させることが可能なRUをRU稼働状態DB492に問い合わせ、候補一覧を得る。HWリソースマネージャ490は、候補一覧のなかから、当該回路を動作させるRUを一つ選び、RU稼働状態DB492に資源の予約を要求する。
図8は、構築処理を示すシーケンス図である。
図8では、サービスマネージャ470が、SWリソースマネージャ480とHWリソースマネージャ490に指示を送り、サーバコンピュータに実行プログラムを、リコンフィグユニットに実行回路を構築させる。これにより、実行プログラムおよび実行回路が具体的に計算資源上に実体化するため、実行プログラムおよび実行回路の各々が利用する通信ポートのアドレスが確定され、このアドレス情報がサービスマネージャ470に通知される。
図9は、実行プログラムおよび実行回路の初期化処理を示すシーケンス図である。
初期化処理において、サービスマネージャ470は、まず、サービス要求時にユーザ端末421から示されていた動作パラメタをプログラムや回路に反映することによりプログラムや回路の動作変数等を設定する。また、構築処理で明らかとなった通信ポートのアドレス情報をプログラムおよび回路のそれぞれに相互に設定することにより、ユーザ端末と実行プログラムと実行回路の間の通信経路を確立し、動作の準備を整える。
図10は、実行プログラムおよび実行回路の動作を開始させ、情報サービスの提供を開始させる動作始動処理を示すシーケンス図である。
サービスマネージャ470がSWリソースマネージャ480およびHWリソースマネージャ490に動作始動を要求し、それを受けたSWリソースマネージャ480とHWリソースマネージャ490がそれぞれサーバコンピュータの実行プログラムとRUの実行回路を始動させる。
図11は、ユーザ端末421からサービスマネージャ470にサービス終了が要求される様子を示すシーケンス図である。ここではユーザ端末421からサービスマネージャ470にサービス終了が要求されるものとしている。
図12は、動作停止処理を示すシーケンス図である。図11に示したようにサービス終了要求を受けたサービスマネージャ470は、SWリソースマネージャ480およびHWリソースマネージャ490に動作停止を要求する。動作停止要求を受けたSWリソースマネージャ480はサーバコンピュータ上の実行プログラムの動作を停止し、同じく動作停止要求を受けたHWリソースマネージャ490はRU上の実行回路の動作を停止する。
図13は、終了化処理を示すシーケンス図である。
サービスマネージャ470がSWリソースマネージャ480およびHWリソースマネージャ490に終了化を要求し、それを受けたSWリソースマネージャ480およびHWリソースマネージャ490が、上述した初期化処理でプログラムや回路に適用されたカスタマイズおよび設定された通信経路を解除し、プログラムおよび回路を初期化処理前の「構築済」の状態に戻す。
図14は、計算資源の解体および解約の処理を示すシーケンス図である。
サービスマネージャ470は、SWリソースマネージャ480にSWリソースの解体・解約を要求し、HWリソースマネージャ490にHWリソースの解体・解約を要求する。それを受けたSWリソースマネージャ480は、サーバコンピュータ上のプログラムをアンロードするとともに、そのプログラムへのユーザ割り当てを削除する。同様に解体・解約の要求を受けたHWリソースマネージャ490は、RU上の回路を解体するとともに、その回路へのユーザ割り当てを削除する。これらによってSWリソースおよびHWリソースは予約がされていない状態に戻る。
図15は、情報サービスシステムが提供する情報サービスをシステムに追加あるいは削除するメンテナンス処理を示すシーケンス図である。この情報サービスを追加する処理は、図6〜14に示した情報サービスの提供の前に予め行われる処理である。
情報サービスの追加あるいは削除の処理には、雛形回路の追加あるいは削除の処理と、雛形プログラムの追加あるいは削除の処理と、情報サービスの追加あるいは削除の処理とが含まれる。
雛形回路の追加あるいは削除の処理においては、オペレーション用端末430が、運用者の操作に従って回路構成情報DB491に新たな雛形回路の諸元情報を追加したり、あるいは回路構成情報DB491から雛形回路の諸元情報を削除したりする。
雛形プログラムの追加あるいは削除の処理においては、オペレーション用端末430が、運用者の操作に従ってプログラム情報DB481に新たな雛形プログラムの諸元情報を追加したり、あるいはプログラム情報DB481から雛形プログラムの諸元情報を削除したりする。
情報サービスの追加あるいは削除の処理においては、オペレーション用端末430が、運用者の操作に従ってサービス構成情報DB471に新たなサービスの情報を追加したり、あるいはサービス構成情報DB471からサービスの情報を削除したりする。ここで追加されたり削除されたりするサービスの情報には、情報サービスの識別情報であるサービスIDと、その情報サービスに用いられる雛形プログラムおよび雛形回路の識別情報である雛形プログラムIDおよび雛形回路IDとを対応付ける対応付け情報が含まれている。
続いて、図16〜20を用いて、サービスマネージャ470、SWリソースマネージャ480、HWリソースマネージャ490、サービス構成情報DB471、プログラム情報DB481、回路構成情報DB491が保持あるいは利用するデータの例について説明する。
図16は、ある情報サービスにおけるユーザ端末とソフトウェア機能とハードウェア機能との接続構成の一例を示す図である。図16には、情報サービスA200を実現する構成が示されている。情報サービスA200は、ユーザ端末U、ソフト機能S01、ハード機能H21、ハード機能H22により実現されるものとする。
図16の例では、ユーザ端末Uでは、通信ポートP1がハードウェア機能H21の通信ポートP1と接続され、通信ポートP2がハードウェア機能H22の通信ポートP2と接続され、通信ポートP3がソフトウェア機能S01の通信ポートP1と接続されている。また、ソフトウェア機能S01の通信ポートP2はハードウェア機能H22の通信ポートP3接続されている。また、ハードウェア機能H21の通信ポートP2はハードウェア機能H22の通信ポートP1と接続されている。
この相互接続による通信を利用してユーザ端末Uとソフトウェア機能S01とハードウェア機能H21、22が連携動作することにより、情報サービスA200が実現される。
図17は、サービス構成情報DB471、プログラム情報DB481、回路構成情報DB491が管理する情報を示す図である。サービス構成情報DB471には、情報サービスA200には、ソフトウェア機能S01、ハードウェア機能H21、H22が構成要素となることが記憶されている。またサービス構成情報DB471には、更に、それぞれの通信ポートをどのように接続するかというポート接続関係定義の情報が含まれている。
また、プログラム情報DB481には、ソフトウェア機能S01の諸元情報が記憶されており、その諸元情報にプログラムの実体ファイル、想定される負荷、入出力ポートが含まれている。
また、回路構成情報DB491には、ハードウェア機能H21、H22の諸元情報が記憶されており、その諸元情報には回路構成用の実体ファイル、想定される負荷、入出力ポートが含まれている。
なお、ソフトウェア機能の負荷として、ここではメモリ使用量を例として挙げているが、本発明がこれに限定されるものではない。例えば、メモリ使用量の他にCPU負荷など他の要素を組み合わせたものであっても構わない。同様に、ハードウェア機能の負荷として、ここでは領域面積を例として挙げているが、本発明がこれに限定されるものではない。例えば、領域面積の他に消費電力など他の要素を組み合わせたものであっても構わない。
図18は、サービスマネージャ470、SWリソースマネージャ480、HWリソースマネージャ490が管理する情報の一例を示す図である。図18を参照すると、図5に示した各処理に伴って、サービスマネージャ470、SWリソースマネージャ480、およびHWリソースマネージャ490のそれぞれの情報の値が確定したり、削除されたりする様子が示されている。
例えば、サービス開始要求の処理によって、サービスマネージャ470が管理する情報に新たな情報サービスのエントリが追加される。その状態では、その情報サービスに対応する情報がSWリソースマネージャ480やHWリソースマネージャ490には存在しない。処理が進んで予約の処理が行われると、SWリソースマネージャ480やHWリソースマネージャ490にエントリが追加される。
図19は、情報サービスシステムのSWリソースおよびHWリソースに情報サービスのプログラムおよび回路が展開された様子を示す図である。図19の例では、SWリソースであるサーバコンピュータが3台、HWリソースであるリコンフィグユニットが3台示されている。
この例では、プログラムxpg01、xpg02がサーバコンピュータsv01に展開され、実体化されている。また、プログラムxpg03、xpg04が展開され、実体化されている。
また、回路xct01、xct02がリコンフィグユニットru01に展開され、実体化されている。また、回路xct03がリコンフィグユニットru02に展開され、実体化されている。また、回路xct04がリコンフィグユニットru03に展開され、実体化されている。
リコンフィグユニットru01〜ru03はそれぞれ内部がA、B、C、Dの4区画に分かれている。回路は複数の区画に跨って構成することができる。例えば、回路xct02は、リコンフィグユニットru01の区画A、Bに跨って構成されている。
図20は、図19に示したようにプログラムと回路が展開されたシステムにおけるサーバ稼働状態DB482とRU稼働状態DB492の管理情報を示す図である。
サーバ稼働状態DB482には、各サーバコンピュータに関する管理情報であるサーバコンピュータ管理情報と、各実行プログラムに関する管理情報である実行プログラム管理情報とが保持されている。
RU稼働状態DB492には、各RUに関する管理情報であるリコンフィグユニット管理情報と、各実行回路に関する管理情報である実行回路管理情報とが保持されている。
これらの管理情報はサーバコンピュータ、リコンフィグユニット、実行プログラム、および実行回路の即時的な稼働状態を示すものであり、実際のサーバコンピュータおよび実際のリコンフィグユニットより一定時間おきに収集された実測値で更新される。
(第2の実施例)
上述した実施形態のシステムでは有限な計算資源を複数ユーザで共有利用している。そのため一時的に大勢のユーザがシステムにアクセスしてくると計算資源が不足し、計算資源が割り当てられないユーザが出てくる。一般的な手法を用いた場合、早い者勝ちで計算資源が割り当てられることになる。しかし、早い者勝ちで計算資源を割り当てた場合、優先度の高いユーザや優先度の高い情報サービスに計算資源が割り当てられないということが起こる。
それを回避するために、第2の実施例では、情報サービスの動作パラメタに優先度を設定し、その優先度に基づいて、SWリソースおよびHWリソースといった計算資源を割り当てる。一例として、ここでは、サーバコンピュータまたはリコンフィグユニットに空き資源が存在しない状況において、新たな情報サービスの要求が発生した場合、既に動作している情報サービスのうち新たな情報サービスよりも優先度が低いサービスを強制終了して計算資源を回収し、新たに要求のあった情報サービスに割当てることにする。
サービスを開始しようとするとき、ユーザ端末421〜423は、サービスマネージャ470に送信するサービス開始要求内の動作パラメタに優先度を含める。具体的には、図6のサービス開始要求に含まれている動作パラメタに優先度の値を設定することにすればよい。
サービス開始要求を受けたサービスマネージャ470は、SWリソースマネージャ480とHWリソースマネージャ490に計算資源の割り当てを要求するときに、この優先度も通知する。具体的には、図7のSWリソースの仮予約要求およびHWリソースの仮予約要求に優先度の値を設定することにすればよい。
SWリソースマネージャ480およびHWリソースマネージャ490は、通知された優先度に基づく判断で計算資源の割り当てを決定する。
一例として、優先度が高い方から順に、1、2、3、4、5を表現されるものとする。サーバコンピュータとリコンフィグユニットの両方あるいは一方に空き資源が存在しない状況において、新たにサービス要求が優先度3で発生した場合、既に動作している優先度5のサービスを、システムにより強制終了して計算資源を回収し、新たなサービスに割当てる。
そのために、SWリソースマネージャ480は、図20に示したサーバ稼働状態DB482の実行プログラム管理情報に、更に実行プログラム毎に優先度を記録しておく。そして、新たに要求された情報サービスに計算資源を割り当てるとき、SWリソースマネージャ480は、新たな情報サービスの優先度と実行プログラム管理情報に記録されている優先度を比較し、新たな情報サービスよりも優先度の低い情報サービスを強制終了する。情報サービスの強制終了を行うときにはSWリソースマネージャ480がサービスマネージャ470に対してサービスの終了要求を送り、サービスマネージャ470がSWリソースマネージャ480およびHWリソースマネージャ490に、動作停止、終了化、計算資源の解体・解約を要求する。
同様に、HWリソースマネージャ490は、図20に示したRU稼働状態DB492の実行回路管理情報に、更に実行回路毎に優先度を記録しておく。そして、新たに要求された情報サービスに計算資源を割り当てるとき、HWリソースマネージャ490は、新たな情報サービスの優先度と実行回路管理情報に記録されている優先度を比較し、新たな情報サービスよりも優先度の低い情報サービスを強制終了する。情報サービスの強制終了を行うときにはHWリソースマネージャ490がサービスマネージャ470に対してサービスの終了要求を送り、サービスマネージャ470がSWリソースマネージャ480およびHWリソースマネージャ490に、動作停止、終了化、計算資源の解体・解約を要求する。
以上の動作により、第の実施例では複数のユーザがシステムを共有利用する場合でも優先度の高いサービスを優先的に実行することができる。
(第3の実施例)
図4には、サーバコンピュータ441〜443とリコンフィグユニット451〜453は直接接続されていない構成のシステムを例示した。しかし、本発明はこれに限定されるものではない。他の例としてサーバコンピュータとリコンフィグユニットの間を直接接続し、実行プログラムと実行回路の間の信号をサーバコンピュータとリコンフィグユニットで直接送受信することにしてもよい。
図21は、第3の実施例による情報サービスシステムの構成を示すブロック図である。図21を参照すると、第3の実施例によるシステムは、サーバコンピュータ441とリコンフィグユニット451が接続され、サーバコンピュータ442とリコンフィグユニット452が接続され、サーバコンピュータ443とリコンフィグユニット453が接続されている点で図4のシステムと異なる。これらの接続は、サービス用ネットワーク412やオペレーション用ネットワーク413から分離された専用バスで構成されている。
サーバコンピュータ上に構築された実行プログラムと、そのサーバコンピュータと直接接続されたリコンフィグユニット上に構築された実行回路の間では専用バスでデータが送受信される。ただし、リコンフィグユニット451〜453は、図4のものと同様、サービス用ネットワーク412にも接続されており、ユーザ端末421〜423、他のリコンフィグユニット、直接接続されていないサーバコンピュータとの間では、直接接続されたサーバコンピュータに依存せずにデータの入出力が可能である。
更に本実施例では、リコンフィグユニット451〜453は、サービス用ネットワーク412に対して複数のネットワークインタフェースを有し、内部に複数の実行回路を構築する場合には実行回路毎に独立したネットワークインタフェースを用いる。これにより、データを送受信するときに実行回路間で生じるパケットのコリジョンを低減することができる。そして、特にストリーム処理を円滑化し、ストリーム処理を伴う情報サービスの品質を向上させることができる。