(57)【要約】【課題】  データ処理装置の記憶回路容量の増加を抑制しつつ、ＦＰＧＡの種類とコア回路に適合した所望の回路構成を、効率的に提供することを目的とする。【解決手段】  データ処理機能をプログラムファイルにより設定できる複数のコア回路を備え、入力されたデータを前記コア回路で処理するＦＰＧＡと、プログラムファイルを格納する、ＦＰＧＡ回路ファイル記憶部と、コア回路にデータ処理機能を設定する制御部を有するデータ処理装置である。このデータ処理装置では、設定すべきデータ処理機能およびコア回路を特定する情報を含む要求を、ファイル管理サーバに送信し、要求に対応して受信したプログラムファイルに基づいてデータ処理機能を設定するとともに、受信したプログラムファイルを、ＦＰＧＡ回路ファイル記憶部に格納する。【選択図】図２
2017050786.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、ファイル管理サーバを含む通信システムであって、
前記各ノードは、
パケット処理機能をプログラムファイルにより設定できる、複数のパケット処理モジュールを備え、
設定すべき前記パケット処理機能および前記パケット処理モジュールを特定する情報を含む要求を、前記ファイル管理サーバに送信し、前記要求に対応して受信した情報に基づいて前記パケット処理機能を設定し、
前記ファイル管理サーバは、
前記パケット処理モジュールに設定可能な、異なる複数の前記プログラムファイルを保持する回路格納データベースを備え、
前記要求に基づいて前記プログラムファイルを選択し、選択した前記プログラムファイルを前記要求の送信元である前記ノードに送信する、
ことを特徴とする通信システム。
【請求項２】
前記通信システムは、前記複数のノードを管理する運用管理サーバを備え、
前記運用管理サーバは、
前記複数のノードのうち任意のノードに対し、設定すべき前記パケット処理機能を特定する情報を含むインストール指示を送信し、
前記ノードは、
前記複数のパケット処理モジュールの利用状況を管理する、ノード内リソース管理データベースを備え、
前記インストール指示に基づいて、前記ノード内リソース管理データベースを検索し、前記パケット処理機能を設定可能なパケット処理モジュールを選択し、該選択したパケット処理モジュール特定する情報を含む前記要求を、前記ファイル管理サーバに送信する、
請求項１記載の通信システム。
【請求項３】
前記複数のパケット処理モジュールは、
ＦＰＧＡの複数のコア回路であり、
前記パケット処理モジュールを特定する情報は、
前記ＦＰＧＡのデバイス種別および前記コア回路のコア番号である、
請求項２記載の通信システム。
【請求項４】
前記インストール指示は、
前記パケット処理機能を設定するコア回路の個数を指示する情報を含む、
請求項３記載の通信システム。
【請求項５】
前記インストール指示は、
前記ノードの起動時の、前記コア回路の設定を指定する情報を含む、
請求項３記載の通信システム。
【請求項６】
前記運用管理サーバは、
前記複数のノードのうち任意のノードに対し、設定を解除すべき前記パケット処理機能を特定する情報を含むアンインストール指示を送信し、
前記ノードは、
前記アンインストール指示に基づいて、前記ノード内リソース管理データベースを検索し、前記パケット処理機能を設定解除可能なパケット処理モジュールを選択し、該選択したパケット処理モジュールに対して、予め保持しているプログラムでブランク回路を上書きする、
請求項３記載の通信システム。
【請求項７】
前記アンインストール指示は、
前記パケット処理機能の設定を解除するコア回路の個数を指示する情報を含む、
請求項６記載の通信システム。
【請求項８】
パケット処理機能をプログラムファイルにより設定できる複数のコア回路を備え、ネットワークから受信するパケットを前記コア回路で処理するＦＰＧＡと、
前記プログラムファイルを格納する、ＦＰＧＡ回路ファイル記憶部と、
前記コア回路に前記パケット処理機能を設定する制御部を有し、
設定すべき前記パケット処理機能および前記コア回路を特定する情報を含む要求を、ファイル管理サーバに送信し、前記要求に対応して受信したプログラムファイルに基づいて前記パケット処理機能を設定するとともに、
前記受信したプログラムファイルを、前記ＦＰＧＡ回路ファイル記憶部に格納する、通信装置。
【請求項９】
前記ＦＰＧＡ回路ファイル記憶部は、
前記受信したプログラムファイルを格納するために、通信装置内のコア回路に対応付けて設けられた複数のコア用回路保持領域を備える、利用パケット処理コア回路記憶部と、
各コア回路の領域を確保するブランク回路を格納するために、通信装置内のコア回路に対応付けて設けられた複数のブランク回路保持領域を備える、初期設定コア回路記憶部を有する、
請求項８記載の通信装置。
【請求項１０】
前記ＦＰＧＡ回路ファイル記憶部は、
さらに、振分機能回路および多重機能回路の少なくとも一つのためのプログラムファイルを格納する、共通部回路記憶部を有する、
請求項９記載の通信装置。
【請求項１１】
前記要求は、前記コア回路を特定する情報として、
ＦＰＧＡのデバイス種を特定する情報と、当該ＦＰＧＡ内の前記コア回路のコア番号を特定する情報を含む、
請求項８記載の通信装置。
【請求項１２】
さらにノード内リソース管理データベースを備え、
該ノード内リソース管理データベースは、
前記コア回路を特定する情報に対応付けて、当該コア回路に設定されたパケット処理機能を利用状況として格納する、
請求項１１記載の通信装置。
【請求項１３】
データ処理機能をプログラムファイルにより設定できる複数のコア回路を備え、入力されたデータを前記コア回路で処理するＦＰＧＡと、
前記プログラムファイルを格納する、ＦＰＧＡ回路ファイル記憶部と、
前記コア回路に前記データ処理機能を設定する制御部を有し、
設定すべき前記データ処理機能および前記コア回路を特定する情報を含む要求を、ファイル管理サーバに送信し、前記要求に対応して受信したプログラムファイルに基づいて前記データ処理機能を設定するとともに、
前記受信したプログラムファイルを、前記ＦＰＧＡ回路ファイル記憶部に格納する、データ処理装置。
【請求項１４】
前記ＦＰＧＡ回路ファイル記憶部は、
前記受信したプログラムファイルを格納するために、通信装置内のコア回路に対応付けて設けられた複数のコア用回路保持領域を備える、利用データ処理コア回路記憶部と、
各コア回路の領域を確保するブランク回路を格納するために、通信装置内のコア回路に対応付けて設けられた複数のブランク回路保持領域を備える、初期設定コア回路記憶部を有する、
請求項１３記載のデータ処理装置。
【請求項１５】
前記要求は、前記コア回路を特定する情報として、
ＦＰＧＡのデバイス種を特定する情報と、当該ＦＰＧＡ内の前記コア回路のコア番号を特定する情報を含む、
請求項１３記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの機能及び性能を変更してデータを処理する技術に係る。特に、通信装置、通信システム、及び、通信方法の技術分野に適用するのに好適な技術である。
【背景技術】
【０００２】
近年、通信を介した事業やサービスの多様化により、様々な装置やサービスがネットワークで接続されるようになった。従来のキャリア網は、装置やサービス毎に専用のネットワークが構築されていた。しかし今後は、ネットワークの能力が向上するとともに、装置やサービスの種別が格段に増加するため、多様なサービスを統合して収容することが求められている。
【０００３】
複数の通信サービスを収容する場合、通信装置には、収容する各通信サービスの機能に応じてその処理機能を割り当てる。具体的には、通信装置は、到着したパケットの情報を解析して機能（プロトコル等）を識別し、各機能用に配備されたパケット処理回路にパケットを転送して処理をする。多様なサービスに適応するためには、パケット処理回路に種々の機能を持たせる必要がある。
【０００４】
このような技術に関連し、ＦＰＧＡ（field−programmable gate array）の適用が考えられる。周知のように、ＦＰＧＡは製造後に購入者や設計者が構成を設定できる集積回路であり、現場でプログラミングが可能である。ＦＰＧＡは、実現する機能などに応じてコンフィグレーションを行なうことにより、回路設定情報のすべてを書き換えたり、機能毎に一部の回路設定情報を書き換えたりすることができる。ＦＰＧＡについては、以下の先行技術がある。
【０００５】
特許文献１には、ＦＰＧＡ（Field−Programmable Gate Array）の変更できる回路の数、種類を変更できるリコンフィグレーション装置が開示される。
【０００６】
特許文献２には、集中管理装置に各ＦＰＧＡの種別に応じたコンフィグデータを格納しておき、各ノード内のＦＰＧＡの種別に対応するコンフィグデータを、該当ＦＰＧＡのノードに送信する技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−０７１６４９号公報
【特許文献２】特開２０１３−１０５４６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＦＰＧＡは、分割された複数の領域（「コア回路」という）を備え、各コア回路に異なった機能の回路を設定することができる。このとき、同じ種類（機能）の回路を同じ種類（同じ製品）のＦＰＧＡに設定する場合であっても、コア回路が異なると、設定するべきプログラムファイル（コンフィグデータ、回路データ、回路ファイル等ともいう）が異なる。
【０００９】
サービス種別が増加すると、ＦＰＧＡが持つコア回路数（ｎ）×サービス種別（ｓ）分のプログラムファイルを、ファイル記憶部に保持しておく必要がある。特許文献１の技術では、装置自身がプログラムファイルを保持するため、ｎ×ｓのプログラムファイルを記憶する必要があり、ＦＰＧＡのファイル記憶部が肥大化してしまう。さらに、サービスや機能の種類が増加すると、予め確保しておいたファイル記憶部の容量を消費してしまい、新規サービスのためのプログラムファイルを格納できなくなる問題がある。
【００１０】
特許文献２は、集中管理装置から各ノード内のＦＰＧＡの種別に対応するプログラムファイルを送信する。プログラムファイルを格納するだけの記憶容量を、集中管理装置に準備することは可能である。しかし、ＦＰＧＡの種類（製品種別）の数（Ｔ）が増えると、所定のノードの所定のコア回路に適用するプログラムファイルの数は、Ｔ×ｎ×ｓで増加する。このため、集中管理装置から、どのコア回路にどのデータを適用するかの制御が煩雑となる問題がある。
【００１１】
本発明は、前述の問題を鑑みてなされたものであり、ノードの記憶回路容量の増加を抑制しつつ、ＦＰＧＡの種類とコア回路に適合した所望の回路構成を、効率的に提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決する本発明の一側面は、複数のノードと、ファイル管理サーバを含む通信システムである。各ノードは、パケット処理機能をプログラムファイルにより設定できる、複数のパケット処理モジュールを備え、設定すべきパケット処理機能およびパケット処理モジュールを特定する情報を含む要求を、ファイル管理サーバに送信し、要求に対応して受信した情報に基づいてパケット処理機能を設定する。また、ファイル管理サーバは、パケット処理モジュールに設定可能な、異なる複数のプログラムファイルを保持する回路格納データベースを備え、要求に基づいてプログラムファイルを選択し、選択したプログラムファイルを前記要求の送信元である前記ノードに送信する。
【００１３】
本発明の具体的な構成例としては、通信システムは、複数のノードを管理する運用管理サーバを備える。運用管理サーバは、複数のノードのうち任意のノードに対し、設定すべきパケット処理機能を特定する情報を含むインストール指示を送信する。ノードは、複数のパケット処理モジュールの利用状況を管理する、ノード内リソース管理データベースを備え、インストール指示に基づいて、ノード内リソース管理データベースを検索し、パケット処理機能を設定可能なパケット処理モジュールを選択し、選択したパケット処理モジュール特定する情報を含む要求を、ファイル管理サーバに送信する。
【００１４】
本発明のさらに他の一側面は、パケット処理機能をプログラムファイルにより設定できる複数のコア回路を備え、ネットワークから受信するパケットをコア回路で処理するＦＰＧＡと、プログラムファイルを格納する、ＦＰＧＡ回路ファイル記憶部と、コア回路に前記パケット処理機能を設定する制御部を有する通信装置である。この通信装置は、設定すべきパケット処理機能およびコア回路を特定する情報を含む要求を、ファイル管理サーバに送信し、要求に対応して受信したプログラムファイルに基づいてパケット処理機能を設定するとともに、受信したプログラムファイルを、ＦＰＧＡ回路ファイル記憶部に格納する。
【００１５】
本発明のさらに他の一側面は、データ処理機能をプログラムファイルにより設定できる複数のコア回路を備え、入力されたデータを前記コア回路で処理するＦＰＧＡと、プログラムファイルを格納する、ＦＰＧＡ回路ファイル記憶部と、コア回路にデータ処理機能を設定する制御部を有するデータ処理装置である。このデータ処理装置では、設定すべきデータ処理機能およびコア回路を特定する情報を含む要求を、ファイル管理サーバに送信し、要求に対応して受信したプログラムファイルに基づいてデータ処理機能を設定するとともに、受信したプログラムファイルを、ＦＰＧＡ回路ファイル記憶部に格納する。
【発明の効果】
【００１６】
ノードの記憶回路容量の増加を抑制しつつ、ＦＰＧＡの種類とコア回路に適合した所望の回路構成を、効率的に提供することができる。また本発明は、通常のサーバで通信パケット以外のデータをＦＰＧＡで処理する場合も、記憶回路容量の増加を抑制しつつ、ＦＰＧＡの種類とコア回路に適合した所望の回路構成を、効率的に提供することができる。
【図面の簡単な説明】
【００１７】
【図１】実施例のシステムの全体構成図。
【図２】実施例のマルチサービスノードの一例を示す構成ブロック図。
【図３】実施例のマルチサービスノードの他の例を示す構成ブロック図。
【図４】実施例のマルチサービスノードのノード内リソース管理データベースの例を示す表図。
【図５】実施例のマルチサービスノードの復旧データベースの例を示す表図。
【図６】実施例のマルチサービスノードのＦＰＧＡ回路ファイル記憶部の例を示す構成図。
【図７】実施例のＦＰＧＡコア回路ファイル管理装置の例を示すブロック図。
【図８】実施例のネットワーク運用管理装置の例を示す構成ブロック図。
【図９】実施例の回路格納データベースの例を示す表図。
【図１０】実施例のリソース管理データベースの例を示す表図。
【図１１】実施例のユーザ管理データベースの例を示す表図。
【図１２】実施例の回路インストールシーケンスの例を示す流れ図。
【図１３】実施例の回路アンインストールシーケンスの例を示す流れ図。
【図１４】実施例の装置起動フローチャートの例を示す流れ図。
【発明を実施するための形態】
【００１８】
実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１９】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００２０】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【００２１】
実施例中、等価とみなせる要素が複数個存在する場合には、符号にハイフンと数字を付けて区別することがある。ただし、特に区別する必要がない場合は、煩雑さを避けるためにハイフンと数字を省略して記載することがある。
【００２２】
本実施例では計算や制御等の機能は、記憶装置に格納されたプログラムがプロセッサによって実行されることで、定められた処理を他のハードウェアと協働して行う例を示している。計算機などが実行するプログラムまたはその機能を実現する手段を、「機能」、「手段」、「部」、「モジュール」「ユニット」等と呼ぶ場合がある。
【実施例１】
【００２３】
以下では、本発明を通信システムに適用した実施例を説明する。
【００２４】
＜通信システム＞
図１は本発明が適用される通信システム（ネットワークシステム）の一例を示すブロック図である。図１の通信システムは、ユーザに、社会インフラ106−1、企業106−2、一般ユーザ106−3等の、多様な属性があることを想定する。これらの多様なユーザ106のための様々な通信サービスは、キャリアネットワーク105で収容する。キャリアネットワーク105において、流通するパケットはマルチサービスノード（通信装置）104−1〜104−ｎで処理が行われる、
マルチサービスノード104は、エッジノードやコアノード等異なる役割を持つ場合があるが、本実施例では特に区別をしない。各マルチサービスノード104は、限定するものではないが、この例では管理ネットワーク103を介して、ＦＰＧＡコア回路ファイル管理装置101と、ネットワーク運用管理装置102に接続されている。これらのネットワークは、有線のネットワークでもよいし、一部または全部を無線のネットワークとしてもよい。
【００２５】
管理ネットワーク103には、図示しないネットワークトポロジデータベースも接続され、ネットワーク運用管理装置102からアクセス可能となっている。公知であるため詳細は省略するが、ネットワークトポロジデータベースにはマルチサービスノード間の接続関係や接続する周辺装置が管理されており、物理的にどのようにネットワークが構成されているかを管理することができる。
【００２６】
＜マルチサービスノードの構成＞
図２は実施例のマルチサービスノードの一例を示す構成ブロック図である。マルチサービスノード104は、パケットを処理するとともに、他のノードへ転送する通信装置である。図２では、複数のラインカードを搭載する、シェルフ型マルチサービスノードの例を示す。
【００２７】
図２に全体を示すマルチサービスノード104は、スイッチＳＷを介して、複数のラインカードが接続されている。図２の例では、各１つのＦＰＧＡ204−1を搭載するラインカード201−1が２枚と、各２つのＦＰＧＡ204−2を搭載するラインカード201−2が２枚搭載されている。
【００２８】
一般的な通信装置で知られているように、各ラインカード201−1,201−2は、通信インタフェース205−1,205−2を備えている。キャリアネットワーク105から入力されたパケットは、通信インタフェース205を介してラインカード201に入力される。ラインカード201で処理され、出力されたパケットは、必要に応じてスイッチＳＷを介して他のラインカードに転送され、転送先のラインカードの通信インタフェース205を介して、キャリアネットワーク105に放出される。その他、公知のノード（通信装置）が通常備える構成については、詳細な説明を省略する。
【００２９】
ここで、例えば、ＦＰＧＡ204−1はＡ社製のTYPE01とし、ＦＰＧＡ204−2はＢ社製のTYPE02とする。ＦＰＧＡ204−1、204−2は、それぞれ振分機能回路（モジュール）206−1,206−2、多重機能回路（モジュール）207−1,207−2、コア回路209−1−1〜ｎ,209−2−1〜ｍ、を備えている。ＦＰＧＡは、プログラムファイルによって回路をインストールすることで、所望の回路機能を持たせることができる。この操作をコンフィグレーションともいう。ここで、ｎ、ｍは任意の自然数であり、コア回路の数を示している。振分機能回路206、多重機能回路207、コア回路209も、ＦＰＧＡにインストールされた回路で構成することができる。その他、公知のＦＰＧＡが通常備える構成については、詳細な説明を省略する。
【００３０】
振分機能回路206は、通信インタフェース205から入力パケットを受信した場合、パケット種別を識別し、パケット種別に基づいて適切なコア回路209にパケットのヘッダ情報を切り出して振分ける。パケット識別には、例えばパケットの内部を解析して振分け識別ＩＤを特定する方法がある。この振分け識別ＩＤには、例えば、ＭＡＣヘッダのＴｙｐｅ値を利用することができる。受信したパケットのＭＡＣヘッダのＴｙｐｅ値を参照し、同じＴｙｐｅ値ならば同じ処理をするパケットとして識別する。また、振分け識別ＩＤに、パケットを受信した物理ポートＩＤを利用することもできる。その場合、受信したパケットに当該パケットが到着した物理ポートの識別ＩＤが付与されている場合、物理ポートの識別ＩＤが同値ならば同じ処理をするパケットとして識別する。
【００３１】
また、振分時にパケットに優先順位をつけることも可能である。さらに、同一機能のコア回路が複数ある場合には、それらにパケットを並行して振分け、並列処理によって帯域を拡大することも可能である。振分機能回路206の振分け処理については、各種の公知の手法が適用可能である。
【００３２】
なお、振分機能回路206は、ヘッダ情報のみではなく、ペイロードまで情報を切り出してコア回路209に転送しても良い。また、振分機能回路206は、識別したパケット種別に関わらず、一定サイズのデータ量を切り出してコア回路209に転送してもよい。
【００３３】
コア回路209は、プログラムファイルによってパケット処理回路をインストールすることにより、任意のパケット処理を行うことが可能である。コア回路209は、振分機能回路206からヘッダ情報等を受信した場合、インストールされているパケット処理回路ごとに異なる処理を実施し、多重機能回路207にヘッダ情報等を転送する。
【００３４】
一例として、コア回路209にパケット処理回路としてＶＬＡＮ(Virtual Local Area Network)回路がインストールされている場合の動作を説明する。パケット処理回路は、データパケットを受信すると、受信データパケットのＶＬＡＮタグの中に含まれるＶＩＤ（ＶＬＡＮを識別するものであり、ＶＬＡＮ毎に設定される値が格納される）をデータパケットから取得して、ＶＩＤから当該データパケットを送信したユーザを特定する。その後、当該ユーザのデータパケットの転送先を特定し、さらには、データパケットを転送するＭＰＬＳ−ＴＰパス（ＷＡＮに設定されたデータ通信経路）を特定する。ＭＰＬＳ−ＴＰパスが特定できると、次にＭＰＬＳ−ＴＰパスでデータパケットを転送するためのＭＰＬＳ−ＴＰヘッダを生成してデータパケットをカプセル化する。
【００３５】
上記では、ＶＬＡＮ回路を例に説明したが、パケット処理としては、各種のアプリケーション、例えば、ファイアウォール、カプセル化、モバイル収容、ポリシング（Policing）やカラーリング（Coloring）等のトラヒック制御、EPC（Evolved Packet Core）、DPI（Deep Packet Inspection）等種々の機能のものがあり、いずれも適用可能である。
【００３６】
多重機能回路207は、コア回路209で特定のパケット処理が施されたデータパケットを受信し、データパケットを多重し、多重したデータパケットを、スイッチＳＷを経由して、通信インタフェース205に転送する。
【００３７】
ラインカード201−1、201−2はまた、ラインカード制御機能部（ラインカード制御モジュール）202−1,202−2と、ＦＰＧＡ回路ファイル記憶部203−1,203−2を備える。ラインカード制御機能部202は、ＦＰＧＡ204のコア回路209への、パケット処理回路のインストールとアンインストールを制御する。ラインカード制御機能部202は、所定の命令を実行するための、一般的なマイクロコンピュータで構成することができる。ＦＰＧＡ回路ファイル記憶部203は、フラッシュメモリやハードディスクドライブなどの、不揮発性の記憶装置で構成することが望ましい。
【００３８】
ＦＰＧＡ回路ファイル記憶部203は、コア回路209へインストールするパケット処理回路のプログラムファイルを格納する。ＦＰＧＡ回路ファイル記憶部203については、後に図６で詳細に説明する。
【００３９】
装置制御機能部（装置制御モジュール）220は、ノード内リソース管理データベース230、復旧データベース240を備える。装置制御機能部220は、図示しないインタフェースを内蔵し、管理ネットワーク103に接続されている。装置制御機能部220は、所定の命令を実行するための、一般的なマイクロコンピュータで構成することができる。ノード内リソース管理データベース230、復旧データベース240は、フラッシュメモリやハードディスクドライブなどの、不揮発性の記憶装置で構成することが望ましい。データベースの内容については、後に図４と図５で詳細に説明する。
【００４０】
図３は実施例のマルチサービスノードの他の一例を示す構成ブロック図である。ここでは、単一ＦＰＧＡ搭載のボックス型マルチサービスノードの例を示す。図２の構成と同じ構成は同じ符号で示し、説明は省略する。図３の例では、ノードは１枚のラインカード201を備えている。図３ではラインカード201が一枚しかないので、図２のスイッチＳＷは省略されている。また、図２では装置全体で共用していた、ノード内リソース管理データベース230、復旧データベース240を、ラインカード制御機能部202内に備える。ラインカード制御機能部202は、図示しないインタフェースを内蔵し、管理ネットワーク103に接続されている。
【００４１】
＜マルチサービスノードが持つデータ＞
図４は、実施例のマルチサービスノード104の、ノード内リソース管理データベース230の例を示すテーブルである。図４の例は、図２のシェルフ型マルチサービスノードに適用する例である。ノード内リソース管理データベース230は、ノードに属するＦＰＧＡの各コア回路を管理するためのデータを記憶するものである。
【００４２】
図４のテーブルでは、ノード内に収容するラインカードの番号を示すエントリ401を有する。各ラインカード201の利用状況は、利用状況データ402で示される。「有効」はラインカードが起動中であり、「空き」は、カードスロットにラインカードが搭載されていないか、電源が入っていないなど稼働していない（カードが認識されていない）状態を示す。
【００４３】
デバイス番号403は、各ラインカード201が有するＦＰＧＡ204を識別するものである。図２のマルチサービスノードの場合、ラインカード201−1はＦＰＧＡを１個搭載し、ラインカード201−2はＦＰＧＡを２個搭載しているが、例えば、ラインカード番号１はラインカード201−1を示し、ラインカード番号２はラインカード201−2を示す。すなわち、各ラインカード番号に対応して、当該ラインカードが搭載しているＦＰＧＡの個数分、デバイス番号403を持つ。
【００４４】
ラインカード番号401、利用状況402、デバイス番号403、デバイス種404、コア番号405は、ラインカード201にＦＰＧＡ204を設定する際に、オペレータが入力することができる。利用状況406、復旧モード230は、後述のように装置の制御により記録することができる。
【００４５】
デバイス種404は、各ＦＰＧＡ204の製造者、型式等を特定する。同一機能のパケット処理回路であっても、製造者、型式が異なると、インストールすべきプログラムファイルは異なる。コア番号405は、各ＦＰＧＡ204が内蔵するコア回路209を識別する。ＦＰＧＡが備える複数のコア回路209−1−1〜n,209−2−1〜mには、先述のように、同じ回路構成を設定する場合でも、コア回路毎に異なるプログラムファイルが必要となる。利用状況406は、各コア回路209にどのようなパケット処理回路がインストールされているかを示す。復旧モード407は、復旧時に設定すべき状態を規定している。「現状態」は、復旧時にＦＰＧＡ回路ファイル記憶部203（図６にて後述）の、利用パケット処理コア回路記憶部603の該当ファイルを書き込むことを意味する。「初期状態」は、復旧時にＦＰＧＡ回路ファイル記憶部203の、初期設定コア回路記憶部602の該当ファイルを書き込むことを意味する。
【００４６】
図４のテーブルは、図３のボックス型マルチサービスノードにも同様に適用可能である。ボックス型マルチサービスノードに適用する場合は、ラインカードとＦＰＧＡが１つしかないため、ラインカード番号401、その利用状況402、デバイス番号403のデータは不要となる。
【００４７】
以上のように、本実施例のマルチサービスノード104は、自ノードのＦＰＧＡの状況を管理する機能を有する。
【００４８】
図５は、実施例のマルチサービスノードの、復旧データベース240の例を示すテーブルである。復旧データベース240は、電源起動時の状況と、それに対応する起動パターンの対応を示している。
【００４９】
電源起動モード501は、復旧時の状況の種別を示している。例えば、オペレータによる指示に基づく起動、電源遮断など予期せぬ停止からの再起動、装置の故障などを検出した結果停止した場合の再起動などである。
【００５０】
復旧パターン502は、各電源軌道モード501に対応して、復旧手順を示している。例えば、ノードリソース管理データベースに従う復旧、ノード内リソース管理データベース230の復旧モードに関係なく、「利用状況」にあるパケット処理回路をインストールして起動、ノードリソース管理データベース230の復旧モードに関係なく、ブランク回路をインストールして起動、などである。回路のインストール処理については、後に図１４で詳細に説明する。
【００５１】
例えば、オペレータによる指示に基づく起動の場合には、予めノード内リソース管理データベース230に格納した復旧モード407により復旧する。また、電源遮断など予期せぬ停止からの再起動の場合には、迅速に元の状態に戻すため、ノード内リソース管理データベース230の利用状況406の示す状態に復旧する。また、温度異常など、装置の故障によるものと思われる状態からの復旧については、動作を継続することで異常が継続する可能性があるため、ブランク回路をインストールして初期状態に復旧する。
【００５２】
これらの電源起動モード501、復旧パターン502は予め定義して、マルチサービスノード104の復旧データベース240に格納しておく。また、適宜ＦＰＧＡコア回路ファイル管理装置101から、各マルチサービスノード104に配信し、復旧データベース240に格納するようにしてもよい。
【００５３】
図６は、実施例のマルチサービスノードの、ＦＰＧＡ回路ファイル記憶部203が保持するデータの例を示す構成図である。ＦＰＧＡ回路ファイル記憶部203は、ノードあるいはラインカードのＦＰＧＡ204に、インストールする回路のプログラムファイルを記憶するものである。ＦＰＧＡ回路ファイル記憶部203は、共通部回路記憶部601、初期設定コア回路記憶部602、利用パケット処理コア回路記憶部603を備える。
【００５４】
共通部回路記憶部601は、いずれのノードあるいはラインカードも使用する共通回路のためのファイルを記憶する。共通回路とは、例えば、振分機能回路ファイル6011、多重機能回路ファイル6012等である。
【００５５】
初期設定コア回路記憶部602は、コア回路209の初期設定用のファイルを記憶する。初期設定用のファイルは、各コア回路の領域を確保するためのブランク（ダミー）回路である。図６の例では、ブランク回路601−1〜601−ｎが、コア回路209の個数分準備される。ここで、ｎは初期設定コア回路記憶部602が管轄するコア回路209の個数である。
【００５６】
共通回路やブランク回路は、内容が最初から定まっているため、共通部回路記憶部601と初期設定コア回路記憶部602は、マルチサービスノード立ち上げ時に格納しておけばよい。また、必要に応じて、管理ネットワーク103を介して書き換えることも可能である。
【００５７】
利用パケット処理コア回路記憶部603には、各コア回路209で使用するパケット処理回路のプログラムファイルが格納される。このために、コア用回路保持領域603−1〜603−ｎが、コア回路の個数分準備される。各コア回路で使用するパケット処理回路は、状況により任意の回路を使用する。このため、後に図１２で説明するシーケンスにより、利用パケット処理コア回路記憶部603の内容は新規登録あるいは更新される。
【００５８】
＜ＦＰＧＡコア回路ファイル管理装置の構成＞
図７は、実施例のＦＰＧＡコア回路ファイル管理装置101の例を示すブロック図である。ＦＰＧＡコア回路ファイル管理装置101は、各マルチサービスノード104のＦＰＧＡのコア回路209にインストールされるパケット処理回路のプログラムファイルを管理、配信するものである。ＦＰＧＡコア回路ファイル管理装置101は、入力装置、出力装置、処理装置、および記憶装置を有する一般的なサーバの構成とすることができる。入力装置、出力装置としては、オペレータが操作するための、キーボードやモニタを含んでもよい。
【００５９】
ＦＰＧＡコア回路ファイル管理装置101は、回路格納データベース701、回路ダウンロード部（回路ダウンロードモジュール）702、通信装置制御インタフェース703を備える。回路格納データベース701は記憶装置の一部として構成される。回路ダウンロード部702は、記憶装置に格納されたプログラムが、処理装置等のハードウェアを制御することによって構成される。通信装置制御インタフェース703は入力装置、出力装置の一部として構成され、管理ネットワーク103と接続される。
【００６０】
回路格納データベース701の詳細については、後に図９で説明する。回路ダウンロード部702は、回路格納データベース701から所望のプログラムファイルをダウンロードする。通信装置制御インタフェース703は、ダウンロードしたプログラムファイルを、管理ネットワーク103を介して、所望のマルチサービスノード104に配信する。
【００６１】
＜ネットワーク運用管理装置の構成＞
図８は、実施例のネットワーク運用管理装置102の例を示す構成ブロック図である。ネットワーク運用管理装置102は、ネットワーク全体のリソースとユーザを管理するとともに、各マルチサービスノード104を制御する。
【００６２】
ネットワーク運用管理装置102は、入力装置、出力装置、処理装置、および記憶装置を有する一般的なサーバの構成とすることができる。入力装置、出力装置としては、オペレータが操作するための、キーボードやモニタを含んでもよい。
【００６３】
ネットワーク運用管理装置102は、全体リソース管理データベース801、ユーザ管理データベース802、システム管理部803、通信装置制御インタフェース804を備える。全体リソース管理データベース801とユーザ管理データベース802は、記憶装置の一部として構成される。システム管理部（システム管理モジュール）803は記憶装置に格納されたプログラムが、処理装置等のハードウェアを制御することによって構成される。通信装置制御インタフェース804は入力装置、出力装置の一部として構成される。
【００６４】
全体リソース管理データベース801と、ユーザ管理データベース802については、後に図１０で説明する。システム管理部803は、ネットワーク運用管理装置102全体を制御し、マルチサービスノード104への制御コマンドを生成する。通信装置制御インタフェース804は、システム管理部803からの制御コマンドを、管理ネットワーク103を介して、所望のマルチサービスノード104に配信する。
【００６５】
＜ＦＰＧＡコア回路ファイル管理装置が持つデータ＞
図９は、実施例のＦＰＧＡコア回路ファイル管理装置101が備える、回路格納データベース701の例を示すテーブルである。回路格納データベース701は、ネットワークシステムで使用が想定されるアプリケーションをコア回路209にインストールするための、プログラムファイルを分類して格納するものである。理想的には、使用が想定される全ての種類のＦＰＧＡの、全てのコア回路に対して、適用可能なパケット処理回路を網羅している。回路格納データベース701は、ネットワークシステム管理者が構築しておくものとする。
【００６６】
回路格納データベース701には、パケット処理回路のアプリケーション種別901に対応して、デバイス種別902、当該デバイスのコア番号903、および、当該コア番号を持つコア回路に適用すべきプログラムファイル904が格納されている。
【００６７】
なお、デバイス種別、コア番号とアプリケーション種別の組合せによっては、デバイスのスペック等の理由により、使用できるプログラムファイルが存在しない場合も考えられる。その場合は、図９に示した回路格納データベース701で、デバイス種別、コア番号に対応して、ファイル904として「対応無(n/a)」等の情報を格納しておけばよい。
【００６８】
＜ネットワーク運用管理装置が持つデータ＞
図１０は、実施例のネットワーク運用管理装置102が備える、全体リソース管理データベース801の例を示すテーブルである。全体リソース管理データベース801は、システムに属する各マルチサービスノード104が有する、コア回路の使用状況を管理する。ネットワーク運用管理装置102のデータは、各マルチサービスノード104から送信される情報により、適宜更新される。
【００６９】
ノードＩＤ1001は、各マルチサービスノード104を一意に特定する識別子である。合計コア数1002は、各マルチサービスノード104に属するコア回路の数を示す。アプリケーション1003は、各マルチサービスノード104にインストールされているパケット処理回路の種類を示すものである。リソース量1004は、各アプリケーションに対して、リソース量（コア回路数）をどれだけ使用しているかを示す。また、復旧モード1005は、各アプリケーションに対してどの復旧モードが設定されているかを示す。
【００７０】
図１１は、実施例のネットワーク運用管理装置102が備える、ユーザ管理データベース802の例を示すテーブルである。ユーザ管理データベース802は、ユーザ106毎に、どのマルチサービスノード104に収容されている、どのアプリケーションを使用しているかを管理する。ユーザＩＤ1101は、各ユーザ106を一意に特定する識別子である。利用アプリ1102は、ユーザが使用しているアプリケーションの種別を示す。収容ノード1103は、当該アプリがどのマルチサービスノード104に収容されているかを示す。
【００７１】
＜インストール処理＞
以下に、本実施例において、マルチサービスノード104のＦＰＧＡのコア回路に、任意のパケット処理回路をインストールする処理の流れを説明する。
【００７２】
図１２は、実施例の回路インストールシーケンスの例を示す流れ図である。
【００７３】
まず、ネットワーク運用管理装置102のシステム管理部803は、所定のマルチサービスノード104に対して、所定のパケット処理回路のインストールを指示する（ステップS1201）。この指示は、ネットワーク運用管理装置102の通信装置制御インタフェース804から、管理ネットワーク103を介して、マルチサービスノード104に送信される。マルチサービスノード104は、所定のインタフェースを介して指示を受信する。以下、ネットワーク運用管理装置102からマルチサービスノード104への指示の送信は同様に行われる。
【００７４】
回路インストール指示が含む情報の例としては、「アプリケーション種別」、「使用コア回路個数」、「復旧モード」等がある。アプリケーション種別は、インストールすべきパケット処理回路の種別を示す。使用コア回路個数は、当該パケット回路をいくつのコア回路にインストールするかを示す。
【００７５】
同じパケット回路を複数のコア回路にインストールし、振分回路でパケットを振分け、並列処理することにより、処理速度が向上し帯域が拡大される。例えば、ここで、一つのパケット処理回路のパケット処理性能が10Gbit／secであり、３個のコア回路に同一のパケット処理機能（ここではＭＰＬＳ−ＴＰプロトコル処理機能とする）がインストールされたとする。このとき、並列処理によりマルチコアノードは30Gbit／secのＭＰＬＳ−ＴＰデータのパケット処理性能を有することになる。
【００７６】
復旧モードは、再起動時のコア回路の状態を定義する。復旧モードは例えば、電源遮断後の復旧時に遮断直前の状態に戻す「現状態」とブランクの状態に戻す「初期状態」がある。
【００７７】
パケット処理回路のインストールの指示は、例えば、マルチサービスノード104に新たにパケット処理回路をインストールする必要がある場合に、オペレータがネットワーク運用管理装置102に命令を入力することによって、行うことができる。マルチサービスノード104に新たにパケット処理回路をインストールする必要がある場合とは、例えば、新規のユーザ106が追加された場合、既存のユーザ106が新規のサービスを要求した場合、新規のマルチサービスノード104が追加された場合、マルチサービスノード104の帯域や機能を拡大する場合等、がある。
【００７８】
インストールを指示する場合、対象のマルチサービスノード104に空きコアが存在することが望ましい。空きコアの状態は、全体リソース管理データベース801（図１０）を参照し、合計コア数1002とリソース量1004の差から確認することができる。このとき、図１０に示される、全体リソース管理データベース801の内容をオペレータに表示して、オペレータにインストールする対象ノードID1001を選択させるように構成することもできる。
【００７９】
インストールを指示するマルチサービスノード104は、アプリケーションを使用するユーザ106が使用する通信経路に設定する必要がある。設定には、ネットワークトポロジデータベースの情報を参考にすることができる。また、全体リソース管理データベース801(図１０）を参照して、空いているコア回路209がないノードを選択肢から外すことも可能である。
【００８０】
以降の説明では、図２の構成のマルチサービスノードを想定して説明する。指示を受信したマルチサービスノード104は、ラインカード制御機能部202または装置制御機能部220が、ソフトウェアの制御により処理を行うことを想定するが、専用のハードウェアによって処理を行ってもよい。
【００８１】
なお、これらの処理は、マルチサービスノード内部あるいは外部に処理装置が複数ある場合には、分担して行うこともできる。例えば、ラインカード制御機能部202と装置制御機能部220がある場合には、ラインカード制御機能部202が行う処理の任意の部分を、装置制御機能部220が実行してもよい。また、その逆も可能である。以下の説明でも同様である。また、図３の構成のように、装置制御機能部220が存在しない場合は、ラインカード制御機能部202が制御を行うことはいうまでもない。
【００８２】
指示を受信したマルチサービスノード104では、ラインカード制御機能部202が、リソース管理データベース230（図４）を検索し、利用可能なコア回路を確保する（ステップS1202）。
【００８３】
例えば、図４のリソース管理データベース230の例では、利用可能なコア回路として、ラインカード番号２のデバイス番号１のコア番号１および２と、ラインカード番号２のデバイス番号２のコア番号１および２の合計４個が、空いていることが分かる。ここで、例えば回路インストール指示が、回路コア個数として２個を指定している場合、上記４個のなかから任意の、あるいは所定条件（例えば番号の降順）に従った２個を確保する。なお、要求されたコア回路の個数分の空きがない場合は、エラー信号をネットワーク運用管理装置102に返信すればよい。
【００８４】
次に、マルチサービスノード104の装置制御機能部220は、ＦＰＧＡコア回路ファイル管理装置101に対して、コア回路要求を送信する（ステップS1203）。この要求は、マルチサービスノード104の所定のインタフェースから、管理ネットワーク103を介して、ＦＰＧＡコア回路ファイル管理装置101に送信される。以下、マルチサービスノード104からＦＰＧＡコア回路ファイル管理装置101への送信は同様に行われる。
【００８５】
コア回路要求が含む情報の例としては、ステップS1201の回路インストール指示が含んでいた「アプリケーション種別」、ステップS1202で確保した「デバイス種別」、「コア番号」等である。例えば、ステップS1202で確保した「デバイス種別」が、図４のリソース管理データベース230の例で、Ｂ社製のTYPE02、「コア番号」が１番と２番であれば、これらの情報をＦＰＧＡコア回路ファイル管理装置101に送信する。
【００８６】
コア回路要求を受信した、ＦＰＧＡコア回路ファイル管理装置101は、回路格納データベース701（図９）を検索し、コア回路要求に該当するプログラムファイルを回路ダウンロード部702で取得する（ステップS1204)。例えば、コア回路要求が「アプリケーション種別」としてEPC、「デバイス種別」としてＢ社製のTYPE02、「コア番号」として１番と２番を指定している場合、図９のファイル「EPC_BT2_1」と「EPC_BT2_2」の２つをダウンロードする。
【００８７】
なお、要求されたコア回路要求に該当するプログラムファイルが見つからない場合には、エラー信号を、マルチコアノード104経由あるいは直接、ネットワーク運用管理装置102に返信すればよい。
【００８８】
ステップS1204で、回路格納データベース701からダウンロードされたプログラムファイルは、通信装置制御インタフェース703から管理ネットワーク103を介して、マルチサービスノード104に送信される(ステップS1205)。以下、ＦＰＧＡコア回路ファイル管理装置101からマルチサービスノード104への送信は同様に行われる。
【００８９】
プログラムファイルを受信したマルチサービスノード104は、ラインカード制御機能部202の制御により、確保した空きコア回路に受信したプログラムファイルをインストールする（ステップS1206)。上記のように、図４のリソース管理データベース230の、Ｂ社製のTYPE02、「コア番号」１番と２番が確保されており、ファイル「EPC_BT2_1」と「EPC_BT2_2」を受信した場合には、EPCのアプリケーション機能を持つパケット処理回路が、これらのコア回路にインストールされる。インストールの方式自体は、公知のＦＰＧＡと同様でよい。
【００９０】
また、ラインカード制御機能部202は、受信したプログラムファイルをＦＰＧＡ回路ファイル記憶部203（図６）に格納する。ＦＰＧＡ回路ファイル記憶部203の、利用パケット処理コア回路記憶部603には、当該ラインカード201内のコア回路209の数の領域が確保されている。そこで、受信したプログラムファイルは、利用パケット処理コア回路記憶部603に格納される。このとき、利用パケット処理コア回路記憶部603の各領域は、各コア回路に対応付けて管理されていることが望ましい。
【００９１】
また、ラインカード制御機能部202、または、装置制御機能部220は、ノード内リソース管理データベース230（図４）の更新を行う。ノード内リソース管理データベース230では、新たにパケット処理回路をインストールしたコア回路の状況を、「空き」から現在の状況に変更する。例えば、図４のノード内リソース管理データベース230の、Ｂ社製のTYPE02、「コア番号」１番と２番に、EPCのアプリケーションであるファイル「EPC_BT2_1」と「EPC_BT2_2」がインストールされた場合、図４の該当項目の利用状況406が「空き」から「EPC」に変更される。また、回路インストール指示に従って、復旧モード407が、「初期状態」から「現状態」に変更される。
【００９２】
パケット処理回路のコア回路へのインストールが完了した後、マルチサービスノード104のラインカード制御機能部202または装置制御機能部220は、管理ネットワーク103を経由してインストール完了報告をネットワーク運用管理装置102へ送信する（ステップS1207)。
【００９３】
ネットワーク運用管理装置102は、マルチサービスノード104のパラメータを設定する等、サービスを収容するための公知の処理を行う（ステップS1208)。
【００９４】
また、ネットワーク運用管理装置102は、全体リソース管理データベース801、ユーザ管理データベース802の更新を行う。全体リソース管理データベース801では、新規にパケット処理回路をインストールしたマルチサービスノード104のノードID1001に対し、アプリケーション1003、リソース量1004、復旧モード1005の新規登録または更新を行う。ユーザ管理データベース802においても、新規のアプリケーションが適用されるユーザについて、該当するユーザID1101、利用アプリケーション1102、収容ノード1103の新規登録または更新を行う。その後、サービスの収容を開始する（ステップS1209)。
【００９５】
以上の処理によると、マルチサービスノード104は、自ノードで必要なプログラムファイルのみを格納することができるため、メモリ容量の節約が可能となる。また、マルチサービスノード104は、自ノードで必要なプログラムファイルを、ＦＰＧＡコア回路ファイル管理装置101に要求することができる。このため、マルチサービスノード104は、所望の機能を有するパケット処理回路を、容易に入手およびインストールすることが可能となり、プログラムファイルの管理の複雑さを回避することができる。
【００９６】
＜アンインストール処理＞
以下に、本実施例において、マルチサービスノード104のＦＰＧＡのコア回路の、任意のパケット処理回路をアンインストールする処理の流れを説明する。
【００９７】
図１３は、実施例の回路アンインストールシーケンスの例を示す流れ図である。まず、ネットワーク運用管理装置102のシステム管理部803は、所定のマルチサービスノード104に対して、所定のパケット処理回路のアンインストールを指示する（ステップS1301）。
【００９８】
回路アンインストール指示が含む情報の例としては、「アプリケーション種別」、「削除コア回路個数」、「復旧モード」等がある。アプリケーション種別は、アンインストールすべきパケット処理回路の種別を示す。削除コア回路個数は、当該パケット回路をいくつのコア回路からアンインストールするかを示す。同じパケット回路を複数のコア回路にインストールしてある場合、振分回路でパケットを振分けることにより帯域が拡大されるが、その一部をアンインストールすると、帯域を変更（縮小）することができる。なお、「復旧モード」は指定せず、デフォルトで「初期状態」にすることにしてもよい。
【００９９】
パケット処理回路のアンインストールの指示は、例えば、マルチサービスノード104のパケット処理回路をアンインストールする必要がある場合に、オペレータがネットワーク運用管理装置102に命令を入力することによって、行うことができる。マルチサービスノード104をアンインストールする必要がある場合とは、例えば、ユーザ106が削除された場合、既存のユーザ106へのサービスを停止した場合、マルチサービスノード104が廃棄された場合、マルチサービスノード104の帯域や機能を縮減する場合等、がある。
【０１００】
アンインストールを指示するマルチサービスノード104は、全体リソース管理データベース801（図１０）を参照して、所定のアプリケーション1003が収容されているノードID1001に対応する、マルチサービスノード104から選択することができる。このとき、図１０に示される、全体リソース管理データベース801の内容をオペレータに表示して、オペレータにアンインストールするアプリケーション1003や、対象ノードID1001を選択させるように構成することが望ましい。
【０１０１】
指示を受信したマルチサービスノード104は、装置制御機能部220またはラインカード制御機能部202で処理を実行する。ラインカード制御機能部202等は、リソース管理データベース230（図４）を検索し、指定されたアプリケーションがインストールしてあるコアを確認する（ステップS1302)。指定されたアプリケーションがインストールしてあるコアが指定個数確認できなかった場合、マルチサービスノード104は、ネットワーク運用管理装置102に「該当なし」の回答を行うように構成してもよい。
【０１０２】
指定されたアプリケーションがインストールしてあるコアが確認できた場合には、ラインカード制御機能部202は、ＦＰＧＡ回路ファイル記憶部203（図６）からブランク回路602を読出し、指定されたアプリケーションが書かれているコア回路に上書きする（ステップS1303)。このとき、同じＦＰＧＡ製品でも、コア番号ごとに適用されるブランク回路が異なるので、対応するブランク回路を使用する。このブランク回路の上書きにより、後にパケット処理回路をインストールするための領域が確保される。
【０１０３】
その後、リソース管理データベース230（図４）を更新し、コア回路の利用状況を最新の状態に更新する（ステップ1304）。
【０１０４】
具体例により上記の処理を説明する。図４のリソース管理データベース230の状態で、ステップS1301で、回路アンインストール指示が「アプリケーション種別」として「モバイル」を、「削除コア回路個数」として「２個」を指定したとする。この場合、ステップS1302で、デバイス＃１のコア番号１と２に「モバイル」がインストールされていることが確認できる。そこで、ステップS1303で、ＦＰＧＡ回路ファイル記憶部203の初期設定コア回路記憶部602から、デバイス＃１のコア番号１と２に対応するブランク回路を読み出し、当該コア回路に上書きする。その後、ステップS1304で、図４のリソース管理データベース230で、デバイス＃１のコア番号１と２に対応する利用状況406を「モバイル」から「空き」に変更し、復旧モード407を「現状態」から「初期状態」に変更する。
【０１０５】
ステップS1304完了後、マルチサービスノード104は、アンインストール完了報告をネットワーク運用管理装置102に送信する（ステップS1305)。アンインストール完了報告を受信したネットワーク運用管理装置102は、全体リソース管理データベース801（図１０）、ユーザ管理データベース802（図１１）の更新を行う。全体リソース管理データベース801では、パケット処理回路をアンインストールしたマルチサービスノード104のノードID1001に対し、アプリケーション1003、リソース量1004、復旧モード1005の削除または更新を行う。ユーザ管理データベース802においても、アプリケーションがアンインストールされるユーザについては、該当するユーザID1101、利用アプリケーション1102、収容ノード1103の削除または更新を行う。また、サービスの収容を終了する（ステップS1306)。
【０１０６】
以上のように、本実施例では、マルチサービスノード104に、パケット処理機能を柔軟にインストール、アンインストールすることができる。これにより、通信事業者の投資コストの最適化、通信サービス収容入替えの容易化、オペレーション負荷の低減を実現することができる。また、ブランク回路のインストールにより、コア回路の必要領域を確実に確保することができる。
【０１０７】
＜起動処理＞
図１４は、実施例の装置起動フローチャートの例を示す流れ図である。処理は、何らかの理由でマルチサービスノード104の電源が遮断され、再起動（あるいは最初の起動）された状態から開始する（ステップS1401）。これは、例えば、マルチサービスノード104の不揮発性メモリに格納された、再起動プログラムにより実行することができる。以降の処理は、マルチサービスノード104のラインカード制御機能部202あるいは、ラインカード制御機能部202と装置制御機能部220が、ソフトウェアの制御により行うことを想定するが、専用のハードウェアによって行ってもよい。以降では、図３の構成のマルチコアノード104を想定して説明する。
【０１０８】
処理が開始されると、装置制御機能部220は、復旧データベース240（図５）を検索し、電源起動時の状況に適合する電源起動モード501を選択し、選択した電源起動モード501に該当する復旧パターン502を読み出す（ステップS1402)。また、ノード内リソース管理データベース230（図４）の内容を読み出す（ステップS1403)。ステップS1402とS1403の順序は逆転してもよいし、並行して行ってもよい。
【０１０９】
ステップS1403以降では、ステップS1402で読みだされた（選択された）復旧パターン502に応じて分岐する。図１４の説明上、選択された復旧パターン502を、図５の503で示す番号で呼称する。
【０１１０】
復旧パターン＃１が選択された場合、ノード内リソース管理データベース230に従い復旧することになる。装置制御機能部220はノード内リソース管理データベース230を検索し、復旧モード407が「現状態」のコア回路の有無を確認する（ステップS1404)。復旧モード407が「現状態」のコア回路が有る場合には、ＦＰＧＡ回路ファイル記憶部203（図６）の利用パケット処理コア回路記憶部603から、該当のコア番号のコア回路にインストールされているプログラムファイルを読み出す。また、復旧モード407が「初期状態」のコア回路が有る場合には、ＦＰＧＡ回路ファイル記憶部203の初期設定コア回路記憶部602から、該当のコア番号のコア回路用のブランク回路ファイルを読み出す。また、ＦＰＧＡ回路ファイル記憶部203の共通部回路記憶部601から、振分機能回路6011と多重機能回路6012を読み出す（ステップS1405)。復旧モード407が「現状態」のコア回路が有る場合には、ステップS1407に進む。
【０１１１】
復旧パターン＃２が選択された場合、ノード内リソース管理データベース230の復旧モード407に関係なく、利用状況406に従い復旧することになる。装置制御機能部220はノード内リソース管理データベース230を検索し、利用状況406が「空き」のコア回路が有る場合には、ＦＰＧＡ回路ファイル記憶部203の初期設定コア回路記憶部602から、該当のコア番号のコア回路用のブランク回路ファイルを読み出す。また、利用状況406が「空き」以外のコア回路が有る場合には、利用パケット処理コア回路記憶部603から、該当のコア番号のコア回路にインストールされているプログラムファイルを読み出す。また、ＦＰＧＡ回路ファイル記憶部203の共通部回路記憶部601から、振分機能回路6011と多重機能回路6012を読み出す(ステップS1406）。
【０１１２】
復旧パターン＃３が選択された場合、ノード内リソース管理データベース230の復旧モード407に関係なく、初期状態に戻すことになる。装置制御機能部220はＦＰＧＡ回路ファイル記憶部203の初期設定コア回路記憶部602から、全てのコア回路用のブランク回路ファイルを読み出す。また、ＦＰＧＡ回路ファイル記憶部203の共通部回路記憶部601から、振分機能回路6011と多重機能回路6012を読み出す（ステップS1407)。なお、復旧パターン＃３の場合には、ノード内リソース管理データベース230を読み出す処理（ステップS1403)は省略してもよい。
【０１１３】
ステップS1408では、読み出したプログラムファイルを、ＦＰＧＡ回路204の対応するコア回路209にインストールし、処理を終了する（ステップS1409)。
【０１１４】
以上説明した本実施例によれば、再起動時の状況に応じて、適切な状態にＦＰＧＡのコア回路を再設定することができる。
【実施例２】
【０１１５】
実施例１では、ＦＰＧＡは通信装置（ノード）内にあり、通信パケットを処理することを想定した。ただし、本発明の概念はこれに限定されるものではなく、通信装置以外の情報処理装置（例えばサーバ）内のＦＰＧＡにおいて、通信パケット以外のデータに対し、各種の処理を行うこともできる。すなわち、ＦＰＧＡで処理されるデータは、ネットワーク上を流れるパケットに限らず、サーバの記憶装置に格納されたデータでもよい。
【０１１６】
この場合のシステム構成は、例えば図１のシステムから、キャリアネットワーク105、ネットワーク運用管理装置102を省略した構成とすることができる。また、マルチサービスノード104の代わりに、管理ネットワーク103を介してＦＰＧＡコア回路ファイル管理装置101に接続された、サーバを使用する。
【０１１７】
サーバの構成は、例えば図３の構成からキャリアネットワーク105との通信インタフェース205を省略し、ＦＰＧＡ204へは例えば図示しないハードディスクなどの記憶装置から、処理すべきデータをＦＰＧＡ204に入力する。ＦＰＧＡ204に入力されたデータは、コア回路209にインストールされた機能により処理され、出力される。この場合、図３の振分機能回路206、多重機能回路207は、必ずしも必要ない。
【０１１８】
このサーバが、ＦＰＧＡ内のコア回路のインストール、アンインストールを行う手順は、実施例１と同様に構成することができる。ただし、ネットワーク運用管理装置102を省略した場合は、図１２、図１３の処理の流れからネットワーク運用管理装置102が省略され、インストール、アンインストールは、マルチサービスノード104に置き代わるサーバの自発的な制御により開始されることになる。
【０１１９】
このようなサーバでは、例えば、記憶装置に格納された画像データに対して、圧縮・伸長・加工など種々の処理を行う機能を、ＦＰＧＡのコア回路にインストールすることができる。例えば、画像圧縮の場合、種々の規格に依存した各種の方式がある。記憶装置に格納された画像データに対して、圧縮方式を追加・変更したい場合、このサーバは管理ネットワーク103を介して、ＦＰＧＡコア回路ファイル管理装置101に対して、必要なプログラムファイルを要求する。要求には、必要なデータ処理機能（例えば所定の圧縮方式）を特定する情報と、ＦＰＧＡのデバイス種を特定する情報と、ＦＰＧＡ内のコア回路のコア番号を特定する情報を含める。要求に対応してサーバが受信したプログラムファイルを、ＦＰＧＡのコア回路にインストールする。また、不要になった機能は、アンインストールすることができる。
【０１２０】
本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。  また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１２１】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１２２】
ＦＰＧＡコア回路ファイル管理装置:101、ネットワーク運用管理装置:102、管理ネットワーク:103、マルチサービスノード:104、キャリアネットワーク:105、ラインカード:201、ＦＰＧＡ:204、通信インタフェース:205、振分機能回路：206、多重機能回路：207、コア回路：209
【図１】
2017050786.tif 000003
【図２】
2017050786.tif 000004
【図３】
2017050786.tif 000005
【図４】
2017050786.tif 000006
【図５】
2017050786.tif 000007
【図６】
2017050786.tif 000008
【図７】
2017050786.tif 000009
【図８】
2017050786.tif 000010
【図９】
2017050786.tif 000011
【図１０】
2017050786.tif 000012
【図１１】
2017050786.tif 000013
【図１２】
2017050786.tif 000014
【図１３】
2017050786.tif 000015
【図１４】
2017050786.tif 000016