以下、図面を参照しながら、発明を実施するための形態を説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
●実施形態●
●システム構成
図1は、第1の実施形態に係るネットワークシステムのシステム構成の一例を示す図である。図1に示すネットワークシステム1は、飲食店または施設等の店舗において、顧客にインターネットを利用したネットワークサービスを提供するシステムである。ネットワークシステム1は、ユーザ端末30から送信されるパケットを処理する優先度をアプリケーションサーバ10によって定義することによって、特定のユーザが使用するユーザ端末30を優先的にインターネット5へ接続させることができる。
ネットワークシステム1は、アプリケーションサーバ10、ユーザ端末30、OpenFlowコントローラ50、OpenFlow(登録商標)スイッチ70、レジスタ端末80およびアクセス対象サーバ90により構成される。
アプリケーションサーバ10、ユーザ端末30、OpenFlowコントローラ50、OpenFlowスイッチ70およびレジスタ端末80は、店舗または施設等の組織内ネットワークであるローカルネットワーク3内にそれぞれ存在する。ローカルネットワーク3は、店舗、施設、オフィス、会議室等のネットワーク環境において構築されるネットワークである。ローカルネットワーク3は、例えば、インターネット5を経由しないLAN(Local Area Network)等の通信ネットワーク7によって構築される。アプリケーションサーバ10、OpenFlowコントローラ50、OpenFlowスイッチ70およびレジスタ端末80は、ローカルネットワーク3内において、LAN等の通信ネットワーク7を介してそれぞれ通信可能に接続されている。
アプリケーションサーバ10は、ローカルネットワーク3が構築された店舗等に設けられた、所定のWebアプリケーションを提供するWebサーバである。アプリケーションサーバ10は、ローカルネットワーク3内に存在する端末または装置に対して、Webアプリケーションが有する機能を提供する。アプリケーションサーバ10は、OpenFlowスイッチ70を介して、ユーザ端末30と通信することができる。なお、アプリケーションサーバ10は、単一のコンピュータによって構築されてもよいし、各部(機能、手段または記憶部)を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。アプリケーションサーバ10は、制御装置の一例である。
ユーザ端末30は、通信ネットワーク7に接続され、ローカルネットワーク3のユーザが使用するノートPC(Personal Computer:パソコン)等の通信端末である。なお、ユーザ端末30は、デスクトップPC、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラまたはウェアラブルPC等であってもよい。
OpenFlowコントローラ(OFC)50は、OpenFlowに基づいて、ユーザ端末30とアクセス対象サーバ90とのインターネット5を介した通信を制御する通信制御装置である。OpenFlowコントローラ50は、OpenFlowスイッチ70に対して、パケットの転送ルールである制御ポリシー710を指示する。OpenFlowスイッチ(OFS)70は、OpenFlowに基づいて、制御ポリシー710に基づいて、ユーザ端末30から送信されるパケットの処理を行う通信処理装置である。また、OpenFlowコントローラ50およびOpenFlowスイッチ70は、通信処理システム60を構成する。
レジスタ端末80は、ローカルネットワーク3が構築された店舗等に設けられたキャッシュレジスタである。レジスタ端末80は、ユーザによる商品購入時に、ユーザによる支払を受け付ける。また、レジスタ端末80は、ユーザによる支払を受け付けた際に、その支払金額(精算額)に応じたポイントを発行する。レジスタ端末80は、支払端末の一例である。支払端末は、レジスタ端末80に限られず、MFP(Multi-Function Peripheral:複合機)等であってもよい。この場合、支払端末は、ユーザがMFPを用いて印刷した印刷枚数に応じたポイントを発行してもよい。
アクセス対象サーバ90は、ローカルネットワーク3内に存在するユーザ端末30からインターネッ57を経由してアクセス可能なWEBサーバである。アクセス対象サーバ90は、ユーザ端末30によって特定のURLが指定されることによって、アクセスすることができる。なお、ネットワークシステム1は、アクセス対象サーバ90が複数設けられた構成であってもよい。
なお、ネットワークシステム1は、飲食店または施設等の店舗によって利用される例を説明するが、ネットワークシステム1が適用可能なユースケースはこれに限られない。
●実施形態に適用可能な技術
ここで、実施形態に適用可能な技術概念として、SDN(Software−Defined Network)について概略的に説明する。
従来、組織体内で閉じた構成の組織内LAN等のネットワーク環境は、各ベンダが提供するLANスイッチや無線LANアクセスポイントの設定・運用を熟知した専任の担当者が構築するのが一般的であった。このようなネットワーク環境は、ベンダのソリューションによる認証手段や運用方法しか提供されない、所謂「ベンダロックイン」の状態であり、組織体が自在に認証手段や運用方法を設定することが困難であった。
これに対して、近年では、ユーザである組織体が独自のネットワークを構築できるようにするため、ネットワーク上のデータの動きをソフトウェアだけで制御可能とするSDNと呼ばれる概念が注目されている。このSDNに関連して、注目を集めている代表的な構成技術要素として「ネットワークの仮想化」と、その仮想化されたネットワーク上での通信を制御する手法(プロトコル)の一つでありベンダに依存しないオープンな仕様である「オープンフロー(OpenFlow)」とがある。
ネットワークの仮想化は、例えば、一つの物理インターフェースを複数に(もしくは複数の物理インターフェースを一つに)見せるような仮想インターフェース技術、または仮想インターフェースを接続中継する仮想スイッチ技術等に至る、複数の構成要素を含む技術の集合体である。ネットワーク仮想化は、物理ネットワーク機器と仮想ネットワーク部品、プロトコル技術の組合せによって、物理的なネットワーク構成から論理的なネットワーク構成を仮想的に分離し、物理構成に縛られない柔軟なネットワーク構成を実現する。
OpenFlowは、通信をエンド・ツー・エンドのフローとして捉えて、そのフロー単位に経路制御、負荷分散、最適化等を行うことができる。具体的には、OpenFlowは、データ通信経路の中継機器等において自立分散的に各データパケットを解析して転送するのではなく、集中制御型に変えることで実現する。
図2は、実施形態に係るネットワークシステムに適用可能なOpenFlowに基づく構成の一例を概略的に説明するための図である。OpenFlowでは、データの解析と転送先判断および決定制御とを行う「コントロール・プレーン」と、単なるパケットの物理的な伝送を担う部分である「データ・プレーン」とを分離する。OpenFlowでは、コントロール・プレーンを司るOpenFlowコントローラ(OFC)50が転送ルールを指示し、データ・プレーンを担うOpenFlowスイッチ(OFS)70は、OpenFlowコントローラ50の指示に従ってパケットの転送を行う。より具体的には、OpenFlowスイッチ70は、OpenFlowコントローラ50が追加および書き換えを行う、OpenFlowスイッチ70が持つフローテーブルが有するフローエントリに従って、パケットの転送を行う。
OpenFlowスイッチ70は、パケットのヘッダの情報に基づきパケットを識別する。ヘッダは、「受信ポート」、「送信元MAC(Media Access Control)アドレス」、「宛先MACアドレス」、「プロトコル種別」、「VLAN(Virtual Local Area Network) ID」、「VLAN PCP(VLAN Priority Code Point)値」、「送信元IPアドレス」、「宛先IPアドレス」、「プロトコル番号」、「ToS(Type of Service)値」、「送信元ポート番号」および「宛先ポート番号」の、12種類のヘッダフィールドを含む。識別に使用しないヘッダフィールドには、ワイルドカードを指定することで、任意のヘッダフィールドを識別条件として用いることができる。
OpenFlowコントローラ50は、OpenFlowスイッチ70と接続され、OpenFlowコントローラ50とOpenFlowスイッチ70との間にOpenFlow(OF)チャネルと呼ばれる通信経路が確立されると、フローテーブルおよびフローエントリをOpenFlowスイッチ70に転送する。OpenFlowスイッチ70は、OFチャネル確立後、Modify−Stateメッセージに伴いOpenFlowコントローラ50から転送されたフローテーブルおよびフローエントリを、初期設定のフローテーブルおよびフローエントリとして、メモリに記憶させる。
ここで、OpenFlowにおいては、同じルールを持つ通信の集合体を「フロー」と呼ぶ。例えば、宛先IPアドレスが同一のIPアドレスであり、且つ、各々同一の処理がなされる一連のパケットの通信は、1つのフローを構成する。OpenFlowコントローラ50は、ユーザにより定義されたフローをOpenFlowスイッチ70に指示する。OpenFlowスイッチ70は、指示されたフローをフローエントリとして、フローテーブルに登録する。フローエントリは、パケットを判別する条件(マッチ)と、条件に従い判別されたパケットを受信した場合の動作(インストラクション)との組み合わせを含む。フローテーブルは、0以上のフローエントリが登録される。すなわち、OpenFlowスイッチ70の初期状態では、フローテーブルにはフローエントリが含まれない。
このような仕組みを用いることで、上述したネットワークの仮想化を制御するためのツール等としてOpenFlowを活用できる。
●概略
ここで、図3乃至図11を用いて、実施形態に係るネットワークシステムの構成の概略に説明する。なお、図3乃至図11は、実施形態に係るネットワークシステムの概略を簡略的に説明したものであり、ネットワークシステム1が実現する機能等の詳細は、後述する図面等を用いて説明する。
図2を用いて説明したように、SDNでは、条件、処理優先度および処理等からなる制御ポリシー(ルール)を、フローテーブルに定義することができ、この制御ポリシーに従いパケットの処理を行う。ネットワークシステム1では、ローカルネットワーク3のOpenFlowスイッチ70における制御ポリシーの「処理優先度」と制御ポリシーの適用可能な期間を、ユーザに付与されたポイントを消費することによって定義する。結果として、ユーザは、店舗で購入した商品の支払金額に比例するインターネット環境でネットワークを利用することができる。ここで、「処理優先度」とは、OpenFlowスイッチ70がユーザ端末30から送信されるパケットを処理する優先度である。処理優先度は、例えば、OpenFlowスイッチ70がユーザ端末30から送信されたパケットを転送する優先度を示す。OpenFlowスイッチ70は、処理優先度が高いユーザ端末30から送信されるパケットを、優先的に処理する。
図3は、アプリケーションサーバ10に登録されていない新規のユーザがインターネット5へアクセスしようとしている場合を示す。OpenFlowスイッチ70には、アプリケーションサーバ10に登録されたユーザ端末30以外の端末からインターネット5へアクセスできない制御ポリシーが設定されている。そのため、図3に示すように、未登録のユーザ端末30は、インターネット5へアクセスすることができない。なお、ローカルネットワーク3内に存在するアプリケーションサーバ10には、いずれのユーザ端末30も接続可能であるものとする。
図4は、ネットワークシステム1が構成された店舗において、ユーザが商品を購入した場合の処理を示す。レジスタ端末80は、ユーザが所定の商品を購入した際に、ユーザによる支払を受け付ける。また、レジスタ端末80は、ユーザによる精算時に商品の支払金額に応じたポイントを発行する。そして、レジスタ端末80は、発行したポイントを示すポイント情報を、アプリケーションサーバ10へ送信する。ここで、ポイント情報は、特定のユーザによる特定の支払に係る支払情報の一例である。また、アプリケーションサーバ10は、ポイント情報を受信した場合、ユーザIDとパスワードを発行し、発行したユーザIDおよびパスワードと受信したポイント情報とを関連づけたユーザ情報を生成する。ここで、ユーザIDとパスワードは、ユーザ識別情報の一例である。アプリケーションサーバ10は、生成したユーザ情報を管理するとともに、レジスタ端末80へ送信する。そして、レジスタ端末80は、受信したユーザ情報が記載されたレシートを出力する等の方法によって、ユーザ情報をユーザに提示する。ユーザは、提示されたユーザ情報に含まれるユーザIDおよびパスワードを用いて、アプリケーションサーバ10が提供するWebアプリケーションへログインすることができる。
図5は、アプリケーションサーバ10にユーザ端末30を登録する処理を示す。ユーザ端末30は、アプリケーションサーバ10が提供するWebアプリケーションを利用する場合、まず、レジスタ端末80によって提示されたユーザIDおよびパスワードを、アプリケーションサーバ10へ送信する。アプリケーションサーバ10は、認証されたユーザが使用するユーザ端末30のMACアドレスを登録する。ユーザ端末30のMACアドレスは、ユーザ端末30の端末識別情報の一例である。また、アプリケーションサーバ10は、ポイント情報に示されるポイントを消費し、ユーザ端末30の処理優先度および当該処理優先度を適用するための期間を定めたネットワーク利用ルールを生成する。
図6は、OpenFlowスイッチ70に設定された制御ポリシーを変更する処理を示す。アプリケーションサーバ10は、生成したネットワーク利用ルールを、OpenFlowコントローラ50およびOpenFlowスイッチ70が受信可能な形式(例えば、json形式)に変換する。そして、アプリケーションサーバ10は、変換されたネットワーク利用ルール(制御ポリシー710)を、OpenFlowコントローラ50へ送信する。OpenFlowコントローラ50は、受信した制御ポリシー710をフローテーブルおよびフローエントリとして設定するともに、OpenFlowスイッチへ制御ポリシー710を転送する。
図7は、ユーザ端末30からインターネット5へのアクセスが許可される場合の処理を示す。OpenFlowスイッチ70は、図6に示した処理によって反映された制御ポリシー710を用いて、ユーザ端末30のインターネット5へのアクセスを制御する。この場合、制御ポリシー710として、ユーザ端末30の処理優先度が高い利用ルールが設定されているため、ユーザ端末30は、OpenFlowスイッチ70を介して、優先的にインターネット5へアクセスすることができる。
図8は、アプリケーションサーバ10によるユーザ端末30の制御ポリシー710の利用可能時間を計測する処理を示す。アプリケーションサーバ10は、ユーザ端末30がインターネット5へのアクセスを開始してからの経過時間を計測し、定期的に適用期間の範囲内であるかをモニタリングする。
図9は、OpenFlowスイッチ70に設定された制御ポリシー710を変更する処理を示す。アプリケーションサーバ10は、ネットワーク利用ルールに示される制御ポリシー710の適用期間外であると判断した場合、ネットワーク利用ルールを変更する。この場合、アプリケーションサーバ10は、処理優先度を低下させた新たなネットワーク利用ルールを生成する。そして、アプリケーションサーバ10は、変更したネットワーク利用ルールを、OpenFlowコントローラ50およびOpenFlowスイッチ70が受信可能な形式(例えば、json形式)に変換する。そして、アプリケーションサーバ10は、変換されたネットワーク利用ルール(制御ポリシー710)を、OpenFlowコントローラ50へ送信する。OpenFlowコントローラ50は、受信した制御ポリシー710をフローテーブルおよびフローエントリとして設定するともに、OpenFlowスイッチ70へ制御ポリシー710を送信する。
図10は、変更された制御ポリシー710に基づいて、ユーザ端末30からインターネット5へアクセスする場合の処理を示す。OpenFlowスイッチ70は、図9に示した処理によって変更された制御ポリシー710を用いて、ユーザ端末30のインターネット5へのアクセスを制御する。この場合、制御ポリシー710として、ユーザ端末30の処理優先度が低い利用ルールが設定されているため、ユーザ端末30は、OpenFlowスイッチ70を介してインターネット5へアクセスすることができるが、処理優先度は低くなる。
図11は、ネットワーク利用ルールが設定された新たなユーザ端末30Bがインターネット5へアクセスする場合の処理を示す。この場合、新規に登録されたユーザ端末30Bは、処理優先度が高くなり、既存のユーザ端末30Bよりも高い処理優先度でインターネット5へアクセスすることができる。
以上のように、ネットワークシステム1は、アプリケーションサーバ10によってOpenFlowスイッチ70に設定された制御ポリシー710を用いて、ユーザ端末30のインターネット5へのアクセス制御を行うことができる。
Free-Wifiサービス等のネットワークサービスを提供する店舗において、商品を購入しないにも関わらず大容量の通信を長時間行うユーザによって、他のユーザの通信速度が遅延し、快適なネットワーク環境を提供できない場合がある。このような問題を解決するため、パケットの通信経路を制御する技術を用いることができるが、従来の通信経路の制御技術では、通信経路となる通信ポートごとに優先度に定義することに留まるため、ユーザが使用するユーザ端末30ごとにパケット処理の優先度を動的に変更することはできなかった。
そこで、ネットワークシステム1は、SDN技術による端末識別情報に基づくアクセス制御を用いて優先度処理を実現しているため、OpenFlowスイッチ70に設定されたパケットの処理優先度の定義を動的に変更することができる。OpenFlowスイッチ70には、ユーザ端末30から送信されるパケットの処理ルール(ユーザ端末30の端末識別情報と処理優先度)を設定させることができるため、この処理ルールをアプリケーションサーバ10によって動的に変更することができる。
また、ネットワークシステム1は、OpenFlowスイッチ70に設定された処理ルールを用いて、ユーザによる支払金額と通信の快適度が比例したネットワークサービスを提供することができる。ネットワークシステム1は、ユーザによる支払金額に比例するポイントを発行し、支払金額に比例したネットワーク環境をユーザに提供する。これにより、ネットワークシステム1は、支払金額の多いユーザには優先度の高い通信を長時間提供することができるため、ユーザの商品の購買意欲を促進させることができる。
また、ネットワークシステム1は、ユーザ自身がOpenFlowスイッチ70に設定される処理優先度と利用時間を選択することができるので、ユーザの利用目的に合わせた通信速度のネットワーク環境を提供することができる。
●ハードウエア構成
続いて、図12および図13を用いて、実施形態に係る各装置のハードウエア構成について説明する。実施形態に係る各装置のハードウエア構成は、一般的なコンピュータの構成を有する。まず、図12を用いて、一般的なコンピュータのハードウエア構成例について説明する。
○コンピュータのハードウエア構成○
図12は、実施形態に係るコンピュータのハードウエア構成の一例を示す図である。コンピュータ200は、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、ストレージ204、キーボード205、ディスプレイインターフェース(I/F)206、メディアインターフェース(I/F)207、ネットワークインターフェース(I/F)208、タイマ209およびバスライン210を備える。
CPU201は、ROM202やストレージ204等に格納された本発明に係るプログラムやデータをRAM203上に読み出し、処理を実行することで、コンピュータ200の各機能を実現する演算装置である。例えば、アプリケーションサーバ10は、本発明に係るプログラムが実行されることで本発明に係る制御方法を実現する。
ROM202は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリである。ROM202は、例えば、フラッシュROM等により構成される。ROM202は、SDK(Software Development Kit)およびAPI(Application Programming Interface)等のアプリケーションをインストールしており、インストールされたアプリケーションを用いて、コンピュータ200の機能やネットワーク接続等を実現することが可能である。
RAM203は、CPU201のワークエリア等として用いられる揮発性のメモリである。ストレージ204は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスである。ストレージ204は、例えば、OS(Operation System)、アプリケーションプログラムおよび各種データ等を記憶する。
キーボード205は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。入力手段は、キーボード205のみならず、例えば、マウス、タッチパネルまたは音声入力装置等であってもよい。ディスプレイI/F206は、LCD(Liquid Crystal Display)等のディスプレイ206aに対するカーソル、メニュー、ウィンドウ、文字または画像等の各種情報の表示を制御する。ディスプレイ206aは、入力手段を備えたタッチパネルディスプレイであってもよい。
メディアI/F207は、USB(Universal Serial Bus)メモリ、メモリカード、光学ディスクまたはフラッシュメモリ等の記録メディア207aに対するデータの読み出しまたは書き込み(記憶)を制御する。
ネットワークI/F208は、コンピュータ200をネットワークに接続し、他のコンピュータや、電子機器等とデータの送受信を行うためのインターフェースである。ネットワークI/F208は、例えば、有線または無線LAN(Local Area Network)等の通信インターフェースである。また、ネットワークI/F208は、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation)、Zigbee(登録商標)、BLE(Bluetooth(登録商標)Low Energy)、ミリ波無線通信の通信インターフェースを備えてもよい。タイマ209は、時間計測機能を有する計測装置である。タイマ209は、コンピュータによるソフトタイマでもよい。
バスライン210は、上記の各構成要素に共通に接続され、アドレス信号、データ信号、および各種制御信号等を伝送する。CPU201、ROM202、RAM203、ストレージ204、キーボード205、ディスプレイI/F206、メディアI/F207およびネットワークI/F208およびタイマ209は、バスライン210を介して相互に接続されている。
なお、実施形態に係る各装置のハードウエア構成は、必要に応じて構成要素が追加または削除されてもよい。例えば、アプリケーションサーバ10、OpenFlowコントローラ50およびアクセス対象サーバ90は、キーボード905等の入力手段およびディスプレイ206aを備えていない構成であってもよい。
○OpenFlowスイッチのハードウエア構成○
続いて、図13を用いて、OpenFlowスイッチ70のハードウエア構成例について説明する。図13は、実施形態に係るOpenFlowスイッチのハードウエア構成の一例を示す図である。OpenFlowスイッチ70は、CPU701、ROM702、RAM703、ストレージ704、メディアインターフェース(I/F)705、ネットワークインターフェース(I/F)706およびバスライン707を備える。
CPU701は、ROM702やストレージ704等に格納された本発明に係るプログラムやデータをRAM703上に読み出し、処理を実行することで、OpenFlowスイッチ70の各機能を実現する演算装置である。ROM702は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリである。ROM702は、例えば、フラッシュROM等により構成される。ROM702は、SDK(Software Development Kit)およびAPI(Application Programming Interface)等のアプリケーションをインストールしており、インストールされたアプリケーションを用いて、OpenFlowスイッチ70の機能やネットワーク接続等を実現することが可能である。
RAM703は、CPU701のワークエリア等として用いられる揮発性のメモリである。ストレージ704は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスである。ストレージ704は、例えば、OS(Operation System)、アプリケーションプログラムおよび各種データ等を記憶する。
メディアI/F705は、USB(Universal Serial Bus)メモリ、メモリカード、光学ディスクまたはフラッシュメモリ等の記録メディア705aに対するデータの読み出しまたは書き込み(記憶)を制御する。
ネットワークI/F706は、OpenFlowスイッチ70をネットワークに接続し、他のコンピュータや、電子機器等とデータの送受信を行うためのインターフェースである。ネットワークI/F706は、接続先の異なる複数の通信インターフェース(ポート(eth)0(706a),ポート(eth)1(706b))を有する。通信インターフェースは、例えば、TCP(Transmission Control Protocol)プロトコルに準拠した通信ポートである。なお、通信ポートの数は、これに限られず、三つ以上の通信ポートを有していてもよい。
バスライン707は、上記の各構成要素に共通に接続され、アドレス信号、データ信号、および各種制御信号等を伝送する。CPU701、ROM702、RAM703、ストレージ704、メディアI/F705およびネットワークI/F706は、バスライン707を介して相互に接続されている。
●機能構成
○アプリケーションサーバの機能構成
続いて、実施形態に係るネットワークシステムの機能構成について説明する。まず、図14を用いて、アプリケーションサーバ10の機能構成を説明する。図14は、第1の実施形態に係るアプリケーションサーバの機能構成の一例を示す図である。図14に示すアプリケーションサーバ10によって実現される機能は、送受信部11、認証部12、判断部13、ユーザ情報生成部14、時刻情報取得部15、ネットワーク利用ルール生成部16、制御ポリシー生成部17、記憶・読出部18および記憶部100を含む。
送受信部11は、外部装置と各種データの送受信を行う機能である。送受信部11は、例えば、ローカルネットワーク3内に存在する装置または端末との間で、各種データ(情報)の送受信を行う。送受信部11は、例えば、ユーザによる特定の支払に係る支払情報を含むユーザ情報登録要求を、レジスタ端末80から受信する。また、送受信部11は、特定のユーザを識別するためのユーザ識別情報、および特定のユーザ端末30を識別するための端末識別情報を、ユーザ端末30から受信する。さらに、送受信部11は、例えば、後述する制御ポリシー生成部17によって生成された制御ポリシー710を、OpenFlowスイッチ70へ送信する。送受信部11は、例えば、図12に示したネットワークI/F208およびCPU201で実行されるプログラム等によって実現される。送受信部11は、支払情報受信手段の一例である。また、送受信部11は、識別情報受信手段の一例である。さらに、送受信部11は、送信手段の一例である。また、送受信部11は、条件情報受信手段の一例である。
認証部12は、ユーザ端末30を用いてWebアプリケーションを利用するユーザの認証処理を行う機能である。認証部12は、例えば、送受信部11によって受信されたユーザ識別情報と後述するユーザ情報管理テーブル110を用いて、ユーザ識別情報を送信したユーザ端末30を使用するユーザの認証処理を行う。認証部12は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
判断部13は、後述する制御ポリシー710を適用する期間内(期間外)であるかを判断する機能である。判断部13は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
ユーザ情報生成部14は、ユーザ端末30を使用するユーザを識別するためのユーザ情報を生成する機能である。ユーザ情報生成部14は、送受信部11によって受信されたユーザ情報登録要求に含まれる支払情報と、当該支払情報に係る特定の支払を行った特定のユーザを識別するためのユーザ識別情報とが関連づけられたユーザ情報を生成する。ユーザ情報生成部14によって生成されたユーザ情報は、後述するユーザ情報管理テーブル110によって記憶・管理される。ユーザ情報生成部14は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
時刻情報取得部15は、タイマ209を用いて現在時刻を示す時刻情報130を取得する機能である。時刻情報取得部15によって取得された時刻情報130は、記憶部100に記憶される。時刻情報取得部15は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
ネットワーク利用ルール生成部16は、OpenFlowスイッチ70におけるユーザ端末30から送信されるパケットを処理する優先度を含むネットワーク利用ルールを生成する機能である。ネットワーク利用ルール生成部16によって生成されたネットワーク利用ルールは、後述するネットワーク利用ルール管理テーブル170によって記憶・管理される。ネットワーク利用ルール生成部16は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
制御ポリシー生成部17は、OpenFlowスイッチ70に設定される制御ポリシー710を生成する機能である。制御ポリシー710は、OpenFlowにおけるフローテーブルおよびフローエントリに相当する。制御ポリシー生成部17は、ネットワーク利用ルール生成部16によって生成されたネットワーク利用ルールを、OpenFlowコントローラ50およびOpenFlowスイッチ70が受信可能なデータ形式である制御ポリシー710に変換する。制御ポリシー710は、例えば、SDNのOpenFlow技術において使用できるJSON形式等で記述される。制御ポリシー710には、例えば、特定のユーザ端末30を識別するための端末識別情報、制御ポリシー710を適用するための期間を示す期間情報、および特定のユーザ端末30から送信されるパケットを処理する優先度を示す特定の処理優先度が含まれる。制御ポリシー710は、制御情報の一例である。制御ポリシー生成部17は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。制御ポリシー生成部17は、生成手段の一例である。
記憶・読出部18は、記憶部100に各種データを記憶し、記憶部100から各種データを読み出す機能である。記憶・読出部18は、例えば、図12に示したCPU201で実行されるプログラム等により実現される。また、記憶部100は、例えば、図12に示したROM202、ストレージ204または記録メディア207a等により実現される。さらに、記憶部100は、ユーザ情報管理テーブル110、時刻情報130、条件情報管理テーブル150a、およびネットワーク利用ルール管理テーブル170を記憶している。
○ユーザ情報管理テーブル
図16(a)は、実施形態に係るユーザ情報管理テーブルの一例を示す図である。図16(a)に示すユーザ情報管理テーブル110は、アプリケーションサーバ10が提供するWebアプリケーションを利用するユーザを識別するためのユーザ情報を記憶・管理するものである。ユーザ情報管理テーブル110は、アプリケーションサーバ10が提供するWebアプリケーションにログインする際に用いるユーザIDおよびパスワード、並びにユーザが利用可能なポイントを示すポイント情報を関連づけて記憶・管理している。
ユーザIDおよびパスワードは、特定のユーザを識別するためのユーザ識別情報であり、ユーザ情報生成部14によって乱数により取得される。また、ポイント情報は、レジスタ端末80によって発行されるものであり、ユーザ識別情報によって識別される特定のユーザが利用可能なポイントを示す。ポイント情報は、特定のユーザによる特定の支払に係る支払情報の一例である。
○時刻情報
図16(b)は、実施形態に係る時刻情報の一例を示す図である。図16(b)に示す時刻情報130は、時刻情報取得部15によって取得された現在時刻を示す情報である。時刻情報取得部15は、タイマ209を用いて定期的に現在時刻を示す時刻情報130を取得し、記憶部100に記憶させる。
○条件情報管理テーブル
図17は、実施形態に係る条件情報管理テーブルの一例を示す図である。図17に示す条件情報管理テーブル150aは、アプリケーションサーバ10が提供するWebアプリケーションにおいて、ユーザ端末30から送信されるパケットを処理する優先度を設定するための条件を示す条件情報を記憶・管理するものである。条件情報管理テーブル150aは、消費ポイントおよび処理優先度を関連づけて記憶している。
消費ポイントは、処理優先度ごとに定義されたポイントの消費ルールである。消費ポイントは、例えば、処理優先度ごとに、当該処理優先度が設定される場合の1分当たりに消費されるポイントが定義されている。消費ポイントは、支払情報を消費する単位を示す条件の一例である。また、処理優先度は、OpenFlowスイッチ70におけるユーザ端末30から送信されるパケットを処理する優先度である。処理優先度は、「5」〜「0」までの値で段階的に定義されており、例えば、「5」は、最も処理優先度が高く、「0」は、処理優先度が最も低い。
図6に示す例において、処理優先度「5」に対応する条件は、「50/min」であり、1分当たり50ポイントが消費されることを意味する。また、処理優先度「4」に対応する条件は、「40/min」であり、1分当たり40ポイントが消費されることを意味する。さらに、処理優先度「3」に対応する条件は、「30/min」であり、1分当たり30ポイントが消費されることを意味する。また、処理優先度「2」に対応する条件は、「20/min」であり、1分当たり20ポイントが消費されることを意味する。さらに、処理優先度「1」に対応する条件は、「10/min」であり、1分当たり10ポイントが消費されることを意味する。処理優先度「0」に対応する条件は、定義されておらず、ポイントは消費されない変わりに、最も処理の優先度が低くなる。
なお、条件情報管理テーブル150aに示される条件情報は、これに限られず、ローカルネットワーク3の管理者等によって適宜修正・変更されてもよい。
○ネットワーク利用ルール管理テーブル
図18は、実施形態に係るネットワーク利用ルール管理テーブルの一例を示す図である。図18に示すネットワーク利用ルール管理テーブル170は、OpenFlowスイッチ70における処理ルールとなるネットワーク利用ルールを記憶・管理するものである。ネットワーク利用ルール管理テーブル170は、ユーザ端末30を識別するための端末ID、ネットワーク利用ルールを適用する期間を示す期間情報(適用開始時刻および適用終了時刻)、並びに処理優先度が関連づけられている。端末IDは、特定のユーザ端末30を識別するための端末識別情報の一例である。図18に示す端末IDには、特定のユーザ端末30のMACアドレスが用いられる。
続いて、図15を用いて、ネットワークシステム1を構成する他の装置の機能構成を説明する。図15は、第1の実施形態に係るネットワークシステムを構成する各装置の機能構成の一例を示す図である。
○ユーザ端末の機能構成○
まず、ユーザ端末30の機能構成について説明する。図15に示すユーザ端末30によって実現される機能は、送受信部31、受付部32および表示制御部33を含む。
送受信部31は、OpenFlowスイッチ70を介して、外部装置と各種データの送受信を行う機能である。送受信部31は、例えば、OpenFlowスイッチ70を介して、アクセス対象サーバ90へのアクセス要求(接続要求)を、インターネット5を経由して送信する。また、送受信部31は、例えば、受付部32によって選択が受け付けられた、条件情報に含まれる特定の条件を示す特定条件情報を、アプリケーションサーバ10へ送信する。送受信部31は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。送受信部31は、条件情報送信手段の一例である。
受付部32は、図12に示したキーボード205等の入力手段に対するユーザ入力を受け付ける機能である。受付部32は、例えば、ディスプレイ206aに表示された利用条件選択画面400(図22参照)に示される条件情報のうち、特定の条件の選択を受け付ける。受付部32は、例えば、図12に示したキーボード205およびCPU201で実行されるプログラム等によって実現される。受付部32は、受付手段の一例である。表示制御部33は、図12に示したディスプレイ206aに各種画面情報を表示させる機能である。表示制御部33は、例えば、利用条件選択画面400(図22参照)を、ディスプレイ206aに表示させる。表示制御部33は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
○OpenFlowコントローラの機能構成○
続いて、OpenFlowコントローラ50の機能構成について説明する。図15に示すOpenFlowコントローラ50によって実現される機能は、送受信部51、設定部52、記憶・読出部53および記憶部500を含む。
送受信部51は、通信ネットワーク7を介して、外部装置と各種データの送受信を行う機能である。送受信部51は、例えば、アプリケーションサーバ10から送信された制御ポリシー710を受信する。また、送受信部51は、例えば、設定部52によって設定された制御ポリシー710を、OpenFlowスイッチ70へ転送(送信)する。送受信部51は、例えば、図12に示したネットワークI/F208およびCPU201で実行されるプログラム等によって実現される。送受信部51は、制御情報転送手段の一例である。
設定部52は、OpenFlowスイッチ70におけるユーザ端末30から送信されるパケットの処理ルールを示す制御ポリシー710を設定する機能である。設定部52は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。記憶・読出部53は、記憶部500に各種データを記憶し、記憶部500から各種データを読み出す機能である。記憶・読出部53は、例えば、図12に示したCPU201で実行されるプログラム等により実現される。また、記憶部500は、例えば、図12に示したROM202、ストレージ204または記録メディア207a等により実現される。さらに、記憶部700は、設定部52によって設定された制御ポリシー710を記憶している。
なお、ネットワークシステム1において、アプリケーションサーバ10によって実現される機能は、OpenFlowコントローラ50によって実現されてもよい。この場合、ネットワークシステム1は、アプリケーションサーバ10とOpenFlowコントローラ50によって実現される機能を、一台の制御装置によって実現することができる。
○OpenFlowスイッチの機能構成○
次に、OpenFlowスイッチ70の機能構成について説明する。図15に示すOpenFlowスイッチ70によって実現される機能は、第1の送受信部71、第2の送受信部72、判断部73、記憶・読出部74および記憶部700を含む。なお、図15は、OpenFlowスイッチ70が異なる二つの通信ポート(例えば、ポート(eth)0(706a),ポート(eth)1(706b))を有する場合について説明するが、異なる三つ以上の通信ポートが存在する場合には、OpenFlowスイッチ70によって実現される機能は、通信ポートの数に対応した送受信部を含む。
第1の送受信部71および第2の送受信部72は、OpenFlowスイッチ70が有する通信ポートを用いて、OpenFlowスイッチ70に接続された各装置間で各種データを送受信する。第1の送受信部71は、ユーザ端末30に接続された通信ポート(例えば、ポート(eth)0(706a))を介して、各種データの送受信を行う。第2の送受信部72は、通信ネットワーク7に接続される通信ポート(例えば、ポート(eth)1(706b))を介して、各種データの送受信を行う。第1の送受信部71は、例えば、特定のユーザ端末30からインターネット5への接続要求を受信する。また、第2の送受信部72は、例えば、OpenFlowコントローラ50によって設定された制御ポリシー710に含まれる特定の処理優先度に基づいて、特定のユーザ端末30から送信されたインターネット5への接続要求をインターネットへ転送する。第1の送受信部71および第2の送受信部72は、例えば、図13に示したネットワークI/F706およびCPU701で実行されるプログラム等によって実現される。第1の送受信部71は、接続要求受信手段の一例である。また、第2の送受信部72は、接続要求転送手段の一例である。
判断部73は、OpenFlowコントローラ50によって設定された制御ポリシー710に基づいて、第1の送受信部71によって受信されたパケットの処理優先度を判断する機能である。判断部73は、例えば、図13に示したCPU701で実行されるプログラム等によって実現される。
記憶・読出部74は、記憶部700に各種データを記憶し、記憶部700から各種データを読み出す機能である。記憶・読出部74は、例えば、図13に示したCPU701で実行されるプログラム等により実現される。また、記憶部700は、例えば、図13に示したROM702、ストレージ704または記録メディア707a等により実現される。さらに、記憶部700は、OpenFlowコントローラ50によって設定された制御ポリシー710を記憶している。制御ポリシー710は、OpenFlowコントローラ50の記憶部500に記憶されたものと同様である。
○レジスタ端末の機能構成○
次に、レジスタ端末80の機能構成について説明する。図15に示すレジスタ端末80によって実現される機能は、送受信部81、受付部82、ポイント付与部83および出力部84を含む。
送受信部81は、通信ネットワーク7を介して、外部装置と各種データの送受信を行う機能である。送受信部81は、例えば、ユーザによる商品購入時に、特定のユーザの特定の支払に係る支払情報を、アプリケーションサーバ10へ送信する。また、送受信部81は、アプリケーションサーバ10によって生成されたユーザ情報を、アプリケーションサーバ10から受信する。送受信部81は、例えば、図12に示したネットワークI/F208およびCPU201で実行されるプログラム等によって実現される。
受付部82は、図12に示したキーボード205等の入力手段に対するユーザ入力を受け付ける機能である。受付部82は、例えば、ユーザによる商品購入時に、ユーザによる支払を受け付ける。受付部82は、例えば、図12に示したキーボード205およびCPU201で実行されるプログラム等によって実現される。
ポイント付与部83は、ユーザによる商品購入時に、特定のユーザによる特定の支払に係る支払金額に応じたポイントを、当該特定のユーザに付与する機能である。ポイント付与部83は、例えば、受付部82によって受け付けられた支払金額に応じたポイントを付与する。ポイント付与部83は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
出力部84は、送受信部81によって受信されたユーザ情報を出力する機能である。出力部84は、例えば、ユーザ情報をレシート等の出力物に印刷する。また、出力部84は、例えば、レジスタ端末80のディスプレイ206aに、ユーザ情報を表示させる。出力部84は、例えば、図12に示したCPU201で実行されるプログラム等によって実現される。
○アクセス対象サーバの機能構成○
次に、アクセス対象サーバ90の機能構成について説明する。図15に示すアクセス対象サーバ90によって実現される機能は、送受信部91を含む。送受信部91は、インターネット5を経由して外部装置と各種データの送受信を行う機能である。送受信部91は、インターネット5を経由してユーザ端末30と通信を行う。送受信部91は、例えば、図12に示したネットワークI/F208およびCPU201で実行されるプログラム等によって実現される。
●実施形態における処理または動作
○ユーザ情報の登録処理○
続いて、実施形態に係るネットワークシステムの処理または動作について説明する。まず、図19を用いて、ネットワークシステム1を利用するユーザのユーザ情報を、アプリケーションサーバ10に登録する処理について説明する。図19は、実施形態に係るネットワークシステムにおけるユーザ情報の登録処理の一例を示すシーケンス図である。図19は、ネットワークシステム1が構築された店舗において、ユーザが商品を購入した場合の処理について説明する。
ステップS11において、レジスタ端末80のポイント付与部83は、ユーザが商品を購入した場合、支払金額に応じたポイントを付与する。具体的には、レジスタ端末80の受付部82は、ユーザによる商品購入時に、特定のユーザによる特定の支払に係る支払金額の入力を受け付ける。そして、レジスタ端末80のポイント付与部83は、受付部82によって受け付けられた支払金額に応じたポイントを付与する。具体的には、ユーザが500円の商品を購入した場合、ポイント付与部83は、例えば、1円あたり1ポイントを付与ルールで、500ポイントを付与する。なお、ポイント付与ルールは、ネットワークシステム1が構築された店舗等において、適宜設定・変更可能である。
ステップS12において、レジスタ端末80の送受信部81は、ポイント付与部83によってポイントが付与された場合、特定の支払を行ったユーザに関するユーザ情報を登録するためのユーザ情報登録要求を、アプリケーションサーバ10へ送信する。ここで、ユーザ情報登録要求には、ポイント付与部83によって付与されたポイントを示すポイント情報が含まれる。ポイント情報は、特定のユーザによる特定の支払に係る支払情報の一例である。これにより、アプリケーションサーバ10の送受信部11は、レジスタ端末80から送信されたユーザ情報登録要求を受信する(支払情報受信ステップの一例)。
ステップS13において、アプリケーションサーバ10のユーザ情報生成部14は、送受信部11によって受信されたユーザ情報登録要求に基づいて、特定の支払を行った特定のユーザを識別するためのユーザ識別情報を生成する。具体的には、ユーザ情報生成部14は、乱数を用いて、ユーザ識別情報としてユーザIDおよびパスワードを生成する。そして、ユーザ情報生成部14は、生成したユーザIDおよびパスワードに、送受信部11によって受信されたユーザ情報登録要求に含まれるポイント情報が関連づけられたユーザ情報を生成する。
ステップS14において、アプリケーションサーバ10の記憶・読出部18は、ユーザ情報生成部14によって生成されたユーザ情報を、記憶部100に含まれるユーザ情報管理テーブル110に記憶させる。これにより、アプリケーションサーバ10は、特定のユーザによる商品購入時に付与されたポイントを、そのユーザが利用可能なポイント情報として、ユーザごとに登録することができる。
なお、アプリケーションサーバ10によってユーザIDおよびパスワードが生成される例を説明したが、ユーザIDおよびパスワードは、レジスタ端末80による支払の受付時に生成される構成であってもよい。この場合、レジスタ端末80から送信されるユーザ情報登録要求には、ポイント情報と併せて、ユーザIDおよびパスワードが含まれる。また、レジスタ端末80によってポイントが付与される例を説明したが、ポイントの付与は、アプリケーションサーバ10によって行われる構成であってもよい。この場合、アプリケーションサーバ10は、レジスタ端末80から送信された支払金額の情報に基づいて、支払金額に応じたポイントを付与する。
さらに、図19において、ユーザ情報生成部14によってユーザ識別情報が生成される例を説明したが、ユーザ識別情報は、アプリケーションサーバ10に予め登録されている構成であってもよい。この場合、レジスタ端末80の送受信部81は、特定の支払を行った特定のユーザのユーザ識別情報の入力、またはユーザ識別情報が登録されたポイントカード等の読込によって、受付部82によって受け付けられたユーザ識別情報を、アプリケーションサーバ10へ送信する。これにより、アプリケーションサーバ10は、ユーザによる支払が行われるたびにユーザ識別情報を生成する必要がないとともに、特定のユーザに付与され、そのユーザが利用可能なポイントを蓄積することができる。また、アプリケーションサーバ10は、ユーザ情報管理テーブル110に、ポイント情報ではなく、特定のユーザによる支払金額そのものを、ユーザIDおよびパスワードと関連づけて記憶させてもよい。この場合の支払金額は、特定のユーザによる特定の支払に係る支払情報の一例である。
ステップS15において、アプリケーションサーバ10の送受信部11は、ユーザ情報生成部14によって生成されたユーザ情報を、レジスタ端末80へ送信する。これにより、レジスタ端末80の送受信部81は、アプリケーションサーバ10から送信されたユーザ情報を受信する。
ステップS16において、レジスタ端末80の出力部84は、送受信部81によって受信されたユーザ情報を、所定の形式で出力する。出力部84は、例えば、レシート等の出力物に、ユーザ情報を印刷する。出力部84によって出力されたレシートには、例えば、ユーザID「201805021130」、パスワード「1234」、ポイント情報「500」が印字されている。また、出力部84は、例えば、レジスタ端末80のディスプレイ206aに、ユーザ情報を表示させてもよい。
ここで、レジスタ端末80から出力される出力物の例について説明する。図20は、実施形態に係るレジスタ端末によって出力される出力物の一例を示す図である。図20に示す出力物800は、レジスタ端末80から出力されるレシートである。図20に示す出力物800には、特定の支払に係る支払金額、特定の支払に係る支払金額に応じて付与されるポイント、および特定の支払を行った特定のユーザを識別するためのユーザ識別情報(ユーザIDおよびパスワード)が含まれる。
特定の支払を行ったユーザは、図20に示す出力物800に示されるユーザ識別情報およびポイント情報を含むユーザ情報を用いて、後述のインターネット5を介したネットワークサービスを利用するための処理を行う。
また、図20に示す出力物800には、ユーザ情報が埋め込まれたQRコードが含まれる。ユーザは、出力物800に示されるQRコードを読み取ることによって、ユーザ情報を使用することができる。
これにより、アプリケーションサーバ10は、レジスタ端末80によって受け付けられた特定の支払に係る支払金額に応じて付与されたポイント情報を、特定の支払を行った特定のユーザごとに管理することができる。そして、ネットワークシステム1は、レジスタ端末80から出力されたレシート等の出力物によって、アプリケーションサーバ10が提供するアプリケーションの利用時に使用するユーザ識別情報(ユーザIDおよびパスワード)を、ユーザに提示することができる。
○制御ポリシーの設定処理○
続いて、図21乃至図23を用いて、OpenFlowスイッチ70におけるパケット処理ルールを設定する処理について説明する。図21は、実施形態に係るネットワークシステムにおける制御ポリシーの設定処理の一例を示すシーケンス図である。
ステップS31において、ユーザ端末30の受付部32は、特定のユーザがインターネット5を介したネットワークサービスを利用するための認証情報の入力を受け付ける。具体的には、受付部32は、所定の入力画面に対する入力操作によって、認証情報の入力を受け付ける。ここで、入力される認証情報は、図19に示した処理によってレジスタ端末80から出力されたレシート等の出力物に記載されているユーザ識別情報(ユーザIDおよびパスワード)である。なお、レジスタ端末80によって出力された出力物にユーザ情報が埋め込まれたQRコードが記載されている場合、受付部32は、QRコードを読み込むことによって認証情報を受け付けてもよい。
ステップS32において、ユーザ端末30の送受信部31は、受付部32によって認証情報の入力が受け付けられた場合、ユーザ端末30をアプリケーションサーバ10に登録するための端末登録要求を、OpenFlowスイッチ70へ送信する。ここで、端末登録要求には、ユーザ端末30の端末ID等の端末識別情報、および受付部32によって受け付けられた認証情報としてのユーザ識別情報(ユーザIDおよびパスワード)が含まれる。これにより、OpenFlowスイッチ70の第1の送受信部71は、ユーザ端末30から送信された端末登録要求を受信する。
ステップS33において、OpenFlowスイッチ70の第2の送受信部72は、第1の送受信部71によって受信された端末登録要求を、アプリケーションサーバ10へ転送(送信)する。これにより、アプリケーションサーバ10の送受信部11は、OpenFlowスイッチから転送(送信)された端末登録要求を受信する(識別情報受信ステップの一例)。
ステップS34において、アプリケーションサーバ10の認証部12は、送受信部11によって受信された端末登録要求に含まれる認証情報を用いて、ユーザ認証処理を行う。具体的には、認証部12は、端末登録要求に含まれるユーザIDおよびパスワードを検索キーとして、ユーザ情報管理テーブル110に含まれる対応するユーザIDとパスワードの組を検索する。対応する組が存在する場合、認証部12は、要求元のユーザを正当なユーザであると判断する。対応する組がない場合、認証部12は、ユーザを不当な(正当でない)ユーザであると判断する。正当でない場合、送受信部11がユーザ端末30に対して、正当でない旨の通知を行うが、ここでは、正当である場合について説明を続ける。
ステップS35において、アプリケーションサーバ10の記憶・読出部18は、記憶部100に記憶された条件情報管理テーブル150を読み出す。ステップS36において、アプリケーションサーバ10の送受信部11は、記憶・読出部18によって読み出された条件情報管理テーブル150に示される条件情報を、OpenFlowスイッチ70へ送信する。なお、この場合、アプリケーションサーバ10は、ユーザ情報管理テーブル110に含まれる、認証されたユーザのユーザIDおよびパスワードに関連づけられたポイント情報を参照し、ユーザが利用可能な条件を示す条件情報のみを送信する構成であってもよい。これにより、OpenFlowスイッチ70の第2の送受信部72は、アプリケーションサーバ10から送信された条件情報を受信する。
ステップS37において、OpenFlowスイッチ70の第1の送受信部71は、第2の送受信部72によって受信された条件情報を、端末登録要求を送信したユーザ端末30へ転送(送信)する。これにより、ユーザ端末30の送受信部31は、OpenFlowスイッチ70から転送(送信)された条件情報を受信する。
ステップS38において、ユーザ端末30の表示制御部33は、送受信部31によって受信された条件情報を、ユーザに選択させるための利用条件選択画面400を、ユーザ端末30のディスプレイ206aに表示させる。
ここで、図22を用いて、利用条件選択画面400について説明する。図22は、実施形態に係るユーザ端末に表示される利用条件選択画面の一例を示す図である。図22に示す利用条件選択画面400には、選択可能な利用条件の一覧を示す条件情報一覧表示領域401、特定の条件情報を選択する場合に押下される選択ボタン405、選択処理を中止する場合に押下されるキャンセルボタン407を含む。さらに、条件情報一覧表示領域401は、それぞれの条件情報を選択するための選択領域403を含む。
ステップS39において、ユーザ端末30の受付部32は、利用条件選択画面400の選択領域403および選択ボタン405に対する入力を受け付ける。図22に示す例では、受付部32は、例えば、条件「50/min」および処理優先度「5」である条件情報の選択を受け付ける。
ステップS40において、ユーザ端末30の送受信部31は、受付部32によって選択が受け付けられた特定の条件を示す選択情報を、OpenFlowスイッチ70へ送信する。ここで、選択情報は、条件情報に含まれる特定の条件を示す特定条件情報の一例である。これにより、OpenFlowスイッチ70の第1の送受信部71は、ユーザ端末30から送信された選択情報を受信する。ステップS41において、OpenFlowスイッチ70の第2の送受信部72は、第1の送受信部71によって受信された選択情報を、アプリケーションサーバ10へ転送(送信)する。これにより、アプリケーションサーバ10の送受信部11は、OpenFlowスイッチ70から転送(送信)された選択情報を受信する。
ステップS42において、アプリケーションサーバ10は、送受信部11によって受信された選択情報を用いて、ユーザ端末30に対するアクセス制御を行うための制御ポリシー710を設定する。ここで、図23を用いて、アプリケーションサーバ10による制御ポリシー710の設定処理の詳細を説明する。図23は、実施形態に係るアプリケーションサーバにおける制御ポリシーの生成処理の一例を示すフローチャートである。
ステップS421において、記憶・読出部18は、送受信部11によって選択情報が受信された場合、記憶部100に記憶されたユーザ情報管理テーブル110を読み出す。ステップS422において、ネットワーク利用ルール生成部16は、送受信部11によって受信された選択情報および記憶・読出部18によって読み出されたユーザ情報管理テーブル110を用いて、選択情報を送信したユーザ端末30を使用するユーザが、選択情報に示される特定の条件を利用可能な利用可能時間を算出する。具体的には、ネットワーク利用ルール生成部16は、記憶・読出部18によって読み出されたユーザ情報管理テーブル110のうち、ユーザ端末30を使用するユーザのユーザIDおよびパスワードに関連づけられたポイント情報を取得する。そして、ネットワーク利用ルール生成部16は、送受信部11によって受信された選択情報に示される特定の条件と、取得したポイント情報とに基づいて、ユーザ端末30を使用するユーザが、選択された特定の条件を利用可能な利用可能時間を算出する。例えば、選択情報に示される特定の条件が消費ポイント「50/min」および処理優先度「5」であり、ポイント情報が「500」である場合、ネットワーク利用ルール生成部16により算出される利用可能時間は、「10min」となる。
ステップS423において、判断部13は、算出された利用可能時間に基づいて、選択された特定の条件が利用可能であるかを判断する。判断部13は、例えば、ネットワーク利用ルール生成部16によって算出された利用可能時間が「0min」である、すなわち利用可能時間が存在しない場合、選択された特定の条件が利用できないと判断し、処理をステップS428へ移行させる。一方で、判断部13は、例えば、ネットワーク利用ルール生成部16によって算出された利用可能時間が「0min」でない、すなわち利用可能時間が存在する場合、選択された特定の条件が利用可能と判断し、処理をステップS424へ移行させる。なお、特定の条件が利用可能であるかの判断基準は、これに限られず、例えば、算出された利用可能時間が1min以下等の所定の時間未満である場合に、特定の条件が利用できないと判断してもよい。
ステップS428において、送受信部11は、判断部13によって選択された特定の条件を利用できないと判断された場合、インターネット5を介したネットワークサービスを利用できないことを示す利用不可通知を、OpenFlowスイッチ70を介してユーザ端末30へ送信する。そして、利用不可通知を受信したユーザ端末30は、表示制御部33によりディスプレイ206aに利用不可通知を表示させる等の方法によって、インターネット5を介したネットワークサービスを利用できないことをユーザに提示する。
ステップS424において、時刻情報取得部15は、記憶部100に記憶された、現在時刻を示す時刻情報130を取得する。なお、時刻情報取得部15は、タイマ209によって定期的に時刻情報130を取得しており、取得した時刻情報130を記憶部100に記憶させている。時刻情報取得部15は、例えば、現在時刻として「11:35」の時刻情報130を取得する。
ステップS425において、ネットワーク利用ルール生成部16は、時刻情報取得部15によって取得された時刻情報130、およびステップS422によって算出された利用可能時間を用いて、ユーザ端末30がインターネット5を介したネットワークサービスを利用するためのネットワーク利用ルールを生成する。具体的には、ネットワーク利用ルール生成部16は、時刻情報130に示される現在時刻を、ルールの適用開始時間に設定し、現在時刻から利用可能時間を経過した時刻を、ルールの適用終了時刻に設定する。例えば、ネットワーク利用ルール生成部16は、時刻情報130が「11:35」を示し、利用可能時間が「10min」である場合、適用開始時刻「11:35」と適用終了時刻「11:45」を設定する。そして、ネットワーク利用ルール生成部16は、設定した適用開始時間と適用終了時刻に、図21のステップS33で受信された端末登録要求に含まれる端末ID等の端末識別情報およびステップS41で受信された選択情報に含まれる処理優先度を関連づけたネットワーク利用ルールを生成する。例えば、ネットワーク利用ルール生成部16は、適用開始時刻「11:35」と適用終了時刻「11:45」に、端末ID「A1:A2:A3:A4:A5:A6」および処理優先度「5」を関連づけたネットワーク利用ルールを生成する。
ステップS426において、記憶・読出部18は、ネットワーク利用ルール生成部16によって生成されたネットワーク利用ルールを、記憶部100に含まれるネットワーク利用ルール管理テーブル170に記憶させる。
ステップS427において、制御ポリシー生成部17は、ネットワーク利用ルール生成部16によって生成されたネットワーク利用ルールに基づいて、OpenFlowスイッチ70におけるユーザ端末30から送信されるパケットの処理ルールを示す制御ポリシー710を生成する。具体的には、制御ポリシー生成部17は、ネットワーク利用ルール生成部16によって生成されたネットワーク利用ルールを、OpenFlowコントローラ50およびOpenFlowスイッチ70が受信可能なデータ形式に変換することにより、制御ポリシー710を生成する。制御ポリシー710は、例えば、OpenFlow形式、JSON形式等のデータ形式で生成される。これにより、アプリケーションサーバ10は、ユーザ端末30を使用する特定のユーザによる特定の支払に応じて付与されたポイント情報に応じた処理優先度を含む制御ポリシー710を生成することができる。
図21に戻り、OpenFlowスイッチ70におけるパケット処理ルールを設定する処理の説明を続ける。ステップS43において、アプリケーションサーバ10の送受信部11は、制御ポリシー生成部17によって生成された制御ポリシー710を、OpenFlowコントローラ50へ送信する(送信ステップの一例)。これにより、OpenFlowコントローラ50の送受信部51は、アプリケーションサーバ10から送信された制御ポリシー710を受信する。
ステップS44において、OpenFlowコントローラ50の設定部52は、送受信部51によって受信された制御ポリシー710を、記憶・読出部53を介して記憶部500に記憶させることで、制御ポリシー710を設定する。
ステップS45において、OpenFlowコントローラ50の送受信部51は、設定部52によって設定された制御ポリシー710を、OpenFlowスイッチ70へ転送(送信)する。これにより、OpenFlowスイッチ70の第2の送受信部72は、OpenFlowコントローラ50から転送(送信)された制御ポリシー710を受信する。ステップS46において、OpenFlowスイッチ70の記憶・読出部74は、第2の送受信部72によって受信された制御ポリシー710を、記憶部700に記憶させる。
これにより、OpenFlowスイッチ70は、ユーザ端末30から送信されるパケットの処理ルールを、ユーザ端末30を使用するユーザによる支払に係る支払金額に応じて設定することができるため、処理ルールを動的に変更することができるともに、ユーザの利用状況に応じたアクセス制御を実現することができる。
○アクセス対象サーバへの接続処理○
続いて、図24を用いて、OpenFlowスイッチ70に設定された制御ポリシー710に基づくユーザ端末30からインターネット5を経由したアクセス対象サーバ90への接続処理について説明する。図24は、実施形態に係るネットワークシステムにおける、ユーザ端末とアクセス対象サーバとの接続処理の一例を示すシーケンス図である。
ステップS51において、ユーザ端末30の送受信部31は、インターネット5を介したアクセス対象サーバ90への接続要求を、OpenFlowスイッチ70へ送信する。ここで、接続要求には、ユーザ端末30を識別するための端末ID等の端末識別情報が含まれる。これにより、OpenFlowスイッチ70の第1の送受信部71は、ユーザ端末30から送信された接続要求を受信する。
ステップS52において、OpenFlowスイッチ70の記憶・読出部74は、記憶部700に記憶された制御ポリシー710を読み出す。ステップS53において、OpenFlowスイッチ70の判断部73は、記憶・読出部74によって読み出された制御ポリシー710に含まれる処理優先度を特定する。具体的には、判断部73は、制御ポリシー710のうち、送受信部31によって受信された接続要求に含まれる端末ID等の端末識別情報に関連づけられた処理優先度を特定する。
ステップS54において、OpenFlowスイッチ70の第2の送受信部72は、第1の送受信部51によって受信された接続要求を、インターネット5を介してアクセス対象サーバ90へ転送(送信)する。これにより、アクセス対象サーバ90の送受信部91は、OpenFlowスイッチ70から転送(送信)された接続要求を受信する。
ステップS55において、ユーザ端末30からの接続要求を受信したアクセス対象サーバ90は、OpenFlowスイッチ70によって特定された処理優先度に基づいて、ユーザ端末30との接続を確立する。これにより、アプリケーションサーバ10に登録されたユーザ端末30は、OpenFlowスイッチ70に設定された制御ポリシー710に含まれる処理優先度に基づいて、インターネット5を利用したネットワークサービスを利用することができる。
○制御ポリシーの変更処理○
続いて、図25および図26を用いて、OpenFlowスイッチ70に設定された制御ポリシー710を変更する処理について説明する。図25および図26において、ユーザ端末30は、OpenFlowスイッチ70に設定された制御ポリシー710に基づいて、アクセス対象サーバ90にアクセスしている状態である。図25は、実施形態に係るネットワークシステムにおける制御ポリシーの変更処理の一例を示すシーケンス図である。
ステップS71において、アプリケーションサーバ10は、OpenFlowスイッチ70に設定された制御ポリシー710を変更する。図26は、実施形態に係るアプリケーションサーバにおける制御ポリシーの変更処理の一例を示すフローチャートである。
ステップS711において、記憶・読出部18は、記憶部100に記憶されたネットワーク利用ルール管理テーブル170を読み出す。ステップS712において、時刻情報取得部15は、記憶部100に記憶された、現在時刻を示す時刻情報130を取得する。時刻情報取得部15は、例えば、現在時刻として「11:50」の時刻情報130を取得する。
ステップS713において、判断部13は、時刻情報取得部15によって取得された時刻情報130、および記憶・読出部18によって読み出されたネットワーク利用ルール管理テーブル170に含まれる適用可能時間に基づいて、ネットワーク利用ルールの適用期間内であるかを判断する。判断部13は、ネットワーク利用ルールの適用期間内であると判断した場合、ステップS722からの処理を繰り返す。一方で、判断部13は、ネットワーク利用ルールの適用期間外であると判断した場合、処理をステップS724へ移行させる。
ステップS714において、ネットワーク利用ルール生成部16は、判断部13によって適用期間外であると判断されたネットワーク利用ルールを、ネットワーク利用ルール管理テーブル170から削除する。
ステップS715において、制御ポリシー生成部17は、OpenFlowスイッチ70に設定された制御ポリシー710を変更する。具体的には、制御ポリシー生成部17は、ステップS714による削除処理が反映されたネットワーク利用ルール管理テーブル170に含まれるネットワーク利用ルールを、OpenFlowコントローラ50およびOpenFlowスイッチ70が受信可能なデータ形式に変換することにより、制御ポリシー710を生成する。制御ポリシー710は、例えば、OpenFlow形式、JSON形式等のデータ形式で生成される。
これにより、アプリケーションサーバ10は、ネットワーク利用ルールの適用期間外になった場合に、特定のユーザ端末30に適用されている処理優先度を変更するため、OpenFlowスイッチ70の処理優先度を動的に変更することができる。
図25に戻り、OpenFlowスイッチ70に設定された制御ポリシー710を変更する処理の説明を続ける。ステップS72において、アプリケーションサーバ10の送受信部11は、制御ポリシー生成部17によって変更された制御ポリシー710を、OpenFlowコントローラ50へ送信する。これにより、OpenFlowコントローラ50の送受信部51は、アプリケーションサーバ10から送信された制御ポリシー710を受信する。
ステップS73において、OpenFlowコントローラ50の設定部52は、送受信部51によって受信された制御ポリシー710を、記憶・読出部53を介して記憶部500に記憶させることで、制御ポリシー710を変更する。ステップS74において、OpenFlowコントローラ50の送受信部51は、変更された制御ポリシー710を、OpenFlowスイッチ70へ転送(送信)する。これにより、OpenFlowスイッチ70の第2の送受信部72は、OpenFlowコントローラ50から送信された制御ポリシー710を受信する。
ステップS75において、OpenFlowスイッチ70の記憶・読出部74は、記憶部700に記憶された制御ポリシー710を、第2の送受信部72によって受信された制御ポリシー710に変更(上書き)する。
これにより、ネットワークシステム1は、OpenFlowスイッチ70に設定された制御ポリシー710に含まれる処理優先度を、ユーザ端末30のインターネット5への接続時間等の接続状況に応じて変更することができる。そのため、ネットワークシステム1は、長時間同じユーザがインターネット5を利用することによって他のユーザのネットワーク環境が悪化することを防止することで、快適なネットワーク環境を実現することができる。
○新規ユーザとの比較○
続いて、図27を用いて、新規にアプリケーションサーバ10に登録されたユーザ端末30がネットワークサービスを利用する場合の処理について説明する。図27は、実施形態に係るネットワークシステムにおいて、新たなユーザ端末がインターネットを介してアクセス対象サーバに接続する場合のアクセス制御処理の一例を示すシーケンス図である。図27は、ユーザ端末30Aが既にインターネット5を介してアクセス対象サーバ90に接続された状態で、新たにユーザ端末30Bがアクセス対象サーバ90へ接続を試みている場合の状態を示す。
ステップS91において、ユーザ端末30Aとアクセス対象サーバ90は、OpenFlowスイッチ70に設定された制御ポリシー710に基づいて、インターネット5を介した接続が確立されている。ステップS92において、ユーザ端末30Bの送受信部31は、インターネット5を介したアクセス対象サーバ90への接続要求を、OpenFlowスイッチ70へ送信する。ここで接続要求には、ユーザ端末30Bを識別するための端末ID等の端末識別情報が含まれる。これにより、OpenFlowスイッチ70の第1の送受信部71は、ユーザ端末30Bから送信された接続要求を受信する。
ステップS93において、OpenFlowスイッチ70の記憶・読出部74は、記憶部700に記憶された制御ポリシー710を読み出す。ステップS94において、OpenFlowスイッチ70の判断部73は、記憶・読出部74によって読み出された制御ポリシー710のうち、第1の送受信部71によって受信された接続要求に含まれる端末識別情報に関連づけられた処理優先度を特定する。また、OpenFlowスイッチ70の判断部73は、記憶・読出部74によって読み出された制御ポリシー710のうち、アクセス対象サーバ90と接続されているユーザ端末30Aを識別するための端末識別情報に関連づけられた処理優先度を特定する。
そして、判断部73は、特定したユーザ端末30Aに対応する処理優先度とユーザ端末30Bに対応する処理優先度とを比較し、両者の処理優先度が同じである場合、新たにアクセス対象サーバ90へ接続するユーザ端末30Bから送信されるパケットの処理を優先的に行う。なお、ユーザ端末30Aとユーザ端末30Bに対応する処理優先度が異なる場合、OpenFlowスイッチ70は、上記で説明した処理と同様に、制御ポリシー710に含まれるそれぞれの処理優先度に基づいて処理を行う。
ステップS95において、OpenFlowスイッチ70の第2の送受信部72は、アクセス対象サーバ90へ接続要求を転送(送信)する。そして、ステップS96−1において、ユーザ端末30Bとアクセス対象サーバ90は、OpenFlowスイッチ70によってユーザ端末30Aよりも高い処理優先度でパケット処理されることによって、接続を確立する。一方で、ステップS96−2において、ユーザ端末30Aとアクセス対象サーバ90は、OpenFlowスイッチ70によってユーザ端末30Bよりも低い処理優先度でパケット処理されることによって、接続を確立する。
これにより、ネットワークシステム1は、異なるユーザ端末30が同じ処理優先度である場合、新たに登録されたユーザ端末の処理を優先することで、長時間ネットワークサービスを利用するユーザの存在によって、新たにインターネット5を介したネットワークサービスを利用したいユーザのネットワーク環境が悪化することを防止することができる。
●実施形態の効果
したがって、実施形態に係るネットワークシステム1は、アプリケーションサーバ10がレジスタ端末80から送信された、特定のユーザによる特定の支払に係る支払金額に応じて、特定のユーザが使用するユーザ端末30から送信されるパケットを処理する処理優先度を含むネットワーク利用ルールを生成する。アプリケーションサーバ10は、生成したネットワーク利用ルールを、OpeFlowにより処理可能なデータ形式である制御ポリシー710に変換し、制御ポリシー710をOpenFlowスイッチ70へ送信する。そして、OpenFlowスイッチ70は、OpenFlowコントローラ50によって設定された制御ポリシー710に含まれる端末識別情報および処理優先度に基づいて、ユーザ端末30から送信されるパケットの処理を行う。これにより、ネットワークシステム1は、OpenFlowスイッチ70においてユーザ端末30から送信されるパケットを処理する優先度を、ユーザの利用形態に応じて動的に変更することができる。
●実施形態の変形例1●
次に、実施形態の変形例1について説明する。実施形態の変形例1に係るネットワークシステムは、条件情報が、特定に支払を行った特定のユーザに付与されたポイント情報ではなく、ユーザが支払を行った(購入した)商品に応じて定義される構成である。
図28は、実施形態の変形例1に係る条件情報管理テーブルの一例を示す図である。実施形態の変形例1に係るアプリケーションサーバ10は、記憶部100に条件情報管理テーブル150aに変えて、図28に示す条件情報管理テーブル150bを記憶している。図28に示す条件情報管理テーブル150bは、商品名ごとに、処理優先度が関連づけられて管理されている。この場合、条件情報管理テーブル150bは、商品名に示される商品の金額が高いものほど、処理優先度が高くなるようになっている。商品名は、OpenFlowスイッチ70がユーザ端末30から受信されたパケットを転送する優先度を設定するための条件の一例である。
実施形態の変形例1のネットワークシステムにおいて、アプリケーションサーバ10は、レジスタ端末80から特定のユーザによる特定の支払に係る支払情報として、ユーザが購入した商品を識別するための情報を受信し、条件情報管理テーブル150bに管理されている条件情報に含まれる、対応する商品名に関連づけられた処理優先度を、特定のユーザの処理優先度として設定する。
これにより、実施形態の変形例1に係るネットワークシステムは、ユーザが商品を購入した際に、特定の支払に係る支払金額をポイントに変換する必要がなく、予め定義された購入商品に応じた処理優先度を、特定の支払を行った特定のユーザに割り当てることができるため、ユーザごとの処理優先度の設定をより簡易に行うことができる。
●実施形態の変形例2●
次に、実施形態に係る変形例2について説明する。実施形態の変形例2に係るネットワークシステムは、条件情報が、特定に支払を行った特定のユーザに付与されたポイント情報ではなく、特定の支払を行った特定のユーザの属性に応じて定義される構成である。実施形態の変形例2に係るネットワークシステムは、例えば、ユーザが商品購入時に、ユーザの属性が登録されたポイントカード等を提示し、レジスタ端末80にユーザ属性が入力される場合の例である。
図29は、実施形態の変形例2に係る条件情報管理テーブルの一例を示す図である。実施形態の変形例2に係るアプリケーションサーバ10は、記憶部100に条件情報管理テーブル150aに変えて、図29に示す条件情報管理テーブル150cを記憶している。図29に示す条件情報管理テーブル150cは、ユーザの属性を示すユーザ属性情報ごとに、処理優先度が関連づけられて管理されている。ユーザ属性情報とは、例えば、ユーザの過去の支払履歴や登録状況等によって、ユーザのネットワークサービスの利用権限が段階的に登録されたものである。図29に示すユーザ属性情報は、例えば、プラチナ、ゴールド、シルバー、ブロンズ、ノーマル等のユーザ属性が定義されている。この場合、条件情報管理テーブル150cは、ユーザ属性が「プラチナ」であるユーザの処理優先度が最も高く、ユーザ属性が「ノーマル」であるユーザの処理優先度が最も低くなるようになっている。ユーザ属性情報は、OpenFlowスイッチ70がユーザ端末30から受信されたパケットを転送する優先度を設定するための条件の一例である。
実施形態の変形例2のネットワークシステムにおいて、アプリケーションサーバ10は、レジスタ端末80から特定のユーザによる特定の支払に係る支払情報として、ユーザの属性を示すユーザ属性情報を受信し、条件情報管理テーブル150cに管理されている条件情報に含まれる、対応するユーザ属性情報に関連づけられた処理優先度を、特定のユーザの処理優先度として設定する。
これにより、実施形態の変形例2に係るネットワークシステムは、ユーザが商品を購入した際に、特定の支払に係る支払金額をポイントに変換する必要がなく、予め登録されたユーザの属性に応じた処理優先度を、特定の支払を行った特定のユーザに割り当てることができるため、ユーザごとの処理優先度の設定をより簡易に行うことができる。
●まとめ●
以上説明したように、本発明の一実施形態に係るアプリケーションサーバ10(制御装置の一例)は、ユーザ端末30(通信端末の一例)から送信されるパケットの処理を行うOpenFlowスイッチ70(通信処理装置の一例)を制御するアプリケーションサーバ10であって、ユーザによる支払を受け付けるレジスタ端末80(支払端末の一例)から、特定のユーザによる特定の支払に係る支払情報を受信する。アプリケーションサーバ10は、特定のユーザを識別するためのユーザ識別情報と、特定のユーザ端末30を識別するための端末識別情報とを、当該特定のユーザ端末30から受信し、OpenFlowスイッチ70がユーザ端末30から送信されるパケットを処理する処理優先度(パケットを転送する優先度の一例)を設定するための条件を示す条件情報、ユーザ識別情報および支払情報に基づいて定められた特定の処理優先度、および特定のユーザ端末30から送信された端末識別情報を、OpenFlowスイッチ70へ送信する。これにより、アプリケーションサーバ10は、OpenFlowスイッチ70においてユーザ端末30から送信されるパケットを処理する処理優先度を、ユーザの利用形態に応じて動的に変更することができる。
また、本発明の一実施形態に係るアプリケーションサーバ10(制御装置の一例)は、特定のユーザによる特定の支払に係る支払情報と特定のユーザ識別情報とを関連づけて記憶する。そして、アプリケーションサーバ10は、特定のユーザ端末30から送信されたユーザ識別情報に対応する特定のユーザ識別情報に関連づけられた支払情報と、OpenFlowスイッチ70がユーザ端末30から送信されるパケットを処理する処理優先度(パケットを転送する優先度の一例)を設定するための条件を示す条件情報に示される条件とに基づいて定められる特定の処理優先度、および特定のユーザ端末30から送信された端末識別情報を、OpenFlowスイッチ70(通信処理装置の一例)へ送信する。これにより、アプリケーションサーバ10は、OpenFlowスイッチ70に、ユーザ端末30から送信されるパケットの処理ルール(ユーザ端末30の端末識別情報と処理優先度)OpenFlowスイッチ70に設定させることができるため、この処理ルールを動的に変更することができる。
さらに、本発明の一実施形態に係るアプリケーションサーバ10(制御装置の一例)において、特定のユーザによる特定の支払に係る支払情報は、特定の支払に対応する特定の支払金額に係る情報であり、条件情報は、OpenFlowスイッチ70(通信処理装置の一例)がユーザ端末30から送信されるパケットを処理する処理優先度(パケットを転送する優先度の一例)と、当該処理優先度が設定される場合に支払情報を消費する単位を示す条件とが関連づけられている。そして、アプリケーションサーバ10は、支払情報と条件とに基づいて定められた特定の処理優先度を、OpenFlowスイッチ70へ送信する。これにより、アプリケーションサーバ10は、OpenFlowスイッチ70に設定された処理ルールを用いて、ユーザによる支払金額と通信の快適度が比例したネットワークサービスを提供することができる。
また、本発明の一実施形態に係るアプリケーションサーバ10(制御装置の一例)は、条件情報に含まれる特定の条件を示す特定条件情報を、ユーザ端末30(通信端末の一例)から受信し、受信した特定条件情報に示される特定の条件に関連づけられた特定の優先度を、OpenFlowスイッチ70(通信処理装置の一例)へ送信する。これにより、アプリケーションサーバ10は、ユーザにより選択された処理優先度を示す条件情報を用いて、OpenFlowスイッチ70に設定させる処理ルールを生成することができるので、ユーザの利用目的に合わせた通信速度のネットワーク環境を提供することができる。
さらに、本発明の一実施形態に係るアプリケーションサーバ10(制御装置の一例)において、制御ポリシー710(制御情報の一例)は、特定の処理優先度、端末識別情報および特定の処理優先度を適用するための期間を示す期間情報を含む。そして、アプリケーションサーバ10は、期間情報に示される期間外である場合、制御ポリシー710に含まれる処理優先度を変更し、変更された処理優先度を含む制御ポリシー710を、OpenFlowスイッチ70(通信処理装置の一例)へ送信する。これにより、アプリケーションサーバ10は、制御ポリシー710を適用可能な期間を過ぎた場合、制御ポリシー710に含まれる処理優先度を動的に変更することで、長時間インターネットへ接続し続けるユーザによって、他のユーザの通信速度が遅延することを防止し、快適なネットワーク環境を提供することができる。
●補足●
なお、実施形態の機能は、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムにより実現でき、各実施形態の機能を実行するためのプログラムは、電気通信回線を通じて頒布することができる。
また、実施形態の機能を実行するためのプログラムは、ROM、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、フラッシュメモリ、フレキシブルディスク、CD(Compact Disc)−ROM、CD−RW(Re-Writable)、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MO(Magneto-Optical disc)等の装置可読な記録媒体に格納して頒布することもできる。
さらに、実施形態の機能の一部または全部は、例えばFPGA(Field Programmable Gate Array)等のプログラマブル・デバイス(PD)上に実装することができ、またはASICとして実装することができ、各実施形態の機能をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(Very High Speed Integrated Circuits Hardware Description Language)、Verilog−HDL等により記述されたデータとして記録媒体により配布することができる。
これまで本発明の一実施形態に係る制御装置、ネットワークシステム、制御方法およびプログラムについて説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態の追加、変更または削除等、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。