以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、通信システム10の一例を概略的に示す。通信システム10は、情報提供装置200及び中継装置300を備える。
情報提供装置200は、クローズドネットワークであるネットワーク20内に配置される。情報提供装置200は、オープンネットワークであるネットワーク30内に配置される通信端末400に対して、クローズドネットワーク内の情報を提供する。ネットワーク20は、第1ネットワークの一例であってよい。ネットワーク30は、第2ネットワークの一例であってよい。
ネットワーク20は、例えば、オープンネットワークからのアクセスが制限された工場内ネットワークや企業内ネットワーク等である。ここでは、ネットワーク20が工場内ネットワークである場合を主に例に挙げて説明する。ネットワーク30は、例えば、インターネットを含む。通信端末400は、例えば、スマートフォン等の携帯電話、タブレット端末及びPC(Personal Computer)等である。
工場内ネットワークには、工場内に設置されている機械を制御したり、工場内のデータを管理したりする複数の処理装置22が設置されている。世界各地の工場では、処理装置22に格納されているデータをバックアップしたり、ログデータを回収したりしたいという要望がある。
世界各地の工場の中には、古い処理装置22を使用し続けている工場が多く、処理装置22のOS(Operating System)のバージョンアップも行われていない場合が多い。よって、工場内ネットワークを直接オープンネットワークに接続すると、処理装置22がウィルスに感染する可能性が比較的高い。
USBメモリ等の可搬型記憶媒体によって処理装置22のデータを持ち出すことも考えられる。しかし、工場によっては、工場内ネットワークにおけるウィルス対策が十分になされていない場合もあり、処理装置22がウィルスに感染してしまっている場合もある。よって、USBメモリによって、ウィルスに感染したデータを持ち出してしまうことになり、ウィルスが拡散してしまうおそれがある。
本実施形態に係る通信システム10は、ファイヤーウォール機能を有するルータ40を介してネットワーク30に接続されたネットワーク20内のデータを、ネットワーク30内に配置された通信端末400に適切に提供な技術を提供する。
ルータ40は、ネットワーク20からネットワーク30への接続要求は通過させ、ネットワーク30からネットワーク20への接続要求を通過させないように設定されてよい。ルータ40は、ネットワーク20からネットワーク30への接続要求を通過させるとともに、ネットワーク30側で開始されたフロー内ではネットワーク30側からネットワーク20側に向けて送信された接続要求を通過させず、ネットワーク20側から開始されるフロー内ではネットワーク30側からネットワーク20側に向けて送信された接続要求を通過させるように設定されてもよい。
本実施形態において、通信端末400は、例えば、情報提供装置200によって提供される情報提供サービス201にログインする場合、情報提供装置200への接続要求を中継装置300に送信する。当該接続要求は、通信端末400を利用する利用者の利用者識別情報(利用者IDと記載する場合がある。)を含んでよい。当該接続要求は、パスワードを含んでよい。当該接続要求は、通信端末400を識別する通信端末識別情報(通信端末IDと記載する場合がある。)を含んでもよい。当該接続要求は、情報提供装置200を識別する情報提供装置識別情報(情報提供装置IDと記載する場合がある。)を含んでもよい。中継装置300は、受信した接続要求を格納する。
情報提供装置200は、通信端末400によって送信された情報提供装置200への接続要求を中継装置300が格納しているか否かを確認させる確認要求を、中継装置300に送信する。当該確認要求は、情報提供装置200の情報提供装置IDを含んでもよい。
情報提供装置200は、中継装置300との間でセッションを確立して、当該セッションを介して確認要求を中継装置300に送信する。情報提供装置200は、例えば、中継装置300との間でHTTP(Hyper Text Transfer Protocol)セッションを確立する。情報提供装置200は、中継装置300との間でTCP(Transmission Control Protocol)コネクションを確立することによりセッションを確立してよい。
情報提供装置200は、中継装置300への確認要求の送信を断続的に実行してよい。情報提供装置200は、中継装置300への確認要求の送信を定期的に実行してもよい。情報提供装置200は、例えば、1秒毎に、中継装置300への確認要求の送信を実行する。
中継装置300は、確認要求を受信した場合に、確認要求を送信した情報提供装置200への接続要求を格納しているか否かを確認する。接続要求及び確認要求のそれぞれに情報提供装置IDが含まれている場合、中継装置300は、確認要求に含まれる情報提供装置IDを参照して、当該情報提供装置IDを含む接続要求を格納しているか否かを確認してよい。中継装置300が、確認要求に情報提供装置IDが含まれていなくとも確認要求を送信した情報提供装置200を特定可能であれば、確認要求に情報提供装置IDが含まれなくてもよい。
中継装置300は、情報提供装置200への接続要求を格納している場合、接続要求に含まれる情報を情報提供装置200に送信する。中継装置300は、接続要求に含まれる利用者IDを情報提供装置200に送信してよい。中継装置300は、接続要求に含まれるパスワードを情報提供装置200に送信してよい。中継装置300は、接続要求に含まれる通信端末IDを情報提供装置200に送信してよい。
中継装置300は、情報提供装置200への接続要求を格納していない場合、格納していないことを示す応答を情報提供装置200に送信してよい。当該応答を受信した情報提供装置200は、中継装置300との間のHTTPセッションを切断してよい。
中継装置300は、情報提供装置200への接続要求を格納していない場合に、情報提供装置200に対して応答をしなくてもよい。この場合、情報提供装置200は、確認要求を送信してから予め定められた時間を経過するまでに接続要求に含まれる情報を中継装置300から受信しなかった場合に、中継装置300との間のHTTPセッションを切断してよい。
上述したように、通信端末400によって送信された接続要求を中継装置300が受信して格納し、情報提供装置200による確認要求に応じて、中継装置300が接続要求に含まれる情報を情報提供装置200に送信する構成とすることによって、ルータ40が、ネットワーク30からネットワーク20への接続要求を通過させないように設定されていても、情報提供装置200に、接続要求に含まれる情報を取得させることができる。
ルータ40が、ネットワーク30側で開始されたフロー内ではネットワーク30側からネットワーク20側に向けて送信された接続要求は通過させず、ネットワーク20側から開始されるフロー内ではネットワーク30側からネットワーク20側に向けて送信された接続要求を通過させるように設定されている場合、中継装置300は、情報提供装置200による確認要求の送信によって開始されるフロー内で、接続要求又は接続要求に含まれる情報を情報提供装置200に送信してよい。
情報提供装置200は、受信した利用者IDに基づいて、通信端末400の認証可否を判定する。情報提供装置200は、例えば、情報提供サービス201に登録済みの利用者IDを含む登録情報を参照し、登録情報内のいずれかの利用者IDと、受信した利用者IDとが一致した場合に、認証可と判定する。また、例えば、情報提供装置200は、情報提供サービス201に登録済みの利用者IDと、利用者IDに対応するパスワードとを含む登録情報を参照し、登録情報内のいずれかの利用者ID及びパスワードと、受信した利用者ID及びパスワードとが一致した場合に、認証可と判定する。
情報提供装置200は、認証可と判定した場合に情報提供装置200と通信端末400との間のセッションを識別するセッション識別情報(セッションIDと記載する場合がある。)を付与して、通信端末400の利用者の利用者IDとセッションIDとを対応付けて対応付格納部に格納する。そして、情報提供装置200は、セッションIDを、中継装置300を介して通信端末400に送信する。情報提供装置200は、通信端末400に対して提供可能なデータを示す情報を、セッションIDと合わせて送信してもよい。情報提供装置200は、例えば、ネットワーク20内のデータのうち、通信端末400に対して提供可能なデータを示す情報を通信端末400に送信する。情報提供装置200は、セッションIDの送信後、中継装置300との間のHTTPセッションを切断してよい。
通信端末400の利用者は、例えば、提供を希望するデータを通信端末400において指定する。当該データは、情報提供装置200によって提供可能なデータであればどのようなデータであってもよい。例えば、当該データは、ネットワーク20内のデータである。当該データの例として、ログデータ、バックアップデータ、ファイルデータ、メールデータ、及びWebデータ等が挙げられるが、これらに限らない。
通信端末400は、データの指定を受け付けるユーザインタフェースを備えてよく、当該ユーザインタフェースを介してデータの指定を受け付けてよい。通信端末400は、例えば、情報提供装置200から受信した、通信端末400に対して提供可能なデータを示す情報を利用者に提示して、当該情報に対する利用者の指定を受け付けてもよい。
通信端末400は、データの指定を受け付けた場合、当該データを指定するデータ指定情報とセッションIDとを含む接続要求を、中継装置300に送信する。当該接続要求は、情報提供装置200を識別する情報提供装置IDを含んでもよい。
中継装置300は、受信した接続要求を格納する。中継装置300は、情報提供装置200から確認要求を受信した場合に、当該接続要求を格納していた場合、接続要求に含まれる情報を情報提供装置200に送信する。中継装置300は、データ指定情報及びセッションIDを情報提供装置200に送信してよい。
情報提供装置200は、受信したセッションIDに基づいて、データ指定情報によって指定されるデータの送信可否を判定してよい。情報提供装置200は、受信したセッションIDが、対応付格納部に格納されている複数のセッションIDのいずれかと一致するか否かを判定する。
いずれとも一致しなかった場合、情報提供装置200は送信否と判定する。いずれかと一致した場合、情報提供装置200は、一致したセッションIDに対応付けて格納されている利用者IDによって、当該利用者IDによって識別される利用者の、データ指定情報によって指定されるデータへのアクセス権限を確認する。情報提供装置200は、アクセス権限がある場合、送信可と判定し、アクセス権限がない場合、送信否と判定する。
情報提供装置200は、送信可と判定した場合、データ指定情報によって指定されるデータを取得して、中継装置300に送信してよい。情報提供装置200は、例えば、データ指定情報によって指定される、ネットワーク20内の処理装置22によって管理されているデータを、処理装置22から受信して、当該データ又は当該データから生成した送信データを中継装置300に送信する。例えば、ログデータが指定されていた場合、情報提供装置200は、ログデータ、又は、複数のログデータから生成した一覧データを中継装置300に送信する。中継装置300は、受信したデータを通信端末400に送信する。情報提供装置200は、送信後に、中継装置300との間のHTTPセッションを切断してよい。
上述したように、本実施形態に係る情報提供装置200は、接続要求毎に、中継装置300とのHTTPセッションを切断する。HTTPでは、セッションキープアライブが採用されており、2つの装置間でHTTPセッションが確立されると、通常は、2つの装置のいずれかがHTTPセッションを切断しない限り、HTTPセッションが維持される。
このため、例えば、本実施形態に例示するように、ファイヤーウォール機能を有するルータ40を挟んで2つの装置間でHTTPセッションが確立されると、ファイヤーウォールがセッションタイムアウト機能を有する場合に、予期しないタイミングでHTTPセッションが切断されることになり得る。セッションタイムアウト機能とは、ルータ40を介してセッションが確立されてから予め定められた時間が経過したことに応じて当該セッションを切断する機能である。セッションタイムアウト機能によってセッションが切断されると、利用者は、切断の理由を把握できない場合があり、利用者に混乱を与えてしまい得る。
それに対して、本実施形態に係る情報提供装置200は、接続要求毎に新しいHTTPセッションを確立するので、セッションタイムアウト機能によってHTTPセッションが切断されてしまう事態が発生する確率を大幅に低減することができ、利用者に混乱を与えてしまう事態の発生を抑止することができる。
また、上述したように、本実施形態に係る情報提供装置200は、接続要求にセッションIDが含まれていない場合には、接続要求に含まれる利用者IDによって端末認証を実行し、セッションIDを付与して通信端末400に送信し、接続要求にセッションIDが含まれている場合、接続要求に含まれる情報に応答して、通信端末400に情報を提供する。このように、情報提供装置200が、ソフトウェア上でセッションIDを通信端末400に付与することにより、接続要求毎にセッションを切断してしまうにもかかわらず、通信の継続性を担保することができる。これにより、接続要求毎に端末認証を実行する必要性を無くすことができ、中継装置300と情報提供装置200との間の手続を減らすことにより、通信端末400に対するレスポンスの速度を向上することができる。
図2は、通信システム10による処理の流れの一例を概略的に示す。ここでは、通信端末400の利用者が通信端末400を用いて、情報提供装置200によって提供される情報提供サービス201にログインし、情報提供装置200からネットワーク20内のデータの提供を受けるまでの流れを説明する。ここでは、通信端末400の利用者の情報提供サービス201への登録は完了しているものとする。また、通信端末400と中継装置300との間の通信接続の確立に関する処理は省略して説明する。
ステップ(ステップをSと省略して記載する場合がある。)102では、通信端末400が、通信端末400の利用者の利用者ID及びパスワードを含む接続要求を中継装置300に送信する。S104では、中継装置300が、S102において受信した接続要求を格納する。
S106では、情報提供装置200が、中継装置300との間でHTTPセッションを確立する。S108では、情報提供装置200が、確認要求を中継装置300に送信する。中継装置300は、確認要求を受信したことに応じて、情報提供装置200への接続要求を格納しているか否かを確認する。図2に示す例では、中継装置300は、格納していると判定する。
S110では、中継装置300が、接続要求に含まれる利用者ID及びパスワードを情報提供装置200に送信する。中継装置300は、利用者ID及びパスワードを情報提供装置200に送信した後、当該利用者ID及びパスワードを含む接続要求を削除したり、無効にしたりしてよい。
S112では、情報提供装置200が、S110において受信した利用者ID及びパスワードに基づいて通信端末400の認証可否を判定する。図2に示す例では、情報提供装置200によって、認証可と判定される。
S114では、情報提供装置200が、情報提供装置200と通信端末400との間のセッションを識別するセッションIDを付与して、セッションIDと利用者IDとを対応付けて対応付格納部に格納する。S116では、情報提供装置200が、セッションIDを中継装置300に送信する。
S118では、S106において確立したHTTPセッションを切断する。当該切断は、情報提供装置200が主体となって実行されてよい。情報提供装置200は、例えば、TCPコネクションのクローズをHTTPヘッダにおいて指定することによって、当該切断を実行する。また、当該切断は、中継装置300が主体となって実行されてもよい。中継装置300は、例えば、S116においてセッションIDを受信したことに対する応答として、TCPコネクションのクローズをHTTPヘッダにおいて指定することによって、当該切断を実行する。
S120では、通信端末400が、S116において受信したセッションIDを通信端末400に送信する。S122では、通信端末400が、S120において受信したセッションIDと、利用者によって指定されたデータを指定するデータ指定情報とを含む接続要求を中継装置300に送信する。S124では、中継装置300が、受信した接続要求を格納する。
S126では、情報提供装置200が、中継装置300との間でHTTPセッションを確立する。S128では、情報提供装置200が、確認要求を中継装置300に送信する。中継装置300は、確認要求を受信したことに応じて、情報提供装置200への接続要求を格納しているか否かを確認する。図2に示す例では、中継装置300は、格納していると判定する。
S130では、中継装置300が、接続要求に含まれるセッションID及びデータ指定情報を情報提供装置200に送信する。中継装置300は、セッションID及びデータ指定情報を情報提供装置200に送信した後、当該セッションID及びデータ指定情報を含む接続要求を削除したり、無効にしたりしてよい。
S132では、情報提供装置200が、S130において受信したセッションIDに基づいて、データ指定情報によって指定されるデータの送信可否を判定する。ここでは、送信可と判定されたものとして説明を続ける。
S134では、情報提供装置200が、データ指定情報によって指定されたデータを取得して、ウィルス対策を実行する。ウィルス対策は、取得したデータがウィルスに感染しているか否かを判定するウィルス判定処理と、感染していると判定した場合に、データに対してウィルスへの対応を行うウィルス対応処理とを含んでよい。ウィルス対応処理は、ウィルスを駆除したり、修復したりする処理であってよい。また、ウィルス対応処理は、指定されたデータの一部を検疫したり、隔離したり、削除したりする処理であってよい。
S136では、情報提供装置200が、通信端末400に対して提供する送信データを生成する。送信データは、データ指定情報によって指定されたデータそのものであってよい。また、送信データは、データ指定情報によって指定されたデータから生成したデータであってもよい。
S138では、情報提供装置200が、送信データを中継装置300に送信する。S140では、S126において確立したHTTPセッションを切断する。当該切断は、情報提供装置200が主体となって実行されてよい。情報提供装置200は、例えば、TCPコネクションのクローズをHTTPヘッダにおいて指定することによって、当該切断を実行する。また、当該切断は、中継装置300が主体となって実行されてもよい。中継装置300は、例えば、S138において送信データを受信したことに対する応答として、TCPコネクションのクローズをHTTPヘッダにおいて指定することによって、当該切断を実行する。
S142では、中継装置300が、S138において受信した送信データにウィルス対策を実行する。S142において中継装置300によって実行されるウィルス対策による対策レベルは、S134において情報提供装置200によって実行されるウィルス対策による対策レベルはよりも高くてよい。例えば、情報提供装置200は、自らが有する情報のみを利用してウィルス対策を実行し、中継装置300は、ウィルス対策サービスを提供するクラウドサービス32と連携したウィルス対策を実行する。S144では、中継装置300が、送信データを通信端末400に送信する。
上述したように、情報提供装置200から通信端末400に対してデータを提供する場合に、情報提供装置200においてウィルス対策を実行し、中継装置300において、情報提供装置200によるウィルス対策の対策レベルよりも高い対策レベルのウィルス対策を実行する構成とすることにより、情報提供装置200と中継装置300との間で処理負荷を適切に分散することができる。また、2重チェックにより、1重チェックと比較して精度の高いウィルス対策を実行し得るので、通信端末400の安全性を高め得る。
通信システム10が図2に示すような処理を実行することにより、ネットワーク20を、ファイヤーウォール機能を有するルータ40を介してネットワーク30に接続することによって、ネットワーク20内の処理装置22がウィルスに感染してしまうことを防止しつつ、ネットワーク20内のデータをネットワーク30内に配置される通信端末400に対して送信可能とすることができる。また、ネットワーク20内のデータに対して、2重のウィルス対策を施すことによって、安全性を高めることができる。これにより、世界各地の工場における、データのバックアップ及びログデータの回収等を適切に支援することができる。
図3は、通信システム10による処理の流れの一例を概略的に示す。ここでは、図2と異なる点を主に説明する。
S202では、第1の通信端末400が利用者ID及びパスワードを含む接続要求を中継装置300に送信する。中継装置300は、受信した接続要求を格納する。S204では、第2の通信端末400が利用者ID及びパスワードを含む接続要求を中継装置300に送信する。中継装置300は、受信した接続要求を格納する。S206では、第3の通信端末400がセッションID及びデータ指定情報を含む接続要求を中継装置300に送信する。中継装置300は、受信した接続要求を格納する。
S208では、情報提供装置200が、中継装置300との間でHTTPセッションを確立する。S210では、情報提供装置200が、確認要求を中継装置300に送信する。中継装置300は、確認要求を受信したことに応じて、情報提供装置200への接続要求を格納しているか否かを確認する。図3に示す例では、中継装置300は、格納していると判定する。
S212では、中継装置300が、3つの接続要求のそれぞれに含まれる利用者ID及びパスワードと、セッションID及びデータ指定情報とを情報提供装置200に送信する。
S214では、情報提供装置200が、S212において受信した利用者ID及びパスワードに基づいて第1の通信端末400及び第2の通信端末400の認証可否を判定する。ここでは、認証可と判定されたものとして説明を続ける。S216では、情報提供装置200が、情報提供装置200と第1の通信端末400との間のセッションを識別するセッションIDを付与して、セッションIDと第1の通信端末400の利用者の利用者IDとを対応付けて対応付格納部に格納する。また、情報提供装置200が、情報提供装置200と第2の通信端末400との間のセッションを識別するセッションIDを付与して、セッションIDと第2の通信端末400の利用者の利用者IDとを対応付けて対応付格納部に格納する。
S218では、情報提供装置200が、S212において受信したデータ指定情報によって指定されるデータの送信可否を判定する。ここでは、送信可と判定されたものとして説明を続ける。S220では、情報提供装置200が、データ指定情報によって指定されたデータを取得して、ウィルス対策を実行する。S222では、情報提供装置200が、通信端末400に対して提供する送信データを生成する。
S224では、情報提供装置200が、S216において付与したセッションIDと、S222において生成した送信データとを、中継装置300に送信する。S226では、S208において確立したHTTPセッションを切断する。当該切断は、情報提供装置200が主体となって実行されてよい。情報提供装置200は、例えば、TCPコネクションのクローズをHTTPヘッダにおいて指定することによって、当該切断を実行する。また、当該切断は、中継装置300が主体となって実行されてもよい。中継装置300は、例えば、S224においてセッションID及び送信データを受信したことに対する応答として、TCPコネクションのクローズをHTTPヘッダにおいて指定することによって、当該切断を実行する。
S228では、中継装置300が、S224において受信した送信データにウィルス対策を実行する。S230では、中継装置300が、S224において受信したセッションIDを第1の通信端末400に送信する。S232では、中継装置300が、S224において受信したセッションIDを第2の通信端末400に送信する。S234では、中継装置300が、S234においてウィルス対策を施した送信データを通信端末400に送信する。
上述したように、複数の通信端末400によって送信された接続要求をまとめて処理するように構成することによって、全体の処理効率を向上させることができる。
図4は、中継装置300の機能構成の一例を概略的に示す。中継装置300は、接続要求受信部302、接続要求格納部304、確認要求受信部306、接続要求確認部308、情報送信部310、及び通信中継部320を有する。
接続要求受信部302は、通信端末400によって送信された情報提供装置200への接続要求を受信する。接続要求受信部302は、中継装置300が配置されるネットワーク30に配置される通信端末400によって送信された情報提供装置200への接続要求を受信してよい。接続要求受信部302は、ネットワーク30に配置される複数の通信端末400のそれぞれによって送信された接続要求を受信してよい。
接続要求格納部304は、接続要求受信部302が受信した接続要求を格納する。接続要求格納部304は、接続要求受信部302が受信した複数の接続要求を格納してよい。接続要求格納部304は、接続要求を送信した通信端末400の通信端末IDに対応付けて接続要求を格納してよい。
確認要求受信部306は、情報提供装置200によって送信された確認要求を受信する。当該確認要求は、接続要求受信部302が接続要求を格納しているか否かを中継装置300に確認させる要求であってよい。
接続要求確認部308は、確認要求受信部306が確認要求を受信したことに応じて、接続要求格納部304に接続要求が格納されているか否かを確認する。接続要求確認部308は、確認要求を送信した情報提供装置200への接続要求が接続要求格納部304に格納されているか否かを確認してよい。接続要求確認部308は、例えば、確認要求に含まれる情報提供装置IDと同一の情報提供装置IDを含む接続要求が接続要求格納部304に格納されているか否かを確認する。
情報送信部310は、接続要求確認部308によって接続要求が接続要求格納部304に格納されていることが確認された場合に、接続要求に含まれる情報を情報提供装置200に送信する。情報送信部310は、例えば、利用者IDを情報提供装置200に送信する。情報送信部310は、例えば、利用者ID及びパスワードを情報提供装置200に送信する。情報送信部310は、例えば、利用者ID、パスワード及び通信端末IDを情報提供装置200に送信する。
情報送信部310は、例えば、セッションIDを情報提供装置200に送信する。情報送信部310は、例えば、セッションID及びデータ指定情報を情報提供装置200に送信する。情報送信部310は、例えば、セッションID、データ指定情報及び通信端末IDを情報提供装置200に送信する。
通信中継部320は、情報提供装置200と通信端末400との間の通信を中継する。通信中継部320は、例えば、情報提供装置200から受信したセッションIDを通信端末400に送信する。
また、通信中継部320は、例えば、情報提供装置200から受信した送信データを通信端末400に送信する。通信中継部320は、ウィルス対策部322を有してもよい。ウィルス対策部322は、情報提供装置200から受信した送信データに対するウィルス対策を実行する。ウィルス対策部322は、情報提供装置200から受信した送信データがウィルスに感染しているか否かを判定するウィルス判定処理を実行してよい。また、ウィルス対策部322は、ウィルス判定処理によってウィルスに感染していると判定した場合に、送信データに対してウィルス対応処理を施してよい。
図5は、情報提供装置200の機能構成の一例を概略的に示す。情報提供装置200は、対応付格納部202、確認要求送信部204、情報受信部206、端末認証部208、セッションID付与部210、セッションID送信部212、送信可否判定部214、及び情報提供部220を備える。
対応付格納部202は、情報提供装置200と通信端末400との間のセッションのセッションIDと、通信端末400の利用者の利用者IDとを対応付けて格納するための格納部である。
確認要求送信部204は、確認要求を中継装置300に送信する。確認要求送信部204は、ネットワーク30内に配置される通信端末400によって送信された情報提供装置200への接続要求を接続要求格納部304が格納しているか否かを確認させる確認要求を、中継装置300に送信してよい。
確認要求送信部204は、中継装置300との間でセッションを確立して、当該セッションを介して確認要求を中継装置300に送信してよい。確認要求送信部204は、中継装置300との間でHTTPセッションを確立して、当該HTTPセッションを介して確認要求を中継装置300に送信してよい。確認要求送信部204は、中継装置300との間でTCPコネクションを確立することによってセッションを確立してよい。
情報受信部206は、接続要求に含まれる情報を中継装置300から受信する。情報受信部206は、例えば、情報送信部310によって送信された利用者IDを受信する。また、情報受信部206は、例えば、情報送信部310によって送信された、利用者ID及びパスワードを受信する。また、情報受信部206は、例えば、情報送信部310によって送信された、利用者ID、パスワード及び通信端末IDを受信する。
情報受信部206は、例えば、情報送信部310によって送信されたセッションIDを受信する。情報受信部206は、例えば、情報送信部310によって送信されたセッションID及びデータ指定情報を受信する。情報受信部206は、例えば、情報送信部310によって送信されたセッションID、データ指定情報及び通信端末IDを受信する。
情報受信部206は、接続要求に含まれる情報を中継装置300から受信したことに応じて、確認要求送信部204が確立したセッションを切断してよい。情報受信部206は、TCPコネクションのクローズを指定したHTTPヘッダを中継装置300に送信することによりTCPコネクションを切断することによって、セッションを切断してよい。
端末認証部208は、情報受信部206が接続要求に含まれる情報を受信した場合であって、対応付格納部202が格納しているセッションIDが、情報受信部206が受信した情報に含まれない場合に、情報受信部206が受信した利用者IDに基づいて通信端末400の認証可否を判定する。端末認証部208は、情報受信部206が接続要求に含まれる情報を受信した場合であって、対応付格納部202が格納している有効なセッションIDが、情報受信部206が受信した情報に含まれない場合に、情報受信部206が受信した利用者IDに基づいて通信端末400の認証可否を判定してもよい。情報提供装置200は、情報受信部206が受信した情報に含まれるセッションIDが、対応付格納部202が格納しているセッションIDのいずれとも一致しなかった場合、又は、無効なセッションIDと一致した場合、利用者IDを送信することを要求する利用者ID送信要求を、中継装置300を介して、通信端末400に送信してもよい。通信端末400は、利用者ID送信要求を受信した場合、利用者IDを含む接続要求を中継装置300に送信してよい。
セッションID付与部210は、端末認証部208によって認証可と判定された場合、情報提供装置200と通信端末400との間のセッションを識別するセッションIDを付与して、セッションIDと、通信端末400の利用者の利用者IDとを対応付けて対応付格納部202に格納させる。セッションID送信部212は、セッションID付与部210によって付与されたセッションIDを中継装置300に送信する。
対応付格納部202は、セッションID送信部212がセッションIDを中継装置300に送信したときからの経過時間が予め定められた時間より長くなる前に情報受信部206が当該セッションIDと同一のセッションIDを受信しなかった場合に、当該セッションIDを削除したり無効にしたりしてよい。すなわち、対応付格納部202は、セッションID付与部210が新たなセッションIDを付与して、セッションID送信部212がセッションIDを中継装置300に送信した後、当該セッションIDが使用されないままタイムアウトした場合に、当該セッションIDを削除したり無効にしたりしてよい。
対応付格納部202は、情報受信部206がセッションIDを受信したときからの経過時間が予め定められた時間より長くなる前に情報受信部206が当該セッションIDと同一のセッションIDを受信しなかった場合に、当該セッションIDを削除したり無効にしたりしてよい。すなわち、対応付格納部202は、セッションIDが使用されてから、当該セッションIDが使用されないままタイムアウト場合に、当該セッションIDを削除したり無効にしたりしてよい。
送信可否判定部214は、情報受信部206が受信したセッションIDに基づいて、情報受信部206が受信したデータ指定情報によって指定されるデータの送信可否を判定する。送信可否判定部214は、例えば、情報受信部206が受信したセッションIDが、対応付格納部202に格納されている複数のセッションIDのいずれかと一致するか否かを判定する。いずれとも一致しなかった場合、送信可否判定部214は、送信否と判定してよい。いずれかと一致した場合、送信可否判定部214は、一致したセッションIDに対応付けて格納されている利用者IDによって、当該利用者IDによって識別される利用者の、データ指定情報によって指定されるデータへのアクセス権限を確認する。送信可否判定部214は、アクセス権限がある場合、送信可と判定してよく、アクセス権限がない場合、送信否と判定してよい。
情報提供部220は、各種情報を、中継装置300を介して通信端末400に提供する。情報提供部220は、情報受信部206が接続要求に含まれる情報を受信した場合であって、対応付格納部202が格納しているセッションIDが、情報受信部206が受信した情報に含まれる場合、情報受信部206が受信した情報に応答して通信端末400に情報を提供してよい。情報提供部220は、例えば、情報受信部206が受信したデータ指定情報によって指定されるデータを中継装置300に送信する。
情報提供部220は、ウィルス対策部222及び送信データ生成部224を有してよい。ウィルス対策部222は、データ指定情報によって指定されるデータに対するウィルス対策を実行する。ウィルス対策部222は、データ指定情報によって指定されるデータがウィルスに感染しているか否かを判定するウィルス判定処理を実行してよい。また、ウィルス対策部222は、ウィルス判定処理によってウィルスに感染していると判定した場合に、データに対してウィルス対応処理を実行してよい。
ウィルス対策部222によるウィルス判定処理の処理レベルは、ウィルス対策部322によるウィルス判定処理の処理レベルよりも低くてよい。また、ウィルス対策部222によるウィルス対応処理の処理レベルは、ウィルス対策部322によるウィルス対応処理の処理レベルよりも低くてよい。例えば、ウィルス対策部322は、オープンネットワーク上の情報を利用したウィルス判定処理及びウィルス対応処理を実行してよい。ウィルス対策部322は、ネットワーク30内に配置されるクラウドサービス32によって提供されるウィルス対策サービスと連携したウィルス判定処理及びウィルス対応処理を実行してよい。
送信データ生成部224は、データ指定情報によって指定されるデータに基づいて、送信データを生成する。送信データ生成部224は、例えば、データ指定情報によって指定されるデータを取得し、取得したデータそのものを送信データとしてよい。また、送信データ生成部224は、例えば、データ指定情報によって指定される複数のデータを取得し、複数のデータから送信データを生成する。具体例として、データ指定情報によって指定されるデータがメールデータである場合、送信データ生成部224は、複数のメールデータのヘッダ情報を集めたヘッダ一覧情報を、送信データとして生成する。
図6は、情報提供装置200又は中継装置300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD-ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
プログラムは、DVD-ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD-ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。