JPWO2018147313A1 - 通信装置及び通信方法 - Google Patents

通信装置及び通信方法 Download PDF

Info

Publication number
JPWO2018147313A1
JPWO2018147313A1 JP2018567457A JP2018567457A JPWO2018147313A1 JP WO2018147313 A1 JPWO2018147313 A1 JP WO2018147313A1 JP 2018567457 A JP2018567457 A JP 2018567457A JP 2018567457 A JP2018567457 A JP 2018567457A JP WO2018147313 A1 JPWO2018147313 A1 JP WO2018147313A1
Authority
JP
Japan
Prior art keywords
procedure
function
instance
execution
unit
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.)
Granted
Application number
JP2018567457A
Other languages
English (en)
Other versions
JP6706354B2 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2018147313A1 publication Critical patent/JPWO2018147313A1/ja
Application granted granted Critical
Publication of JP6706354B2 publication Critical patent/JP6706354B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

通信装置は、パケット受信部と、パケット送信部と、処理順序を制御する処理順序制御部と、を備え、処理順序制御部は、パケット保持部と、手続き群及び変数群を含む機能ファイルごとの機能インスタンスと、機能インスタンスを識別する機能インスタンス識別子と、機能インスタンスに属する手続きを識別する手続き識別子と、手続きのメモリアドレスと、を含むインスタンス情報を保持するインスタンス情報管理部と、機能インスタンス識別子、手続き識別子、及び手続きの返り値と、次に実行される機能インスタンスに属する手続きと、を対応付ける実行順序情報を保持する実行順序情報管理部と、実行順序情報とインスタンス情報とに基づいて、手続きを呼び出し、通信パケットに対して処理を実行し、返り値に応じて次の処理を実行する機能実行部と、を備える。

Description

本発明は、通信装置及び通信方法に関する。
本願は、2017年2月8日に日本へ出願された特願2017−021382号に基づき優先権を主張し、その内容をここに援用する。
近年、サービス導入の迅速化を実現するNFV(Network Function Virtualization;ネットワーク機能仮想化)が注目されている。NFVのコンセプトは、従来、専用のハードウェアによって実装されてきた通信装置の機能(以下、「NW機能」(ネットワーク機能)という)をソフトウェアによって実装し、汎用的なハードウェア上のオペレーティングシステムにおいて当該NW機能を動作させるというコンセプトである(例えば、非特許文献1参照)。NFVにより、ソフトウェアの変更のみで、NW機能の追加や変更を行うことが可能になるため、サービスの開発から導入及び展開までの時間が短縮される。
また近年、NFVのコンセプトに基づいてソフトウェア実装された複数のNW機能を、ユーザが加入しているサービスに応じて組み合わせる技術として、サービスファンクションチェイニング(以下、「SFC」という)が検討されている(例えば、非特許文献2参照)。SFCにおいて、ユーザの通信パケット(以下、「パケット」ともいう)は、加入サービスに応じた転送順序に従って各NW機能を経由する(図24参照)。ユーザのパケットは、経由した各NW機能において、ヘッダ書き換え、破棄、情報付与等の処理がなされる。例えば、図24においては、パケットは、まずNW機能1に転送されてタグが付与され、次にNW機能2に転送されて当該タグが書き換えられる。SFCでは、パケットが経由するNW機能の転送経路を変更することによって、サービスを構成するNW機能の組み合わせを変更することができる。
ETSI, "Network Functions Virtualisation - Introductory White Paper", 2012. 北田裕之他, "将来ネットワークに向けたサービスファンクションチェイニング技術", NTT技術ジャーナル, 26(5), pp. 10-13, 2014.5.
しかしながら、SFCでは、NW機能間のパケット転送による通信の遅延が発生することがある。上記の遅延の発生に関して、図25を参照しながら説明する。各NW機能は、仮想マシンやコンテナ等の仮想環境内で動作する。異なるNW機能は、異なるソフトウェアプロセス内で動作するため、あるNW機能(NW機能1)から他のNW機能(NW機能2)へパケットを転送する場合には、まずNW機能1がソフトウェアプロセス間で共有する共有メモリにパケットを書き込み、次にNW機能2が当該共有メモリからのパケットの読み出しを行う。この際,パケットのメモリコピーにより、通信の遅延が発生することがある。
これに対し、パケットの実体をNW機能間で受け渡すのではなく、パケットの存在するメモリアドレスへの参照情報をNW機能間で受け渡すことによって、書き込み処理、及び読み込み処理にかかる時間を短縮させる方法も考えられる。しかしながら、この方法でも、パケットの書き込み時、及び読み出し時に、NW機能間での排他制御が必要である。
特に、小規模なNW機能を多数組み合わせるような処理である場合には、NW機能の実行における通信の遅延よりも、NW機能間のパケット転送による通信の遅延のほうがより割合が高くなることが予想される。さらに、汎用ハードウェアの計算資源が少ない場合には、一つのCPU(Central Processing Unit;中央演算処理装置)上で複数のソフトウェアプロセスが動作することによって、頻繁にコンテキストスイッチが発生し、これにより通信の遅延の更なる増大が懸念される。
本発明は、斯かる事情を鑑みてなされたものであり、特に、単一の汎用ハードウェアにおいて動作する複数のNW機能を組み合わせる場合において、通信の遅延を低減させる通信装置を提供することを目的とする。
本発明の第1の態様は、外部の装置から通信パケットを受信するパケット受信部と、前記通信パケットに対して所定の処理が実行された後の通信パケットを他の外部の装置へ送信するパケット送信部と、前記通信パケットの処理順序を制御する処理順序制御部と、を備え、前記処理順序制御部は、前記通信パケットを保持するパケット保持部と、通信機能における処理に必要な手続き群及び変数群を含む機能ファイルごとにそれぞれ実行形式に変換されメモリに展開されることにより生成される機能インスタンスと、前記機能インスタンスを識別する機能インスタンス識別子と、前記機能インスタンスに属する手続きを識別する手続き識別子と、前記機能インスタンスに属する前記手続きの前記メモリにおける位置を示すメモリアドレスと、を含むインスタンス情報を保持するインスタンス情報管理部と、前記機能インスタンス識別子、前記手続き識別子、及び前記手続きの返り値と、次に実行される機能インスタンスに属する手続きと、が対応付けられた実行順序情報を保持する実行順序情報管理部と、前記実行順序情報と前記インスタンス情報とに基づいて、前記機能インスタンスに属する前記手続きを呼び出し、前記パケット保持部に保持された前記通信パケットに対して前記機能インスタンスに属する前記手続きに基づく処理を実行し、前記機能インスタンスに属する前記手続きに基づく前記処理の前記返り値に応じて、前記次に実行される前記機能インスタンスに属する前記手続きに基づく処理を実行する機能実行部と、を備える通信装置である。
上記の通信装置において、前記処理順序制御部は、前記通信機能の追加、前記通信機能の変更、または前記通信機能の削除の要求を外部連携装置から取得する外部連携部と、前記外部連携装置からの実行順序変更要求に応じて、前記実行順序情報管理部に対して実行順序変更を要求する実行順序変更部と、前記通信機能の追加、前記通信機能の変更、または前記通信機能の削除の前記要求に応じて、前記機能インスタンスを前記メモリに展開し、または前記機能インスタンスを前記メモリから削除するインスタンス登録・削除部と、を備え、前記機能インスタンスは、前記機能インスタンスの初期化を行う開始手続きと、終了処理を行う終了手続きと、を有するようにしてもよい。
上記の通信装置において、前記機能インスタンスは、他の機能インスタンスに属する手続きからの情報取得要求、及び機能実行の要求に応じて処理を行う通知受付手続きを備えるようにしてもよい。
上記の通信装置において、前記処理順序制御部は、前記機能インスタンスに属する前記手続きからの要求に応じて、他の機能インスタンスの情報取得、及び機能実行を仲介する通知手続きと、前記通知手続きからの要求に応じて前記他の機能インスタンスの通知受付手続きに関する情報を出力する連携情報保持部を備えるようにしてもよい。
上記の通信装置において、前記実行順序情報管理部は、前記機能実行部が実行する前記手続きの位置を示すメモリアドレスをノードとした、実行順序に基づく木構造の情報を保持し、前記機能実行部は、前記手続きを呼び出す際に、前記実行順序情報管理部から取得した前記木構造の情報に基づき、前記返り値に応じて前記木構造の前記ノードを遷移することにより前記手続きを実行するようにしてもよい。
本発明の第2の態様は、コンピュータによる通信方法であって、パケット受信部が、外部の装置から通信パケットを受信するパケット受信ステップと、パケット送信部が、前記通信パケットに対して所定の処理が実行された後の通信パケットを他の外部の装置へ送信するパケット送信ステップと、処理順序制御部が、前記通信パケットの処理順序を制御する処理順序制御ステップと、を有し、前記処理順序制御ステップは、パケット保持部が、前記通信パケットを保持するパケット保持ステップと、機能実行部が、通信機能における処理に必要な手続き群及び変数群を含む機能ファイルごとにそれぞれ実行形式に変換しメモリに展開することにより機能インスタンスを生成する機能インスタンス生成ステップと、インスタンス情報管理部が、前記機能インスタンスを識別する機能インスタンス識別子と、前記機能インスタンスに属する手続きを識別する手続き識別子と、前記機能インスタンスに属する前記手続きの前記メモリにおける位置を示すメモリアドレスと、を含むインスタンス情報を保持するインスタンス情報管理ステップと、実行順序情報管理部が、前記機能インスタンス識別子、前記手続き識別子、及び前記手続きの返り値と、次に実行される機能インスタンスに属する手続きと、が対応付けられた実行順序情報を保持する実行順序情報管理ステップと、前記機能実行部が、前記実行順序情報と前記インスタンス情報とに基づいて、前記機能インスタンスに属する前記手続きを呼び出し、前記パケット保持部に保持された前記通信パケットに対して前記機能インスタンスに属する前記手続きに基づく処理を実行し、前記機能インスタンスに属する前記手続きに基づく前記処理の前記返り値に応じて、前記次に実行される前記機能インスタンスに属する前記手続きに基づく処理を実行する機能実行ステップと、を有する通信方法である。
本発明の第3の態様は、通信における処理の機能インスタンスに属する手続きと、前回処理した機能インスタンスに属する手続きと、前記前回処理した機能インスタンスに属する前記手続きの返り値とに応じて、実行すべき機能インスタンスに属する手続きを呼び出す処理順序制御部とを備える通信装置である。
上記本発明の第3の態様による通信装置において、前記返り値がない場合、前記処理順序制御部は、前記実行すべき機能インスタンスに属する前記手続きとして、前記前回処理した機能インスタンスに属する前記手続きに応じた手続き、所定の手続き、または、所定の処理を行う手続きを呼び出すようにしてもよい。
本発明の第4の態様は、コンピュータによる通信方法であって、前回処理した、通信における処理の機能インスタンスに属する手続きと、前記前回処理した機能インスタンスに属する前記手続きの返り値とに応じて、実行すべき機能インスタンスに属する手続きを呼び出す処理順序制御ステップを有する通信方法である。
本発明によれば、装置内で発生する遅延を抑制することができる。
本発明の各実施形態に係る通信装置の機能構成の概略を示す機能ブロック図である。 本発明の第1の実施形態に係る通信装置により複数の機能を組み合わせて実行する際の機能部間の連携処理の一例を示す図である。 本発明の第1の実施形態に係る通信装置の機能実行部の動作を示すフローチャートである。 本発明の第1の実施形態に係る通信装置の実行順序情報管理部が保持する実行順序ルールテーブルの一例を示す図である。 本発明の第1の実施形態に係る通信装置のインスタンス情報管理部が保持する機能インスタンス情報テーブルの一例を示す図である。 本発明の第1の実施形態の変形例1に係る通信装置の機能実行部の動作を示すフローチャートである。 本発明の第1の実施形態の変形例1に係る通信装置の実行順序情報管理部が保持する実行順序ルールテーブルの一例を示す図である。 本発明の第1の実施形態の変形例2に係る通信装置の機能実行部の動作を示すフローチャートである。 本発明の第1の実施形態の変形例2に係る通信装置の実行順序情報管理部が保持する実行順序ルールテーブルの一例を示す図である。 本発明の第2の実施形態に係る通信装置の機能追加時の動作の一例を示す図である。 本発明の第2の実施形態に係る通信装置の機能削除時の動作の一例を示す図である。 本発明の第2の実施形態に係る通信装置の新機能インスタンスが生成するインスタンス情報の一例を示す図である。 本発明の第2の実施形態に係る通信装置による実行順序変更方法の一例を示す図である。 本発明の第3の実施形態に係る通信装置の機能間連携の動作の一例を示す図である。 本発明の第3の実施形態に係る通信装置の連携情報保持部が保持する連携種別テーブルの一例を示す図である。 本発明の第3の実施形態の変形例に係る通信装置の機能間連携の動作の一例を示す図である。 本発明の第3の実施形態の変形例に係る通信装置の公開変数情報保持部が保持する公開変数テーブルの一例を示す図である。 本発明の第4の実施形態に係る通信装置の実行順序情報管理部が保持する実行順序ルールテーブルの一例を示す図である。 本発明の第4の実施形態の変形例に係る通信装置の実行順序情報管理部が保持する実行順序ルールテーブルの一例を示す図である。 本発明の第5の実施形態に係る通信装置がパイプライン化された場合の機能構成の概略を示す機能ブロック図である。 本発明の第5の実施形態に係る通信装置がパイプライン化された場合の実行順序情報管理部が保持する機能実行部用の実行順序ルールテーブルの一例を示す図である。 本発明の第5の実施形態に係る通信装置がパイプライン化された場合の実行順序情報管理部が保持する第二機能実行部用の実行順序ルールテーブルの一例を示す図である。 図1に示す通信装置の変形例の機能構成を示す機能ブロック図である。 図1に示す通信装置の変形例の機能構成を示す機能ブロック図である。 図1に示す通信装置の変形例の機能構成を示す機能ブロック図である。 図1に示す通信装置の変形例における処理順序制御部の動作を示すフローチャートである。 従来のサービスファンクションチェイニング(SFC)の概要を示す概略図である。 従来のサービスファンクションチェイニング(SFC)において発生する遅延について説明する図である。
以下、本発明の各実施形態について説明する。
本発明の各実施形態に係る通信装置は、NW機能間でパケット転送を行うのではなく、パケットのデータ自体は移動させずに、定められた順序に従って各NW機能を実行することによって、複数のNW機能の組み合わせを実現する。これにより、本発明の各実施形態に係る通信装置においては、NW機能間でのパケット転送が発生しないため、通信装置内で発生する通信の遅延を抑制することができる。また、本発明の各実施形態に係る通信装置は、小規模な機能を多数組み合わせる場合における通信の遅延の抑制に対してより有効である。
また、以下に説明する、本発明の各実施形態に係る通信装置によれば、各NW機能が定められた順序に従って逐次的に実行されるため、複数のNW機能が、パケットの読み込み処理や書き込み処理等を同時に行うことはないため、排他制御が必要な処理の数を少なくすることができる。さらに、本発明の各実施形態によれば、各NW機能を実行する動作主体が単一のソフトウェアプロセスとなるように通信装置を実装することが可能であるため、各NW機能を複数のソフトウェアプロセスによってそれぞれ実装した場合と比べて、コンテキストスイッチによる通信の遅延の発生を抑制することができる。
本発明の各実施形態に係る通信装置は、複数のNW機能を組み合わせることによって、単一の汎用ハードウェアを仮想的な通信装置として動作させることができる。なお、ここでいう仮想的な通信装置とは、コアネットワーク装置でも、アクセスネットワーク装置でもよい。本発明の各実施形態に係る通信装置は、例えば、MPCP(Multi-Point Control Protocol)機能やDBA(Dynamic Bandwidth Allocation)機能を機能インスタンスとして実装することにより、汎用ハードウェアを、アクセスネットワークの仮想OLT(Optical Line Terminal;光終端装置)として動作させることもできる。
[通信装置の機能構成]
以下、本発明の各実施形態に係る通信装置の機能構成について図面を参照しながら説明する。
図1は、本発明の各実施形態に係る通信装置の機能構成の概略を示す機能ブロック図である。図示するように、通信装置1は、機能ファイル保持部11と、機能インスタンス12と、処理順序制御部13と、パケット受信部14と、パケット送信部15と、を含んで構成される。
機能ファイル保持部11は、NW機能の処理が記述された機能ファイルを保持する。機能ファイルは、NW機能の処理において必要な手続き群及び変数群を記したソースコード、もしくはコンパイル後の実行ファイル等である。
機能インスタンス12は、機能ファイルを実行形式にした後、組み合わせるNW機能ごとにメモリ(図示せず)に展開した手続き群及び変数群である。
パケット受信部14は、外部の装置が取得したパケット(通信パケット)を当該外部の装置から受信する。処理順序制御部13は、当該パケットをパケット受信部14から取得し、定められた順序に従って機能インスタンス12の手続きを呼び出し、取得したパケットに対してNW機能に関する処理を実行する。取得したパケットは、指定された処理が終わった後、破棄されるか、もしくはパケット送信部15を介して外部の装置(または、他の外部の装置)へ送出される。
処理順序制御部13は、実行順序情報管理部131と、インスタンス情報管理部132と、機能実行部133と、パケット保持部134と、を含んで構成される。
実行順序情報管理部131は、NW機能に関する処理の実行順序を示す実行順序ルールテーブルを実行順序情報として保持する。また、実行順序情報管理部131は、実行順序の変更の要求があった場合には実行順序のルールの変更を行ったり、特定のNW機能の削除の要求があった場合には機能の削除を行ったりする。
インスタンス情報管理部132は、メモリに展開された機能インスタンスの識別子(以下、「インスタンスID」という)、及び各機能インスタンス12に属する手続きを識別する識別子(以下、「手続きID」という)、及び上述した手続きが展開されたメモリのアドレスを、インスタンス情報として保持する。また、新たな機能インスタンス12の追加要求、機能削除の要求、または機能置き換えの要求があった場合には、インスタンス情報管理部132は、保持している情報の追加または削除を行う。なお、インスタンス情報は、手続きが展開されたメモリのアドレスだけでなく、機能インスタンスが展開されたメモリのアドレスに関する情報を含んでいてもよい。
機能実行部133は、上述したインスタンス情報に基づいて、機能インスタンス12に属する手続きを呼び出し、パケット保持部134に保持されたパケットに対して処理を行う。さらに、機能実行部133は、上述した実行順序ルールテーブルが示す実行順序に従い、手続きの返り値に応じて次の手続きを呼び出す。なお、手続きの返り値はなくてもよい。また、返り値が「0」の場合はパケットの破棄を表し、返り値が「0」よりも小さい場合は異常終了を表すと規定する。
<第1の実施形態>
以下、本発明の第1の実施形態に係る通信装置1aについて図面を参照しながら説明する。本実施形態に係る通信装置1aは、複数のNW機能を組み合わせて転送を行う。
以下、通信装置1aによって、パケットのVLAN−ID(Virtual Local Area Network-Identifier)の変換を行うVLAN−ID変換機能、及び、特定のIP(Internet Protocol)アドレスのパケットを破棄するフィルタ機能、の2つの機能の組み合わせを実現する例を、図2乃至図5を参照しながら説明する。
図2は、本発明の第1の実施形態に係る通信装置1aにより複数の機能を組み合わせて実行する際の機能部間の連携処理の一例を示す図である。図3は、本発明の第1の実施形態に係る通信装置1aの機能実行部133の動作を示すフローチャートである。図4は、本発明の第1の実施形態に係る通信装置1aの実行順序情報管理部131が保持する実行順序ルールテーブルの一例を示す図である。図5は、本発明の第1の実施形態に係る通信装置1aのインスタンス情報管理部132が保持する機能インスタンス情報テーブルの一例を示す図である。
図2に図示するように、まず、機能実行部133は、実行順序情報管理部131から、実行順序ルールテーブルを取得する。実行順序ルールテーブルは、図4に示すように、現在実行している機能インスタンス12を識別する「実行インスタンスID」と、現在実行している機能インスタンス12の手続きを識別する「実行手続きID」と、実行処理の「返り値」と、当該返り値に応じた次に実行すべき機能インスタンス12を識別する「次実行インスタンスID」と、当該返り値に応じた次に実行すべき機能インスタンス12の手続きを識別する「次実行手続きID」と、が対応付けられたテーブルである。
なお、図4には図示していないが、次に実行すべき機能インスタンス12及び手続きが、返り値に関わらず同一であるような場合には、実行順序ルールテーブルにおける「返り値」の項目の値として「*」を設定してもよい。また、図4には図示していないが、返り値がない場合に備えて、実行順序ルールテーブルにおける「返り値」の項目の値として「NULL(空文字)」を設定してもよい。
また、実行している機能インスタンス12の種別に関わらず、返り値が「0」である場合には、機能実行部133は、パケット保持部134に保持されたパケットを破棄する。
また、最初に実行すべき機能インスタンス12及び手続きは、実行順序ルールテーブルの1行目に、「実行インスタンスID」の項目の値として「0」(図4においては、「START(0)」と図示)、「実行手続きID」の項目の値として「0」(図4においては、「START(0)」と図示)、及び「返り値」の項目の値として「0」(図4においては、「START(0)」と図示)、がそれぞれ設定される。なお、実行順序ルールテーブルの1行目における「返り値」の項目の値は、「0」ではなく「*」であってもよい。
続いて、機能実行部133は、当該機能実行部133が現在実行している機能インスタンス12を識別する実行インスタンスIDを表す変数である変数CUR_INST_ID、機能実行部133が現在実行している機能インスタンス12の手続きを識別する手続きIDを表す変数である変数CUR_METD_ID、及び、当該手続きの返り値を表す変数である変数CUR_RETに、それぞれ「0」を代入することにより初期化する(図3、ステップS001)。
続いて、機能実行部133は、実行順序ルールテーブルを読み込み(図3、ステップS002)、当該実行順序ルールテーブルの1行目から、各行に記述されている「実行インスタンスID」、「実行手続きID」、及び「返り値」の項目の値が、それぞれ、変数CUR_INST_ID、変数CUR_METD_ID、及び変数CUR_RETと一致する行を検索する(図3、ステップS003)。
図4に示す実行順序ルールテーブルにおいて、1行目の「実行インスタンスID」、「実行手続きID」、及び「返り値」の項目の値は、それぞれ「0」(START(0))であり、上記においてそれぞれ「0」を代入した変数CUR_INST_ID、変数CUR_METD_ID、及び変数CUR_RETに一致する。これにより、機能実行部133は、一致した行(すなわち、図4に示す実行順序ルールテーブルの1行目)の「次実行インスタンスID」の項目の値である「1」と、「次実行手続きID」の項目の値である「1」を、それぞれ、変数NXT_INST_IDと、変数NXT_METD_IDに代入する(図3、ステップS004)。これにより、変数NXT_INST_ID=1、変数NXT_METD_ID=1となる。
続いて、機能実行部133は、インスタンス情報管理部132から、次に実行する機能インスタンス12及び手続きを示す機能インスタンス情報テーブルを取得する。機能インスタンス情報テーブルは、図5に示すように、機能インスタンス12の名称を示す「機能インスタンス名」と、当該機能インスタンス12に属する手続きの名称を示す「手続き名」と、当該機能インスタンス12を識別する「インスタンスID」と、当該機能インスタンス12に属する手続きを識別する「手続ID」と、メモリ上において当該手続きが展開されている位置(アドレス)を示す「メモリアドレス」と、が対応付けられたテーブルである。なお、機能インスタンス情報テーブルにおいて、手続きのメモリアドレスの項目は、空欄でもよい。また、図5には図示していないが、機能インスタンス情報テーブルは、手続きのメモリアドレスのみではなく、機能インスタンスのメモリアドレスを含んでいてもよい。
機能実行部133は、機能インスタンス情報テーブルを読込み(図3、ステップS005)、当該機能インスタンス情報テーブルの1行目から、各行に記述されている「インスタンスID」、及び「手続きID」が、それぞれ、変数NXT_INST_ID、及び変数NXT_METD_IDと一致する行を検索する(図3、ステップS006)。
図5に示す機能インスタンス情報テーブルにおいて、2行目に記述された機能インスタンス12(受信機能インスタンス)の「インスタンスID」、及び「手続きID」の項目の値は、それぞれ「1」であり、上記においてそれぞれ「1」を代入した変数NXT_INST_ID、及び変数NXT_METD_IDに一致する。
機能実行部133は、一致した行(すなわち、2行目に記述された機能インスタンス12(受信機能インスタンス))の「メモリアドレス」の項目の値である「0x000000」を取得する。そして、機能実行部133は、取得したメモリアドレスに基づいてメモリを参照して手続きを呼び出し、処理を実行する(図3、ステップS007)。
また、機能実行部133は、手続き呼び出しの際、パケット保持部134に保持されたパケットにおけるメモリアドレスを受信機能インスタンス12aへ出力する。
また、受信機能インスタンス12aの受信手続きは、パケット受信部14からパケットを取り出し、パケット保持部134にパケットを移す。正常なパケット転送が行われた場合、受信機能インスタンス12aの受信手続きは処理を終了し、返り値として正常終了を表す値(「0」より大きな整数)を機能実行部133へ出力する。なお、パケット受信部14にパケットが存在しない場合、受信機能インスタンス12aの受信手続きは、返り値として「−1」を機能実行部133へ出力する。また、正常終了を表す値(「0」より大きな整数」)は、実行順序ルールテーブルに記載されている返り値であることが望ましい。これは、受信機能インスタンス12aに限らず、他の機能インスタンスについても同様である。
機能実行部133は、実行した機能インスタンス12の手続きから返り値を受け取ると、当該返り値を変数CUR_RETに代入する(図3、ステップS008)。
返り値が「0」であった場合(図3、ステップS009・NO)は、機能実行部133は、パケット保持部134が保持しているパケットを破棄し(図3、ステップS010)、制御が、変数初期化の段階(図3、ステップS001)に戻る。返り値が「0」以外であった場合(図3、ステップS009・YES)は、機能実行部133は、再び実行順序ルールテーブルを読み込み(図3、ステップS002)、次に実行する機能インスタンス及び手続きを示す情報を検索する(図3、ステップS003)。
例えば、図4の実行順序ルールテーブルの2行目に示すように、「実行インスタンスID」の項目の値が「1」、及び「実行手続きID」の項目の値が「1」であり(すなわち、図5に示すように受信機能インスタンス12aの受信手続きであり)、返り値が「1」であるとき、機能実行部133は、「次実行インスタンスID」の項目の値「2」と「次実行手続きID」の項目の値「1」とを取得する。これらの値に基づいて、機能実行部133は、図5に示す機能インスタンス情報テーブルにおいて、「インスタンスID」の項目の値が「2」であり「手続きID」の項目の値が「1」であるVLAN−ID変換機能インスタンス12bのVLAN−ID変換手続きを実行する。
機能実行部133は、機能インスタンス情報テーブルに基づいて、上記のVLAN−ID変換手続きのメモリアドレスである「0x000100」を取得し、当該メモリアドレスに基づいてメモリを参照してVLAN−ID変換手続きを実行する。
なお、VLAN−ID変換機能インスタンス12bは、例えば、変換前のVLAN−IDと変換後のVLAN−IDを対応付けたリストを保持しており、パケット保持部134が保持しているパケットのVLAN−IDに応じて、当該VLAN−IDの書き換えを行う。VLAN−IDの書き換えが終了すると、VLAN−ID変換手続きが終了し、VLAN−ID変換機能インスタンス12bは返り値を出力する。そして、機能実行部133は、実行されたVLAN−ID変換機能インスタンス12bから返り値を取得し、当該返り値を変数CUR_RETに代入する。なお、この際に、VLAN−IDの値に応じて返り値を変化させることによって、その後の処理を変化させることも可能である。
例えば、図4の実行順序ルールテーブルの3行目に示すように、「実行インスタンスID」の項目の値が「2」、及び「実行手続きID」の項目の値が「1」であり(すなわち、図5に示すようにVLAN−ID変換機能インスタンス12bのVLAN−ID変換手続きであり)、返り値が「1」であるとき、機能実行部133は、「次実行インスタンスID」の項目の値「4」と「次実行手続きID」の項目の値「1」とを取得する。これらの値に基づいて、機能実行部133は、図5に示す機能インスタンス情報テーブルにおいて、「インスタンスID」の項目の値が「4」であり「手続きID」の項目の値が「1」である送信機能インスタンス12dの送信手続きを実行する。
送信機能インスタンス12dの送信手続きでは、パケット保持部134が保持している、所定の処理が実行された後のパケットをパケット送信部15に転送する。これにより、外部の装置へ当該パケットが送出される。
なお、図4の実行順序ルールテーブルの6行目に示すように、「実行インスタンスID」の項目の値が「4」、及び「実行手続きID」の項目の値が「1」である、送信機能インスタンス12dの送信手続きに対しては、「次実行インスタンスID」の項目の値、及び「次実行手続きID」の項目の値として、それぞれ「0」(図4においては「START(0)」と図示)が設定されている。
また、図5の機能インスタンス情報テーブルの1行目に示すように、「インスタンスID」、及び「手続きID」の項目の値がそれぞれ「0」であり、かつ手続きの「メモリアドレス」の項目が空欄(「−」)である実際には実行されないダミーの機能インスタンス及びダミーの手続きが予め設定されている。これにより、次回の実行順序ルールテーブルの検索時には、図4に示す実行順序ルールテーブルの1行目が検索されることになり、再びパケットの受信処理が開始されることになる。
一方、例えば、図4の実行順序ルールテーブルの4行目に示すように、「実行インスタンスID」の項目の値が「2」、及び「実行手続きID」の項目の値が「1」であり(すなわち、図5に示すようにVLAN−ID変換機能インスタンス12bのVLAN−ID変換手続きであり)、返り値が「2」であるとき、機能実行部133は、「次実行インスタンスID」の項目の値「3」と「次実行手続きID」の項目の値「1」とを取得する。これらの値に基づいて、機能実行部133は、図5に示す機能インスタンス情報テーブルにおいて、「インスタンスID」の項目の値が「3」であり「手続きID」の項目の値が「1」であるフィルタ機能インスタンス12cのフィルタ手続きを実行する。
フィルタ機能インスタンス12cは、例えば、フィルタ対象のIPアドレスのリストを保持している。フィルタ機能インスタンス12cのフィルタ手続きは、パケット保持部134が保持しているパケットのIPアドレスを取得し、当該IPアドレスが上記のリストに含まれている場合には、返り値として「0」を機能実行部133へ出力し、機能実行部133はパケット保持部134が保持しているパケットを破棄する。返り値が「1」の場合には、機能実行部133は、実行順序ルールテーブルを検索し、「インスタンスID」の項目の値が「4」であり「手続きID」の項目の値が「1」である送信機能インスタンス12dの送信手続きを実行する。
上述したように、送信手続きの次に実行されるべき機能インスタンス及び手続き(実際には、ダミーの機能インスタンス及びダミーの手続きであるため実行されない)に該当する「インスタンスID」及び「手続きID」の項目の値は「0」であることから、再びパケットの受信処理が開始されることになる。
以上、説明したように、本発明の第1の実施形態に係る通信装置1aは、実行順序ルールテーブルによって定義された実行順序に基づいて、逐次的に、NW機能に属する各種の手続きを実行し、実行した各手続きの返り値に応じて、次に実行する手続きを決定していくことができる。このような逐次的な処理においては、従来技術で行われているようなNW機能間でのパケットの受け渡しのための処理が不要になる。これにより、本発明の第1の実施形態に係る通信装置1aは、NW機能間でのパケットの受け渡しによる遅延の発生を抑制することができる。また、本発明の第1の実施形態に係る通信装置1aにおいては、各機能が逐次的に実行されるため、パケットに対する排他制御が不要になり、例えば、装置の簡易化を図ることができる。
<第1の実施形態の変形例1>
以下、本発明の第1の実施形態の変形例1に係る通信装置について説明する。本変形例に係る通信装置の構成は、基本的に、第1の実施形態に係る通信装置1aの構成と同様であって、機能実行部133の動作および実行順序ルールテーブルが第1の実施形態とは異なっている。図6は、本変形例に係る通信装置1aの機能実行部133の動作を示すフローチャートである。図7は、本変形例に係る通信装置1aの実行順序情報管理部131が保持する実行順序ルールテーブルの一例を示す図である。
図2に図示するように、まず、機能実行部133は、実行順序情報管理部131から、実行順序ルールテーブルを取得する。
なお、次に実行すべき機能インスタンス12及び手続きが、返り値に関わらず同一であるような場合には、実行順序ルールテーブルにおける「返り値」の項目の値として「*」を設定してもよい。また、図7には図示していないが、返り値がない場合に備えて、実行順序ルールテーブルにおける「返り値」の項目の値として「NULL(空文字)」を設定してもよい。
また、実行している機能インスタンス12の種別に関わらず、返り値が「0」である場合には、機能実行部133は、パケット保持部134に保持されたパケットを破棄する。
また、最初に実行すべき機能インスタンス12及び手続きは、実行順序ルールテーブルの1行目に、「実行インスタンスID」の項目の値として「0」(図7においては、「START(0)」と図示)、「実行手続きID」の項目の値として「0」(図7においては、「START(0)」と図示)、及び「返り値」の項目の値として「*」、がそれぞれ設定される。
続いて、機能実行部133は、変数CUR_INST_ID、変数CUR_METD_ID、及び、変数CUR_RETに、それぞれ「0」を代入することにより初期化する(図6、ステップS001)。
続いて、機能実行部133は、実行順序ルールテーブルを読み込み(図6、ステップS002)、当該実行順序ルールテーブルの1行目から、各行に記述されている「実行インスタンスID」、「実行手続きID」、及び「返り値」の項目の値が、それぞれ、変数CUR_INST_ID、変数CUR_METD_ID、及び変数CUR_RETと一致する行を検索する(図6、ステップS003)。
図7に示す実行順序ルールテーブルにおいて、1行目の「実行インスタンスID」、「実行手続きID」、及び「返り値」の項目の値は、それぞれ「0」(START(0))、「0」(START(0))、「*」であり、上記においてそれぞれ「0」を代入した変数CUR_INST_ID、変数CUR_METD_ID、及び変数CUR_RETに一致する。これにより、機能実行部133は、一致した行(すなわち、図7に示す実行順序ルールテーブルの1行目)の「次実行インスタンスID」の項目の値である「1」と、「次実行手続きID」の項目の値である「1」を、それぞれ、変数NXT_INST_IDと、変数NXT_METD_IDに代入する(図6、ステップS004)。これにより、変数NXT_INST_ID=1、変数NXT_METD_ID=1となる。
続いて、機能実行部133は、インスタンス情報管理部132から、次に実行する機能インスタンス12及び手続きを示す機能インスタンス情報テーブルを取得する。
機能実行部133は、機能インスタンス情報テーブルを読込み(図6、ステップS005)、当該機能インスタンス情報テーブルの1行目から、各行に記述されている「インスタンスID」、及び「手続きID」が、それぞれ、変数NXT_INST_ID、及び変数NXT_METD_IDと一致する行を検索する(図6、ステップS006)。
図5に示す機能インスタンス情報テーブルにおいて、2行目に記述された機能インスタンス12(受信機能インスタンス)の「インスタンスID」、及び「手続きID」の項目の値は、それぞれ「1」であり、上記においてそれぞれ「1」を代入した変数NXT_INST_ID、及び変数NXT_METD_IDに一致する。
機能実行部133は、一致した行(すなわち、2行目に記述された機能インスタンス12(受信機能インスタンス))の「メモリアドレス」の項目の値である「0x000000」を取得する。そして、機能実行部133は、取得したメモリアドレスに基づいてメモリを参照して手続きを呼び出し、処理を実行する(図6、ステップS007)。
また、機能実行部133は、手続き呼び出しの際、パケット保持部134に保持されたパケットにおけるメモリアドレスを受信機能インスタンス12aへ出力する。
また、受信機能インスタンス12aの受信手続きは、パケット受信部14からパケットを取り出し、パケット保持部134にパケットを移す。正常なパケット転送が行われた場合、受信機能インスタンス12aの受信手続きは処理を終了し、返り値として正常終了を表す値(「0」より大きな値)を機能実行部133へ出力する。なお、パケット受信部14にパケットが存在しない場合、受信機能インスタンス12aの受信手続きは、返り値として「−1」を機能実行部133へ出力する。また、正常終了を表す値(「0」より大きな値」)は、実行順序ルールテーブルに記載されている返り値であることが望ましい。これは、受信機能インスタンス12aに限らず、他の機能インスタンスについても同様である。
次に、機能実行部133は、変数CUR_INST_ID、変数CUR_METD_IDに、それぞれ、変数NXT_INST_ID、変数NXT_METD_IDの値を代入する(図6、ステップS051)。
機能実行部133は、実行した機能インスタンス12の手続きから返り値を受け取ると、当該返り値を変数CUR_RETに代入する(図6、ステップS052)。なお、返り値がない場合、機能実行部133は変数CUR_RETに「NULL(空文字)」を代入する。
返り値が「0」であった場合(図6、ステップS053・YES)、機能実行部133は、パケット保持部134が保持しているパケットを破棄し(図6、ステップS010)、制御が、変数初期化の段階(図6、ステップS001)に戻る。返り値が「0」以外であった場合(図6、ステップS053・NO)は、機能実行部133は、再び実行順序ルールテーブルを読み込み(図6、ステップS002)、次に実行する機能インスタンス及び手続きを示す情報を検索する(図6、ステップS003)。
例えば、図7の実行順序ルールテーブルの2行目に示すように、「実行インスタンスID」の項目の値が「1」、及び「実行手続きID」の項目の値が「1」であり(すなわち、図5に示すように受信機能インスタンス12aの受信手続きであり)、返り値が「1」であるとき、機能実行部133は、「次実行インスタンスID」の項目の値「2」と「次実行手続きID」の項目の値「1」とを取得する。これらの値に基づいて、機能実行部133は、図5に示す機能インスタンス情報テーブルにおいて、「インスタンスID」の項目の値が「2」であり「手続きID」の項目の値が「1」であるVLAN−ID変換機能インスタンス12bのVLAN−ID変換手続きを実行する。
機能実行部133は、機能インスタンス情報テーブルに基づいて、上記のVLAN−ID変換手続きのメモリアドレスである「0x000100」を取得し、当該メモリアドレスに基づいてメモリを参照してVLAN−ID変換手続きを実行する。
なお、VLAN−ID変換機能インスタンス12bは、例えば、変換前のVLAN−IDと変換後のVLAN−IDを対応付けたリストを保持しており、パケット保持部134が保持しているパケットのVLAN−IDに応じて、当該VLAN−IDの書き換えを行う。VLAN−IDの書き換えが終了すると、VLAN−ID変換手続きが終了し、VLAN−ID変換機能インスタンス12bは返り値を出力する。そして、機能実行部133は、実行されたVLAN−ID変換機能インスタンス12bから返り値を取得し、当該返り値を変数CUR_RETに代入する。なお、この際に、VLAN−IDの値に応じて返り値を変化させることによって、その後の処理を変化させることも可能である。
例えば、図7の実行順序ルールテーブルの3行目に示すように、「実行インスタンスID」の項目の値が「2」、及び「実行手続きID」の項目の値が「1」であり(すなわち、図5に示すようにVLAN−ID変換機能インスタンス12bのVLAN−ID変換手続きであり)、返り値が「1」であるとき、機能実行部133は、「次実行インスタンスID」の項目の値「4」と「次実行手続きID」の項目の値「1」とを取得する。これらの値に基づいて、機能実行部133は、図5に示す機能インスタンス情報テーブルにおいて、「インスタンスID」の項目の値が「4」であり「手続きID」の項目の値が「1」である送信機能インスタンス12dの送信手続きを実行する。
送信機能インスタンス12dの送信手続きでは、パケット保持部134が保持している、所定の処理が実行された後のパケットをパケット送信部15に転送する。これにより、外部の装置へ当該パケットが送出される。
なお、図7の実行順序ルールテーブルの6行目に示すように、「実行インスタンスID」の項目の値が「4」、及び「実行手続きID」の項目の値が「1」である、送信機能インスタンス12dの送信手続きに対しては、「次実行インスタンスID」の項目の値、及び「次実行手続きID」の項目の値として、それぞれ「0」(図7においては「START(0)」と図示)が設定されている。
また、図5の機能インスタンス情報テーブルの1行目に示すように、「インスタンスID」、及び「手続きID」の項目の値がそれぞれ「0」であり、かつ手続きの「メモリアドレス」の項目が空欄(「−」)である実際には実行されないダミーの機能インスタンス及びダミーの手続きが予め設定されている。これにより、次回の実行順序ルールテーブルの検索時には、図7に示す実行順序ルールテーブルの1行目が検索されることになり、再びパケットの受信処理が開始されることになる。
一方、例えば、図7の実行順序ルールテーブルの4行目に示すように、「実行インスタンスID」の項目の値が「2」、及び「実行手続きID」の項目の値が「1」であり(すなわち、図5に示すようにVLAN−ID変換機能インスタンス12bのVLAN−ID変換手続きであり)、返り値が「2」であるとき、機能実行部133は、「次実行インスタンスID」の項目の値「3」と「次実行手続きID」の項目の値「1」とを取得する。これらの値に基づいて、機能実行部133は、図5に示す機能インスタンス情報テーブルにおいて、「インスタンスID」の項目の値が「3」であり「手続きID」の項目の値が「1」であるフィルタ機能インスタンス12cのフィルタ手続きを実行する。
フィルタ機能インスタンス12cは、例えば、フィルタ対象のIPアドレスのリストを保持している。フィルタ機能インスタンス12cのフィルタ手続きは、パケット保持部134が保持しているパケットのIPアドレスを取得し、当該IPアドレスが上記のリストに含まれている場合には、返り値として「0」を機能実行部133へ出力し、機能実行部133はパケット保持部134が保持しているパケットを破棄する。返り値が「1」の場合には、機能実行部133は、実行順序ルールテーブルを検索し、「インスタンスID」の項目の値が「4」であり「手続きID」の項目の値が「1」である送信機能インスタンス12dの送信手続きを実行する。
上述したように、送信手続きの次に実行されるべき機能インスタンス及び手続き(実際には、ダミーの機能インスタンス及びダミーの手続きであるため実行されない)に該当する「インスタンスID」及び「手続きID」の項目の値は「0」であることから、再びパケットの受信処理が開始されることになる。
なお、図7の7行目に示すように、返り値が「0」より小さい値を実行順序ルールテーブルに記載すれば、異常終了した場合の異常処理の実行についても記載することができる。
また、上述した説明では、受信手続きが実行されることで、パケットがパケット受信部14からパケット保持部134に転送される例を記述した。しかし、パケット受信部14がパケットを受信次第、受信したパケットを自律的にパケット保持部134へ転送するようにしてもよい。この場合、処理順序制御部13は、常に図6に示したシーケンスを実行するのではなく、パケットがパケット保持部134に到着次第、割り込み等によってシーケンスの動作を開始させるようにする。この方法によれば、前述した方法に比べて電力効率等の向上が期待される。
<第1の実施形態の変形例2>
以下、本発明の第1の実施形態の変形例2に係る通信装置について説明する。上述した第1の実施形態では、実行順序ルールテーブルの各行が基本的に返り値を持ち、返り値に応じて異なる処理順序での実行を可能にしている。しかし、返り値をなくし、決まった処理をシーケンシャルに行うことも可能である。
本変形例に係る通信装置の構成は、基本的に、第1の実施形態に係る通信装置1aの構成と同様であって、実行順序ルールテーブルの構成および機能実行部133の動作が、第1の実施形態とは異なる。
図8は、本変形例に係る通信装置1aの機能実行部133の動作を示すフローチャートである。図9は、本変形例に係る通信装置1aの実行順序情報管理部131が保持する実行順序ルールテーブルの一例を示す図である。
図9に示すように、本変形例に係る実行順序ルールテーブルは、現在実行している機能インスタンス12を識別する「実行インスタンスID」と、現在実行している機能インスタンス12の手続きを識別する「実行手続きID」とが対応付けられたテーブルである。
以下に、本変形例に係る通信装置1aの動作について説明する。まず、機能実行部133は、実行順序ルールテーブルにおいて、現在手続きを実行している行数を表す変数CUR_LINEに「1」を代入して、変数CUR_LINEを初期化する(図8、ステップS101)。次に、機能実行部133は、変数CUR_LINEが、実行順序ルールテーブルの行数(図9の例では「4」)以下であるかどうかを判断する(図8、ステップS102)。ここでは、変数CUR_LINEが「1」であって実行順序ルールテーブルの行数以下である(図8、ステップS102・YES)ため、機能実行部133は、処理をステップS103に進める。
続いて、機能実行部133は、実行順序ルールテーブルにおいて、変数CUR_LINEが示す行の情報を取得し(図8、ステップS103)、1行目に記載されている実行インスタンスID,実行手続きIDをそれぞれ変数NXT_INST_ID,NXT_METD_IDに代入する(図8、ステップS104)。続いて、機能実行部133は、第1の実施形態と同様に、機能インスタンス情報テーブルを読み込む(図8、ステップS105)。次に、機能実行部133は、機能インスタンス情報テーブルにおいて、インスタンスID,手続きIDが、それぞれ、変数NXT_INST_ID,変数NXT_METD_IDと一致する行を検索する(図8、ステップS106)。
次いで、機能実行部133は、一致した行のメモリアドレスの値に基づいてメモリを参照して手続きを呼び出し、処理を実行する(図8、ステップS107)。この処理が終了し、機能実行部133が処理を実行した手続きから返り値を受け取ると、機能実行部133は当該返り値を変数CUR_RETに代入する(図8、ステップS108)。なお、返り値がない場合、機能実行部133は、空白を表す「NULL」を変数CUR_RETに代入する。
次に、機能実行部133は、変数CUR_RETが「0」より大きな値であるか、または、「NULL」であるかどうかを判断する(図8、ステップS109)。変数CUR_RETが「0」より大きな値であった場合、もしくは「NULL」であった場合(図8、ステップS109・YES)、機能実行部133は、手続きが正常に実行されたと見なし、次の手続きの処理に移る。この後、機能実行部133は、変数CUR_LINEを一つインクリメントする(図8、ステップS110)。これにより、変数CUR_LINEは「2」となる。
次に、機能実行部133は、上述したのと同様に、変数CUR_LINEが実行順序ルールテーブルの行数以下であるかどうかを判断する(図8、ステップS102)。この場合も変数CUR_LINEが「2」であって実行順序ルールテーブルの行数以下であるため、機能実行部133は、処理をステップS103に進め、上記と同様にして、実行順序ルールテーブルの2行目に記載された実行インスタンスIDおよび実行手続きIDに対応する機能インスタンスの手続きを呼び出す。
呼び出された手続きの返り値が、いずれも、「0」より大きな値であるか「NULL」である場合、以上の動作が実行順序ルールテーブルのすべての行について行われる。そして、実行順序ルールテーブルの4行目に対応する手続きの処理が終了した後に、ステップS110において変数CUR_LINEが一つインクリメントされて「5」になる。この場合、変数CUR_LINEは実行順序ルールテーブルの行数より大きい(図8、ステップS102・NO)ため、機能実行部133は、実行すべき手続きが終了したと見なし、制御をステップS101に戻して変数CUR_LINEを「1」に初期化した上で、実行順序の最初から実行を開始する。
一方、いずれかの手続きの動作において、変数CUR_RETが「0」より大きな値でなく、かつ、「NULL」でもないと判断された場合(図8、ステップS109・NO)、機能実行部133は、変数CUR_RETが「0」かどうかを判断する(図8、ステップS111)。変数CUR_RETが「0」でない場合(図8、ステップS111・NO)、ステップS109における判断の結果から、変数CUR_RETは「0」より大きくないため、変数CUR_RETが「0」より小さいことになる。この場合、機能実行部133は、異常が発生したと見なし、異常に対処するための処理(異常処理)に移る(図8、ステップS112)。一方、変数CUR_RETが「0」であった場合(図8、ステップS111・YES)、機能実行部133は、パケット保持部134が保持しているパケットを破棄し(図8、ステップS113)、制御をステップS101に戻して変数CUR_LINEを「1」に初期化した上で、実行順序の最初から実行を開始する。
本変形例は、返り値に応じた処理の変更をしない反面、実行順序ルールテーブルの検索処理が不要となるため、高速な処理が期待できる。
<第2の実施形態>
以下、本発明の第2の実施形態に係る通信装置1bについて説明する。本実施形態に係る通信装置1bは、上述した第1の実施形態に係る通信装置1aに対して、新たなNW機能の追加、既存機能の削除、既存機能と新機能の置き換えを行う機能が加えられたものである。
以下に、本実施形態に係る通信装置1bの動作について、図面を参照しながら説明する。図10は、本発明の第2の実施形態に係る通信装置1bの機能追加時の動作の一例を示す図である。図11は、本発明の第2の実施形態に係る通信装置1bの機能削除時の動作の一例を示す図である。
図10及び図11に図示するように、第2の実施形態に係る通信装置1bは、上述した第1の実施形態に係る通信装置1aに対して、処理順序制御部13に、外部連携部135と、インスタンス登録・削除部136と、実行順序変更部137と、が更に備えられている点が異なる。なお、図10及び図11では、機能実行部133、パケット保持部134、受信機能ファイル、VLAN−ID機能ファイル、フィルタ機能ファイル、送信機能ファイル、受信機能インスタンス12a、VLAN−ID変換機能インスタンス12b、フィルタ機能インスタンス12c、送信機能インスタンス12dの図示を省略している。
外部連携部135は、通信機能の追加、通信機能の変更、または通信機能の削除の要求を、外部連携装置から取得する。
図10に図示するように、例えば、通信装置1bの管理者等が新たな機能インスタンスを追加する場合、上記の通信機能の追加の要求に基づいて、外部連携部135に対して、新機能の機能ファイルである新機能ファイルと、新機能のインスタンスID、および実行順序の変更方法を示す情報とが設定される。
外部連携部135は、インスタンス登録・削除部136に対して、機能追加の要求を示す情報、新機能ファイル、及び新たに生成した新機能の機能インスタンス12である新機能インスタンス12eを識別するインスタンスIDを出力する。インスタンス登録・削除部136は、取得した新機能ファイルを機能ファイル保持部11に保存するとともに、メモリへの展開を行う。なお、全ての機能インスタンスは、開始手続きと終了手続きを有する。新機能ファイルがメモリに展開された際に、インスタンス登録・削除部136は、上述した開始手続きのメモリアドレスを取得する。
新機能ファイルのメモリへの展開が行われた後、インスタンス登録・削除部136は、取得した開始手続きのメモリアドレスに基づいて、新機能インスタンス12eの開始手続きを実行して、新機能インスタンス12eの初期化を行う。新機能インスタンス12eは、開始手続きが呼び出された後、自己のメモリアドレス,自己の保持する手続きの手続きID、及び各手続きへのメモリアドレスを取得し、インスタンス情報を生成する。例えば、図12は、本発明の第2の実施形態に係る通信装置1bの新機能インスタンス12eが生成するインスタンス情報の一例を示す図である。
新機能インスタンス12eは、生成したインスタンス情報を、インスタンス登録・削除部136へ出力する。インスタンス登録・削除部136は、取得したインスタンス情報を、インスタンスIDと共にインスタンス情報管理部132へ出力する。インスタンス情報管理部132は、保持している機能インスタンス情報テーブルに対して、取得したインスタンス情報を記述する。
インスタンス情報管理部132において、上述したインスタンス情報の記述が完了した後、外部連携部135は管理者等から設定された実行順序の変更方法を示す情報とともに、実行順序変更要求を実行順序変更部137に出力する。実行順序変更部137は、取得した実行順序の変更方法を示す情報に基づいて、実行順序情報管理部131の保持する実行順序ルールテーブルに変更要求を出力する。図13に示すように、例えば、機能追加をする際には、実行順序変更部137は、実行順序情報管理部131の実行順序ルールテーブルに対して、新機能から既存機能への遷移を示すルールを追加し(1)、新機能への遷移を示すルールを追加し(2)、最後に、必要としないルール行の削除を行う(3)ことを要求する。
図11に図示するように、例えば、通信装置1bの管理者等が機能インスタンス12を削除する場合、外部連携部135に対して、削除する機能インスタンス12を識別するインスタンスID、および実行順序の変更方法を示す情報が設定される。外部連携部135は、まず、実行順序変更部137に対して実行順序の変更方法を示す情報を出力する。
実行順序変更部137は、取得した実行順序の変更方法を示す情報に基づいて、新機能インスタンス12eの追加時と同様に、実行順序情報管理部131の保持する実行順序ルールテーブルを更新する。実行順序情報管理部131における実行順序ルールテーブルの更新が完了した後、外部連携部135は、インスタンス登録・削除部136へ、削除対象の機能インスタンスのインスタンスIDとともに、機能削除要求を出力する。インスタンス登録・削除部136は、インスタンス情報管理部132から、削除対象の機能インスタンス12のメモリアドレス、及び当該機能インスタンス12の終了手続きのメモリアドレスを取得する。
その後、インスタンス登録・削除部136は、削除対象の機能インスタンス12の終了手続きを呼び出す。機能インスタンス12の終了手続きは、機能の終了に必要な処理(終了処理)を行った後、インスタンス登録・削除部136へ、削除要求の通知を出力する。インスタンス登録・削除部136は、機能インスタンス12から削除要求の通知を受け取ると、メモリに展開された機能インスタンス12を削除した後、インスタンス情報管理部132へ、削除対象の機能インスタンス12の情報の削除を要求する。インスタンス情報管理部132は、削除要求を取得すると、保持している機能インスタンス情報テーブルにおいて、削除対象の機能インスタンス12のインスタンスIDが対応付けられた行を削除する。
機能の追加・削除だけでなく、既存機能を新機能で置き換えることも可能である。例えば、通信装置1bの管理者等が既存の機能インスタンスを新たな機能インスタンスと置き換える場合、外部連携部135に対して、新機能の機能ファイルである新機能ファイルと置き換え対象の既存機能のインスタンスIDを設定する。外部連携部135はインスタンス登録・削除部136に機能置き換え要求の通知を出力する。インスタンス登録・削除部136は上述した機能追加処理を行う。この際、インスタンス情報管理部132が機能インスタンス情報テーブル内の既存機能インスタンス情報のメモリアドレス値を、新機能インスタンス情報のメモリアドレス値で上書きする点が機能追加時とは異なる。また、実行順序ルールテーブルの更新処理は行わない。機能インスタンス情報テーブルの更新処理が終わったのち、インスタンス登録・削除部136が既存機能インスタンスの終了手続きを呼び出し、メモリに展開された機能インスタンスの削除が行われる。
以上、説明したように、本発明の第2の実施形態に係る通信装置1bは、変更対象の機能インスタンス12、インスタンス情報管理部132、及び実行順序情報管理部131に対して変更を加えるのみであり、他の既存機能に対しては変更を加えない。これにより、本発明の第2の実施形態に係る通信装置1bは、既存機能の動作に大きな影響を与えることなく、また既存機能の動作を停止することなく、新たなNW機能の追加・削除を行うことができる。
<第3の実施形態>
以下、本発明の第3の実施形態に係る通信装置1cについて説明する。本実施形態に係る通信装置1cは、上述した第1の実施形態に係る通信装置1aに対して、NW機能間での連携を可能にする構成を追加したものである。
以下に、本実施形態に係る通信装置1cの動作について、図面を参照しながら説明する。図14は、本発明の第3の実施形態に係る通信装置1cの機能間連携の動作の一例を示す図である。
図14に図示するように、第3の実施形態に係る通信装置1cは、上述した第1の実施形態に係る通信装置1aに対して、機能ファイル保持部11内のブリッジ機能ファイルと、通知受付手続きを有するブリッジ機能インスタンス12fと、処理順序制御部13内の連携情報保持部138および通知手続きと、がさらに備えられている点が異なる。なお、図14では、実行順序情報管理部131、インスタンス情報管理部132、機能実行部133、パケット保持部134、受信機能ファイル、VLAN−ID変換機能ファイル、送信機能ファイル、受信機能インスタンス12a、VLAN−ID変換機能インスタンス12b、送信機能インスタンス12dの図示を省略している。
図14に図示するように、本実施形態に係る通信装置1cでは、各機能インスタンス12は、処理順序制御部13における通知手続きを介して、他の機能インスタンス12の通知受付手続きを実行する。すなわち、各機能インスタンス12の通知受付手続きは、他の機能インスタンス12に属する手続きからの情報取得要求、及び機能実行の要求に応じて処理を行う。これにより、本実施形態に係る通信装置1cは、ある機能が他の機能の変数値の取得や設定等を行う機能間連携を実現することができる。
なお、通知手続きのメモリアドレスは、処理順序制御部13の機能実行部133が、機能インスタンス12の開始手続きを実行する際に、引数として機能インスタンス12へ伝達される。なお、第2の実施形態で述べたように、全ての機能インスタンスは、開始手続きと終了手続きを有する。また、通知受付手続きのメモリアドレスは、機能インスタンス12の開始手続き終了時に、返り値となるインスタンス情報の中に含まれることによって処理順序制御部13へ伝達されるものとする。
以下、図14を参照しながら、フィルタ機能インスタンス12cが、ブリッジ機能インスタンス12fから、パケットの受信数を示す受信数情報を取得する場合について説明する。まず、フィルタ機能インスタンス12cのフィルタ手続きの実行中に、処理順序制御部13の通知手続きが呼び出される。この際、呼び出し元のフィルタ機能インスタンス12cは、呼び出し先の処理順序制御部13の通知手続きへ、連携種別識別子(以下、「連携種別ID」という)を引数として伝達する。呼び出された通知手続きは、処理順序制御部13の連携情報保持部138が保持する連携種別テーブルを取得する。
図15は、本発明の第3の実施形態に係る通信装置1cの連携情報保持部138が保持する連携種別テーブルの一例を示す図である。図示するように、連携種別テーブルは、連携種別を示す「連携種別ID」と、「連携内容」と、呼び出し対象の機能インスタンス12へ伝達する引数を示す「引数情報」と、呼び出し対象の機能インスタンス12を識別するインスタンスIDを示す「呼び出しインスタンスID」と、呼び出し対象の機能インスタンス12の手続きを識別する手続きIDを示す「呼び出し手続きID」と、が対応付けられたテーブルである。
なお、「連携種別ID」は、図15に示すような連番の数字のような形式に限られるものではなく、連携内容を一意に識別できる形式であれば任意の形式で構わない。
また、連携種別テーブルに定義された、「連携種別ID」、「連携内容」、及び「引数情報」の項目の値は事前に公開されているものであり、各機能インスタンス12を開発する開発者は、公開された情報に基づいて、他の機能と連携する機能インスタンス12を開発することができるものとする。
通知手続きは、引数として伝達された「連携種別ID」を検索キーとして連携種別テーブルを検索し、呼び出し対象である機能インスタンス12及び当該機能インスタンス12の手続きにそれぞれ対応する、「呼び出しインスタンスID」及び「呼び出し手続きID」を取得する。
例えば、フィルタ機能インスタンス12cは、「連携種別ID」の値である「1」を処理順序制御部13の通知手続きへ伝達する。そして、通知手続きは、呼び出し対象の機能インスタンス12であるブリッジ機能インスタンス12fに対応する「呼び出しインスタンスID」の値である「5」、及びブリッジ機能インスタンス12fの通知受付手続きに対応する「呼び出し手続きID」の値である「1」を取得する。そして、処理順序制御部13の通知手続きは、上記の「呼び出しインスタンスID」及び「呼び出し手続きID」の値に基づいて、ブリッジ機能インスタンス12fの通知受付手続きを呼び出す。
ブリッジ機能インスタンス12fは、受信パケットをカウントし、カウントした結果(パケットの受信数)を示す受信数情報を保持しているものとする。ブリッジ機能インスタンス12fの通知受付手続きは、処理順序制御部13の通知手続きから、自己の通知受付手続きが呼び出されると、上記の受信数情報を読み出して、当該受信数情報を返り値として通知手続きへ出力する。
処理順序制御部13の通知手続きは、受信数情報を取得すると、当該受信数情報を、呼び出し元であるフィルタ機能インスタンス12cへ出力する。これらの処理により、フィルタ機能インスタンス12cにおいて、ブリッジ機能インスタンス12fの手続きを直接実行することなく、受信パケットの受信数情報を取得することができる。
なお、機能インスタンス12に属する通知受付手続きの数は、一つに限らず、複数の通知受付手続きが存在していてもよい。
以下、連携種別テーブルの生成について説明する。連携種別テーブルの生成は、例えば、第2の実施形態において説明した機能追加時に行うことができる。このように連携種別テーブルを機能追加時に生成する場合、第2の実施形態で説明した外部連携部135、インスタンス登録・削除部136、実行順序変更部137を処理順序制御部13に設ければよい。通信装置の管理者等が、新機能ファイルを外部連携部135へ出力する際、機能ファイル及び「機能インスタンスID」とともに、通知受付手続きの「手続きID」、「連携種別ID」、「連携内容」、及び「引数情報」が伝達される。外部連携部135から機能追加の要求を受けたインスタンス登録・削除部136は、実行順序情報管理部131が保持する実行順序ルールテーブルの更新を行った後、機能追加した新機能インスタンス12eの「機能インスタンスID」、及び外部連携部135から取得した「手続きID」、「連携種別ID」、「連携内容」、及び「引数情報」を、連携情報保持部138へ出力する。そして、連携情報保持部138は、取得した情報を連携種別テーブルへ書き込む。
なお、処理順序制御部13が通知受付手続きを有するような構成にした場合には、機能インスタンス12から、処理順序制御部13が有する、各機能の間で共通する情報を取得したり設定したりすることもできる。
<第3の実施形態の変形例>
以下、本発明の第3の実施形態の変形例に係る通信装置1dについて説明する。第3の実施形態の変形例に係る通信装置1dは、上述した第3の実施形態に係る通信装置1cと同様に、上述した第1の実施形態に係る通信装置1aに対して、NW機能間での連携を可能にする構成を追加したものである。
以下に、本変形例に係る通信装置1dの動作について、図面を参照しながら説明する。図16は、本発明の第3の実施形態の変形例に係る通信装置1dの機能間連携の動作の一例を示す図である。
図16に図示するように、第3の実施形態の変形例に係る通信装置1dは、上述した第1の実施形態に係る通信装置1aに対して、機能ファイル保持部11内のブリッジ機能ファイルと、ブリッジ機能インスタンス12fが追加されているほか、処理順序制御部13に、公開変数情報保持部139と、公開変数更新手続きと、公開変数取得手続きと、がさらに備えられている点が異なる。なお、図16では、実行順序情報管理部131、インスタンス情報管理部132、機能実行部133、パケット保持部134、受信機能ファイル、VLAN−ID変換機能ファイル、送信機能ファイル、受信機能インスタンス12a、VLAN−ID変換機能インスタンス12b、及び送信機能インスタンス12dの図示を省略している。
公開変数取得手続き、及び公開変数更新手続きのメモリアドレスは、処理順序制御部13の機能実行部133が各機能インスタンス12の開始手続きを実行する際に、引数として機能インスタンス12へ伝達される。なお、第2の実施形態で述べたように、全ての機能インスタンスは、開始手続きと終了手続きを有する。
以下、上述した第3の実施形態に係る通信装置1cと同様に、フィルタ機能インスタンス12cが、ブリッジ機能インスタンス12fから、パケットの受信数を示す受信数情報を取得する場合について例示する。
公開変数情報保持部139は、公開変数テーブルを保持する。図17は、本発明の第3の実施形態の変形例に係る通信装置1dの公開変数情報保持部139が保持する公開変数テーブルの一例を示す図である。
図示するように、公開変数テーブルは、通信装置1dにおいて動作する機能インスタンス12を識別する「インスタンスID」と、当該機能インスタンス12に属する変数である「変数ID」と、当該変数の内容を説明する「変数説明」と、変数の値である「変数値」と、当該変数に対して許可されている処理を示す「可能な処理」と、が対応付けられたテーブルである。なお、「変数ID」は、図17に示すような文字列でもよいし、数字等でもよい。
なお、公開変数テーブルに定義された、「変数ID」、「変数説明」、及び「可能な処理」の項目の値は事前に公開されているものであり、各機能インスタンス12を開発する開発者は、公開された情報に基づいて、他の機能と連携する機能インスタンス12を開発することができるものとする。
公開変数テーブルの生成は、例えば、上述した第2の実施形態において説明した機能追加時に行うことができる。このように公開変数テーブルを機能追加時に生成する場合、第2の実施形態で説明した外部連携部135、インスタンス登録・削除部136、実行順序変更部137を処理順序制御部13に設ければよい。通信装置の管理者等が、新機能ファイルを外部連携部135へ出力する際、機能ファイル及び機能インスタンスIDとともに、機能インスタンス12に属する変数のうち、他の機能インスタンス12から参照のみ、もしくは参照及び更新の両方を行うことが可能な変数群(公開変数)の「変数ID」、「変数説明」、及び「可能な処理」が定義されたテーブルを出力する。外部連携部135は、公開変数情報保持部139へ、上述したテーブルを出力する。そして、公開変数情報保持部139は、取得したテーブルが示す情報を公開変数テーブルへ書き込む。
各機能インスタンス12は、他の機能インスタンス12の情報の取得を必要とする場合には、処理順序制御部13の公開変数取得手続きを呼び出し、取得対象の変数値を取得する。また、各機能インスタンス12が、他の機能インスタンス12へ情報を伝達する必要がある場合や、自己の機能インスタンス12の変数、及び他の機能インスタンス12の変数を更新する必要がある場合には、各機能インスタンス12は、公開変数更新手続きを呼び出して情報を伝達したり、書き換え操作可能な変数値を変更したりする。
図17に示す例においては、ブリッジ機能インスタンス12fは、パケットを受信するたびに、文字列「RX_COUNT」を引数として公開変数更新手続きを呼び出し、公開変数テーブルの「RX_COUNT」の値を更新する。ブリッジ機能インスタンス12fは、ブリッジ機能の受信パケット数を取得する場合には、文字列「RX_COUNT」を引数として公開変数取得手続きを呼び出し、公開変数テーブルの「RX_COUNT」の値を取得する。
以上説明したように、本発明の第3の実施形態の変形例に係る通信装置1dは、各機能インスタンス12が、自己の機能インスタンス12の公開変数を更新するたびに、処理順序制御部13の公開変数更新手続きを呼び出す。これにより、本変形例に係る通信装置1dは、第3の実施形態に係る通信装置1cよりも通信装置の構成をシンプルにすることができる。
<第4の実施形態>
以下、本発明の第4の実施形態について説明する。本実施形態に係る通信装置は、上述した第1の実施形態に係る通信装置1aに対して、高速な実行順序ルール検索を実現する構成を追加したものである。
本実施形態では、実行順序情報管理部131が保持する実行順序ルールテーブルは、返り値と実行順序に従って、実行すべき手続きへのメモリアドレス情報をノードとした木構造となるように構築される。図18は、本発明の第4の実施形態に係る通信装置1aの実行順序情報管理部131が保持する実行順序ルールテーブルの一例を示す図である。
機能実行部133は、処理(手続き)を実行すると、その返り値に応じて次ノードのメモリアドレスを取得し、当該次ノードに記述された手続きを実行する。これらの処理が繰り返されることによって、木構造における親ノードにあたる手続きの実行が完了すると、処理を実行すべき対象が子のノードへ移動する。
本発明の第4の実施形態に係る通信装置1aによれば、次に実行すべき手続きのメモリアドレスをインスタンス情報管理部132から取得する必要がなくなるため、より高速に処理を実行することができる。ただし、機能の置き換え等で、ある機能インスタンスの手続きのメモリアドレスを変更する場合は、インスタンス情報管理部132の保持する機能インスタンス情報テーブルのみでなく、前記実行順序ルールテーブルにも変更を行う必要がある。
<第4の実施形態の変形例>
以下、本発明の第4の実施形態の変形例について説明する。第4の実施形態の変形例に係る通信装置は、上述した第4の実施形態に係る通信装置と同様に、上述した第1の実施形態に係る通信装置1aに対して、高速な実行順序ルール検索を実現する構成を追加したものである。
上述した第1の実施形態に係る通信装置1aは、実行順序情報管理部131から取得した実行順序ルールテーブルにおいて、機能インスタンス12の手続きが終了するたびに、当該機能インスタンス12の実行インスタンスID、実行手続きID、及び返り値を検索キーとして検索を行い、次に実行すべき機能インスタンス12の次実行インスタンスID及び次実行手続きIDを取得する。
一方、図19に示すように、検索キーである実行インスタンスID、手続きID、及び返り値ごとに、あらかじめ実行順序ルールテーブルを分離して、木構造となるように再構成しておくことによって、検索の高速化を図ることができる。
図19に示すように、実行インスタンスID、手続きIDを主キーとした実行順序ルールテーブルでは、バリューは、次検索キーの実行順序ルールテーブルの先頭ルールへの参照であり、返り値を主キーとした実行順序ルールテーブルでは、バリューは、次実行インスタンスID及び次実行手続きIDである。なお、返り値を主キーとした実行順序ルールテーブル中の「メモリアドレス」はなくともよい。この「メモリアドレス」については後述する。
検索を行う際は、まず実行インスタンスIDを主キーとした実行順序ルールテーブル(例えば、図19の(a))を検索し、取得したポインタを基に手続きIDの実行順序ルールテーブル(例えば、図19の(b−1)または(b−2))を検索し、さらに取得したポインタを基に返り値の実行順序ルールテーブル(例えば、図19の(c−1)または(c−2))を検索して、次に実行すべき機能インスタンス12のインスタンスID及び手続きIDを取得する。
実行順序ルールテーブルの木構造化により、単純な線形検索の計算量O(n)と比べて、計算量をO(log(n))まで削減することができる。本発明の各実施形態では、パケットに対して処理を行うたびに検索を行うため、膨大な検索処理を行うこととなり、計算量の削減効果は非常に大きいと考えられる。
上述した返り値の実行順序ルールテーブルに対して、さらに、次に実行すべき手続きのメモリアドレスを付与してもよい。これにより、インスタンス情報管理部132が保持する機能インスタンス情報テーブルを参照することなく、次に実行すべき手続きのメモリアドレスを取得することができる。
また、主キーの異なるそれぞれの実行順序ルールテーブルのルール順序は、図19に示す実行順序ルールテーブルのルール順序に限られるものではなく、ルールにマッチする頻度に応じて変更されてもよい。これにより無駄な検索を避け、さらなる高速化が期待できる。
<第5の実施形態>
以下、本発明の第5の実施形態について説明する。本実施形態に係る通信装置1eは、上述した第1の実施形態に係る通信装置1aに対して、パイプライン処理によって転送の高速化を実現する構成を追加したものである。
第1の実施形態に係る通信装置1aでは、一つのパケットに対する機能の実行を、単一の機能実行部133が行っていた。一方、機能の実行を複数の機能実行部で行うことで、パイプライン化が可能となり、スループットの向上が見込まれる。
図20は、本発明の第5の実施形態に係る通信装置1eがパイプライン化された場合の機能構成の概略を示す機能ブロック図である。図示するように、本実施形態に係る通信装置1eでは、機能実行部が2つ(機能実行部133、及び第二機能実行部133b)備えられることによりパイプライン化がなされている。また、機能実行部の数だけでなく、パケット保持部も2つ(パケット保持部134、及び第二パケット保持部134b)備えられている点も、上述した第1の実施形態に係る通信装置1aとは異なる。また、機能実行部の数と同数の実行順序ルールテーブルが必要となることから、本実施形態に係る通信装置1eの実行順序情報管理部131は、複数の実行順序ルールテーブルを管理することが可能な構成であるものとする。
上述した第1の実施形態に係る通信装置1aと同様に、パケットのVLAN−IDの変換を行うVLAN−ID変換機能、及び、特定のIPアドレスのパケットを破棄するフィルタ機能、の2つの機能の組み合わせを実現する場合を例として説明する。
機能実行部133は、上述した第1の実施形態に係る通信装置1aと同様に、パケットの受信とVLAN−ID変換を行った後、実行順序情報管理部131が保持する、機能実行部133用の実行順序ルールテーブルを検索し、次に実行すべき機能インスタンスのインスタンスID、及び手続きIDを取得する。
図21Aおよび図21Bは、本発明の第5の実施形態に係る通信装置1eがパイプライン化された場合の実行順序情報管理部131が保持する実行順序ルールテーブルの一例を示す図である。図示するように、図21Aは、機能実行部133用の実行順序ルールテーブルであり、図21Bは、第二機能実行部133b用の実行順序ルールテーブルである。
図示するように、次に実行すべき手続きが第二パケット保持部134bへの転送手続きであることを示す「次実行インスタンスID」、及び「次実行手続きID」の項目の値として、それぞれ「99」(図21Aにおいては、「第二パケット保持部(99)」と図示)が設定されている。なお、機能インスタンス情報テーブルにも、「インスタンスID」及び「手続きID」が「99」である行が用意されており、当該行には、パケットをパケット保持部134から取得し、取得したパケットを第二パケット保持部134bへ転送する手続きを記述する。
一方、第二機能実行部133bは、定期的に、第二パケット保持部134bにパケットが存在しないかどうかを確認するためのポーリングを行う。そして、第二機能実行部133bは、パケットの存在を確認し次第、実行順序情報管理部131が保持する第二機能実行部133b用の実行順序ルールテーブルを検索し、「実行インスタンスID」、及び「手続きID」を取得する。
第二機能実行部133b用の実行順序ルールテーブルには、フィルタ機能インスタンス12cのフィルタ手続き呼び出しが記述されているため、第二機能実行部133bは、フィルタ機能を呼び出す。フィルタ機能の処理後、上述した第1の実施形態に係る通信装置1aと同様に、パケット送信部15からパケットが送信される。
本発明の第5の実施形態に係る通信装置1eは、フィルタ機能の実行と並行して、VLAN−ID変換の実行を行うことができるため、上述した第1の実施形態に係る通信装置1aと比べて、およそ2倍程度の高いスループットを実現することができる。
[通信装置の機能構成の変形例]
次に、図1を参照して説明した通信装置の変形例について説明する。図22Aは、本変形例に係る通信装置1fの機能構成を示す機能ブロック図である。図示するように、通信装置1fは、通信における処理の機能インスタンス12と、処理順序制御部13とを含んで構成される。処理順序制御部13は、NW機能に関する処理等の実行順序を示す実行順序ルールを備えている。
機能インスタンス12は、NW機能毎の手続きを含む。機能インスタンス12は、NW機能の処理ができるように、NW機能の処理において必要な手続き群及び変数群を記したソースコード、もしくはコンパイル後の実行ファイル等を、例えば、メモリやレジスタ等に展開したものである。ソースコードや実行ファイル等は、通信装置1fの内部に保持してもよいし、通信装置1fの外部にある他の装置に保持してもよい。他の装置がソースコードや実行ファイル等を保持する場合、処理順序制御部13は、1つまたは複数の手続き毎、機能インスタンス毎、または、その他の単位毎に、ソースコードや実行ファイル等を他の装置から読み出す。この場合、処理順序制御部13が他の装置とやりとりできるように、図22Bに示すように、通信装置1fが、他の装置から各種の情報を受信する受信部24および他の装置に対して各種の情報を送信する送信部25をさらに備えるようにする。
処理順序制御部13は、定められた順序に従って機能インスタンス12の手続きを呼び出し、パケットに対してNW機能に関する処理を実行する。パケットは、例えば、通信装置1fの内部に設けたパケット保持部に保持する。この場合、例えば、図22Cに示すように、図1と同様にパケット保持部134を処理順序制御部13内に設ける。あるいは、通信装置1fの外部に設けたパケット保持部でパケットを保持してもよい。この場合、通信装置1fは、当該パケット保持部とやりとりできるように、受信部24および送信部25をさらに備えるようにする。また、通信装置1fの内部にパケットを保持する構成において、例えば、通信装置1fが複数の処理順序制御部を備えている場合、これらの処理順序制御部13の外にパケット保持部134を設けてもよい。
通信装置1f内の処理順序制御部13がパケットを保持する場合、通信装置1fは、他の装置からパケットの入力を受けて、当該パケットをパケット保持部134に移し、処理順序制御部13が、パケット保持部134に保持されたパケットに対して指定された処理を行い、処理が終了した後に、パケットを廃棄するか、あるいは、他の装置にパケットを出力する。
通信装置1fの外部でパケットを保持する場合、または、通信装置1fが複数の処理順序制御部を備える場合、複数の装置(例えば、通信装置1fと他の装置)または複数の処理順序制御部が、パケット保持部134を共有するようにしてもよい。なお、複数の装置がパケット保持部134を共有する場合、複数の装置のいずれかの内部にパケット保持部134を設けてもよいし、複数の装置の外部にパケット保持部134を設けてもよい。処理順序制御部13は、他の装置または他の処理順序制御部からパケットの処理権限やパケットのアドレスの入力を受け、パケット保持部134に保持されているパケットに対して指定された処理を行う。当該処理が終了した後に、処理順序制御部13は、パケットを廃棄するか、あるいは、他の装置または他の処理順序制御部に対して、パケットの処理権限を授与し、もしくは、パケットのアドレスを出力する。
あるいは、前者と後者を組み合わせてもよい。前者は、単一のハードウェア上に単一の通信装置がある場合に適している。一方、後者は、単一のハードウェア上に複数の仮想的な装置がある場合や、単一の通信装置内に複数の処理順序制御部がある場合に適している。
処理順序制御部13は、実行順序ルールが示す実行順序に従い、次に実行すべき手続きを呼び出す。呼び出された手続きからの返り値がある場合、処理順序制御部13は、現在実行している手続き(すなわち、呼び出された手続き)とその返り値に応じて次に実行すべき手続きを呼び出す。換言すると、処理順序制御部13は、前回処理した機能インスタンスに属する手続きと、当該手続きの返り値とに応じて、これから実行すべき機能インスタンスに属する手続きを呼び出す。呼び出される手続きは、現在実行している手続きが属している機能インスタンスと同一の機能インスタンスに属している手続きであってもよいし、現在実行している手続きが属している機能インスタンスと異なる機能インスタンスに属している手続きであってもよい。
手続きは、1つまたは複数の装置を通して一意であってもよいし、1つまたは複数の機能インスタンス毎に一意であってもよい。また、手続きの呼び出しに際しては、1つまたは複数の装置を通して一意なID等を用いて手続きを呼び出してもよいし、機能インスタンスと手続きの組み合わせを用いて一意に手続きを呼び出してもよいし、機能インスタンスを呼び出し、その後に、機能インスタンス内の手続きを呼び出してもよい。なお、異なる機能インスタンスの手続きが同一の手続きであってもよい。異なる機能インスタンスの手続きが同一の手続きであり、かつ、機能インスタンスと手続きの組み合わせで一意に手続きを呼び出すときには、異なる機能インスタンスと手続きの組み合わせが同一の手続きを呼び出すものとして扱ってもよいし、同一の処理を行う異なる手続きを呼び出すものとして扱ってもよい。
実行順序ルールでは、例えば、現在実行している機能インスタンス12の手続きを識別する「実行手続きID」と、実行処理の「返り値」と、返り値がある場合に当該返り値に応じて次に実行すべき機能インスタンス12の手続きを識別する「次実行手続きID」とが対応付けられる。あるいは、実行順序ルールでは、「実行インスタンスID」と、「実行手続きID」と、「返り値」と、「次実行インスタンスID」と、「次実行手続きID」とが対応付けられていてもよい。あるいは、実行順序ルールでは、現在実行している機能インスタンスの手続きが展開されているメモリアドレスと、返り値と、次に実行すべき機能インスタンスの手続きが展開されているメモリアドレスとが対応づけられていてもよい。
なお、次に実行すべき機能インスタンス12の手続きは、返り値にかかわらず同一であってもよい。また、返り値が「Null」である場合や返り値がない場合、次に実行すべき機能インスタンス12の手続きは、次の順番の実行順序ルールによって識別される手続き等、現在実行している機能インスタンス12の手続きに応じた手続き(換言すると、これから実行すべき機能インスタンス12の手続きは、前回処理した機能インスタンスに属する手続きに応じた手続きや、予め定めた前回処理した機能インスタンスに属さない手続きに応じた手続きである)、または、最初の実行順序ルールによって識別される手続き等の所定の手続き、または、初期化処理や、パケットを破棄する処理や、一連の手続きを終了させる処理等の所定の処理を行う手続きであってもよい。
また、返り値が「0」である場合には、パケットを破棄するか、当該パケットを保持しているパケット保持部がパケットを保持したまま通信装置1f内の他の処理順序制御部や他の装置に処理権限やパケットのアドレスを授与してもよいし、他の装置へパケットを送出してもよい。
また、最初の実行順序ルールは、最初に実行する機能インスタンスの手続き、または、最初に実行する機能インスタンスと手続きを指定する。最初に実行する機能インスタンスの手続きを「実行手続きID」の値と「返り値」で指定する場合は、それらの値として「0」がそれぞれ設定されてもよい。最初に実行する機能インスタンスと手続きを「実行インスタンスID」の値と「実行手続きID」の値と「返り値」で指定する場合は、それらの値として「0」がそれぞれ設定されてもよい。最初に実行する機能インスタンスの手続きをメモリ上において当該手続きが展開されている位置(アドレス)を示す「メモリアドレス」により指定する場合には、当該メモリアドレスが実行順序ルールに設定されていてもよい。
次に、本変形例に係る通信装置1fの動作を説明する。図23は、本変形例に係る処理順序制御部13の動作を示すフローチャートである。
まず、処理順序制御部13は、現在実行している機能インスタンス12の手続きを識別する実行手続きIDを表す変数である変数CUR_METD_ID、及び、当該手続きの返り値を表す変数である変数CUR_RETに、それぞれ「0」を代入することにより、これらの変数の初期化を行う(図23、ステップS201)。ここで、実行手続きIDのみで一意に手続きが同定できず、現在実行している機能インスタンス12を識別する実行インスタンスIDを表す変数である変数CUR_INST_IDの値と併せて手続きを同定する場合、処理順序制御部13は、変数CUR_INST_IDにも「0」を代入する。
続いて、処理順序制御部13は、実行順序ルールを読み込む(図23、ステップS202)。次に、処理順序制御部13は、最初の実行順序ルールから、「実行手続きID」の値及び「返り値」が、それぞれ、変数CUR_METD_ID及び変数CUR_RETと一致する実行順序ルールを検索する(図23、ステップS203)。ここで、変数CUR_INST_IDの値と併せて手続きを同定する場合、処理順序制御部13は、「実行インスタンスID」の値、「実行手続きID」の値及び「返り値」が、それぞれ、変数CUR_INST_ID、変数CUR_METD_ID及び変数CUR_RETと一致する実行順序ルールを検索する。
例えば、最初の実行順序ルールにおける「実行手続きID」の値及び「返り値」はそれぞれ「0」であり、これらの値は、上記においてそれぞれ「0」を代入した変数CUR_METD_ID及び変数CUR_RETに一致する。ここで、変数CUR_INST_IDの値と併せて手続きを同定する場合、最初の実行順序ルールにおける「実行インスタンスID」の値、「実行手続きID」の値及び「返り値」は、それぞれ、変数CUR_INST_ID、変数CUR_METD_ID及び変数CUR_RETに一致する。これにより、処理順序制御部13は、一致した実行順序ルールにおける「次実行手続きID」の項目の値(例えば「1」)を変数NXT_METD_IDに代入する(図23、ステップS204)。これにより、変数NXT_METD_ID=1となる。ここで、変数CUR_INST_IDの値と併せて手続きを同定する場合、処理順序制御部13は、さらに、一致した実行順序ルールにおける「次実行インスタンスID」の項目の値(例えば「1」)を変数NXT_INST_IDに代入する。これにより、変数NXT_INST_ID=変数NXT_METD_ID=1となる。
ここでは、変数NXT_METD_ID、または、変数NXT_INST_IDおよび変数NXT_METD_IDを用いて、次に実行する手続きを表した。しかし、これらの変数を手続きが展開されている位置(アドレス)等に変換する処理は、処理順序制御部13で行ってもよいし、NW機能を実行する他の装置または他の処理順序制御部で行ってもよい。あるいは、変数と手続きが展開されている位置(アドレス)等を対応づけたテーブルを通信装置1f内または他の装置に設け、当該テーブルを用いて、間接的に、手続きが展開されている位置(アドレス)等を参照するようにしてもよい。あるいは、通信装置1fが他の装置に問い合わせを行い、他の装置は、変換を行い、変換により得られた位置(アドレス)を通信装置1fに送信し、通信装置1fが当該位置(アドレス)を受信するようにしてもよい。例えば、機能インスタンスを識別する情報と手続きを識別する情報の組み合わせで手続きを同定する場合、「機能インスタンスID」及び「機能インスタンス名」の少なくとも一つと、「手続きID」及び「手続き名」の少なくとも一つと、メモリ上において当該手続きが展開されている位置(アドレス)や当該手続きの参照先を示す「メモリアドレス」とが対応付けられたテーブル等を用いて、変換を行ってもよい。あるいは、手続きを識別する情報のみで手続きを一意に同定できる場合は、「手続きID」及び「手続き名」の少なくとも一つと、メモリ上において当該手続きが展開されている位置(アドレス)や当該手続きの参照先を示す「メモリアドレス」とが対応付けられたテーブル等を用いて、変換を行ってもよい。また、変数NXT_INST_IDや変数NXT_METD_IDを用いる代わりに、メモリ上において手続きが展開されている位置(アドレス)を示す「メモリアドレス」や当該手続きの参照先を直接示す情報を用いてもよい。
続いて、処理順序制御部13は、変数NXT_METD_IDと一致する「実行手続きID」により同定される手続き、または、変数NXT_INST_IDと変数NXT_METD_IDの組み合わせと一致する「実行インスタンスID」と「実行手続きID」の組み合わせにより同定される手続きを呼び出して実行する(図23、ステップS205)。正常な処理が行われた場合、機能インスタンス12の手続きは、処理を終了し、返り値として正常終了を表す値(「0」より大きな値)を処理順序制御部13へ出力する。ここで、正常終了を表す値は実行順序ルールに記載されている返り値であることが望ましい。なお、処理の対象となるパケットが存在しない場合、機能インスタンス12の手続きは、返り値として「−1」を出力してもよい。
次に、処理順序制御部13は、変数CUR_METD_IDに変数NXT_METD_IDの値を代入する(図23、ステップS206)。ここで、変数CUR_INST_IDの値と併せて手続きを同定する場合、処理順序制御部13は、変数CUR_INST_ID、変数CUR_METD_IDに、それぞれ、変数NXT_INST_ID、変数NXT_METD_IDを代入する。
処理順序制御部13は、処理を実行した機能インスタンス12の手続きから返り値を受け取ると、当該返り値を変数CUR_RETに代入する(図23、ステップS207)。返り値が「0」であった場合(図23、ステップS208・YES)、処理順序制御部13は、パケットを破棄し(図23、ステップS209)、制御が初期化の段階(図23、ステップS201)に戻る。これ以降の動作は、上述した動作と同様である。返り値が「0」以外であった場合(図23、ステップS208・NO)、処理順序制御部13は、再び実行順序ルールを読み込み(図23、ステップS202)、次に実行する機能インスタンスの手続きを示す情報を検索する(図23、ステップS203)。これ以降の動作は、上述した動作と同様である。
以上説明したように、本発明の各実施形態は、特に単一の汎用ハードウェアにおいて動作する複数のNW機能を組み合わせる場合における、遅延の低減を目的とする。本発明の各実施形態では、NW機能間でパケット転送をするのではなく、パケットのデータ自体は移動させずに、定められた順序に従って各NW機能を実行することによりNW機能の組み合わせを実現する。これにより、本発明の各実施形態では、NW機能間でのパケット転送が発生しないため、装置内で発生する遅延を抑制することができる。また、本発明の各実施形態は、小規模な機能を多数組み合わせる場合における遅延の抑制に対してより有効である。
上述した実施形態における通信装置1,1a〜1fの少なくとも一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disc)−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、様々な通信サービスに利用可能である。本発明によれば、装置内で発生する遅延を抑制することができる。
1・・・通信装置、11・・・機能ファイル保持部、12・・・機能インスタンス、13・・・処理順序制御部、14・・・パケット受信部、15・・・パケット送信部、131・・・実行順序情報管理部、132・・・インスタンス情報管理部、133・・・機能実行部、134・・・パケット保持部、135・・・外部連携部、136・・・インスタンス登録・削除部、137・・・実行順序変更部、138・・・連携情報保持部、139・・・公開変数情報保持部

Claims (9)

  1. 外部の装置から通信パケットを受信するパケット受信部と、
    前記通信パケットに対して所定の処理が実行された後の通信パケットを他の外部の装置へ送信するパケット送信部と、
    前記通信パケットの処理順序を制御する処理順序制御部と、
    を備え、
    前記処理順序制御部は、
    前記通信パケットを保持するパケット保持部と、
    通信機能における処理に必要な手続き群及び変数群を含む機能ファイルごとにそれぞれ実行形式に変換されメモリに展開されることにより生成される機能インスタンスと、
    前記機能インスタンスを識別する機能インスタンス識別子と、前記機能インスタンスに属する手続きを識別する手続き識別子と、前記機能インスタンスに属する前記手続きの前記メモリにおける位置を示すメモリアドレスと、を含むインスタンス情報を保持するインスタンス情報管理部と、
    前記機能インスタンス識別子、前記手続き識別子、及び前記手続きの返り値と、次に実行される機能インスタンスに属する手続きと、が対応付けられた実行順序情報を保持する実行順序情報管理部と、
    前記実行順序情報と前記インスタンス情報とに基づいて、前記機能インスタンスに属する前記手続きを呼び出し、前記パケット保持部に保持された前記通信パケットに対して前記機能インスタンスに属する前記手続きに基づく処理を実行し、前記機能インスタンスに属する前記手続きに基づく前記処理の前記返り値に応じて、前記次に実行される前記機能インスタンスに属する前記手続きに基づく処理を実行する機能実行部と、
    を備える通信装置。
  2. 前記処理順序制御部は、
    前記通信機能の追加、前記通信機能の変更、または前記通信機能の削除の要求を外部連携装置から取得する外部連携部と、
    前記外部連携装置からの実行順序変更要求に応じて、前記実行順序情報管理部に対して実行順序変更を要求する実行順序変更部と、
    前記通信機能の追加、前記通信機能の変更、または前記通信機能の削除の前記要求に応じて、前記機能インスタンスを前記メモリに展開し、または前記機能インスタンスを前記メモリから削除するインスタンス登録・削除部と、
    を備え、
    前記機能インスタンスは、
    前記機能インスタンスの初期化を行う開始手続きと、
    終了処理を行う終了手続きと、
    を有する請求項1に記載の通信装置。
  3. 前記機能インスタンスは、他の機能インスタンスに属する手続きからの情報取得要求、及び機能実行の要求に応じて処理を行う通知受付手続きを備える、
    請求項1に記載の通信装置。
  4. 前記処理順序制御部は、
    前記機能インスタンスに属する前記手続きからの要求に応じて、他の機能インスタンスの情報取得、及び機能実行を仲介する通知手続きと、
    前記通知手続きからの要求に応じて前記他の機能インスタンスの通知受付手続きに関する情報を出力する連携情報保持部を備える、
    請求項1に記載の通信装置。
  5. 前記実行順序情報管理部は、
    前記機能実行部が実行する前記手続きの位置を示すメモリアドレスをノードとした、実行順序に基づく木構造の情報を保持し、
    前記機能実行部は、
    前記手続きを呼び出す際に、前記実行順序情報管理部から取得した前記木構造の情報に基づき、前記返り値に応じて前記木構造の前記ノードを遷移することにより前記手続きを実行する
    請求項1に記載の通信装置。
  6. コンピュータによる通信方法であって、
    パケット受信部が、外部の装置から通信パケットを受信するパケット受信ステップと、
    パケット送信部が、前記通信パケットに対して所定の処理が実行された後の通信パケットを他の外部の装置へ送信するパケット送信ステップと、
    処理順序制御部が、前記通信パケットの処理順序を制御する処理順序制御ステップと、
    を有し、
    前記処理順序制御ステップは、
    パケット保持部が、前記通信パケットを保持するパケット保持ステップと、
    機能実行部が、通信機能における処理に必要な手続き群及び変数群を含む機能ファイルごとにそれぞれ実行形式に変換しメモリに展開することにより機能インスタンスを生成する機能インスタンス生成ステップと、
    インスタンス情報管理部が、前記機能インスタンスを識別する機能インスタンス識別子と、前記機能インスタンスに属する手続きを識別する手続き識別子と、前記機能インスタンスに属する前記手続きの前記メモリにおける位置を示すメモリアドレスと、を含むインスタンス情報を保持するインスタンス情報管理ステップと、
    実行順序情報管理部が、前記機能インスタンス識別子、前記手続き識別子、及び前記手続きの返り値と、次に実行される機能インスタンスに属する手続きと、が対応付けられた実行順序情報を保持する実行順序情報管理ステップと、
    前記機能実行部が、前記実行順序情報と前記インスタンス情報とに基づいて、前記機能インスタンスに属する前記手続きを呼び出し、前記パケット保持部に保持された前記通信パケットに対して前記機能インスタンスに属する前記手続きに基づく処理を実行し、前記機能インスタンスに属する前記手続きに基づく前記処理の前記返り値に応じて、前記次に実行される前記機能インスタンスに属する前記手続きに基づく処理を実行する機能実行ステップと、
    を有する通信方法。
  7. 通信における処理の機能インスタンスに属する手続きと、
    前回処理した機能インスタンスに属する手続きと、前記前回処理した機能インスタンスに属する前記手続きの返り値とに応じて、実行すべき機能インスタンスに属する手続きを呼び出す処理順序制御部と
    を備える通信装置。
  8. 前記返り値がない場合、前記処理順序制御部は、前記実行すべき機能インスタンスに属する前記手続きとして、前記前回処理した機能インスタンスに属する前記手続きに応じた手続き、所定の手続き、または、所定の処理を行う手続きを呼び出す
    請求項7に記載の通信装置。
  9. コンピュータによる通信方法であって、
    前回処理した、通信における処理の機能インスタンスに属する手続きと、前記前回処理した機能インスタンスに属する前記手続きの返り値とに応じて、実行すべき機能インスタンスに属する手続きを呼び出す処理順序制御ステップ
    を有する通信方法。
JP2018567457A 2017-02-08 2018-02-07 通信装置及び通信方法 Active JP6706354B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017021382 2017-02-08
JP2017021382 2017-02-08
PCT/JP2018/004163 WO2018147313A1 (ja) 2017-02-08 2018-02-07 通信装置及び通信方法

Publications (2)

Publication Number Publication Date
JPWO2018147313A1 true JPWO2018147313A1 (ja) 2019-07-04
JP6706354B2 JP6706354B2 (ja) 2020-06-03

Family

ID=63108355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018567457A Active JP6706354B2 (ja) 2017-02-08 2018-02-07 通信装置及び通信方法

Country Status (5)

Country Link
US (1) US11424959B2 (ja)
EP (1) EP3582457B1 (ja)
JP (1) JP6706354B2 (ja)
CN (1) CN110249594B (ja)
WO (1) WO2018147313A1 (ja)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272450B1 (en) * 1998-06-16 2001-08-07 Telefonaktiebolaget L M Ericsson (Publ) Cellular network traffic simulator (cents)
US7835933B2 (en) * 2002-04-08 2010-11-16 Hewlett-Packard Development Company, L.P. Method and system for event management in business processes
US20050066149A1 (en) * 2003-09-22 2005-03-24 Codito Technologies Private Limited Method and system for multithreaded processing using errands
KR20180067714A (ko) 2005-07-08 2018-06-20 가부시키가이샤 니콘 면 위치 검출 장치, 노광 장치 및 노광 방법
EP1750222A1 (en) * 2005-07-11 2007-02-07 International Business Machines Corporation Process instance serialization
JP2008066903A (ja) * 2006-09-06 2008-03-21 Nec Corp 不正侵入検知システム及びその方法並びにそれを用いた通信装置
CN101035110B (zh) * 2007-02-28 2011-01-12 华为技术有限公司 业务调用方法、系统及单元
CN102456185B (zh) * 2010-10-29 2014-06-11 金蝶软件(中国)有限公司 一种分布式工作流处理方法及分布式工作流引擎系统
KR20130051872A (ko) * 2011-11-10 2013-05-21 한국전자통신연구원 적응적인 복합 서비스 경로 관리 장치 및 그 방법
JP5970819B2 (ja) * 2012-01-10 2016-08-17 株式会社リコー ネットワーク制御装置
CN103812838A (zh) * 2012-11-13 2014-05-21 中国移动通信集团公司 一种服务调用方法和设备及系统
JP2014197774A (ja) * 2013-03-29 2014-10-16 ソニー株式会社 通信機器、通信システム、通信機器の制御方法およびプログラム
CN103346974B (zh) * 2013-06-03 2015-04-08 华为技术有限公司 一种业务流程的控制方法及网络设备
CN108353029B (zh) 2015-06-25 2021-02-26 Nec实验室欧洲有限公司 用于管理计算网络中的数据业务的方法和系统
US9929945B2 (en) * 2015-07-14 2018-03-27 Microsoft Technology Licensing, Llc Highly available service chains for network services
JP6634642B2 (ja) 2015-07-27 2020-01-22 インテル アイピー コーポレーション 仮想モバイル管理エンティティの管理
CN105068859B (zh) * 2015-07-29 2017-12-15 上海谐桐信息技术有限公司 一种跨虚拟机的多服务调用方法及系统
CN105100117B (zh) * 2015-08-28 2018-07-13 北京奇艺世纪科技有限公司 一种用于访问组合服务的方法及装置
CN106339222B (zh) * 2016-08-23 2019-09-17 联动优势电子商务有限公司 一种服务实现方法及装置

Also Published As

Publication number Publication date
WO2018147313A1 (ja) 2018-08-16
US11424959B2 (en) 2022-08-23
EP3582457B1 (en) 2022-11-09
CN110249594A (zh) 2019-09-17
EP3582457A4 (en) 2021-01-13
EP3582457A1 (en) 2019-12-18
US20200021464A1 (en) 2020-01-16
JP6706354B2 (ja) 2020-06-03
CN110249594B (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
US8671135B1 (en) Flexible mechanism for implementing the middleware of a data distribution system over multiple transport networks
US20160212048A1 (en) Openflow service chain data packet routing using tables
US11907749B2 (en) RDMA with virtual address space
US20080189709A1 (en) Resource tracking method and apparatus
CN109417567B (zh) 用于内容中心网络中的兴趣组的方法和系统
US8923291B2 (en) Communication apparatus and communication method
US20210399908A1 (en) Multicast routing
CN115426312B (zh) 一种大规模多模态网络中标识管理及优化转发方法和装置
CN109088957B (zh) Nat规则管理的方法、装置和设备
US10440523B2 (en) Communication control device, communication device, and computer program product for managing a group of devices
JP6706354B2 (ja) 通信装置及び通信方法
WO2014126094A1 (ja) 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム
WO2017170155A1 (ja) 通信システム、フロー制御装置、フロー処理装置及び制御方法
JP2019530267A (ja) 通信装置、システム、ロールバック方法及びプログラム
CN109845199B (zh) 合并网络设备架构中的读取请求
JP5395833B2 (ja) 仮想ネットワークシステム及び仮想通信制御方法
JP2017184195A (ja) 通信管理装置、通信管理方法及びプログラム
US20050281258A1 (en) Address translation program, program utilizing method, information processing device and readable-by-computer medium
JP7367873B2 (ja) データノード、データノード管理方法、および、データノード管理プログラム
JP6036302B2 (ja) 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
JP2016015672A (ja) ネットワーク制御装置、及びネットワーク設定システム
CN116708357B (zh) 基于ovs的虚拟化网络ip地址发现的方法及系统
JP6920628B2 (ja) 情報管理システム及び情報管理方法
WO2015146215A1 (ja) ネットワークアドレス変換装置、ネットワークアドレス変換システム、ネットワークアドレス変換方法、及びコンピュータ読み取り可能な記録媒体
Montanari et al. Network conscious pi-calculus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200210

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: 20200512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200515

R150 Certificate of patent or registration of utility model

Ref document number: 6706354

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150