(57)【要約】【課題】ユーザが使用するアプリケーションにて発生したパケットデータを、通信制限状態であっても、送信することを一時的に許可する通信処理装置を提供する。【解決手段】通信アプリ１５の実行に伴いパケットデータが生成された旨をＰＡＣＫＥＴ＿ＩＮにより受け取ると（Ｓｅｑ２５）、オープンフロー・コントローラ１１は、該パケットデータを生成した通信アプリ１５が、ユーザが意図的に使用しているフォアグラウンドアプリか、ユーザが意図的には使用していないバックグラウンドアプリかを識別し、フォアグラウンドアプリであった場合、自動的に、または、ユーザからの応答に従い（Ｓｅｑ３１）、通信アプリ１５からのパケットデータの通信制限状態を解除するＦＬＯＷ＿ＭＯＤをオープンフロー・スイッチ１２に送信し（Ｓｅｑ３２）、かつ、解除タイマを起動して（Ｓｅｑ３５）、満了するまでの間、パケットデータの送信を許可する（Ｓｅｑ３６）。【選択図】        図４
2016144117.tif 000002
【特許請求の範囲】
【請求項１】
オープンフロー技術を適用して、オープンフロー・コントローラとオープンフロー・スイッチとを備え、実装されているアプリケーション毎の通信を制御する通信処理装置であって、前記アプリケーションのうちいずれかのアプリケーションの実行によりパケットデータが生成された場合、該パケットデータを生成した前記アプリケーションが、ユーザが意図的に使用しているアプリケーションすなわちフォアグラウンドアプリケーションか、あるいは、ユーザが意図的には使用していないアプリケーションすなわちバックグラウンドアプリケーションかを識別し、当該アプリケーションが前記フォアグラウンドアプリケーションであった場合、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあっても、該通信制限状態を一時的に解除して、前記パケットデータを送信することを特徴とする通信処理装置。
【請求項２】
パケットデータを生成した前記アプリケーションが、前記バックグラウンドアプリケーションであった場合、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあったときには、前記パケットデータを送信することなく破棄することを特徴とする請求項１に記載の通信処理装置。
【請求項３】
パケットデータを生成した前記アプリケーションが、前記フォアグラウンドアプリケーションであった場合において、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあったときには、該通信制限状態を解除するか否かをユーザに問い合わせ、問い合わせ結果として、通信制限状態の解除を許可しない旨のユーザからの応答があった場合、前記パケットデータを送信することなく破棄し、一方、通信制限状態の解除を許可する旨のユーザからの応答があった場合、該通信制限状態を一時的に解除して、前記パケットデータを送信することを特徴とする請求項１または２に記載の通信処理装置。
【請求項４】
前記通信制限状態を一時的に解除する期間を、あらかじめ定めた一定時間、前記オープンフロー技術の規格に有効期限として規定されている時間、あるいは、ユーザに指定された時間、のいずれかに設定し、前記通信制限状態を一時的に解除する前記期間が経過した場合、元の通信制限状態に復帰することを特徴とする請求項１ないし３のいずれかに記載の通信処理装置。
【請求項５】
パケットデータを送受信するための通信手段を複数備え、前記オープンフロー・コントローラにポリシとして設定されている前記フォアグラウンドアプリケーションのパケットデータの転送方法が、複数の前記通信手段のうち、特定の通信手段のみを使用してパケットデータを送信する状態に設定されていて、かつ、当該特定の通信手段を使用することができない状態にあった場合、前記ポリシとして設定されていた当該フォアグラウンドアプリケーションのパケットデータの転送方法を、一時的に破棄して、複数の前記通信手段のうち、他の通信手段を使用してパケットデータを送信することを可能とする状態に設定し直すことにより、当該フォアグラウンドアプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあっても、該通信制限状態を一時的に解除して、前記パケットデータを送信することを可能にすることを特徴とする請求項１ないし４のいずれかに記載の通信処理装置。
【請求項６】
オープンフロー技術を適用して、オープンフロー・コントローラとオープンフロー・スイッチとを備え、実装されているアプリケーション毎の通信を制御する通信処理方法であって、前記アプリケーションのうちいずれかのアプリケーションの実行によりパケットデータが生成された場合、該パケットデータを生成した前記アプリケーションが、ユーザが意図的に使用しているアプリケーションすなわちフォアグラウンドアプリケーションか、あるいは、ユーザが意図的には使用していないアプリケーションすなわちバックグラウンドアプリケーションかを識別し、当該アプリケーションが前記フォアグラウンドアプリケーションであった場合、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあっても、該通信制限状態を一時的に解除して、前記パケットデータを送信することを特徴とする通信処理方法。
【請求項７】
パケットデータを生成した前記アプリケーションが、前記バックグラウンドアプリケーションであった場合、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあったときには、前記パケットデータを送信することなく破棄することを特徴とする請求項６に記載の通信処理方法。
【請求項８】
パケットデータを生成した前記アプリケーションが、前記フォアグラウンドアプリケーションであった場合において、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあったときには、該通信制限状態を解除するか否かをユーザに問い合わせ、問い合わせ結果として、通信制限状態の解除を許可しない旨のユーザからの応答があった場合、前記パケットデータを送信することなく破棄し、一方、通信制限状態の解除を許可する旨のユーザからの応答があった場合、該通信制限状態を一時的に解除して、前記パケットデータを送信することを特徴とする請求項６または７に記載の通信処理方法。
【請求項９】
前記通信制限状態を一時的に解除する期間を、あらかじめ定めた一定時間、前記オープンフロー技術の規格に有効期限として規定されている時間、あるいは、ユーザに指定された時間、のいずれかに設定し、前記通信制限状態を一時的に解除する前記期間が経過した場合、元の通信制限状態に復帰することを特徴とする請求項６ないし８のいずれかに記載の通信処理方法。
【請求項１０】
請求項６ないし９のいずれかに記載の通信処理方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする通信処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信処理装置、通信処理方法および通信処理プログラムに関し、特に、スマートフォンやタブレット端末のような機器間通信を行うスマートデバイスや、Ｍ２Ｍ（Machine  to  Machine）端末など、複数の通信手段を有する移動機等に好適に適用可能な通信処理装置、通信処理方法および通信処理プログラムに関する。
【背景技術】
【０００２】
近年、通信インフラの急速な発展に伴い、各種の通信処理装置が登場し、種々の通信形態で通信を行うようになってきている。特に、通信処理装置として、スマートフォンやタブレット端末のようなモバイルデータに関する機器間通信を行うスマートデバイスやＭ２Ｍ（Machine  to  Machine）端末など、複数の通信手段を有する移動機等が急速に普及してきている。かくのごとき移動機等の通信処理装置において、ユーザは、課金等の理由により、当該通信処理装置に実装されているアプリケーションのうち、或る特定のアプリケーションに関するセルラー系のモバイルデータの通信を制限したい場合がある。かかる場合、セルラー系のモバイル通信として一般的に普及しているスマートフォンにおいては、アプリケーション毎にモバイルデータの通信を制限することができず、モバイルデータ通信自体をオフとする以外には、モバイルデータの通信を制限する方法がなかった。
【０００３】
また、最近、通信ネットワークを構成する通信機器（通信処理装置）の複雑な転送動作やネットワーク構成を柔軟に変更制御するためのソフトウェア定義ネットワーク（Software  Defined  Network）技術の一つとして、業界団体Open  Networking  Foundationにより標準仕様が制定された非特許文献１の“OpenFlow  Switch  Specification  Version  1.0.0”に記載のオープンフロー（OpenFlow）技術が注目されている。該オープンフロー（OpenFlow）技術においては、例えば、非特許文献２の飯星貴裕らによる「OpenFlowによる移動端末通信制御のスケーラビリティ向上方式とその実装」（信学技報、ＮＳ２０１２−２４７）に記載されているように、通信機器（通信処理装置）内に、通信制御機能として、ネットワーク制御を司るオープンフロー（OpenFlow）コントローラとパケットデータの転送処理を行うオープンフロー（OpenFlow）スイッチと、の双方の機能を互いに分離した構成として導入するとともに、通信機器（通信処理装置）内の各アプリケーションの通信処理に関する制御を該オープンフロー（OpenFlow）コントローラにて実施させることによって、通信機器（通信処理装置）内に実装されたアプリケーション毎の通信の制御を柔軟に行うことも可能である。したがって、例えば、通信処理装置に実装されているアプリケーションのうち、或る特定のアプリケーションに関するモバイルデータの通信を制限することも可能である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Open  Networking  Foundation，“OpenFlow  Switch  Specification  Version  1.0.0”，December  ３１，２００９，http://archive.openflow.org/documents/openflow-spec-v1.0.0.pdf
【非特許文献２】飯星貴裕、他：「OpenFlowによる移動端末通信制御のスケーラビリティ向上方式とその実装」、信学技報、ＮＳ２０１２−２４７
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術においては、次のような問題がある。前述のように、移動機のような通信機器（通信処理装置）においてセルラー系のモバイル通信自体をオフとした場合、たとえ、二つ（複数）の通信手段を備えた移動機であっても、セルラー系以外の他の通信手段である例えばＷｉ−Ｆｉ（Wireless  Fidelity：無線ＬＡＮ）を使用することができない環境下においては、例えば、メールの受信動作も実施することができなくなってしまう。また、ユーザがモバイルデータの通信が必要な或るアプリケーションを一時的に使いたい場合、当該ユーザは、手動によってモバイルデータ通信を一旦有効な状態に設定して、該アプリケーションを使用し、該アプリケーションの使用後に、再度、モバイルデータ通信を無効な状態に設定しなくてはならず、ユーザの利便性を低下させてしまう。
【０００６】
また、モバイル通信自体をオフとした場合、移動機が、セルラーの基地局に対してＰＳ（Packet  Switch）ドメインのデタッチ（Detach：切り離し）を行うこととなる。つまり、ユーザがモバイルデータの通信が必要な或るアプリケーションを一時的に使うために、モバイル通信を無効な状態から有効な状態に切り替えようとした際に、基地局に対してＰＳドメインの位置登録が必要となり、モバイルデータの通信を再度行うことを可能にするためには、位置登録のための時間を要することになり、この点でおいても、ユーザの利便性を低下させてしまう。
【０００７】
一方、オープンフロー（OpenFlow）技術を適用した場合、前述のように、アプリケーション毎に通信の制御を実施することができる特徴があり、或るアプリケーションに関するパケットデータの通信を制限したいケースであっても、アプリケーション毎に通信の制限や許可を実施することが可能である。しかしながら、オープンフロー（OpenFlow）技術を適用した場合においても、ユーザが、通信制限と設定されている（以降では通信を制限している状態と呼ぶ）アプリケーションを使いたい場合、当該ユーザは、手動で、通信制限状態として破棄に設定されている本アプリケーションに対するオープンフロー（OpenFlow）の設定を一旦解除して、該アプリケーションを使用した後に、再度、オープンフロー（OpenFlow）の設定を通信制限状態に戻すことが必要であり、ユーザ利便性が低い点に関しては、オープンフロー（OpenFlow）技術を適用しない場合と同様である。
【０００８】
つまり、従来の技術においては、或るアプリケーションに関するモバイルデータ（パケットデータ）の発生時に、自動的に、あるいは、ユーザに対してモバイルデータ通信の一時的な通信制限の解除の可否を確認して、ユーザからの応答に基づいて、あらかじめ定めた或る一定期間あるいはユーザが指定した一定期間の間に限って、当該アプリケーションの通信を許可する仕組みが無かった。
【０００９】
（本発明の目的）
本発明は、以上のような問題に鑑みてなされたものであり、ユーザが使用するアプリケーションにおいてパケットデータが発生した際に、通信制限状態であっても、自動的に、あるいは、該パケットデータの通信の可否をユーザに問い合わせた結果としての、ユーザからの許可応答によって、一定期間の間、パケットデータの通信を許可する仕組みを備えた通信処理装置、通信処理方法および通信処理プログラムを提供することを、その目的としている。
【課題を解決するための手段】
【００１０】
前述の課題を解決するため、本発明による通信処理装置、通信処理方法および通信処理プログラムは、主に、次のような特徴的な構成を採用している。
【００１１】
（１）本発明による通信処理装置は、オープンフロー技術を適用して、オープンフロー・コントローラとオープンフロー・スイッチとを備え、実装されているアプリケーション毎の通信を制御する通信処理装置であって、前記アプリケーションのうちいずれかのアプリケーションの実行によりパケットデータが生成された場合、該パケットデータを生成した前記アプリケーションが、ユーザが意図的に使用しているアプリケーションすなわちフォアグラウンドアプリケーションか、あるいは、ユーザが意図的には使用していないアプリケーションすなわちバックグラウンドアプリケーションかを識別し、当該アプリケーションが前記フォアグラウンドアプリケーションであった場合、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあっても、該通信制限状態を一時的に解除して、前記パケットデータを送信することを特徴とする。
【００１２】
（２）本発明による通信処理方法は、オープンフロー技術を適用して、オープンフロー・コントローラとオープンフロー・スイッチとを備え、実装されているアプリケーション毎の通信を制御する通信処理方法であって、前記アプリケーションのうちいずれかのアプリケーションの実行によりパケットデータが生成された場合、該パケットデータを生成した前記アプリケーションが、ユーザが意図的に使用しているアプリケーションすなわちフォアグラウンドアプリケーションか、あるいは、ユーザが意図的には使用していないアプリケーションすなわちバックグラウンドアプリケーションかを識別し、当該アプリケーションが前記フォアグラウンドアプリケーションであった場合、当該アプリケーションが生成した前記パケットデータの通信が制限された通信制限状態にあっても、該通信制限状態を一時的に解除して、前記パケットデータを送信することを特徴とする。
【００１３】
（３）本発明による通信処理プログラムは、前記（２）に記載の通信処理方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
【発明の効果】
【００１４】
本発明の通信処理装置、通信処理方法および通信処理プログラムによれば、以下のような効果を奏することができる。
【００１５】
第１に、ユーザが意図的に使用するフォアグラウンドアプリケーションの場合、アプリケーション毎に、アプリケーション状態の認識処理とインタフェースの通信ポートの接続状態とに基づいて、一時的に、通信可能な状態に自動的に設定する仕組みを備えているので、ユーザが通信制限状態にあるアプリケーションを一時的に意図して使用する場合においても、本アプリケーションに対する通信制限状態を解除するための操作をユーザ自身が事前に行う必要がない。一方、ユーザが意図的には使用していないバックグラウンドアプリケーションの場合には、設定されているフローエントリを変更することなく、通信制限状態にあるアプリケーションについてはパケットデータの送信動作はそのまま制限された状態が継続する。
【００１６】
第２に、ユーザが、通信制限状態にあるアプリケーションを一時的に意図して使用する場合において、該アプリケーションのパケットデータが発生した場合には、該アプリケーションの使用中のタイミングで、ユーザインタフェース（ＵＩ）を介して、当該パケットデータの送信を許可するか否かをユーザに問い合わせることも可能であるので、ユーザは、リアルタイムで、パケットデータの発生を知ることができるとともに、さらに、発生した当該パケットデータの送信の許可・不許可を選択することができる。
【００１７】
第３に、ユーザが、通信制限状態にあるアプリケーションを一時的に意図して使用する場合において、該アプリケーションのパケットデータが発生した場合には、該アプリケーションの通信制限状態を解除する期間を、あらかじめ設定した一定時間またはユーザが選択した一定時間の間に限って設定することができるので、該一定時間の間のみ通信を許可し、該一定時間が経過した後においては、自動的に、通信を制限する元の状態に復帰することが可能であり、ユーザの手動設定の手間を省くことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明による通信処理装置の機能ブロック構成の一例を示すブロック構成図である。
【図２】図１の通信処理装置に実装したオープンフロー（OpenFlow）コントローラ内の機能ブロック構成の一例を示すブロック構成図である。
【図３】オープンフロー（OpenFlow）技術を用いた基本的な動作シーケンスの一例を示すシーケンス図である。
【図４】本発明の実施形態における通信処理装置の動作シーケンスの一例を示すシーケンス図である。
【図５】本発明の実施形態における通信処理装置の図４の動作に続く動作シーケンスの一例を示すシーケンス図である。
【図６】本発明の実施形態における通信処理装置において通信の制限を一時的に解除するか否かをユーザに確認するために画面表示する確認画面の一例を示す画面図である。
【図７】図１の通信処理装置に実装したオープンフロー（OpenFlow）コントローラの動作の一例を説明するためのフローチャートである。
【図８】本発明の実施形態における通信処理装置の図４、図５とは異なる動作シーケンスの一例を示すシーケンス図である。
【発明を実施するための形態】
【００１９】
以下、本発明による通信処理装置、通信処理方法および通信処理プログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明による通信処理装置および通信処理方法について説明するが、かかる通信処理方法をコンピュータにより実行可能な通信処理プログラムとして実施するようにしても良いし、あるいは、通信処理プログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。また、以下の各図面に付した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではないことも言うまでもない。
【００２０】
＜本発明の特徴＞
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、通信が制限された状態にあるアプリケーションが生成したパケットデータを検出した際に、該パケットデータに紐付くアプリケーションがフォアグラウンドのアプリケーションであるか、または、バックグラウンドのアプリケーションであるかを確認する機能を備え、該パケットデータに紐付くアプリケーションがフォアグラウンドのアプリケーションであった場合には、ユーザが意図的に使用しているアプリケーションであると判定して、該パケットデータの通信を一時的に許可する仕組みを備えていることを主要な特徴としている。
【００２１】
より具体的には、本発明は、次のような特徴を有している。例えば、スマートフォンなどの移動機にインストールされたアプリケーションから送信されたパケットデータ（フロー）を、一般の移動機が保有するセルラー（ＬＴＥ（Long  Term  Evolution）や３Ｇ（３rd  Generation））通信やＷｉ−Ｆｉ（Wireless  Fidelity：無線ＬＡＮ）通信などの複数のインタフェースに対して選択的に送信する技術もしくは破棄する技術として、前記非特許文献１の“OpenFlow  Switch  Specification”（オープンフロー・スイッチ仕様）に規定されたオープンフロー（OpenFlow）技術がある。
【００２２】
オープンフロー（OpenFlow）技術は、ネットワーク制御を行うオープンフロー（OpenFlow）コントローラとパケットデータの転送処理を行うオープンフロー（OpenFlow）スイッチとから構成されている。そして、オープンフロー（OpenFlow）技術は、通信処理装置内に搭載したオープンフロー（OpenFlow）コントローラから同じく通信処理装置内のオープンフロー（OpenFlow）スイッチに対して、どのようなパケットデータをどう処理するかということを規定するフローエントリと呼ばれる条件や、パケットデータの送信経路を示すセルラーやＷｉ−Ｆｉなどのインタフェースやパケットデータのドロップ（drop：破棄）を指示する。該指示に従って、通信処理装置内に実装されたブラウザ、メール、映像ストリームといった特定の通信アプリケーションのパケットデータ（フロー）を特定のインタフェースに対して送信したり、あるいは、オープンフロー（OpenFlow）スイッチにより通信制限を行なったりする、等の通信制御を行う。そのため、オープンフロー（OpenFlow）の技術によって、アプリケーション毎にセルラー系のモバイルデータ通信の制限やＷｉ−Ｆｉ通信の制限等の通信制御を行うことができる。
【００２３】
本発明においては、オープンフロー（OpenFlow）の技術を適用することにより、モバイルデータ通信などの通信の制限を実施しているユーザが、一時的に、特定のアプリケーションを使用して生成したパケットデータを送信するために、モバイルデータ通信などの通信の制限を解除したい場合には、事前に、ユーザが手動でモバイルデータ通信などの通信の制限解除を行う必要がなく、自律的に、もしくは、ユーザへの確認処理を経て、あらかじめ定めた一定時間の間、モバイルデータ通信などの通信の制限を自動的に解除する仕組みを実現している。
【００２４】
＜実施形態の構成例＞
次に、本発明による通信処理装置の構成例について、図１を参照して詳細に説明する。図１は、本発明による通信処理装置の機能ブロック構成の一例を示すブロック構成図であり、該通信処理装置の一例として、スマートフォンやタブレット端末のような移動機に適用した場合を例に取って示している。
【００２５】
図１に示す通信処理装置は、オープンフロー(OpenFlow)コントローラ１１、オープンフロー（OpenFlow）スイッチ１２、インタフェース１３、ユーザインタフェース（ＵＩ：User  Interface）１４および通信アプリ１５を有して構成されている。インタフェース１３は、Ｗｉ−Ｆｉ部１３ａ、ＬＴＥや３Ｇ等のセルラー部１３ｂ等を含んで構成されている。
【００２６】
通信アプリ１５は、例えば、ブラウザ、メール、マップ、ストリーミング映像、ＳＮＳ（Social  Network  Service）などのような、通信処理装置（移動機）にプリインストールされているか、あるいは、ユーザが通信処理装置（移動機）にインストールしている通信機能付きのアプリケーションを指す。以降の説明においては、通信アプリ１５を通信アプリケーションあるいは単にアプリケーションと称することもある。オープンフロー（OpenFlow）技術によって、一般的に、如何なる通信アプリケーションについても、通信アプリケーションに変更を加えることなく、当該通信アプリケーションが送信するパケットデータの制御を行うことが可能である。
【００２７】
インタフェース１３は、パケットデータの転送を行うための通信手段を提供するものであり、Ｗｉ−Ｆｉ部１３ａやＬＴＥ、３Ｇといったセルラー部１３ｂのモデムやチップセット等、一般的なスマートフォンに搭載されているモデムやチップセットを指す。以降の説明においては、インタフェース１３を構成するモデムやチップセットをＷｉ−Ｆｉのポート、セルラーのポートと称する。本実施形態においては、Ｗｉ−Ｆｉのポート、セルラーのポートの２つの通信手段を備えている場合について示しているが、２つ以上の複数の通信手段を備えている場合であっても勿論差し支えない。
【００２８】
オープンフロー（OpenFlow）コントローラ１１、オープンフロー（OpenFlow）スイッチ１２は、前記非特許文献１に記載の“OpenFlow  Switch  Specification”（業界団体ＯＮＦ（Open  Networking  Foundation）にて制定）によって規定されている機能ブロックを指している。オープンフロー（OpenFlow）スイッチ１２とオープンフロー（OpenFlow）コントローラ１１との間の通信は、“OpenFlow  Switch  Specification”によって規定されたオープンフロー（OpenFlow）プロトコルを使用して行われる。
【００２９】
オープンフロー（OpenFlow）スイッチ１２は、オープンフロー（OpenFlow）コントローラ１１から指示されたフローエントリと称するパケットデータ通信制御を行うための条件やアクションの内容をリスト化したフローテーブルに従って動作する。該フローテーブルに設定されたフローエントリに応じて、例えば、メールアプリケーションの通信の場合は、インタフェース１３の送信ポートとして、Ｗｉ−Ｆｉ部１３ａを用いたＷｉ−Ｆｉ通信を優先する送信ポートを指定し、ブラウザアプリケーションの通信の場合は、Ｗｉ−Ｆｉ部１３ａのみの使用が可能なＷｉ−Ｆｉ  onlyといった送信ポートの指定が可能である。
【００３０】
ここで、インタフェース１３の送信ポートの指定に関しては、Ｗｉ−Ｆｉ優先（Ｗｉ−Ｆｉ部１３ａを優先的に用いる場合）、Ｗｉ−Ｆｉ  onlyすなわちＷｉ−Ｆｉ固定（Ｗｉ−Ｆｉ部１３ａのみを用いる場合）、セルラー優先（セルラー部１３ｂを優先的に用いる場合）、セルラーonlyすなわちセルラー固定（セルラー部１３ｂのみを用いる場合）、ドロップ（drop：破棄）といった送信ポートの指定が可能である。
【００３１】
送信ポートの指定としてＷｉ−Ｆｉ優先とした場合、Ｗｉ−Ｆｉ  ＡＰ（アクセスポイント）とのアソシエーションが完了している場合はＷｉ−Ｆｉ部１３ａを使用し、完了していない場合は、セルラー部１３ｂを使用し通信を行う。送信ポートの指定としてＷｉ−Ｆｉ  onlyすなわちＷｉ−Ｆｉ固定とした場合、Ｗｉ−Ｆｉ  ＡＰとのアソシエーションが完了していない場合には、通信可能なポートが存在しないことになるため、オープンフロー（OpenFlow）スイッチ１２は、パケットデータを送信することなくドロップ（drop：破棄）する。また、送信ポートの指定としてドロップ（drop：破棄）を指定した場合、オープンフロー（OpenFlow）スイッチ１２は、該当するアプリケーションからのパケットデータを必ず破棄するので、当該アプリケーションの通信が制限されることとなる。
【００３２】
ユーザインタフェース（ＵＩ）１４は、ユーザがオープンフロー（OpenFlow）コントローラ１１に対して通信制御の設定を実施したり、通信状態を把握したりするために使用するインタフェースである。ユーザインタフェース（ＵＩ）１４からオープンフロー（OpenFlow）コントローラ１１に対する通信制御の設定を“ポリシ”と称する。
【００３３】
（オープンフロー（OpenFlow）コントローラ１１の構成例）
次に、図１に示したオープンフロー（OpenFlow）コントローラ１１内の機能ブロック構成の一例を、図２を用いて説明する。図２は、図１の通信処理装置に実装したオープンフロー（OpenFlow）コントローラ１１内の機能ブロック構成の一例を示すブロック構成図である。図２に示すように、オープンフロー（OpenFlow）コントローラ１１は、フローエントリ制御部１１ａ、オープンフロー（OpenFlow）メッセージ処理部１１ｂ、アプリケーション状態認識部１１ｃ、ＵＩメッセージ処理部１１ｄ、および、ポリシ・フローエントリ保管部１１ｅを含んで構成されている。
【００３４】
フローエントリ制御部１１ａは、ポリシ・フローエントリ保管部１１ｅに事前に設定登録されたポリシや本発明特有の機能として新たに追加したアプリケーション状態認識部１１ｃの認識情報、インタフェース１３の接続状態等を基にして、アプリケーション毎のパケットデータ（フロー）の処理内容を決定して、フローエントリとして、ポリシ・フローエントリ保管部１１ｅに追加・削除する動作を行うとともに、アプリケーション毎のパケットデータ（フロー）の処理内容を示すフローエントリをオープンフロー（OpenFlow）スイッチ１２に対して送信する制御を行う部位である。オープンフロー（OpenFlow）スイッチ１２は、フローエントリ制御部１１ａから受信したフローエントリをフローテーブルにアプリケーション毎に追加・削除を行うとともに、アプリケーションからパケットデータ（フロー）を受け取った際に、該フローエントリに応じた処理を行う。
【００３５】
また、フローエントリ制御部１１ａは、ＵＩメッセージ処理部１１ｄから受け取ったユーザからの通知を受け取った際に、パケットデータに関するアプリケーション毎のポリシの通知であった場合には、ポリシ・フローエントリ保管部１１ｅに事前に設定登録し、通信制限を解除する時間を指示する通知であった場合には、該通知に指示された時間を解除タイマに設定して、計時動作を開始する。
【００３６】
オープンフロー（OpenFlow）メッセージ処理部１１ｂは、オープンフロー（OpenFlow）プロトコルに準拠して、オープンフロー（OpenFlow）スイッチ１２との間でメッセージを送受信する処理を行う部位であり、オープンフロー（OpenFlow）スイッチ１２から受信したメッセージ（例えばパケットデータを如何に処理するかを問い合わせるPACKET_INメッセージ）をフローエントリ制御部１１ａに通知する処理、および、フローエントリ制御部１１ａからのメッセージ（例えばフローエントリの追加・削除を要求するFLOW_MODメッセージ）をオープンフロー（OpenFlow）スイッチ１２に通知する処理を行う。
【００３７】
アプリケーション状態認識部１１ｃは、フローエントリ制御部１１ａから問い合わせを受けた際に、オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージによって通知されたパケットデータに紐付くアプリケーションが、ユーザが意図的に使用しているアプリケーションすなわちフォアグラウンドのアプリケーションであるのか、あるいは、ユーザが意図的には使用していないアプリケーションすなわちバックグラウンドのアプリケーションであるのかを識別して、その識別結果をフローエントリ制御部１１ａに返信する処理を行う部位である。
【００３８】
ＵＩメッセージ処理部１１ｄは、フローエントリ制御部１１ａからの通知を、ユーザに提示するために画面上に画面表示する処理、および、ユーザから指示や応答をフローエントリ制御部１１ａに通知する処理を行う部位である。
【００３９】
ポリシ・フローエントリ保管部１１ｅは、フローエントリ制御部１１ａからのポリシや、フローエントリ制御部１１ａからオープンフロー（OpenFlow）スイッチ１２に送信して、オープンフロー（OpenFlow）スイッチ１２のフローテーブルに設定するフローエントリをオープンフロー（OpenFlow）コントローラ１１内にも内部的に保管する部位である。
【００４０】
＜実施形態の動作例＞
次に、図１に示した通信処理装置（移動機）に動作についてその一例を説明する。まず、通常の通信処理装置においてオープンフロー（OpenFlow）技術を用いた場合の基本的な動作について、図３のシーケンス図を用いて説明する。
【００４１】
図３は、オープンフロー（OpenFlow）技術を用いた基本的な動作シーケンスの一例を示すシーケンス図であり、ユーザインタフェース（ＵＩ）１４、通信アプリ１５、オープンフロー(OpenFlow)コントローラ１１、オープンフロー（OpenFlow）スイッチ１２の間でやり取りされる情報シーケンスの一例を示している。なお、図３においては、ブラウザという通信アプリケーションに対してオープンフロー（OpenFlow）技術を適用した場合においてユーザが基本的な通信を行う場合の事例として、図３（Ａ）のＷｉ−Ｆｉ優先のポリシを追加する場合、図３（Ｂ）のＷｉ−Ｆｉ固定すなわちＷｉ−Ｆｉ  onlyのポリシを追加する場合、および、図３（Ｃ）のドロップ（drop：破棄）のポリシを追加する場合のそれぞれについて説明している。以下、順を追って説明する。
【００４２】
（Ａ）ユーザがブラウザの通信に対しＷｉ−Ｆｉ優先のポリシを追加する場合
まず、ユーザは、ユーザインタフェース（ＵＩ）１４を介してオープンフロー（OpenFlow）コントローラ１１に対して「ブラウザ、Ｏｕｔｐｕｔ：Ｗｉ−Ｆｉ優先」のポリシを設定する（シーケンスＳｅｑ１）。しかる後、ユーザが通信アプリ１５のブラウザを使用・操作した結果としてパケットデータが発生した場合、オープンフロー（OpenFlow）スイッチ１２は、通信アプリ１５のブラウザから発生した該パケットデータを受信する（シーケンスＳｅｑ２）。
【００４３】
該パケットデータを受信した時点においては、オープンフロー（OpenFlow）スイッチ１２は、まだ、フローテーブルに、ブラウザから送信されてきたパケットデータに対するフローエントリが追加されていない状態にあるため、受信したパケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、パケットデータを受け取った旨を示すPACKET_INメッセージを送信する（シーケンスＳｅｑ３）。
【００４４】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていることを検出して、送信先のポートをＷｉ−Ｆｉ部１３ａのＷｉ−Ｆｉポートに指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ４）。FLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、フローテーブルにフローエントリを設定するとともに、バッファリングしていたパケットデータをＷｉ−Ｆｉ部１３ａのＷｉ−ＦｉポートからＷｉ−Ｆ  ＡＰに対して送信する（シーケンスＳｅｑ５）。
【００４５】
（Ｂ）ユーザがブラウザの通信に対しＷｉ−Ｆｉ onlyのポリシを追加する場合
なお、図３（Ｂ）に例示するように、ここでは、Ｗｉ−Ｆｉ（無線ＬＡＮ）が無い環境下にある場合について説明する。まず、ユーザは、ユーザインタフェース（ＵＩ）１４を介してオープンフロー（OpenFlow）コントローラ１１に対して「ブラウザ、Ｏｕｔｐｕｔ：Ｗｉ−Ｆｉ only」のポリシを設定する（シーケンスＳｅｑ６）。しかる後、ユーザが通信アプリ１５のブラウザを使用・操作した結果としてパケットデータが発生した場合、シーケンスＳｅｑ２の場合と同様、オープンフロー（OpenFlow）スイッチ１２は、通信アプリ１５のブラウザから発生した該パケットデータを受信する（シーケンスＳｅｑ７）。
【００４６】
該パケットデータを受信した時点においては、オープンフロー（OpenFlow）スイッチ１２は、まだ、フローテーブルに、ブラウザから送信されてきたパケットデータに対するフローエントリが追加されていない状態にあるため、シーケンスＳｅｑ３の場合と同様、受信したパケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、パケットデータを受け取った旨を示すPACKET_INメッセージを送信する（シーケンスＳｅｑ８）。
【００４７】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていないことを検出して、パケットデータのドロップ（drop：破棄）を指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ９）。FLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、フローテーブルにフローエントリを設定するとともに、バッファリングしていたパケットデータを破棄する（シーケンスＳｅｑ１０）。
【００４８】
（Ｃ）ユーザがブラウザの通信に対しドロップ（drop）のポリシを追加する場合
まず、ユーザは、ユーザインタフェース（ＵＩ）１４を介してオープンフロー（OpenFlow）コントローラ１１に対して「ブラウザ、drop」のポリシを設定する（シーケンスＳｅｑ１１）。しかる後、ユーザが通信アプリ１５のブラウザを使用・操作した結果としてパケットデータが発生した場合、シーケンスＳｅｑ２の場合と同様、オープンフロー（OpenFlow）スイッチ１２は、通信アプリ１５のブラウザから発生した該パケットデータを受信する（シーケンスＳｅｑ１２）。
【００４９】
該パケットデータを受信した時点においては、オープンフロー（OpenFlow）スイッチ１２は、まだ、フローテーブルに、ブラウザから送信されてきたパケットデータに対するフローエントリが追加されていない状態にあるため、シーケンスＳｅｑ３の場合と同様、受信したパケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、パケットデータを受け取った旨を示すPACKET_INメッセージを送信する（シーケンスＳｅｑ１３）。
【００５０】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、パケットデータのドロップ（drop：破棄）を指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ１４）。FLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、フローテーブルにフローエントリを設定するとともに、バッファリングしていたパケットデータを破棄する（シーケンスＳｅｑ１５）。
【００５１】
次に、図４および図５のシーケンス図を用いて、本発明の実施形態における通信処理装置（移動機）の動作についてその一例を説明する。図４は、本発明の実施形態における通信処理装置の動作シーケンスの一例を示すシーケンス図であり、図５は、本発明の実施形態における通信処理装置の図４の動作に続く動作シーケンスの一例を示すシーケンス図である。図４および図５のいずれのシーケンス図も、図３の場合と同様、ユーザインタフェース（ＵＩ）１４、通信アプリ１５、オープンフロー(OpenFlow)コントローラ１１、オープンフロー（OpenFlow）スイッチ１２の間でやり取りされる情報シーケンスの一例を示している。
【００５２】
一般的に、インターネットを利用するＷｉ−Ｆｉ（無線ＬＡＮ）通信の場合に比べて、セルラー系のモバイルデータ通信の場合は、通信に対して課金が発生するため、例えば、ローミング中の場合や定額の料金プランに関する使用データ量の上限に近づいた場合などが生じると、ユーザはモバイルデータ通信の制限を行うことを希望する。つまり、定額の料金プランに関する使用データ量の上限に近づいた場合などにおいて、パケットデータの送信を行う通信アプリケーションをユーザが誤って利用しないようにするために、ユーザが使用するフォアグラウンドアプリケーションの通信を制限するのみならず、ユーザが意図しないバックグラウンドのアプリケーションの通信についても制限することを、ユーザは希望する。
【００５３】
Ｇｏｏｇｌｅ社が開発したAndroid  ＯＳ（Operating  System）を代表とするスマートフォン向けのＯＳを搭載した移動機等の通信処理装置においてモバイルデータ通信を制限しようとする場合、ＬＴＥや３Ｇなどのセルラー通信におけるパケットデータ通信自体をオフすることによって実現している。しかし、セルラー通信におけるパケットデータ通信自体をオフにしてしまうと、Ｗｉ−Ｆｉ通信を使用することができない環境下においては、全ての通信アプリケーションを使用することができなくなってしまう。
【００５４】
これに対して、本実施形態における移動機等の通信処理装置においては、オープンフロー（OpenFlow）技術を適用して、アプリケーション毎に通信制御を行うことを可能にしているので、例えばローミング中の場合には、通信サイズが小さいメールアプリやメッセージ用のＳＮＳアプリなどの通信アプリケーションのみの通信を許可し、その他の通信アプリケーションの通信を制限する等のアプリケーション毎の通信制御を行うことが可能である。通信の制限については、ユーザによりユーザインタフェース（ＵＩ）１４から手動で設定することや、あるいは、ユーザインタフェース（ＵＩ）１４やオープンフロー（OpenFlow）コントローラ１１が移動機等の通信処理装置内から取得することができる情報（例えば、通信エリアがローミング先に移動してしまったことや通信量があらかじめ定めた規定値を超えてしまった等の情報）を基にして、自動的に設定すること等を実装することを想定することができる。
【００５５】
さらには、通信を制限した場合において、通信を制限した通信アプリケーションをユーザが一時的に使用したいという場合も発生する。例えば、海外旅行などにおけるローミング中に、行き先の確認等のためにマップアプリを使う場合や、ブラウザを用いてクラウドのメールを確認する等、様々なケースが存在する。かくのごとき状況においては、ユーザが一時的に使用したい通信アプリケーションに対する通信制限を解除（通信許可）することを容易に行うことが可能となる仕組みを提供することが望ましい。以下に、図４および図５のシーケンス図を用いて本実施形態における通信処理装置の動作についてさらに説明する。なお、図４、図５においては、通信アプリ１５として例えば４つ（複数）の通信アプリケーションが実装されていて、アプリ１がブラウザ、アプリ２がメール、アプリ３がマップ、アプリ４がストリーミング映像に関するアプリであるものと仮定する。
【００５６】
まず、図４において、ユーザインタフェース（ＵＩ）１４が通信を制限するトリガを検出し、オープンフロー（OpenFlow）コントローラ１１に対して、通信アプリケーション毎のポリシ追加を指示すると（シーケンスＳｅｑ２１）、オープンフロー（OpenFlow）コントローラ１１は、該指示に応じて、アプリ１のブラウザについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ２のメールについてはＷｉ−Ｆｉ優先のポリシ、アプリ３のマップについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ４のストリーミング映像についてもＷｉ−Ｆｉ  onlyのポリシをそれぞれ設定する（シーケンスＳｅｑ２２）。ここで、ユーザに対して、通信の制限の発生をピクト表示などの絵文字の表示によって通知するようにしても良い。
【００５７】
なお、ここでは、当該移動機等の通信処理装置の現在の環境は、Ｗｉ−Ｆｉがなく、セルラー通信のみが可能な状態になっているものと仮定する。シーケンスＳｅｑ２２においてポリシの設定が実施された以降において、ユーザが通信アプリケーションとして例えばアプリ３のマップアプリを使用して（シーケンスＳｅｑ２３）、当該ユーザの意図的な操作結果として、パケットデータが発生した場合、アプリ３のマップアプリからのパケットデータをオープンフロー（OpenFlow）スイッチ１２が受信する（シーケンスＳｅｑ２４）。
【００５８】
アプリ３のマップアプリからのパケットデータを受信すると、オープンフロー（OpenFlow）スイッチ１２は、受信したパケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、アプリ３のマップアプリからのパケットデータをどのように扱うかということを問い合わせるPACKET_INメッセージを送信する（シーケンスＳｅｑ２５）。なお、アプリ３のマップアプリからのパケットデータは、該PACKET_INメッセージに格納されている。
【００５９】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、アプリ３のマップアプリのポリシが、Ｗｉ−Ｆｉ固定すなわちＷｉ−Ｆｉ  onlyのポリシであり、かつ、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていない環境にあり、Ｗｉ−Ｆｉ通信を使用することができないことを検出するので、アプリ３のマップアプリからのパケットデータのドロップ（drop：破棄）を指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ２６）。FLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、アプリ３のマップアプリからのパケットデータのドロップ（drop：破棄）を指定したフローエントリをフローテーブルに設定するとともに、バッファリングしていたパケットデータを破棄する（シーケンスＳｅｑ２７）。
【００６０】
しかる後、当該移動機等の通信処理装置は本発明に特有の動作を行う。すなわち、オープンフロー（OpenFlow）コントローラ１１は、図２のブロック構成図にアプリケーション状態認識部１１ｃとして示したように、アプリケーション状態認識機能を備えている。該アプリケーション状態認識機能は、オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージに格納されているパケットデータを送信した通信アプリケーションが、フォアグラウンドアプリケーション（つまり、ユーザが、起動した通信アプリであり、当該移動機等の通信処理装置の表示画面上で使用しているアプリケーション）であるか、あるいは、そうではなく、バックグラウンドのアプリケーション（つまり、ユーザの操作とは無関係に動作し、表示画面上に表示されないアプリケーション）であるかを識別する動作を行う。
【００６１】
オープンフロー（OpenFlow）コントローラ１１は、オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受信したタイミングで、前記アプリケーション状態認識機能によって、該PACKET_INメッセージに格納されているパケットデータに紐付けられたアプリケーションがフォアグラウンドアプリケーション、バックグラウンドアプリケーションのいずれであるかを識別する。該パケットデータに紐付けられたアプリケーションが、アプリ３のマップアプリであり、フォアグラウンドのアプリケーションであることを識別した場合には、ユーザが意図して使用したアプリケーションから送信されたパケットデータであると判断することができる（シーケンスＳｅｑ２８）。一方、該パケットデータに紐付けられたアプリケーションが、バックグラウンドのアプリケーションであることを識別した場合には、ユーザが意図しないパケットデータであると判断することができる。
【００６２】
オープンフロー（OpenFlow）コントローラ１１は、PACKET_INメッセージに格納されているパケットデータがフォアグラウンドのアプリケーションが生成したパケットデータであることを認識した場合、ユーザインタフェース（ＵＩ）１４に対して、フォアグラウンドのアプリケーションによるパケットデータの発生の旨を示すとともに、通信の制限を一時的に解除するか否かをユーザに問い合わせるための確認画面を画面表示することを指示する（シーケンスＳｅｑ２９）。該指示を受け取ったユーザインタフェース（ＵＩ）１４は、確認画面を画面表示して、ユーザに対して通知し、一時的に、通信の制限を解除（通信の許可）して、通信を許可するか否かを問い合わせる（シーケンスＳｅｑ３０）。図６は、本発明の実施形態における通信処理装置において通信の制限を一時的に解除するか否かをユーザに確認するために画面表示する確認画面の一例を示す画面図である。なお、該確認画面は、フォアグラウンドのアプリケーションによるパケットデータが発生したが、該アプリケーションの通信が制限されている場合に画面表示される。
【００６３】
図６に示す確認画面の画面表示例においては、図６（Ａ）に示すように、ユーザが意図して使用しているフォアグラウンドのアプリケーションであるマップアプリに関するパケットデータの通信が制限されている状況下において、該マップアプリがパケットデータを生成しているので、通信制限を解除して一時的な通信を許可するか否かの判断をユーザに対して仰ぐだけではなく、さらには、図６（Ｂ）に示すように、通信制限を解除する時間の変更や通信制限自体の解除を行うことに関する判断を仰ぐことも可能としている。
【００６４】
シーケンスＳｅｑ３０において画面表示された確認画面を確認したユーザが、選択した一定時間の間、通信制限を解除して、通信を許可することを指示した場合、通信制限の一時的な解除を指示する応答情報が、ユーザインタフェース（ＵＩ）１４を介して、オープンフロー（OpenFlow）コントローラ１１に対して送信される（シーケンスＳｅｑ３１）。
【００６５】
ユーザインタフェース（ＵＩ）１４を介して、通信制限の一時的な解除を指示するユーザからの応答情報を受信すると、オープンフロー（OpenFlow）コントローラ１１は、オープンフロー（OpenFlow）スイッチ１２に対して、アプリ３のマップアプリからのパケットデータのドロップ（drop：破棄）を指定したフローエントリを削除するためのFLOW_MOD（DELETE）メッセージを送信する（シーケンスＳｅｑ３２）。
【００６６】
オープンフロー（OpenFlow）コントローラ１１からのFLOW_MOD（DELETE）メッセージを受信したオープンフロー（OpenFlow）スイッチ１２は、該FLOW_MOD（DELETE）メッセージに従って、フローテーブルに設定されているアプリ３のマップアプリからのパケットデータのドロップ（drop：破棄）を指定したフローエントリをフローテーブルから削除した後（シーケンスＳｅｑ３３）、該フローエントリの削除を示すFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）コントローラ１１に対して送信する（シーケンスＳｅｑ３４）。
【００６７】
なお、シーケンスＳｅｑ２８において、ユーザが意図して使用しているフォアグラウンドのパケットデータであることが識別された場合には、直ちに、通信制限を一時的に解除する必要があるものと見做して、通信制限解除に関するユーザからの応答情報と同一の情報を事前に保持しておいて、シーケンスＳｅｑ２９〜Ｓｅｑ３１に示すような通信制限の解除に関するユーザへの問い合わせ・応答を行うことなく、自動的に、シーケンスＳｅｑ３２に移行するようにしても良い。
【００６８】
オープンフロー（OpenFlow）コントローラ１１は、フローエントリ削除要求のFLOW_MOD（DELETE）メッセージに対する応答であるFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）スイッチ１２から受信すると、内部で保有しているアプリ３のマップアプリのポリシを一時的にＷｉ−Ｆｉ優先とし、指定した一定時間の間だけ通信制限を解除するための解除タイマの計時動作を起動する（シーケンスＳｅｑ３５）。該解除タイマが計時動作を継続している間、一時的に、アプリ３のマップアプリのポリシをＷｉ−Ｆｉ優先に内部的に書き換えているので、アプリ３のマップアプリの通信の制限が解除されて、通信が許可された状態になる（シーケンスＳｅｑ３６）。
【００６９】
つまり、オープンフロー（OpenFlow）コントローラ１１は、解除タイマがあらかじめ定めた一定時間またはユーザが指定した一定時間まで計時動作を継続して、満了する時刻に達するまでの間、アプリ３のマップアプリのポリシをＷｉ−Ｆｉ優先に一時的に変更する。その結果、一時的に、アプリ１のブラウザについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ２のメールについてはＷｉ−Ｆｉ優先のポリシ、アプリ３のマップについてはＷｉ−Ｆｉ優先のポリシ、アプリ４のストリーミング映像についてはＷｉ−Ｆｉ  onlyのポリシをそれぞれ設定した状態になる（シーケンスＳｅｑ３７）。以降の動作については、図５のシーケンス図を用いて説明する。
【００７０】
図５のシーケンス図に移って、アプリ３のマップアプリの通信が許可された状態になると、通信アプリのトリガの再送状態になり、アプリ３のマップアプリから再送パケットデータがオープンフロー（OpenFlow）スイッチ１２に送信される（シーケンスＳｅｑ３８）。なお、再送パケットデータの送信動作は通信アプリケーションの実装に依存するが、本実施形態においては、アプリ３のマップアプリは、再送パケットデータの送信動作を行う状態に設定されているものとする。
【００７１】
アプリ３のマップアプリからの再送パケットデータを受信すると、オープンフロー（OpenFlow）スイッチ１２は、受信した再送パケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、アプリ３のマップアプリからの再送パケットデータをどのように扱うかということを問い合わせるPACKET_INメッセージを送信する（シーケンスＳｅｑ３９）。なお、アプリ３のマップアプリからの再送パケットデータは、該PACKET_INメッセージに格納されている。
【００７２】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、アプリ３のマップアプリのポリシが、Ｗｉ−Ｆｉ優先のポリシであり、かつ、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていない環境にあることを検出するので、インタフェース１３としてセルラー部１３ｂのセルラーポートを使用して、アプリ３のマップアプリからの再送パケットデータの送信を指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ４０）。
【００７３】
オープンフロー（OpenFlow）コントローラ１１からFLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、アプリ３のマップアプリからのパケットデータの送信動作を許可するフローエントリをフローテーブルに設定するとともに、セルラー部１３ｂのセルラーポートを使用して、アプリ３のマップアプリから受信している再送パケットデータの送信を行う（シーケンスＳｅｑ４１）。以降、図４のシーケンスＳｅｑ３５において計時動作を開始した解除タイマが満了するまでの間、オープンフロー（OpenFlow）スイッチ１２は、アプリ３のマップアプリからのパケットデータを受け取る都度、受け取ったパケットデータを、セルラー部１３ｂのセルラーポートを使用して、送信する動作を行う（シーケンスＳｅｑ４２）。
【００７４】
解除タイマが満了すると（シーケンスＳｅｑ４３）、オープンフロー（OpenFlow）コントローラ１１は、オープンフロー（OpenFlow）スイッチ１２に対して、セルラーポートからの送信動作を許可する状態に設定していたアプリ３のマップアプリに関するフローエントリを削除して、元の状態に復帰させるためのFLOW_MOD（DELETE）メッセージを送信する（シーケンスＳｅｑ４４）。
【００７５】
オープンフロー（OpenFlow）コントローラ１１からのFLOW_MOD（DELETE）メッセージを受信したオープンフロー（OpenFlow）スイッチ１２は、該FLOW_MOD（DELETE）メッセージに従って、フローテーブルに設定されているアプリ３のマップアプリからのパケットデータのセルラーポートからの送信動作を指示するフローエントリをフローテーブルから削除して、元のドロップ(drop)を指定した状態に戻したフローエントリをフローテーブルに設定する（シーケンスＳｅｑ４５）。しかる後、アプリ３のマップアプリに関するフローエントリの更新を示すFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）コントローラ１１に対して送信する（シーケンスＳｅｑ４６）。この結果、解除タイマが満了した時点で、アプリ３のマップアプリに関する通信制限の解除状態が完了して、通信制限の状態に復帰することになる。
【００７６】
解除タイマが満了した以降においては、オープンフロー（OpenFlow）コントローラ１１は、フローエントリ削除要求のFLOW_MOD（DELETE）メッセージに対する応答であるFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）スイッチ１２から受信すると、内部に保有していたアプリ３のマップアプリのポリシを元のＷｉ−Ｆｉ  onlyのポリシに復帰させることになる。つまり、オープンフロー（OpenFlow）コントローラ１１は、アプリ１のブラウザについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ２のメールについてはＷｉ−Ｆｉ優先のポリシ、アプリ３のマップについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ４のストリーミング映像についてはＷｉ−Ｆｉ  onlyのポリシをそれぞれ設定した状態に復帰する（シーケンスＳｅｑ４７）。
【００７７】
以上の図４、図５のシーケンス図の説明においては、ユーザが意図的にアプリ３のマップアプリを使用した場合の動作について説明したが、次に、ユーザが意図して使用していないアプリケーションがバックグラウンドで動作した結果として通信を開始する場合の動作例について、例えば、アプリ１のブラウザアプリがバックグラウンドで動作して、パケットデータを発生した場合を例に取って、図５のシーケンス図の後半の破線で囲んだ部分を用いて説明する。なお、図４のシーケンス図において説明したように、ここで対象としている移動機等の通信処理装置の現在の環境は、Ｗｉ−Ｆｉがなく、セルラー通信のみが可能な状態になっていて、かつ、シーケンスＳｅｑ２２において設定されたアプリ１のブラウザアプリについてのポリシが、Ｗｉ−Ｆｉ  onlyのポリシに設定されているものとする。
【００７８】
ユーザが意図的に使用していないバックグラウンドで動作しているアプリ１のブラウザアプリがパケットデータを発生させた場合（シーケンスＳｅｑ５１）、アプリ１のブラウザアプリは、バックグラウンド通信を行うために、該パケットデータをオープンフロー（OpenFlow）スイッチ１２に送信する（シーケンスＳｅｑ５２）。
【００７９】
アプリ１のブラウザアプリからのパケットデータを受信したオープンフロー（OpenFlow）スイッチ１２は、受信したパケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、アプリ１のブラウザアプリからのパケットデータをどのように扱うかということを問い合わせるPACKET_INメッセージを送信する（シーケンスＳｅｑ５３）。なお、アプリ１のブラウザアプリからのパケットデータは、該PACKET_INメッセージに格納されている。
【００８０】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、アプリ１のブラウザアプリのポリシが、Ｗｉ−Ｆｉ固定すなわちＷｉ−Ｆｉ  onlyのポリシであり、かつ、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていない環境にあり、Ｗｉ−Ｆｉ通信を使用することができないことを検出するので、アプリ１のブラウザアプリからのパケットデータのドロップ（drop：破棄）を指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ５４）。FLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、アプリ１のブラウザアプリからのパケットデータのドロップ（drop：破棄）を指定したフローエントリをフローテーブルに設定するとともに、バッファリングしていたパケットデータを破棄する（シーケンスＳｅｑ５５）。
【００８１】
しかる後、当該移動機等の通信処理装置は本発明に特有の動作を行う。すなわち、オープンフロー（OpenFlow）コントローラ１１は、図２のブロック構成図にアプリケーション状態認識部１１ｃとして示したように、アプリケーション状態認識機能を備えている。オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受信したタイミングで、前述したアプリケーション認識機能によって、該PACKET_INメッセージに格納されているパケットデータに紐付けられたアプリケーションがフォアグラウンドアプリケーション、バックグラウンドアプリケーションのいずれであるかを識別する。該パケットデータに紐付けられたアプリケーションが、アプリ１のブラウザアプリであり、バックグラウンドのアプリケーションであることを識別した場合には、ユーザが意図的には使用していないアプリケーションから送信されたパケットデータであると判断することができる（シーケンスＳｅｑ５６）。
【００８２】
オープンフロー（OpenFlow）コントローラ１１は、PACKET_INメッセージに格納されているパケットデータが紐付けられたアプリ１のブラウザアプリがユーザが意図的には使用していないバックグラウンドのアプリケーションであることを認識した場合、たとえ、パケットデータが発生したとしても、バックグラウンド通信については、通信制限の一時的な解除動作を行うことはないので、フォアグラウンド通信の場合のように、ユーザに対して通信制限の解除の有無を問い合わせる動作を行うことなく、処理を終了する（シーケンスＳｅｑ５７）。
【００８３】
（オープンフロー（OpenFlow）コントローラ１１の動作例）
次に、図２に示した通信処理装置のオープンフロー（OpenFlow）コントローラ１１内の動作例について、図７のフローチャートを用いてさらに説明する。図７は、図１の通信処理装置に実装したオープンフロー（OpenFlow）コントローラ１１の動作の一例を説明するためのフローチャートであり、図４および図５のシーケンス図のシーケンスＳｅｑ２５〜Ｓｅｑ４７までの間で実施されるオープンフロー（OpenFlow）コントローラ１１の動作例について説明している。
【００８４】
図７のフローチャートにおいて、まず、オープンフロー（OpenFlow）コントローラ１１は、図４のシーケンスＳｅｑ２５においてパケットデータが発生したことを意味するPACKET_INメッセージをオープンフロー（OpenFlow）プロトコルに従ってオープンフロー（OpenFlow）スイッチ１２から受信すると、オープンフロー（OpenFlow）メッセージ処理部１１ｂは、オープンフロー（OpenFlow）スイッチ１２からPACKET_INメッセージを受信したことをフローエントリ制御部１１ａに通知する（ステップＳ１）。
【００８５】
オープンフロー（OpenFlow）メッセージ処理部１１ｂからの通知を受け取ると、フローエントリ制御部１１ａは、該PACKET_INメッセージに格納されているパケットデータを送信したアプリケーションに関するポリシとインタフェース１３のポートの接続状態とに基づいて、本パケットデータの通信が制限された状態にあることを検出した場合、図４のシーケンスＳｅｑ２６に示すように、本パケットデータのドロップ（drop：破棄）を指定したFLOW_MODメッセージの送信をオープンフロー（OpenFlow）メッセージ処理部１１ｂに対して指示する（ステップＳ２）。オープンフロー（OpenFlow）メッセージ処理部１１ｂは、該指示に応じて、ドロップ（drop：破棄）を指定したFLOW_MODメッセージを作成して、オープンフロー（OpenFlow）プロトコルに従ってオープンフロー（OpenFlow）スイッチ１２に対して送信する。
【００８６】
しかる後、フローエントリ制御部１１ａは、該PACKET_INメッセージに格納されている本パケットデータを送信したアプリケーションが、ユーザが意図的に使用しているフォアグラウンドのアプリケーション、あるいは、ユーザが意図的には使用していないバックグラウンドのアプリケーション、のいずれであるかを、アプリケーション状態認識部１１ｃに問い合わせる（ステップＳ３）。アプリケーション状態認識部１１ｃへの問い合わせ結果として、本パケットデータを送信したアプリケーションがバックグラウンドアプリケーションであった場合には（ステップＳ３のＮＯ）、処理を終了し、従来の動作と同様の通常の動作を行う。
【００８７】
一方、アプリケーション状態認識部１１ｃへの問い合わせ結果として、本パケットデータを送信したアプリケーションがフォアグラウンドアプリケーションであった場合には（ステップＳ３のＹＥＳ）、フローエントリ制御部１１ａは、図４のシーケンスＳｅｑ２９に示すように、ＵＩメッセージ処理部１１ｄに対して、パケットデータ発生および本パケットデータの通信を許可するか否か（すなわち通信制限を解除するか否か）をユーザに確認するための通知を送信する（ステップＳ４）。ＵＩメッセージ処理部１１ｄに対する通知結果として、フローエントリ制御部１１ａは、ユーザから本パケットデータの通信を不許可とする応答を、ＵＩメッセージ処理部１１ｄを介して受け取ると（ステップＳ５のＮＯ）、処理を終了し、従来の動作と同様の通常の動作を行う。
【００８８】
これに対して、ＵＩメッセージ処理部１１ｄに対する通知結果として、フローエントリ制御部１１ａは、ユーザから本パケットデータの通信を許可とする応答を、ＵＩメッセージ処理部１１ｄを介して受け取った場合（ステップＳ５のＹＥＳ）、図４のシーケンスＳｅｑ３２に示すように、現時点でフローテーブルに設定されているドロップ（drop：破棄）指示のフローエントリを削除（DELETE）することを指定したFLOW_MODメッセージの送信をオープンフロー（OpenFlow）メッセージ処理部１１ｂに対して指示する（ステップＳ６）。オープンフロー（OpenFlow）メッセージ処理部１１ｂは、該指示に応じて、フローエントリの削除（DELETE）を指定したFLOW_MODメッセージを作成して、オープンフロー（OpenFlow）プロトコルに従ってオープンフロー（OpenFlow）スイッチ１２に対して送信する。
【００８９】
しかる後、オープンフロー（OpenFlow）コントローラ１１は、フローエントリ削除（DELETE）要求のFLOW_MODメッセージに対する応答であるFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）スイッチ１２から受信すると、オープンフロー（OpenFlow）メッセージ処理部１１ｂは、オープンフロー（OpenFlow）スイッチ１２からFLOW_REMOVEDメッセージを受信したことをフローエントリ制御部１１ａに通知する。
【００９０】
オープンフロー（OpenFlow）メッセージ処理部１１ｂからの通知を受け取ると、フローエントリ制御部１１ａは、図４のシーケンスＳｅｑ３５に示すように、あらかじめ設定した一定時間またはユーザにより指定された一定時間だけ通信制限を解除するための解除タイマの計時動作を起動するとともに(ステップＳ７)、ポリシ・フローエントリ保管部１１ｅに保管しているアプリケーションのポリシのうち、対象とするパケットデータに紐付いたアプリケーションに関するポリシを、例えばＷｉ−Ｆｉ優先に一時的に更新して、現在の通信制限の状態を解除し、通信許可の状態に変更する（ステップＳ８）。
【００９１】
しかる後、図５のシーケンスＳｅｑ３９に示すように、再送パケットデータが発生したことを意味するPACKET_INメッセージをオープンフロー（OpenFlow）プロトコルに従ってオープンフロー（OpenFlow）スイッチ１２から受信すると、オープンフロー（OpenFlow）メッセージ処理部１１ｂは、オープンフロー（OpenFlow）スイッチ１２から再送パケットデータに関するPACKET_INメッセージを受信したことをフローエントリ制御部１１ａに通知する（ステップＳ９）。
【００９２】
オープンフロー（OpenFlow）メッセージ処理部１１ｂからの通知を受け取ると、フローエントリ制御部１１ａは、該PACKET_INメッセージに格納されている再送パケットデータを送信したアプリケーションに関するポリシとインタフェース１３のポートの接続状態とに基づいて、本再送パケットデータの送信動作が許可されているか否かを判定する。ここで、フローエントリ制御部１１ａは、図５のシーケンスＳｅｑ４０に示すように、本再送パケットデータに紐付いたアプリケーションのポリシが、Ｗｉ−Ｆｉ優先のポリシであり、かつ、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていない環境にあることを検出した場合には、インタフェース１３としてセルラー部１３ｂのセルラーポートを使用して、セルラーポートによるパケットデータの通信を許可する旨のフローエントリの追加を指定したFLOW_MODメッセージの送信をオープンフロー（OpenFlow）メッセージ処理部１１ｂに対して指示する（ステップＳ１０）。
【００９３】
オープンフロー（OpenFlow）メッセージ処理部１１ｂは、該指示に応じて、セルラーポートによる通信を許可する旨のフローエントリの追加を指定したFLOW_MODメッセージを作成して、オープンフロー（OpenFlow）プロトコルに従ってオープンフロー（OpenFlow）スイッチ１２に対して送信する。
【００９４】
以降、当該アプリケーションが発生するパケットデータに関する通信許可状態は、解除タイマが満了するまで継続する。解除タイマが満了すると（ステップＳ１１）、フローエントリ制御部１１ａは、ステップＳ１０においてオープンフロー（OpenFlow）スイッチ１２のフローテーブルに追加したセルラーポートによるパケットデータの通信を許可する旨のフローエントリを削除（DELETE）して、元の状態に復帰させることを指定したFLOW_MODメッセージの送信をオープンフロー（OpenFlow）メッセージ処理部１１ｂに対して指示する（ステップＳ１２）。オープンフロー（OpenFlow）メッセージ処理部１１ｂは、該指示に応じて、図５のシーケンスＳｅｑ４４に示すように、セルラーポートによる通信を許可する旨のフローエントリを削除（DELETE）して、元の状態に復帰させることを指定したFLOW_MODメッセージを作成して、オープンフロー（OpenFlow）プロトコルに従ってオープンフロー（OpenFlow）スイッチ１２に対して送信する。
【００９５】
しかる後、オープンフロー（OpenFlow）コントローラ１１は、フローエントリ削除（DELETE）要求のFLOW_MODメッセージに対する応答であるFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）スイッチ１２から受信すると、オープンフロー（OpenFlow）メッセージ処理部１１ｂは、オープンフロー（OpenFlow）スイッチ１２からFLOW_REMOVEDメッセージを受信したことをフローエントリ制御部１１ａに通知する。
【００９６】
オープンフロー（OpenFlow）メッセージ処理部１１ｂからの通知を受け取ると、フローエントリ制御部１１ａは、ポリシ・フローエントリ保管部１１ｅに保管しているアプリケーションのポリシのうち、対象とするパケットデータに紐付いたアプリケーションに関するポリシを元のポリシ例えばＷｉ−Ｆｉ  onlyのポリシに復帰させる（ステップＳ１３）。つまり、フローエントリ制御部１１ａは、解除タイマが満了した後、オープンフロー（OpenFlow）メッセージ処理部１１ｂからの通知を受け取った時点で、対象のパケットデータに紐付いたアプリケーションに関する通信制限の解除状態を完了させて、元の通信制限の状態に復帰させることになる。
【００９７】
＜実施形態の効果の説明＞
以上に詳細に説明したように、本実施形態においては、次のような効果が得られる。
【００９８】
第１に、ユーザが意図的に使用するフォアグラウンドアプリケーションの場合、アプリケーション毎に、アプリケーション状態の認識処理とインタフェース１３の各通信ポートの接続状態とに基づいて、一時的に、通信可能な状態に自動的に設定する仕組みを備えているので、ユーザが通信制限状態にあるアプリケーションを一時的に意図して使用する場合においても、ＯＳ（Operating  System）の設定変更などの通信制限状態を解除するための操作をユーザ自身が事前に行う必要がない。一方、ユーザが意図的には使用していないバックグラウンドアプリケーションの場合には、設定されているフローエントリを変更することなく、通信制限状態にあるアプリケーションについてはパケットデータの送信動作はそのまま制限された状態が継続する。
【００９９】
第２に、ユーザが、通信制限状態にあるアプリケーションを一時的に意図して使用する場合において、該アプリケーションのパケットデータが発生した場合には、該アプリケーションの使用中のタイミングで、ユーザインタフェース（ＵＩ）１４を介して、当該パケットデータの送信を許可するか否かをユーザに問い合わせることが可能であるので、ユーザは、リアルタイムで、パケットデータの発生を知ることができるとともに、さらに、発生した当該パケットデータの送信の許可・不許可を選択することができる。
【０１００】
第３に、ユーザが、通信制限状態にあるアプリケーションを一時的に意図して使用する場合において、該アプリケーションのパケットデータが発生した場合には、該アプリケーションの通信制限状態を解除する期間を、あらかじめ設定した一定時間またはユーザが選択した一定時間の間に限って設定することができるので、該一定時間の間のみ通信を許可し、該一定時間が経過した後においては、自動的に、通信を制限する元の状態に復帰することが可能であり、ユーザの手動設定の手間を省くことができる。
【０１０１】
＜他の実施形態＞
次に、前述の実施形態と異なる他の実施形態について説明する。図１〜図７に本発明の一例として例示した通信処理装置に関する前述の実施形態の説明においては、典型的な事例である移動機におけるモバイルデータに関する通信制限の場合を例に取って説明したが、本発明は、かかる場合のみに限るものではない。すなわち、本発明に適用するオープンフロー（OpenFlow）技術は、送信先ポート（宛先の経路）をフローエントリによって自由に制御することができるという特徴を有している。したがって、例えば、通信ポートとして、セルラーポートに送信するパケットデータを、一時的に、Ｗｉ−ＦｉのポートやＷｉＭＡＸ（World  Interoperability  for  Microwave  Access）のポート等、他のポートに送信する等の使い方も可能である。また、通信ポートとなるインタフェース１３についても、通信処理装置の実装により、様々な通信方式を想定することができるので、本発明においても特定の通信方式のみに制限する必要はなく、如何なる通信方式についても適用することが可能である。
【０１０２】
さらに、スマートフォンやタブレット端末のような機器間通信を行うＭ２Ｍ（Machine  to  Machine）端末などの移動機のみに限らず、複数の通信手段を有し、かつ、装置内で発生したパケットデータを検出することができ、また、該パケットデータをどの通信手段を用いて送信するかもしくは破棄するかということを制御することが可能なパケット通信制御機能を有する通信処理装置であれば、如何なる通信処理装置にも適用することが可能である。
【０１０３】
また、機能分担の事例についても、図４、図５のシーケンスチャートに示した動作例とは異なる動作を行うことも可能である。例えば、図４、図５のシーケンスＳｅｑ１〜Ｓｅｑ４７までの動作について、図４、図５の場合とは異なる動作例を、図８のシーケンス図を用いて説明する。図８は、本発明の実施形態における通信処理装置の図４、図５とは異なる動作シーケンスの一例を示すシーケンス図であり、通信制限を解除するための解除タイマが、図４．図５の場合とは異なり、前記非特許文献１の“OpenFlow  Switch  Specification”に有効期限として規定されているあらかじめ定めた固定の時間（例えば３０秒）を計時することにし、かつ、該解除タイマの計時動作の開始時点を図４．図５の場合とは異なるタイミングとする場合を例示している。なお、図８のシーケンス図においても、図４、図５の場合と同様、ユーザインタフェース（ＵＩ）１４、通信アプリ１５、オープンフロー(OpenFlow)コントローラ１１、オープンフロー（OpenFlow）スイッチ１２の間でやり取りされる情報シーケンスの一例を示している。
【０１０４】
図８のシーケンス図においては、図４のシーケンスＳｅｑ１〜Ｓｅｑ３４までの動作と同じ動作を行うので、ここでは、図４と同じシーケンス番号を付して、重複する説明は割愛する。なお、図８には、図４のシーケンスＳｅｑ１〜Ｓｅｑ２７までの各動作について図面上の記載自体も省略している。
【０１０５】
図８のシーケンス図において、オープンフロー（OpenFlow）コントローラ１１は、シーケンスＳｅｑ３４においてフローエントリ削除要求のFLOW_MOD（DELETE）メッセージに対する応答であるFLOW_REMOVEDメッセージをオープンフロー（OpenFlow）スイッチ１２から受信すると、内部で保有しているアプリ３のマップアプリのポリシを一時的にＷｉ−Ｆｉ優先とし、アプリ３のマップアプリの通信の制限を解除して、通信が許可された状態になる（シーケンスＳｅｑ６１）。なお、図８のシーケンス図においては、図４の場合とは異なり、指定した一定時間の間だけ通信制限を解除するための解除タイマの計時動作は、このタイミングでは開始しない。
【０１０６】
その結果、オープンフロー（OpenFlow）コントローラ１１は、解除タイマについては起動しないものの、図４のシーケンスＳｅｑ３７の場合と同様、アプリ１のブラウザについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ２のメールについてはＷｉ−Ｆｉ優先のポリシ、アプリ３のマップについてはＷｉ−Ｆｉ優先のポリシ、アプリ４のストリーミング映像についてはＷｉ−Ｆｉ  onlyのポリシをそれぞれ設定した状態になる（シーケンスＳｅｑ６２）。
【０１０７】
アプリ３のマップアプリの通信が許可された状態になると、図４のシーケンスＳｅｑ３８の場合と同様、通信アプリのトリガの再送状態になり、アプリ３のマップアプリから再送パケットデータがオープンフロー（OpenFlow）スイッチ１２に送信される（シーケンスＳｅｑ６３）。なお、再送パケットデータの送信動作は通信アプリケーションの実装に依存するが、本実施形態においても、図５のシーケンス図の場合と同様、アプリ３のマップアプリは、再送パケットデータの送信動作を行う状態に設定されているものとする。
【０１０８】
アプリ３のマップアプリからの再送パケットデータを受信すると、オープンフロー（OpenFlow）スイッチ１２は、図４のシーケンスＳｅｑ３９の場合と同様、受信した再送パケットデータを一旦バッファリングして、オープンフロー（OpenFlow）コントローラ１１に対して、アプリ３のマップアプリからの再送パケットデータをどのように扱うかということを問い合わせるPACKET_INメッセージを送信する（シーケンスＳｅｑ６４）。なお、アプリ３のマップアプリからの再送パケットデータは、該PACKET_INメッセージに格納されている。
【０１０９】
オープンフロー（OpenFlow）スイッチ１２からのPACKET_INメッセージを受け取ったオープンフロー（OpenFlow）コントローラ１１は、アプリ３のマップアプリのポリシが、Ｗｉ−Ｆｉ優先のポリシであり、かつ、インタフェース１３のＷｉ−Ｆｉ部１３ａがＷｉ−Ｆｉ  ＡＰに接続されていない環境にあることを検出するので、インタフェース１３としてセルラー部１３ｂのセルラーポートを使用して、アプリ３のマップアプリからの再送パケットデータの送信を指定したFLOW_MODメッセージをオープンフロー（OpenFlow）スイッチ１２に対して送信する（シーケンスＳｅｑ６５）。さらに、オープンフロー（OpenFlow）コントローラ１１は、オープンフロー（OpenFlow）スイッチ１２において通信制限を一時的に解除するための時間についても、前記非特許文献１の“OpenFlow  Switch  Specification”に有効期限として規定されている一定時間（３０秒）の設定を指示する情報を、当該FLOW_MODメッセージに設定して、オープンフロー（OpenFlow）スイッチ１２に対して通知する。
【０１１０】
オープンフロー（OpenFlow）コントローラ１１から有効期限の一定時間（３０秒）の設定が指定されたFLOW_MODメッセージを受け取ると、オープンフロー（OpenFlow）スイッチ１２は、受け取ったFLOW_MODメッセージの指示に従って、通信制限を一時的に解除するための時間として、指定されている一定時間（３０秒）を計時するために、通信制限を一時的に解除するための解除タイマの計時動作を開始する。さらに、該FLOW_MODメッセージの指示に従って、アプリ３のマップアプリからのパケットデータの送信動作を許可するフローエントリをフローテーブルに設定するとともに、セルラー部１３ｂのセルラーポートを使用して、アプリ３のマップアプリから受信している再送パケットデータの送信を行う（シーケンスＳｅｑ６６）。以降、計時動作を開始した解除タイマが満了するまでの間、オープンフロー（OpenFlow）スイッチ１２は、図５のシーケンスＳｅｑ４２の場合と同様、アプリ３のマップアプリからのパケットデータを受け取る都度、受け取ったパケットデータを、セルラー部１３ｂのセルラーポートを使用して、送信する動作を行う（シーケンスＳｅｑ６７）。
【０１１１】
図４、図５の場合とは異なり、オープンフロー（OpenFlow）コントローラ１１側ではなく、オープンフロー（OpenFlow）スイッチ１２において計時動作を行っていた解除タイマが満了すると（シーケンスＳｅｑ６８）、オープンフロー（OpenFlow）スイッチ１２は、解除タイマが満了したので、アプリ３のマップアプリに関するフローエントリを元に戻す更新動作の開始を示すFLOW_REMOVEDメッセージを、オープンフロー（OpenFlow）コントローラ１１に対して送信する（シーケンスＳｅｑ６９）。しかる後、オープンフロー（OpenFlow）スイッチ１２は、図５のシーケンスＳｅｑ４５の場合と同様、フローテーブルに設定されているアプリ３のマップアプリからのパケットデータのセルラーポートからの送信動作を示すフローエントリをフローテーブルから削除して、元のドロップ（drop）を指定した状態に戻したフローエントリをフローテーブルに設定する（シーケンスＳｅｑ７０）。
【０１１２】
オープンフロー（OpenFlow）コントローラ１１は、解除タイマが満了し、アプリ３のマップアプリに関するフローエントリを元に戻す更新動作の開始を示すFLOW_REMOVEDメッセージを、オープンフロー（OpenFlow）スイッチ１２から受信すると、アプリ３のマップアプリのポリシを元のＷｉ−Ｆｉ  onlyのポリシに戻した状態に書き換えて内部的に保有することになる。つまり、オープンフロー（OpenFlow）コントローラ１１は、図５のシーケンスＳｅｑ４７の場合と同様、アプリ１のブラウザについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ２のメールについてはＷｉ−Ｆｉ優先のポリシ、アプリ３のマップについてはＷｉ−Ｆｉ  onlyのポリシ、アプリ４のストリーミング映像についてはＷｉ−Ｆｉ  onlyのポリシをそれぞれ設定した状態に復帰する（シーケンスＳｅｑ７１）。この結果、解除タイマが満了した時点で、アプリ３のマップアプリに関する通信制限の解除状態が完了して、通信制限の状態に復帰することになる。
【０１１３】
以上、本発明の好適な実施形態を挙げ、詳しく説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【符号の説明】
【０１１４】
１１      オープンフロー(OpenFlow)コントローラ
１１ａ    フローエントリ制御部
１１ｂ    オープンフロー（OpenFlow）メッセージ処理部
１１ｃ    アプリケーション状態認識部
１１ｄ    ＵＩメッセージ処理部
１１ｅ    ポリシ・フローエントリ保管部
１２      オープンフロー（OpenFlow）スイッチ
１３      インタフェース
１３ａ    Ｗｉ−Ｆｉ部
１３ｂ    セルラー部
１４      ユーザインタフェース（ＵＩ：User  Interface）
１５      通信アプリ
【図１】
2016144117.tif 000003
【図２】
2016144117.tif 000004
【図３】
2016144117.tif 000005
【図４】
2016144117.tif 000006
【図５】
2016144117.tif 000007
【図６】
2016144117.tif 000008
【図７】
2016144117.tif 000009
【図８】
2016144117.tif 000010