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

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

▶ 日本電信電話株式会社の特許一覧 ▶ エヌ・ティ・ティ・アドバンステクノロジ株式会社の特許一覧

特開2023-72284データ転送デバイス、データ処理デバイスおよびデータ処理方法
<>
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図1
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図2
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図3
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図4
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図5
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図6
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図7
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図8
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図9
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図10
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図11
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図12
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図13
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図14
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図15
  • 特開-データ転送デバイス、データ処理デバイスおよびデータ処理方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023072284
(43)【公開日】2023-05-24
(54)【発明の名称】データ転送デバイス、データ処理デバイスおよびデータ処理方法
(51)【国際特許分類】
   H04L 45/50 20220101AFI20230517BHJP
   H04L 12/40 20060101ALI20230517BHJP
   H04L 45/655 20220101ALI20230517BHJP
【FI】
H04L45/50
H04L12/40 D
H04L12/40 Z
H04L45/655
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021184727
(22)【出願日】2021-11-12
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】000102739
【氏名又は名称】エヌ・ティ・ティ・アドバンステクノロジ株式会社
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100153006
【弁理士】
【氏名又は名称】小池 勇三
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(74)【代理人】
【識別番号】100121669
【弁理士】
【氏名又は名称】本山 泰
(72)【発明者】
【氏名】三浦 直樹
(72)【発明者】
【氏名】坂本 健
(72)【発明者】
【氏名】有川 勇輝
(72)【発明者】
【氏名】伊藤 猛
(72)【発明者】
【氏名】田仲 顕至
(72)【発明者】
【氏名】片山 勝
(72)【発明者】
【氏名】右近 祐太
【テーマコード(参考)】
5K030
5K032
【Fターム(参考)】
5K030LB05
5K030LB07
5K032CC05
(57)【要約】
【課題】低遅延なデータ転送を実現する。
【解決手段】データ処理デバイス3-1~3-13は、ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行う。データ転送デバイス2-1~2-9は、ユーザ管理装置1-1~1-3、他のデータ転送デバイスまたは配下のデータ処理デバイスから受信したパケットを転送する。データ転送デバイス2-1~2-9は、受信したパケットの転送先が配下のデータ処理デバイスだった場合に共有バスの状況を確認して、共有バスが利用可能だった場合に、共有バスを介して転送先のデータ処理デバイスにパケットを転送し、配下のデータ処理デバイスからの通信要請に対していずれか1つに共有バスの使用権を与え、使用権を与えたデータ処理デバイスから共有バスを介してパケットを受信する。
【選択図】 図1
【特許請求の範囲】
【請求項1】
ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスを配下に有するデータ転送デバイスにおいて、
前記サービスチェインの始点となるユーザ管理装置または他のデータ転送デバイスからパケットを受信するように構成された複数のパケット受信部と、
前記ユーザ管理装置、他のデータ転送デバイスまたは配下の前記データ処理デバイスから受信したパケットからタグを取得するように構成されたパケット解析部と、
前記複数のパケット受信部のうちいずれか1つのパケット受信部からのパケットを前記パケット解析部に選択的に入力するように構成された入力調停部と、
前記タグに記載された前記サービスチェインのルート情報に基づいて、前記ユーザ管理装置、他のデータ転送デバイスまたは配下の前記データ処理デバイスから受信したパケットの転送先を決定するように構成された第1の転送制御部と、
パケットの転送先が他のデータ転送デバイスの場合に転送先のデータ転送デバイスにパケットを転送するように構成されたパケット送信部と、
パケットの転送先が配下の前記データ処理デバイスの場合に共有バスの状況を確認して、前記共有バスが利用可能だった場合に、前記共有バスを介して転送先の前記データ処理デバイスにパケットを転送し、前記タグに記載された前記ルート情報に基づいて、配下の前記データ処理デバイスから受信したパケットの転送先を決定するように構成されたデバイス間通信制御部とを備え、
前記デバイス間通信制御部は、配下の前記データ処理デバイスが複数の場合に、これらデータ処理デバイスからの通信要請に対していずれか1つに前記共有バスの使用権を与え、使用権を与えたデータ処理デバイスから前記共有バスを介してパケットを受信するように前記データ処理デバイス間を調停することを特徴とするデータ転送デバイス。
【請求項2】
請求項1記載のデータ転送デバイスにおいて、
前記デバイス間通信制御部は、
配下の前記データ処理デバイスごとに割り当てられた記憶部を有する送信バッファと、
配下の前記データ処理デバイスから受信したパケットの転送先が配下の別のデータ処理デバイスの場合に、前記タグに記載された前記ルート情報に基づいてパケットの転送先を決定するように構成された第2の転送制御部と、
前記第1の転送制御部または前記第2の転送制御部によって決定されたパケットの転送先が配下の前記データ処理デバイスの場合に、転送先の前記データ処理デバイスに対応する前記送信バッファの記憶部にパケットを格納するように構成されたバッファ入力部と、
前記送信バッファに格納されたパケットを前記共有バスを介して転送先の前記データ処理デバイスに転送し、前記データ処理デバイスからパケットを受信するように構成された通信管理部とを備え、
前記通信管理部は、配下の前記データ処理デバイスが複数の場合に、これらデータ処理デバイスからの通信要請に対していずれか1つに前記共有バスの使用権を与え、使用権を与えたデータ処理デバイスから前記共有バスを介してパケットを受信するように前記データ処理デバイス間を調停することを特徴とするデータ転送デバイス。
【請求項3】
請求項1または2記載のデータ転送デバイスにおいて、
前記サービスチェインのルートを計算する通信管理装置からの情報に基づいて、前記第1の転送制御部と前記デバイス間通信制御部のそれぞれに登録されたルーティングテーブルを更新するように構成されたルート情報登録部をさらに備え、
前記第1の転送制御部と前記デバイス間通信制御部のそれぞれは、前記サービスチェインのルート情報と自身に登録されたルーティングテーブルとに基づいてパケットの転送先を決定することを特徴とするデータ転送デバイス。
【請求項4】
請求項1乃至3のいずれか1項に記載のデータ転送デバイスにおいて、
前記第1の転送制御部または前記デバイス間通信制御部によって決定されたパケットの転送先が配下の前記データ処理デバイスの場合に、パケットを転送先の前記データ処理デバイスに転送する代わりに、パケットのペイロードからパケット化される前の元のデータを再構築して、再構築したデータを前記共有バスを介して転送先の前記データ処理デバイスに転送するように構成されたデータ取得部と、
配下の前記データ処理デバイスから受信した、サービス機能のデータ処理が完了したデータをパケット化して、生成したパケットを前記デバイス間通信制御部に送信するように構成されたパケット作成部とをさらに備え、
前記データ取得部は、複数のパケットのペイロードからデータを取り出して元のデータを再構築する際に、データを正しい順序で並べる順序制御を行うことを特徴とするデータ転送デバイス。
【請求項5】
ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスにおいて、
サービス機能の処理を行うように構成された複数のサービス機能部と、
共有バスで接続された上位のデータ転送デバイスからパケットを受信したときに、パケットのタグに記載された前記サービスチェインのルート情報に基づいて、複数の前記サービス機能部のうち転送先のサービス機能部にパケットを転送するように構成されたパケット振り分け部と、
前記サービス機能部によるデータ処理が完了したパケットを受信したときに、前記データ転送デバイスに対して前記共有バスの使用を要請し、前記共有バスの使用権が与えられたときに、前記データ処理が完了したパケットを前記データ転送デバイスに転送するように構成された通信要請部とを備え、
各サービス機能部は、
前記データ転送デバイスから受信したパケットを正しい順序で並べる順序制御を行うように構成されたパケット順序制御部と、
前記パケット順序制御部から出力されたパケットからペイロードを取り出すように構成されたデータ取得部と、
前記データ取得部から出力された1乃至複数のペイロードから、パケット化される前の元のデータを再構築するように構成されたデータ構築部と、
前記データ構築部から出力されたデータに対してサービス機能のデータ処理を行うように構成されたデータ処理部と、
前記データ処理部によるデータ処理が完了したデータをパケット化して前記通信要請部に出力するように構成されたパケット作成部とを備えることを特徴とするデータ処理デバイス。
【請求項6】
請求項5記載のデータ処理デバイスにおいて、
各サービス機能部は、
受信したパケットがパラメータ登録要求のパケットである場合に、前記データ取得部によってパケットから取り出されたペイロードに含まれるパラメータを前記データ処理部に登録し、受信したパケットがパラメータ回収要求のパケットである場合に、前記パラメータを前記データ処理部から削除するように構成されたレジスタ管理部をさらに備え、
前記パケット作成部は、前記データ処理部から削除されたパラメータを、パラメータ回収要求元に返送されるようにパケット化して、前記通信要請部に出力することを特徴とするデータ処理デバイス。
【請求項7】
ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスを配下に有するデータ転送デバイスにおけるデータ処理方法において、
前記サービスチェインの始点となるユーザ管理装置または他のデータ転送デバイスからパケットを受信する第1のステップと、
前記ユーザ管理装置または他のデータ転送デバイスから受信したパケットを解析してタグを取得する第2のステップと、
前記第2のステップで取得したタグに記載された前記サービスチェインのルート情報に基づいて、前記ユーザ管理装置または他のデータ転送デバイスから受信したパケットの転送先を決定する第3のステップと、
前記第3のステップで決定したパケットの転送先が他のデータ転送デバイスの場合に転送先のデータ転送デバイスにパケットを転送する第4のステップと、
前記第3のステップで決定したパケットの転送先が配下の前記データ処理デバイスの場合に前記データ処理デバイスとの間の共有バスの状況を確認する第5のステップと、
前記確認の結果、前記共有バスが利用可能だった場合に、前記共有バスを介して転送先のデータ処理デバイスにパケットを転送する第6のステップと、
配下の前記データ処理デバイスからパケットを受信する第7のステップと、
配下の前記データ処理デバイスから受信したパケットを解析してタグを取得する第8のステップと、
前記第8のステップで取得したタグに記載された前記ルート情報に基づいて、配下の前記データ処理デバイスから受信したパケットの転送先を決定する第9のステップとを含み、
前記第5のステップは、前記第9のステップで決定したパケットの転送先が配下の前記データ処理デバイスの場合に前記データ処理デバイスとの間の共有バスの状況を確認するステップを含み、
前記第7のステップは、配下の前記データ処理デバイスが複数の場合に、これらデータ処理デバイスからの通信要請に対していずれか1つに前記共有バスの使用権を与え、使用権を与えたデータ処理デバイスから前記共有バスを介してパケットを受信するステップを含むことを特徴とするデータ処理方法。
【請求項8】
ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスにおけるデータ処理方法において、
共有バスで接続された上位のデータ転送デバイスからパケットを受信する第1のステップと、
前記データ転送デバイスから受信したパケットのタグに記載された前記サービスチェインのルート情報に基づいて、サービス機能の処理を行う複数のサービス機能部のうち転送先のサービス機能部にパケットを転送する第2のステップと、
転送先の前記サービス機能部において受信したパケットを正しい順序で並べる順序制御を行う第3のステップと、
転送先の前記サービス機能部において前記第3のステップによって正しい順序で並べられたパケットからペイロードを取り出す第4のステップと、
転送先の前記サービス機能部において1乃至複数の前記ペイロードから、パケット化される前の元のデータを再構築する第5のステップと、
転送先の前記サービス機能部において前記再構築されたデータに対してサービス機能のデータ処理を行う第6のステップと、
転送先の前記サービス機能部において前記第6のステップによるデータ処理が完了したデータをパケット化する第7のステップと、
転送先の前記サービス機能部によるデータ処理が完了したパケットを受信したときに、前記データ転送デバイスに対して前記共有バスの使用を要請する第8のステップと、
前記要請に対して前記共有バスの使用権が与えられたときに、前記データ処理が完了したパケットを前記データ転送デバイスに転送する第9のステップとを含むことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サービスファンクションチェイニングの技術によってユーザにサービスを提供するデータ処理システムにおけるデータ転送デバイス、データ処理デバイスおよびデータ処理方法に関するものである。
【背景技術】
【0002】
エンドツーエンドのサービスを柔軟に提供するため、サービスファンクションチェイニング(SFC)が検討されている(非特許文献1)。SFCは、ネットワーク上に点在するサービス機能(Service Function:SF)を自由に組み合わせる技術であり、SFCを用いることでユーザごとに最適なサービスを提供することができる。
【0003】
SFCは主に柔軟なネットワークサービスを実現するために検討されているが、クラウドサービスに対しても有用な技術である。例えば非特許文献2には、SFCを用いた画像処理サービスとして、2種類の画像処理機能を組み合わせた映像監視サービスが開示されている。
【0004】
SFCを用いたネットワークでは、図15に示すように入り口の分類器(Classifier)10がユーザごとにパケットにタグを付加し、サービス機能転送装置(Service Function Forwarder:SFF)11がタグに基づいて適切なSFにパケットを転送する。図15の12はSFを実現するサーバ、13A,13Bはユーザごとに提供されるSFを数珠つなぎにしたサービスチェインを表している。SFCにより、ユーザは自身の目的に応じたSFを組み合わせて独自のサービスを構築することができる。
【0005】
低遅延な処理が求められるクラウドサービスでは、サーバ12の処理性能が問題になることがある。サーバ12の処理性能を向上するため、図15に示すようにFPGA(Field-Programmable Gate Array)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)などのハードウェアアクセラレータ(HWA)120が用いられる。HWA120を用いるシステムは、多くの場合CPU(Central Processing Unit)121を用いてHWA120を制御する。すなわち、CPU121が主となってHWA120にデータを転送し、データ処理が完了するとその結果を回収する。
【0006】
しかし、CPU121による処理を必要としないアプリケーションもある。例えば、画像のエンコードやデコード、サイズ変更などの画像処理アプリケーションは、HWA120のみで処理可能である。このようなアプリケーションでは、CPU121は、HWA120を制御するだけであり、システム内の処理遅延を増大させる要因となる。
【0007】
クラウドサービスを提供するシステムは、外部からデータパケットを受信し、パケットから元のデータを再構築してからデータ処理を行わなければならない。このとき、HWA120を用いるシステムは、CPU121を用いてアプリケーションレベルでデータの再構築と、CPU121とHWA120間のデータ転送制御を行うことになる。
【0008】
例えば図16に示すシステムの場合、ホスト12aのNIC(Network Interface Card)122においてパケット処理を行い、ホストアプリケーション123においてデータの再構築と、CPU121とHWA120(図16の例ではFPGAボード)間のデータ転送制御を行う。そして、ホストアプリケーション123は、ドライバ124を介してHWA120上のカーネル125にデータを転送する(非特許文献3参照)。図16の126はメモリ、127はメモリコントローラ、128はCPU121とHWA120との接続のためのPCIe(PCI Express)コントローラ、129はメモリコントローラ127およびPCIeコントローラ128とカーネル125とを接続するインターコネクトである。
【0009】
図16のようなシステムでは、HWA120にアクセスするのに本来必要でないNIC122とホストアプリケーション123間およびホストアプリケーション123とドライバ124間の通信が発生する。また、CPU121が実行するホストアプリケーション123で低速なソフトウェア処理が行われる。よって、これらの遅延によりシステム内の処理遅延が増大する。
【0010】
SFCを利用するクラウドサービスでは、複数のサーバノードに実装されたSFを組み合わせることで各サーバノードで発生する処理遅延がサービス遅延として累積する。このため、図16のような構成のサーバノードは低遅延が要求されるサービスに適していないという課題があった。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】RFC 7665 - Service Function Chaining (SFC) Architecture,Internet Engineering Task Force (IETF),October 2015,<https://datatracker.ietf.org/doc/html/rfc7665>
【非特許文献2】Yuta UKON,Koji YAMAZAKI,Koyo NITTA,“Real-Time Image Processing Based on Service Function Chaining Using CPU-FPGA Architecture”,IEICE Transactions on Communications,Vol.E103-B,No.1,pp.11-19,2020,<https://search.ieice.org/bin/summary.php?id=e103-b_1_11>
【非特許文献3】“Intel FPGA SDK for OpenCL Pro Edition best Practices Guide”,Intel Corporation,2021,<https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/opencl-sdk/aocl-best-practices-guide.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、上記課題を解決するためになされたもので、サービスファンクションチェイニングの技術によってユーザにサービスを提供するデータ処理システムにおいて、低遅延なデータ転送を実現することができるデータ転送デバイス、データ処理デバイスおよびデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明は、ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスを配下に有するデータ転送デバイスにおいて、前記サービスチェインの始点となるユーザ管理装置または他のデータ転送デバイスからパケットを受信するように構成された複数のパケット受信部と、前記ユーザ管理装置、他のデータ転送デバイスまたは配下の前記データ処理デバイスから受信したパケットからタグを取得するように構成されたパケット解析部と、前記複数のパケット受信部のうちいずれか1つのパケット受信部からのパケットを前記パケット解析部に選択的に入力するように構成された入力調停部と、前記タグに記載された前記サービスチェインのルート情報に基づいて、前記ユーザ管理装置、他のデータ転送デバイスまたは配下の前記データ処理デバイスから受信したパケットの転送先を決定するように構成された第1の転送制御部と、パケットの転送先が他のデータ転送デバイスの場合に転送先のデータ転送デバイスにパケットを転送するように構成されたパケット送信部と、パケットの転送先が配下の前記データ処理デバイスの場合に共有バスの状況を確認して、前記共有バスが利用可能だった場合に、前記共有バスを介して転送先の前記データ処理デバイスにパケットを転送し、前記タグに記載された前記ルート情報に基づいて、配下の前記データ処理デバイスから受信したパケットの転送先を決定するように構成されたデバイス間通信制御部とを備え、前記デバイス間通信制御部は、配下の前記データ処理デバイスが複数の場合に、これらデータ処理デバイスからの通信要請に対していずれか1つに前記共有バスの使用権を与え、使用権を与えたデータ処理デバイスから前記共有バスを介してパケットを受信するように前記データ処理デバイス間を調停することを特徴とするものである。
【0014】
また、本発明のデータ転送デバイスの1構成例において、前記デバイス間通信制御部は、配下の前記データ処理デバイスごとに割り当てられた記憶部を有する送信バッファと、配下の前記データ処理デバイスから受信したパケットの転送先が配下の別のデータ処理デバイスの場合に、前記タグに記載された前記ルート情報に基づいてパケットの転送先を決定するように構成された第2の転送制御部と、前記第1の転送制御部または前記第2の転送制御部によって決定されたパケットの転送先が配下の前記データ処理デバイスの場合に、転送先の前記データ処理デバイスに対応する前記送信バッファの記憶部にパケットを格納するように構成されたバッファ入力部と、前記送信バッファに格納されたパケットを前記共有バスを介して転送先の前記データ処理デバイスに転送し、前記データ処理デバイスからパケットを受信するように構成された通信管理部とを備え、前記通信管理部は、配下の前記データ処理デバイスが複数の場合に、これらデータ処理デバイスからの通信要請に対していずれか1つに前記共有バスの使用権を与え、使用権を与えたデータ処理デバイスから前記共有バスを介してパケットを受信するように前記データ処理デバイス間を調停することを特徴とするものである。
【0015】
また、本発明のデータ転送デバイスの1構成例は、前記サービスチェインのルートを計算する通信管理装置からの情報に基づいて、前記第1の転送制御部と前記デバイス間通信制御部のそれぞれに登録されたルーティングテーブルを更新するように構成されたルート情報登録部をさらに備え、前記第1の転送制御部と前記デバイス間通信制御部のそれぞれは、前記サービスチェインのルート情報と自身に登録されたルーティングテーブルとに基づいてパケットの転送先を決定することを特徴とするものである。
また、本発明のデータ転送デバイスの1構成例は、前記第1の転送制御部または前記デバイス間通信制御部によって決定されたパケットの転送先が配下の前記データ処理デバイスの場合に、パケットを転送先の前記データ処理デバイスに転送する代わりに、パケットのペイロードからパケット化される前の元のデータを再構築して、再構築したデータを前記共有バスを介して転送先の前記データ処理デバイスに転送するように構成されたデータ取得部と、配下の前記データ処理デバイスから受信した、サービス機能のデータ処理が完了したデータをパケット化して、生成したパケットを前記デバイス間通信制御部に送信するように構成されたパケット作成部とをさらに備え、前記データ取得部は、複数のパケットのペイロードからデータを取り出して元のデータを再構築する際に、データを正しい順序で並べる順序制御を行うことを特徴とするものである。
【0016】
また、本発明は、ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスにおいて、サービス機能の処理を行うように構成された複数のサービス機能部と、共有バスで接続された上位のデータ転送デバイスからパケットを受信したときに、パケットのタグに記載された前記サービスチェインのルート情報に基づいて、複数の前記サービス機能部のうち転送先のサービス機能部にパケットを転送するように構成されたパケット振り分け部と、前記サービス機能部によるデータ処理が完了したパケットを受信したときに、前記データ転送デバイスに対して前記共有バスの使用を要請し、前記共有バスの使用権が与えられたときに、前記データ処理が完了したパケットを前記データ転送デバイスに転送するように構成された通信要請部とを備え、各サービス機能部は、前記データ転送デバイスから受信したパケットを正しい順序で並べる順序制御を行うように構成されたパケット順序制御部と、前記パケット順序制御部から出力されたパケットからペイロードを取り出すように構成されたデータ取得部と、前記データ取得部から出力された1乃至複数のペイロードから、パケット化される前の元のデータを再構築するように構成されたデータ構築部と、前記データ構築部から出力されたデータに対してサービス機能のデータ処理を行うように構成されたデータ処理部と、前記データ処理部によるデータ処理が完了したデータをパケット化して前記通信要請部に出力するように構成されたパケット作成部とを備えることを特徴とするものである。
【0017】
また、本発明のデータ処理デバイスの1構成例において、各サービス機能部は、受信したパケットがパラメータ登録要求のパケットである場合に、前記データ取得部によってパケットから取り出されたペイロードに含まれるパラメータを前記データ処理部に登録し、受信したパケットがパラメータ回収要求のパケットである場合に、前記パラメータを前記データ処理部から削除するように構成されたレジスタ管理部をさらに備え、前記パケット作成部は、前記データ処理部から削除されたパラメータを、パラメータ回収要求元に返送されるようにパケット化して、前記通信要請部に出力することを特徴とするものである。
【0018】
また、本発明は、ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスを配下に有するデータ転送デバイスにおけるデータ処理方法において、前記サービスチェインの始点となるユーザ管理装置または他のデータ転送デバイスからパケットを受信する第1のステップと、前記ユーザ管理装置または他のデータ転送デバイスから受信したパケットを解析してタグを取得する第2のステップと、前記第2のステップで取得したタグに記載された前記サービスチェインのルート情報に基づいて、前記ユーザ管理装置または他のデータ転送デバイスから受信したパケットの転送先を決定する第3のステップと、前記第3のステップで決定したパケットの転送先が他のデータ転送デバイスの場合に転送先のデータ転送デバイスにパケットを転送する第4のステップと、前記第3のステップで決定したパケットの転送先が配下の前記データ処理デバイスの場合に前記データ処理デバイスとの間の共有バスの状況を確認する第5のステップと、前記確認の結果、前記共有バスが利用可能だった場合に、前記共有バスを介して転送先のデータ処理デバイスにパケットを転送する第6のステップと、配下の前記データ処理デバイスからパケットを受信する第7のステップと、配下の前記データ処理デバイスから受信したパケットを解析してタグを取得する第8のステップと、前記第8のステップで取得したタグに記載された前記ルート情報に基づいて、配下の前記データ処理デバイスから受信したパケットの転送先を決定する第9のステップとを含み、前記第5のステップは、前記第9のステップで決定したパケットの転送先が配下の前記データ処理デバイスの場合に前記データ処理デバイスとの間の共有バスの状況を確認するステップを含み、前記第7のステップは、配下の前記データ処理デバイスが複数の場合に、これらデータ処理デバイスからの通信要請に対していずれか1つに前記共有バスの使用権を与え、使用権を与えたデータ処理デバイスから前記共有バスを介してパケットを受信するステップを含むことを特徴とするものである。
【0019】
また、本発明は、ユーザが要求するサービスの実現に必要なサービスチェインを構成する個々のサービス機能の処理を行うデータ処理デバイスにおけるデータ処理方法において、共有バスで接続された上位のデータ転送デバイスからパケットを受信する第1のステップと、前記データ転送デバイスから受信したパケットのタグに記載された前記サービスチェインのルート情報に基づいて、サービス機能の処理を行う複数のサービス機能部のうち転送先のサービス機能部にパケットを転送する第2のステップと、転送先の前記サービス機能部において受信したパケットを正しい順序で並べる順序制御を行う第3のステップと、転送先の前記サービス機能部において前記第3のステップによって正しい順序で並べられたパケットからペイロードを取り出す第4のステップと、転送先の前記サービス機能部において1乃至複数の前記ペイロードから、パケット化される前の元のデータを再構築する第5のステップと、転送先の前記サービス機能部において前記再構築されたデータに対してサービス機能のデータ処理を行う第6のステップと、転送先の前記サービス機能部において前記第6のステップによるデータ処理が完了したデータをパケット化する第7のステップと、転送先の前記サービス機能部によるデータ処理が完了したパケットを受信したときに、前記データ転送デバイスに対して前記共有バスの使用を要請する第8のステップと、前記要請に対して前記共有バスの使用権が与えられたときに、前記データ処理が完了したパケットを前記データ転送デバイスに転送する第9のステップとを含むことを特徴とするものである。
【発明の効果】
【0020】
本発明によれば、データ転送デバイスがマスタとなってパケットルーティングと配下のデータ処理デバイス間の調停とを行うことにより、配下のいずれのデータ処理デバイスとも同じ処理量の通信を行うことができる。本発明では、データ転送デバイスがネットワークレベルで通信制御を行うことで、低遅延でデータ処理デバイスにパケットを転送することができる。
【図面の簡単な説明】
【0021】
図1図1は、本発明の実施例に係るデータ処理システムの構成を示すブロック図である。
図2図2は、本発明の実施例に係るユーザ管理装置の構成を示すブロック図である。
図3図3は、本発明の実施例に係るユーザ管理装置の動作を説明するフローチャートである。
図4図4は、本発明の実施例に係るユーザ管理装置のデータ管理部の構成を示すブロック図である。
図5図5は、本発明の実施例に係るデータ転送デバイスの構成を示すブロック図である。
図6図6は、本発明の実施例に係るデータ転送デバイスのデバイス間通信制御部の構成を示すブロック図である。
図7図7は、本発明の実施例に係るデータ処理デバイスの構成を示すブロック図である。
図8図8は、本発明の実施例に係るデータ転送デバイスの動作を説明するフローチャートである。
図9図9は、本発明の実施例に係るデータ処理デバイスの動作を説明するフローチャートである。
図10図10は、本発明の実施例に係る通信管理装置の動作を説明するフローチャートである。
図11図11は、本発明の実施例に係るデータ処理システムの動作を説明するシーケンス図である。
図12図12は、本発明の実施例に係るデータ処理システムの別の動作を説明するシーケンス図である。
図13図13は、本発明の実施例に係るユーザ端末とデータ処理システム間、およびデータ処理システム内で送受信されるパケットのフォーマットを示す図である。
図14図14は、本発明の実施例に係るデータ処理システムを実現するコンピュータの構成例を示すブロック図である。
図15図15は、従来のサービスファンクションチェイニング技術を説明する図である。
図16図16は、従来のサービスファンクションチェイニング技術の課題を説明する図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施例について図面を参照して説明する。図1は本発明の実施例に係るデータ処理システムの構成を示すブロック図である。データ処理システムは、サービスの利用を申請したユーザの情報の管理とユーザから受信したパケットの転送制御とを行うユーザ管理装置1-1~1-3と、パケットの転送を行う1乃至複数のデータ転送デバイス2-1~2-9と、受信したパケットに含まれるデータに対してSFのデータ処理を行うデータ処理デバイス3-1~3-13と、サービスチェインの全てのデータ処理が完了したパケットをユーザ宛に返送する外部送信装置4-1~4-3とを備えている。さらに、データ処理システムは、ユーザが要求するサービスの実現に必要なサービスチェインのルートを計算し、ルート情報をユーザ管理装置1-1~1-3に送信すると共に、計算したルート上のデータ転送デバイス2-1~2-9に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する通信管理装置5を備えている。データ処理デバイス3-1~3-13としては、CPU、FPGA、GPU、ASICなどがある。
【0023】
本実施例では、データ処理デバイス3-1~3-13によって実現されるSFを組み合わせてユーザごとにカスタマイズしたサービスを提供する。具体的にはデータ転送デバイス2-1~2-9間で通信し、ユーザから送られてきたデータパケットを適切なSFに転送する。SFにおけるデータ処理が完了すると、さらに別のSFにデータパケットを転送してデータ処理を行う。これにより、本実施例では、ユーザごとに処理内容を変えてユーザの目的に応じたサービスを提供する。
【0024】
データパケットが辿る通信経路をサービスチェインと呼ぶ。図15と同様に、図1の13はサービスチェインを表す。サービスチェインを複数のユーザが同時に利用すると、SFでデータが衝突し、適切な結果を保証できない。そこで、本実施例では、データ処理システムの入り口のユーザ管理装置1-1~1-3でデータパケットを管理し、サービスチェインを1ユーザしか利用しないように制御する。
【0025】
また、ユーザ管理装置1-1~1-3は、データパケットへのタグ付加も行う。タグには、サービスチェインのルート情報が記載されている。データ転送デバイス2-1~2-9は、タグに基づくデータパケットのルーティングを行う。タグの具体例としては、NSH(Network Service Header)やMPLS(Multi-Protocol Label Switching)ヘッダ、SRv6(Segment Routing over IPv6)などが考えられる。また、独自ヘッダを定義してもよい。
【0026】
MAC(Media Access Control)アドレスやIP(Internet Protocol)アドレスを用いるルーティングでは、データ転送デバイス2-1~2-9に大きなルーティングテーブルを持たせなければならない。一方、本実施例のようなタグを用いたルーティングでは、データパケットにルート情報を持たせることでルーティングテーブルの規模を小さくし、ルーティングに必要な計算リソースやメモリリソースを減らすことができる。
【0027】
外部送信装置4-1~4-3は、全てのデータ処理が完了したデータパケットに対して宛先情報を付加してユーザに送り返す。外部送信装置4-1~4-3が必要な理由は、データ処理システム内外で使われるプロトコルが異なるためである。データ処理システム外における通信は、TCP/IPが世界標準的に利用されている。一方、データ処理システム内では、前述の理由によりタグを用いたパケット通信を行う。そこで、データ処理システム内外のプロトコルの違いを吸収するため、外部送信装置4-1~4-3を用いる。
【0028】
図2はユーザ管理装置1-1の構成を示すブロック図である。ユーザ管理装置1-1は、パケット受信部100と、パケット送信部101と、受信したパケットを解析するパケット解析部102と、受信したパケットの種別を判定するパケット種別判定部103と、パケットからユーザ情報を抽出するユーザ情報抽出部104と、ユーザから受信したパケットを優先度に応じたタイミングでタグ付加部107に転送するデータ管理部105と、ユーザから受信したパケットを一時的に格納するための記憶部106と、ユーザから受信したパケットにタグを付加するタグ付加部107と、データ通信制御部108と、サービスの利用を申請したユーザの情報を管理し、ユーザIDを発行し、発行したユーザIDをユーザに通知するユーザ管理部109と、ユーザ管理部109が管理するユーザの情報に基づいて、ユーザごとのパケットの転送の優先度を決定するQoS(Quality of Service)制御部110と、通信管理装置5から受信したルート情報を記載したタグを生成するタグ生成部111とを備えている。
【0029】
図3はユーザ管理装置1-1の動作を説明するフローチャートである。ユーザ管理装置1-1のパケット受信部100がパケットを受信すると(図3ステップS1)、始めにパケット解析部102はパケットを解析する(図3ステップS2)。
パケット種別判定部103は、パケット解析部102による解析結果に基づいてパケット種別を判定する(図3ステップS3)。パケット種別としては、「サービス利用申請」と「サービス利用」とがある。
【0030】
パケット種別判定部103は、パケット種別が「サービス利用申請」のパケットをユーザ情報抽出部104に送り、パケット種別が「サービス利用」のパケットをデータ管理部105に送る。
【0031】
ユーザ情報抽出部104は、パケット種別判定部103から受け取ったパケットに記載されたユーザ情報(IPアドレス、ポート番号、契約番号、サービス情報、優先度など)を取得する(図3ステップS4)。ユーザ情報抽出部104は、取得したユーザ情報をユーザ管理部109に送る。
【0032】
ユーザ管理部109は、ユーザ情報抽出部104から受け取ったユーザ情報を管理する。ユーザ管理部109は、ユーザに対してサービスを利用するためのユーザIDを発行し(図3ステップS5)、ユーザ情報をユーザIDと共に通信管理装置5に転送する(図3ステップS6)。
【0033】
QoS制御部110は、ユーザが要求する優先度やサービスの情報に基づいてユーザごとのパケットの転送の優先度を決定し、優先度の情報(QoS情報)をデータ管理部105に登録する(図3ステップS7)。
【0034】
タグ生成部111は、通信管理装置5からルート情報を受け取り、ルート情報を記載したタグを生成する。そして、タグ生成部111は、生成したタグとユーザ管理部109によって発行されたユーザIDとを対応付けてタグ付加部107に登録する(図3ステップS8)。
【0035】
データ管理部105は、パケット種別判定部103で「サービス利用」と判定されたパケットを受信し、受信したパケットをユーザごとに仕分けて記憶部106に一時格納する。そして、データ管理部105は、QoS制御部110によって登録された優先度の情報を基にサービスチェインごとに特定ユーザのパケットを記憶部106から取り出してタグ付加部107に転送する(図3ステップS9)。
【0036】
ユーザに対してユーザIDが発行されると、パケット種別が「サービス利用」のパケットには、後述のようにユーザによってユーザIDが付加される。
タグ付加部107は、タグ生成部111によって登録されたタグのうち、データ管理部105から受信したパケットに付加されているユーザIDに対応するタグを、受信したパケットに付加して、タグ付きのパケットをパケット送信部101に出力する(図3ステップS10)。
【0037】
パケット送信部101は、タグ付加部107から出力されたパケットを最寄りのデータ転送デバイス2-1~2-9に送信する(図3ステップS11)。
上記のようにタグの具体例としては、NSHやMPLSヘッダなどが考えられる。また、独自ヘッダを定義してもよい。タグの代わりにMACアドレスやIPアドレスを用いることも可能である。しかし、MACアドレスやIPアドレスを用いる方法では、データ転送デバイス2-1~2-9が大規模なルーティングテーブルを持つ必要があり、タグを用いる方法と比べて計算リソースやメモリリソースをより多く消費する。
【0038】
なお、図2図3の例では、ユーザ管理装置1-1を例に挙げて説明しているが、ユーザ管理装置1-2,1-3の構成と動作もユーザ管理装置1-1と同様である。
【0039】
図4はユーザ管理装置1-1~1-3のデータ管理部105の構成を示すブロック図である。データ管理部105は、パケット振り分け部1050と、1乃至複数のユーザ判定部1051-1~1051-N(Nは1以上の整数)と、1乃至複数のユーザ選択部1052-1~1052-Nと、1乃至複数の出力選択部1053-1~1053-Nと、出力制御部1054とから構成される。
【0040】
ユーザ判定部1051-1とユーザ選択部1052-1と出力選択部1053-1とは、メモリコントローラ1055-1を構成している。同様に、ユーザ判定部1051-Nとユーザ選択部1052-Nと出力選択部1053-Nとは、メモリコントローラ1055-Nを構成している。各メモリコントローラ1055-1~1055-Nは、記憶部106へのデータパケットの格納と取り出しを行う。メモリコントローラは1つでもよいが、複数設けることにより、記憶部106へのアクセスを並列化することができ、処理性能を向上させることができる。
【0041】
データ管理部105は、パケット種別判定部103から受信したデータパケットをユーザごとに管理し、適切なタイミングで後段のタグ付加部107に出力する。
パケット振り分け部1050は、パケット種別判定部103から受信したデータパケットの格納を制御するメモリコントローラを決定し、決定したメモリコントローラのユーザ判定部1051(1051-1~1051-N)にデータパケットを出力する。なお、ユーザIDの一部をメモリコントローラの番号とすれば、パケット振り分け部1050は高速な振り分けが可能になる。パケットを振り分けるメモリコントローラの決定は、例えばメモリコントローラの処理の空きの状態に応じて適宜決定すればよい。
【0042】
ユーザ判定部1051-1~1051-Nは、パケット振り分け部1050から受信したパケットのユーザIDを参照し、記憶部106と出力選択部1053-1~1053-Nのどちらにパケットを転送するかを決める。
【0043】
具体的には、ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと同じユーザIDを有するパケットを受信した場合、受信したパケットを自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nに転送する。また、ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと異なるユーザIDを有するパケットを受信した場合、受信したパケットを記憶部106に一時格納する。
【0044】
ユーザ選択部1052-1~1052-Nは、QoS制御部110によって登録されたQoS情報(優先度の情報)を基に記憶部106からデータパケットを選択的に取り出す。ユーザ選択部1052-1~1052-Nは、QoS制御を行わない場合、記憶部106に格納されているデータパケットのうち、最も先に格納されたデータパケットを取り出す。
【0045】
出力選択部1053-1~1053-Nは、自身と同じメモリコントローラに属するユーザ判定部1051-1~1051-Nとユーザ選択部1052-1~1052-Nのうち、どちらから受信したデータパケットを出力するかを選択する。ユーザ選択部1052-1~1052-Nに対してはバックプレッシャーをかけられるため、ユーザ判定部1051-1~1051-Nから受信したデータパケットを優先して出力する。この選択によりパケット順序が入れ替わることがある。そのため、データ処理デバイス3-1~3-13は、パケット順序制御機能を備えなければならない。
【0046】
出力制御部1054は、出力選択部1053-1~1053-Nから出力されたパケットをタグ付加部107に出力する。出力制御部1054は、メモリコントローラ(出力選択部1053-1~1053-N)が複数ある場合、どのメモリコントローラからのパケットをタグ付加部107に出力するかを制御する。その制御方式としては、ラウンドロビン方式やベストエフォート方式、DiffServ方式(QoS)などがある。
【0047】
ユーザ判定部1051-1~1051-Nは、自身と同じメモリコントローラに属する出力選択部1053-1~1053-Nが現在出力しているパケットのユーザIDと異なるユーザIDを有するパケットを受信した場合、受信したパケットをそのまま記憶部106に格納してもよい。このとき、ユーザ判定部1051-1~1051-Nは、受信したパケットと同じユーザIDを有するパケットが記憶部106に既に格納済みの場合には、格納済みのパケットと受信したパケットとを結合するように記憶部106に格納することで、より大きなデータを記憶部106に保持させるようにしてもよい。
【0048】
図5はデータ転送デバイス2-9の構成を示すブロック図である。データ転送デバイス2-9は、ユーザ管理装置1-1~1-3または他のデータ転送デバイスからパケットを受信する1乃至複数のパケット受信部200-1~200-M(Mは1以上の整数)と、パケット受信部200-1~200-Mのうちいずれか1つのパケット受信部からのパケットを選択するようにパケット受信部間を調停する入力調停部201と、他のデータ転送デバイスまたは外部送信装置4-1~4-3にパケットを転送する1乃至複数のパケット送信部202-1~202-J(Jは1以上の整数)と、受信したパケットからタグを取得するパケット解析部203と、タグに記載されたルート情報に基づいて、ユーザ管理装置1-1~1-3、他のデータ転送デバイスまたは配下のデータ処理デバイス3-11~3-13から受信したパケットの転送先を決定する転送制御部204と、パケットの転送先が配下のデータ処理デバイス3-11~3-13の場合に転送先のデータ処理デバイスにパケットを転送するデバイス間通信制御部205とを備えている。
【0049】
さらに、データ転送デバイス2-9は、パケットの転送先が配下のデータ処理デバイス3-11~3-13の場合にパケットのペイロードから元のデータを再構築して、再構築したデータを転送先のデータ処理デバイスに転送するデータ取得部206と、配下のデータ処理デバイス3-11~3-13から受信した、SFのデータ処理が完了したデータをパケット化して、生成したパケットをデバイス間通信制御部205に送信するパケット作成部207と、通信管理装置5からの情報に基づいて転送制御部204とデバイス間通信制御部205のそれぞれに登録されたルーティングテーブルを更新するルート情報登録部208とを備えている。
【0050】
データ転送デバイス2-9のパケット受信部200-1~200-Mのいずれかが前段のユーザ管理装置または他のデータ転送デバイスからデータパケットを受信すると、パケット解析部203は、データパケットを解析して、データパケットに付加されているタグを取得し、受信したデータパケットを転送制御部204に出力する。
【0051】
転送制御部204は、パケット解析部203によって取得されたタグに記載されたルート情報と自身に登録されているルーティングテーブルとに基づいて、パケット解析部203から出力されたデータパケットをデバイス間通信制御部205を介して配下のデータ処理デバイス3-11~3-13に転送するか、またはパケット解析部203から出力されたデータパケットをパケット送信部202-1~202-Jのいずれかを介して隣接するデータ転送デバイスに転送する。
【0052】
本実施例では、データ転送デバイス2-9が複数のパケット受信部200-1~200-Mを備えることで2次元、3次元のネットワークを形成できる。この構成では、各パケット受信部200-1~200-Mが同時にパケットを受信することがある。
【0053】
このため、入力調停部201は、複数のパケット受信部200-1~200-Mが受信したパケットのうち、いずれか1つのパケット受信部からのパケットをパケット解析部203に選択的に入力すると共に、他のパケット受信部を待機させるように、パケット受信部200-1~200-M間を調停する。選択方法については、基本的には先に到着したパケットをパケット解析部203に送ればよい。偶然、パケット受信部200-1~200-Mが同時にパケットを受信した場合、入力調停部201は、予め設定されたパケット受信部200-1~200-Mの番号に基づいて、番号の小さいものから順に選んでもよいし、パケット受信部200-1~200-Mの予め設定された優先度に従って選んでもよい。
【0054】
デバイス間通信制御部205は、転送制御部204から送られてきたデータパケットを共有バス6を介して配下のデータ処理デバイス3-11~3-13に転送する。
配下のデータ処理デバイス3-11~3-13がGPUなどパケット処理を苦手とするデータ処理デバイスの場合、データ取得部206でパケット処理を行い、元のデータ(パケットのペイロードに格納されているデータ)を再構築してから転送するようにしてもよい。
【0055】
具体的には、データ取得部206は、転送制御部204から送られてきたデータパケットからペイロードを取り出し、同一のユーザIDの1乃至複数のデータパケットから取得したペイロードを組み合わせて元のデータを再構築する。データ取得部206は、到着したパケットの順序が入れ替わっている可能性があるため、パケット順序制御を行い、複数のパケットから取り出されたデータを正しい順序で並べる。この順序制御は、パケットに付加されているシーケンス番号に基づいて行われる。
【0056】
また、データ取得部206によって元のデータを再構築して送る場合には、データパケットから取り出したパケットヘッダをパケット作成部207に保管させておく必要がある。パケット作成部207は、データ取得部206から受け取ったパケットヘッダをユーザIDと対応付けて保管する。
【0057】
また、デバイス間通信制御部205は、配下のデータ処理デバイス3-11~3-13間の通信制御も行う。これにより、転送制御部204は、ユーザ管理装置1-1~1-3、他のデータ転送デバイスまたは外部送信装置4-1~4-3と自装置との間の通信に集中でき、通信帯域を広げることができる。
【0058】
配下のデータ処理デバイス3-11~3-13がGPUなどパケット処理を苦手とするデータ処理デバイスの場合に、パケット作成部207は、共有バス6を介して配下のデータ処理デバイス3-11~3-13からデータを受け取り、パケット化するようにしてもよい。
【0059】
具体的には、パケット作成部207は、データ処理デバイス3-11~3-13から受信したデータをパケット化し、生成したパケットをデバイス間通信制御部205に送信する。このとき、パケット作成部207は、データ取得部206から受け取って保管していたパケットヘッダのうち、データ処理デバイス3-11~3-13から受信したデータに付加されているユーザIDに対応するパケットヘッダと受信したデータとを組み合わせてパケット化する。パケットヘッダには、データ処理を行ったSFに対するルート情報を削除したタグが含まれる。
【0060】
本実施例では、データ取得部206とパケット作成部207でパケット処理を代行することで、パケット処理を苦手とするデータ処理デバイス3-11~3-13の処理遅延を削減することができる。
【0061】
ルート情報登録部208は、通信管理装置5から送られた情報に従って転送制御部204のルーティングテーブルとデバイス間通信制御部205のルーティングテーブルを更新する。通信管理装置5からは自装置のルーティングに必要な最低限の情報しか送られてこないため、ルーティングテーブルは比較的少ないメモリリソースで構成可能である。
【0062】
データ転送デバイス2-9として例えばCPUまたはGPUを用い、データ転送デバイス2-9の処理をソフトウェアで実行してもよいし、データ転送デバイス2-9として例えばFPGAを用い、データ転送デバイス2-9の処理をハードウェアで実行してもよい。ただし、一般的にはハードウェアの方がパケット処理性能が高いので、高速ネットワークを実現するには、ハードウェアを用いたほうがよい。
【0063】
以上の構成により、データ転送デバイス2-9は、配下のデータ処理デバイス3-11~3-13のいずれに対しても最短でデータパケットを転送できる。
【0064】
図6はデータ転送デバイス2-9のデバイス間通信制御部205の構成を示すブロック図である。デバイス間通信制御部205は、配下のデータ処理デバイス3-11~3-13から受信したパケットの転送先が配下の別のデータ処理デバイスの場合に、タグに記載されたルート情報に基づいてパケットの転送先を決定する転送制御部2050と、パケットの転送先が配下のデータ処理デバイス3-11~3-13の場合に転送先のデータ処理デバイスに対応する送信バッファ2052の記憶部(FIFOバッファ)2054-1~2054-K(Kは1以上の整数)にパケットを格納するバッファ入力部2051と、配下のデータ処理デバイスごとに割り当てられた記憶部2054-1~2054-Kを有する送信バッファ2052と、送信バッファ2052に格納されたパケットを転送先のデータ処理デバイス3-11~3-13に転送し、データ処理デバイス3-11~3-13からパケットを受信する通信管理部2053とから構成される。
【0065】
デバイス間通信制御部205は、パケット解析部203によって取得されたタグに記載されたルート情報と自身に登録されているルーティングテーブルとに基づいて、転送制御部204から送られてきたパケットを送信バッファ2052を介して配下のデータ処理デバイス3-11~3-13に転送する。
【0066】
また、データ転送デバイス2-9のパケット解析部203は、デバイス間通信制御部205が配下のデータ処理デバイス3-11~3-11から受信したパケットを解析して、パケットに付加されているタグを取得する。デバイス間通信制御部205は、パケット解析部203によって取得されたタグに記載されたルート情報と自身に登録されているルーティングテーブルとに基づいて、データ処理デバイス3-11~3-13から送られてきたパケットの転送先を調べ、パケットをデータ処理デバイス3-11~3-13または転送制御部204に転送する。
【0067】
共有バス6は一度に複数の通信を行えない。このため、データ処理デバイス3-11~3-13に転送されるデータパケットは、転送制御部204または転送制御部2050からバッファ入力部2051を介して送信バッファ2052に一旦格納される。
【0068】
送信バッファ2052は、1乃至複数の記憶部(FIFOバッファ)2054-1~2054-Kで構成されている。データ処理デバイス3-11~3-13のうちの1個のデータ処理デバイスと記憶部2054-1~2054-Kのうちの1個の記憶部とは、1対1で対応付けられている。バッファ入力部2051は、記憶部2054-1~2054-Kのうち、転送先のデータ処理デバイスに対応する記憶部にデータパケットを格納する。ただし、データ処理デバイスと記憶部の対応付けは恒久的なものではない。データ処理デバイス3-11~3-13の追加/削除に伴って対応付けを柔軟に変更することができる。
【0069】
通信管理部2053は、共有バス6が空いたときに記憶部2054-1~2054-Kからデータパケットを取り出し、取り出し元の記憶部に対応する転送先のデータ処理デバイス3-11~3-13にデータパケットを転送する。
【0070】
また、通信管理部2053は、配下のデータ処理デバイス3-11~3-13から共有バス6の使用を要求されると、いずれか1つのデータ処理デバイスに共有バス6の使用権を与えて、このデータ処理デバイスから共有バス6を介してデータパケットを受信すると共に、共有バス6の使用要求を出している他のデータ処理デバイスを待機させるように、データ処理デバイス3-11~3-13間を調停する。使用権の取得は先着順でも良いが、使用権の取得頻度に応じて後から要求したデータ処理デバイス3-11~3-13や記憶部2054-1~2054-Kに使用権を与えても良い。また、データ処理デバイス3-11~3-13や記憶部2054-1~2054-Kに優先順位を予め設定しておき、優先順位を考慮して使用権を与える相手を決めてもよい。さらに、パケットにプライオリティを持たせたり、外部からの命令により一時的に優先順位を変えることも考えられる。
【0071】
上記のとおり、データ転送デバイス2-9のパケット解析部203は、デバイス間通信制御部205が配下のデータ処理デバイス3-11~3-11から受信したパケットを解析して、パケットに付加されているタグを取得する。
【0072】
デバイス間通信制御部205の転送制御部2050は、パケット解析部203によって取得されたタグに記載されたルート情報と自身に登録されているルーティングテーブルとに基づいて、データ処理デバイス3-11~3-13から送られてきたパケットの転送先を調べ、パケットをバッファ入力部2051または転送制御部204に転送する。バッファ入力部2051に転送されたパケットは、上記の動作により配下のデータ処理デバイス3-11~3-13に転送される。
【0073】
転送制御部204が、ユーザ管理装置1-1~1-3もしくは他のデータ転送デバイスから受信したパケットの転送先、または配下のデータ処理デバイス3-11~3-13から受信したパケットのうち、他のデータ転送デバイスもしくは外部送信装置4-1~4-3を転送先とする場合の転送先を決定する。一方、転送制御部2050は、配下のデータ処理デバイスから受信したパケットの転送先が配下の別のデータ処理デバイスの場合にのみ、タグに記載されたルート情報に基づいてパケットの転送先を決定する。したがって、転送制御部2050は、配下のデータ処理デバイス3-11~3-13間のルーティング情報しか持たないため、テーブル規模が小さく、高速なルーティングが可能である。
【0074】
以上の構成により、本実施例では、デバイス間通信制御部205を介してどのデータ処理デバイス3-11~3-13にも同じ遅延でアクセスでき、転送制御部204を介さずにデータ処理デバイス3-11~3-13間の通信が可能である。また、本実施例では、データ処理デバイス3-11~3-13をデータ転送デバイス2-9と独立させることで、ユーザ管理装置1-1~1-3、他のデータ転送デバイス2-1~2-8または外部送信装置4-1~4-3とデータ転送デバイス2-9との通信を阻害することなく、新たなデータ処理デバイスの追加と削除が可能である。
【0075】
なお、図5図6の例では、データ転送デバイス2-9、データ処理デバイス3-11~3-13を例に挙げて説明しているが、データ転送デバイス2-1~2-8の構成と動作はデータ転送デバイス2-9と同様であり、データ処理デバイス3-1~3-10の動作はデータ処理デバイス3-11~3-13と同様である。
【0076】
図7はデータ処理デバイス3-11の構成を示すブロック図である。データ処理デバイス3-11は、SFの処理を行うサービス機能部(以下、SF部)302-1~302-L(Lは1以上の整数)によるデータ処理が完了したパケットを受信したときに、データ転送デバイス2-9に対して共有バス6の使用を要請し、共有バス6の使用権が与えられたときにデータ転送デバイス2-9にパケットを転送する通信要請部300と、データ転送デバイス2-9からパケットを受信したときに、パケットのタグに記載されたルート情報に基づいて、SF部302-1~302-Lのうち転送先のSF部にパケットを転送するパケット振り分け部301と、SF部302-1~302-Lとから構成される。
【0077】
各SF部302-1~302-Lは、それぞれパケット順序制御部3020と、データ取得部3021と、データ構築部3022と、レジスタ管理部3023と、データ処理部3024と、パケット作成部3025とから構成される。
【0078】
データ処理デバイス3-11は、共有バス6を介してデータ転送デバイス2-9からデータパケットを受け取ると、データパケットを宛先のSF部302-1~302-Lに振り分ける。データ処理デバイス3-11がパケット振り分け部301を持つ理由は、上位のデータ転送デバイス2-9のデバイス間通信制御部205に過剰に送信バッファ2052を持たせないためと、共有バス6をデータ処理デバイス単位で効率的に利用するためである。
【0079】
各SF部302-1~302-Lは、データ処理を行う前にデータパケットを入れ替えつつデータの再構築を行う。順序制御を行う理由は、外部のネットワークやユーザ管理装置1-1~1-3においてパケットの順番が入れ替わる可能性があるためである。具体的には、各SF部302-1~302-Lのパケット順序制御部3020は、データ転送デバイス2-9から送られてきた同一のユーザIDの複数のデータパケットを正しい順序で並べる。この順序制御は、パケットに付加されているシーケンス番号に基づいて行われる。
【0080】
各SF部302-1~302-Lのデータ取得部3021は、パケット順序制御部3020によって正しい順序で並べられたデータパケットからそれぞれペイロードを取り出す。また、データ取得部3021は、データパケットのパケットヘッダに含まれるタグに記載されているルート情報を参照し、自分(SF部302-1~302-L)がサービスチェインのルートから除かれるように、タグに記載されているルート情報を更新する。そして、データ取得部3021は、タグ更新後のパケットヘッダを後で再利用するため、パケット作成部3025に渡す。このタグの更新により、処理完了済みのSF部302-1~302-Lが転送先として再び選択されることはない。
【0081】
各SF部302-1~302-Lのデータ構築部3022は、データ取得部3021によって複数のデータパケットから取得されたペイロードを組み合わせて元のデータを再構築する。
【0082】
各SF部302-1~302-Lのデータ処理部3024は、データ構築部3022から受信したデータに対して所定の処理を実行し、処理完了後のデータをパケット作成部3025に送信する。データ処理の例としては、例えば機械学習や画像処理などがある。また、データ処理部3024を共有メモリとして機能させることも可能である。
こうして、各SF部302-1~302-LによってそれぞれSFの処理が実行される。
【0083】
各SF部302-1~302-Lのパケット作成部3025は、データ処理部3024から受信したデータをデータ取得部3021から受け取ったパケットヘッダと組み合わせてパケット化して、通信要請部300に送信する。このとき、パケット作成部3025は、データ処理部3024から受信したデータの分割が必要な場合には、分割したデータのそれぞれをデータ取得部3021から受け取ったパケットヘッダと組み合わせてパケット化する。
【0084】
データ処理デバイス3-11の通信要請部300は、パケット作成部3025からデータパケットを受信すると、上位のデータ転送デバイス2-9に対して共有バス6の使用を要求し、データ転送デバイス2-9から共有バス6の使用権が与えられた後にデータパケットをデータ転送デバイス2-9に送信する。なお、通信要請部300は、共有バス6の使用権が与えられるまでSF部302-1~302-Lのパケット作成部3025からデータパケットを受け取り、共有バス6の使用権が与えられた時点でデータパケットをまとめて送信することで通信を効率化できる。
【0085】
レジスタ管理部3023は、データ処理部3024へのパラメータの登録とパラメータの取得とを行う。具体的には、レジスタ管理部3023は、後述のようにユーザ管理装置1-1~1-3からSFの処理に必要なユーザ固有のパラメータを取得して、取得したパラメータをデータ処理部3024に登録する。パラメータの登録はユーザごと(ユーザIDごと)に行われる。
【0086】
また、レジスタ管理部3023は、ユーザ管理装置1-1~1-3からの回収要求パケットを受信すると、回収要求パケットに含まれるユーザIDに対応するパラメータをデータ処理部3024から削除する。パケット作成部3025は、データ処理部3024に登録されていたパラメータをパケット化して、要求元のユーザ管理装置1-1~1-3宛に返信する。こうして、パラメータは、ユーザ管理装置1-1~1-3においてユーザIDと対応付けて管理される。このようなパラメータの登録と回収の機能により、ユーザごとにパラメータを入れ替えることができ、ユーザに適したパラメータでデータ処理を行うことができる。
【0087】
なお、図7の例では、データ処理デバイス3-11を例に挙げて説明しているが、データ処理デバイス3-1~3-10,3-12,3-13の構成と動作はデータ処理デバイス3-11と同様である。
【0088】
図8はデータ転送デバイス2-9の動作を説明するフローチャートである。データ転送デバイス2-9のパケット受信部200-1~200-Mのいずれかが前段のユーザ管理装置または他のデータ転送デバイスからデータパケットを受信すると(図8ステップS20においてYes)、パケット解析部203は、データパケットを解析して、データパケットに付加されているタグを取得し、受信したデータパケットを転送制御部204に出力する(図8ステップS21)。
【0089】
転送制御部204は、パケット解析部203によって取得されたタグに記載されたルート情報を検索キーとして、自身に登録されているルーティングテーブルの検索を行い、パケット解析部203から出力されたデータパケットの転送先を決定する(図8ステップS22)。
【0090】
転送制御部204は、転送先が隣接するデータ転送デバイスまたは隣接する外部送信装置だった場合(図8ステップS23においてNo)、適切なパケット送信部202-1~202-Jからデータパケットを転送先に転送する(図8ステップS24)。ここで、適切なパケット送信部202-1~202-Jとは、転送制御部204におけるルーティング結果によって得た出力先(パケット送信部202-1~202-J)のことを言う。
【0091】
また、転送制御部204は、転送先が配下のデータ処理デバイス3-11~3-13だった場合(ステップS23においてYes)、パケット解析部203から出力されたデータパケットをデバイス間通信制御部205に送信する。デバイス間通信制御部205は、共有6バスの状況を確認し(図8ステップS25)、共有バス6が利用可能であれば、転送制御部204から送られてきたデータパケットを共有バス6を介して転送先のデータ処理デバイスに転送する(図8ステップS26)。
【0092】
このとき、転送先のデータ処理デバイスの代わりにデータ転送デバイス2-9内でパケット処理が必要な場合(図8ステップS27においてYes)、データ取得部206は、転送制御部204から送られてきたデータパケットからペイロードを取り出し、同一のユーザIDの1乃至複数のデータパケットから取得したペイロードを組み合わせて元のデータを再構築する(図8ステップS28)。データ取得部206は、到着したパケットの順序が入れ替わっている可能性があるため、シーケンス番号に基づいてパケット順序制御を行い、複数のパケットから取り出したデータを正しい順序で並べる。
【0093】
データ取得部206は、データ処理可能な状態になったら、再構築したデータを共有バス6を介して転送先のデータ処理デバイスに転送する(図8ステップS26)。また、データ取得部206は、転送制御部204から送られてきたデータパケットから取り出したパケットヘッダをパケット作成部207に保管させておく。
【0094】
なお、データ転送デバイス2-9の配下のデータ処理デバイス3-11~3-13のうちどのデータ処理デバイスについてパケット処理が必要かは既知であり、パケット処理が必要なデータ処理デバイスの情報が予めデータ取得部206に登録されている。
【0095】
SFのデータ処理が完了すると、転送先のデータ処理デバイスからデータパケットまたはデータが返送される(図8ステップS29においてYes)。
データ転送デバイス2-9のデバイス間通信制御部205の通信管理部2053は、配下のデータ処理デバイス3-11~3-13からの通信要請に対していずれか1つに共有バス6の使用権を与え、使用権を与えたデータ処理デバイスから共有バス6を介してパケットを受信する(図8ステップS30)。
【0096】
データ転送デバイス2-9のパケット解析部203は、デバイス間通信制御部205が配下のデータ処理デバイスからパケットを受信すると、受信したパケットを解析して、パケットに付加されているタグを取得する(図8ステップS31)。
【0097】
データ転送デバイス2-9のパケット作成部207は、配下のデータ処理デバイスから送られてきたデータがパケット形式でなく、パケットから再構築されたデータであって、パケット化が必要な場合(図8ステップS32においてYes)、データ取得部206から受け取って保管していたパケットヘッダのうち、データ処理デバイスから受信したデータに付加されているユーザIDに対応するパケットヘッダと受信したデータとを組み合わせてパケット化する(図3ステップS33)。このとき、パケット作成部207は、受信したデータの分割が必要な場合には、分割したデータのそれぞれをパケットヘッダと組み合わせてパケット化する。
【0098】
パケット作成部207によってパケット処理が行われた場合、パケット解析部203は、パケット作成部207によって作成されたパケットを解析して、パケットに付加されているタグを取得する(ステップS31)。
【0099】
データ転送デバイス2-9のデバイス間通信制御部205の転送制御部2050は、パケット解析部203によって取得されたタグに記載されたルート情報を検索キーとして、自身に登録されているルーティングテーブルの検索を行い、配下のデータ処理デバイスから受信したパケットまたはパケット作成部207によって作成されたパケットの転送先を決定する(図8ステップS34)。
【0100】
デバイス間通信制御部205は、転送先が配下のデータ処理デバイス3-11~3-13だった場合(ステップS35においてYes)、ステップS25に進む。上記で説明したステップS25~S28の処理により、データパケットは共有バス6を介して転送先のデータ処理デバイスに転送される。
【0101】
また、デバイス間通信制御部205は、転送先が配下のデータ処理デバイス3-11~3-13でなかった場合(ステップS35においてNo)、配下のデータ処理デバイスから受信したパケットまたはパケット作成部207によって作成されたパケットを転送制御部204に渡す。ステップS22~S24の処理により、データパケットは転送先の隣接するデータ転送デバイスまたは隣接する外部送信装置に転送される。
【0102】
データ転送デバイス2-9は、以上の処理を、データ処理システムの動作が終了するまで(図8ステップS36においてYes)、繰り返し実行する。
なお、図8の例では、データ転送デバイス2-9を例に挙げて説明しているが、データ転送デバイス2-1~2-8の動作はデータ転送デバイス2-9と同様である。
【0103】
図9はデータ処理デバイス3-11の動作を説明するフローチャートである。データ処理デバイス3-11のパケット振り分け部301は、共有バス6を介してデータ転送デバイス2-9からデータパケットを受信すると(図9ステップS40においてYes)、データパケットのタグに記載されたルート情報を参照し、データパケットを宛先のSF部302-1~302-Lに転送する(図9ステップS41)。
【0104】
転送先のSF部のパケット順序制御部3020は、データ転送デバイス2-9から送られてきた複数のデータパケットを正しい順序で並べる(図9ステップS42)。
データ取得部3021は、パケット順序制御部3020によって正しい順序で並べられたデータパケットからそれぞれペイロードを取り出す(図9ステップS43)。
【0105】
データ構築部3022は、データ取得部3021によって複数のデータパケットから取得されたペイロードを組み合わせて元のデータを再構築する(図9ステップS44)。データ処理可能な状態になるまで、ステップS40~S44の処理が繰り返し実行される。
【0106】
データ処理可能な状態になると(図9ステップS45においてYes)、データ処理部3024は、データ構築部3022から受信したデータに対して所定の処理を実行し、処理完了後のデータをパケット作成部3025に送信する(図9ステップS46)。
【0107】
パケット作成部3025は、データ処理部3024から受信したデータをパケット化して、通信要請部300に送信する(図9ステップS47)。図9に明示していないが、データ取得部3021は、データパケットのパケットヘッダに含まれるタグに記載されているルート情報を参照し、自分(SF部302-1~302-L)がサービスチェインのルートから除かれるように、タグに記載されているルート情報を更新する。そして、データ取得部3021は、タグ更新後のパケットヘッダをパケット作成部3025に渡す。パケット作成部3025は、データ処理部3024から受信したデータをデータ取得部3021から受け取ったパケットヘッダと組み合わせてパケット化する。
【0108】
データ処理デバイス3-11の通信要請部300は、パケット作成部3025からデータパケットを受信すると、上位のデータ転送デバイス2-9に対して共有バス6の使用を要求し、データ転送デバイス2-9から共有バス6の使用権が与えられたときに(図9ステップS48においてYes)、データパケットをデータ転送デバイス2-9に送信する(図9ステップS49)。
【0109】
なお、ステップS40で受信したデータがパケット形式でなく、転送元のデータ転送デバイス2-9によって再構築されたデータである場合、ステップS42~S44の処理は不要である。また、ステップS40で受信したデータがパケット形式でなく、転送元のデータ転送デバイス2-9によって再構築されたデータである場合、データと共にパケットヘッダがデータ転送デバイス2-9から送信される。この場合、パケット作成部3025は、データ処理部3024から受信したデータをデータ転送デバイス2-9から受信したパケットヘッダと組み合わせてパケット化する。
【0110】
一方、レジスタ管理部3023は、ステップS40で受信したデータが「サービス利用」のパケット、または「サービス利用」のパケットから再構築されたデータではなく、「パラメータ登録要求」のパケットである場合(図9ステップS50においてYes)、データ取得部3021によってパケットから取り出されたペイロードに含まれるパラメータをデータ処理部3024に登録して処理を終了する(図9ステップS51,S52)。
【0111】
また、レジスタ管理部3023は、ステップS40で受信したデータが「サービス利用」のパケット、または「サービス利用」のパケットから再構築されたデータではなく、「パラメータ回収要求」のパケットである場合(図9ステップS50においてYes)、「パラメータ回収要求」のパケットに含まれるユーザIDに対応するパラメータをデータ処理部3024から削除する。パケット作成部3025は、データ処理部3024に登録されていたパラメータをパケット化して、データ転送デバイス2-9に送信して処理を終了する(図9ステップS51,S53)。このとき、パケット作成部3025によって作成されたパケットのヘッダには、「パラメータ回収要求」のパケットの送信元のユーザ管理装置1-1~1-3のアドレスが宛先アドレスとして設定されている。
【0112】
なお、図9の例では、データ処理デバイス3-11を例に挙げて説明しているが、データ処理デバイス3-1~3-10,3-12,3-13の動作はデータ処理デバイス3-11と同様である。
【0113】
図10は通信管理装置5の動作を説明するフローチャートである。通信管理装置5は、ユーザ管理装置1-1~1-3と連携し、ユーザ情報やサービスの利用終了の情報を受信し、ユーザ管理装置1-1~1-3に対してルート情報を送信する。また、通信管理装置5は、データ転送デバイス2-1~2-9の転送制御部204,2050に登録されているルーティングテーブルを管理し、各データ処理デバイス3-1~3-13のSFの追加/削除を制御する。
【0114】
通信管理装置5は、サービス利用終了の情報を受信したときに、該当するデータ処理デバイス3-1~3-13からSFを削除する(図10ステップS100)。具体的には、データ処理デバイスが例えばCPUまたはGPUによって構成されている場合には、CPUまたはGPUのメモリからSFのプログラムを削除すればよい。また、データ処理デバイスが例えばFPGAによって構成されている場合には、FPGAの回路構成を更新して、SFのための回路を削除すればよい。SFを削除することにより、データ処理システムの消費電力を削減することができる。
【0115】
通信管理装置5は、ユーザ管理装置1-1~1-3のユーザ管理部109からユーザ情報とユーザIDとを受信すると(図10ステップS101においてYes)、ユーザ情報に含まれるサービス情報を取得する(図10ステップS102)。
【0116】
そして、通信管理装置5は、取得したサービス情報に基づいて、ユーザが要求するサービスの実現に必要なSFを経由するルートの計算を行う(図10ステップS103)。この計算では、稼働中のSFの配置やデータ転送デバイス2-1~2-9間の使用帯域およびデータ転送デバイス2-1~2-9内の使用帯域を考慮して、新たなサービスチェインが他に影響を与えないように配慮する。ルート計算には、例えば、迷路法や遺伝的アルゴリズムなどの古典的な配置配線手法が利用できる。
【0117】
稼働中のサービスが多いと既にあるSFだけでは新しいサービスを実現できない可能性がある。そこで稼動停止中のデータ処理デバイス3-1~3-13にSFを追加することもある。通信管理装置5は、SFの追加が必要な場合、新たなサービスチェインに必要なSFを経由するルート上の、所望のSFの位置にある稼動停止中のデータ処理デバイスに所望のSFを追加する(図10ステップS104)。
【0118】
通信管理装置5は、データ処理デバイスが例えばCPUまたはGPUによって構成されている場合には、所望のSFのプログラムをデータ処理デバイスに転送して、データ処理デバイスのメモリに格納させるようにすればよい。また、通信管理装置5は、データ処理デバイスが例えばFPGAによって構成されている場合には、FPGAの回路構成の更新のためのデータをデータ処理デバイスに転送して、所望のSFのための回路を追加すればよい。
【0119】
ルート計算に成功すると、通信管理装置5は、ユーザ管理装置1-1~1-3のうち、計算したルートの始点となるユーザ管理装置にルート情報とユーザIDとを送信する(図10ステップS105)。このように、ルートの始点となるユーザ管理装置のみにルート情報を送信することにより、各ユーザ管理装置1-1~1-3は、自身に関係するルート情報だけをユーザIDと対応付けて保持できる。
【0120】
また、通信管理装置5は、外部送信装置4-1~4-3のうち、計算したルートの終点となる外部送信装置にユーザ情報とユーザIDとを転送する(図10ステップS106)。このように、ルートの終点となる外部送信装置のみにユーザ情報を転送することにより、各外部送信装置4-1~4-3は、自身に関係するユーザ情報だけをユーザIDと対応付けて保持できる。
【0121】
通信管理装置5は、自身から送った情報を送信先のユーザ管理装置1-1~1-3と外部送信装置4-1~4-3とが受理すると、計算したルート上のデータ転送デバイス2-1~2-9の転送制御部204,2050に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新すべくルート上のデータ転送デバイス2-1~2-9に情報を送る(図10ステップS107)。すなわち、新しいサービスを要求したユーザから送信された「サービス利用」のパケットが、計算したルートを辿るようにルーティングテーブルを更新する。本実施例では、ルーティングテーブルの更新対象を最小限のデータ転送デバイスに絞ることで、ルーティングテーブルの肥大化を抑えることができる。
【0122】
通信管理装置5は、ルート計算に失敗した場合、または自身から送った情報を送信先のユーザ管理装置1-1~1-3または外部送信装置4-1~4-3が受理しなかった場合には、サービスが開始できない旨をユーザ管理装置1-1~1-3を介してユーザに通知する。
【0123】
通信管理装置5は、以上の処理を、データ処理システムの動作が終了するまで(図10ステップS108においてYes)、繰り返し実行する。
【0124】
図11は本実施例のデータ処理システムの動作を説明するシーケンス図である。本実施例のデータ処理システムを利用したいユーザは、自身のユーザ端末8を使用して、サービス利用前にデータ処理システムに対してサービス利用申請を行う(図11ステップS200)。
【0125】
ユーザ管理装置1のユーザ情報抽出部104は、ユーザ端末8からパケット種別が「サービス利用申請」のパケットを受信すると、パケットに記載されたユーザ情報を取得する。ユーザ管理装置1のユーザ管理部109は、ユーザIDを発行すると共に、ユーザ情報とユーザIDとを通信管理装置5に転送する(図11ステップS201)。
【0126】
通信管理装置5は、ユーザ情報を受信すると、ユーザ情報に含まれるサービス情報に基づいてサービスチェインのルートの計算を行い、複数のユーザ管理装置のうち、計算したルートの始点となるユーザ管理装置1にルート情報とユーザIDとを送信する(図11ステップS202)。
【0127】
また、通信管理装置5は、複数の外部送信装置のうち、計算したルートの終点となる外部送信装置4にユーザ情報とユーザIDとを送信する(図11ステップS203)。また、図11では記載していないが、通信管理装置5は、計算したルート上のデータ転送デバイスの転送制御部204,2050に登録されているルーティングテーブルを、ルート計算の結果に基づいて更新する。こうして、通信管理装置5は、ユーザがサービスを利用する環境を整える。
【0128】
ユーザ管理装置1のユーザ管理部109は、「サービス利用申請」のパケットに対して、発行したユーザIDを含むパケットをユーザ端末8に返信することで、ユーザに対してユーザIDを通知する(図11ステップS204)。
【0129】
ユーザIDが発行されたユーザは、サービスの利用開始時に自身のユーザ端末8を使用して、データ処理システムに対してサービスの利用開始通知を行う(図11ステップS205)。
【0130】
ユーザ管理装置1のユーザ管理部109は、ユーザ端末8からパケット種別が「サービス利用開始」のパケットを受信すると、パケットに付加されているユーザIDを基にユーザを識別し、ユーザIDと対応付けて管理しているユーザ情報に含まれるサービス情報に基づいてSFでのデータ処理に必要なユーザ固有のパラメータを生成する。そして、ユーザ管理部109は、ユーザ固有のパラメータを、ユーザIDと対応付けて管理しているルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-n(nは2以上の整数)のSF部に送信する(図11ステップS206)。
【0131】
図11ではデータ転送デバイスについて記載していないが、ユーザ固有のパラメータは、「パラメータ登録要求」のパケットとしてパケット化され、ユーザ管理装置1から最寄りのデータ転送デバイスに送信される。各データ転送デバイスの転送制御部204,2050は、パケット解析部203によるパケット解析の結果に基づいて、パラメータの送信先のデータ処理デバイス3-1~3-nのSF部のうち、自装置と接続されているデータ処理デバイスのSF部にパケット化されたパラメータを転送する。
【0132】
パケット化されたパラメータを受信したデータ処理デバイス3-1~3-nのSF部のレジスタ管理部3023は、受信したパケットに付加されていたユーザIDと対応付けてパラメータをデータ処理部3024に登録する。
【0133】
ユーザは、サービスを利用するために、自身のユーザ端末8を使用してデータパケットをデータ処理システムに向けて送信する(図11ステップS207)。ユーザ端末8から送信されるパケット種別が「サービス利用」のデータパケットにはユーザIDが付加されている。
【0134】
ユーザ管理装置1のタグ付加部107は、ユーザ端末8から受信したパケット種別が「サービス利用」のパケットに付加されているユーザIDに対応するタグをパケットに付加して、タグ付きのパケットをパケット送信部101に出力する。ユーザ管理装置1のパケット送信部101は、タグ付加部107から出力されたパケットを最寄りのデータ転送デバイスに送信する(図11ステップS208)。
【0135】
図11ではデータ転送デバイスについて記載していないが、各データ転送デバイスのパケット解析部203は、受信したパケットを解析して、パケットに付加されているタグを取得する。データ転送デバイスの転送制御部204,2050は、パケット解析部203によって取得されたタグに記載されたルート情報に従って、サービスチェインのルート上のデータ処理デバイス3-1~3-nのSF部のうち、自装置と接続されているデータ処理デバイスのSF部にパケットを転送する(図11ステップS209)。
【0136】
各データ処理デバイス3-1~3-nのSF部は、自装置と接続されているデータ転送デバイスからパケットを受信し、SFの処理完了後のパケットをデータ転送デバイスに送信する。こうして、サービスチェインのルート上のデータ転送デバイスによってデータ処理デバイスのSF部にパケットが転送されることが複数回行われ、全てのデータ処理が完了したパケットは、データ転送デバイスによってサービスチェインのルートの終点となる外部送信装置4に転送される(図11ステップS210)。
【0137】
外部送信装置4は、受信したパケットに付加されているユーザIDに基づいてパケットの宛先のユーザを特定し、パケットからタグを削除する。そして、外部送信装置4は、ユーザIDに対応するユーザ情報に基づいて、パケットにTCP/IPの宛先情報を付加してユーザ端末8宛に送り返す(図11ステップS211)。
【0138】
同じFSを別のユーザが利用する場合、ユーザが切り替わるタイミングで、ユーザ管理装置1のユーザ管理部109は、サービス利用が終了したユーザ固有のパラメータの回収を要求するパケットを、当該ユーザのユーザIDと対応付けて管理しているルート情報に基づいてサービスチェインのルート上のデータ処理デバイス3-1~3-nのSF部に送信する。各データ転送デバイスの転送制御部204,2050は、パケット解析部203によるパケット解析の結果に基づいて、サービスチェインのルート上のデータ処理デバイス3-1~3-nのSF部のうち、自装置と接続されているデータ処理デバイスのSF部にユーザ管理装置1からの「パラメータ回収要求」のパケットを転送する。
【0139】
データ処理デバイスのレジスタ管理部3023は、ユーザ管理装置1からの「パラメータ回収要求」のパケットを受信すると、このパケットに含まれるユーザIDに対応するパラメータをデータ処理部3024から削除する。データ処理デバイスのパケット作成部304は、データ処理部3024に登録されていたパラメータをパケット化して、自装置と接続されているデータ転送デバイスに送信する。パケット化されたパラメータは、データ転送デバイスからユーザ管理装置1に転送される(図11ステップS212)。
【0140】
ユーザ管理装置1のユーザ管理部109は、データ転送デバイスを介してデータ処理デバイス3-1~3-nのSF部から回収したパラメータを、サービス利用が終了したユーザのユーザIDと対応付けて管理する。また、ユーザ管理装置1は、ユーザ端末8に対してサービス利用終了を通知する(図11ステップS213)。サービス利用終了を示すパケットは、ユーザ管理装置1から通信管理装置5にも送信される。
【0141】
システムがサービス利用終了と判断するタイミングは、ユーザがサービス利用を止める旨を通知してきたとき、もしくは一定時間データを送ってこないとき(タイムアウト)である。いずれの場合もユーザ端末8に対してサービス利用終了を通知する。その際に、データ処理デバイス3-1~3-n(SF)にそのユーザに向けたパラメータが残っていた場合、回収(破棄)して次ユーザに向けたパラメータを送信する。
【0142】
ユーザがサービス利用中であっても別ユーザが待機していた場合、一定時間サービスを利用した後、QoS制御の結果、もしくは外部から指示された時、に一時中断してデータ処理デバイス3-1~3-n(SF)を次ユーザに明け渡す。その際、パラメータをデータ処理デバイス3-1~3-n(SF)から回収し、次ユーザのパラメータを送信する。ただし、明け渡すタイミングはデータ処理が一段落したときとする。例えば、画像処理サービスではフレームごとに処理が行われるので、1フレーム分のデータの送信が終わってからパラメータ更新処理に移行する。
【0143】
図12は本実施例のデータ処理システムの別の動作を説明するシーケンス図である。本実施例のデータ処理システムは、ユーザ固有のパラメータがないサービスも提供することができる。ユーザ固有のパラメータを使用しない場合、図11で説明したステップS206,S212の処理が不要となる。その他の処理は図11の場合と同じである。
【0144】
パラメータを使用しないサービスの例としては、ネットワークサービスがある。例えば、ファイヤウォールやDPI(Deep Packet Inspection)、ロードバランシングなどのネットワークサービスは、複数のトラフィックが同時に利用することを想定しており、パラメータの切り替えは不要である。
【0145】
クラウドサービスにおいても、例えば、機械学習で同じ学習データを使用する場合や、画像処理で同じパラメータを使用可能な場合などは、パラメータの切り替えは不要であり、パラメータを使用しないサービスとして扱うことができる。
【0146】
本実施例のデータ処理システムは、ユーザ端末8との通信に一般的なIPネットワークを利用することができる。その場合、データ処理システムは、ユーザ端末8から受信したパケットに記載されたIPアドレスおよびポート番号からユーザを一意に識別し、ユーザIDを発行する。
【0147】
サービス利用申請時にユーザ端末8から送信されるパケットのフォーマットを図13(A)に示し、サービス利用時にユーザ端末8とデータ処理システム間で送受信されるパケットのフォーマットを図13(B)に示し、サービス利用時にデータ処理システム内で送受信されるパケットのフォーマットを図13(C)に示す。
【0148】
「サービス利用申請」のパケットには、Ethernet(登録商標)ヘッダ400と、IPヘッダ401と、TCPヘッダもしくはUDPヘッダ402と、ペイロード403と、FCS(Frame Check Sequence)404とが含まれる。
サービス利用申請時、ユーザ端末8は、パケットのペイロード403に「サービス利用申請」を示すパケット種別の情報(図13(A)の405の箇所)を格納してデータ処理システム宛に送信する。
【0149】
上記のとおり、ユーザ管理装置1のユーザ管理部109は、「サービス利用申請」のパケットから抽出された送信元IPアドレスと送信元ポート番号からユーザを一意に識別し、ユーザIDを発行する。ユーザ管理部109は、発行したユーザIDを図13(A)の405の箇所に格納したパケットをユーザ端末8に返信する。
【0150】
ユーザ端末8は、サービス利用時に、図13(B)のパケットにおけるペイロード403の405で示す箇所にユーザIDとシーケンス番号と「サービス利用」を示すパケット種別の情報とを格納し、ペイロード403の406で示す箇所にデータ先頭フラグとデータとデータ末尾フラグとを格納する。ユーザ端末8は、このようにして生成した「サービス利用」のパケットをデータ処理システム宛に送信する。データ先頭フラグとデータ末尾フラグとシーケンス番号は、データ処理デバイスまたはデータ転送デバイスによるデータの再構築に必要な情報である。
【0151】
サービス利用時、パラメータ登録時、またはパラメータ回収時にデータ処理システム内では、図13(C)に示すフォーマットのパケットが送受信される。このパケットには、Ethernetヘッダ400と、タグ407と、ペイロード403と、FCS404とが含まれる。ペイロード403の408で示す箇所には、ユーザIDとシーケンス番号とパケット種別の情報とが格納され、ペイロード403の409で示す箇所には、データ先頭フラグとデータとデータ末尾フラグとが格納される。データ処理システム内では、タグ407を用いたパケット通信が行われる。各タグ407に行き先のSF部までのルート情報を記載することで、ルート情報に従ってパケットが転送され、ユーザが要求するサービスに対応したSF部でデータ処理が行われる。
【0152】
本実施例で説明したユーザ管理装置1,1-1~1-3とデータ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13と外部送信装置4,4-1~4-3と通信管理装置5とユーザ端末8の各々は、CPU(またはGPU)、記憶装置及びインタフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図14に示す。コンピュータは、CPU500(またはGPU)と、記憶装置501と、インタフェース装置502とを備えている。このようなコンピュータにおいて、本発明のデータ処理方法を実現させるためのプログラムは、記憶装置501に格納される。各装置のCPU500(またはGPU)は、記憶装置501に格納されたプログラムに従って本実施例で説明した処理を実行する。
【0153】
ユーザ管理装置1,1-1~1-3とデータ転送デバイス2-1~2-9とデータ処理デバイス3-1~3-13と外部送信装置4,4-1~4-3と通信管理装置5の少なくとも一部をFPGAもしくはASICによって構成してもよい。特に、パケット処理およびデータ処理の一部をこれらのハードウェアで実行することで処理性能の向上が期待できる。
【産業上の利用可能性】
【0154】
本発明は、サービスファンクションチェイニング技術に適用することができる。
【符号の説明】
【0155】
1-1~1-3…ユーザ管理装置、2-1~2-9…データ転送デバイス、3-1~3-13…データ処理デバイス、4-1~4-3…外部送信装置、5…通信管理装置、6…共有バス、8…ユーザ端末、100…パケット受信部、101…パケット送信部、102…パケット解析部、103…パケット種別判定部、104…ユーザ情報抽出部、105…データ管理部、106…記憶部、107…タグ付加部、108…データ通信制御部、109…ユーザ管理部、110…QoS制御部、111…タグ生成部、200-1~200-M…パケット受信部、201…入力調停部、202-1~202-J…パケット送信部、203…パケット解析部、204…転送制御部、205…デバイス間通信制御部、206…データ取得部、207…パケット作成部、208…ルート情報登録部、300…通信要請部、301…パケット振り分け部、302-1~302-L…サービス機能部、1050…パケット振り分け部、1051-1~1051-N…ユーザ判定部、1052-1~1052-N…ユーザ選択部、1053-1~1053-N…出力選択部、1054…出力制御部、1055-1~1055-N…メモリコントローラ、2050…転送制御部、2051…バッファ入力部、2052…送信バッファ、2053…通信管理部、2054-1~2054-K…記憶部、3020…パケット順序制御部、3021…データ取得部、3022…データ構築部、3023…レジスタ管理部、3024…データ処理部、3025…パケット作成部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16