IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-32345情報処理装置、情報処理システムおよび情報処理装置の制御方法
<>
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図1
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図2
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図3
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図4
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図5
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図6
  • 特開-情報処理装置、情報処理システムおよび情報処理装置の制御方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032345
(43)【公開日】2024-03-12
(54)【発明の名称】情報処理装置、情報処理システムおよび情報処理装置の制御方法
(51)【国際特許分類】
   G06F 13/12 20060101AFI20240305BHJP
   G06F 3/06 20060101ALI20240305BHJP
   G06F 13/42 20060101ALI20240305BHJP
【FI】
G06F13/12 330A
G06F3/06 301M
G06F13/42 320B
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022135952
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】大川 尚義
(72)【発明者】
【氏名】朝永 博
(57)【要約】
【課題】論理回路にオフロードされたマイクロサービスの処理のスループットの低下を抑制しつつ、サービスメッシュ機能を実現する。
【解決手段】論理回路は、受信したリクエストデータを使用したサービスの処理の開始時に疑似リクエストを疑似アプリに送信し、サービスの処理の完了時に処理完了通知を疑似アプリに送信する。疑似アプリは、処理完了通知の受信に基づいて、疑似レスポンスを論理回路に送信する。サービスメッシュ機能部は、疑似レスポンスを検出し、疑似レスポンスに含まれる宛先情報を書き換える。論理回路は、疑似レスポンスの受信時に、書き換えられた宛先情報をサービスの処理後のデータに含めてリクエストデータを生成して送信する。これにより、情報処理装置の処理性能を向上することができ、マイクロサービスアーキテクチャの環境下で動作する情報処理システムの性能を向上することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
マイクロサービスアーキテクチャを採用した情報処理システムに含まれる情報処理装置であって、
マイクロサービスの処理を実施する処理機能部とネットワークに接続される通信インタフェース部とを有する論理回路と、
サービスメッシュを実現するサービスメッシュ機能部と、
前記サービスメッシュ機能部を介して前記論理回路に接続され、マイクロサービスの処理機能を持たない疑似アプリと、を有し、
前記論理回路は、他の第1情報処理装置からのデータプレーン通信のリクエストデータを前記通信インタフェース部で受信したことに基づいて、前記処理機能部により前記リクエストデータを使用したサービスの処理を開始するとともに、コントロールプレーン通信の疑似リクエストを生成し、生成した疑似リクエストを前記疑似アプリに送信し、前記処理機能部による前記サービスの処理が完了したことに基づいて処理完了通知を前記疑似アプリに送信し、
前記疑似アプリは、前記疑似リクエストの受信後に前記処理完了通知を受信したことに基づいて、疑似レスポンスを前記論理回路に送信し、
前記サービスメッシュ機能部は、前記疑似アプリから前記論理回路に送信される前記疑似レスポンスを検出した場合、前記疑似レスポンスに含まれる宛先情報を書き換え、前記宛先情報を書き換えた前記疑似レスポンスを前記論理回路に転送し、
前記論理回路は、書き換えられた宛先情報を含む前記疑似レスポンスの受信に基づいて、書き換えられた宛先情報を前記サービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを前記通信インタフェース部から他の第2情報処理装置に送信する
情報処理装置。
【請求項2】
前記論理回路は、前記書き換えられた宛先情報を保持する宛先情報保持部を有し、処理後の前記リクエストデータに対応する宛先情報が前記宛先情報保持部に保持されている場合、前記疑似レスポンスの受信を待たずに、前記宛先情報保持部に保持されている宛先情報を、前記サービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成する
請求項1に記載の情報処理装置。
【請求項3】
前記論理回路は、前記サービスの処理後のデータを保持する処理結果保持部を有し、処理後の前記リクエストデータに対応する宛先情報が前記宛先情報保持部に保持されていない場合、前記処理結果保持部に前記サービスの処理後のデータを格納し、前記疑似レスポンスの受信に基づいて、前記疑似レスポンスに含まれる、前記書き換えられた宛先情報を前記サービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、前記書き換えられた宛先情報を前記宛先情報保持部に格納する
請求項2に記載の情報処理装置。
【請求項4】
前記サービスメッシュ機能部は、前記論理回路から前記疑似アプリに送信される前記疑似リクエストを検出した場合、検出した時刻を前記サービスの処理の開始時刻として保持する
請求項1ないし請求項3のいずれか1項に記載の情報処理装置。
【請求項5】
前記サービスメッシュ機能部は、前記疑似アプリから前記論理回路に送信される前記疑似レスポンスを検出した場合、検出した時刻を前記サービスの処理の完了時刻として保持し、前記完了時刻と前記開始時刻とに基づいて前記サービスの処理時間を算出する
請求項4に記載の情報処理装置。
【請求項6】
前記サービスメッシュ機能部は、前記論理回路から前記疑似アプリに送信される前記疑似リクエストを検出した場合、前記サービスの処理の開始回数を積算する
請求項1ないし請求項3のいずれか1項に記載の情報処理装置。
【請求項7】
前記サービスメッシュ機能部は、前記疑似アプリから前記論理回路に送信される前記疑似レスポンスを検出した場合、前記サービスの処理の完了回数を前記サービスの処理の成功回数として積算する
請求項6に記載の情報処理装置。
【請求項8】
複数の情報処理装置を有し、マイクロサービスアーキテクチャを採用した情報処理システムであって、
前記複数の情報処理装置の1つまたは複数は、
マイクロサービスの処理を実施する処理機能部とネットワークに接続される通信インタフェース部とを有する論理回路と、
サービスメッシュを実現するサービスメッシュ機能部と、
前記サービスメッシュ機能部を介して前記論理回路に接続され、マイクロサービスの処理機能を持たない疑似アプリと、を有し、
前記論理回路は、他の第1情報処理装置からのデータプレーン通信のリクエストデータを前記通信インタフェース部で受信したことに基づいて、前記処理機能部により前記リクエストデータを使用したサービスの処理を開始するとともに、コントロールプレーン通信の疑似リクエストを生成し、生成した疑似リクエストを前記疑似アプリに送信し、前記処理機能部による前記サービスの処理が完了したことに基づいて処理完了通知を前記疑似アプリに送信し、
前記疑似アプリは、前記疑似リクエストの受信後に前記処理完了通知を受信したことに基づいて、疑似レスポンスを前記論理回路に送信し、
前記サービスメッシュ機能部は、前記疑似アプリから前記論理回路に送信される前記疑似レスポンスを検出した場合、前記疑似レスポンスに含まれる宛先情報を書き換え、前記宛先情報を書き換えた前記疑似レスポンスを前記論理回路に転送し、
前記論理回路は、書き換えられた宛先情報を含む前記疑似レスポンスの受信に基づいて、書き換えられた宛先情報を前記サービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを前記通信インタフェース部から他の第2情報処理装置に送信する
情報処理システム。
【請求項9】
マイクロサービスの処理を実施する処理機能部とネットワークに接続される通信インタフェース部とを有する論理回路と、サービスメッシュを実現するサービスメッシュ機能部と、前記サービスメッシュ機能部を介して前記論理回路に接続され、マイクロサービスの処理機能を持たない疑似アプリと、を有し、マイクロサービスアーキテクチャを採用した情報処理システムに含まれる情報処理装置の制御方法であって、
前記論理回路は、他の第1情報処理装置からのデータプレーン通信のリクエストデータを前記通信インタフェース部で受信したことに基づいて、前記処理機能部により前記リクエストデータを使用したサービスの処理を開始するとともに、コントロールプレーン通信の疑似リクエストを生成し、生成した疑似リクエストを前記疑似アプリに送信し、前記処理機能部による前記サービスの処理が完了したことに基づいて処理完了通知を前記疑似アプリに送信し、
前記疑似アプリは、前記疑似リクエストの受信後に前記処理完了通知を受信したことに基づいて、疑似レスポンスを前記論理回路に送信し、
前記サービスメッシュ機能部は、前記疑似アプリから前記論理回路に送信される前記疑似レスポンスを検出した場合、前記疑似レスポンスに含まれる宛先情報を書き換え、前記宛先情報を書き換えた前記疑似レスポンスを前記論理回路に転送し、
前記論理回路は、書き換えられた宛先情報を含む前記疑似レスポンスの受信に基づいて、書き換えられた宛先情報を前記サービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを前記通信インタフェース部から他の第2情報処理装置に送信する
情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システムおよび情報処理装置の制御方法に関する。
【背景技術】
【0002】
パケットを送受信するインタフェースと複数のサービス処理リソースとを有し、受信したパケットを転送規則に基づいてサービス処理リソースに分配するFPGA(Field-Programmable Gate Array)を搭載したネットワークサービス装置が知られている。これにより、仮想空間へのパケットの分配が高速化される(例えば、特許文献1参照)。
【0003】
受信したパケットと複製したパケットとをそれぞれ保管するバッファ部を有するFPGAが実装されたネットワークインタフェースカードと、仮想化環境で動作するネットワークアプリケーション部とを有する仮想化ネットワークシステムが知られている。ネットワークアプリケーション部は、バッファ部に保管されたパケットの一方と他方とに対して通常のネットワーク処理と常時監視とをそれぞれ実施し、不具合事象の発生時に常時監視しているパケットを解析する。これにより、負荷およびコストを抑制して、ネットワーク処理に影響を与えることなく不具合事象が解析される(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2017-507374号公報
【特許文献2】特開2016-152464号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、マイクロサービスアーキテクチャのサービス環境では、ネットワークを介して相互に接続される複数のサーバの各々は、マイクロサービスの処理を実施する仮想マシンを有し、仮想マシンは、Envoyおよびアプリコンテナを含むPodを有する。アプリコンテナで実施するマイクロサービスの処理をFPGAにオフロードする場合、FPGAに対する通信をEnvoyに管理させることが考えられる。
【0006】
しかしながら、Envoyは、プロセッサが実行するソフトウェアにより実現されるため、Envoyが介在する分、FPGAによるマイクロサービスの処理のスループットが低下し、処理結果が出力されるまでの遅延が増加するおそれがある。一方、FPGAに対する通信をEnvoyに管理させない場合、Envoyは、FPGAが実施するマイクロサービスの処理に関する情報を取得することが困難になる。この結果、宛先制御およびモニタリング等のサービスメッシュ機能の実現が困難になる。
【0007】
1つの側面では、本発明は、論理回路にオフロードされたマイクロサービスの処理のスループットの低下を抑制しつつ、サービスメッシュ機能を実現することを目的とする。
【課題を解決するための手段】
【0008】
一つの観点によれば情報処理装置は、マイクロサービスアーキテクチャを採用した情報処理システムに含まれる情報処理装置であって、マイクロサービスの処理を実施する処理機能部とネットワークに接続される通信インタフェース部とを有する論理回路と、サービスメッシュを実現するサービスメッシュ機能部と、前記サービスメッシュ機能部を介して前記論理回路に接続され、マイクロサービスの処理機能を持たない疑似アプリと、を有し、前記論理回路は、他の第1情報処理装置からのデータプレーン通信のリクエストデータを前記通信インタフェース部で受信したことに基づいて、前記処理機能部により前記リクエストデータを使用したサービスの処理を開始するとともに、コントロールプレーン通信の疑似リクエストを生成し、生成した疑似リクエストを前記疑似アプリに送信し、前記処理機能部による前記サービスの処理が完了したことに基づいて処理完了通知を前記疑似アプリに送信し、前記疑似アプリは、前記疑似リクエストの受信後に前記処理完了通知を受信したことに基づいて、疑似レスポンスを前記論理回路に送信し、前記サービスメッシュ機能部は、前記疑似アプリから前記論理回路に送信される前記疑似レスポンスを検出した場合、前記疑似レスポンスに含まれる宛先情報を書き換え、前記宛先情報を書き換えた前記疑似レスポンスを前記論理回路に転送し、前記論理回路は、書き換えられた宛先情報を含む前記疑似レスポンスの受信に基づいて、書き換えられた宛先情報を前記サービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを前記通信インタフェース部から他の第2情報処理装置に送信する。
【発明の効果】
【0009】
論理回路にオフロードされたマイクロサービスの処理のスループットの低下を抑制しつつ、サービスメッシュ機能を実現することができる。
【図面の簡単な説明】
【0010】
図1】一実施形態における情報処理システムの一例を示すブロック図である。
図2】別の実施形態における情報処理システムの一例を示すブロック図である。
図3図2のサーバ120aの機能構成の一例を示すブロック図である。
図4図2のサーバ120aのハードウェア構成の一例を示す機能ブロック図である。
図5図3のFPGAの動作の一例を示すフロー図である。
図6図3のEnvoyの動作の一例を示すフロー図である。
図7図3の疑似コンテナの動作の一例を示すフロー図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態が説明される。
【0012】
図1は、一実施形態における情報処理システムの一例を示す。図1に示す情報処理システム100Aは、ネットワークを介して相互に接続された複数の情報処理装置110(110a、110b、110c)を有する。各情報処理装置110a、110b、110cに接続される矢印は、ネットワークの一部を示す。情報処理システム100Aに搭載される情報処理装置110の数は、3個に限定されない。情報処理装置110bは、他の第1情報処理装置の一例であり、情報処理装置110cは、他の第2情報処理装置の一例である。
【0013】
情報処理システム100Aは、例えば、マイクロサービスの処理を実施する機能を各情報処理装置110に持たせ、複数のマイクロサービスをネットワークで接続して連携させるマイクロサービスアーキテクチャを採用している。また、特に限定されないが、マイクロサービス同士の接続を管理するサービスメッシュのプラットフォームとして、例えば、Istioが使用される。図1に示す構成は、サービスメッシュのデータプレーンを示す。
【0014】
情報処理装置110aは、論理回路210、サービスメッシュ機能部310およびマイクロサービスの処理機能を持たない疑似アプリ410を有する。例えば、サービスメッシュ機能部310および疑似アプリ410は、情報処理装置110aに搭載されるCPU(Central Processing Unit)等のプロセッサが実行するソフトウェアにより仮想マシンとして実現される。論理回路210は、FPGA等のハードウェアに搭載され、マイクロサービスの処理機能がオフロードされる。
【0015】
論理回路210は、通信インタフェース部211、処理機能部212、処理結果保持部213および宛先情報保持部214を有する。論理回路210は、サービスメッシュ機能部310を介して疑似アプリ410に接続される。サービスメッシュ機能部310は、モニタリング部311および宛先書き換え部312を有する。例えば、サービスメッシュ機能部310は、ネットワークの混雑度に応じて、次のリクエストデータを処理させる情報処理装置110と、次のリクエストデータの転送経路とを決めるロードバランサの機能を有する。
【0016】
通信インタフェース部211は、例えば、NIC(Network Interface Controller)であり、ネットワークを介して他の情報処理装置110b、110c等に接続される。処理機能部212は、通信インタフェース部211を介して情報処理装置110bからデータプレーン通信のリクエストデータを受信したことに基づいて、リクエストデータを使用したマイクロサービスの処理を開始する。
【0017】
論理回路210は、処理機能部212によるリクエストデータを使用したマイクロサービスの処理の開始に基づいて、コントロールプレーン通信の疑似リクエストREQを生成し、生成した疑似リクエストREQを疑似アプリ410に送信する。例えば、疑似リクエストREQは、情報処理装置110bから受信したリクエストデータに含まれる宛先情報を含む。宛先情報は、例えば、宛先アドレスを含み、情報処理装置110aが送信する次のリクエストデータの送信先を示す。疑似アプリ410は、疑似リクエストREQを受信する。
【0018】
サービスメッシュ機能部310のモニタリング部311は、論理回路210と疑似アプリ410との間で転送される情報を監視する。モニタリング部311は、論理回路210から疑似アプリ410に送信される疑似リクエストREQを検出した場合、検出した時刻をマイクロサービスの処理の開始時刻として保持する。また、モニタリング部311は、疑似リクエストREQを検出した場合、マイクロサービスの処理の開始回数を積算する。
【0019】
また、サービスメッシュ機能部310は、所定時間当たり(例えば、1分当たり)のマイクロサービスの処理の開始回数をリクエストデータの受信頻度またはマイクロサービスの処理頻度として算出してもよい。例えば、サービスメッシュ機能部310により検出または算出されるマイクロサービスの処理の開始時刻、開始回数およびマイクロサービスの処理頻度の1つまたは複数は、コントロールプレーンにより取得されてもよい。
【0020】
論理回路210は、処理機能部212によるマイクロサービスの処理が完了したことに基づいて処理完了通知CMPTを疑似アプリ410に送信する。また、論理回路210は、マイクロサービスの処理後のデータに対応する宛先情報が宛先情報保持部214に保持されている場合、マイクロサービスの処理の完了に基づいて、宛先情報保持部214に保持されている宛先情報を取得する。
【0021】
そして、論理回路210は、取得した宛先情報をマイクロサービスの処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを情報処理装置110cに送信する。これにより、サービスメッシュ機能部310が書き換えた宛先情報が宛先情報保持部214に保持されている場合、論理回路210は、疑似レスポンスRESの受信を待つことなく、次のリクエストデータを情報処理装置110cに送信することができる。したがって、マイクロサービスの処理のスループットを向上し、マイクロサービスの処理結果が出力されるまでの遅延を低減することができる。
【0022】
一方、論理回路210は、マイクロサービスの処理後のデータに対応する宛先情報が宛先情報保持部214に保持されていない場合、マイクロサービスの処理後のデータを処理結果保持部213に格納する。
【0023】
疑似アプリ410は、疑似リクエストREQの受信後に処理完了通知CMPTを受信したことに基づいて、疑似レスポンスRESを論理回路210に送信する。このように、疑似アプリ410は、疑似リクエストREQおよび処理完了通知CMPTの受信機能と、処理完了通知CMPTの受信に応答する疑似レスポンスRESの送信機能のみを有する。
【0024】
サービスメッシュ機能部310のモニタリング部311は、疑似アプリ410から論理回路210に送信される疑似レスポンスRESを検出した場合、検出した時刻をマイクロサービスの処理の完了時刻として保持する。なお、サービスメッシュ機能部310は、論理回路210からの処理完了通知CMPTを検出した時刻をマイクロサービスの処理の完了時刻として保持してもよい。
【0025】
モニタリング部311は、開始時刻から完了時刻までの時間をマイクロサービスの処理時間として算出する。また、モニタリング部311は、疑似レスポンスRESを検出した場合、マイクロサービスの処理の完了回数をマイクロサービスの処理の成功回数として積算する。
【0026】
サービスメッシュ機能部310の宛先書き換え部312は、モニタリング部311が疑似レスポンスRESを受信したことに基づいて、疑似レスポンスRESに含まれる宛先情報を適切な宛先情報に書き換える。そして、宛先書き換え部312は、適切な宛先情報を書き換えた疑似レスポンスRESを論理回路210に転送する。サービスメッシュ機能部310により宛先情報を書き換えることで、次のリクエストデータの転送経路を適切に設定することができ、マイクロサービスの処理効率の低下を抑制することができる。
【0027】
なお、モニタリング部311は、完了回数と開始回数との比を算出することで、マイクロサービスの処理の成功率または失敗率を求めてもよい。例えば、モニタリング部311により検出または算出されるマイクロサービスの完了時刻、処理時間、完了回数、成功率(失敗率)および書き換えた宛先情報の1つまたは複数は、コントロールプレーンにより取得されてもよい。
【0028】
論理回路210は、マイクロサービスの処理後のデータを情報処理装置110cに送信していない場合、書き換えられた宛先情報を含む疑似レスポンスRESの受信に基づいて、処理結果保持部213に保持されている処理後のデータを取り出す。論理回路210は、取り出した処理後のデータに、書き換えられた宛先情報を含めて次のデータプレーン通信のリクエストデータを生成する。論理回路210は、生成したリクエストデータを通信インタフェース部211から他の情報処理装置110cに送信する。また、論理回路210は、疑似レスポンスRESの受信に基づいて、疑似レスポンスに含まれる、書き換えられた宛先情報を宛先情報保持部214に格納する。
【0029】
以上、この実施形態では、リクエストデータを使用したマイクロサービスの処理機能を仮想マシン内のアプリに搭載せず論理回路210にオフロードすることで、サービスメッシュ機能部310を介在させることなくマイクロサービスの処理を実施することができる。
【0030】
論理回路210と疑似アプリ410とは、サービスメッシュ機能部310を介して相互に接続される。このため、サービスメッシュ機能部310は、疑似リクエストREQ、処理完了通知CMPTおよび疑似レスポンスRESを検出することができ、リクエストデータおよびマイクロサービスの処理に関する情報を取得することができる。
【0031】
例えば、サービスメッシュ機能部310は、疑似リクエストREQに基づいて、マイクロサービスの処理の開始時刻を検出することができ、疑似レスポンスRESに基づいて、マイクロサービスの処理の完了時刻を検出することができる。そして、サービスメッシュ機能部310は、開始時刻と完了時刻とに基づいて、マイクロサービスの処理時間を算出することができる。また、サービスメッシュ機能部310は、マイクロサービスの処理の開始回数およびマイクロサービスの処理の成功回数を積算することができる。
【0032】
そして、コントロールプレーンは、サービスメッシュ機能部310が取得または算出したマイクロサービスの処理に関する情報を取得することで、サービスメッシュの制御機能を適切に更新することができる。この結果、論理回路210にオフロードされたマイクロサービスの処理のスループットの低下を抑制しつつ、サービスメッシュ機能を実現することができる。
【0033】
マイクロサービスの処理の低下を抑制しつつサービスメッシュ機能を実現できるため、マイクロサービスアーキテクチャに含まれる情報処理装置110の処理性能を向上することができる。したがって、マイクロサービスアーキテクチャの環境下で動作する情報処理システム100Aの性能を向上することができる。例えば、マイクロサービスアーキテクチャの環境下で動作する各種プラットフォーム、データセンタまたはクラウドの性能を向上することができる。
【0034】
サービスメッシュ機能部310は、疑似レスポンスRESの検出に基づいて宛先情報を書き換える。宛先情報が宛先情報保持部214に保持されていない場合、論理回路210は、処理結果保持部213にマイクロサービスの処理後のデータを格納し、疑似アプリ410からの疑似レスポンスRESを待つ。これにより、処理機能部212がオフロードされる場合にも、宛先書き換え部312により書き換えられる宛先情報を取得することができ、次のリクエストデータを送信することができる。すなわち、次のリクエストデータの転送経路を適切に設定することができ、マイクロサービスの処理効率の低下を抑制することができる。
【0035】
宛先情報が宛先情報保持部214に保持されている場合、論理回路210は、疑似レスポンスRESを待つことなく、次のリクエストデータを生成することができるため、マイクロサービスの処理のスループットを向上することができる。
【0036】
図2は、別の実施形態における情報処理システムの一例を示す。図1と同一または同様の要素については、詳細な説明は省略する。図2に示す情報処理システム100Bは、ネットワークを介して相互に接続された複数のサーバ120(120a、120b、120c)を有する。各サーバ120a、120b、120cに接続される矢印は、ネットワークの一部を示す。サーバ120a、120b、120cと、サーバ120a、120b、120cを相互に接続するネットワークは、サービスメッシュのデータプレーンDPLを示す。
【0037】
サーバ120は、情報処理装置の一例である。サーバ120bは、120aからリクエストデータを受信する他の第2情報処理装置、または、サーバ120cにリクエストデータを送信する他の第1情報処理装置の一例である。情報処理システム100Bに搭載されるサーバ120の数は、3個に限定されない。サーバ120a、120cは、互いに同じ構成を有し、互いに同じ機能を有するため、以下では、サーバ120aの構成および機能が説明される。
【0038】
情報処理システム100Bは、図1の情報処理システム100Aと同様に、例えば、サーバ120がそれぞれ実施する複数のマイクロサービスをネットワークで接続して連携させるマイクロサービスアーキテクチャを採用している。また、サービスメッシュのプラットフォームとして、例えば、Istioが使用される。
【0039】
サーバ120aは、FPGA220および仮想マシン520を有する。FPGA220は、NIC等の通信インタフェース部221、マイクロサービスの処理機能がオフロードされたオフロード回路部222および宛先制御部223を有する。仮想マシン520は、疑似コンテナ420およびEnvoy320を含むPod522を有する。FPGA220は、論理回路の一例である。オフロード回路部222は、処理機能部の一例である。疑似コンテナ420は、疑似アプリの一例である。Envoy320は、サービスメッシュ機能部の一例であり、ロードバランサの機能を含むプロキシの一種である。
【0040】
FPGA220は、Envoy320を介して疑似コンテナ420に接続される。通信インタフェース部221は、ネットワークを介して他のサーバ120等に接続される。オフロード回路部222は、通信インタフェース部211を介して他のサーバ120からデータプレーン通信のリクエストデータを受信したことに基づいて、リクエストデータを使用したマイクロサービスの処理を実施する。
【0041】
オフロード回路部222は、マイクロサービスの処理の完了を宛先制御部223に通知する。FPGA220は、オフロード回路部222によるマイクロサービスの処理の開始に基づいて、例えば、コントロールプレーン通信のHTTP(Hyper Text Transfer Protocol)リクエストREQを生成して疑似コンテナ420に送信する。HTTPリクエストREQは、疑似コンテナ420に送信される疑似リクエストの一例である。以下では、HTTPリクエストREQは、疑似リクエストREQとも称される。
【0042】
FPGA220は、オフロード回路部222によるマイクロサービスの処理が完了したことに基づいて処理完了通知CMPTを疑似コンテナ420に送信する。疑似コンテナ420は、疑似リクエストREQの受信後に処理完了通知CMPTを受信したことに基づいて、HTTPレスポンスRESをFPGA220に送信する。HTTPレスポンスRESは、疑似レスポンスの一例である。以下では、HTTPレスポンスRESは、疑似レスポンスRESとも称される。
【0043】
例えば、疑似コンテナ420は、図1の疑似アプリ410と同様に、疑似リクエストREQおよび処理完了通知CMPTの受信機能と、処理完了通知CMPTの受信に応答する疑似レスポンスRESの送信機能のみを有する。
【0044】
Envoy320は、疑似リクエストREQ、処理完了通知CMPTおよび疑似レスポンスRESを検出し、マイクロサービスの処理に関する情報を取得する。例えば、Envoy320が取得したマイクロサービスの処理に関する情報は、コントロールプレーンCPLにより取得され、リクエストデータの宛先制御およびロードバランシングに使用されてもよい。
【0045】
Envoy320は、疑似コンテナ420からの疑似レスポンスRESに含まれる宛先アドレスを書き換える。宛先アドレスは、サーバ120a(または120c)が送信する次のリクエストデータの送信先を示す宛先情報の一例である。
【0046】
宛先制御部223は、疑似コンテナ420から受信する疑似レスポンスRESに含まれる宛先アドレスを、オフロード回路部222により処理されたデータ(次のリクエストデータ)の送信先として通信インタフェース部221に通知する。そして、通信インタフェース部221は、オフロード回路部222により処理されたデータに宛先制御部223から通知された宛先アドレスを含めて次のデータプレーン通信のリクエストデータを生成する。通信インタフェース部221は、生成したリクエストデータをサーバ120bに送信する。
【0047】
サーバ120bは、仮想マシン520bを有し、仮想マシン520bは、Envoy320bおよびアプリコンテナ420bを含むPod522bを有する。Envoy320bは、サーバ120間での通信を制御し、他のサーバ120から受信したリクエストデータを使用したマイクロサービスの処理を実施させるためにアプリコンテナ420bを制御する。
【0048】
アプリコンテナ420bは、Envoy320から依頼されたリクエストデータを使用してマイクロサービスの処理を実施し、マイクロサービスの処理後のデータをEnvoy320に転送する。Envoy320は、処理後のデータの宛先アドレスを書き換えて次のリクエストデータを生成し、生成した次のリクエストデータを他のサーバ120cに送信する。
【0049】
例えば、サーバ120aは、動画像のフレームデータを順次受信し、受信したフレームデータをデコードして画像データを生成し、生成した画像データをサーバ120bに送信する。このため、サーバ120aのオフロード回路部222は、動画像の各フレームデータをデコードする機能を有する。
【0050】
例えば、サーバ120bは、サーバ120aから受信するフレーム毎の画像データの輝度を補正し、補正後の画像データをサーバ120cに送信する。このため、サーバ120bのアプリコンテナ420bは、画像データの輝度を補正する機能を有する。サーバ120cは、サーバ120bから受信する補正後の画像データを使用して、画像中の物体の検出処理を実施する。このため、サーバ120cのオフロード回路部222は、画像の認識機能を有する。これにより、マイクロサービスを利用して画像の認識処理を高速に実施することができる。
【0051】
図3は、図2のサーバ120aの機能構成の一例を示す。FPGA220は、図2の構成に加えて通知処理部224を有する。また、宛先制御部223は、宛先変更部2231、処理結果保持部2232および宛先情報保持部2233を有する。処理結果保持部2232の構成は、図1の処理結果保持部213の構成と同様である。宛先情報保持部2233の構成は、図1の宛先情報保持部214の構成と同様である。
【0052】
Envoy320は、モニタリング部321および宛先書き換え部322を有する。疑似コンテナ420は、通知返信部421および完了通知待ち部422を有する。完了通知待ち部422は、複数のエントリを有するキュー423を有する。
【0053】
オフロード回路部222は、通信インタフェース部221から受信したリクエストデータを使用したマイクロサービスの処理を開始する場合、処理の開始通知を通知処理部224に出力する。オフロード回路部222は、マイクロサービスの処理を完了した場合、処理の完了通知を通知処理部224に出力する。また、オフロード回路部222は、マイクロサービスの処理を完了した場合、処理の完了通知とともに処理後のデータを宛先制御部223に出力する。
【0054】
通知処理部224は、オフロード回路部222からの開始通知に基づいて、疑似リクエストREQ(図2)を疑似コンテナ420に送信する。通知処理部224は、オフロード回路部222からの完了通知に基づいて処理完了通知CMPT(図2)を疑似コンテナ420に送信する。
【0055】
Envoy320のモニタリング部321は、図1のモニタリング部311と同様に、通知処理部224からの疑似リクエストREQおよび処理完了通知CMPTを検出し、マイクロサービスの処理に関する情報を取得する。また、モニタリング部321は、疑似コンテナ420からの疑似レスポンスRES(図2)を検出し、マイクロサービスの処理に関する情報を取得する。例えば、モニタリング部321が取得する情報は、マイクロサービスの処理の開始時刻、開始回数、完了時刻、処理時間および成功回数の1つまたは複数を含む。
【0056】
Envoy320の宛先書き換え部322は、図1の宛先書き換え部312と同様に、疑似コンテナ420からの疑似レスポンスRESに含まれる宛先アドレスを適切な宛先アドレスに書き換える。
【0057】
疑似コンテナ420は、疑似リクエストREQを受信した場合、受信した疑似リクエストREQをリクエストデータに対応付けてキュー423に格納する。疑似コンテナ420の通知返信部421は、疑似コンテナ420が処理完了通知CMPTを受信した場合、受信した処理完了通知CMPTに対応する疑似リクエストREQをキュー423から取り出す。通知返信部421は、取り出した疑似リクエストREQに含まれる情報(宛先アドレスを含む)を取り出して疑似レスポンスRESを生成し、生成した疑似レスポンスRESをFPGA220に送信する。
【0058】
通知処理部224は、疑似コンテナ420から疑似レスポンスRESを受信した場合、疑似レスポンスRESに含まれる宛先アドレスを宛先変更部2231に出力する。宛先変更部2231は、オフロード回路部222からマイクロサービスの処理後のデータとともにリクエストデータの完了通知を受信した場合、処理後のデータに対応する宛先アドレスが宛先情報保持部2233に保持されているか否かを判定する。宛先変更部2231は、処理後のデータに対応する宛先アドレスが宛先情報保持部2233に保持されている場合、宛先アドレスを宛先情報保持部2233から取得する。宛先変更部2231は、取得した宛先アドレスを、オフロード回路部222による処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを通信インタフェース部221に出力する。
【0059】
宛先変更部2231は、処理後のデータに対応する宛先アドレスが宛先情報保持部2233に保持されていない場合、オフロード回路部222から受信した処理後のデータを処理結果保持部2232に格納する。そして、宛先変更部2231は、通知処理部224を介して疑似コンテナ420から疑似レスポンスRESを受信した場合、処理結果保持部2232に格納した処理後のデータを取り出す。宛先変更部2231は、疑似レスポンスRESに含まれる宛先アドレスを、処理結果保持部2232から取り出した処理後のデータに含めて次のデータプレーン通信のリクエストデータを生成し、生成したリクエストデータを通信インタフェース部221に出力する。
【0060】
通信インタフェース部221は、宛先変更部2231から受信する新たなリクエストデータを、新たなリクエストデータに含まれる宛先アドレスに向けて送信する。
【0061】
図4は、図2のサーバ120aのハードウェア構成の一例を示す。サーバ120aは、NIC等の通信インタフェース部221を含むFPGA220と、CPU処理部500を有する。CPU処理部500は、CPU501およびRAM(Random Access Memory)502を有する。
【0062】
特に限定されないが、通信インタフェース部221は、イーサネット(登録商標)ETHを介してサーバ120aの外部に配置されるスイッチ600に接続される。また、特に限定されないが、FPGA220は、PCI(Peripheral Component Interconnect)インタフェースを介してCPU501に接続される。そして、CPU501がRAM502に保持されたハイパーバイザ等のプログラムを実行することで、Envoy320および疑似コンテナ420を含むPod522を有する仮想マシン520が構築される。
【0063】
図5は、図3のFPGA220の動作の一例を示す。図5は、サーバ120aの制御方法の一例を示す。FPGA220は、リクエストデータを通信インタフェース部221で受信したことに基づいて図5に示す動作フローを開始する。
【0064】
まず、ステップS100において、FPGA220は、疑似リクエストREQを生成し、生成した疑似リクエストREQを疑似コンテナ420に送信する。次に、ステップS102において、FPGA220は、オフロード回路部222によりリクエストデータのオフロード処理を実施する。なお、ステップS100、S102の動作は、逆順で実施されてもよく、並列に実施されてもよい。
【0065】
次に、ステップS104において、FPGA220は、オフロード処理の完了に基づいて完了通知を生成し、生成した完了通知を疑似コンテナ420に送信する。次に、ステップS106において、FPGA220は、オフロード処理したリクエストデータに対応する宛先アドレスが宛先情報保持部2233に保持されているか否かを判定する。FPGA220は、宛先アドレスが宛先情報保持部2233に保持されている場合、ステップS114の動作を実施する。FPGA220は、宛先アドレスが宛先情報保持部2233に保持されていない場合、ステップS108の動作を実施する。
【0066】
ステップS108において、FPGA220は、オフロード処理の結果を処理結果保持部2232に格納する。次に、ステップS110において、FPGA220は、疑似コンテナ420から疑似レスポンスRESを受信するのを待ち、疑似レスポンスRESを受信した場合、ステップS112の動作を実施する。
【0067】
ステップS112において、FPGA220は、疑似レスポンスRESに含まれる宛先アドレスを宛先情報保持部2233に格納し、ステップS114の動作を実施する。ステップS114において、FPGA220は、オフロード処理の結果を、宛先情報保持部2233に保持された宛先アドレスに従って次のリクエストデータとして送信し、図5に示すリクエストデータのオフロード処理を終了する。
【0068】
図6は、図3のEnvoy320の動作の一例を示す。図6は、サーバ120aの制御方法の一例を示す。図6に示す動作は、繰り返し実施される。まず、ステップS200において、Envoy320は、疑似リクエストREQを検出した場合、ステップS202の動作を実施し、疑似リクエストREQを検出しない場合、図6に示す動作を終了する。
【0069】
ステップS202において、Envoy320は、疑似リクエストREQの検出時刻に基づいて、マイクロサービスの処理の開始時刻を保持する。次に、ステップS204において、Envoy320は、疑似リクエストREQの検出に基づいて、マイクロサービスの処理の開始回数を積算する。なお、ステップS202、S204の動作は、逆順で実施されてもよく、並列に実施されてもよい。
【0070】
次に、ステップS206において、Envoy320は、疑似レスポンスRESを検出した場合、ステップS208の動作を実施し、疑似レスポンスRESを検出しない場合、図6に示す動作を終了する。
【0071】
ステップS208において、Envoy320は、疑似レスポンスRESの検出時刻と、ステップS202で保持した開始時刻との差に基づいて、マイクロサービスの処理時間を算出する。次に、ステップS210において、Envoy320は、疑似レスポンスRESの検出回数を積算することで、マイクロサービスの処理の成功回数を算出する。なお、ステップS208、S210の動作は、逆順で実施されてもよく、並列に実施されてもよい。
【0072】
次に、ステップS212において、Envoy320は、疑似レスポンスRESに含まれる宛先アドレスを書き換え、宛先アドレスを書き換えた疑似レスポンスRESをFPGA220に転送し、図6に示す動作を終了する。
【0073】
図7は、図3の疑似コンテナ420の動作の一例を示す。図7は、サーバ120aの制御方法の一例を示す。図7に示す動作は、繰り返し実施される。
【0074】
まず、ステップS300において、疑似コンテナ420は、FPGA220から疑似リクエストREQを受信した場合、ステップS302の動作を実施し、疑似リクエストREQを受信していない場合、図7に示す動作を終了する。ステップS302において、疑似コンテナ420は、受信した疑似リクエストREQを完了通知待ち部422に格納する。
【0075】
次に、ステップS304において、疑似コンテナ420は、FPGA220から処理完了通知CMPTを受信するまで待つ。疑似コンテナ420は、処理完了通知CMPTを受信した場合、ステップS306を実施し、処理完了通知CMPTを受信していない場合、図7に示す動作を終了する。ステップS306において、疑似コンテナ420は、疑似リクエストREQに含まれる宛先アドレス等の情報を含む疑似レスポンスRESを生成し、生成した疑似レスポンスRESをFPGA220に送信し、図7に示す動作を終了する。
【0076】
以上、この実施形態においても上述した実施形態と同様の効果を得ることができる。例えば、リクエストデータを使用したマイクロサービスの処理機能を、仮想マシン520内のアプリコンテナに搭載せずFPGA220にオフロードすることで、Envoy320を介在させることなくマイクロサービスの処理を実施することができる。
【0077】
FPGA220と疑似コンテナ420とをEnvoy320を介して接続することで、Envoy320は、疑似リクエストREQ、処理完了通知CMPTおよび疑似レスポンスRESを検出することができる。このため、Envoy320は、リクエストデータおよびマイクロサービスの処理に関する情報を取得することができる。
【0078】
これにより、コントロールプレーンCPLは、サービスメッシュの制御機能を適切に更新することができ、FPGA220にオフロードされたマイクロサービスの処理のスループットの低下を抑制しつつ、サービスメッシュ機能を実現することができる。マイクロサービスの処理の低下を抑制しつつサービスメッシュ機能を実現できるため、マイクロサービスアーキテクチャに含まれる情報処理装置110の処理性能および情報処理システムの処理性能を向上することができる。この結果、例えば、マイクロサービスを利用して画像の認識処理等を高速に実施することができる。
【0079】
宛先変更部2231は、宛先アドレスが宛先情報保持部2233に保持されていない場合、処理結果保持部2232にマイクロサービスの処理後のデータを格納し、疑似アプリ410からの疑似レスポンスRESを待つ。これにより、マイクロサービスの処理機能がオフロード回路部222にオフロードされる場合にも、Envoy320で書き換えられた宛先アドレスを取得することができ、次のリクエストデータを送信することができる。
【0080】
宛先変更部2231は、宛先アドレスが宛先情報保持部2233に保持されている場合、疑似レスポンスRESを待つことなく、次のリクエストデータを生成することができるため、マイクロサービスの処理のスループットを向上することができる。
【0081】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【0082】
100A、100B 情報処理システム
110(110a、110b、110c) 情報処理装置
120(120a、120b、120c) サーバ
210 論理回路
211 通信インタフェース部
212 処理機能部
213 処理結果保持部
214 宛先情報保持部
220 FPGA
221 通信インタフェース部
222 オフロード回路部
223 宛先制御部
2231 宛先変更部
2232 処理結果保持部
2233 宛先情報保持部
224 通知処理部
310 サービスメッシュ機能部
311 モニタリング部
312 宛先書き換え部
320、320b Envoy
321 モニタリング部
322 宛先書き換え部
410 疑似アプリ
420 疑似コンテナ
420b アプリコンテナ
421 通知返信部
422 完了通知待ち部
500 CPU処理部
501 CPU
502 RAM
520 仮想マシン
522、522b Pod
600 スイッチ
CMPT 処理完了通知
REQ 疑似リクエスト
RES 疑似レスポンス
図1
図2
図3
図4
図5
図6
図7