特許法第30条第2項適用 令和1年7月26日 https://ascii.jp/planetway/ https://ascii.jp/elem/000/001/894/1894685/を通じて発表 令和1年7月26日 https://www.nichigas.co.jp/ https://www.nichigas.co.jp/corporate/outline/ https://ssl4.eir-parts.net/doc/8174/tdnet/1734053/00.pdfを通じて発表 令和1年9月20日 株式会社リックテレコム発行の「コールセンタージャパン2019年10月号、第40頁~第41頁」に発表 令和1年9月20日 https://callcenter-japan.com https://callcenter-japan.com/category/273/1.html https://callcenter-japan.com/magazine/4291.html https://callcenter-japan.com//magazine/4277.htmを通じて発表
以下、通信システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
なお、実施の形態の説明において用いる用語は、一般的には次のように定義される。なお、これらの用語の語義は常にここに示されるように解釈されるべきではなく、例えば以下の実施の形態の説明において個別に説明されている場合にはその説明も踏まえて解釈されるべきである。
要求者とは、情報処理システムを利用する者をいう。例えば、要求者は、情報処理システムを利用してユーザに関する情報の閲覧や操作を行う者をいう。ユーザとは、ここでは、専ら、情報処理システムを利用して行われる業務によりサービス等を受ける対象者(顧客)をいう。接続者とは、リモート端末装置を使用して、情報処理システムを利用する要求者である。
ある事項について識別子とは、当該事項を一意に示す文字又は符号等である。識別子は、例えば、IDであるが、対応する事項を識別しうる情報であれば種類は問わない。すなわち、識別子は、それが示すものそのものの名前であってもよいし、一意に対応するように符号を組み合わせたものであってもよい。2以上の情報(例えば、データベースに記録されているレコードの属性値など)の組合せが識別子として用いられてもよい。
ユーザ情報とは、ユーザに関する情報をいう。ユーザ情報には、例えば、そのユーザを識別するユーザ識別子、ユーザの氏名、ユーザの住所に関する情報(住所の所番地であってもよいし、経度緯度などを示すような位置情報などであってもよい)など、当該ユーザに対応する種々の情報が含まれうる。ユーザ情報は、データベースにおいてレコードとして記録されていることがあり、その場合、ユーザ情報に含まれる各情報はレコードの属性値として含まれうる。
取得とは、ユーザ等により入力された事項を取得することを含んでいてもよいし、自装置又は他の装置に記憶されている情報(予め記憶されている情報であってもよいし当該装置において情報処理が行われることにより生成された情報であってもよい)を取得することを含んでいてもよい。他の装置に記憶されている情報を取得するとは、他の装置に記憶されている情報をAPI経由などで取得することを含んでいてもよいし、他の装置により提供されている文書ファイルの内容(ウェブページの内容なども含む)を取得することを含んでいてもよい。
また、情報の取得には、いわゆる機械学習の手法を利用するようにしてもよい。機械学習の手法の利用については、例えば次のようにすることができる。すなわち、特定の種類の入力情報を入力とし、取得したい種類の出力情報を出力とする学習器を、機械学習の手法を用いて構成する。例えば、予め、入力情報と出力情報との組を2以上用意し、当該2組以上の情報を機械学習の学習器を構成するためのモジュールに与えて学習器を構成し、構成した学習器を格納部に蓄積する。なお、学習器は分類器ということもできる。なお、機械学習の手法としては、例えば、深層学習、ランダムフォレスト、SVR等、問わない。また、機械学習には、例えば、fastText、tinySVM、random forest、TensorFlow等の各種の機械学習フレームワークにおける関数や、種々の既存のライブラリを用いることができる。
情報について、選択する、決定する、とは、ある情報を取得することや、ある情報へのリンクを取得することや、ある情報に関するフラグを立てることなどを含む概念である。
情報を出力するとは、ディスプレイへの表示、プロジェクタを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。具体的には、例えば、情報のウェブページへの表示を可能とすることや、電子メール等として送信することや、印刷するための情報を出力することなどを含む。
情報の受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、他の装置等から有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
情報処理装置等に格納されている各種の情報について、更新とは、格納されている情報の変更のほか、格納されている情報に新たな情報が追加されることや、格納されている情報の一部又は全部が消去されることなどを含む概念である。
(実施の形態)
本実施の形態の概要は、次の通りである。すなわち、本実施の形態において、通信システム1は、2つの情報処理システム901,902と、中継処理装置10とを有するものである。中継処理装置10は、第1条件及び第2条件に基づいて2つの情報処理システム901,902のうち対応するものに中継を行うための暗号化セッションを開始する。
また、本実施の形態において、典型的な例として、各情報処理システム901,902は、2以上のデータベースが分散して配置されているものである。2以上のデータベースのそれぞれには、互いに対応付けられた第1ユーザ情報と第2ユーザ情報とを含むユーザ情報が格納されている。情報処理システム901,902の情報処理装置100は、第1ユーザ情報に対応するアクセス要求に基づいて、対応する第2データベースに格納されている第2ユーザ情報にアクセスできるようにする。このとき、情報処理装置100は、アクセスを要求した要求者の権限情報に基づいて、第2ユーザ情報へのアクセスに関する制御を行うようにしてもよく、例えば、権限情報に基づいて、一部の属性値へのアクセスを制限すること、及びアクセス方法を制限すること、の少なくとも一方を行う。権限情報は、2以上のデータベース毎に規定されていてもよい。また、第2ユーザ情報へのアクセス記録は、分散型台帳データベースに蓄積されるようにしてもよい。
また、本実施の形態においては、情報処理システム901,902は、要求者から入力された検索要求情報に基づいて第1ユーザ情報又は第2ユーザ情報のいずれかであるユーザ情報を検索し、出力するようにしてもよい。ここで、検索結果に含まれるユーザ情報は、取得元のデータベースを視覚的に示すための識別情報と対応付けて出力するようにしてもよい。なお、要求者毎に異なる検索対象について検索を行うようにしてもよく、例えば、要求者に対応するインデックス情報を用いて検索を行ったり、要求者に対応して選択したデータベースのユーザ情報又はそれに由来する情報を検索対象として検索を行ったりしてもよい。また、要求者に応じて、要求者に表示する受付画面の内容を変更するようにしてもよい。
以下、このように構成された通信システム1の構成について説明する。
図1は、本実施の形態に係る通信システム1の概要を示す図である。図2は、同通信システム1の情報処理システム900の概要を示す図である。
図1に示されるように、本実施の形態において、通信システム1は、中継処理装置10と、リモート端末装置602と、第1情報処理システム901と、第2情報処理システム902と、第4外部装置940とを含んでいる。
本実施の形態において、第1情報処理システム901と、第2情報処理システム902とは、互いに略同様のハードウェア構成、ソフトウェア構成を有しているものとする。両者は互いに異なる独立した情報処理システムであるが、情報処理システム901,902のうち1つに含まれる装置が他の1つにおいても含まれていてもよい。この場合、同装置は、第1情報処理システム901を構成する装置としての動作と第2情報処理システム902を構成する装置としての動作とを独立して行うようにすればよい。
以下の説明において、第1情報処理システム901と、第2情報処理システム902とを、互いに区別せずに情報処理システム900と称することがある。
図2に示されるように、各情報処理システム900は、第1外部装置910、第2外部装置920、第3外部装置930、情報処理装置100、及びローカル端末装置601などを備える。
本実施の形態において、第1外部装置910と第2外部装置920とは、例えば、互いに異なる事業に用いられている装置である。第1外部装置910は、例えば、家庭用などの液化石油ガス(LPG)の供給事業(例えば、ユーザに対しては、ガスボンベの配送業務、検針業務、設備の保安業務等の業務が行われる。)に用いられる装置である。他方、第2外部装置920は、例えば、各戸への上水道の供給事業(例えば、ユーザに対しては、水道使用量の検針業務、料金の徴収等の出納業務等の業務が行われる。)に用いられる装置である。なお、これに限られず、例えば、ガスや水道の供給事業に付随して、機器の販売や維持等の事業にも用いられる装置であってもよい。なお、これらの事業は、一の組織体によって運営されるものであってもよいし、別会社など別々の組織体によって運営されるものであってもよい。また、第1外部装置910と第2外部装置920とは、例えば、互いに異なる組織体によって用いられている装置であって、互いに同事業に用いられている装置であってもよい。
第3外部装置930は、例えば、ブロックチェーン技術などを利用した分散型台帳データベースの管理に用いられるノードである。第3外部装置930は、ネットワークを介して接続されている他の機器等と共に分散型台帳データベースの保持・管理等を行う。
なお、本実施の形態においては、第4外部装置940も、第3外部装置930と同様に構成されている。すなわち、第4外部装置940は、ネットワークを介して接続されている他の機器等と共に、1つのノードとして、分散型台帳データベースの保持・管理等を行う。なお、第1情報処理システム901の第3外部装置930が管理する分散型台帳データベースと、第2情報処理システム902の第3外部装置930が管理する分散型台帳データベースと、第4外部装置940が管理する分散型台帳データベースとは、互いに同一のものであってもよいし、いずれか2つの分散型台帳データベースが同一のものであってもよいし、全ての分散型台帳データベースが別々のものであってもよい。また、分散型台帳データベースにブロックチェーン技術が用いられる場合、いわゆるパブリックブロックチェーンを構築して分散型台帳データベースが実現されるようにしてもよいし、許可された複数の装置のみが参加して構成される許可型のブロックチェーンであってもよい。互いに異なる特定の主体によりそれぞれ管理されるような複数の装置のみが参加して構成される許可型のブロックチェーンを、コンソーシアム型ブロックチェーンと呼んでもよい。
本実施の形態において、第1情報処理システム901に含まれる各装置は、第1のプライベートネットワークを介して互いに通信可能である。すなわち、第1情報処理システム901は、第1のプライベートネットワークにおいて構成されている。また、第2情報処理システム902に含まれる各装置は、第2のプライベートネットワークを介して互いに通信可能である。すなわち、第2情報処理システム902は、第2のプライベートネットワークにおいて構成されている。第1のプライベートネットワークや第2のプライベートネットワークは、例えば、ローカルエリアネットワーク(LAN)などの物理的に独立したネットワークであるが、これに限られない。例えば、物理的な接続形態にかかわらず仮想的に構築されたネットワークセグメント等であってもよい。なお、各情報処理システム900において、いくつかの装置が、インターネットなどのパブリックネットワークを経由してプライベートネットワークに通信可能に接続されていてもよい。例えば、第1外部装置910や第2外部装置920は、それぞれ、別々の組織からインターネット等を介して情報処理システム900に接続されるようにしてもよい。
図1に示されるように、通信システム1において、リモート端末装置602と、中継処理装置10と、第4外部装置940とは、それぞれ、第1プライベートネットワーク及び第2プライベートネットワークとは異なるネットワークを介して通信可能である。すなわち、リモート端末装置602は、第1プライベートネットワーク及び第2プライベートネットワークとは異なるネットワークを介して、中継処理装置10に接続されうる。ここで、第1プライベートネットワーク及び第2プライベートネットワークとは異なるネットワークは、例えばインターネットであるが、これに限られない。
本実施の形態において、中継処理装置10は、第1のプライベートネットワークに通信可能に接続されている。すなわち、中継処理装置10は、第1情報処理システム901に接続されている。また、中継処理装置10は、第2のプライベートネットワークに通信可能に接続されている。すなわち、中継処理装置10は、第2情報処理システム902に接続されている。なお、中継処理装置10と各プライベートネットワークとは、他の情報処理装置等を介して通信可能に接続されていてもよい。
通信システム1の構成や各情報処理システム900の構成はこれに限られるものではない。通信システム1や情報処理システム900に含まれるそれぞれの装置の数は問わないし、他の装置が通信システム1や情報処理システム900に含まれていてもよい。
本実施の形態において、リモート端末装置602と、ローカル端末装置601とは、互いに同様の構成を有している装置である。以下の説明において、リモート端末装置602と、ローカル端末装置601とを、互いに区別せずに端末装置600と称することがある。なお、図1及び図2においては、例えばラップトップコンピュータなどのパーソナルコンピュータ(PC)などが端末装置600として示されているが、端末装置600として用いられるのは、いわゆるスマートフォンなどの携帯情報端末装置やタブレット型の情報端末装置などであってもよいし、これら以外の装置であってもよい。要求者は、端末装置600を利用して、情報処理システム900を利用することができる。以下の例においては、端末装置600として、キーボードやディスプレイ等を有するいわゆるパーソナルコンピュータが用いられることを想定して説明されているが、これに限られるものではない。
本実施の形態において、中継処理装置10は、リモート端末装置602との間で、暗号化セッションを構築しうる。暗号化セッションは、リモート端末装置602と、第1情報処理システム901及び第2情報処理システム902の一方との通信を中継するための通信経路である。このような中継処理装置10の動作については、後述する。リモート端末装置602は、暗号化セッションが開始されることにより、中継処理装置10を通じて、第1情報処理システム901又は第2情報処理システム902おいて、ローカル端末装置601と同じように機能することができる。
なお、一例として、通信システム1において、各情報処理システム900を構成する情報処理装置100やローカル端末装置601は、所定のデータセンタやコールセンタなど、情報処理システム900を用いた所定の業務を行うための事業所等の拠点に配置されうる。また、リモート端末装置602は、例えば、住居や所定のサテライトオフィスなど、各情報処理システム900が配置される拠点とは物理的・地理的に離れた場所にある、接続者の居所に配置されうる。なお、これに限られず、各装置が上述のように他の装置と接続されていればよく、種々の場所で用いられればよい。例えば、各情報処理システム900を構成する情報処理装置100やローカル端末装置601は、複数の拠点に分散していてもよい。また、リモート端末装置602は、接続される情報処理システム900と同一の拠点に配置されていてもよく、この場合でもリモート端末装置602がプライベートネットワークとは異なるネットワークを介して中継処理装置10に接続可能であればよい。また、リモート端末装置602は、第1情報処理システム901や第2情報処理システム902で用いられているものとは異なる第3プライベートネットワーク(図示せず)に接続されている端末装置であってもよい。すなわち、この場合、リモート端末装置602は、第3プライベートネットワークに接続されたまま、第3プライベートネットワークの外のインターネット等のネットワークを介して、中継処理装置10に接続されるようにすればよい。
なお、以下の説明において、第1情報処理システム901に含まれる情報処理装置100を第1情報処理装置100ということがある。また、第2情報処理システム902に含まれる情報処理装置100を第2情報処理装置100ということがある。
通信システム1の説明に先立って、情報処理システム900の構成について説明する。
図3は、同情報処理システム900のブロック図である。図4は、同情報処理装置100のブロック図である。図5は、同端末装置600のブロック図である。
まず、第1外部装置910、第2外部装置920、及び第3外部装置930の構成について説明する。
図3に示されるように、第1外部装置910は、第1外部装置格納部911、第1外部装置処理部915、第1外部装置送信部916、及び第1外部装置受信部917を備える。第1外部装置910は、例えば一般的な構成を有するサーバ装置であるが、これに限られず、他の形態の電子計算機であってもよいし、複数の装置が互いに接続されて実現される装置であってもよい。第1外部装置910は、ネットワークに接続可能であり、ネットワークに接続されている他の装置との間での通信を行えるように構成されている。
第1外部装置格納部911は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。第1外部装置格納部911には、種々の情報やプログラム等が記憶されている。これらの情報等が記憶される過程は問わない。例えば、記録媒体を介して情報が第1外部装置格納部911で記憶されるようになってもよく、通信回線等を介して送信された情報が第1外部装置格納部911で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が第1外部装置格納部911で記憶されるようになってもよい。
第1外部装置格納部911は、第1データベース格納部912を備える。
第1データベース格納部912には、第1データベースが格納される。第1データベースについては、後述する。
第1外部装置処理部915は、通常、MPUやメモリ等から実現されうる。第1外部装置処理部915の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現してもよい。第1外部装置処理部915は、第1外部装置910において、例えば情報の取得などを行う。例えば、取得したSQL文などに基づいて、第1外部装置格納部911に格納されている種々のデータベースの操作を行う。
第1外部装置送信部916は、第1外部装置処理部915によって第1外部装置格納部911などから読み出された情報を送信する。例えば、第1外部装置送信部916は、第1外部装置処理部915の動作に基づいて第1外部装置格納部911から読み出されたユーザ情報を、情報処理装置100や端末装置600等に、ネットワークを介して送信する。
第1外部装置受信部917は、情報処理装置100や、その他の装置から送信された情報を、ネットワークを介して受信する。第1外部装置受信部917は、受信した情報を、例えば第1外部装置格納部911に蓄積し、第1外部装置処理部915などが取得できるようにする。
第2外部装置920も、第1外部装置910と同様に構成されたサーバ装置である。すなわち、第2外部装置920は、第1外部装置格納部911と同様のハードウェア構成を有する第2外部装置格納部921を備える。また、第2外部装置920は、第2外部装置処理部925、第2外部装置送信部926、及び第2外部装置受信部927を備える。第2外部装置処理部925、第2外部装置送信部926、及び第2外部装置受信部927は、それぞれ第1外部装置処理部915、第1外部装置送信部916、及び第1外部装置受信部917と同様に構成されており、その詳細な説明を省略する。
第2外部装置格納部921は、第2データベース格納部922を備える。第2データベース格納部922には、第2データベースが格納される。
本実施の形態において、第1データベースと第2データベースとのそれぞれは、2以上のユーザ(顧客)についてのユーザ情報を含む。本実施の形態において、ユーザ情報には、少なくともユーザを識別するユーザ識別子とユーザに関する1以上の属性値(ユーザ属性値ということがある)とが含まれる。例えば、ユーザ情報には、ユーザを一意に示す符号からなるユーザ識別子と、ユーザの名前、住所、電話番号等の情報とが含まれる。ユーザ情報は、各ユーザについて、これらの情報の他に、他のユーザ属性値を含んでいてもよい。ユーザ属性値には、例えば、ユーザ位置情報(ユーザの位置情報;例えば、ユーザ宅の住所や緯度経度情報等)、ユーザに関して記録されたメモ情報等、種々のものが含まれうる。なお、ユーザの名前以外のものがユーザ識別子である場合には、他のユーザ属性値としてユーザの名前が含まれていることが好ましい。ユーザの名前がユーザ識別子であってもよい。
なお、第1データベースと第2データベースとの少なくとも一方は、情報処理装置100の外部の装置ではなく、情報処理装置100の内部に設けられていてもよい。
本実施の形態において、ユーザ情報は、一のユーザに関するユーザ識別子を含む第1ユーザ情報と、一のユーザについての第1ユーザ情報とは異なる属性値を含む第2ユーザ情報とが対応付けられた情報である。例えば、ユーザ情報は、いずれかのデータベースに格納された1つのレコードであってもよい。また、第1ユーザ情報と第2ユーザ情報とのそれぞれが、互いに異なるテーブルのレコードとして格納されていてもよい。第2ユーザ情報は、ユーザ詳細情報と呼ばれることがある。すなわち、本実施の形態において、2以上のデータベースのそれぞれには、一のユーザに関するユーザ識別子を含む第1ユーザ情報と、一のユーザについての第1ユーザ情報とは異なる属性値を含む第2ユーザ情報とが対応付けられて格納されているといえる。
本実施の形態において、第1ユーザ情報には、ユーザ識別子と、一部の属性値(例えば、ユーザの住所等)とが含まれる。第2ユーザ情報には、その他の属性値が含まれる。例えば、第2ユーザ情報に含まれるユーザ属性値は、ユーザの家族構成や、ユーザの契約情報、ユーザの利用情報(瓦斯や水道の使用量など)、ユーザの支払情報など、第1ユーザ情報に含まれる情報よりも比較的センシティブである情報が含まれるが、これに限られない。
ここで、第1外部装置910及び第2外部装置920に分散して配置された第1データベースと第2データベースとは、「X-Road」と呼ばれるシステム間連携基盤(https://e-estonia.com/solutions/interoperability-services/x-road/)などを用いて相互連携されていることが望ましい。これにより、2以上の分散配置されたデータベースの配置状態やシステム構成の相違について個別の対応を行うことなく、容易に実行可能な方法で、情報処理装置100が各データベースへのアクセスを行うことができる。
第3外部装置930も、第1外部装置910と同様のハードウェア構成を有するサーバ装置である。すなわち、第3外部装置930は、第1外部装置格納部911と同様のハードウェア構成を有する第3外部装置格納部931を備える。そのほか、第3外部装置930は、第1外部装置910と同様に、第3外部装置処理部935、第3外部装置送信部936、及び第3外部装置受信部937などの各部を有しているが、詳細な説明は省略する。
第3外部装置格納部931は、第3データベース格納部932を備える。第3データベース格納部932には、分散型台帳データベースが格納される。分散型台帳データベースは、例えば、いわゆるブロックチェーン技術やその他のハッシュ化された情報を用いたタイムスタンプ技術などを用いた分散型台帳技術を用いて管理されるものであることが望ましい。
なお、第1外部装置910、第2外部装置920、及び第3外部装置930は、情報処理システム900に含まれていないと解釈されてもよい。この場合、例えば、情報処理システム900の各装置は、第1外部装置910や第2外部装置920と同様の構成を有する2以上の他の外部装置とそれぞれネットワークを介して通信可能に構成されていればよい。すなわち、情報処理システム900は、分散して格納されている2以上のデータベースにアクセス可能に構成されていればよい。また、第3外部装置930は設けられていなくてもよいし、第3外部装置930の機能が、情報処理システム900の他の装置により担われるように構成されていてもよい。
図4に示されるように、情報処理装置100は、格納部110、受信部120、受付部130、処理部140、出力部160を備える。情報処理装置100は、例えば、サーバ装置である。
格納部110は、ユーザ情報格納部111、インデックス情報格納部112、要求者情報格納部113、権限情報格納部114を備える。
格納部110は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。格納部110の各部には、例えば受信部120や処理部140によって取得された情報などがそれぞれ格納されるが、格納部110の各部に情報等が記憶される過程はこれに限られない。例えば、記録媒体を介して情報等が格納部110で記憶されるようになってもよく、通信回線等を介して送信された情報等が格納部110で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報等が格納部110で記憶されるようになってもよい。
ユーザ情報格納部111には、ユーザ情報蓄積部141により取得されたユーザ情報が格納される。
インデックス情報格納部112には、インデックス情報蓄積部142により取得されたインデックス情報が格納される。
要求者情報格納部113には、情報処理システム900を使用する要求者に関る要求者情報が格納される。要求者情報は、例えば、一の要求者を特定する要求者識別子と、当該要求者に関する情報を示す属性値とが対応付けられた情報を2以上含むものであるが、これに限られない。属性値には、例えば、要求者が使用している端末装置600を特定する情報が含まれる。また、属性値には、例えば、所属するグループ等や職種や職位など、要求者の役割を特定する情報又はその情報に対応する識別子などが含まれる。なお、これら以外の属性値を含んでいてもよい。なお、要求者情報格納部113が外部装置の格納部に設けられていたりしてもよい。すなわち、要求者情報は、情報処理装置100の格納部110に格納されていなくてもよい。
権限情報格納部114には、権限情報が格納される。本実施の形態において、権限情報は、各データベースのレコードについて各要求者が有するアクセス権限に関する情報である。アクセス権限は、例えば、各要求者毎(要求者識別子毎)に規定されていてもよい。また、要求者の役割を特定する情報やその情報に対応する識別子に対応付けて規定されていてもよく、この場合、要求者情報に基づいて、各要求者識別子に対応するアクセス権限が特定可能となる。アクセス権限は、第2ユーザ情報のうち一部の属性値へのアクセスを制限すること(操作可能な対象を制限すること)、及び、アクセス要求の対象となる第2ユーザ情報に対するアクセス方法(第2ユーザ情報に対して可能となる操作の種類)を制限すること、の少なくとも一方に関して設定されていてもよい。
本実施の形態においては、権限情報は、2以上のデータベース毎に、データベースに格納されている2以上のレコードに関するアクセス権限を一括して規定するものである。すなわち、一の要求者についての権限情報は、第1データベースに格納されているユーザ情報へのアクセス権限の内容を示す情報と、第2データベースに格納されているユーザ情報へのアクセス権限の内容を示す情報とを含む。なお、権限情報は、2以上のデータベースの全てのレコードに関するアクセス権限を一括して規定するものであったり、各レコードの特定の属性値に対応するアクセス権限を規定するものなど、レコード毎に異なるアクセス権限を規定しうるものであってもよい。
受信部120は、他の装置から送信された情報を受信する。受信部120は、受信した情報を、例えば、格納部110に蓄積する。
受付部130は、アクセス要求情報受付部131、検索要求情報受付部132、表示要求情報受付部133を備える。
受付部130は、受信部120が受信した情報を受け付ける。なお、受付部130は、情報処理装置100に接続された入力手段を用いて入力された情報や、情報処理装置100に接続された読み取り装置(例えば、コードリーダなど)を用いて行われた入力操作(例えば、装置により読み取られた情報も含む)により入力された情報を受け付けてもよい。受け付けられた情報は、例えば、格納部110に蓄積される。
アクセス要求情報受付部131は、アクセス要求情報を受け付ける。アクセス要求情報は、例えば、要求者により入力された、第2ユーザ情報にアクセスするための情報であり、ユーザ識別子に対応付けられた情報である。換言すると、アクセス要求情報は、対象となるユーザを指定して、そのユーザの第2ユーザ情報にアクセスするための情報である。なお、本実施の形態において、アクセス要求情報受付部131は、アクセス要求情報を受け付けた場合に、そのアクセス要求情報を入力した要求者を特定する要求者識別子も受け付ける。換言すると、アクセス要求情報受付部131が受け付けたアクセス要求情報は、アクセスを要求した要求者を特定する要求者識別子に対応付けられている。
なお、アクセス要求情報の入力は、種々の態様で行われうる。例えば、ディスプレイに表示された複数のユーザに関する第1ユーザ情報のうち一の第1ユーザ情報を、第2ユーザ情報の確認を要求するために指定する操作(キーボードやポインティングデバイスを用いた操作や、音声などによる操作など、操作態様を問わない)は、アクセス要求情報の入力に該当しうる。また、例えば、ディスプレイに表示された1以上のユーザの第2ユーザの情報の属性値を入力、変更、削除等するための操作は、アクセス要求情報の入力に該当しうる。すなわち、アクセス要求情報の入力とは、一のユーザ識別子に対応する第2ユーザ情報の属性値の取得、変更等を、当該ユーザ識別子に対応するレコードが含まれるデータベースに対して要求するための情報を入力することであるといってもよい。
検索要求情報受付部132は、第1ユーザ情報又は第2ユーザ情報のいずれかであるユーザ情報についての、検索要求情報を受け付ける。検索要求情報は、情報処理装置100において出力可能なユーザ情報を検索により絞り込むために情報処理装置100に与えられる情報である。検索要求情報は、例えば、検索を行う文字列や条件を指定する種々の情報を含みうる。なお、本実施の形態において、検索要求情報受付部132は、検索要求情報を受け付けた場合に、その検索要求情報を入力した要求者を特定する要求者識別子も受け付ける。換言すると、検索要求情報受付部132が受け付けた検索要求情報は、検索を要求した要求者を特定する要求者識別子に対応付けられている。
表示要求情報受付部133は、要求者から入力された、検索要求情報を受け付けるための受付画面の表示を要求する受付画面表示要求情報を受け付ける。本実施の形態において、情報処理装置100はウェブサーバであり、端末装置600で動作するウェブブラウザにより表示可能な情報を出力することができる。受付画面表示要求情報は、受付画面を端末装置600で動作するウェブブラウザにおいて表示させるために端末装置600から出力された情報である。なお、情報処理装置100はウェブサーバでなくてもよく、受付画面表示要求情報は、端末装置600で動作するその他のアプリケーションにおいて受付画面を表示させるために端末装置600から出力された情報であってもよい。なお、本実施の形態において、表示要求情報受付部133は、受付画面表示要求情報を受け付けた場合に、その受付画面表示要求情報を入力した要求者を特定する要求者識別子も受け付ける。換言すると、表示要求情報受付部133が受け付けた受付画面表示要求情報は、受付画面の表示を要求した要求者を特定する要求者識別子に対応付けられている。
なお、アクセス要求情報や、検索要求情報や、受付画面表示要求情報の入力とは、これらの情報が端末装置600等を介して要求者によって間接的に情報処理装置100に入力されることを意味するが、要求者によって、入力手段を用いて直接的に情報処理装置100に入力されることを意味すると解釈してもよい。また、アクセス要求情報や、検索要求情報や、受付画面表示要求情報は、必ずしも要求者の直接的な行動(入力操作など)に基づいて生成される情報ではなくてもよい。すなわち、これらの要求情報の入力とは、これらの要求情報が情報処理装置100に与えられることを引き起こす種々の行為、例えばこれらの要求情報を自動的に生成するプログラムを実行させたり種々の情報を与えて機能させることなどを含みうる。
処理部140は、ユーザ情報蓄積部141、インデックス情報蓄積部142、検索実行部143、アクセス制御部144、アクセス記録蓄積部145を備える。処理部140は、各種の処理を行う。各種の処理とは、例えば、以下のように処理部140の各部が行う処理である。
ユーザ情報蓄積部141は、第1データベースと第2データベースとの少なくとも一方に含まれる、2以上のユーザ情報を取得する。すなわち、ユーザ情報蓄積部141は、分散して格納されている2以上のデータベースであって、少なくとも1以上の外部装置に格納されているデータベースを含む2以上のデータベースの少なくとも一方に含まれる2以上のユーザ情報を取得する。ユーザ情報蓄積部141は、取得したユーザ情報を、ユーザ情報格納部111に蓄積する。
なお、本実施の形態において、ユーザ情報蓄積部141は、ユーザ情報のうち、第1ユーザ情報を取得し、蓄積する。ユーザ情報蓄積部141は、2以上のデータベースのそれぞれに含まれる第1ユーザ情報を、各第1ユーザ情報が格納されているデータベースのレコードを特定するレコード識別子に対応付けて2以上取得し、ユーザ情報格納部111に蓄積する。なお、本実施の形態において、レコード識別子は、それにより特定されるレコードが格納される取得元データベース(ユーザ情報蓄積部141による取得元のデータベースをいう)を特定するデータベース識別子に対応付けられているものであるが、これに限られない。すなわち、本実施の形態において、ユーザ情報格納部111に格納されている第1ユーザ情報は、取得元データベースとそれに格納されているレコードとを特定可能な情報に対応付けられている。なお、データベース識別子は、取得元データベースが管理されている外部装置を特定する装置識別子であってもよい。
インデックス情報蓄積部142は、ユーザ情報格納部111に格納された2以上の第1ユーザ情報に基づいて、各第1ユーザ情報に対応するユーザ情報に関する検索を行うためのインデックス情報を生成し、生成したインデックス情報をインデックス情報格納部112に蓄積する。インデックス情報の生成においては、各データベースに記録されている第1ユーザ情報に対応するユーザ情報(ユーザ識別子に対応するユーザ情報)のうち、検索可能とする情報を取得し、取得した情報を含めてインデックス情報とする。インデックス情報は、例えば、検索実行部143による所定の検索アルゴリズムの検索に適したデータ構造を有する情報であるが、これに限られず、例えば取得したユーザ情報をそのまま含む情報であってもよい。このようなインデックス情報を用いることにより、情報処理装置100において、第1外部装置910及び第2外部装置920に検索の度にアクセスする必要がなくなる。そのため、高速にユーザ情報の検索を行うことができ、また、検索時に情報処理システム900にかかる負荷を低減することができる。
ここで、本実施の形態においては、インデックス情報は、要求者識別子に対応付けて蓄積される。すなわち、インデックス情報蓄積部142は、各要求者識別子に対応付けて、当該要求者が有するアクセス権限に応じた範囲のユーザ情報を検索可能対象とするように生成されたインデックス情報を蓄積する。すなわち、インデックス情報蓄積部142は、ユーザ情報の検索のための、互いに異なる内容を含む2以上のインデックス情報を取得し、それぞれ対応する要求者識別子に対応付けてインデックス情報格納部112に蓄積する。このようなアクセス権限に応じた範囲のインデックス情報は、権限情報格納部114に格納されている権限情報に基づいて生成される。なお、インデックス情報蓄積部142は、同一内容のアクセス権限を有する2以上の要求者識別子があるとき、そのアクセス権限に応じた範囲のインデックス情報を1回生成し、生成したインデックス情報を、当該2以上の要求者識別子に対応付けて蓄積するようにしてもよい。また、インデックス情報蓄積部142は、要求者情報に基づいて、全ての要求者識別子のそれぞれについて、当該要求者識別子に対応する権限情報を取得し、インデックス情報の生成を行い、生成したインデックス情報をその要求者識別子に対応付けて蓄積するようにしてもよい。
なお、インデックス情報の生成は、定期的に行われる。例えば、毎日所定の時刻が到来した際に行われる。インデックス情報の生成は、その他の所定のスケジュールで行われるようにしてもよいし、例えば受付部130によりインデックス情報の生成を要求する情報が受け付けられた場合に行われるようにしてもよい。
検索実行部143は、検索要求情報受付部132により受け付けられた検索要求情報に基づいて、検索クエリを生成するなどして、ユーザ情報の検索を行う。例えば、検索実行部143は、検索要求情報を入力した要求者を特定する要求者識別子に基づいて、検索要求情報を入力した要求者毎に異なる検索対象について検索を行う。
本実施の形態において、検索実行部143は、インデックス情報格納部112に格納されているインデックス情報を用いて、ユーザ情報の検索を行う。例えば、検索実行部143は、検索要求情報を入力した要求者を特定する要求者識別子に基づいて、インデックス情報格納部112に格納されている2以上のインデックス情報のうち、要求者識別子に対応するものを用いて検索を行う。すなわち、検索実行部143は、検索要求情報を入力した要求者のアクセス権限に応じた範囲のユーザ情報について検索を行う。なお、検索実行部143は、インデックス情報を用いずに、直接的に、ユーザ情報格納部111に格納されているユーザ情報や、第1データベース又は第2データベースに格納されているユーザ情報を検索するようにしてもよい。
なお、検索実行部143は、検索要求情報を入力した要求者を特定する要求者識別子に対応付けられている特定のデータベースに格納されているユーザ情報又はそれに由来する情報を検索対象として検索を行うようにしてもよい。例えば、要求者が特に第1データベースに関係する要求者である場合、当該要求者が検索要求情報を入力したときには、第1データベースに格納されているユーザ情報を検索対象として、第1データベースにアクセスして検索するようにしてもよい。また、当該要求者が検索要求情報を入力した場合に、第1データベースに格納されているユーザ情報に基づいて予め生成されたインデックス情報(特定のデータベースに格納されているユーザ情報に由来する情報の一例)を検索対象として検索したり、予め第1データベースから取得されてユーザ情報格納部111に蓄積された、ユーザ情報格納部111に格納されている第1ユーザ情報(特定のデータベースに格納されているユーザ情報に由来する情報の一例)を検索対象として検索を行うようにしてもよい。
アクセス制御部144は、アクセス要求情報受付部131が受け付けたアクセス要求情報に対応付けられたユーザ識別子に対応するレコード識別子に基づいて、対応するデータベースに格納されている第2ユーザ情報にアクセスする。アクセスとは、例えば、SQLクエリなどを用いて、各データベースの管理プログラムに、レコードに含まれる情報の閲覧(取得の一例)、更新、追加、削除等の操作(アクセス方法)によるデータベースの操作を実行させることをいうが、これに限られない。アクセス制御部144は、APIを利用して対応するデータベースに格納されている第2ユーザ情報にアクセスするように構成されていたり、関数等を用いて第2ユーザ情報にアクセスするように構成されていてもよい。
本実施の形態において、具体的には、アクセス制御部144は、アクセス要求情報受付部131がアクセス要求情報を受け付けた場合に、アクセス要求情報に対応する要求者識別子により特定される要求者のアクセス権限に関する権限情報を取得する。アクセス制御部144は、取得した権限情報に基づいて、当該要求者がアクセス権限を有する場合に、アクセスを行うためのクエリを生成する。そして、アクセス制御部144は、生成したクエリを用いて、対応するデータベースに対してアクセスを実行する。換言すると、アクセス制御部144は、要求者のアクセス権限に応じて、アクセス要求の対象となる第2ユーザ情報へのアクセスやアクセス方法の制限を行う。より具体的には、アクセス制御部144は、要求者のアクセス権限に応じて、アクセス要求の対象となる第2ユーザ情報のうち一部の属性値へのアクセスを制限すること、及び、アクセス要求の対象となる第2ユーザ情報に対して可能とする操作の種類(セレクト、アップデート、アペンド、デリート等)を制限すること、などを実行可能に構成されていてもよい。
アクセス記録蓄積部145は、第3外部装置930などにより管理されている分散型台帳データベースに情報を蓄積可能に構成されている。アクセス記録蓄積部145は、アクセス制御部144により行われたアクセスに関するアクセス記録を、情報処理システム900において実現される分散型台帳データベースに蓄積する。これにより、情報処理装置100により、第1データベースと第2データベースとのそれぞれからのユーザ情報の取得行為などのアクセス証跡は、改ざん困難な状態で記録される。
出力部160は、検索結果出力部161、受付画面情報出力部162を備える。本実施の形態において、出力部160は、送信部170等を用いて他の装置に情報を送信することにより情報を出力するが、これに限られず、例えば情報処理装置100に設けられたディスプレイデバイスに情報を表示することなどにより情報を出力してもよい。
検索結果出力部161は、検索実行部143による検索結果を示す情報を出力する。具体的には、検索結果出力部161は、例えば、検索結果に含まれるユーザ情報(検索によりヒットしたユーザ情報に対応するユーザ識別子など)と、ユーザ情報が取得された取得元のデータベースを視覚的に示すための識別情報とを対応付けて出力する。識別情報とは、例えば、所定のマークや符号を示す画像であったり、文字として表示されうる符号列であったり、取得元のデータベースに応じた文字色や背景色等でユーザ情報を示すための情報など、種々のものが該当しうる。例えば、格納部110に、レコード識別子やデータベース識別子に対応付けて格納されている識別情報が、検索結果に含まれるユーザ情報に対応するユーザ識別子に基づいて出力されるようにすればよい。検索結果に含まれるユーザ情報について、必要に応じて第2ユーザ情報を取得して検索結果に含めてもよい。換言すると、検索結果出力部161は、検索結果に含まれるユーザ情報を、取得元のデータベースに応じた視覚的な態様で端末装置600等において表示されるように出力するということができる。
なお、検索結果を示す情報は、例えば、端末装置600においてウェブページとして検索結果を表示可能な情報(例えば、HTML形式の文書であったり、情報処理装置100や端末装置600で機能するウェブページ生成システム(コンテンツ管理システムなど)に用いられる情報など)であるが、これに限られない。
受付画面情報出力部162は、表示要求情報受付部133により受け付けられた受付画面表示要求情報に基づいて、受付画面を表示するための受付画面情報を出力する。受付画面情報は、例えば、ウェブページとして受付画面を表示するために用いられる、予め格納部110に記憶されている情報(例えば、HTML形式の文書であったり、情報処理装置100や端末装置600で機能するウェブページ生成システム(コンテンツ管理システムなど)に用いられる情報など)であるが、これに限られない。
なお、受付画面情報出力部162は、受付画面表示要求情報を入力した要求者を特定する要求者識別子に基づいて、受付画面情報を出力するようにしてもよい。具体的には、例えば、要求者識別子に応じたアクセス権限の内容が視覚的に示されるように受付画面情報を出力したり、アクセス権限に応じた所定の態様でのみ検索要求情報を入力することが可能となる受付画面を表示するための受付画面情報を出力したりするようにしてもよい。
送信部170は、情報を、ネットワークを介して情報処理システム900を構成する他の装置に送信する。送信部170は、例えば、出力部160により出力される情報の送信を行う。検索結果出力部161により出力される情報は、検索要求情報を入力した要求者の要求者識別子に基づいて、当該要求者の端末装置600に送信される。また、受付画面情報出力部162により出力される情報は、受付画面表示要求情報を入力した要求者の要求者識別子に基づいて、当該要求者の端末装置600に送信される。
次に、端末装置600の構成について説明する。
図5に示されるように、端末装置600は、端末格納部610、端末受信部620、端末受付部630、端末処理部640、端末出力部660、端末送信部670を備える。
端末装置600は、例えば一般的なパーソナルコンピュータであり、出力装置であるディスプレイや、要求者の入力操作に用いられる入力装置(例えば、キーボードやポインティングデバイスなど)などを有しているが、これに限られるものではない。端末装置600は、ネットワークに接続可能であり、ネットワークに接続されている他の装置との間での通信を行えるように構成されている。
端末格納部610は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。端末格納部610には、種々の情報やプログラム等が記憶されている。これらの情報等が記憶される過程は問わない。例えば、記録媒体を介して情報が端末格納部610で記憶されるようになってもよく、通信回線等を介して送信された情報が端末格納部610で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が端末格納部610で記憶されるようになってもよい。
端末受信部620は、受付画面情報受信部621を備える。端末受信部620は、情報処理装置100や、その他の装置から送信された情報を、ネットワークを介して受信する。端末受信部620は、受信した情報を、例えば端末格納部610に蓄積し、端末処理部640などが取得できるようにする。
受付画面情報受信部621は、情報処理装置100から送信された受付画面情報を受信し、端末格納部610に蓄積する。
端末受付部630は、端末装置600を使用する要求者による、端末装置600に対する種々の入力操作を受け付ける。操作は、例えば、図示しない入力装置を用いて行われるが、これに限られない。端末受付部630は、例えば、マイクにより入力された音声による入力操作を受け付けるようにしてもよいし、端末装置600に接続した読み取り装置(例えば、コードリーダなど)を用いて行われた入力操作を受け付けるようにしてもよい。
端末処理部640は、端末装置600の各部を用いて、種々の情報処理動作を行う。
端末出力部660は、例えばディスプレイデバイスに表示することなどにより、情報の出力を行う。なお、情報の出力方法はこれに限られず、音声等をスピーカーなどから出力することなどにより行われるようにしてもよい。
端末送信部670は、アクセス要求情報送信部671、受付画面表示要求情報送信部672、検索要求情報送信部673を備える。端末送信部670は、例えば端末処理部640等により取得した情報をネットワークを介して送信する。
アクセス要求情報送信部671は、要求者によるアクセス要求情報の入力操作が端末受付部630により受け付けられた場合に、アクセス要求情報を情報処理装置100に送信する。
受付画面表示要求情報送信部672は、要求者による受付画面の表示を要求する入力操作が端末受付部630により受け付けられた場合に、受付画面表示要求情報を情報処理装置100に送信する。
検索要求情報送信部673は、要求者による検索要求情報の入力操作が端末受付部630により受け付けられた場合に、検索要求情報を情報処理装置100に送信する。
図6は、同情報処理装置100の動作の一例について説明する図である。
図6に示されるように、情報処理装置100のユーザ情報蓄積部141は、互いに異なる場所にある第1外部装置910及び第2外部装置920から第1ユーザ情報を取得し、蓄積する。すなわち、ユーザ情報蓄積部141は、第1外部装置910から、第1データベースに含まれる第1ユーザ情報を取得し、第2外部装置920から、第2データベースに含まれる第2ユーザ情報を取得する。
また、インデックス情報蓄積部142は、第1外部装置910及び第2外部装置920から取得した情報に基づいて、インデックス情報を生成し、蓄積する。例えば、要求者のアクセス権限について、2つの種類(仮にA権限、B権限という)がある場合、それぞれの種類に応じた2つのインデックス情報が生成される。
このような情報処理装置100に対して、例えばA権限を有する要求者が使用する端末装置600とB権限を有する要求者が使用する端末装置600とのそれぞれから、検索要求情報の送信(単に検索要求ということがある)や、第1ユーザ情報に対応する第2要求情報へのアクセス要求情報の送信(単にアクセス要求ということがある)が行われる場合を想定する。
A権限を有する要求者が使用する端末装置600から検索要求が行われたとき、検索実行部143は、A権限用に生成されたインデックス情報を用いて、検索を行う。検索結果は端末装置600に送信され、当該端末装置600の要求者のアクセス権限に応じた検索結果が端末装置600において出力される。また、A権限を有する要求者が使用する端末装置600からアクセス要求が行われたとき、アクセス制御部144は、A権限に応じて、アクセス可能であれば、アクセス要求に基づいて、第1データベース又は第2データベースにアクセスし、例えば第2ユーザ情報を取得するなどの処理を行う。これにより、端末装置600において第2ユーザ情報の閲覧などを行うことができるようになる。
他方、B権限を有する要求者が使用する端末装置600から検索要求が行われたとき、検索実行部143は、B権限用に生成されたインデックス情報を用いて、検索を行う。これにより、当該端末装置600の要求者のアクセス権限に応じた検索結果が端末装置600において出力される。また、B権限を有する要求者が使用する端末装置600からアクセス要求が行われたとき、アクセス制御部144は、B権限に応じて、アクセス可能であれば、アクセス要求に基づいて、第2ユーザ情報を取得するなどの処理を行い、端末装置600において第2ユーザ情報の閲覧などを行うことができるようにする。
なお、情報処理装置100から第1外部装置910や第2外部装置920へのアクセスが行われたことを示すアクセス証跡は、情報処理装置100のアクセス記録蓄積部145により、第3データベースに記録される。アクセス証跡が改ざん困難な記録態様で記録されることにより、例えば、センシティブなユーザ情報などへのアクセス記録についても検証することが可能となる。
図7は、同情報処理装置100の動作の一例を示すフローチャートである。
情報処理装置100は、例えば以下のようにして種々の動作を行う。なお、このような動作は、例えば、情報処理装置100の電源がオフになった場合などに終了するようにすればよい。
(ステップS101)図7に示されるように、ユーザ情報蓄積部141は、2以上のデータベースのそれぞれから、当該データベースに記録されている第1ユーザ情報を取得し、ユーザ情報格納部111に蓄積する。
(ステップS102)処理部140は、インデックス情報生成タイミングが到来したか否かを判断する。インデックス情報生成タイミングが到来した場合にはステップS103に進み、そうでない場合にはステップS104に進む。
(ステップS103)インデックス情報蓄積部142は、インデックス情報生成蓄積処理を行う。これにより、各要求者識別子に対応するインデックス情報が、インデックス情報格納部112に格納されている状態となる。インデックス情報生成蓄積処理が終了すると、ステップS104に進む。
(ステップS104)処理部140は、表示要求情報受付部133が、受付画面表示要求情報を受け付けたか否かを判断する。受付画面表示要求情報を受け付けた場合にはステップS105に進み、そうでない場合にはステップS106に進む。
(ステップS105)受付画面情報出力部162は、表示要求情報受付部133により受け付けられた受付画面表示要求情報に基づいて、受付画面を表示するための受付画面情報を出力する。送信部170は、受付画面情報を、受付画面表示要求情報を入力した要求者の要求者識別子に基づいて、当該要求者の端末装置600に送信する。
(ステップS106)処理部140は、検索要求情報受付部132が、検索要求情報を受け付けたか否かを判断する。検索要求情報を受け付けた場合にはステップS107に進み、そうでない場合にはステップS108に進む。
(ステップS107)検索実行部143は、検索要求情報受付部132により受け付けられた検索要求情報に基づいて、検索処理を行う。これにより、検索結果が要求者の端末装置600に送信される。
(ステップS108)処理部140は、アクセス要求情報受付部131が、アクセス要求情報を受け付けたか否かを判断する。アクセス要求情報を受け付けた場合にはステップS109に進み、そうでない場合にはステップS102に戻る。
(ステップS109)アクセス制御部144は、アクセス要求情報受付部により受け付けられたアクセス要求情報に基づいて、アクセス処理を行う。アクセス処理が終了すると、ステップS102に戻る。
図8は、同情報処理装置100のインデックス情報生成蓄積処理の一例を示すフローチャートである。
インデックス情報蓄積部142は、例えば以下のように、要求者情報に含まれる各要求者識別子のそれぞれに対応付けて、インデックス情報をインデックス情報格納部112に蓄積する。
(ステップS121)インデックス情報蓄積部142は、カウンタiに1をセットする。
(ステップS122)インデックス情報蓄積部142は、要求者情報に含まれる要求者識別子のうちi番目の要求者識別子に対応する権限情報を権限情報格納部114から取得する。
(ステップS123)インデックス情報蓄積部142は、2以上のデータベースのそれぞれから取得したユーザ情報のうち、権限情報に対応する範囲のユーザ情報を取得する。そして、取得したユーザ情報を用いて、インデックス情報を生成する。
(ステップS124)インデックス情報蓄積部142は、生成したインデックス情報をi番目の要求者識別子に対応付けて、インデックス情報格納部112に蓄積する。
(ステップS125)インデックス情報蓄積部142は、カウンタiが要求者情報に含まれる要求者識別子の総数であるか否かを判断する。iが要求者識別子の総数である場合にはインデックス情報生成蓄積処理を終了して図7に示される処理に戻り、そうでない場合にはステップS126に進む。
(ステップS126)インデックス情報蓄積部142は、カウンタiを1インクリメントする。ステップS122に戻る。
なお、以上の処理に限られず、アクセス権限の付与パターン(一の要求者についてのアクセス権限の付与態様)ごとにインデックス情報を生成し、各要求者識別子とその要求者についてのアクセス権限の付与態様に対応するインデックス情報を対応付けて蓄積するようにしてもよい。
図9は、同情報処理装置100の検索処理の一例を示すフローチャートである。
(ステップS141)検索実行部143は、検索要求情報に対応する要求者識別子を取得する。要求者識別子は、例えば、検索要求情報受付部132により受け付けられた、検索要求情報を入力した要求者を特定する要求者識別子である。
(ステップS142)検索実行部143は、インデックス情報格納部112に格納されているインデックス情報のうち、要求者識別子に対応するインデックス情報を特定する。
(ステップS143)検索実行部143は、検索要求情報を用いてインデックス情報を検索する。これにより、検索実行部143は、検索結果を取得する。
(ステップS144)検索結果出力部161は、検索実行部143による検索結果を取得し、出力する。例えば、検索結果出力部161は、検索によりヒットしたユーザ情報と、ユーザ情報が取得された取得元のデータベースを視覚的に示すための識別情報とを対応付けて生成する。なお、検索結果出力部161は、各データベースから検索によりヒットしたユーザ情報に関する第2ユーザ情報を取得して、検索結果に含めてもよい。
(ステップS145)送信部170は、検索結果を、要求者識別子に対応する端末装置600に送信する。これにより、端末装置600において、検索結果がウェブページ等の形式で表示可能になる。図7に示される処理に戻る。
図10は、同情報処理装置100のアクセス処理の一例を示すフローチャートである。
(ステップS161)アクセス制御部144は、アクセス要求情報に対応する要求者識別子及びレコード識別子を取得する。
(ステップS162)アクセス制御部144は、要求者識別子に基づいて権限情報を取得する。
(ステップS163)アクセス制御部144は、権限情報に基づいて、アクセス要求情報を入力した要求者が、要求した通りのアクセスを行うためのアクセス権限を有するか否かを判断する。アクセス権限がある場合はステップS165に進み、そうでない場合はステップS164に進む。
(ステップS164)アクセス制御部144は、アクセスを行わず、アクセスが行われなかったことを示すエラー情報を生成する。送信部170は、エラー情報を、要求者識別子に対応する端末装置600に送信する。なお、エラー情報の生成や送信は行われなくてもよい。ステップS164の処理が終了すると、図7に示される処理に戻る。
(ステップS165)アクセス制御部144は、アクセス要求情報及びレコード識別子に基づいて、アクセスを行うためのクエリを作成する。
(ステップS166)アクセス制御部144は、クエリを用いてデータベースにアクセスする。
(ステップS167)アクセス制御部144は、アクセス結果を示す情報を取得する。例えば、第2ユーザ情報を取得するためのアクセスを行った場合、第2ユーザ情報を取得する。
(ステップS168)送信部170は、アクセス制御部144がアクセスを行った結果として取得した情報(例えば、第2ユーザ情報など)を、要求者識別子に対応する端末装置600に送信する。なお、出力部160によりアクセスを行った結果を示す情報が生成され、送信部170により生成された情報が出力されるようにしてもよい。例えば、出力部160が、取得された情報を端末装置600においてウェブページとして表示するための情報(例えば、HTML形式の文書であったり、情報処理装置100や端末装置600で機能するウェブページ生成システム(コンテンツ管理システムなど)に用いられる情報など)を生成するようにしてもよい。このようにして、端末装置600において、アクセスを行った結果がウェブページ等の形式で表示可能になる。図7に示される処理に戻る。
以下に、情報処理装置100を用いて要求者が利用可能となる機能の具体例について説明する。
以下の具体例では、情報処理装置100が、2つの異なる会社の顧客データベースを統合して、要求者に対して、顧客情報(ユーザ情報)の閲覧や検索等を可能にする顧客管理サービスを提供するために用いられるものであると想定する。本具体例において、第1外部装置910は、例えば、LPGの供給事業を営む瓦斯会社の装置である。第1データベースは、例えば、瓦斯会社の顧客情報データベースである。また、第2外部装置920は、例えば、上水道の供給事業を営む水道会社の装置である。第2データベースは、例えば、水道会社の顧客情報データベースである。それぞれの顧客情報データベースは、各会社のユーザについての情報が記録されているものである。
本具体例では、情報処理装置100を利用する2以上の要求者のそれぞれのアクセス権限に応じて、ユーザ情報を閲覧可能な範囲や検索等が異なる。例えば、以下のようにアクセス権限を設定することができる。すなわち、瓦斯会社に雇用されている要求者は、第1データベースに含まれるユーザ情報については比較的広いアクセス権限を有し、第2データベースに含まれるユーザ情報については比較的狭いアクセス権限を有する。他方、水道会社に雇用されている要求者は、第1データベースに含まれるユーザ情報については比較的狭いアクセス権限を有し、第2データベースに含まれるユーザ情報については比較的広いアクセス権限を有する。なお、アクセス権限の設定は適宜行うことができる。
なお、本具体例では、情報処理装置100を利用する要求者のそれぞれは、予め設定されたアカウントで情報処理装置100により実現する顧客管理サービスにログインすることにより、当該顧客管理サービスを利用することができるように構成されている。各アカウントは、要求者識別子に対応するものであるといえる。
図11は、同情報処理装置100の要求者情報格納部113に格納されている要求者情報の一具体例を示す図である。
図11に示されるように、本具体例において、要求者情報格納部113には、複数の要求者情報が含まれている。各要求者情報には、例えば、氏名、要求者ID、ログインに用いられるパスワード、使用する端末装置600(ログインに用いている端末装置600)の端末識別子(端末ID)の各属性について、属性値が記録されている。これらの属性値のいずれかが含まれなくてもよいし、これら以外の属性の属性値も含まれうる。例えば、要求者の所属組織を特定する識別子等が含まれていてもよい。本具体例において、例えば要求者IDが要求者識別子としても用いられるが、これに限られない。例えば、端末識別子が要求者識別子として用いられるように構成されていてもよく、この場合、要求者が自身のアカウントでログインしている端末が変更されるとその要求者を特定する要求者識別子が変更されるが、当該要求者のアカウントとログインに用いられている端末装置600の端末識別子とが常に対応付けられていればよい。
図12は、同情報処理装置100の権限情報格納部114に格納されている権限情報の一具体例を示す図である。
図12に示されるように、本具体例において、権限情報格納部114には、要求者IDごとの権限情報が含まれている。すなわち、各権限情報には、例えば、要求者識別子である要求者IDと、第1データベースに関するアクセス権限の内容と、第2データベースに関するアクセス権限の内容の各属性について、属性値が記録されている。これらの属性値のいずれかが含まれなくてもよいし、これら以外の属性の属性値も含まれうる。アクセス権限の属性値としては、例えば、第1ユーザ情報の検索のみが可能であるとか、ユーザ情報の各属性値について検索・取得・変更が可能であるとか、各属性値について削除も含めてアクセス可能であるとか、適宜設定されていればよい。また、アクセスを許可しない範囲が定められていてもよい。
以上説明したように、各情報処理システム900では、それぞれ、2以上のデータベースのそれぞれに格納されているユーザ情報について、アクセス要求情報を受け付けた場合に、情報処理装置100によるアクセスを行うことができる。したがって、分散して格納されている2以上のデータベースのユーザ情報を適切に扱うことができ、利便性が高くなる。アクセスは要求者のアクセス権限に応じて行われるため、アクセス権限が異なる2以上の要求者による要求を適切にとりさばくことができる。
次に、中継を行う機能を有する中継処理装置10について説明する。ここで中継処理装置10が行う中継とは、一のネットワークに接続された装置から送信された情報を、別のネットワークに装置に送信することをいう。
図1に示されるように、本実施の形態において、中継処理装置10は、第1プライベートネットワークを介して第1情報処理装置100に通信可能に接続されており、かつ、第2プライベートネットワークを介して第2情報処理装置100に通信可能に接続されている。なお、中継処理装置10は、プライベートネットワークを介さずに、各情報処理システム900の情報処理装置100に接続されていてもよい。
中継処理装置10は、例えば一般的なパーソナルコンピュータであり、出力装置であるディスプレイや、要求者の入力操作に用いられる入力装置(例えば、キーボードやポインティングデバイスなど)などを有しているが、これに限られるものではない。中継処理装置10は、ネットワークに接続可能であり、ネットワークに接続されている他の装置との間での通信を行えるように構成されている。
図13は、本実施の形態における中継処理装置10のブロック図である。
中継処理装置10は、中継装置格納部11と、中継装置受信部20と、中継装置受付部30と、中継装置処理部40と、中継装置出力部60と、中継装置送信部70とを備える。
中継装置格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。中継装置格納部11には、種々の情報やプログラム等が記憶されている。これらの情報等が記憶される過程は問わない。例えば、記録媒体を介して情報が中継装置格納部11で記憶されるようになってもよく、通信回線等を介して送信された情報が中継装置格納部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が中継装置格納部11で記憶されるようになってもよい。
本実施の形態において、中継装置格納部11には、条件情報が格納される。条件情報は、例えば、接続者が用いるリモート端末装置602を識別するリモート識別子と、予め設定された第1条件と、予め設定された第2条件とが対応付けられた組を、2以上含むものである。第1条件は、リモート端末装置602と第1情報処理装置100との中継を行う条件である。第2条件は、リモート端末装置602と第2情報処理装置100との中継を行う条件である。一のリモート識別子に対応する第1条件と第2条件とは、一方が満たされる場合において他方が満たされないように設定されていることが好ましい。これにより、ある状況下において接続者が用いるリモート端末装置602が第1情報処理システム901の端末装置600として機能するか第2情報処理システム902の端末装置600として機能するかが、確実に分けられる。
具体的には、例えば、第1条件は、第1条件に対応するリモート識別子に対応するリモート端末装置602が第1情報処理システム901に接続を許可される時間に関する条件を含むものである。また、第2条件は、同リモート端末装置602が、第2情報処理システム902に接続を許可される時間に関する条件を含むものである。ここで、接続を許可される時間とは、所定の開始時刻から終了時刻までの期間や、各日における時間帯、曜日、日、又は月毎などで規定される期間などをいう。なお、第1条件及び前記第2条件の少なくとも一方のみが、上述のような時間に関する条件を含むようにしてもよい。
なお、例えば、第1条件は、第1条件に対応するリモート識別子に対応するリモート端末装置602の状態を示す情報に関する条件を含んでいてもよい。また、第2条件も、同リモート端末装置602の状態を示す情報に関する条件を含んでいてもよい。ここで状態を示す情報とは、例えば、リモート端末装置602の性質を示す情報や、リモート端末装置602のネットワークへの接続環境を示す情報や、リモート端末装置602がある周囲の環境を示す情報などとすることができる。性質を示す情報は、例えば、リモート端末装置602に備えられていたり接続されていたりするハードウェアや、リモート端末装置602で実行されているソフトウェアの、種類や識別番号等である。性質を示す情報には、リモート端末装置602に備えられていたり接続されていたりする認証用セキュリティキーに格納されている情報が含まれてもよい。ネットワークへの接続環境を示す情報は、例えば、リモート端末装置602のIPアドレスや、接続している無線LANネットワークの識別子(例えば、サービスセットIDなど)などである。周囲の環境を示す情報は、例えば、リモート端末装置602の位置を示す情報などである。位置を示す情報は、例えば、公知の方法によりリモート端末装置602で取得可能となっていればよい。
ここで、リモート識別子とは、接続者が用いるリモート端末装置602を識別可能なものである。本実施の形態においては、例えば、リモート端末装置602毎に予め設定された一意の端末名等をリモート識別子として用いることができる。なお、リモート識別子は、これに限られない。例えば、接続者毎に予め設定された接続者名等をリモート識別子として用いるようにしてもよい。この場合、例えば、接続者によるリモート端末装置602の使用時において、リモート端末装置602に接続者が入力した接続者名等を、リモート識別子として用いることができるようにすればよい。また、リモート識別子は、必ずしも一の装置を他の装置と識別可能なものではなくてもよい。すなわち、中継処理装置10において中継が行われる条件が同種である装置群毎に一のリモート識別子が対応するように設定されるものであってもよい。
中継装置受信部20は、情報処理装置100や、その他の装置から送信された情報を、ネットワークを介して受信する。中継装置受信部20は、受信した情報を、例えば中継装置格納部11に蓄積し、中継装置処理部40などが取得できるようにする。
中継装置受付部30は、中継装置受信部20が受信した情報を受け付ける。受け付けられた情報は、例えば、中継装置格納部11に蓄積される。
本実施の形態において、中継装置受付部30は、リモート受付部31を備える。リモート受付部31は、中継対象となるリモート端末装置602を識別するリモート識別子を受け付ける。例えば、リモート端末装置602から情報処理システム100との通信を行うための中継を要求するための情報(例えば、中継先となる情報処理システム100を識別する識別子等を含むコマンド等)が送信されると、中継装置受信部20がそれを受信する。そうすると、リモート受付部31は、当該中継を要求するための情報と共に、要求を行ったリモート端末装置602を識別するリモート識別子を受け付ける。
中継装置処理部40は、セッション制御部43、第1中継部45、第2中継部46、及びセッション情報蓄積部49を備える。中継装置処理部40は、中継処理装置10の各部を用いて、種々の情報処理動作を行う。
セッション制御部43は、リモート受付部31が受け付けたリモート識別子に対応する第1条件と第2条件とのそれぞれについて、条件が満たされるか否かを判断する。そして、その判断結果に基づいて、当該リモート識別子に対応するリモート端末装置602と情報処理システム900との通信を中継するためのセッションに関する制御を行う。より具体的には、本実施の形態において、セッション制御部43は、リモート受付部31が受け付けたリモート識別子に対応する第1条件が満たされる場合には、当該リモート識別子に対応するリモート端末装置602と第1情報処理装置100との間の通信を中継するための第1暗号化セッションを開始する。また、セッション制御部43は、リモート受付部31が受け付けたリモート識別子に対応する第2条件が満たされる場合には、当該リモート識別子に対応するリモート端末装置602と第2情報処理装置100との間の通信を中継するための第2暗号化セッションを開始する。
ここで、本実施の形態において、第1暗号化セッションや第2暗号化セッションは、例えば、E2EE(エンドツーエンド暗号化)などの公知の技術を用いて、リモート端末装置602と、中継処理装置10との間で確立される。リモート端末装置602と中継処理装置10との間で確立されたトンネルを介して、暗号化された情報の送受信が行われることにより、インターネットを介して、セキュアな通信が可能となる。
第1中継部45は、第1暗号化セッションが確立されている場合に、リモート端末装置602と第1情報処理システム901との通信を中継する。すなわち、第1中継部45は、第1暗号化セッションにおいて、リモート端末装置602と第1情報処理装置100との間の通信を中継する。具体的には、例えば、第1中継部45は、リモート端末装置602から第1情報処理装置100への情報が送信されて中継装置受信部20がそれを受信すると、リモート端末装置602を代理してその情報を第1情報処理装置100に送信する。また、第1中継部45は、第1情報処理装置100からリモート端末装置602への情報が送信されて中継装置受信部20がそれを受信すると、第1情報処理装置100を代理してその情報をリモート端末装置602に送信する。送信は、中継装置送信部70を用いて行われればよい。
第2中継部46は、第2暗号化セッションが確立されている場合に、リモート端末装置602と第2情報処理システム902との通信を中継する。すなわち、第2中継部46は、第2暗号化セッションにおいて、リモート端末装置602と第2情報処理装置100との間の通信を中継する。具体的には、例えば、第2中継部46は、リモート端末装置602から第2情報処理装置100への情報が送信されて中継装置受信部20がそれを受信すると、リモート端末装置602を代理してその情報を第2情報処理装置100に送信する。また、第2中継部46は、第2情報処理装置100からリモート端末装置602への情報が送信されて中継装置受信部20がそれを受信すると、第2情報処理装置100を代理してその情報をリモート端末装置602に送信する。送信は、中継装置送信部70を用いて行われればよい。
セッション情報蓄積部49は、セッション制御部43により第1暗号化セッション又は第2暗号化セッションが開始された場合に、開始された第1暗号化セッション又は第2暗号化セッションに関するセッション情報をデータベースに蓄積する。本実施の形態において、セッション情報蓄積部49は、第4外部装置940に格納されている分散型台帳データベースに、セッション情報を記録する。分散型台帳データベースは、例えば、いわゆるブロックチェーン技術やその他のハッシュ化された情報を用いたタイムスタンプ技術などを用いた分散型台帳技術を用いて管理されるものであることが望ましい。セッション情報は、例えば、リモート端末装置602のリモート識別子や、中継先となる情報処理システム900を識別する識別子などを含むことが望ましい。このようなセッション情報が、改ざんが困難な分散型台帳データベースに記録されるようにすることにより、通信システム1の利用履歴を確実に管理することができる。そのため、通信システム1を利用した不正アクセス等の不正の企図に対して強い抑止力を作用させることができる。
中継装置出力部60は、例えばディスプレイデバイスに表示することなどにより、情報の出力を行う。なお、情報の出力方法はこれに限られず、音声等をスピーカーなどから出力することなどにより行われるようにしてもよい。
中継装置送信部70は、例えば中継装置処理部40等により取得した情報をネットワークを介して送信する。
なお、上述の中継装置処理部40や、処理部140や、端末処理部640は、通常、MPUやメモリ等から実現されうる。中継装置処理部40や、処理部140や、端末処理部640の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現してもよい。
また、中継装置受付部30や、受付部130や、端末受付部630により受付可能な情報の入力に用いられうる入力手段は、テンキーやキーボードやマウスやメニュー画面によるものなど、何でもよい。中継装置受付部30や、受付部130や、端末受付部630は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現されうる。
また、第1外部装置受信部917、第2外部装置受信部927、第3外部装置受信部937、中継装置受信部20、受信部120、端末受信部620は、通常、無線又は有線の通信手段で実現されるが、放送を受信する手段で実現されてもよい。
また、第1外部装置送信部916、第2外部装置送信部926、第3外部装置送信部936、中継装置送信部70、送信部170、端末送信部670は、通常、無線又は有線の通信手段で実現されるが、放送手段で実現されてもよい。
また、中継装置出力部60や、出力部160や、端末出力部660は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えてもよい。中継装置出力部60や、出力部160や、端末出力部660は、出力デバイスのドライバーソフト又は、出力デバイスのドライバーソフトと出力デバイス等で実現されうる。
なお、中継処理装置10、情報処理装置100、第1外部装置910、第2外部装置920、第3外部装置930、及び第4外部装置940は、それぞれ、1つのサーバにより構成されていてもよいし、互いに連携して動作する複数のサーバにより構成されていてもよいし、その他の機器に内蔵された電子計算機等であってもよい。なお、サーバは、いわゆるクラウドサーバでも、ASPサーバ等でも良く、その種類は問わないことは言うまでもない。
図14は、同中継処理装置10において用いられる条件情報の一例を示す図である。
図14に示されるように、条件情報は、例えば、第1条件に関する設定情報である属性値及び第2条件に関する設定情報である属性値が、リモート識別子に対応付けて記録されているものである。図においては、例えば、4つのリモート識別子について、それぞれ、接続を許可される時間帯を示す設定情報が記録されている。すなわち、例えば、「XXXXX11」について、第1条件は8時50分から17時40分までの時間であることであり、第2条件は12時50分から17時40分までの時間であることである。また、例えば、「XXXXX22」について、第1条件は8時50分から17時40分までの時間であることであり、第2条件はいずれの時間でも設定されていない(いずれの時間も第2条件を満たさない)。また、例えば、「XXXXX33」について、第1条件は月曜日、火曜日、又は水曜日であることであり、第2条件は木曜日又は金曜日であることである。また、例えば、「XXXXX77」について、第1条件はいずれの時間も設定されておらず、第2条件は0時0分から24時00分までの時間であることである(すなわち、常時接続可能である)。このような条件情報により、第1条件を満たすか第2条件を満たすかが判断可能となる。
図15は、同中継処理装置10において用いられる条件情報の他の一例を示す図である。
図15においては、例えば、4つのリモート識別子について、それぞれ、リモート端末装置602がある場所等に関する値が記録されている。例えば、「XXXXX11」について、第1条件は第1拠点(所定の方法で位置を示す座標系で、34.68XX,135.51XXXで示される場所)にあることであり、第2条件は第2拠点(所定の方法で位置を示す座標系で、34.73XX,135.41XXXで示される場所)であることである。この場合、例えば、第1拠点にリモート端末装置602があると判断されるときには、第1情報処理システム901に接続可能になり、第2拠点にリモート端末装置602があると判断されるときには、第2情報処理システム902に接続可能になる。すなわち、例えば、第1拠点として第1情報処理システム901を使用するための施設として予め認められた場所などを設定し、第2拠点として第2情報処理システム902を使用するための施設として予め認められた場所などを設定することができる。また、例えば、「XXXXX22」について、第1条件はグローバルIPアドレスが所定の範囲の中にあることであり、第2条件はいずれの時間でも設定されていない。例えば、第1情報処理システム901を使用するためのインターネット接続環境として予め認められたものに応じたIPアドレスなどを設定することができる。また、例えば、「XXXXX33」については第1条件として第1拠点にあることが設定されており、また、「XXXXX77」については、第2条件として第2拠点にあることが設定されている。このような条件情報により、第1条件を満たすか第2条件を満たすかが判断可能となる。例えば予め認められた状況にリモート端末装置602がある場合にのみ各情報処理システム900に接続可能にすることができ、情報処理システム900がセキュアである状態を維持することができる。
次に、通信システム1の動作の一例について説明する。
図16は、同中継処理装置10の動作の一例を示すフローチャートである。
(ステップS501)図16に示されるように、リモート受付部31は、リモート端末装置602から送信された、情報処理システム900への接続要求を受け付ける。
(ステップS502)セッション制御部43は、リモート受付部31により受け付けられたリモート識別子に対応する第1条件及び第2条件を、中継装置格納部11から取得する。
(ステップS503)セッション制御部43は、第1条件が満たされるか否かを判断する。第1条件が満たされると判断した場合はステップS504に進み、そうでない場合はステップS505に進む。
(ステップS504)セッション制御部43は、リモート識別子に対応するリモート端末装置602と第1中継部45との第1暗号化セッションを開始する。これにより、第1中継部45による、リモート端末装置602と第1情報処理システム901の他の装置との通信の中継動作が実行可能となる。その後、ステップS507に進む。
(ステップS505)他方、セッション制御部43は、第2条件が満たされるか否かを判断する。第2条件が満たされると判断した場合はステップS506に進み、そうでない場合はステップS508に進む。
(ステップS506)セッション制御部43は、リモート識別子に対応するリモート端末装置602と第2中継部46との第2暗号化セッションを開始する。これにより、第2中継部46による、リモート端末装置602と第2情報処理システム902の他の装置との通信の中継動作が実行可能となる。その後、ステップS507に進む。
(ステップS507)セッション情報蓄積部49は、セッション制御部43により開始された第1暗号化セッション又は第2暗号化セッションに関するセッション情報を、第4外部装置940の分散型台帳データベースに蓄積する。
(ステップS508)セッション制御部43は、接続が不可である旨などを、リモート識別子に対応するリモート端末装置602に送信する。
ステップS507の処理又はステップS508の処理が終了すると、一連の処理が終了する。
図17は、同通信システム1の動作の一例を示す第1のシーケンス図である。図18は、同通信システム1の動作の一例を示す第2のシーケンス図である。
本実施の形態において、通信システム1において暗号化セッションが開始されて行われる通信の具体例は、例えば以下のようである。以下の具体例において、リモート端末装置602では、所定のアプリケーション(例えばウェブブラウザ)を用いて、通信システム1に情報を送信したり、取得した情報を表示したりすることができる。なお、図18は、図17の続きである。
図に示されるように、まず、リモート端末装置602からセッション制御部43に、ログイン要求が送られる(S11)。そうすると、セッション制御部43は、アクセスがあった旨をセッション情報蓄積部45に送る。セッション情報蓄積部45は、データベースにアクセスがあった旨を記録する(S12)。また、セッション制御部43は、リモート端末装置602に、ログインを行うためのログインページを表示するための情報を送信する(S13)。リモート端末装置602は、ログインページに、例えば通信システム1を用いるためのアカウント等の情報を入力してセッション制御部43に送信する(S14)。セッション制御部43は、リモート端末装置602から受信した情報を用いて、ログイン処理を行う(S15)。ログイン処理が完了すると、セッション制御部43からセッション情報蓄積部45にログインを行った接続者の情報(ユーザ情報)が送られ、当該ユーザ情報を、セッション情報蓄積部45がデータベースに記録する(S16)。また、セッション制御部43は、リモート端末装置602に、ログインが成功した旨の情報を送信する(S17)。
なお、ログイン処理は、種々の方法で行うことができる。例えば、セッション制御部43を、リレーサーバとしての機能を持つモジュールと、いわゆるSAML認証を行うためのIDプロバイダとしての機能を持つモジュールとで構成し、後者のモジュールでリモート端末装置602と通信を行うことによりリモート端末装置602を用いる接続者を認証して当該接続者をログイン可能にするようにしてもよい。なお、通信システム1に含まれる別の装置がSAML認証を行うためのIDプロバイダとして機能するように構成されていてもよい。
次に、リモート端末装置602が、セッション制御部43に、接続要求を送信する(S20)。そうすると、セッション制御部43において、第1条件が満たされるか否か又は第2条件を満たされるか否かが判定される。そして、セッション制御部43は、中継先に対応する第1中継部45又は第2中継部46に、接続要求を送信する(S22)なお、この場合において、リモート端末装置602からセッション制御部43には、例えば、接続先を示す接続ID(peer node id)、サービスID、端末セッションIDなどの情報が送信される。また、セッション制御部43から中継部45,46には、例えば、接続ID、サービスID、制御部セッションIDなどの情報が送信される。ここでは、第1中継部45に接続要求が送信されたものとして、以下説明を続ける。第1中継部45は、第1情報処理装置100に、TCPによる接続の要求を行う(S23)。これを受けて、第1情報処理装置100は、第1中継部45に、返答を行う(S24)。そうすると、第1中継部45は、セッション制御部43に返答を行い(S25)、セッション制御部43は、リモート端末装置602に返答を行う(S26)。なお、第1中継部45は、セッション制御部43に対して、例えば、中継部セッションIDと、先に受信した制御部セッションIDとを含む情報を送信する。また、セッション制御部43は、リモート端末装置602に対して、例えば、受信した制御部セッションIDと、先に受信した端末セッションIDとを含む情報を送信する。これにより、リモート端末装置602と第1中継部45との間の通信を行うためのセッションが開始されることとなる。そうすると、セッションに関するセッション情報が、セッション情報蓄積部49に送られ、セッション情報蓄積部45がデータベースに記録する(S27)。
セッションが開始されると、リモート端末装置602と第1中継部45との間で、暗号化通信を行うためのハンドシェイクが行われる(S28)。これにより、リモート端末装置602と第1中継部45との間で、暗号化セッションが開始されるということができる。ここでは、例えば、TLS通信を行うためのハンドシェイクが行われる。例えば、いわゆるスリーウェイハンドシェイクが行われた後、TLS通信を行うためのハンドシェイク(TLS Client Hello、TLS Server Hello)が行われる。なお、ハンドシェイクを行うプロトコルはこれに限られない。
その後、リモート端末装置602は、第1中継部45に情報を送信することにより、第1情報処理装置100に情報を送信することができる。すなわち、例えば、リモート端末装置602は、第1中継部45に、HTTPSで接続を行うことを要求する(S41)。要求は、暗号化セッションにおいて仮のTLS通信を行うことにより、送信される。これを受けて、第1中継部45は、第1情報処理装置100にHTTP接続要求を行う(S42)。第1情報処理装置100は、第1中継部45に返答を送信する(S43)。そうすると、第1中継部45は、リモート端末装置602に、返答を送信する(S44)。
次に、例えば、リモート端末装置602は、第1中継部45に、HTTPリクエストを送信する(S45)。この場合、HTTPリクエストは、暗号化セッションにおいて仮のTLS通信を行うことにより、送信される。これを受けて、第1中継部45は、第1情報処理装置100にHTTPリクエストを送信する(S46)。すなわち、第1中継部45は、リモート端末装置602を代理して、第1情報処理装置100にHTTPリクエストを送信する。
第1情報処理装置100は、HTTPリクエストに対して、第1中継部45にHTTPレスポンスを送信する(S47)。そうすると、第1中継部45は、リモート端末装置602に、HTTPレスポンスを送信する(S48)。この場合、第1中継部45からリモート端末装置602に対して、HTTPレスポンスは、暗号化セッションにおいて仮のTLS通信を行うことにより送信される。すなわち、第1中継部45は、第1情報処理装置100を代理して、リモート端末装置602にHTTPレスポンスを送信する。
なお、第1情報処理装置100と第1中継部45との間で直接にリクエスト等の送受信が行われるのではなく、例えば第1情報処理システム901のいずれかの装置で機能するプロキシサーバ(Sqiid等を用いて構成することができる)を介して、第1中継部45とのリクエスト等の送受信が行われるようにしてもよい。
以上説明したように、本実施の形態によれば、中継装置処理部40は、リモート端末装置602が、中継先の情報処理システム900においてローカル端末装置601と同様に機能することができるようにするためのトンネリングを行う。また、リモート端末装置602と中継処理装置10との間では、暗号化された情報の送受信が行われることにより、インターネットを介して、セキュアに、リモート端末装置602を各情報処理システム900に参加させることができる。
遠隔地にあるリモート端末装置602から、ローカル端末装置601と同様に各情報処理システム900に安全に参加することができ、かつ、各情報処理システム900においては、2以上のデータベースのそれぞれに格納されているユーザ情報について、リモート端末装置602からアクセス要求情報を受け付けた場合に、情報処理装置100によるアクセスを行うことができる。アクセスは要求者のアクセス権限に応じて行われるため、アクセス権限が異なる2以上の要求者による要求を適切にとりさばくことができる。すなわち、リモート端末装置602から、セキュアに、分散して格納されている2以上のデータベースのユーザ情報を適切に扱うことができ、利便性が高くなる。
遠隔地にあるリモート端末装置602から、条件情報に応じて、適切な情報処理システム900に接続が行われるようにすることができる。そのため、1つのリモート端末装置602又はその接続者が、第1情報処理システム901に参加する就業形態と第2情報処理システム902に参加する就業形態とを切り替えて業務に従事するような場合においても、各情報処理システム900に対して、セキュアな状態を維持したままで、容易に接続することができる。条件情報の設定に応じて、時間によって従事する情報処理システム900を切り替えたり、リモート端末装置602を使用する状況に応じて情報処理システム900を切り替えたりすることができ、通信システム1の利便性が高くなる。
なお、上述においては一のリモート端末装置602から接続が行われる場合について説明したが、リモート端末装置602が第1情報処理システム901や第2情報処理システム902で用いられているものとは異なる第3プライベートネットワークに接続されているような場合においても、同様に中継処理装置10が機能するようにしてもよい。このような場合において、第3プライベートネットワークに属する各装置についての条件情報を一様に設定することにより、これらの装置がいずれの情報処理システムに接続可能とするかを統一的に制御することができる。このようなことは、例えば、互いにプライベートネットワークに接続された複数のリモート端末装置602を擁する組織等に適用することができる。例えば、複数のリモート端末装置602及びそのオペレータを擁する一の組織が、時間帯等に応じて接続する情報処理システム900を切り替えて、当該情報処理システム900を用いた業務を安全に遂行することができる。また、一の情報処理システム900において、当該情報処理システム900に接続させる組織を時間帯等に応じて切り替えさせて、当該情報処理システム900を利用した業務を安全に遂行させる(業務遂行を委託する)ことができる。なお、この場合、第3プライベートネットワークに接続されている各装置について同一のリモート識別子が対応するように構成されていてもよい。
なお、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布してもよい。なお、本実施の形態における、中継処理装置10を実現するソフトウェアは、以下のようなプログラムである。つまり、中継処理装置10のプログラムは、中継処理装置10のコンピュータを、中継対象となるリモート端末装置602を識別するリモート識別子を受け付けるリモート受付部31と、リモート受付部31が受け付けたリモート識別子に対応する第1条件が満たされる場合にリモート端末装置602と第1情報処理装置100との間の通信を中継するための第1暗号化セッションを開始すると共に、リモート受付部31が受け付けたリモート識別子に対応する第2条件が満たされる場合にリモート端末装置602と第2情報処理装置100との間の通信を中継するための第2暗号化セッションを開始するセッション制御部43と、第1暗号化セッションにおいてリモート端末装置602と第1情報処理装置100との間の通信を中継する第1中継部45と、第2暗号化セッションにおいてリモート端末装置602と第2情報処理装置100との間の通信を中継する第2中継部46として機能させる、プログラムである。
なお、例えば、リモート端末装置602から接続する情報処理システム900を指定した接続要求が行われる場合には、通信システム1が以下のように動作するようにしてもよい。
図19は、同中継処理装置10の動作の一変形例を示すフローチャートである。
(ステップS511)図19に示されるように、リモート受付部31は、リモート端末装置602から送信された、指定された情報処理システム900への接続要求を受け付ける。指定された情報処理システム900への接続要求は、例えば、指定された情報処理システム900を識別するシステム識別子を含むものであるが、これに限られない。
(ステップS512)セッション制御部43は、リモート受付部31により受け付けられたリモート識別子に対応する第1条件及び第2条件のうち、受け付けられたシステム識別子に対応するものを中継装置格納部11から取得する。すなわち、第1情報処理システム901への接続要求が行われた場合には第1条件が取得され、第2情報処理システム902への接続要求が行われた場合には第2条件が取得される。
(ステップS513)セッション制御部43は、取得された条件が満たされるか否かを判断する。条件が満たされると判断した場合はステップS514に進み、そうでない場合はステップS516に進む。
(ステップS514)セッション制御部43は、リモート識別子に対応するリモート端末装置602と、システム識別子に対応する中継部45,46との暗号化セッションを開始する。これにより、中継部45,46による、リモート端末装置602と、指定された情報処理システム900の装置との通信の中継動作が実行可能となる。
(ステップS515)セッション情報蓄積部49は、セッション制御部43により開始された第1暗号化セッション又は第2暗号化セッションに関するセッション情報を、第4外部装置940の分散型台帳データベースに蓄積する。
(ステップS516)セッション制御部43は、接続が不可である旨などを、リモート識別子に対応するリモート端末装置602に送信する。
ステップS515の処理又はステップS516の処理が終了すると、一連の処理が終了する。
以上のように中継処理装置10が動作する場合においても、上述の実施の形態と同様の効果が得られる。
(その他)
図20は、上記実施の形態におけるコンピュータシステム800の概観図である。図21は、同コンピュータシステム800のブロック図である。
これらの図においては、本明細書で述べたプログラムを実行して、上述した実施の形態の通信システム等を実現するコンピュータの構成が示されている。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現されうる。
コンピュータシステム800は、CD-ROMドライブを含むコンピュータ801と、キーボード802と、マウス803と、モニタ804とを含む。
コンピュータ801は、CD-ROMドライブ8012に加えて、MPU8013と、CD-ROMドライブ8012等に接続されたバス8014と、ブートアッププログラム等のプログラムを記憶するためのROM8015と、MPU8013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM8016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク8017とを含む。ここでは、図示しないが、コンピュータ801は、さらに、LANへの接続を提供するネットワークカードを含んでもよい。
コンピュータシステム800に、上述した実施の形態の情報処理装置等の機能を実行させるプログラムは、CD-ROM8101に記憶されて、CD-ROMドライブ8012に挿入され、さらにハードディスク8017に転送されてもよい。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ801に送信され、ハードディスク8017に記憶されてもよい。プログラムは実行の際にRAM8016にロードされる。プログラムは、CD-ROM8101またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ801に、上述した実施の形態の情報処理装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等を、必ずしも含まなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいればよい。コンピュータシステム800がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記実施の形態において、一の装置に存在する2以上の構成要素は、物理的に一の媒体で実現されてもよい。
また、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい(この場合、分散処理を行う複数の装置により構成されるシステム全体を1つの「装置」として把握することが可能である)。
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、又は、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、又は長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、又は、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、又は、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、又は、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものである。
上述の実施の形態のうち、一部の構成要素や機能が省略されていてもよい。上述の実施の形態においては、通信システムにおいて2つの情報処理システムが設けられている例が示されているが、さらに多くの情報処理システムが、中継処理装置を介してリモート端末装置から接続可能となるようにして設けられていてもよい。また、通信システムに含まれる2以上の情報処理システムのうち少なくとも1つが、上述の実施の形態において示されるような構成とは異なっていてもよい。例えば、少なくとも1つの情報処理システムが、サーバに格納されているデータベースの検索や操作を端末装置から行うことにより実現されるようなサーバクライアントシステム等であってもよい。