(57)【要約】      （修正有）【課題】複数の制御装置からのフローの到着順を適切に確保できるシステム、方法及びプログラムを提供する。【解決手段】制御装置１１１，１１２は、OpenFlowネットワークを構成するいずれか１つのスイッチ装置から第２のメッセージを受信するＰ−ｉｎ受信部２０１と、第２のメッセージを処理する受信パケット処理部２０２と、第２のメッセージに対応するアプリケーションを実行するＡｐｐＳＶ２０３と、Ｐ−ｉｎ受信部及びＡｐｐＳＶからメッセージを受信し、第１のメッセージを作成するＯＦメッセージ作成部２０４と、他の制御装置から第１のメッセージを受信するＯＦメッセージ受信部２０６と、ＯＦメッセージ作成部からの第１のメッセージ又はＯＦメッセージ受信部からの第１のメッセージのいずれか１つを選択する判定部２０５と、判定部が選択した第１のメッセージを送信する送信部２０８とを含む。【選択図】図４
2016082344.tif 000002
【特許請求の範囲】
【請求項１】
情報の送信元である端末装置と、前記情報の送信先である通信先装置とを接続する経路としてOpenFlowネットワークを構成する複数のスイッチ装置のいずれか１つのスイッチ装置から第２のメッセージを受信する第１の受信手段と、
前記第２のメッセージを処理する第１の受信パケット処理手段と、
前記第２のメッセージに対応する第１のアプリケーションを実行する第１のアプリケーション実行手段と、
前記第１の受信パケット処理手段及び前記第１のアプリケーション実行手段からメッセージを受信し、第１のメッセージを作成する第１のメッセージ作成手段と、
他の第１の制御装置から第１のメッセージを受信する第１のメッセージ受信手段と、
前記第１のメッセージ作成手段からの第１のメッセージを基に、前記第１のメッセージ作成手段からの第１のメッセージ又は前記第１のメッセージ受信手段からの第１のメッセージのいずれか１つを選択する第１の判定手段と、
前記第１の判定手段が選択した第１のメッセージを送信する第１の送信手段と
を含む第１の制御装置。
【請求項２】
前記第１のメッセージ受信手段が、
優先度がより低い第２のアプリケーションを実行する他の第１の制御装置から前記第２のアプリケーションの実行結果を含む前記第１のメッセージを受信し、
前記第１の判定手段が、
前記アプリケーション実行手段が、前記第２のアプリケーションより高い優先度を持つ第１のアプリケーションを実行した場合は、前記第１のアプリケーションの実行結果を含むメッセージを選択し、前記第１のアプリケーションを実行しない場合は、前記第１のメッセージ受信手段が受信した前記第１のメッセージを選択する
請求項１に記載の第１の制御装置。
【請求項３】
請求項１又は２に記載の第１の制御装置から第１のメッセージを受信する第２のメッセージ受信手段と
前記スイッチ装置から前記第２のメッセージを受信する第２の受信手段と、
前記第２のメッセージを処理する第２の受信パケット処理手段と、
前記第２の受信パケット処理手段からメッセージを受信し、第１のメッセージを作成する第２のメッセージ作成手段と、
前記第２のメッセージ作成手段からの第１のメッセージを基に、前記第２のメッセージ作成手段からの第１のメッセージ及び前記第２のメッセージ受信手段からの第１のメッセージのいずれかを選択する第２の判定手段と、
前記第２の判定手段が選択したメッセージを送信する第１の送信手段と
既に前記スイッチ装置の設定に用いたメッセージを送信した第１の制御手段の優先度と前記第２の判定手段が選択したメッセージの優先度とを比較し、前記第２の判定手段が選択したメッセージの優先度が高い場合に前記スイッチ装置に設定に用いるメッセージとして前記第２の判定手段が選択したメッセージを選択する管理手段と、
前記第１のメッセージを基に前記スイッチ装置がOpenFlowネットワークとしての機能を設定するために、前記管理手段が選択したメッセージを前記スイッチ装置に送信する第２の送信手段と
含む第２の制御装置。
【請求項４】
前記第２のメッセージに対応するアプリケーションを実行する第２のアプリケーション実行手段をさらに含む請求項３に記載の第２の制御装置。
【請求項５】
情報の通信元である端末装置と、
前記情報を通信先である通信先装置と、
前記端末装置と前記通信先装置との経路としてOpenFlowネットワークを構成する複数のスイッチ装置と、
所定のアプリケーションを実行し、前記アプリケーションの実行結果を基に前記OpenFlowネットワークの制御のための第１のメッセージを作成し、前記アプリケーションの優先度順に前記第１のメッセージを論理的に直列に送信する複数の第１の制御装置と、
前記第１のメッセージを基に前記スイッチ装置にOpenFlowネットワークとしての機能を設定する第２の制御装置と
を含む情報処理システム。
【請求項６】
情報の送信元である端末装置と、前記情報の送信先である通信先装置とを接続する経路としてOpenFlowネットワークを構成する複数のスイッチ装置のいずれか１つのスイッチ装置から第２のメッセージを受信し、
前記第２のメッセージを処理し、
前記第２のメッセージに対応するアプリケーションを実行し、
前記第２のメッセージの処理結果及び前記アプリケーションの結果のメッセージを受信し、第１のメッセージを作成し、
他の第１の制御装置から第１のメッセージを受信し、
前記作成した第１のメッセージを基に、前記他の第１の制御装置から受信した第１のメッセージ又は前記作成した第１のメッセージのいずれか１つを選択し、
前記選択した第１のメッセージを送信する
制御方法。
【請求項７】
情報の送信元である端末装置と、前記情報の送信先である通信先装置とを接続する経路としてOpenFlowネットワークを構成する複数のスイッチ装置のいずれか１つのスイッチ装置から第２のメッセージを受信する処理と、
前記第２のメッセージを処理する処理と、
前記第２のメッセージに対応するアプリケーションを実行する処理と、
前記第２のメッセージの処理結果及び前記アプリケーションの結果のメッセージを受信し、第１のメッセージを作成する処理と、
他の第１の制御装置から第１のメッセージを受信する処理と、
前記作成した第１のメッセージを基に、前記他の第１の制御装置から受信した第１のメッセージ又は前記作成した第１のメッセージのいずれか１つを選択する処理と、
前記選択した第１のメッセージを送信する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関し、特に、情報の通信経路を制御する情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
一般的に、パケットの送信元から送信先への経路の決定とパケット転送処理は、経路上の複数のスイッチが行っていた。しかし、情報処理システムの多様化及び規模拡大に伴い、ネットワークの構成の変化に即応した適切な経路の決定及び経路決定の柔軟性が、必要となってきた。そこで、コンピュータネットワークにおいて、外部のコントローラが、各スイッチの転送動作等を一元的に制御する技術（オープンフロー：OpenFlow）が、提案されている（例えば、特許文献１参照）。
【０００３】
OpenFlow（ＯＦ）において、ＯＦＳ（OpenFlow Switch）が、条件にマッチしたマッチフィールドのパケットに対して、アクションで設定された動作を行う。マッチフィールドは、ネットワーク階層のＬ１（Layer １）〜Ｌ４で構成されている。ＯＦＳは、未知のマッチフィールド（unknownパケット）を受け取ると、それをOpenFlow Channel（ＯＦ−Ｃｈ）を経由して、ＯＦＣ（OpenFlow Controller）に送信する。ＯＦＣは、パケットの宛先に応じて適切なＯＦＳにフローを出力するとともに、フローを各ＯＦＳのフローテーブルに、flow-modメッセージを用いて登録する。一度フローが登録されると、ＯＦＳは、次回以降のIngress（入り口となるスイッチ）に入ってくるフローテーブルの条件にマッチしたフローについて、登録されたフローテーブルを参照して通信する。つまり、ＯＦＳは、ＯＦＣを経由せずに、直接通信する。OpenFlowは、ＯＦＣからＯＦＳに適用するフローの設定に基づいて、経路制御及び負荷分散など、柔軟なネットワーク制御を実行できる。
【０００４】
つまり、OpenFlowプロトコルは、Ｌ１〜Ｌ４のパケットの中身を参照して、フローを決定する。例えば、OpenFlowでは、ＯＦＳが、Ｐ−ｉｎ（Packet-in メッセージ）を用いて、通信パケットのＬ１〜Ｌ４のフィールド（マッチフィールド）をＯＦＣへ渡す。そして、ＯＦＣが、決定したフローをＯＦＳへ投入する。この動作を基に、OpenFlowは、経路制御を適切に行い、ネットワークトラフィックを分散させるなど、柔軟なネットワークの制御を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１６６３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように、特許文献１に記載のOpenFlowは、通信パケットのＬ１〜Ｌ４のフィールド（マッチフィールド）を用いて、経路制御を実行している。
【０００７】
しかし、特許文献１に記載のOpenFlowにおいて、Ｌ５以上の処理については、その制御方法は、一般的なネットワークの制御方法と変わらない。例えば、Ｌ５以上のＡｐｐＳＶ（Application Server）を利用する通信は、必ず、そのＡｐｐＳＶに到達しなければならない。
【０００８】
図８は、このような状態のOpenFlowの情報処理システムを示す図である。
【０００９】
図８に示す２つの端末装置１２１は、どちらも、通信先装置１２２への経路として、ＡｐｐＳＶ１２３を経由する必要がある。そのため、ＯＦＣ１２４は、図８に示すように、ＯＦＳ２１に、両方の端末装置１２１からの通信に対し、ＡｐｐＳＶ１２３を経由する経路を指示する。この場合、図８に示すように、ＡｐｐＳＶ１２３への経路が、分散されない。
【００１０】
特許文献１に記載の技術において、ＡｐｐＳＶ１２３への経路を分散させるためには、例えば、図９に示すように、複数のＡｐｐＳＶ１２３の設置場所を物理的に分散させるなど、ＡｐｐＳＶ１２３を冗長化させることが必要であった。そのため、特許文献１に記載の技術では、Ｌ５以上のＡｐｐＳＶ１２３を利用する通信が、OpenFlowの持っているメリットを享受できなかった。
【００１１】
これを改善し効率化を図る方法として、Ｌ５以上の処理について、例えば、ＡｐｐＳＶ１２３で行った処理結果をＯＦＣ１２４へ直接投入する方法が、考えられる。
【００１２】
例えば、図１０に示す情報処理システムは、ＡｐｐＳＶ１２３にコントローラの機能（ＯＦＣ１２４の機能）を搭載したＯＦＡＳＣ（Open Flow Application Server Controller）１１を備える。そして、ＯＦＣＡＳ１１が、ＡｐｐＳＶ１２３及びＯＦＣ１２４として処理した結果であるフローを、ＯＦＩ（OpenFlow Istaller）１２経由でＯＦＳ２１に登録する。この方法は、Ｌ５以上の処理結果をＬ１〜Ｌ４に落とし込み、処理をOpenFlowの制御配下に置く方法である。
【００１３】
しかし、この方式は、複数のＯＦＡＳＣ１１に適用しようとする際に、問題が生じる。すなわち、各ＯＦＡＳＣ１１は、１つのunknownパケットが、IngressのＯＦＳ１１から各ＯＦＡＳＣ１１にＰ−ｉｎして処理した結果を、フローとしてＯＦＳ２１に登録する。しかし、それぞれのＯＦＡＳＣ１１が投入するフローを整合する手段がない。例えば、あるＯＦＡＳＣ１１が、セキュリティ的にパケットを遮断するフローを、ＯＦＩ１２に入力したとする。さらに、別のＯＦＡＳＣ１１が、パケットを通すフローをＯＦＩ１２に入力しれた場合を想定する。このとき、フローの到着順は、保障されていない。そのため、それぞれのフローの到着のタイミングに基づき、後者（通過）が、前者（遮断）を上書きする場合が発生する。その結果、通すべきではないパケットを通してしまうというセキュリティリスクが、発生する可能性がある。
【００１４】
つまり、特許文献１に記載の技術では、一つのＯＦＳからのＰ−ｉｎ（Packet-in メッセージ）を複数のコントローラ（図９ではＯＦＡＳＣ１１）へ渡して処理する場合、それぞれのコントローラでの処理結果を整合する手段がない。そのため、ＯＦＳにフローが投入される際に矛盾又は不正となる結果が登録される可能性がある。例えば、通すべきではないパケットが流れてしまうというという問題の発生の可能性もある。あるいは、意図していない動作が実行される可能性が考えられる。
【００１５】
なお、OpenFlowの版数が１.２以降の仕様は、複数のコントローラの動作をサポートしている。しかし、コントローラ間の連携動作に関しては、プロトコルとして規定されていない。そのため、OpenFlowの仕様に規定された複数のコントローラ間の連携動作は、利用が広がっていない。
【００１６】
また、ＯＦＳ２１からの１つのＰ−ｉｎは、各ＯＦＡＳＣ１１へ入力される。しかし、ＯＦＩ１２は、各ＯＦＡＳＣ１１での処理状態を把握する手段がない。その結果、例えば、flow-modメッセージが到着しない場合、ＯＦＩ１２は、ＯＦＡＳＣ１１がＰ−ｉｎを不要なので無視したのか、又は、処理が遅れているのかを判断できない。
【００１７】
このように、特許文献１に記載の技術は、複数のＯＦＡＳＣ１１からのフローの到着順を適切に確保できないという問題点があった。言い換えると、特許文献１に記載の技術は、OpenFlowのフローを適切に設定できないという問題点があった。
【００１８】
本発明の目的は、上記問題点を解決し、OpenFlowのフローを適切に設定する制御装置、情報処理システム、制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明の一形態のおける制御装置は、情報の送信元である端末装置と、情報の送信先である通信先装置とを接続する経路としてOpenFlowネットワークを構成する複数のスイッチ装置のいずれか１つのスイッチ装置から第２のメッセージを受信する第１の受信手段と、第２のメッセージを処理する第１の受信パケット処理手段と、第２のメッセージに対応する第１のアプリケーションを実行する第１のアプリケーション実行手段と、第１の受信パケット処理手段及び第１のアプリケーション実行手段からメッセージを受信し、第１のメッセージを作成する第１のメッセージ作成手段と、他の第１の制御装置から第１のメッセージを受信する第１のメッセージ受信手段と、第１のメッセージ作成手段からの第１のメッセージを基に、第１のメッセージ作成手段からの第１のメッセージ又は第１のメッセージ受信手段からの第１のメッセージのいずれか１つを選択する第１の判定手段と、第１の判定手段が選択した第１のメッセージを送信する第１の送信手段とを含む。
【００２０】
本発明の一形態のおける情報処理システムは、情報の通信元である端末装置と、情報を通信先である通信先装置と、端末装置と通信先装置との経路としてOpenFlowネットワークを構成する複数のスイッチ装置と、所定のアプリケーションを実行し、アプリケーションの実行結果を基にOpenFlowネットワークの制御のための第１のメッセージを作成し、アプリケーションの優先度順に第１のメッセージを論理的に直列に送信する複数の第１の制御装置と、第１のメッセージを基にスイッチ装置にOpenFlowネットワークとしての機能を設定する第２の制御装置とを含む。
【００２１】
本発明の一形態のおける制御方法は、情報の送信元である端末装置と、情報の送信先である通信先装置とを接続する経路としてOpenFlowネットワークを構成する複数のスイッチ装置のいずれか１つのスイッチ装置から第２のメッセージを受信し、第２のメッセージを処理し、第２のメッセージに対応するアプリケーションを実行し、第２のメッセージの処理結果及びアプリケーションの結果のメッセージを受信し、第１のメッセージを作成し、他の第１の制御装置から第１のメッセージを受信し、作成した第１のメッセージを基に、他の第１の制御装置から受信した第１のメッセージ又は作成した第１のメッセージのいずれか１つを選択し、選択した第１のメッセージを送信する。
【００２２】
本発明の一形態のおけるプログラムは、情報の送信元である端末装置と、情報の送信先である通信先装置とを接続する経路としてOpenFlowネットワークを構成する複数のスイッチ装置のいずれか１つのスイッチ装置から第２のメッセージを受信する処理と、第２のメッセージを処理する処理と、第２のメッセージに対応するアプリケーションを実行する処理と、第２のメッセージの処理結果及びアプリケーションの結果のメッセージを受信し、第１のメッセージを作成する処理と、他の第１の制御装置から第１のメッセージを受信する処理と、作成した第１のメッセージを基に、他の第１の制御装置から受信した第１のメッセージ又は作成した第１のメッセージのいずれか１つを選択する処理と、選択した第１のメッセージを送信する処理とをコンピュータに実行させる。
【発明の効果】
【００２３】
本発明に基づけば、OpenFlowのフローを適切に設定するとの効果を奏することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、第１の実施形態に関連する情報処理システムの構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態に関連する情報処理システムの構成の一例を示すブロック図である。
【図３】図３は、本発明における第１の実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【図４】図４は、第１の実施形態に係るＯＦＡＳＣの構成の一例を示すブロック図である。
【図５】図５は、第１の実施形態に係るＯＦＣＩの構成の一例を示すブロック図である。
【図６】図６は、第１の実施形態に係るＯＦＡＳＣ及びＯＦＣＩの別の構成の一例を示すブロック図である。
【図７】図７は、第２の実施形態に係るＯＦＣＩの構成の一例を示すブロック図である。
【図８】図８は、Ｌ５以上のＡｐｐＳＶを経由する経路の一例を示す図である。
【図９】図９は、Ｌ５以上の複数のＡｐｐＳＶを経由する経路の一例を示す図である。
【図１０】図１０は、ＯＦＡＳＣを用いたＬ５以上の経路の一例を示す図である。
【発明を実施するための形態】
【００２５】
次に、本発明の実施形態について図面を参照して説明する。
【００２６】
なお、各図面は、本発明の実施形態を説明するものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
【００２７】
また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【００２８】
まず、本実施形態の説明における用語及び略語（頭字語）について整理する。
【００２９】
ＯＦ：OpenFlow。
【００３０】
ＯＦＣ：OpenFlow Controller。
【００３１】
ＯＦＳ：OpenFlow Switch。
【００３２】
Ｐ−ｉｎ：OpenFlowプロトコルのPacket-in message。メッセージ自体だけではなく、Packet-in messageの送信も、「Ｐ−ｉｎする」又は「Ｐ−ｉｎ」と呼ぶ。
【００３３】
ＯＦＩ：OpenFlow Installer。
【００３４】
ＯＦＮ：OpenFlow Network。ＯＦＳ同士で接続されたOpenFlowのCore Network。
【００３５】
Ingress：通信を行う端末から見て、OpenFlowNetwookの入り口となるスイッチ。なお、OpenFlowネットワークの出口となるスイッチは、Egressである。
【００３６】
Ａｐｐ：Application。
【００３７】
ＡｐｐＳＶ：Application Server。
【００３８】
ＯＦＡＳＣ：Open Flow Application Server Controller（ＡｐｐＳＶ+ＯＦＣ）
ＯＦＣＩ：Open Flow Controller Installer（ＯＦＣ＋ＯＦＩ）
ＯＦ−Ｃｈ：OpenFlow Channel。ＯＦＳとＯＦＣとを接続するOpenFlowの制御線。下記の実施形態では、ＯＦ−Ｃｈは、例えば、ＯＦＳと、ＯＦＡＳＣと、ＯＦＣＩとを接続する。
【００３９】
Cookie：ネットワークを介して接続した装置が残す情報である。
【００４０】
＜第１の実施形態＞
本実施形態の概要を説明する。
【００４１】
［構成の説明］
本発明のおける本実施形態に係る情報処理システムの構成について説明する。
【００４２】
最初に、本発明の実施形態に関連するＯＦＡＳＣ（Open Flow Application Server Controller）を１つ含むＯＦの情報処理システム１０１について説明する。
【００４３】
図１は、第１の実施形態に関連する情報処理システム１０１の構成の一例を示すブロック図である。
【００４４】
図１に示すように、情報処理システム１０１は、端末装置１２１と通信先装置１２２とを接続するOpenFlow（ＯＦ）環境を実現する。そのため、情報処理システム１０１は、１つのＯＦＡＳＣ１１と、ＯＦＩ（OpenFlow Installer）１２と、複数のＯＦＳ（OpenFlow Switch）２１とを含む。
【００４５】
端末装置１２１と通信先装置１２２は、一般的な通信が可能な情報処理機器で良いため、詳細な説明を省略する。
【００４６】
また、ＯＦＳ２１は、ＯＦ環境を実現するスイッチである。ＯＦＳ２１は、所定のネットワークを介して相互に接続し、ＯＦ環境としてのＯＦＮ（OpenFlow Network）１４１を構成する。そのため、ＯＦＳ２１は、スイッチ装置又はスイッチ手段でもある。ＯＦＳ２１は、一般的なOpenFlowスイッチで良いため、詳細な説明を省略する。
【００４７】
ＯＦＡＳＣ１１は、OpenFlowのＡｐｐＳＶ（Application Server）とＯＦＣ（OpenFlow Controller）との機能を含む。ここで、ＡｐｐＳＶは、所定のアプリケーションを実行し、所定の機能を実現する装置である。また、ＯＦＣは、OpenFlowのフローを制御する装置である。そのため、ＯＦＡＳＣ１１は、機能処理制御装置、又は、機能処理制御手段でもある。又は、ＯＦＡＳＣ１１は、第１の制御装置とも呼ばれる。
【００４８】
ＯＦＡＳＣ１１は、処理の結果となるフローを、ＯＦ−Ｃｈ（OpenFlow Channel）１３１を経由してＯＦＩ１２に渡す。
【００４９】
ＯＦＩ１２は、フローをＯＦＳ２１に登録する。そのため、ＯＦＩ１２は、設定装置、又は設定手段でもある。
【００５０】
この動作を基に、情報処理システム１０１は、ＯＦＡＳＣ１１におけるＡｐｐＳＶとしての機能の処理結果をＯＦＳ２１に、つまり、ＯＦＮ１４１に学習させることができる。
【００５１】
次に、本発明の実施形態に関連する複数のＯＦＡＳＣ１１を含む情報処理システム１０２について説明する。
【００５２】
図２は、本実施形態に関連する複数のＯＦＡＳＣ１１を含む情報処理システム１０２の構成の一例を示す図である。
【００５３】
図２に示すように、複数のＯＦＡＳＣ１１が存在するＯＦ環境では、それぞれのＯＦＡＳＣ１１が、１つのＰ−ｉｎ（Packet-in message）に対応する処理を個別に実行する。その結果、図２に示すように、それぞれのＯＦＡＳＣ１１の結果が、バラバラ（タイミングを調整されず）に、ＯＦＩ１２に到着する。
【００５４】
言い換えると、１つのＰ−ｉｎが、複数のＯＦＡＳＣ１１に入力される。そして、それぞれのＯＦＡＳＣ１１からの異なるフロー設定の要求が、個別に、ＯＦＩ１２に到着する。この場合、上記のように、フロー設定が、矛盾又は不正となる可能性がある。
【００５５】
本発明における第１の実施形態に係る情報処理システム１００は、上記の問題点を解決する。
【００５６】
図３は、本発明における第１の実施形態に係る情報処理システム１００の構成の一例を示すブロック図である。
【００５７】
情報処理システム１００の概要を説明すると、次のとおりである。
【００５８】
実施形態の情報処理システム１００は、予め、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２のＡｐｐＳＶとして機能が登録しようとするフローに、優先度を付ける。そして、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、その優先度順にバケツリレー方式で接続する。さらに、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２でのＡｐｐＳＶとしての処理結果であるフロー設定要求がある場合、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、ＯＦＣＩ（Open Flow Controller Installer）１１３に自装置を識別する情報を送信する。より具体的には、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、ＯＦＣＩ１１３に発行するflow-modメッセージのcookie情報に、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２を識別する情報を付加する。そして、ＯＦＣＩ１１３が、ＯＦＳ２１へ投入するフローを管理する。このような構成を基に、情報処理システム１００は、矛盾したフローのＯＦＳ２１への登録を阻止する。
【００５９】
次に、このようなＯＦＡＳＣ１１を含む第１の実施形態の情報処理システム１００の詳細について説明する。
【００６０】
まずは、情報処理システム１００の構成について説明する。
【００６１】
図３に示すように、情報処理システム１００は、複数のＯＦＳ２１と、ＯＦＣＩ１１３と、ＯＦＡＳＣ１１１と、ＯＦＡＳＣ１１２とを含む。また、情報処理システム１００は、ＯＦ環境を利用して通信する１つ又は複数の端末装置１２１、及び、１つ又は複数の通信先装置１２２を含む。
【００６２】
図３に示すＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、同様の構成を含み、同様に動作する。ただし、以下の説明の便宜のため、第１のＯＦＡＳＣをＯＦＡＳＣ１１１とし、第２以降のＯＦＡＳＣをＯＦＡＳＣ１１２とする。なお、情報処理システム１００は、１つに限らず、複数のＯＦＡＳＣ１１２を含んでもよい。
【００６３】
また、図３に示すＯＦＳ２１の数は、一例である。情報処理システム１００は、４台未満のＯＦＳ２１又は４台を超えるＯＦＳ２１を含んでもよい。
【００６４】
ＯＦＳ２１は、ＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３に、ＯＦ−Ｃｈ１３１を介して接続されている。また、ＯＦＳ２１同士は、所定の通信手段を用いて接続し、ＯＦＮ１４１を実現している。また、ＯＦＳ２１同士の接続形態は、特に制限はなく、様々な形態を用いることができる。図３は、一例として、１つのＯＦＳ２１から２つの接続線が出るループ構成となっている。
【００６５】
ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、図３に示すように、ネットワークにおいて論理的に直列に連結された構成となっている。具体的には、ＯＦＡＳＣ１１１が、ＯＦＡＳＣ１１２に接続され、さらに、ＯＦＡＳＣ１１２が、ＯＦＣＩ１１３に接続されている。これらの接続は、ＯＦ−Ｃｈ１３１を介している。そして、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、ＡｐｐＳＶとしてＯＦＳ２１へ投入するフローの優先度の低いものから高いものの順に接続されている。つまり、ＯＦＡＳＣ１１１のＡｐｐＳＶの優先度は、ＯＦＡＳＣ１１２のＡｐｐＳＶのそれよりも低い。
【００６６】
以下の説明では、本実施形態の説明におけるＡｐｐＳＶの機能を実現するＡｐｐ（Application）として、「Stateful Firewall (FW)」及び「ロードバランサ」を想定する。この場合、セキュリティ的に重要度の高いStateful FWが、ロードバランサより優先される。そのため、最初のＯＦＡＳＣ１１１は、ロードバランサを搭載する。また、ＯＦＡＳＣ１１２は、Stateful FWを搭載する。なお、これらのＡｐｐについては、後ほど説明する。
【００６７】
ＯＦＣＩ１１３は、一般的なＯＦ環境におけるＯＦＮを管理するＯＦＣ機能と、ＯＦＡＳＣ１１１から依頼を受けたフローを登録するＯＦＩ機能とを含む。そのため、ＯＦＣＩ１１３は、制御設定装置、又は、制御設定手段でもある。又は、ＯＦＣＩ１１３は、第２の制御装置とも呼ばれる。
【００６８】
［動作の説明］
次に、情報処理システム１００の動作について説明する。
【００６９】
なお、以下の動作の説明におけるＯＦのプロトコルは、OpenFlowの版数１.３の仕様を用いる。
【００７０】
（cookieの使い方について）
OpenFlow１.３では、「flow-modメッセージ」のcookie値は、６４ビットある。そして、利用者が、自由に、cookie値の使い方を定義できる。本実施形態では、先頭の１６ビットが、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２の識別に用いられ、後方の４８ビットが、フローの識別に用いられるとする。
【００７１】
ＯＦＡＳＣ１１１の識別ビットの定義は、１ビット目が１台目、２ビット目が２台目、ｎビット目がｎ台目（１≦ｎ≦１６）と定義する。つまり、本実施形態の説明では、ＯＦＡＳＣ１１２の最大数は、１５台である。（１台目は、ＯＦＡＳＣ１１１である。）ただし、これは、一例である。情報処理システム１００は、１５台未満の本実施形態のＯＦＡＳＣ１１２を含んでもよく、１５台を超えるＯＦＡＳＣ１１２を含んでもよい。
【００７２】
また、後方の４８ビットは、投入したフローを一意に特定する。そのため、後方の４８ビットは、例えば、投入するフローから完全ハッシュ関数を用いて計算したビットとする。
【００７３】
（第１のＯＦＡＳＣ１１１）
第１のＯＦＡＳＣ１１１の動作について説明する。
【００７４】
端末装置１２１が、通信先装置１２２への通信を開始すると、通信パケットが、端末装置１２１から第１のＯＦＳ２１に入る。このＯＦＳ２１が、「Ingress」となる。ＯＦＳ２１は、フローテーブルに存在しないマッチフィールドのパケットを受信すると、ＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３にＰ−ｉｎする。
【００７５】
図４は、本実施形態に係るＯＦＡＳＣ１１１の構成の一例を示すブロック図である。
【００７６】
図４に示すように、ＯＦＡＳＣ１１１は、Ｐ−ｉｎ受信部２０１と、受信パケット処理部２０２と、ＡｐｐＳＶ２０３と、ＯＦメッセージ作成部２０４と、判定部２０５と、ＯＦメッセージ受信部２０６と、送信部２０８とを含む。
【００７７】
Ｐ−ｉｎ受信部２０１は、Ｐ−ｉｎ（Ｐ−ｉｎパケット）を受信する。Ｐ−ｉｎ受信部２０１は、受信したＰ−ｉｎを受信パケット処理部２０２に送信する。例えば、Ｐ−ｉｎ受信部２０１は、Ｐ−ｉｎパケットのデータ部分を取り出し、受信パケット処理部２０２に送信する。なお、Ｐ−ｉｎ受信部２０１は、他のメッセージを受信してもよい。そのため、Ｐ−ｉｎ受信部２０１は、受信部又は受信手段でもある。
【００７８】
受信パケット処理部２０２は、データ部分の内容を判断する。内容（例えば、Ｌ４の部分）が自装置のＡｐｐＳＶ２０３のポートに該当する場合、受信パケット処理部２０２は、受信したメッセージをＡｐｐＳＶ２０３に送信する。Ｌ４部の情報がない、又は、ポートが該当しない場合、受信パケット処理部２０２は、受信したメッセージをＯＦメッセージ作成部２０４に送信する。
【００７９】
ＡｐｐＳＶ２０３は、一般的なOpenFlowのＡｐｐＳＶとして、通常のアプリケーション処理を実行する。そのため、ＡｐｐＳＶ２０３は、アプリケーション実行部又はアプリケーション実行手段でもある。ＡｐｐＳＶ２０３は、処理結果を、ＯＦメッセージ作成部２０４に送信する。
【００８０】
ＯＦメッセージ作成部２０４は、ＡｐｐＳＶ２０３で処理があった場合とＡｐｐＳＶ２０３で処理がなかった場合とで、異なる処理を実行する。ＡｐｐＳＶ２０３の処理があった場合、ＯＦメッセージ作成部２０４は、処理の結果をflow-modメッセージに入れ、判定部２０５に送信する。そのとき、ＯＦメッセージ作成部２０４は、cookieの先頭ビットを、ＯＦＡＳＣ１１１を識別できるように立てる。ＡｐｐＳＶ２０３の処理がなかった場合、ＯＦメッセージ作成部２０４は、メッセージを基に、直接受信パケット処理部２０２から受信した場合に応じた処理を実行する。具体的には、ＯＦメッセージ作成部２０４は、ＡｐｐＳＶ２０３からの処理の結果を受信しないため、何もしないことを表すflow-modメッセージを判定部２０５に送信する。以下、何もしないことを表すflow-modメッセージを「null flow-mod」と呼ぶ。なお、null flow-modは、特に制限はない。予め、ＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３が、決めておけばよい。例えば、null flow-modは、OpenFlowの仕様におけるコマンド「OFPFC_MODIFY_STRICT」を指定し、ofc_match構造体の全てのフィールドを「０」にするメッセージでもよい。なお、ＯＦメッセージ作成部２０４は、メッセージ作成部又はメッセージ作成手段でもある。
【００８１】
判定部２０５は、ＯＦメッセージ作成部２０４からのメッセージとＯＦメッセージ受信部２０６からのメッセージとを判定する。しかし、第１のＯＦＡＳＣであるＯＦＡＳＣ１１１は、前となるＯＦＡＳＣがない。そのため、ＯＦメッセージ受信部２０６は、メッセージを受信しない。そのため、判定部２０５は、送信部２０８を経由して、ＯＦメッセージ作成部２０４から受信したメッセージを、ＯＦＡＳＣ１１２に送信する。
【００８２】
（第２以降のＯＦＡＳＣ１１２）
本実施形態の情報処理システム１００は、ＯＦＳ２１が、ＯＦＡＳＣ１１２（及びＯＦＡＳＣ１１１）にＰ−ｉｎしてから、flow-modメッセージがＯＦＳ２１に登録するまでの一貫性を保つように動作する。
そのため、ＯＦＡＳＣ１１２のような第２番目以降のＯＦＡＳＣ１１２は、自装置のメッセージに加え、１つ前のＯＦＡＳＣ（図３ではＯＦＡＳＣ１１１）からのflow-modメッセージを用いた処理を実行する。
【００８３】
ＯＦＡＳＣ１１２の動作について、詳細に説明する。
【００８４】
なお、ＯＦＡＳＣ１１２の構成は、図４に示すＯＦＡＳＣ１１１の構成と同じである。また、Ｐ−ｉｎ受信部２０１からＯＦメッセージ作成部２０４までの動作も同様である。
【００８５】
Ｐ−ｉｎ受信部２０１は、受信したＰ−ｉｎ（Ｐ−ｉｎパケット）のデータ部分を取り出し、受信パケット処理部２０２に送信する。
【００８６】
受信パケット処理部２０２は、受信したメッセージの情報を判断する。そして、受信パケット処理部２０２は、例えば、Ｌ４部がＡｐｐＳＶ２０３に該当する場合、ＡｐｐＳＶ２０３にメッセージを送信する。該当しない場合、受信パケット処理部２０２は、メッセージをＯＦメッセージ作成部２０４へ送信する。
【００８７】
ＡｐｐＳＶ２０３は、アプリケーションの処理結果をＯＦメッセージ作成部２０４に送信する。
【００８８】
ＯＦメッセージ作成部２０４は、ＡｐｐＳＶ２０３又は受信パケット処理部２０２から受信したメッセージに対応したflow-modメッセージを作成する。例えば、受信パケット処理部２０２からメッセージを受信した場合（つまり、ＡｐｐＳＶ２０３で処理がなかった場合）、ＯＦメッセージ作成部２０４は、null flow-modメッセージを判定部２０５に送信する。一方、ＡｐｐＳＶ２０３の処理があった場合、ＯＦメッセージ作成部２０４は、cookieのｎ番目（今の場合、２番目）のビットを立ててメッセージを作成する。ＯＦメッセージ作成部２０４は、結果を判定部２０５に送信する。
【００８９】
ＯＦメッセージ受信部２０６は、ＯＦＡＳＣ１１１（つまり、１つ前のＯＦＡＳＣ）からメッセージを受信する。そして、ＯＦメッセージ受信部２０６は、受信したメッセージを判定部２０５に送信する。なお、ＯＦメッセージ受信部２０６は、メッセージ受信部又はメッセージ受信手段でもある。
【００９０】
判定部２０５は、ＯＦメッセージ受信部２０６から受信したメッセージと、ＯＦメッセージ作成部２０４から受信したメッセージとを受信し、以下に示す処理を実行する。すなわち、ＯＦメッセージ作成部２０４からのメッセージが有効なメッセージである場合、判定部２０５は、ＯＦメッセージ作成部２０４からのメッセージを、送信部２０８を経由して送信する。また、判定部２０５は、ＯＦＡＳＣ１１１からのメッセージを破棄する。一方、ＯＦメッセージ作成部２０４からのメッセージがnull flow-modメッセージである場合、判定部２０５は、ＯＦメッセージ受信部２０６からのメッセージを、送信部２０８を経由して送信する。つまり、判定部２０５は、自装置のメッセージの処理が有効である場合は、自装置のメッセージを選択して送信し、自装置のメッセージが有効でない場合は、前の装置のメッセージを送信する。
【００９１】
（ＯＦＣＩ１１３）
次に、ＯＦＣＩ１１３の動作について説明する。
【００９２】
図５は、本実施形態のＯＦＣＩ１１３の構成の一例を示すブロック図である。
【００９３】
ＯＦＣＩ１１３は、Ｐ−ｉｎ受信部３０１と、受信パケット処理部３０２と、ＯＦメッセージ作成部３０４と、判定部３０５と、ＯＦメッセージ受信部３０６と、管理部３０７と、送信部３０８とを含む。
【００９４】
なお、ＯＦＣＩ１１３は、予め、接続するＯＦＡＳＣ（ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２）で利用するアプリケーションのポート番号（Ｌ４）が登録されている。
【００９５】
Ｐ−ｉｎ受信部３０１は、Ｐ−ｉｎを受信する。そして、Ｐ−ｉｎ受信部３０１は、Ｐ−ｉｎを受信パケット処理部３０２に送信する。Ｐ−ｉｎ受信部３０１は、Ｐ−ｉｎ受信部２０１と同様に、受信部又は受信手段でもある。
【００９６】
受信パケット処理部３０２は、受信したＰ−ｉｎパケットのデータ部分を取り出して、それが予め設定されているＯＦＡＳＣ１１１又はＯＦＡＳＣ１１２が処理するメッセージであるか否か確認する。
【００９７】
ＯＦＡＳＣ１１１又はＯＦＡＳＣ１１２が処理するメッセージである場合、受信パケット処理部３０２は、ＯＦメッセージ作成部３０４に、空のメッセージを送信する。空のメッセージを受信したＯＦメッセージ作成部３０４は、null flow-modメッセージを、判定部３０５に送信する。
【００９８】
ＯＦＡＳＣ１１１又はＯＦＡＳＣ１１２が処理するメッセージではない場合、つまり、ＯＦＣＩ１１３が処理するメッセージである場合、受信パケット処理部３０２は、メッセージをＯＦメッセージ作成部３０４に送信する。
【００９９】
ＯＦメッセージ作成部３０４は、OpenFlowの処理を実行し、メッセージを作成し、判定部３０５に送信する。ＯＦメッセージ作成部３０４は、ＯＦメッセージ作成部２０４と同様に、メッセージ作成部又はメッセージ作成手段でもある。
【０１００】
ＯＦメッセージ受信部３０６は、ＯＦＡＳＣ１１２（つまり、直前のＯＦＡＳＣ）からメッセージを受信する。そして、ＯＦメッセージ受信部３０６は、受信したメッセージを判定部３０５に送信する。ＯＦメッセージ受信部３０６は、ＯＦメッセージ受信部２０６と同様に、メッセージ受信部、又は、メッセージ受信手段でもある。
【０１０１】
判定部３０５は、ＯＦメッセージ受信部３０６から受信したメッセージと、ＯＦメッセージ作成部３０４から受信したメッセージとを処理する。
【０１０２】
すなわち、ＯＦメッセージ作成部３０４から受信したメッセージが有効なメッセージである場合、判定部３０５は、ＯＦメッセージ受信部３０６から受信したメッセージを破棄する。そして、判定部３０５は、ＯＦメッセージ作成部３０４から受信したメッセージを管理部３０７に送信する。
【０１０３】
ＯＦメッセージ作成部３０４から受信したメッセージが有効なメッセージでない場合、判定部３０５は、ＯＦメッセージ受信部３０６から受信したメッセージを管理部３０７に送信する。
【０１０４】
つまり、判定部３０５は、判定部２０５と同様に、自装置のメッセージが有効である場合は自装置のメッセージを、無効な場合はひとつ前の装置のメッセージを、管理部３０７に送信する。
【０１０５】
管理部３０７は、予め保持するテーブルに登録されているcookieと、受信したflow-modに設定されているcookieとを比較し、cookie情報が登録されているか否か確認する。この確認は、優先度の高いＯＦＡＳＣ１１２が設定したフローを、優先度が低いＯＦＡＳＣ１１１が設定するフローで上書きしないかの確認である。特に、否定（deny）設定したフローを許可（allow）設定に変更する場合、管理部３０７は、設定済みの優先度が高いＯＦＡＳＣ１１２の設定が、優先度の低いＯＦＡＳＣ１１１からの設定で上書きされないように注意する必要がある。優先度の高いcookie情報が登録されている場合、管理部３０７は、優先度の低いＯＦＡＳＣ１１１からの許可（allow）の設定を破棄する。そして、新規のフロー登録又は有効なメッセージの場合、管理部３０７は、送信部３０８を経由して、メッセージをＯＦＳ２１に送信し、ＯＦＳ２１にフローを登録する。
【０１０６】
管理部３０７は、ＯＦＳ２１にフロー設定した装置をテーブルのcookieに設定する。
【０１０７】
（アプリケーションの説明）
次に、上記の説明の用いたアプリケーションについて、説明する。
【０１０８】
（１）Stateful FW 
Stateful FWは、ＯＦＮ１４１の外側のネットワークへ出ていくパケットを検出すると、その出ていくパケットに対する内側方向のパケットを許可するという、動的な設定機能を備えたファイアウォール（ＦＷ）である。Stateful FWは、外部から直接接続してくる通信を遮断し、必要な通信だけを通すことができる。本実施形態の情報処理システム１００は、Stateful FWが動作しているＯＦＡＳＣ１１２にＰ−ｉｎしたときに、その宛先から逆向きに入ってくる通信を許可するフローを登録することができる。
【０１０９】
一般的なＯＦは、通信先サーバから戻ってくる通信についても、Ｐ−ｉｎの処理を実行し、所定のＦＷを経由する処理が必要であった。しかし、本実施形態の情報処理システム１００は、パケットの送信時に、ＯＦＳ２１に戻りのフローを登録できる。そのため、戻りの通信は、ＦＷを経由する必要がない。このように、情報処理システム１００は、効率の良い通信を実現することができる。
【０１１０】
（２）ロードバランサ
本実施形態のロードバランサは、ＯＦＮ１４１の外部にＷＥＢサーバを冗長化して複数台設置している場合に、接続先を決定する。ＷＥＢサーバ宛のパケット（Ｌ４のポート番号が（８０番又は４４３番））が、Ｐ−ｉｎすると、ＯＦＡＳＣ１１１のロードバランサは、所定のアルゴリズムに基づいて、接続先を決定する。情報処理システム１００は、決定した接続先へのフローをＯＦＳ２１に設定する。この設定に基づいて、以後の同じ端末装置１２１は、ロードバランサを経由せずに、ＯＦＳ２１に登録されたフロー情報に基づいて、外部のＷＥＢサーバと通信できる。
【０１１１】
（３）アプリケーションのフロー設定の競合
１つのＰ−ｉｎに対してＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２が、双方とも、フロー設定しようとした場合を想定する。この場合、本実施形態の情報処理システム１００では、後段に接続されているＯＦＡＳＣ１１２（つまり、Stateful FW）のフロー設定が、優先される。一方、前段にあるＯＦＡＳＣ１１１（つまり、ロードバランサ）のフロー設定は、破棄される。このように、情報処理システム１００は、優先度が高いアプリケーションの設定をＯＦＳ２１に設定する。
【０１１２】
また、ロードバランサのパケット自体は、OpenFlowのPacket-outメッセージに基づいて、宛先に届く。そのため、ＯＦＡＳＣ１１１（つまり、ロードバランサ）のフローは、次に入ってくるパケットのＰ−ｉｎにおける動作で、ＯＦＳ２１に反映される。このように、情報処理システム１００は、優先度が低いアプリケーションが実行するＯＦＡＳＣ１１１の設定もＯＦＳ２１に投入できる。
【０１１３】
（効果の説明）
本実施形態の効果について説明する。
【０１１４】
まず、本実施形態の情報処理システム１００は、OpenFlowのフローを適切に設定するとの効果を得ることができる。
【０１１５】
その理由は、次のとおりである。
【０１１６】
第１の制御装置であるＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、実行するアプリケーションの優先度の順に、直列的に接続されている。そして、優先度が高いＯＦＡＳＣ１１２の判定部２０５は、自装置のＰ−ｉｎに対する処理結果のメッセージが有効である場合、優先度が低い前の装置であるＯＦＡＳＣ１１１のメッセージを破棄して、自装置のメッセージを次の装置（ＯＦＣＩ１１３）に送信する。つまり、最も優先度が高いＯＦＡＳＣ１１２の有効なメッセージがＯＦＣＩ１１３に送信される。
【０１１７】
そして、第２の制御装置であるＯＦＣＩ１１３の判定部３０５は、判定部２０５と同様に、自装置のメッセージが有効な場合は、自装置のメッセージを管理部３０７に送信し、無効な場合は、ＯＦＡＳＣ１１２のメッセージを管理部３０７に送信するためである。
【０１１８】
つまり、情報処理システム１００のＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２は、優先度が低い装置から、メッセージをバケツリレー方式で送信するため、優先度の高い装置のメッセージに基づくフローが、ＯＦＳ２１に送信されるためである。
【０１１９】
この動作を基に、情報処理システム１００は、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２の処理の結果の取りこぼしを防止し、相反するフローのＯＦＳ２１への投入を防ぐことができる。また、情報処理システム１００は、優先度の高いＯＦＡＳＣ１１２が設定したフローを、優先度の低いＯＦＡＳＣ１１１で上書きされてしまうことを防ぐことができる。
【０１２０】
また、上記構成を基に、情報処理システム１００は、ＯＦ−Ｃｈ１３１の負荷を減らすとの効果を実現できる。
【０１２１】
その理由は、次のとおりである。
【０１２２】
情報処理システム１００は、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２で処理した結果を、直接に、ＯＦＩ（ＯＦＣＩ１１３）から、ＯＦＳ２１へ投入することができる。そのため、情報処理システム１００は、Stateful FWのような双方向の通信を制御するアプリケーションの場合、Ｐ−ｉｎしてきた「行きのパケット」を基に、「帰りのパケット」に必要なフローをＯＦＳ２１に登録できる。ＯＦ−Ｃｈ１３１は、フローの登録及び変更が大量に起こると、輻輳が起こる。ＯＦ−Ｃｈ１３１は、その輻輳に基づく障害が発生する可能性がある。しかし、情報処理システム１００は、「行きのパケット」を基に、「帰りのパケット」のフローをＯＦＳ２１に設定できるため、ＯＦ−Ｃｈの負荷を減らすことができる。
【０１２３】
また、情報処理システム１００は、アプリケーションの負荷を低減するとの効果を得ることができる。
【０１２４】
その理由は、次のとおりである。
【０１２５】
情報処理システム１００において、複数のＡｐｐＳＶ２０３は、並列に動作できる。そして、情報処理システム１００は、負荷が重いＡｐｐＳＶ２０３の処理又は専用装置を必要とするＡｐｐＳＶ２０３の処理を、ＯＦＩ（ＯＦＣＩ１１３）の外部で実行できる。そして、その場合でも、情報処理システム１００は、フローの整合性を保つことができるためである。
【０１２６】
［変形例］
以上のように説明したＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３（以下、まとめて、制御装置と呼ぶ）は、次のように構成される。
【０１２７】
例えば、制御装置の各構成部は、ハードウェア回路で構成されても良い。
【０１２８】
また、制御装置は、制御装置の各構成部をネットワーク又はバスを介して接続した複数の情報処理装置を用いて構成されても良い。
【０１２９】
また、制御装置は、複数の構成部を１つのハードウェアで構成しても良い。
【０１３０】
また、制御装置は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）とを含むコンピュータ装置として実現しても良い。制御装置は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Input / Output Circuit）と、ネットワークインターフェース回路（ＮＩＣ：Network Interface Circuit）とを含むコンピュータ装置として実現しても良い。
【０１３１】
図６は、制御装置の変形例に係る情報処理装置６００の構成の一例を示すブロック図である。
【０１３２】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータ装置を構成している。
【０１３３】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図４及び図５に示す各部としての各機能を実現する。ここで、図４に示す各部とは、Ｐ−ｉｎ受信部２０１、受信パケット処理部２０２、ＡｐｐＳＶ２０３、ＯＦメッセージ作成部２０４、判定部２０５、ＯＦメッセージ受信部２０６、及び送信部２０８である。また、図５に示す各部とは、Ｐ−ｉｎ受信部３０１、受信パケット処理部３０２、ＯＦメッセージ作成部３０４、判定部３０５、ＯＦメッセージ受信部３０６、管理部３０７、及び送信部３０８である。
【０１３４】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶として使用しても良い。
【０１３５】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０に保存して、保存したプログラムを基に動作しても良い。
【０１３６】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Programable-ROM）又はフラッシュＲＯＭである。
【０１３７】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Dynamic-RAM）である。
【０１３８】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作しても良い。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Solid State Drive）又はディスクアレイ装置である。
【０１３９】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性の記憶媒体である。一方、ＲＡＭ６３０は、揮発性の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０１４０】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Universal Serial Bus）カードである。
【０１４１】
入力機器６６０は、情報処理装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１４２】
表示機器６７０は、情報処理装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１４３】
ＮＩＣ６８０は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Local Area Network）カードである。
【０１４４】
このように構成された情報処理装置６００は、ＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３と同様の効果を得ることができる。
【０１４５】
その理由は、情報処理装置６００のＣＰＵ６１０が、プログラムに基づいて、ＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３と同様の機能を実現できるためである。
【０１４６】
なお、情報処理装置６００は、複数のプログラムを実行させ、ＯＦＡＳＣ１１１、ＯＦＡＳＣ１１２及びＯＦＣＩ１１３としての複数の装置の機能を実現してもよい。
【０１４７】
＜第２の実施形態＞
第１の実施形態では、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２が、ＡｐｐＳＶ２０３を含んでいる。しかし、ＡｐｐＳＶ２０３の位置は、これに限る必要はない。例えば、ＯＦＣＩ１１３が、ＡｐｐＳＶ２０３を含んでもよい。
【０１４８】
例えば、ＯＦＡＳＣ１１２の数が増えて、多段接続となる構成の場合、情報処理システム１００は、ＯＦＳ２１からのＰ−ｉｎの入力から、ＯＦＳ２１にメッセージを書き込むまでに掛かる時間が大きくなる場合が想定される。そのため、セキュリティに関連するなど優先度の高いＡｐｐＳＶ２０３の結果の設定の時間の削減が、望まれている。
【０１４９】
そこで、第２の実施形態として、ＯＦＣＩ１１３が、ＡｐｐＳＶ２０３を含む場合について説明する。
【０１５０】
図７は、第２の実施形態に係るＯＦＣＩ１１４の構成の一例を示すブロック図である。
【０１５１】
本実施形態のＯＦＣＩ１１４は、第１の実施形態のＯＦＣＩ１１３の構成に加え、１つ又は複数のＡｐｐＳＶ２０３を含む。このように、ＯＦＣＩ１１４に含まれる構成は、第１の実施形態で説明した構成と同様のため、構成の詳細な説明を省略する。また、ＯＦＣＩ１１４の動作は、ＡｐｐＳＶ２０３に関連する動作を除き、第１の実施形態のＯＦＣＩ１１３と同様のため、ＡｐｐＳＶ２０３に関連する動作を中心に説明する。
【０１５２】
ＯＦＣＩ１１４に含まれるＡｐｐは、セキュリティ的に優先度が高いアプリケーション、例えば、遮断系のフローを投入する必要があるアプリケーションが想定される。なお、重い処理が必要なアプリケーションは、ＯＦＡＳＣ１１１など、ＯＦＣＩ１１４の外部の装置の含ませた方がよい。
【０１５３】
（ＯＦＣＩ１１４の動作の説明）
第１の実施形態の同様の動作の説明を適宜省略し、本実施形態の特有の動作を中心に説明する。
【０１５４】
ＯＦＣＩ１１４は、予め、ＯＦＡＳＣ１１１及びＯＦＡＳＣ１１２に含まれるＡｐｐＳＶ２０３と内部に含むＡｐｐＳＶ２０３とで利用するアプリケーションのポート番号（Ｌ４）を保持する。
【０１５５】
本実施形態のＰ−ｉｎ受信部３０１、判定部３０５、ＯＦメッセージ受信部３０６、管理部３０７、及び送信部３０８は、第１に実施形態の同様のため、詳細な説明を省略する。
【０１５６】
受信パケット処理部３０２は、ＯＦＣＩ１１４に含まれるＡｐｐＳＶ２０３で処理するメッセージの場合、メッセージをＡｐｐＳＶ２０３に送信する。その他の受信パケット処理部３０２の動作は、同様のため、詳細な説明を省略する。
【０１５７】
ＡｐｐＳＶ２０３は、処理の結果をＯＦメッセージ作成部３０４に送信する。
【０１５８】
ＯＦメッセージ作成部３０４は、ＡｐｐＳＶ２０３からメッセージを受信した場合、そのメッセージを基にflow-modメッセージを作成する。その際、ＯＦメッセージ処理部３０３は、処理をしたＡｐｐＳＶ２０３が識別できるように、cookieを設定する。なお、本実施形態のcookieのビットは、第１の実施形態と同様でも良い。ただし、ＯＦＣＩ１１４は、含まれるＡｐｐＳＶ２０３を識別できるように、cookieを設定してもよい。ＯＦメッセージ３０３のその他の動作は、第１の実施形態と同様のため、詳細な説明を省略する。
【０１５９】
このような構成を基に、本実施形態は、第１の実施形態の効果に加え、セキュリティなど優先度が高いＡｐｐＳＶ２０３に対応したフローを適切に適用できるとの効果を得ることができる。
【０１６０】
その理由は、次のとおりである。
【０１６１】
ＯＦＣＩ１１４は、優先度が高いＡｐｐＳＶ２０３を含む。そのため、ＯＦＣＩ１１４のＯＦＩとしての機能は、他の装置を介さず、優先度の高いＡｐｐＳＶ２０３の結果を、ＯＦＳ２１に適用可能なためである。
【０１６２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１６３】
１１    ＯＦＡＳＣ
１２    ＯＦＩ
２１    ＯＦＳ
１００    情報処理システム
１０１    情報処理システム
１０２    情報処理システム
１１１    ＯＦＡＳＣ
１１２    ＯＦＡＳＣ
１１３    ＯＦＣＩ
１１４    ＯＦＣＩ
１２１    端末装置
１２２    通信先装置
１２３    ＡｐｐＳＶ
１２４    ＯＦＣ
１３１    ＯＦ−Ｃｈ
１４１    ＯＦＮ
２０１    Ｐ−ｉｎ受信部
２０２    受信パケット処理部
２０３    ＡｐｐＳＶ
２０４    ＯＦメッセージ作成部
２０５    判定部
２０６    ＯＦメッセージ受信部
２０８    送信部
３０１    Ｐ−ｉｎ受信部
３０２    受信パケット処理部
３０４    ＯＦメッセージ作成部
３０５    判定部
３０６    ＯＦメッセージ受信部
３０７    管理部
３０８    送信部
６００    情報処理装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
７００    記憶媒体
【図１】
2016082344.tif 000003
【図２】
2016082344.tif 000004
【図３】
2016082344.tif 000005
【図４】
2016082344.tif 000006
【図５】
2016082344.tif 000007
【図６】
2016082344.tif 000008
【図７】
2016082344.tif 000009
【図８】
2016082344.tif 000010
【図９】
2016082344.tif 000011
【図１０】
2016082344.tif 000012