(57)【要約】  仮想マシンと当該仮想マシンが利用するＦＰＧＡに書き込まれるＩＰが不適切な組み合わせとなることを防止するシステムを提供する。システムは、実行サーバと、制御サーバと、ＩＰストアと、を含む。実行サーバは、ＦＰＧＡが搭載され、ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する。制御サーバは、実行サーバを制御する。ＩＰストアは、ＦＰＧＡにダウンロードするＩＰを保持する。制御サーバは、少なくとも仮想マシンの識別子と仮想マシンが使用するＡＰＩを関連付けた情報を含むチェックシートを参照し、仮想マシンとＩＰストアに保持されているＩＰであってＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する。
2019235467.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記実行サーバを制御する制御サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、
を含み、
前記制御サーバは、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、システム。
【請求項２】
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＡＰＩの一覧情報を保持し、
前記制御サーバは、
前記ＡＰＩの一覧情報を前記ＩＰストアから取得し、前記チェックシートに含まれるＡＰＩが前記ＡＰＩの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、請求項１に記載のシステム。
【請求項３】
前記制御サーバは、
前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰを前記ＩＰストアから取得すると共に、前記取得したＩＰを前記実行サーバに送信し、
前記実行サーバは、前記送信されたＩＰを前記ＦＰＧＡにダウンロードする、請求項２に記載のシステム。
【請求項４】
前記実行サーバは、
前記ＦＰＧＡにダウンロードされたＩＰと、前記ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであって前記ＩＰストアに保持されているＩＰと、の同一性を検証する、請求項３に記載のシステム。
【請求項５】
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＩＰのチェックサムの一覧情報を保持し、
前記実行サーバは、
前記チェックサムの一覧情報を前記ＩＰストアから取得し、前記ＦＰＧＡにダウンロードされたＩＰのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記ＦＰＧＡにダウンロードされたＩＰと前記ＩＰストアに保持されているＩＰの同一性を検証する、請求項４に記載のシステム。
【請求項６】
前記ＦＰＧＡにダウンロードされたＩＰには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記実行サーバは、
前記疎通検証部に前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる、請求項５に記載のシステム。
【請求項７】
前記チェックシートは、前記仮想マシンが使用するＡＰＩに関するテストパターンを含み、
前記実行サーバは、
前記疎通検証部に前記テストパターンを供給することで、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、請求項６に記載のシステム。
【請求項８】
前記制御サーバは、前記実行サーバに対し仮想マシンの生成を指示する請求項１乃至７のいずれか一に記載のシステム。
【請求項９】
前記ＩＰストアは、ＩＰに関する開発、管理を行う管理者から取得した情報に基づき、前記ＡＰＩの一覧情報及び前記チェックサムの一覧情報を生成する、請求項５乃至７のいずれか一に記載のシステム。
【請求項１０】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、に接続され、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する制御サーバ。
【請求項１１】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記実行サーバを制御する制御サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、
を含むシステムにおいて、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照するステップと、
前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証するステップと、
を含む、検証方法。
【請求項１２】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、に接続された制御サーバに搭載されたコンピュータに、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照する処理と、
前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１８−１０７９７０号（２０１８年  ６月  ５日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、システム、サーバ、検証方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ビッグデータやＩｏＴ（Internet of Things）といった技術の進展に伴い、大容量のデータ処理が必要になるシステムが増加している。このような状況のため、システムのさらなる高速化が求められている。【０００３】
システムの高速化に対する１つの解として、ソフトウェア処理の一部をハードウェア実装にて実現するＨＷ（Hardware）アクセラレータの使用がある。ＨＷアクセラレータ技術に適したデバイスとしてＦＰＧＡ（Field Programmable Gate Array）が存在する。【０００４】
ＦＰＧＡは、非特許文献１に記載されたように以下の特徴を備える。ＦＰＧＡは、チップ製造後に処理（アプリケーション）の書き換えが可能である。また、当該処理の書き換えが可能であるため、ＦＰＧＡを使用することで、初期コストを抑えたスモールスタートでの市場投入（トライ）が可能である。また、ＦＰＧＡには、リソース（ＣＰＵ（Central Processing Unit）リソース、消費電力等）消費が少なく、且つ、処理の高速化が可能という利点もある。【０００５】
さらに、ＦＰＧＡとＣＰＵが密に結合したＭＣＰ（Multi Chip Package）型のＦＰＧＡの提供も始まっており、今後ますますＦＰＧＡの活用が進むものと考えられる。【０００６】
また、一方で、ＮＦＶ（Network Function Virtualization）技術の進歩に伴い、仮想化基盤上でのシステム構築も普及し始めており、ＦＰＧＡとＮＦＶ技術は今後組み合わせて使用されていく機会が増加するものと予想される。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｉｎｔｅｌ、"FPGAの基本がわかるリソースセンター"、［online］、［平成３０年５月２４日検索］、インターネット〈URL:https://www.altera.co.jp/products/fpga/new-to-fpgas/resource-center/overview.html?utm_source=Altera&utm_medium=link&utm_campaign=Homepage&utm_content=Staircase〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【０００９】
上述のように、今後、ＦＰＧＡと仮想化基盤（ＮＦＶ技術）を組み合わせたシステムが普及していくと考えられる。ＦＰＧＡとＮＦＶ技術を組み合わせて使用するシステムにおいて、様々な主体が協調してシステムを作るエコシステムの観点から、各種管理者はそれぞれ異なると想定される。【００１０】
例えば、サービス（アプリケーション／ワークロード）を開発する開発者／管理者と、ＩＰ（Intellectual Property；ＦＰＧＡ回路）の開発者／管理者と、インフラ（ＩａａＳ；Infrastructure as a Service）の構築者／管理者はそれぞれ異なることが想定される。なお、以降の説明において、サービスに関する開発者／管理者を「サービス管理者」、ＩＰに関する開発者／管理者を「ＩＰ管理者」、インフラに関する構築者／管理者を「インフラ管理者」とそれぞれ表記する。また、上記各管理者を総称する際には、「ステークホルダ」と表記する。【００１１】
通常、上記システムを立ち上げ、運用するために必要な業務は、それぞれ別の作業者が担当し、各人が独立して作業する。そのため、互いの作業への介入が難しく以下のような問題が発生する可能性がある。サービス管理者とＩＰ管理者が異なり、仮想マシンとＩＰそれぞれのライフサイクルが異なる事からアプリケーションの開発とＩＰ（ＩＰコア）のリリースのタイミングが異なる。そのため、仮想マシン（ＶＭ；Virtual Machine）が期待するＡＰＩ（Application Programming Interface）がＩＰに実装されていないことが起こりうる。つまり、仮想マシンとＩＰが適していない組み合わせで使用されてしまう可能性がある。【００１２】
本発明は、仮想マシンと当該仮想マシンが利用するＦＰＧＡに書き込まれるＩＰが不適切な組み合わせとなることを防止することに寄与する、システム、サーバ、検証方法及びプログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【００１３】
本発明乃至開示の第１の視点によれば、ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、前記実行サーバを制御する制御サーバと、前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、を含み、前記制御サーバは、少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、システムが提供される。【００１４】
本発明乃至開示の第２の視点によれば、ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、に接続され、少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、制御サーバが提供される。【００１５】
本発明乃至開示の第３の視点によれば、ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、前記実行サーバを制御する制御サーバと、前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、を含むシステムにおいて、少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照するステップと、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証するステップと、を含む、検証方法が提供される。【００１６】
本発明乃至開示の第４の視点によれば、ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、に接続された制御サーバに搭載されたコンピュータに、少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照する処理と、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１７】
本発明乃至開示の各視点によれば、仮想マシンと当該仮想マシンが利用するＦＰＧＡに書き込まれるＩＰが不適切な組み合わせとなることを防止することに寄与する、システム、サーバ、検証方法及びプログラムが、提供される。
【図面の簡単な説明】
【００１８】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係るクラウドシステムの概略構成を示す図である。
【図３】第１の実施形態に係るクラウドシステムの動作を説明するための図である。
【図４】第１の実施形態に係るクラウドシステムの動作を説明するための図である。
【図５】第１の実施形態に係る制御サーバの処理構成の一例を示す図である。
【図６】第１の実施形態に係る実行サーバの処理構成の一例を示す図である。
【図７】第１の実施形態に係る制御サーバのハードウェア構成の一例を示す図である。
【図８】第１の実施形態に係る実行サーバのハードウェア構成の一例を示す図である。
【図９】第１の実施形態に係るシステム運用前の事前準備の一例を示すフローチャートである。
【図１０】第１の実施形態に係る制御サーバ、実行サーバの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
【００２０】
一実施形態に係るシステムは、実行サーバ１００と、制御サーバ１０１と、ＩＰストア１０２と、を含む（図１参照）。実行サーバ１００は、ＦＰＧＡが搭載され、ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する。制御サーバ１０１は、実行サーバ１００を制御する。ＩＰストア１０２は、ＦＰＧＡにダウンロードするＩＰを保持する。制御サーバ１０１は、少なくとも仮想マシンの識別子と仮想マシンが使用するＡＰＩを関連付けた情報を含むチェックシートを参照し、仮想マシンとＩＰストアに保持されているＩＰであってＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する。
【００２１】
上記システムにおいて、サービス管理者は独立してチェックシートを生成する。当該チェックシートには、サービス管理者が作成する仮想マシンの名称、仮想マシンが要求するＡＰＩ情報が少なくとも含まれる。制御サーバ１０１は、当該チェックシートを参照し、仮想マシンが要求するＡＰＩ情報と、ＩＰ管理者がＩＰリリース時にＩＰストア１０２に登録するＩＰが提供するＡＰＩ情報と、を用いて仮想マシンとＩＰの組み合わせに関する適否を検証する。当該検証により、仮想マシンが実行サーバ１００に生成されたが、当該仮想マシンが使用するＡＰＩがＩＰストア１０２に登録されておらず、仮想マシンとＩＰが適していない組み合わせで使用されるような事態を防止できる。このように、上記システムでは、ステークホルダ（例えば、サービス管理者、ＩＰ管理者）が互いに素となる関係を保ったまま、仮想マシンとＩＰの組み合わせ適否を検証できる。
【００２２】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
【００２３】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２４】
図２は、第１の実施形態に係るクラウドシステムの概略構成を示す図である。図２を参照すると、クラウドシステムは、クラウドサイトに設置された制御サーバ１０及び実行サーバ２０と、ＩＰストア３０と、端末４０−１〜４０−３と、を含んで構成される。
【００２５】
図２に示すクラウドシステムでは、実行サーバ２０に仮想マシンが生成され、当該仮想マシンを用いてユーザにサービス、アプリケーションを提供する。例えば、ビックデータの解析やＡＩ（Artificial Intelligence）による情報処理がクラウドシステムにて実現される。なお、図２には、当該クラウドシステムを利用するユーザや当該ユーザが利用する端末等は図示していない。
【００２６】
制御サーバ１０は、クラウドサイトを制御する装置である。とりわけ、制御サーバ１０は、実行サーバ２０を制御する。例えば、制御サーバ１０は、実行サーバ２０に仮想マシンを生成する。
【００２７】
実行サーバ２０は、例えば、クラウドコンピューティングを提供する装置（物理マシン）である。実行サーバ２０には、ＦＰＧＡが搭載される。実行サーバ２０には、当該ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンが生成される。つまり、実行サーバ２０は、内部に仮想マシン（ＶＭ）を生成し、当該仮想マシンを使ってユーザにアプリケーション、サービス等を提供する。
【００２８】
ＩＰストア３０は、ＩＰ管理者（例えば、ユーザ、ＦＰＧＡベンダー、パートナー企業）が開発したＩＰ（ＩＰコア）を保持する装置（サーバ）である。ＩＰストア３０は、実行サーバ２０のＦＰＧＡにダウンロードするＩＰを保持するサーバ（ウェブサイトを提供するサーバ）等である。ＩＰ開発者は、自身が開発した回路をＩＰコア化し、当該ＩＰコアをＩＰストア３０に登録（リリース）する。その際、ＩＰ開発者は、ＩＰが提供するＡＰＩの情報とＩＰのチェックサムもＩＰストア３０に登録する。
【００２９】
端末４０−１は、サービス管理者が使用する端末である。サービス管理者は、端末４０−１を使用してアプリケーション（サービス）を提供する仮想マシンに関するチェックシートを作成し、当該チェックシートをクラウドサイト（インフラ）に送信する。
【００３０】
チェックシートは、クラウドシステムにてアプリケーションを提供する仮想マシンを識別する情報（識別子）と、当該仮想マシンが使用するＡＰＩ情報（ＡＰＩを特定する情報；識別子）と、仮想マシンとＩＰ間の疎通を検証するためのテストパターンと、を含む。
【００３１】
端末４０−２は、ＩＰ管理者が使用する端末である。ＩＰ管理者は、チェックシートに記載された仮想マシンに割り当てられるＦＰＧＡに求められる回路をＩＰとして開発する。例えば、ＩＰ管理者は、仮想マシンがビックデータ解析の用途に用いられるのであれば、当該ビックデータ解析用のＨＷアクセラレータを実現するＩＰを開発する。
【００３２】
また、ＩＰ管理者は、チェックシートに記載されたテストパターンを実行する機能を上記ＩＰに実装する。具体的には、ＩＰ管理者は、ＩＰが書き込まれたＦＰＧＡにチェックシートに記載されたテストパターンが供給されると当該テストパターンを実行する「疎通検証部」をＩＰに実装する。
【００３３】
ＩＰ管理者は、開発したＩＰを端末４０−２を使用してＩＰストア３０に登録する。その際、ＩＰ管理者は、開発したＩＰ（ＩＰストア３０に提供するＩＰ）のチェックサムを生成し、当該チェックサムと開発したＩＰ及びそのＡＰＩを関連付けてＩＰストア３０に登録する。チェックサムの計算は任意の方法を用いることができる。例えば、ＴＣＰ（Transmission Control Protocol）ヘッダに格納されるチェックサムと同様な方法により上記チェックサムを計算してもよい。
【００３４】
なお、ＩＰストア３０は、ＩＰ管理者が登録した情報に基づき、当該ＩＰストア３０が保持しているＩＰそれぞれが提供するＡＰＩの一覧情報（提供ＡＰＩ一覧）とＩＰのチェックサムの一覧情報（チェックサム一覧）を作成する。ＩＰストア３０は、必要に応じてこれらの一覧情報を制御サーバ１０、実行サーバ２０に提供する。
【００３５】
端末４０−３は、インフラ管理者が使用する端末である。インフラ管理者は、端末４０−３を使用してクラウドサイト（インフラ）の構築、管理を行う。
【００３６】
図２において、制御サーバ１０は、仮想マシンと仮想マシンが使用するＡＰＩを関連付けた情報を含むチェックシートを参照し、仮想マシンとＩＰストアに保持されているＩＰであってＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する。つまり、仮想マシンとＩＰ（回路）の組み合わせに問題がないか否かが検証され、実行サーバ２０に構築された仮想マシンとＩＰ（回路）の適合性の確認がなされる。
【００３７】
その後、組み合わせが適切と判断されたＩＰが、実行サーバ２０に搭載されたＦＰＧＡにＩＰストア３０から必要なＩＰがダウンロードされ書き込まれる。
【００３８】
その際、ＦＰＧＡにダウンロードされたＩＰと、ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであってＩＰストアに保持されているＩＰと、の同一性が検証される。さらに、実際に仮想マシン（アプリケーション）とＩＰ（回路）による動作が検証される。つまり、仮想マシンとＩＰ（回路）が実行サーバ２０上で正常に動作することが検証される。
【００３９】
次に、図３、図４を参照しつつ、第１の実施形態に係るクラウドシステムの動作概略を説明する。図３、図４では、仮想マシンの作成時にＩＰも同時にダウンロード（書き込み）され、且つ、当該処理が正常に終了した場合の動作を説明する。また、図３、図４では、後述する制御サーバ１０、実行サーバ２０の一部処理モジュールを記載している。
【００４０】
初めに、サービス管理者は、制御サーバ１０に対して仮想マシン（ＶＭ）の作成を指示する。当該指示を受けた制御サーバ１０は、実行サーバ２０に対して仮想マシンを生成するように指示をする。図３の例では、仮想マシンＶＭ＃αが実行サーバ２０に生成される。
【００４１】
仮想マシンＶＭ＃αには、ＣＰＵ、メモリ等に加え、ＦＰＧＡがハードウェアリソースとして割り当てられる。ＦＰＧＡにはＣＲＡＭ（Configuration Random Access Memory）が含まれ、当該ＣＲＡＭに仮想マシンＶＭ＃αに割り当てられたＦＰＧＡにより実現する回路がＩＰコア化され書き込まれる。例えば、仮想マシンＶＭ＃αは、ＦＰＧＡをＨＷアクセラレータとして使用し、一部の処理の実行を当該ＦＰＧＡに委託する。
【００４２】
仮想マシンＶＭ＃αとＦＰＧＡ（ＩＰコア）とのインターフェイス（データの送受信）は、ＡＰＩにより規定され、図３の例では、ＩＰ＝Ａに対応する「ａａａ」という仕様のＡＰＩを用いてデータ（パケット）の送受信がなされる。なお、ＡＰＩに関する仕様はサービス管理者、ＩＰ管理者の間で共用されている。
【００４３】
サービス管理者は、上記リソースの割当等を含む仮想マシンの生成指示を制御サーバ１０に行う。また、サービス管理者は、制御サーバ１０に対して上記チェックシートを入力する。上述のように、チェックシートにより、仮想マシンごとに、ＡＰＩ情報とテストパターンが対応付けられている。つまり、チェックシートとは、サービス管理者が作成した、仮想マシン名、各仮想マシンが要求するＡＰＩ情報、サービスの動作確認に必要なテストパターンをまとめた情報である。
【００４４】
図３を参照すると、例えば、仮想マシンＶＭ＃αは「ａａａ」というＡＰＩを利用し、当該ＡＰＩの動作を検証するためのテストパターンは「パターン１」である。
【００４５】
制御サーバ１０には、組み合わせ検証部２０３が含まれ、当該組み合わせ検証部２０３は、チェックシートを参照し、仮想マシンが要求しているＡＰＩを把握する。図３の例では、組み合わせ検証部２０３は、仮想マシンＶＭ＃αは、「ａａａ」と「ｃｃｃ」のＡＰＩを持つＩＰを要求していることを把握する。
【００４６】
このように、組み合わせ検証部２０３は、サービス管理者が入力したチェックシートを参照し、当該チェックシートに記載された仮想マシンと対応するＡＰＩ情報を把握する。
【００４７】
組み合わせ検証部２０３は、ＩＰストア３０から提供ＡＰＩ一覧を取得する。組み合わせ検証部２０３は、取得した提供ＡＰＩ一覧のなかに上記チェックシートに記載されたＡＰＩ情報が含まれている場合には、仮想マシンとＡＰＩ（ＩＰ）の組み合わせは正しい（適正）と判断する。組み合わせ検証部２０３は、取得した提供ＡＰＩ一覧のなかに上記チェックシートに記載されたＡＰＩ情報が含まれていない場合には、仮想マシンとＡＰＩ（ＩＰ）の組み合わせは間違っている（不適正）と判断する。
【００４８】
組み合わせ検証部２０３は、上記組み合わせが適正な場合には、チェックシートに記載された仮想マシンに適したＩＰを選択する。例えば、図３の例では、仮想マシンＶＭ＃αが使用するＡＰＩの識別子（ＡＰＩ情報）は、「ａａａ」であるので、提供ＡＰＩ一覧に記載されたＩＰ＝「Ａ」が選択される。選択されたＩＰは、実行サーバ２０のＦＰＧＡにダウンロード（書き込み）される。
【００４９】
実行サーバ２０には、回路データ検証部３０３が含まれる。回路データ検証部３０３は、ＩＰがダウンロードされたＦＰＧＡにアクセスし、当該ダウンロードされたＩＰのチェックサムを取得する。例えば、ＦＰＧＡのＣＲＡＭに上記チェックサムが記載されていれば、回路データ検証部３０３は、当該ＣＲＡＭにアクセスしてチェックサムを取得する。あるいは、ＩＰのダウンロードの過程にてチェックサムが計算できる場合には、回路データ検証部３０３は、当該計算値をチェックサムとして取得する。
【００５０】
さらに、回路データ検証部３０３は、ＩＰストア３０からチェックサム一覧を取得する。回路データ検証部３０３は、取得したチェックサム一覧のなかにＦＰＧＡにダウンロードされたＩＰに対応するチェックサムが存在するか否かを確認することで、ダウンロードしたＩＰの正当性を検証する。つまり、回路データ検証部３０３により、ＩＰストア３０からＩＰが正常にダウンロードされたか否かが検証される。
【００５１】
具体的には、ダウンロードされたＩＰに対応するチェックサムが一覧のなかに存在すれば、回路データ検証部３０３は、上記ＩＰのダウンロードは正常に行われたと判断する。しかし、ダウンロードされたＩＰに対応するチェックサムが一覧のなかに存在しなければ、回路データ検証部３０３は、上記ＩＰのダウンロードは正常に行われなかったと判断する。
【００５２】
図３の例では、仮想マシンＶＭ＃αは、「Ａ」のＩＰを使うので、当該ＩＰに対応するチェックサム「ｘｘｘｘｘ」が、ＩＰストア３０から取得したチェックサム一覧のなかに存在するか否かが判定される。
【００５３】
図４は、実行サーバ２０における疎通チェックの動作を説明するための図である。図４の左側は、サービス運用時のトラフィックの流れを示す。図４の右側は、疎通検証部４０１による接続確認を示す。
【００５４】
疎通検証部４０１は、ＦＰＧＡにダウンロードされるＩＰに組み込まれたモジュールであって、仮想マシンとＦＰＧＡ間のデータ送受信が正常に実施可能か否かを判定する手段である。
【００５５】
疎通検証部４０１は、ＩＰ管理者がサービス管理者から提供されるチェックシートに記載されたテストパターンを実行する。図４に示すように、疎通検証部４０１は、サービス提供時（図４左側）に送受信される実パケット（実データ）に対応する擬似パケット（疑似データ）を仮想マシンに送信する。具体的には、疎通検証部４０１は、チェックシートのテストパターンを再現するように上記擬似パケットの送信を行う。
【００５６】
疎通検証部４０１は、チェックシートに記載された擬似パケットを仮想マシンに送信し、チェックシートに記載された応答（擬似パケットへの応答）が得られるか否かを検証する。疎通検証部４０１は、チェックシートに記載されたサービスの動作確認に必要なテストパターンを取得し、仮想マシンとＦＰＧＡ間の疎通確認を実施する。
【００５７】
図３、図４の例では、疎通検証部４０１は、仮想マシンＶＭ＃αが使用するＩＰ＝Ａに対応するテストパターン１に係る疎通チェック（擬似パケット及び応答パケットの確認）を行う。
【００５８】
続いて、各装置の処理構成（処理モジュール）について説明する。
【００５９】
図５は、第１の実施形態に係る制御サーバ１０の処理構成（処理モジュール）の一例を示す図である。図５を参照すると、制御サーバ１０は、仮想マシン生成指示部２０１と、チェックシート入力部２０２と、組み合わせ検証部２０３と、ＩＰ取得部２０４と、通信制御部２０５と、を含んで構成される。
【００６０】
仮想マシン生成指示部２０１は、サービス管理者からの指示に応じて実行サーバ２０に仮想マシンを生成するように指示する手段である。
【００６１】
チェックシート入力部２０２は、サービス管理者が作成するチェックシートを入力する手段である。取得したチェックシートは、制御サーバ１０の各処理モジュール（主に、組み合わせ検証部２０３）にて参照される。また、チェックシート入力部２０２は、取得したチェクシートを、通信制御部２０５を介して実行サーバ２０に送信する。
【００６２】
組み合わせ検証部２０３の機能は上述のとおりである。組み合わせ検証部２０３は、ＡＰＩの一覧情報をＩＰストア３０から取得し、チェックシートのＡＰＩがＡＰＩの一覧情報に含まれるか否かに応じて、仮想マシンとＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する。
【００６３】
組み合わせ検証部２０３は、仮想マシンとＩＰの組み合わせが適正（正しい）と判断した場合には、その旨をＩＰ取得部２０４に通知し、当該ＩＰをＩＰストア３０から取得するように指示する。
【００６４】
ＩＰ取得部２０４は、正当性が確認されたＩＰをＩＰストア３０から取得（ダウンロード）し、当該ＩＰを実行サーバ２０に送信する。その際、ＩＰ取得部２０４は、当該送信されたＩＰをＦＰＧＡに書き込むように実行サーバ２０に指示する。
【００６５】
このように、制御サーバ１０は、仮想マシンとＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰをＩＰストア３０から取得すると共に、取得したＩＰを実行サーバ２０に送信する。実行サーバ２０は、送信されたＩＰをＦＰＧＡにダウンロードする。
【００６６】
通信制御部２０５は、他の装置（例えば、実行サーバ２０）との間の通信を制御する手段である。
【００６７】
図６は、第１の実施形態に係る実行サーバ２０の処理構成（処理モジュール）の一例を示す図である。図６を参照すると、実行サーバ２０は、仮想マシン生成部３０１と、ＩＰ書き込み部３０２と、回路データ検証部３０３と、疎通確認部３０４と、通信制御部３０５と、を含んで構成される。
【００６８】
仮想マシン生成部３０１は、制御サーバ１０を介してサービス管理者から指示された仕様の仮想マシンを生成する手段である。
【００６９】
ＩＰ書き込み部３０２は、制御サーバ１０から取得したＩＰをＦＰＧＡに書き込む（ダウンロードする）手段である。
【００７０】
回路データ検証部３０３の機能は上述のとおりである。回路データ検証部３０３は、チェックサム一覧をＩＰストア３０から取得する。回路データ検証部３０３は、ＦＰＧＡにダウンロードされたＩＰのチェックサムがチェックサム一覧に含まれるか否かに応じて、ＦＰＧＡにダウンロードされたＩＰとＩＰストア３０に保持されているＩＰの同一性を検証する。
【００７１】
疎通確認部３０４は、ＦＰＧＡに実装された疎通検証部４０１に仮想マシンとＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる手段である。なお、上述のように、疎通検証部４０１は、仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するためのモジュールである。
【００７２】
疎通確認部３０４は、例えば、ＦＰＧＡに実装された疎通検証部４０１を起動し、当該疎通検証部４０１に対してチェックシートに記載されたテストパターンを供給する。その後、疎通確認部３０４は、疎通検証部４０１に対して仮想マシンとＩＰの間の疎通テストを実行するように指示する。つまり、疎通確認部３０４は、疎通検証部４０１にテストパターンを供給することで、仮想マシンとＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを疎通検証部４０１に検証させる。
【００７３】
通信制御部３０５は、他の装置（例えば、制御サーバ１０）との間の通信を制御する手段である。例えば、通信制御部３０５は、制御サーバ１０からチェックシートを取得すると、当該チェックシートを内部モジュール（主に、回路データ検証部３０３、疎通確認部３０４）が参照可能となるようにメモリ等に格納する。
【００７４】
続いて、第１の実施形態に係る各装置のハードウェア構成を説明する。
【００７５】
図７は、第１の実施形態に係る制御サーバ１０のハードウェア構成の一例を示す図である。制御サーバ１０は、所謂、情報処理装置（コンピュータ）により実現され、図７に例示する構成を備える。例えば、制御サーバ１０は、内部バスにより相互に接続される、ＣＰＵ１１、メモリ１２、入出力インターフェイス１３及び通信手段であるＮＩＣ（Network Interface Card）１４等を備える。
【００７６】
なお、図７に示す構成は、制御サーバ１０のハードウェア構成を限定する趣旨ではない。制御サーバ１０には、図示しないハードウェアも含まれていてもよい。
【００７７】
メモリ１２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）等である。
【００７８】
入出力インターフェイス１３は、図示しない入出力装置のインターフェイスとなる手段である。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
【００７９】
上述の制御サーバ１０の各処理モジュールは、例えば、メモリ１２に格納されたプログラムをＣＰＵ１１が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び／又は、ソフトウェアで実行する手段があればよい。
【００８０】
図８は、第１の実施形態に係る実行サーバ２０のハードウェア構成の一例を示す図である。図８に示すように、実行サーバ２０はＦＰＧＡ２５を備える。ＦＰＧＡ２５は、ＩＰストア３０からダウンロードしたＩＰ（ＩＰコア化された回路）を動作させるための半導体集積回路である。なお、実行サーバ２０に含まれる他の要素に関する説明は、制御サーバ１０に関する説明と重複するので省略する。
【００８１】
続いて、第１の実施形態に係るクラウドシステムの動作について説明する。初めに、図９を参照しつつ、システム運用前の事前準備について説明する。
【００８２】
ステップＳ０１において、サービス管理者が、仮想マシンの名称（識別子）、仮想マシンが使用するＡＰＩの情報（ＡＰＩ情報）、サービスの動作確認（仮想マシンとＩＰ間の疎通チェック）に必要なテストパターンをそれぞれ対応づけチェックシートを作成する。
【００８３】
ステップＳ０２において、ＩＰ管理者は、テストパターンを実施可能な回路（疎通検証部）をＩＰに実装する。ＩＰ管理者は、ＩＰストア３０に開発したＩＰをリリース（登録）する。
【００８４】
その際、ＩＰ管理者は、ＩＰストア３０にリリース回路（開発したＩＰ）のチェックサムを登録する（ステップＳ０３）。また、ＩＰ管理者は、ＩＰストア３０に開発したＩＰをリリースする際、ＩＰストア３０に回路（ＩＰ）が提供するＡＰＩ情報を登録する（ステップＳ０４）。
【００８５】
上記ステップＳ０１〜Ｓ０４の処理は、サービス（仮想マシン）ごとに実施する。
【００８６】
次に、図１０を参照しつつ、第１のクラウドサイトに含まれる制御サーバ１０、実行サーバ２０の動作を説明する。
【００８７】
ステップＳ１０１において、仮想マシン生成指示部２０１は、サービス管理者からの仮想マシン生成指示を取得する。当該指示に応じて、仮想マシン生成指示部２０１は、実行サーバ２０に仮想マシンの生成を指示する。
【００８８】
ステップＳ１０２において、組み合わせ検証部２０３は、チェックシートを参照し、仮想マシンが要求するＡＰＩ情報を取得（把握）する。
【００８９】
ステップＳ１０３において、組み合わせ検証部２０３は、ＩＰストア３０から提供ＡＰＩ一覧を取得する。
【００９０】
ステップＳ１０４において、組み合わせ検証部２０３は、ステップＳ１０３にて取得した提供ＡＰＩ一覧のなかにステップＳ１０２にて取得したＡＰＩ情報が存在するか否かを確認する。つまり、組み合わせ検証部２０３は、ＩＰストア３０に、実行サーバ２０に作成された仮想マシンに適したＩＰが存在するか否かを確認する。
【００９１】
提供ＡＰＩ一覧のなかにチェックシートに記載されたＡＰＩ情報が含まれる場合（ステップＳ１０４、Ｙｅｓ分岐）、ステップＳ１０５以降の処理が実行される。提供ＡＰＩ一覧のなかにチェックシートに記載されたＡＰＩ情報が含まれない場合（ステップＳ１０４、Ｎｏ分岐）、異常終了する。
【００９２】
ステップＳ１０５において、組み合わせ検証部２０３は、ステップＳ１０４にて正当性が検証されたＩＰをＩＰストア３０から取得するようにＩＰ取得部２０４に指示する。当該指示に応じて、ＩＰストア３０からＩＰがＦＰＧＡ２５にダウンロードされる。
【００９３】
ステップＳ１０６において、回路データ検証部３０３は、ダウンロードされたＩＰのチェックサムをＦＰＧＡ２５から取得する。
【００９４】
ステップＳ１０７において、回路データ検証部３０３は、ＩＰストア３０からチェックサム一覧を取得する。
【００９５】
ステップＳ１０８において、回路データ検証部３０３は、ステップＳ１０７にて取得したチェックサム一覧のなかにステップＳ１０６にて取得したチェックサムが存在するか否かを確認する。当該チェックサムが存在する場合（ステップＳ１０８、Ｙｅｓ分岐）、ステップＳ１０９以降の処理が実行される。当該チェックサムが存在しない場合（ステップＳ１０８、Ｎｏ分岐）、異常終了する。
【００９６】
ステップＳ１０９において、疎通確認部３０４は、チェックシートを参照し、サービスの動作確認に必要なテストパターンを取得する。
【００９７】
ステップＳ１１０において、疎通確認部３０４は、ＦＰＧＡ２５に実装された疎通検証部４０１を起動し、先に取得したテストパターンを供給する。
【００９８】
テストパターンを取得した疎通検証部４０１は、テストパターンに沿った擬似トラフィックを仮想マシンに対して発行し、疎通テストを実行する。
【００９９】
疎通検証部４０１は、仮想マシンとＩＰ間の疎通（データの送受信）に成功したか否かを疎通確認部３０４に通知する。
【０１００】
ステップＳ１１１において、疎通確認部３０４は、疎通検証部４０１から取得した結果を確認する。疎通に成功した場合（ステップＳ１１１、Ｙｅｓ分岐）、正常終了する。疎通に失敗した場合（ステップＳ１１１、Ｎｏ分岐）、異常終了する。
【０１０１】
以上のように、第１の実施形態に係るクラウドシステムにおいては、サービス管理者が作成する１つのチェックシートを用いて、種々の検証が行われる。その結果、ステークホルダが素の関係を保ったまま（各作業者の独立性を保持したまま）、システムの立ち上げ、運用に必要な工程が全て自動で行われる。その結果、以下のような問題が解決される。
【０１０２】
上述のように、サービス管理者とＩＰ管理者が異なり、仮想マシンとＩＰのライフサイクルが異なる事からそれぞれの開発、リリースのタイミングが異なることが起こりうる。つまり、仮想マシンが期待するＡＰＩがＩＰに実装されていない等、仮想マシンとＩＰの組み合わせ不適切な場合があり得る。第１の実施形態では、チェックシートを用いた仮想マシンとＩＰの組み合わせに関する適否が検証されるので、上記問題を解消できる。
【０１０３】
また、ＩＰ管理者が開発したＩＰを登録するＩＰストア３０と当該登録されたＩＰを使用するサーバ（ダウンロード先の実行サーバ２０）は、物理的／論理的に距離があることが多い。そのため、ＩＰの転送失敗の可能性等を考慮すると、ＩＰストアに登録されたＩＰとダウンロードしたＩＰが一致しているか否かの検証が必要である。つまり、仮想マシンが使用するＩＰの正当性を確認する必要がある。この点、第１の実施形態では、ＩＰ管理者はＩＰのリリース時にチェックサム値をＩＰストア３０に登録し、制御サーバ（コントローラ、又は、インフラ管理者）がＦＰＧＡに当該ＩＰをダウンロードする際、上記正当性を検証している。つまり、ダウンロードされた回路（ＩＰ）のチェックサム値とＩＰストア３０から得られるＩＰのチェックサム一覧情報を比較する事で、ダウンロードした回路とリリースされた回路の一致（同一性）を確認し、回路の正当性が担保されている。
【０１０４】
さらに、１つのシステムにおけるステークホルダ（サービス管理者、ＩＰ管理者、インフラ管理者）が異なることが多い。そのため、サービスに適したＩＰの組み合わせが選択されていたとしても、実際に外部からトラフィックを流すまで、仮想マシンとＦＰＧＡ間の接続が正常に出来るかを確認する事が難しい。この点、第１の実施形態では、予めＩＰ内に実装する疎通チェック機構（疎通検証部４０１）を用いてＩＰ、仮想マシン、ＩＰ間に疑似的なトラフィックを発生させ、サーバ内で閉じた仮想マシンとＩＰ間の接続試験を自動的に実施する。これにより仮想マシンとＩＰが連携し正常に動作可能な事が確認される。
【０１０５】
以上のように、仮想マシン上で動作するサービスに適したＦＰＧＡ回路（ＩＰ）を自動的に選択し、かつ、仮想マシンと選択されたＩＰにて構築した環境（インフラ環境）において、仮想マシンとＩＰが正常に連携して動作出来るかを自動的に確認する。これによりサービス管理者、ＩＰ管理者、インフラ管理者がそれぞれ異なる場合でも、サービス／ＩＰが連携して動作可能な環境を構築可能な仕組みが提供できる。即ち、サービス管理者、ＩＰ管理者、インフラ管理者がそれぞれ独立して作業を行っている状態を維持しつつ、サービス管理者が作成した情報（チェックシート）を元に調整を行う。その結果、仮想マシンとＩＰの組み合わせの選択、ＩＰの正当性確認、仮想マシンとＩＰ間の疎通確認までを自動で実施できる。
【０１０６】
第１の実施形態に係るシステムは、少なくとも以下の２つの効果を奏する。第１に、サービス管理者が作成したチェックシートを活用し、仮想マシン／ＩＰの組み合わせ及びインフラ環境の構築を、ステークホルダ間の素な関係を保ったまま、自動で調整を実施できる。第２に、サーバ内に閉じて仮想マシンとＩＰの接続確認を自動で実施する事により、外部からの接続確認が不要となり、環境構築における負荷の軽減が期待できる。
【０１０７】
［変形例］
上記実施形態にて説明したクラウドシステムの構成、動作等は例示であって、システムの構成等を限定する趣旨ではない。例えば、制御サーバ１０の機能が実行サーバ２０に組み込まれていてもよい。
【０１０８】
上記制御サーバ１０は、複数の実行サーバ２０を管理する装置であって、各実行サーバ２０のハードウェアのオーケストレーションを担う装置であってもよい。つまり、制御サーバ１０は、ＮＦＶ−ＭＡＮＯ（NFV Management & Orchestration）等を含むネットワーク機能仮想化管理オーケストレーション装置であってもよい。
【０１０９】
上記実施形態では、ＩＰ管理者は、疎通確認部３０４から提供されるテストパターンを実行する疎通検証部４０１をＩＰに実装する場合について説明した。しかし、ＩＰ管理者は、サービス管理者から提供されるチェックシートに記載されたテストパターン（サービスの動作確認に必要なテストパターン）を参照し、当該テストパターンを実行する疎通検証部４０１をＩＰに実装してもよい。つまり、各テストパターンに汎用的に使用可能な疎通検証部４０１ではなく、各テストパターンそれぞれに適合した疎通検証部４０１がＩＰに実装されてもよい。
【０１１０】
また、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、実施形態で実行される工程の実行順序は、その記載の順番に制限されない。実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。
【０１１１】
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、仮想化基盤上でのシステム構築を実施し、かつＦＰＧＡとの連携を実施するシステム全般に好適に適用可能である。
【０１１２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
［付記１］
上述の第１の視点に係るシステムのとおりである。
［付記２］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＡＰＩの一覧情報を保持し、
前記制御サーバは、
前記ＡＰＩの一覧情報を前記ＩＰストアから取得し、前記チェックシートに含まれるＡＰＩが前記ＡＰＩの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、好ましくは付記１に記載のシステム。
［付記３］
前記制御サーバは、
前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰを前記ＩＰストアから取得すると共に、前記取得したＩＰを前記実行サーバに送信し、
前記実行サーバは、前記送信されたＩＰを前記ＦＰＧＡにダウンロードする、好ましくは付記２に記載のシステム。
［付記４］
前記実行サーバは、
前記ＦＰＧＡにダウンロードされたＩＰと、前記ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであって前記ＩＰストアに保持されているＩＰと、の同一性を検証する、好ましくは付記３に記載のシステム。
［付記５］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＩＰのチェックサムの一覧情報を保持し、
前記実行サーバは、
前記チェックサムの一覧情報を前記ＩＰストアから取得し、前記ＦＰＧＡにダウンロードされたＩＰのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記ＦＰＧＡにダウンロードされたＩＰと前記ＩＰストアに保持されているＩＰの同一性を検証する、好ましくは付記４に記載のシステム。
［付記６］
前記ＦＰＧＡにダウンロードされたＩＰには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記実行サーバは、
前記疎通検証部に前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる、好ましくは付記５に記載のシステム。
［付記７］
前記チェックシートは、前記仮想マシンが使用するＡＰＩに関するテストパターンを含み、
前記実行サーバは、
前記疎通検証部に前記テストパターンを供給することで、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、好ましくは付記６に記載のシステム。
［付記８］
前記制御サーバは、前記実行サーバに対し仮想マシンの生成を指示する好ましくは付記１乃至７のいずれか一に記載のシステム。
［付記９］
前記ＩＰストアは、ＩＰに関する開発、管理を行う管理者から取得した情報に基づき、前記ＡＰＩの一覧情報及び前記チェックサムの一覧情報を生成する、好ましくは付記５乃至７のいずれか一に記載のシステム。
［付記１０］
上述の第２の視点に係るサーバのとおりである。
［付記１１］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＡＰＩの一覧情報を保持し、
前記ＡＰＩの一覧情報を前記ＩＰストアから取得し、前記チェックシートに含まれるＡＰＩが前記ＡＰＩの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、付記１０に記載の制御サーバ。
［付記１２］
前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰを前記ＩＰストアから取得すると共に、前記取得したＩＰを前記実行サーバに送信して、前記実行サーバに対して、前記送信されたＩＰを前記ＦＰＧＡにダウンロードさせる、付記１１に記載の制御サーバ。
［付記１３］
前記実行サーバに対して、前記ＦＰＧＡにダウンロードされたＩＰと、前記ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであって前記ＩＰストアに保持されているＩＰと、の同一性を検証させる、付記１２に記載の制御サーバ。
［付記１４］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＩＰのチェックサムの一覧情報を保持し、
前記実行サーバに対して、前記チェックサムの一覧情報を前記ＩＰストアから取得し、前記ＦＰＧＡにダウンロードされたＩＰのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記ＦＰＧＡにダウンロードされたＩＰと前記ＩＰストアに保持されているＩＰの同一性を検証する、処理を実行させる付記１３に記載の制御サーバ。
［付記１５］
前記ＦＰＧＡにダウンロードされたＩＰには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記疎通検証部に対して、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる、付記１４に記載の制御サーバ。
［付記１６］
前記チェックシートは、前記仮想マシンが使用するＡＰＩに関するテストパターンを含み、
前記実行サーバに対して前記テストパターンを供給することで、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、付記１５に記載の制御サーバ。
［付記１７］
前記実行サーバに対して、仮想マシンの生成を指示する付記１０乃至１６のいずれか一に記載の制御サーバ。
［付記１８］
前記ＩＰストアに対して、ＩＰに関する開発、管理を行う管理者から取得した情報に基づき、前記ＡＰＩの一覧情報及び前記チェックサムの一覧情報を生成させる、付記１４乃至１６のいずれか一に記載の制御サーバ。
［付記１９］
上述の第３の視点に係る検証方法のとおりである。
［付記２０］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＡＰＩの一覧情報を保持し、
前記ＡＰＩの一覧情報を前記ＩＰストアから取得し、前記チェックシートに含まれるＡＰＩが前記ＡＰＩの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証するステップを含む付記１９に記載の検証方法。
［付記２１］
前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰを前記ＩＰストアから取得すると共に、前記取得したＩＰを前記実行サーバに送信して、前記実行サーバに対して、前記送信されたＩＰを前記ＦＰＧＡにダウンロードさせるステップを含む付記２０に記載の検証方法。
［付記２２］
前記実行サーバに対して、前記ＦＰＧＡにダウンロードされたＩＰと、前記ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであって前記ＩＰストアに保持されているＩＰと、の同一性を検証させるステップを含む付記２１に記載の検証方法。
［付記２３］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＩＰのチェックサムの一覧情報を保持し、
前記実行サーバに対して、前記チェックサムの一覧情報を前記ＩＰストアから取得し、前記ＦＰＧＡにダウンロードされたＩＰのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記ＦＰＧＡにダウンロードされたＩＰと前記ＩＰストアに保持されているＩＰの同一性を検証する、処理を実行させるステップを含む付記２２に記載の検証方法。
［付記２４］
前記ＦＰＧＡにダウンロードされたＩＰには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記疎通検証部に対して、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる、ステップを含む付記２３に記載の検証方法。
［付記２５］
前記チェックシートは、前記仮想マシンが使用するＡＰＩに関するテストパターンを含み、
前記実行サーバに対して前記テストパターンを供給することで、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させるステップを含む付記２４に記載の検証方法。
［付記２６］
前記実行サーバに対して、仮想マシンの生成を指示するステップを含む付記１９乃至２５のいずれか一に記載の検証方法。
［付記２７］
前記ＩＰストアに対して、ＩＰに関する開発、管理を行う管理者から取得した情報に基づき、前記ＡＰＩの一覧情報及び前記チェックサムの一覧情報を生成させるステップを含む付記２３乃至２５のいずれか一に記載の検証方法。
［付記２８］
上述の第４の視点に係るプログラムのとおりである。
［付記２９］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＡＰＩの一覧情報を保持し、
前記ＡＰＩの一覧情報を前記ＩＰストアから取得し、前記チェックシートに含まれるＡＰＩが前記ＡＰＩの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する処理を前記コンピュータに実行させる付記２８に記載のプログラム。
［付記３０］
前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰを前記ＩＰストアから取得すると共に、前記取得したＩＰを前記実行サーバに送信して、前記実行サーバに対して、前記送信されたＩＰを前記ＦＰＧＡにダウンロードさせる、処理を前記コンピュータに実行させる付記２９に記載のプログラム。
［付記３１］
前記実行サーバに対して、前記ＦＰＧＡにダウンロードされたＩＰと、前記ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであって前記ＩＰストアに保持されているＩＰと、の同一性を検証させる、処理の指示を前記コンピュータに実行させる付記３０に記載のプログラム。
［付記３２］
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＩＰのチェックサムの一覧情報を保持し、
前記実行サーバに対して、前記チェックサムの一覧情報を前記ＩＰストアから取得し、前記ＦＰＧＡにダウンロードされたＩＰのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記ＦＰＧＡにダウンロードされたＩＰと前記ＩＰストアに保持されているＩＰの同一性を検証する、処理の指示を前記コンピュータに実行させる付記３１に記載のプログラム。
［付記３３］
前記ＦＰＧＡにダウンロードされたＩＰには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記疎通検証部に対して、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる、処理の指示を前記コンピュータに実行させる付記３２に記載のプログラム。
［付記３４］
前記チェックシートは、前記仮想マシンが使用するＡＰＩに関するテストパターンを含み、
前記実行サーバに対して前記テストパターンを供給することで、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、処理の指示を前記コンピュータに実行させる付記３３に記載のプログラム。
［付記３５］
前記実行サーバに対して、仮想マシンを生成する処理の指示を前記コンピュータに実行させる付記２８乃至３４のいずれか一に記載のプログラム。
［付記３６］
前記ＩＰストアに対して、ＩＰに関する開発、管理を行う管理者から取得した情報に基づき、前記ＡＰＩの一覧情報及び前記チェックサムの一覧情報を生成する処理の指示を前記コンピュータに実行させる付記３２乃至３４のいずれか一に記載のプログラム。
なお、付記１０、１９、２８の形態は、付記１の形態と同様に、付記２の形態〜付記９の形態に展開することが可能である。例えば、付記１０は付記１１〜１８のように展開されるが、展開形態はこれらに限定されない。
【０１１３】
なお、引用した上記の非特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択（部分的削除を含む）が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１１４】
１０、１０１  制御サーバ
１１、２１  ＣＰＵ（Central Processing Unit）
１２、２２  メモリ
１３、２３  入出力インターフェイス
１４、２４  ＮＩＣ（Network Interface Card）
２０、１００  実行サーバ
２５  ＦＰＧＡ（Field Programmable Gate Array）
３０、１０２  ＩＰストア
４０−１〜４０−３  端末
２０１  仮想マシン生成指示部
２０２  チェックシート入力部
２０３  組み合わせ検証部
２０４  ＩＰ取得部
２０５、３０５  通信制御部
３０１  仮想マシン生成部
３０２  ＩＰ書き込み部
３０３  回路データ検証部
３０４  疎通確認部
４０１  疎通検証部
【図１】
2019235467.tif 000003
【図２】
2019235467.tif 000004
【図３】
2019235467.tif 000005
【図４】
2019235467.tif 000006
【図５】
2019235467.tif 000007
【図６】
2019235467.tif 000008
【図７】
2019235467.tif 000009
【図８】
2019235467.tif 000010
【図９】
2019235467.tif 000011
【図１０】
2019235467.tif 000012
【手続補正書】
【提出日】令和2年12月4日(2020.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記実行サーバを制御する制御サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、
を含み、
前記制御サーバは、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、システム。
【請求項２】
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＡＰＩの一覧情報を保持し、
前記制御サーバは、
前記ＡＰＩの一覧情報を前記ＩＰストアから取得し、前記チェックシートに含まれるＡＰＩが前記ＡＰＩの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する、請求項１に記載のシステム。
【請求項３】
前記制御サーバは、
前記仮想マシンと前記ＦＰＧＡにダウンロードされるＩＰの組み合わせが適切であると判定されたＩＰを前記ＩＰストアから取得すると共に、前記取得したＩＰを前記実行サーバに送信し、
前記実行サーバは、前記送信されたＩＰを前記ＦＰＧＡにダウンロードする、請求項２に記載のシステム。
【請求項４】
前記実行サーバは、
前記ＦＰＧＡにダウンロードされたＩＰと、前記ＦＰＧＡにダウンロードされたＩＰに対応するＩＰであって前記ＩＰストアに保持されているＩＰと、の同一性を検証する、請求項３に記載のシステム。
【請求項５】
前記ＩＰストアは、保持されているＩＰそれぞれが提供するＩＰのチェックサムの一覧情報を保持し、
前記実行サーバは、
前記チェックサムの一覧情報を前記ＩＰストアから取得し、前記ＦＰＧＡにダウンロードされたＩＰのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記ＦＰＧＡにダウンロードされたＩＰと前記ＩＰストアに保持されているＩＰの同一性を検証する、請求項４に記載のシステム。
【請求項６】
前記ＦＰＧＡにダウンロードされたＩＰには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記実行サーバは、
前記疎通検証部に前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを検証させる、請求項５に記載のシステム。
【請求項７】
前記チェックシートは、前記仮想マシンが使用するＡＰＩに関するテストパターンを含み、
前記実行サーバは、
前記疎通検証部に前記テストパターンを供給することで、前記仮想マシンと前記ＦＰＧＡにダウンロードされたＩＰとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、請求項６に記載のシステム。
【請求項８】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、に接続され、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する制御サーバ。
【請求項９】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記実行サーバを制御する制御サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、
を含むシステムにおいて、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照するステップと、
前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証するステップと、
を含む、検証方法。
【請求項１０】
ＦＰＧＡ（Field Programmable Gate Array）が搭載され、前記ＦＰＧＡをハードウェアリソースの１つとして使用する仮想マシンを生成する実行サーバと、
前記ＦＰＧＡにダウンロードするＩＰ（Intellectual Property）を保持するＩＰストアと、に接続された制御サーバに搭載されたコンピュータに、
少なくとも前記仮想マシンと前記仮想マシンが使用するＡＰＩ（Application Programming Interface）を関連付けた情報を含むチェックシートを参照する処理と、
前記仮想マシンと前記ＩＰストアに保持されているＩＰであって前記ＦＰＧＡにダウンロードされるＩＰの組み合わせの適否を検証する処理と、
を実行させるプログラム。
【国際調査報告】
2019235467.tif 000013
2019235467.tif 000014
2019235467.tif 000015
2019235467.tif 000016