JP7314935B2 - システム、サーバ、検証方法及びプログラム - Google Patents

システム、サーバ、検証方法及びプログラム Download PDF

Info

Publication number
JP7314935B2
JP7314935B2 JP2020523115A JP2020523115A JP7314935B2 JP 7314935 B2 JP7314935 B2 JP 7314935B2 JP 2020523115 A JP2020523115 A JP 2020523115A JP 2020523115 A JP2020523115 A JP 2020523115A JP 7314935 B2 JP7314935 B2 JP 7314935B2
Authority
JP
Japan
Prior art keywords
fpga
virtual machine
downloaded
store
execution server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020523115A
Other languages
English (en)
Other versions
JPWO2019235467A1 (ja
Inventor
良介 大原
勇仁 横川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2019235467A1 publication Critical patent/JPWO2019235467A1/ja
Application granted granted Critical
Publication of JP7314935B2 publication Critical patent/JP7314935B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • G06Q50/184Intellectual property management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2018-107970号(2018年 6月 5日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、システム、サーバ、検証方法及びプログラムに関する。
近年、ビッグデータやIoT(Internet of Things)といった技術の進展に伴い、大容量のデータ処理が必要になるシステムが増加している。このような状況のため、システムのさらなる高速化が求められている。
システムの高速化に対する1つの解として、ソフトウェア処理の一部をハードウェア実装にて実現するHW(Hardware)アクセラレータの使用がある。HWアクセラレータ技術に適したデバイスとしてFPGA(Field Programmable Gate Array)が存在する。
FPGAは、非特許文献1に記載されたように以下の特徴を備える。FPGAは、チップ製造後に処理(アプリケーション)の書き換えが可能である。また、当該処理の書き換えが可能であるため、FPGAを使用することで、初期コストを抑えたスモールスタートでの市場投入(トライ)が可能である。また、FPGAには、リソース(CPU(Central Processing Unit)リソース、消費電力等)消費が少なく、且つ、処理の高速化が可能という利点もある。
さらに、FPGAとCPUが密に結合したMCP(Multi Chip Package)型のFPGAの提供も始まっており、今後ますますFPGAの活用が進むものと考えられる。
また、一方で、NFV(Network Function Virtualization)技術の進歩に伴い、仮想化基盤上でのシステム構築も普及し始めており、FPGAとNFV技術は今後組み合わせて使用されていく機会が増加するものと予想される。
Intel、"FPGAの基本がわかるリソースセンター"、[online]、[平成30年5月24日検索]、インターネット〈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〉
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
上述のように、今後、FPGAと仮想化基盤(NFV技術)を組み合わせたシステムが普及していくと考えられる。FPGAとNFV技術を組み合わせて使用するシステムにおいて、様々な主体が協調してシステムを作るエコシステムの観点から、各種管理者はそれぞれ異なると想定される。
例えば、サービス(アプリケーション/ワークロード)を開発する開発者/管理者と、IP(Intellectual Property;FPGA回路)の開発者/管理者と、インフラ(IaaS;Infrastructure as a Service)の構築者/管理者はそれぞれ異なることが想定される。なお、以降の説明において、サービスに関する開発者/管理者を「サービス管理者」、IPに関する開発者/管理者を「IP管理者」、インフラに関する構築者/管理者を「インフラ管理者」とそれぞれ表記する。また、上記各管理者を総称する際には、「ステークホルダ」と表記する。
通常、上記システムを立ち上げ、運用するために必要な業務は、それぞれ別の作業者が担当し、各人が独立して作業する。そのため、互いの作業への介入が難しく以下のような問題が発生する可能性がある。サービス管理者とIP管理者が異なり、仮想マシンとIPそれぞれのライフサイクルが異なる事からアプリケーションの開発とIP(IPコア)のリリースのタイミングが異なる。そのため、仮想マシン(VM;Virtual Machine)が期待するAPI(Application Programming Interface)がIPに実装されていないことが起こりうる。つまり、仮想マシンとIPが適していない組み合わせで使用されてしまう可能性がある。
本発明は、仮想マシンと当該仮想マシンが利用するFPGAに書き込まれるIPが不適切な組み合わせとなることを防止することに寄与する、システム、サーバ、検証方法及びプログラムを提供することを主たる目的とする。
本発明乃至開示の第1の視点によれば、FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、前記実行サーバを制御する制御サーバと、前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、を含み、前記制御サーバは、少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証する、システムが提供される。
本発明乃至開示の第2の視点によれば、FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、に接続され、少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証する、制御サーバが提供される。
本発明乃至開示の第3の視点によれば、FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、前記実行サーバを制御する制御サーバと、前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、を含むシステムにおいて、少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照するステップと、前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証するステップと、を含む、検証方法が提供される。
本発明乃至開示の第4の視点によれば、FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、に接続された制御サーバに搭載されたコンピュータに、少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照する処理と、前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証する処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明乃至開示の各視点によれば、仮想マシンと当該仮想マシンが利用するFPGAに書き込まれるIPが不適切な組み合わせとなることを防止することに寄与する、システム、サーバ、検証方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係るクラウドシステムの概略構成を示す図である。 第1の実施形態に係るクラウドシステムの動作を説明するための図である。 第1の実施形態に係るクラウドシステムの動作を説明するための図である。 第1の実施形態に係る制御サーバの処理構成の一例を示す図である。 第1の実施形態に係る実行サーバの処理構成の一例を示す図である。 第1の実施形態に係る制御サーバのハードウェア構成の一例を示す図である。 第1の実施形態に係る実行サーバのハードウェア構成の一例を示す図である。 第1の実施形態に係るシステム運用前の事前準備の一例を示すフローチャートである。 第1の実施形態に係る制御サーバ、実行サーバの動作の一例を示すフローチャートである。
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
一実施形態に係るシステムは、実行サーバ100と、制御サーバ101と、IPストア102と、を含む(図1参照)。実行サーバ100は、FPGAが搭載され、FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する。制御サーバ101は、実行サーバ100を制御する。IPストア102は、FPGAにダウンロードするIPを保持する。制御サーバ101は、少なくとも仮想マシンの識別子と仮想マシンが使用するAPIを関連付けた情報を含むチェックシートを参照し、仮想マシンとIPストアに保持されているIPであってFPGAにダウンロードされるIPの組み合わせの適否を検証する。
上記システムにおいて、サービス管理者は独立してチェックシートを生成する。当該チェックシートには、サービス管理者が作成する仮想マシンの名称、仮想マシンが要求するAPI情報が少なくとも含まれる。制御サーバ101は、当該チェックシートを参照し、仮想マシンが要求するAPI情報と、IP管理者がIPリリース時にIPストア102に登録するIPが提供するAPI情報と、を用いて仮想マシンとIPの組み合わせに関する適否を検証する。当該検証により、仮想マシンが実行サーバ100に生成されたが、当該仮想マシンが使用するAPIがIPストア102に登録されておらず、仮想マシンとIPが適していない組み合わせで使用されるような事態を防止できる。このように、上記システムでは、ステークホルダ(例えば、サービス管理者、IP管理者)が互いに素となる関係を保ったまま、仮想マシンとIPの組み合わせ適否を検証できる。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2は、第1の実施形態に係るクラウドシステムの概略構成を示す図である。図2を参照すると、クラウドシステムは、クラウドサイトに設置された制御サーバ10及び実行サーバ20と、IPストア30と、端末40-1~40-3と、を含んで構成される。
図2に示すクラウドシステムでは、実行サーバ20に仮想マシンが生成され、当該仮想マシンを用いてユーザにサービス、アプリケーションを提供する。例えば、ビックデータの解析やAI(Artificial Intelligence)による情報処理がクラウドシステムにて実現される。なお、図2には、当該クラウドシステムを利用するユーザや当該ユーザが利用する端末等は図示していない。
制御サーバ10は、クラウドサイトを制御する装置である。とりわけ、制御サーバ10は、実行サーバ20を制御する。例えば、制御サーバ10は、実行サーバ20に仮想マシンを生成する。
実行サーバ20は、例えば、クラウドコンピューティングを提供する装置(物理マシン)である。実行サーバ20には、FPGAが搭載される。実行サーバ20には、当該FPGAをハードウェアリソースの1つとして使用する仮想マシンが生成される。つまり、実行サーバ20は、内部に仮想マシン(VM)を生成し、当該仮想マシンを使ってユーザにアプリケーション、サービス等を提供する。
IPストア30は、IP管理者(例えば、ユーザ、FPGAベンダー、パートナー企業)が開発したIP(IPコア)を保持する装置(サーバ)である。IPストア30は、実行サーバ20のFPGAにダウンロードするIPを保持するサーバ(ウェブサイトを提供するサーバ)等である。IP開発者は、自身が開発した回路をIPコア化し、当該IPコアをIPストア30に登録(リリース)する。その際、IP開発者は、IPが提供するAPIの情報とIPのチェックサムもIPストア30に登録する。
端末40-1は、サービス管理者が使用する端末である。サービス管理者は、端末40-1を使用してアプリケーション(サービス)を提供する仮想マシンに関するチェックシートを作成し、当該チェックシートをクラウドサイト(インフラ)に送信する。
チェックシートは、クラウドシステムにてアプリケーションを提供する仮想マシンを識別する情報(識別子)と、当該仮想マシンが使用するAPI情報(APIを特定する情報;識別子)と、仮想マシンとIP間の疎通を検証するためのテストパターンと、を含む。
端末40-2は、IP管理者が使用する端末である。IP管理者は、チェックシートに記載された仮想マシンに割り当てられるFPGAに求められる回路をIPとして開発する。例えば、IP管理者は、仮想マシンがビックデータ解析の用途に用いられるのであれば、当該ビックデータ解析用のHWアクセラレータを実現するIPを開発する。
また、IP管理者は、チェックシートに記載されたテストパターンを実行する機能を上記IPに実装する。具体的には、IP管理者は、IPが書き込まれたFPGAにチェックシートに記載されたテストパターンが供給されると当該テストパターンを実行する「疎通検証部」をIPに実装する。
IP管理者は、開発したIPを端末40-2を使用してIPストア30に登録する。その際、IP管理者は、開発したIP(IPストア30に提供するIP)のチェックサムを生成し、当該チェックサムと開発したIP及びそのAPIを関連付けてIPストア30に登録する。チェックサムの計算は任意の方法を用いることができる。例えば、TCP(Transmission Control Protocol)ヘッダに格納されるチェックサムと同様な方法により上記チェックサムを計算してもよい。
なお、IPストア30は、IP管理者が登録した情報に基づき、当該IPストア30が保持しているIPそれぞれが提供するAPIの一覧情報(提供API一覧)とIPのチェックサムの一覧情報(チェックサム一覧)を作成する。IPストア30は、必要に応じてこれらの一覧情報を制御サーバ10、実行サーバ20に提供する。
端末40-3は、インフラ管理者が使用する端末である。インフラ管理者は、端末40-3を使用してクラウドサイト(インフラ)の構築、管理を行う。
図2において、制御サーバ10は、仮想マシンと仮想マシンが使用するAPIを関連付けた情報を含むチェックシートを参照し、仮想マシンとIPストアに保持されているIPであってFPGAにダウンロードされるIPの組み合わせの適否を検証する。つまり、仮想マシンとIP(回路)の組み合わせに問題がないか否かが検証され、実行サーバ20に構築された仮想マシンとIP(回路)の適合性の確認がなされる。
その後、組み合わせが適切と判断されたIPが、実行サーバ20に搭載されたFPGAにIPストア30から必要なIPがダウンロードされ書き込まれる。
その際、FPGAにダウンロードされたIPと、FPGAにダウンロードされたIPに対応するIPであってIPストアに保持されているIPと、の同一性が検証される。さらに、実際に仮想マシン(アプリケーション)とIP(回路)による動作が検証される。つまり、仮想マシンとIP(回路)が実行サーバ20上で正常に動作することが検証される。
次に、図3、図4を参照しつつ、第1の実施形態に係るクラウドシステムの動作概略を説明する。図3、図4では、仮想マシンの作成時にIPも同時にダウンロード(書き込み)され、且つ、当該処理が正常に終了した場合の動作を説明する。また、図3、図4では、後述する制御サーバ10、実行サーバ20の一部処理モジュールを記載している。
初めに、サービス管理者は、制御サーバ10に対して仮想マシン(VM)の作成を指示する。当該指示を受けた制御サーバ10は、実行サーバ20に対して仮想マシンを生成するように指示をする。図3の例では、仮想マシンVM#αが実行サーバ20に生成される。
仮想マシンVM#αには、CPU、メモリ等に加え、FPGAがハードウェアリソースとして割り当てられる。FPGAにはCRAM(Configuration Random Access Memory)が含まれ、当該CRAMに仮想マシンVM#αに割り当てられたFPGAにより実現する回路がIPコア化され書き込まれる。例えば、仮想マシンVM#αは、FPGAをHWアクセラレータとして使用し、一部の処理の実行を当該FPGAに委託する。
仮想マシンVM#αとFPGA(IPコア)とのインターフェイス(データの送受信)は、APIにより規定され、図3の例では、IP=Aに対応する「aaa」という仕様のAPIを用いてデータ(パケット)の送受信がなされる。なお、APIに関する仕様はサービス管理者、IP管理者の間で共用されている。
サービス管理者は、上記リソースの割当等を含む仮想マシンの生成指示を制御サーバ10に行う。また、サービス管理者は、制御サーバ10に対して上記チェックシートを入力する。上述のように、チェックシートにより、仮想マシンごとに、API情報とテストパターンが対応付けられている。つまり、チェックシートとは、サービス管理者が作成した、仮想マシン名、各仮想マシンが要求するAPI情報、サービスの動作確認に必要なテストパターンをまとめた情報である。
図3を参照すると、例えば、仮想マシンVM#αは「aaa」というAPIを利用し、当該APIの動作を検証するためのテストパターンは「パターン1」である。
制御サーバ10には、組み合わせ検証部203が含まれ、当該組み合わせ検証部203は、チェックシートを参照し、仮想マシンが要求しているAPIを把握する。図3の例では、組み合わせ検証部203は、仮想マシンVM#αは、「aaa」と「ccc」のAPIを持つIPを要求していることを把握する。
このように、組み合わせ検証部203は、サービス管理者が入力したチェックシートを参照し、当該チェックシートに記載された仮想マシンと対応するAPI情報を把握する。
組み合わせ検証部203は、IPストア30から提供API一覧を取得する。組み合わせ検証部203は、取得した提供API一覧のなかに上記チェックシートに記載されたAPI情報が含まれている場合には、仮想マシンとAPI(IP)の組み合わせは正しい(適正)と判断する。組み合わせ検証部203は、取得した提供API一覧のなかに上記チェックシートに記載されたAPI情報が含まれていない場合には、仮想マシンとAPI(IP)の組み合わせは間違っている(不適正)と判断する。
組み合わせ検証部203は、上記組み合わせが適正な場合には、チェックシートに記載された仮想マシンに適したIPを選択する。例えば、図3の例では、仮想マシンVM#αが使用するAPIの識別子(API情報)は、「aaa」であるので、提供API一覧に記載されたIP=「A」が選択される。選択されたIPは、実行サーバ20のFPGAにダウンロード(書き込み)される。
実行サーバ20には、回路データ検証部303が含まれる。回路データ検証部303は、IPがダウンロードされたFPGAにアクセスし、当該ダウンロードされたIPのチェックサムを取得する。例えば、FPGAのCRAMに上記チェックサムが記載されていれば、回路データ検証部303は、当該CRAMにアクセスしてチェックサムを取得する。あるいは、IPのダウンロードの過程にてチェックサムが計算できる場合には、回路データ検証部303は、当該計算値をチェックサムとして取得する。
さらに、回路データ検証部303は、IPストア30からチェックサム一覧を取得する。回路データ検証部303は、取得したチェックサム一覧のなかにFPGAにダウンロードされたIPに対応するチェックサムが存在するか否かを確認することで、ダウンロードしたIPの正当性を検証する。つまり、回路データ検証部303により、IPストア30からIPが正常にダウンロードされたか否かが検証される。
具体的には、ダウンロードされたIPに対応するチェックサムが一覧のなかに存在すれば、回路データ検証部303は、上記IPのダウンロードは正常に行われたと判断する。しかし、ダウンロードされたIPに対応するチェックサムが一覧のなかに存在しなければ、回路データ検証部303は、上記IPのダウンロードは正常に行われなかったと判断する。
図3の例では、仮想マシンVM#αは、「A」のIPを使うので、当該IPに対応するチェックサム「xxxxx」が、IPストア30から取得したチェックサム一覧のなかに存在するか否かが判定される。
図4は、実行サーバ20における疎通チェックの動作を説明するための図である。図4の左側は、サービス運用時のトラフィックの流れを示す。図4の右側は、疎通検証部401による接続確認を示す。
疎通検証部401は、FPGAにダウンロードされるIPに組み込まれたモジュールであって、仮想マシンとFPGA間のデータ送受信が正常に実施可能か否かを判定する手段である。
疎通検証部401は、IP管理者がサービス管理者から提供されるチェックシートに記載されたテストパターンを実行する。図4に示すように、疎通検証部401は、サービス提供時(図4左側)に送受信される実パケット(実データ)に対応する擬似パケット(疑似データ)を仮想マシンに送信する。具体的には、疎通検証部401は、チェックシートのテストパターンを再現するように上記擬似パケットの送信を行う。
疎通検証部401は、チェックシートに記載された擬似パケットを仮想マシンに送信し、チェックシートに記載された応答(擬似パケットへの応答)が得られるか否かを検証する。疎通検証部401は、チェックシートに記載されたサービスの動作確認に必要なテストパターンを取得し、仮想マシンとFPGA間の疎通確認を実施する。
図3、図4の例では、疎通検証部401は、仮想マシンVM#αが使用するIP=Aに対応するテストパターン1に係る疎通チェック(擬似パケット及び応答パケットの確認)を行う。
続いて、各装置の処理構成(処理モジュール)について説明する。
図5は、第1の実施形態に係る制御サーバ10の処理構成(処理モジュール)の一例を示す図である。図5を参照すると、制御サーバ10は、仮想マシン生成指示部201と、チェックシート入力部202と、組み合わせ検証部203と、IP取得部204と、通信制御部205と、を含んで構成される。
仮想マシン生成指示部201は、サービス管理者からの指示に応じて実行サーバ20に仮想マシンを生成するように指示する手段である。
チェックシート入力部202は、サービス管理者が作成するチェックシートを入力する手段である。取得したチェックシートは、制御サーバ10の各処理モジュール(主に、組み合わせ検証部203)にて参照される。また、チェックシート入力部202は、取得したチェクシートを、通信制御部205を介して実行サーバ20に送信する。
組み合わせ検証部203の機能は上述のとおりである。組み合わせ検証部203は、APIの一覧情報をIPストア30から取得し、チェックシートのAPIがAPIの一覧情報に含まれるか否かに応じて、仮想マシンとFPGAにダウンロードされるIPの組み合わせの適否を検証する。
組み合わせ検証部203は、仮想マシンとIPの組み合わせが適正(正しい)と判断した場合には、その旨をIP取得部204に通知し、当該IPをIPストア30から取得するように指示する。
IP取得部204は、正当性が確認されたIPをIPストア30から取得(ダウンロード)し、当該IPを実行サーバ20に送信する。その際、IP取得部204は、当該送信されたIPをFPGAに書き込むように実行サーバ20に指示する。
このように、制御サーバ10は、仮想マシンとFPGAにダウンロードされるIPの組み合わせが適切であると判定されたIPをIPストア30から取得すると共に、取得したIPを実行サーバ20に送信する。実行サーバ20は、送信されたIPをFPGAにダウンロードする。
通信制御部205は、他の装置(例えば、実行サーバ20)との間の通信を制御する手段である。
図6は、第1の実施形態に係る実行サーバ20の処理構成(処理モジュール)の一例を示す図である。図6を参照すると、実行サーバ20は、仮想マシン生成部301と、IP書き込み部302と、回路データ検証部303と、疎通確認部304と、通信制御部305と、を含んで構成される。
仮想マシン生成部301は、制御サーバ10を介してサービス管理者から指示された仕様の仮想マシンを生成する手段である。
IP書き込み部302は、制御サーバ10から取得したIPをFPGAに書き込む(ダウンロードする)手段である。
回路データ検証部303の機能は上述のとおりである。回路データ検証部303は、チェックサム一覧をIPストア30から取得する。回路データ検証部303は、FPGAにダウンロードされたIPのチェックサムがチェックサム一覧に含まれるか否かに応じて、FPGAにダウンロードされたIPとIPストア30に保持されているIPの同一性を検証する。
疎通確認部304は、FPGAに実装された疎通検証部401に仮想マシンとFPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを検証させる手段である。なお、上述のように、疎通検証部401は、仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するためのモジュールである。
疎通確認部304は、例えば、FPGAに実装された疎通検証部401を起動し、当該疎通検証部401に対してチェックシートに記載されたテストパターンを供給する。その後、疎通確認部304は、疎通検証部401に対して仮想マシンとIPの間の疎通テストを実行するように指示する。つまり、疎通確認部304は、疎通検証部401にテストパターンを供給することで、仮想マシンとFPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを疎通検証部401に検証させる。
通信制御部305は、他の装置(例えば、制御サーバ10)との間の通信を制御する手段である。例えば、通信制御部305は、制御サーバ10からチェックシートを取得すると、当該チェックシートを内部モジュール(主に、回路データ検証部303、疎通確認部304)が参照可能となるようにメモリ等に格納する。
続いて、第1の実施形態に係る各装置のハードウェア構成を説明する。
図7は、第1の実施形態に係る制御サーバ10のハードウェア構成の一例を示す図である。制御サーバ10は、所謂、情報処理装置(コンピュータ)により実現され、図7に例示する構成を備える。例えば、制御サーバ10は、内部バスにより相互に接続される、CPU11、メモリ12、入出力インターフェイス13及び通信手段であるNIC(Network Interface Card)14等を備える。
なお、図7に示す構成は、制御サーバ10のハードウェア構成を限定する趣旨ではない。制御サーバ10には、図示しないハードウェアも含まれていてもよい。
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等である。
入出力インターフェイス13は、図示しない入出力装置のインターフェイスとなる手段である。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
上述の制御サーバ10の各処理モジュールは、例えば、メモリ12に格納されたプログラムをCPU11が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
図8は、第1の実施形態に係る実行サーバ20のハードウェア構成の一例を示す図である。図8に示すように、実行サーバ20はFPGA25を備える。FPGA25は、IPストア30からダウンロードしたIP(IPコア化された回路)を動作させるための半導体集積回路である。なお、実行サーバ20に含まれる他の要素に関する説明は、制御サーバ10に関する説明と重複するので省略する。
続いて、第1の実施形態に係るクラウドシステムの動作について説明する。初めに、図9を参照しつつ、システム運用前の事前準備について説明する。
ステップS01において、サービス管理者が、仮想マシンの名称(識別子)、仮想マシンが使用するAPIの情報(API情報)、サービスの動作確認(仮想マシンとIP間の疎通チェック)に必要なテストパターンをそれぞれ対応づけチェックシートを作成する。
ステップS02において、IP管理者は、テストパターンを実施可能な回路(疎通検証部)をIPに実装する。IP管理者は、IPストア30に開発したIPをリリース(登録)する。
その際、IP管理者は、IPストア30にリリース回路(開発したIP)のチェックサムを登録する(ステップS03)。また、IP管理者は、IPストア30に開発したIPをリリースする際、IPストア30に回路(IP)が提供するAPI情報を登録する(ステップS04)。
上記ステップS01~S04の処理は、サービス(仮想マシン)ごとに実施する。
次に、図10を参照しつつ、第1のクラウドサイトに含まれる制御サーバ10、実行サーバ20の動作を説明する。
ステップS101において、仮想マシン生成指示部201は、サービス管理者からの仮想マシン生成指示を取得する。当該指示に応じて、仮想マシン生成指示部201は、実行サーバ20に仮想マシンの生成を指示する。
ステップS102において、組み合わせ検証部203は、チェックシートを参照し、仮想マシンが要求するAPI情報を取得(把握)する。
ステップS103において、組み合わせ検証部203は、IPストア30から提供API一覧を取得する。
ステップS104において、組み合わせ検証部203は、ステップS103にて取得した提供API一覧のなかにステップS102にて取得したAPI情報が存在するか否かを確認する。つまり、組み合わせ検証部203は、IPストア30に、実行サーバ20に作成された仮想マシンに適したIPが存在するか否かを確認する。
提供API一覧のなかにチェックシートに記載されたAPI情報が含まれる場合(ステップS104、Yes分岐)、ステップS105以降の処理が実行される。提供API一覧のなかにチェックシートに記載されたAPI情報が含まれない場合(ステップS104、No分岐)、異常終了する。
ステップS105において、組み合わせ検証部203は、ステップS104にて正当性が検証されたIPをIPストア30から取得するようにIP取得部204に指示する。当該指示に応じて、IPストア30からIPがFPGA25にダウンロードされる。
ステップS106において、回路データ検証部303は、ダウンロードされたIPのチェックサムをFPGA25から取得する。
ステップS107において、回路データ検証部303は、IPストア30からチェックサム一覧を取得する。
ステップS108において、回路データ検証部303は、ステップS107にて取得したチェックサム一覧のなかにステップS106にて取得したチェックサムが存在するか否かを確認する。当該チェックサムが存在する場合(ステップS108、Yes分岐)、ステップS109以降の処理が実行される。当該チェックサムが存在しない場合(ステップS108、No分岐)、異常終了する。
ステップS109において、疎通確認部304は、チェックシートを参照し、サービスの動作確認に必要なテストパターンを取得する。
ステップS110において、疎通確認部304は、FPGA25に実装された疎通検証部401を起動し、先に取得したテストパターンを供給する。
テストパターンを取得した疎通検証部401は、テストパターンに沿った擬似トラフィックを仮想マシンに対して発行し、疎通テストを実行する。
疎通検証部401は、仮想マシンとIP間の疎通(データの送受信)に成功したか否かを疎通確認部304に通知する。
ステップS111において、疎通確認部304は、疎通検証部401から取得した結果を確認する。疎通に成功した場合(ステップS111、Yes分岐)、正常終了する。疎通に失敗した場合(ステップS111、No分岐)、異常終了する。
以上のように、第1の実施形態に係るクラウドシステムにおいては、サービス管理者が作成する1つのチェックシートを用いて、種々の検証が行われる。その結果、ステークホルダが素の関係を保ったまま(各作業者の独立性を保持したまま)、システムの立ち上げ、運用に必要な工程が全て自動で行われる。その結果、以下のような問題が解決される。
上述のように、サービス管理者とIP管理者が異なり、仮想マシンとIPのライフサイクルが異なる事からそれぞれの開発、リリースのタイミングが異なることが起こりうる。つまり、仮想マシンが期待するAPIがIPに実装されていない等、仮想マシンとIPの組み合わせ不適切な場合があり得る。第1の実施形態では、チェックシートを用いた仮想マシンとIPの組み合わせに関する適否が検証されるので、上記問題を解消できる。
また、IP管理者が開発したIPを登録するIPストア30と当該登録されたIPを使用するサーバ(ダウンロード先の実行サーバ20)は、物理的/論理的に距離があることが多い。そのため、IPの転送失敗の可能性等を考慮すると、IPストアに登録されたIPとダウンロードしたIPが一致しているか否かの検証が必要である。つまり、仮想マシンが使用するIPの正当性を確認する必要がある。この点、第1の実施形態では、IP管理者はIPのリリース時にチェックサム値をIPストア30に登録し、制御サーバ(コントローラ、又は、インフラ管理者)がFPGAに当該IPをダウンロードする際、上記正当性を検証している。つまり、ダウンロードされた回路(IP)のチェックサム値とIPストア30から得られるIPのチェックサム一覧情報を比較する事で、ダウンロードした回路とリリースされた回路の一致(同一性)を確認し、回路の正当性が担保されている。
さらに、1つのシステムにおけるステークホルダ(サービス管理者、IP管理者、インフラ管理者)が異なることが多い。そのため、サービスに適したIPの組み合わせが選択されていたとしても、実際に外部からトラフィックを流すまで、仮想マシンとFPGA間の接続が正常に出来るかを確認する事が難しい。この点、第1の実施形態では、予めIP内に実装する疎通チェック機構(疎通検証部401)を用いてIP、仮想マシン、IP間に疑似的なトラフィックを発生させ、サーバ内で閉じた仮想マシンとIP間の接続試験を自動的に実施する。これにより仮想マシンとIPが連携し正常に動作可能な事が確認される。
以上のように、仮想マシン上で動作するサービスに適したFPGA回路(IP)を自動的に選択し、かつ、仮想マシンと選択されたIPにて構築した環境(インフラ環境)において、仮想マシンとIPが正常に連携して動作出来るかを自動的に確認する。これによりサービス管理者、IP管理者、インフラ管理者がそれぞれ異なる場合でも、サービス/IPが連携して動作可能な環境を構築可能な仕組みが提供できる。即ち、サービス管理者、IP管理者、インフラ管理者がそれぞれ独立して作業を行っている状態を維持しつつ、サービス管理者が作成した情報(チェックシート)を元に調整を行う。その結果、仮想マシンとIPの組み合わせの選択、IPの正当性確認、仮想マシンとIP間の疎通確認までを自動で実施できる。
第1の実施形態に係るシステムは、少なくとも以下の2つの効果を奏する。第1に、サービス管理者が作成したチェックシートを活用し、仮想マシン/IPの組み合わせ及びインフラ環境の構築を、ステークホルダ間の素な関係を保ったまま、自動で調整を実施できる。第2に、サーバ内に閉じて仮想マシンとIPの接続確認を自動で実施する事により、外部からの接続確認が不要となり、環境構築における負荷の軽減が期待できる。
[変形例]
上記実施形態にて説明したクラウドシステムの構成、動作等は例示であって、システムの構成等を限定する趣旨ではない。例えば、制御サーバ10の機能が実行サーバ20に組み込まれていてもよい。
上記制御サーバ10は、複数の実行サーバ20を管理する装置であって、各実行サーバ20のハードウェアのオーケストレーションを担う装置であってもよい。つまり、制御サーバ10は、NFV-MANO(NFV Management & Orchestration)等を含むネットワーク機能仮想化管理オーケストレーション装置であってもよい。
上記実施形態では、IP管理者は、疎通確認部304から提供されるテストパターンを実行する疎通検証部401をIPに実装する場合について説明した。しかし、IP管理者は、サービス管理者から提供されるチェックシートに記載されたテストパターン(サービスの動作確認に必要なテストパターン)を参照し、当該テストパターンを実行する疎通検証部401をIPに実装してもよい。つまり、各テストパターンに汎用的に使用可能な疎通検証部401ではなく、各テストパターンそれぞれに適合した疎通検証部401がIPに実装されてもよい。
また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、実施形態で実行される工程の実行順序は、その記載の順番に制限されない。実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、仮想化基盤上でのシステム構築を実施し、かつFPGAとの連携を実施するシステム全般に好適に適用可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
上述の第1の視点に係るシステムのとおりである。
[付記2]
前記IPストアは、保持されているIPそれぞれが提供するAPIの一覧情報を保持し、
前記制御サーバは、
前記APIの一覧情報を前記IPストアから取得し、前記チェックシートに含まれるAPIが前記APIの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせの適否を検証する、好ましくは付記1に記載のシステム。
[付記3]
前記制御サーバは、
前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせが適切であると判定されたIPを前記IPストアから取得すると共に、前記取得したIPを前記実行サーバに送信し、
前記実行サーバは、前記送信されたIPを前記FPGAにダウンロードする、好ましくは付記2に記載のシステム。
[付記4]
前記実行サーバは、
前記FPGAにダウンロードされたIPと、前記FPGAにダウンロードされたIPに対応するIPであって前記IPストアに保持されているIPと、の同一性を検証する、好ましくは付記3に記載のシステム。
[付記5]
前記IPストアは、保持されているIPそれぞれが提供するIPのチェックサムの一覧情報を保持し、
前記実行サーバは、
前記チェックサムの一覧情報を前記IPストアから取得し、前記FPGAにダウンロードされたIPのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記FPGAにダウンロードされたIPと前記IPストアに保持されているIPの同一性を検証する、好ましくは付記4に記載のシステム。
[付記6]
前記FPGAにダウンロードされたIPには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記実行サーバは、
前記疎通検証部に前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを検証させる、好ましくは付記5に記載のシステム。
[付記7]
前記チェックシートは、前記仮想マシンが使用するAPIに関するテストパターンを含み、
前記実行サーバは、
前記疎通検証部に前記テストパターンを供給することで、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、好ましくは付記6に記載のシステム。
[付記8]
前記制御サーバは、前記実行サーバに対し仮想マシンの生成を指示する好ましくは付記1乃至7のいずれか一に記載のシステム。
[付記9]
前記IPストアは、IPに関する開発、管理を行う管理者から取得した情報に基づき、前記APIの一覧情報及び前記チェックサムの一覧情報を生成する、好ましくは付記5乃至7のいずれか一に記載のシステム。
[付記10]
上述の第2の視点に係るサーバのとおりである。
[付記11]
前記IPストアは、保持されているIPそれぞれが提供するAPIの一覧情報を保持し、
前記APIの一覧情報を前記IPストアから取得し、前記チェックシートに含まれるAPIが前記APIの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせの適否を検証する、付記10に記載の制御サーバ。
[付記12]
前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせが適切であると判定されたIPを前記IPストアから取得すると共に、前記取得したIPを前記実行サーバに送信して、前記実行サーバに対して、前記送信されたIPを前記FPGAにダウンロードさせる、付記11に記載の制御サーバ。
[付記13]
前記実行サーバに対して、前記FPGAにダウンロードされたIPと、前記FPGAにダウンロードされたIPに対応するIPであって前記IPストアに保持されているIPと、の同一性を検証させる、付記12に記載の制御サーバ。
[付記14]
前記IPストアは、保持されているIPそれぞれが提供するIPのチェックサムの一覧情報を保持し、
前記実行サーバに対して、前記チェックサムの一覧情報を前記IPストアから取得し、前記FPGAにダウンロードされたIPのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記FPGAにダウンロードされたIPと前記IPストアに保持されているIPの同一性を検証する、処理を実行させる付記13に記載の制御サーバ。
[付記15]
前記FPGAにダウンロードされたIPには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記疎通検証部に対して、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを検証させる、付記14に記載の制御サーバ。
[付記16]
前記チェックシートは、前記仮想マシンが使用するAPIに関するテストパターンを含み、
前記実行サーバに対して前記テストパターンを供給することで、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、付記15に記載の制御サーバ。
[付記17]
前記実行サーバに対して、仮想マシンの生成を指示する付記10乃至16のいずれか一に記載の制御サーバ。
[付記18]
前記IPストアに対して、IPに関する開発、管理を行う管理者から取得した情報に基づき、前記APIの一覧情報及び前記チェックサムの一覧情報を生成させる、付記14乃至16のいずれか一に記載の制御サーバ。
[付記19]
上述の第3の視点に係る検証方法のとおりである。
[付記20]
前記IPストアは、保持されているIPそれぞれが提供するAPIの一覧情報を保持し、
前記APIの一覧情報を前記IPストアから取得し、前記チェックシートに含まれるAPIが前記APIの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせの適否を検証するステップを含む付記19に記載の検証方法。
[付記21]
前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせが適切であると判定されたIPを前記IPストアから取得すると共に、前記取得したIPを前記実行サーバに送信して、前記実行サーバに対して、前記送信されたIPを前記FPGAにダウンロードさせるステップを含む付記20に記載の検証方法。
[付記22]
前記実行サーバに対して、前記FPGAにダウンロードされたIPと、前記FPGAにダウンロードされたIPに対応するIPであって前記IPストアに保持されているIPと、の同一性を検証させるステップを含む付記21に記載の検証方法。
[付記23]
前記IPストアは、保持されているIPそれぞれが提供するIPのチェックサムの一覧情報を保持し、
前記実行サーバに対して、前記チェックサムの一覧情報を前記IPストアから取得し、前記FPGAにダウンロードされたIPのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記FPGAにダウンロードされたIPと前記IPストアに保持されているIPの同一性を検証する、処理を実行させるステップを含む付記22に記載の検証方法。
[付記24]
前記FPGAにダウンロードされたIPには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記疎通検証部に対して、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを検証させる、ステップを含む付記23に記載の検証方法。
[付記25]
前記チェックシートは、前記仮想マシンが使用するAPIに関するテストパターンを含み、
前記実行サーバに対して前記テストパターンを供給することで、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させるステップを含む付記24に記載の検証方法。
[付記26]
前記実行サーバに対して、仮想マシンの生成を指示するステップを含む付記19乃至25のいずれか一に記載の検証方法。
[付記27]
前記IPストアに対して、IPに関する開発、管理を行う管理者から取得した情報に基づき、前記APIの一覧情報及び前記チェックサムの一覧情報を生成させるステップを含む付記23乃至25のいずれか一に記載の検証方法。
[付記28]
上述の第4の視点に係るプログラムのとおりである。
[付記29]
前記IPストアは、保持されているIPそれぞれが提供するAPIの一覧情報を保持し、
前記APIの一覧情報を前記IPストアから取得し、前記チェックシートに含まれるAPIが前記APIの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせの適否を検証する処理を前記コンピュータに実行させる付記28に記載のプログラム。
[付記30]
前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせが適切であると判定されたIPを前記IPストアから取得すると共に、前記取得したIPを前記実行サーバに送信して、前記実行サーバに対して、前記送信されたIPを前記FPGAにダウンロードさせる、処理を前記コンピュータに実行させる付記29に記載のプログラム。
[付記31]
前記実行サーバに対して、前記FPGAにダウンロードされたIPと、前記FPGAにダウンロードされたIPに対応するIPであって前記IPストアに保持されているIPと、の同一性を検証させる、処理の指示を前記コンピュータに実行させる付記30に記載のプログラム。
[付記32]
前記IPストアは、保持されているIPそれぞれが提供するIPのチェックサムの一覧情報を保持し、
前記実行サーバに対して、前記チェックサムの一覧情報を前記IPストアから取得し、前記FPGAにダウンロードされたIPのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記FPGAにダウンロードされたIPと前記IPストアに保持されているIPの同一性を検証する、処理の指示を前記コンピュータに実行させる付記31に記載のプログラム。
[付記33]
前記FPGAにダウンロードされたIPには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
前記疎通検証部に対して、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを検証させる、処理の指示を前記コンピュータに実行させる付記32に記載のプログラム。
[付記34]
前記チェックシートは、前記仮想マシンが使用するAPIに関するテストパターンを含み、
前記実行サーバに対して前記テストパターンを供給することで、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、処理の指示を前記コンピュータに実行させる付記33に記載のプログラム。
[付記35]
前記実行サーバに対して、仮想マシンを生成する処理の指示を前記コンピュータに実行させる付記28乃至34のいずれか一に記載のプログラム。
[付記36]
前記IPストアに対して、IPに関する開発、管理を行う管理者から取得した情報に基づき、前記APIの一覧情報及び前記チェックサムの一覧情報を生成する処理の指示を前記コンピュータに実行させる付記32乃至34のいずれか一に記載のプログラム。
なお、付記10、19、28の形態は、付記1の形態と同様に、付記2の形態~付記9の形態に展開することが可能である。例えば、付記10は付記11~18のように展開されるが、展開形態はこれらに限定されない。
なお、引用した上記の非特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、101 制御サーバ
11、21 CPU(Central Processing Unit)
12、22 メモリ
13、23 入出力インターフェイス
14、24 NIC(Network Interface Card)
20、100 実行サーバ
25 FPGA(Field Programmable Gate Array)
30、102 IPストア
40-1~40-3 端末
201 仮想マシン生成指示部
202 チェックシート入力部
203 組み合わせ検証部
204 IP取得部
205、305 通信制御部
301 仮想マシン生成部
302 IP書き込み部
303 回路データ検証部
304 疎通確認部
401 疎通検証部

Claims (10)

  1. FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、
    前記実行サーバを制御する制御サーバと、
    前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、
    を含み、
    前記制御サーバは、
    少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証する、システム。
  2. 前記IPストアは、保持されているIPそれぞれが提供するAPIの一覧情報を保持し、
    前記制御サーバは、
    前記APIの一覧情報を前記IPストアから取得し、前記チェックシートに含まれるAPIが前記APIの一覧情報に含まれるか否かに応じて、前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせの適否を検証する、請求項1に記載のシステム。
  3. 前記制御サーバは、
    前記仮想マシンと前記FPGAにダウンロードされるIPの組み合わせが適切であると判定されたIPを前記IPストアから取得すると共に、前記取得したIPを前記実行サーバに送信し、
    前記実行サーバは、前記送信されたIPを前記FPGAにダウンロードする、請求項2に記載のシステム。
  4. 前記実行サーバは、
    前記FPGAにダウンロードされたIPと、前記FPGAにダウンロードされたIPに対応するIPであって前記IPストアに保持されているIPと、の同一性を検証する、請求項3に記載のシステム。
  5. 前記IPストアは、保持されているIPそれぞれが提供するIPのチェックサムの一覧情報を保持し、
    前記実行サーバは、
    前記チェックサムの一覧情報を前記IPストアから取得し、前記FPGAにダウンロードされたIPのチェックサムが前記チェックサムの一覧情報に含まれるか否かに応じて、前記FPGAにダウンロードされたIPと前記IPストアに保持されているIPの同一性を検証する、請求項4に記載のシステム。
  6. 前記FPGAにダウンロードされたIPには、前記仮想マシンとの間でデータの送受信が正常に行えるか否かを検証するための疎通検証部が実装され、
    前記実行サーバは、
    前記疎通検証部に前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを検証させる、請求項5に記載のシステム。
  7. 前記チェックシートは、前記仮想マシンが使用するAPIに関するテストパターンを含み、
    前記実行サーバは、
    前記疎通検証部に前記テストパターンを供給することで、前記仮想マシンと前記FPGAにダウンロードされたIPとの間でデータの送受信が正常に行えるか否かを前記疎通検証部に検証させる、請求項6に記載のシステム。
  8. FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、
    前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、に接続され、
    少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照し、前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証する制御サーバ。
  9. FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、
    前記実行サーバを制御する制御サーバと、
    前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、
    を含むシステムにおいて、
    少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照するステップと、
    前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証するステップと、
    を含む、検証方法。
  10. FPGA(Field Programmable Gate Array)が搭載され、前記FPGAをハードウェアリソースの1つとして使用する仮想マシンを生成する実行サーバと、
    前記FPGAにダウンロードするIP(Intellectual Property)を保持するIPストアと、に接続された制御サーバに搭載されたコンピュータに、
    少なくとも前記仮想マシンと前記仮想マシンが使用するAPI(Application Programming Interface)を関連付けた情報を含むチェックシートを参照する処理と、
    前記仮想マシンと前記IPストアに保持されているIPであって前記FPGAにダウンロードされるIPの組み合わせの適否を検証する処理と、
    を実行させるプログラム。
JP2020523115A 2018-06-05 2019-06-04 システム、サーバ、検証方法及びプログラム Active JP7314935B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018107970 2018-06-05
JP2018107970 2018-06-05
PCT/JP2019/022137 WO2019235467A1 (ja) 2018-06-05 2019-06-04 システム、サーバ、検証方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019235467A1 JPWO2019235467A1 (ja) 2021-06-24
JP7314935B2 true JP7314935B2 (ja) 2023-07-26

Family

ID=68769311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020523115A Active JP7314935B2 (ja) 2018-06-05 2019-06-04 システム、サーバ、検証方法及びプログラム

Country Status (3)

Country Link
US (1) US20210216342A1 (ja)
JP (1) JP7314935B2 (ja)
WO (1) WO2019235467A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016510960A (ja) 2013-03-04 2016-04-11 アマゾン テクノロジーズ インコーポレイテッド 信頼されるプロバイダによるコンフィギュレーションおよび検証
US20170126487A1 (en) 2014-07-11 2017-05-04 Huawei Technologies Co., Ltd. Service deployment method and network functions acceleration platform
WO2018002991A1 (ja) 2016-06-27 2018-01-04 日本電気株式会社 制御装置、vnf配置先選択方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107911A (ja) * 2003-09-30 2005-04-21 Daihen Corp 書込情報生成用プログラム、ハードウェアへの情報書込用プログラム、これらのプログラムを記録したコンピュータ読み取り可能な記録媒体、書込情報生成装置及び情報書込装置
US20100257089A1 (en) * 2009-04-05 2010-10-07 Johnson Apperson H Intellectual Property Pre-Market Engine (IPPME)
US9690615B2 (en) * 2014-11-12 2017-06-27 Intel Corporation Live migration of virtual machines from/to host computers with graphics processors
EP3089035A1 (en) * 2015-04-30 2016-11-02 Virtual Open Systems Virtualization manager for reconfigurable hardware accelerators
US9910692B2 (en) * 2016-01-26 2018-03-06 Intel Corporation Enhanced virtual function capabilities in a virtualized network environment
CN108924087A (zh) * 2018-05-28 2018-11-30 国网福建省电力有限公司 基于uuid号和mac地址实现云虚拟机知识产权有效保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016510960A (ja) 2013-03-04 2016-04-11 アマゾン テクノロジーズ インコーポレイテッド 信頼されるプロバイダによるコンフィギュレーションおよび検証
US20170126487A1 (en) 2014-07-11 2017-05-04 Huawei Technologies Co., Ltd. Service deployment method and network functions acceleration platform
WO2018002991A1 (ja) 2016-06-27 2018-01-04 日本電気株式会社 制御装置、vnf配置先選択方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中川 裕貴 ほか,「hCODE 2.0:FPGAクラスタシステム向けオープンソース開発管理プラットフォーム」,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2017年10月30日,第117巻, 第274号,pp.1-6,ISSN 0913-5685

Also Published As

Publication number Publication date
US20210216342A1 (en) 2021-07-15
WO2019235467A1 (ja) 2019-12-12
JPWO2019235467A1 (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
JP6549787B2 (ja) ネットワークサービスをデプロイするための方法及び装置
US11647101B2 (en) Deploying an application in multiple cloud computing environments
US10999356B2 (en) Deploying an application in a hybrid cloud computing environment
JP6411698B2 (ja) アプリケーションの展開のためのカスタム通信チャネル
CN114787781B (zh) 用于启用高可用性受管理故障转移服务的系统和方法
CN109656538A (zh) 应用程序的生成方法、装置、系统、设备和介质
US20200257776A1 (en) Request authorization using recipe-based service coordination
CN112527379B (zh) 基于Guacamole的堡垒机应用运维方法、装置、设备及介质
KR102086486B1 (ko) 네트워크 서비스 디스크립터를 온-보딩하기 위한 방법 및 장치
EP3782061B1 (en) System and method to securely execute datacenter management operations remotely
US20150195128A1 (en) Apparatus and method for supporting configuration management of virtual machine, and apparatus and method for brokering cloud service using the configuration management supporting apparatus
WO2022199324A1 (en) Run-time communications protocol parameter adjustment in containerized applications
CN105745621A (zh) 在服务器上仿真测试分布式应用
JP7314935B2 (ja) システム、サーバ、検証方法及びプログラム
US9189370B2 (en) Smart terminal fuzzing apparatus and method using multi-node structure
CN116225617A (zh) 容器实例的管理迁移方法、装置和电子设备及存储介质
US11969894B2 (en) Apparatus for automated communication between robot and artificial intelligence service and method using the same
JP6750929B2 (ja) ネットワークサービスをデプロイするための方法及び装置
CN112843674B (zh) 游戏出包方法和系统
WO2019042005A1 (zh) 一种虚拟机的热迁移方法、装置和系统
US11943124B2 (en) Data center asset remote workload execution via a connectivity management workload orchestration operation
KR101959561B1 (ko) 네트워크 가상화 관리 서버 및 이를 이용한 네트워크 가상화 관리 방법
CN116866035A (zh) 一种动态构建区块链的方法和系统
CN115314432A (zh) 一种跨集群应用路由访问方法、系统、设备及介质
CN117472509A (zh) 基于Kubernetes集群设备的非容器化应用管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230626

R151 Written notification of patent or utility model registration

Ref document number: 7314935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151