以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示す図である。中継装置1は、第1のネットワーク2と第2のネットワーク3との間の通信を中継する。第1のネットワーク2には、ユーザが情報の閲覧に使用する情報閲覧装置4が接続されている。また第1のネットワーク2には、第1のネットワーク2内でのみ公開可能な情報を提供する情報提供装置5が接続されている。第2のネットワーク3には、各種ネットワーク経由で情報を収集し、収集した情報を配信する情報収集装置6が接続されている。
情報閲覧装置4は、ユーザからの操作入力に応答して、情報収集装置6宛の情報提供装置5が有する提供情報8aの場所を示す第1のアドレスの登録要求7aを出力する。また、情報閲覧装置4は、情報収集装置6から出力された提供情報8dを受け取り、その内容を表示する。
情報提供装置5は、情報提供装置5自身が有する提供情報8aの場所を示す第1のアドレスを指定した情報の取得要求7dに応じて、提供情報8aを送信する。
情報収集装置6は、第2のアドレスの登録要求7bを受信すると、第2のアドレスを記憶する。そして、情報収集装置6は、記憶した第2のアドレスを指定した情報の取得要求7cを、所定間隔で送信する。また情報収集装置6は、情報の取得要求7cに応じてダミーデータ8bを受信すると、そのダミーデータ8bを記憶する。さらに情報収集装置6は、ダミーデータ8cを情報閲覧装置4宛に送信する。
中継装置1は、アドレス変換手段1a、アドレス記憶手段1b、情報取得手段1c、第1の情報変換手段1d、情報記憶手段1e、および第2の情報変換手段1fを有している。
アドレス変換手段1aは、情報閲覧装置4から情報収集装置6宛の情報提供装置5が有する提供情報の場所を示す第1のアドレスの登録要求7aを受信すると、第1のアドレスを中継装置1内の場所を示す第2のアドレスに変換する。またアドレス変換手段1aは、第2のアドレスの登録要求7bを情報収集装置に送信する。さらにアドレス変換手段1aは、第1のアドレスと第2のアドレスとを対応付けてアドレス記憶手段1bに格納する。
アドレス記憶手段1bは、アドレス変換手段1aによる変換前のアドレスと変換後のアドレスとを組にして記憶する記憶機能である。
情報取得手段1cは、情報収集装置6から情報提供装置5が有する提供情報の取得要求7cを受信すると、情報提供装置5から提供情報8aを取得する。例えば情報取得手段1cは、情報収集装置6から第2のアドレスを指定した情報の取得要求7cを受信すると、アドレス記憶手段1bを参照して第2のアドレスに対応する第1のアドレスを取得する。そして情報取得手段1cは、第1のアドレスを指定した情報の取得要求7dを情報提供装置5に送信し、第1のアドレスで示された場所にある提供情報8aを情報提供装置5から取得する。
第1の情報変換手段1dは、情報取得手段1cが取得した提供情報8aをダミーデータ8bに変換して情報収集装置6に送信する。このダミーデータ8bは、元の提供情報8aの内容に依存しないユニークなデータである。さらに第1の情報変換手段1dは、提供情報8aとダミーデータ8bとを関連付けて情報記憶手段1eに格納する。
情報記憶手段1eは、第1の情報変換手段1dによる変換前の提供情報と変換後のダミーデータとの組を記憶する記憶機能である。
第2の情報変換手段1fは、情報閲覧装置4宛に、情報収集装置6からダミーデータ8cが送信されると、情報記憶手段1eからダミーデータ8cに対応する提供情報8dを取得し、ダミーデータ8cを提供情報8dに変換して情報閲覧装置4に送信する。
このようなシステムによれば、ユーザが情報提供装置5の提供情報の情報収集装置6による定期的な収集および配信を希望する場合、ユーザは情報閲覧装置4を用いて情報提供装置5にアクセスし、第1のアドレスを取得する。そして、ユーザが情報閲覧装置4に対して操作入力を行うと、情報閲覧装置4から第1のアドレスの登録要求7aが情報収集装置6宛に送信される。
登録要求7aは、中継装置1で中継される。そして、中継装置1のアドレス変換手段1aにより、第1のアドレスが第2のアドレスに変換された登録要求7bが情報収集装置6に送信される。この際、第1のアドレスと第2のアドレスとが対応付けてアドレス記憶手段1bに格納される。第2のアドレスは、情報収集装置6で保持される。そして情報収集装置6から、第2のアドレスを指定した情報の取得要求7cが定期的に出力される。第2のアドレスは中継装置1内のアドレスを示しているため、第2のアドレスを指定した情報の取得要求7cは中継装置1宛に送信される。
中継装置1では情報取得手段1cによりアドレス記憶手段1bが参照され、取得要求7cの第2のアドレスが第1のアドレスに変換される。そして、第1のアドレスを指定した情報の取得要求7dが情報提供装置5に送信される。情報提供装置5では、取得要求7dに応じて提供情報8aが送信される。提供情報8aは中継装置1の情報取得手段1cで取得された第1の情報変換手段1dに渡される。
第1の情報変換手段1dではダミーデータ8bが生成され、提供情報8aに代えてダミーデータ8bが情報収集装置6に送信される。なおダミーデータ8bとしては、乱数列などのユニークなデータが生成される。ダミーデータ8bは情報収集装置6で保持される。
情報収集装置6は、例えば情報閲覧装置4からの閲覧要求に応答して、ダミーデータ8cを情報閲覧装置4宛に送信する。送信されたダミーデータ8cは、中継装置1で中継される。中継装置1では、第2の情報変換手段1fにより情報記憶手段1eが参照され、ダミーデータ8cが元の提供情報8dに復元される。そして、復元された提供情報8dが情報閲覧装置4に送信される。情報閲覧装置4において提供情報8dが表示されることで、ユーザは提供情報8dを閲覧可能となる。
このように、第1のネットワーク2上の情報提供装置5が保持する情報を、第2のネットワーク3に秘匿にしたまま、第2のネットワーク3上の情報収集装置6の情報収集および配信サービスを、第1のネットワーク2の情報閲覧装置4で利用することができる。情報収集装置6は、第2のネットワーク3上にあるため、図示していない第2のネットワーク上の各種装置からも配信情報を収集できる。すなわち、ユーザは、第1のネットワーク2で提供される情報と第2のネットワーク3で提供される情報とを、1つの情報収集装置6に集約した上で閲覧することが可能となり、情報閲覧の利便性が向上する。しかも第1のネットワーク2で提供される情報は第2のネットワーク3へは出力されないため、第1のネットワーク2で提供される情報の秘匿性は維持される。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、RSSリーダを搭載したサーバで、RSS文書に含まれるコンテンツの収集と配信を行うものである。
図2は、第2の実施の形態に係るシステム構成例を示す図である。内部ネットワーク21と外部ネットワーク22とは、中継装置100を介して接続されている。内部ネットワーク21は、特定のユーザ30のみが利用可能であり、情報の外部への漏洩を防止すべきネットワークである。例えば企業の社内ネットワークが内部ネットワークに相当する。外部ネットワーク22は、不特定多数のユーザ30が利用可能なネットワークである。例えばインターネットなどの広域ネットワークが外部ネットワークに相当する。
内部ネットワーク21には、内部クライアント31と内部サーバ32,33とが接続されている。内部クライアント31は、情報を閲覧するユーザ30が使用するコンピュータである。例えば内部クライアント31には、WWW(World Wide Web)による情報閲覧を行うためのブラウザが搭載されている。ユーザ30は、内部クライアント31を操作して、内部サーバ32,33が配布するRSS文書の収集依頼と、外部サーバ41で収集したRSS文書に含まれるコンテンツの閲覧をすることができる。
内部サーバ32,33は、各種コンテンツを配信するコンピュータである。内部サーバ32,33が有するストレージ装置には、多数のコンテンツとRSS文書とが格納されている。内部サーバ32,33は、ストレージ装置に格納されたコンテンツやRSS文書を、要求に応じて配信する。
外部ネットワーク22には、外部サーバ41,42、外部クライアント43が接続されている。外部サーバ41は、RSSリーダの機能を搭載したコンピュータである。外部サーバ42は、各種コンテンツを配信するコンピュータである。外部サーバ42が有するストレージ装置には、多数のコンテンツとRSS文書とが格納されている。外部サーバ42は、ストレージ装置に格納されたコンテンツやRSS文書を、要求に応じて配信する。
外部クライアント43は、ユーザ30が使用するコンピュータである。例えば外部クライアント43には、WWWによる情報閲覧を行うためのブラウザが搭載されている。ユーザ30は、外部クライアント43を操作し、外部サーバ42によって配布されるRSS文書のURLを、外部サーバ41に搭載されているRSSリーダに登録することができる。
中継装置100は、内部ネットワーク21と外部ネットワーク22とで交換される情報を中継する。また、中継装置100は、内部ネットワークからの情報流出を防止するファイアウォールの機能を有している。さらに、中継装置100は、ゲートウェイの機能を有している。中継装置100が有するゲートウェイ機能は、例えば内部クライアント31から外部サーバ41に送信されるRSS文書のURLを、中継装置100のドメイン名をホスト名に含むURLに変更して、外部サーバ41に転送する。また、中継装置100が有するゲートウェイ機能は、内部サーバ32,33から外部サーバ41に送信されるRSS文書の一部をダミーデータに変換する。
ここで内部サーバ32内のRSS文書のURLを「URL#1」、中継装置100のドメイン名をホスト名で指定したURLを「URL#2」としたときの、中継装置100を介したRSS文書の情報収集・配布処理について説明する。
図3は、中継装置を介した情報収集・配布処理を示す図である。中継装置100を介したRSS文書の情報収集・配布処理は、第1〜第3手順に大別される。
第1手順(ステップS1)は、内部クライアント31が内部サーバ32からURLを取得し、外部サーバ41に搭載されたRSSリーダに対して登録を行う処理である。この際、中継装置100は、内部サーバ32内のRSS文書のURL(URL#1)を、中継装置100のドメイン名をホスト名として指定したURL(URL#2)に変更して、外部サーバ41にURL登録のリクエストメッセージを送信する。
第2手順(ステップS2)は、外部サーバ41に搭載されたRSSリーダが内部サーバ32からRSS文書を収集する処理である。この際、中継装置100は、外部サーバ41により変換後のURL(URL#2)を指定したリクエストメッセージに応じて、変換前のURL(URL#1)のRSS文書を取得する。そして中継装置100は、取得したRSS文書に含まれる所定のコンテンツをダミーデータに変換して、外部サーバ41に送信する。なお、外部サーバ41に外部サーバ42が配布するRSS文書のURLが登録されていれば、外部サーバ41はそのRSS文書を外部サーバ42から取得する。
第3手順(ステップS3)は、内部クライアント31が外部サーバ41に搭載されたRSSリーダからHTML形式の画面表示用文書(HTML文書)を取得する処理である。この際、中継装置100は、外部サーバ41から配布されたHTML文書内のダミーデータを元のコンテンツに復元し、内部クライアント31に転送する。なお、外部サーバ41が配布するHTML文書には、外部サーバ42から取得したRSS文書内のコンテンツも含まれる。
このようにして、内部サーバ32が配布するRSS文書内の所定のコンテンツを秘匿したまま、外部サーバ41による内部サーバ32,33と外部サーバ42との双方からのRSS文書の収集、および配布が行われる。
以下、このような処理を実現するための各装置の機能を詳細に説明する。
図4は、中継装置のハードウェア構成例を示す図である。中継装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス109を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、中継装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、中継装置100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース107は、内部ネットワーク21に接続されている。通信インタフェース107は、内部ネットワーク21を介して、内部クライアント31や内部サーバ32などの他のコンピュータとの間でデータの送受信を行う。
通信インタフェース108は、外部ネットワーク22に接続されている。通信インタフェース108は、外部ネットワーク22を介して、外部サーバ41,42、外部クライアント43などの他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図4には、中継装置100のハードウェア構成を示したが、内部クライアント31、内部サーバ32,33、外部サーバ41,42、および外部クライアント43も同様のハードウェア構成で実現することができる。
次に、中継装置100のファイアウォール機能について説明する。
図5は、中継装置のファイアウォール機能を示す図である。中継装置100は、ファイアウォール機能により、外部ネットワーク22から内部サーバ32,33を直接指定する要求に応じて、内部サーバ32,33が外部サーバ41,42へRSS文書51などのコンテンツを送信するのを拒否する。また中継装置100は、外部サーバ42から内部クライアント31へのHTML文書54などのコンテンツの送信を拒否する。他方、中継装置100は、内部クライアント31からの要求に基づく、外部サーバ41から内部クライアント31へのHTML文書53などコンテンツの送信を許可する。
ユーザ30は、会社内などの内部ネットワーク21が敷設された場所にいる場合、内部クライアント31を使用する。またユーザ30は、会社外などの外部ネットワーク22が敷設された場所にいる場合、外部クライアント43を使用する。
このようなファイアウォールは、内部ネットワークで通信される情報を外部ネットワークに漏洩させないために有用である。その一方で、ファイアウォールの存在が、情報利用の利便性を損なわせる場合がある。その一例として、RSSリーダを利用した情報収集および配信サービスの利用がある。
内部ネットワーク21と外部ネットワーク22との情報をRSSリーダで収集させ、クライアントで閲覧する場合、中継装置100における提供情報のダミーデータへの変換などの処理を行わないと、1台のRSSリーダは以下を同時に実現できない。
[条件1]社内などの内部のコンテンツを、社外などの外部には出さない。
[条件2]内部クライアント31から、内部コンテンツを閲覧可能にする。
[条件3]内部クライアント31から、外部のコンテンツを閲覧可能にする。
ファイアウォールを除去すると、条件1が満たされない。外部ネットワーク22の外部サーバ41にRSSリーダを搭載し、中継装置100にゲートウェイ機能を設けないと、ファイアウォールの機能により内部コンテンツが収集できず、条件2が満たされない。内部ネットワーク21に接続されたサーバにRSSリーダを設け、中継装置100にゲートウェイ機能を設けないと、ファイアウォールの機能により外部ネットワーク22からコンテンツを収集できず、条件3が満たされない。
ところで、アクセス禁止サイトに指定された外部サーバであっても、アクセスを禁止すべきコンテンツはその外部サーバ内の一部のコンテンツであることが多い。例えばポータルサイト内のニュースに関するコンテンツへのアクセスは許可してもよいが、ウェブメールや電子掲示板といった、情報漏洩の原因となるようなコンテンツへのアクセスは許可すべきでないことがある。ただし、外部のコンテンツのURLなどのアドレスは、外部の管理者によって適宜変更されるものである。そのため、ファイアウォールによって、外部サーバ内の各コンテンツについてアクセスを許可すべきか否かについて管理するのは困難である。
他方RSS文書によって公開されるコンテンツは、基本的にユーザの参照を目的としている。そこでRSS文書で公開されたコンテンツであれば、それが外部サーバ内のものであっても内部クライアント31からのアクセスを許してもよいものと考えられる。
そこで第2の本実施の形態では、中継装置100が有するゲートウェイ機能により、内部サーバ32,33や外部サーバ42でRSS文書によって提供されるコンテンツの外部サーバ41からの配信を、内部クライアント31で受けることができるようにしている。
すなわち、内部ネットワーク21に接続された装置は、中継装置100を介してのみ外部ネットワーク22と通信できる。そして外部サーバ41が内部サーバ32,33、外部サーバ42のコンテンツを収集でき、かつ内部クライアント31にコンテンツを配信できるように、中継装置100にゲートウェイ機能が搭載される。このゲートウェイ機能により、コンテンツの公開範囲が制御される。
ここで、図1に示した第1の実施の形態の中継装置1の各機能は、第2の実施の形態のゲートウェイ機能では、RSS文書による情報の収集・配信技術に合わせた機能で実現される。
図1に示したアドレス変換手段1aの機能は、第2の実施の形態では以下のように実現される。
中継装置100は、内部クライアント31が内部サーバ32,33から取得したRSS文書のURLを外部サーバ41に搭載されたRSSリーダへ登録するリクエストメッセージを識別する。そして中継装置100は、内部サーバ32,33内のRSS文書の場所を示すURLを、中継装置100内の場所を示すURLに変換する。例えば中継装置100は、URLのホスト名を中継装置100のドメイン名に変更する。この機能により、外部サーバ41からの内部サーバ32,33内のRSS文書を取得するためのリクエストメッセージが、中継装置100宛に送られる。
図1に示した情報取得手段1cと第1の情報変換手段1dとの機能は、第2の実施の形態では以下のように実現される。
変換して外部サーバ41に渡された中継装置100のURL宛に外部サーバ41からのリクエストメッセージが届くと、中継装置100は、該当する内部サーバのコンテンツをダミーデータに書き換えて、外部サーバに渡す。この機能により、コンテンツが社外に漏洩することを防止される。
図1に示した第2の情報変換手段1dとの機能は、第2の実施の形態では以下のように実現される。
中継装置100では、内部クライアント31が外部サーバ41から取得するコンテンツの中身を監視し、ダミーデータがあれば元のコンテンツに書き戻して、内部クライアントに渡す。この機能により、内部クライアント31によって、内部サーバ32,33が提供するコンテンツを閲覧することを可能にする。
このようなゲートウェイ機能により、内部コンテンツを外部に出すことなく、1台の外部サーバ41を利用して内部クライアント31が内部コンテンツを閲覧できるようになる。すなわち正しくアクセス制御をかけつつ、社外・社内の場所にかかわらずコンテンツを閲覧できるようになる。なお、課題としてあげた各条件には、以下のように対応している。
[条件1]内部のコンテンツを外部には出さないことについては、外部から送られる内部のコンテンツを示すRSS文書の取得リクエストメッセージに対してRSS文書応答する際に、コンテンツをダミーデータに書き換えることで対応している。
[条件2]内部クライアント31から、内部のコンテンツを閲覧可能にすることについては、外部から内部クライアント31に向かうデータに対して、ダミーデータを元のコンテンツに書き戻すことで対応している。
[条件3]社内および社外のクライアントから、社外のコンテンツを閲覧可能にすることについては、外部サーバ41のRSSリーダを利用することで対応している。
以下、中継装置100のゲートウェイ機能について詳細に説明する。
図6は、第2の実施の形態に係る中継装置のゲートウェイ機能を示すブロック図である。
まず、ゲートウェイ機能を介した情報通信を行う他の装置の機能について説明する。内部クライアント31は、HTML文書などの閲覧が可能なブラウザを有している。内部サーバ32は、RSS文書を格納するRSS文書記憶部32aを有している。RSS文書記憶部32aはRSS文書の記憶機能であり、例えばHDDなどのストレージ装置の記憶領域の一部がRSS文書記憶部32aとして使用される。
外部サーバ41は、RSSリーダ41a、RSS文書URL記憶部41bおよびコンテンツ記憶部41cを有している。RSSリーダ41aは、RSS文書の収集と、そのRSS文書に含まれるコンテンツの配信を行う。RSS文書URL記憶部41bは、ユーザごとに、ユーザが指定したRSS文書のURLを記憶する記憶機能である。例えば、HDDなどのストレージ装置の記憶領域の一部がRSS文書URL記憶部41bとして使用される。なおRSS文書記憶部32aは、ユーザごとのRSS文書を記憶する記憶機能である。コンテンツ記憶部41cは、ユーザごとに、収集したRSS文書に含まれるコンテンツを記憶する記憶機能である。例えば外部サーバ41のHDDの記憶領域の一部が、コンテンツ記憶部41cとして使用される。
次に、中継装置100のゲートウェイ機能について説明する。中継装置100のゲートウェイ機能は、RSSリーダアドレス記憶部110、変換アドレス記憶部120、変換ポリシー記憶部130、秘匿コンテンツ記憶部140、アドレス登録監視部151、アドレス変換部152、コンテンツ取得部161、コンテンツ変換部162、変換対象判別部171、およびコンテンツ復元部172を有している。
RSSリーダアドレス記憶部110は、RSSリーダ41aを指定するアドレス(URL)を記憶する記憶機能である。例えばRAM102やHDD103の記憶領域の一部が、RSSリーダアドレス記憶部110として使用される。なおRSSリーダアドレス記憶部110には、中継装置100の管理者が、内部クライアント31のユーザ30に対してアクセスを許可してよいと判断したRSSリーダ41aのURLが、管理者によって登録される。
変換アドレス記憶部120は、アドレス変換部152により変換されたアドレスの、変換前のアドレスと変換後のアドレスとを関連付けて記憶する記憶機能である。例えば、RAM102やHDD103の記憶領域の一部が変換アドレス記憶部120として使用される。
変換ポリシー記憶部130は、コンテンツ変換部162によるコンテンツ変換のポリシーを記憶する記憶機能である。例えばRAM102やHDD103の記憶領域の一部が変換ポリシー記憶部130として使用される。
秘匿コンテンツ記憶部140は、コンテンツ変換部162による変換前の秘匿すべきコンテンツと変換後のダミーデータとを関連付けて記憶する記憶機能である。例えばRAM102やHDD103の記憶領域の一部が秘匿コンテンツ記憶部140として使用される。
アドレス登録監視部151は、内部クライアント31から外部ネットワーク22へ送出されるメッセージを監視し、外部サーバ41宛の内部サーバ32,33内のRSS文書のURLの登録を要求するリクエストメッセージを検出する。具体的には、アドレス登録監視部151は、内部クライアント31から外部ネットワーク22へ送出されるメッセージの宛先のURLを取得する。アドレス登録監視部151は、取得したURLが、RSSリーダアドレス記憶部110に登録されているか否かを判断する。取得したURLがRSSリーダアドレス記憶部110に登録されていれば、アドレス登録監視部151は、メッセージがRSSリーダ宛のメッセージであることを認識する。またアドレス登録監視部151は、メッセージの内容を解析する。そしてアドレス登録監視部151は、内部サーバ32,33のドメイン名を含むURLの書き込みのリクエストメッセージであれば、内部サーバ32,33内のRSS文書のURLの登録を要求するリクエストメッセージであると判断する。なお通信のプロトコルがHTTP(Hypertext Transfer Protocol)であれば、メッセージに示されるコマンドがPOSTコマンドである場合に、書き込みリクエストメッセージであると判断できる。
アドレス登録監視部151は、検出対象のリクエストメッセージを検出すると、そのリクエストメッセージから登録しようとしているRSS文書のURLの文字列を検索する。そして、アドレス登録監視部151は、リクエストメッセージ中のRSS文書のURLの文字列の位置およびURL文字列をアドレス変換部152に渡す。文字列の位置は、例えば先頭からバイト数で範囲を示すバイト位置によって示される。
アドレス変換部152は、アドレス登録監視部151が検出したリクエストメッセージ内の、アドレス登録監視部151から渡されたURL文字列を、アクセス先が中継装置100となるようなURLに変換する。アクセス先が中継装置100となるようなURLとは、中継装置100のドメイン名が設定されたURLである。アドレス変換部152は、アドレス変換後のリクエストメッセージを、外部サーバ41へ送信する。また、アドレス変換部152は、アドレス変換処理による変換前のURLと変換後のURLとを関連付けて、変換アドレス記憶部120に格納する。
コンテンツ取得部161は、外部サーバ41からのリクエストメッセージに応答し、内部サーバ32,33からRSS文書を取得する。具体的には、コンテンツ取得部161は、外部サーバ41のRSSリーダからリクエストメッセージを受信すると、その宛先アドレスが変換アドレス記憶部120に登録されているか否か調べる。コンテンツ取得部161は、該当アドレスが登録されている場合、該当する内部サーバのアドレス宛にコンテンツ取得のリクエストメッセージを送り、該当するRSS文書を取得する。コンテンツ取得部161は、取得したRSS文書をコンテンツ変換部162に渡す。
コンテンツ変換部162は、秘匿するコンテンツを特定し、秘匿するコンテンツごとにダミーを作成し、コンテンツをダミーに変換する。具体的には、コンテンツ変換部162は、変換ポリシー記憶部130内の変換ポリシーを参照し、内部サーバから取得したRSS文書内の変換ポリシーで指定された部分を抽出する。次にコンテンツ変換部162は、抽出したコンテンツと同じデータサイズのダミーデータを作成し、抽出したコンテンツに代えてダミーデータをRSS文書に埋め込む。ダミーデータとしては、例えばランダムに生成した半角英数字を利用することができる。コンテンツ変換部162は、コンテンツ変換後のRSS文書を外部サーバ41のRSSリーダに対して送信する。またコンテンツ変換部162は、変換前のコンテンツと、変換後のダミーデータとを秘匿コンテンツ記憶部140に格納する。
変換対象判別部171は、外部サーバ41から送られるダミーデータを含むレスポンスメッセージメッセージを解析し、ダミーデータを抽出する。具体的には、変換対象判別部171は、内部クライアント31がRSSリーダに送ったリクエストメッセージのレスポンスメッセージとして、外部サーバ41から送られてくるHTMLメッセージを監視する。なお変換対象判別部171は、外部ネットワーク22から内部ネットワーク21に送られるレスポンスメッセージの送信元のアドレスを参照する。参照したアドレスがRSSリーダアドレス記憶部110に登録されたURLのホスト名に示された外部サーバ41を示す場合、変換対象判別部171は、受信したメッセージがRSSリーダ41aからのレスポンスメッセージであると判断する。変換対象判別部171は、該当するレスポンスメッセージに含まれるHTML文書から、ダミーデータが含まれる可能性のある領域(ダミーデータ格納領域)を検出する。第2の実施の形態では、RSSリーダ41aから配布されるHTML文書内のどの場所にダミーデータが設定されるかは予めルールとして、変換対象判別部171が持っているものとする。以下の例では、HTML文書内の<h3>タグおよび<div class="section">タグ中にダミーデータが設定されるものとする。変換対象判別部171は、HTML文書からダミーデータ格納領域内の文字列を取得すると、コンテンツ復元部172に渡す。
コンテンツ復元部172は、ダミーデータを変換元のコンテンツに置き換える。具体的には、コンテンツ復元部172は、変換対象判別部171が抽出した文字列を検索キーとして、秘匿コンテンツ記憶部140内のダミーデータの検索を行う。コンテンツ復元部172は、検索キーと一致したダミーデータを有するエントリのコンテンツを読み出す。次にコンテンツ復元部172は、レスポンスメッセージに含まれるHTML文書中のダミーデータ(ダミーデータ格納領域内の文字列)を、秘匿コンテンツ記憶部140から読み出したコンテンツに書き換える。そしてコンテンツ復元部172は、書き換えたレスポンスメッセージを、内部クライアント31に送信する。
次に中継装置100のゲートウェイ機能で保持されるデータの内容を詳細に説明する。
図7は、RSSリーダアドレス記憶部のデータ構造例を示す図である。RSSリーダアドレス記憶部110には、内部クライアント31からのアクセスを許可するRSSリーダのURLが格納されている。登録されたURLのドメイン名の部分が、該当するRSSリーダが搭載された外部サーバ41を示している。
図8は、変換アドレス記憶部のデータ構造例を示す図である。変換アドレス記憶部120には、アドレス登録テーブル121が格納されている。アドレス登録テーブル121には、内部URLと外部URLとの欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連付けられ、1つのエントリとなる。
内部URLの欄には、アドレス変換部152によるアドレス変換前のURLが設定される。内部URLの欄に設定されるURLは、内部ネットワーク21上の内部サーバ32,33内のRSS文書を示すURLである。
外部URLの欄には、アドレス変換部152によるアドレス変換後のURLが設定される。外部URLの欄に設定されるURLのホスト名には、中継装置100のドメイン名が設定されている。また、ホスト名に続けて、アドレス登録テーブル121内で各エントリを一意に識別可能な文字列が設定される。図8の例では、一意に識別可能な文字列としては、内部サーバのドメイン名の少なくとも一部、RSS文書の所在を示すパス名、およびRSS文書のファイル名を結合させたものを利用している。
なお、図8の例では、変換前のURLと変換後のURLとをテーブル形式のデータ構造で変換アドレス記憶部120に格納しているが、他のデータ構造で格納することもできる。例えば、変換元の内部URLの値から変換先の外部URLの値へポインタを設定することで、互いに関連付けることができる。
図9は、変換ポリシー記憶部のデータ構造例を示す図である。変換ポリシー記憶部130には、ポリシー管理テーブル131が格納されている。ポリシー管理テーブル131には、URLと秘匿場所との欄が設けられている。ポリシー管理テーブル131の各欄の横方向に並べられた情報同士が互いに関連付けられ、1つのエントリとなる。
URLの欄には、変換対象のRSS文書を示すURLが設定される。
秘匿場所の欄には、関連するURLで示されるRSS文書内の秘匿すべきコンテンツの場所を定義する情報が設定される。例えばRSS文書が構造化文書の場合、秘匿すべきコンテンツの文書構造上の位置を示す情報が設定される。
なお、1つのRSS文書内に秘匿すべきコンテンツが複数あれば、秘匿すべきコンテンツごとのエントリが、ポリシー管理テーブル131に登録される。
また、図9の例では、変換対象のRSS文書のURLと秘匿場所とをテーブル形式のデータ構造で変換ポリシー記憶部130に格納しているが、他のデータ構造で格納することもできる。例えば、変換対象のRSS文書のURLの値から秘匿場所を示す情報へポインタを設定することで、互いに関連付けることができる。
図10は、秘匿コンテンツ記憶部のデータ構造例を示す図である。秘匿コンテンツ記憶部140には、秘匿コンテンツ管理テーブル141が格納されている。秘匿コンテンツ管理テーブル141には、コンテンツとダミーデータとの欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連付けられ、1つのエントリとなる。
コンテンツの欄には、秘匿されたコンテンツの文字列が設定される。ダミーデータの欄には、対応するコンテンツの文字列と同じバイト数のダミーデータが設定される。
なお図10の例では、秘匿されたコンテンツとダミーデータをテーブル形式のデータ構造で秘匿コンテンツ記憶部140に格納しているが、他のデータ構造で格納することもできる。例えば、秘匿されたコンテンツの文字列からダミーデータへポインタを設定することで、互いに関連付けることができる。
図11は、中継装置のゲートウェイ機能を介した通信の手順を示すシーケンス図である。図11には、内部クライアント31が、内部サーバ32よりURLを取得し、外部サーバ41に搭載されたRSSリーダを使ってコンテンツを購読する場合の処理手順が示されている。
以下、第1手順、第2手順、第3手順の順番で、各手順内の詳細な処理をステップ番号に沿って説明する。
なお、図11の例では、外部サーバ41のRSSリーダ41aのURL登録用のアドレス(http://www.rssreader.com/regfeed/)が事前に中継装置100のRSSリーダアドレス記憶部110に設定済みであり、そのURL宛の通信が監視されるものとする。また、内部クライアント31のブラウザがプロキシサーバとして中継装置100を指定しており、社外との通信は必ず中継装置100を経由するものとする。通信プロトコルとして、例えばHTTPを用いる。
RSS文書のアドレス登録の手順である第1手順は、詳細にはステップS11〜S16の6つの手順に分かれている。
[ステップS11]ユーザ30が内部クライアント31のブラウザ31aを使用して内部サーバ32からのRSS用URLの取得を指示する。すると、内部クライアント31が内部サーバ32と通信を行い、公開されているRSS文書のURL(URL#1)を取得する。
例えばユーザ30は内部クライアント31のブラウザ31aを用いて、内部サーバ32にアクセスする。内部サーバ32にはウェブページの情報が格納されており、所定のウェブページに、RSS文書記憶部32aに格納されたRSS文書へのリンクを示すオブジェクトが設けられている。ユーザ30が内部クライアント31を操作し、RSS文書へのリンクを示すオブジェクトを選択すると、内部クライアント31が内部サーバ32からRSS文書を取得する。取得されたRSS文書は、内部クライアント31のブラウザ31aの画面に表示される。ブラウザ31aの画面には、表示中のRSS文書のURL(URL#1)も表示される。ユーザ30は内部クライアント31を操作し、表示されたRSS文書のURL(URL#1)を選択し、コピー命令を入力する。すると、内部クライアント31は、RSS文書のURLをメモリに格納する。
[ステップS12]ユーザ30が内部クライアント31のブラウザ31aを使用して外部サーバ41内のRSSリーダ41aが提供するRSS文書URL登録ページにアクセスする。この際、ユーザ30はユーザIDとパスワードとにより、外部サーバ41からユーザ認証を受けるものとする。ブラウザ31aからアクセスを受けた外部サーバ41のRSSリーダ41aは、内部クライアント31へRSS文書URL登録ページを送信する。送信されるページは、例えばHTTP形式の文書である。内部クライアント31のブラウザ31aは、外部サーバ41から送られたRSS文書URL登録ページを受信し、そのページを画面に表示する。
[ステップS13]ユーザ30からの操作入力に応答し、内部クライアント31は、外部サーバ41のRSSリーダ41aに、URL登録用のリクエストメッセージを送信する。そのリクエストメッセージには、RSS文書のURL(URL#1)が含まれる。
例えばユーザ30は、内部クライアント31に表示されたRSS文書URL登録ページ内のRSS文書URL入力用のテキストボックスに、ステップS11で取得したURL(URL#1)を設定する。具体的には、ユーザ30が内部クライアント31に対し、該当テキストボックスを選択した状態で、メモリに格納されていたRSS文書のURL(URL#1)の貼り付け指示を入力する。すると、内部クライアント31は、URL(URL#1)をメモリから読み出し、テキストボックス内に設定する。その後、ユーザ30が送信の指示を入力すると、内部クライアント31から外部サーバ41宛にRSS文書のURL登録のリクエストメッセージが送信される。このリクエストメッセージは、中継装置100で中継される。
[ステップS14]中継装置100は、内部クライアント31から送信されたリクエストメッセージを受信すると、そのリクエストメッセージで指定されているURL(URL#1)を、中継装置100を示すURL(URL#2)に置き換える。すなわち、中継装置100のアドレス登録監視部151は、受信したリクエストメッセージが、外部サーバ41のRSSリーダのURL登録アドレス宛であるため、リクエストメッセージの内容を調べる。そしてアドレス登録監視部151は、RSS文書のURL(URL#1)の位置および値を取得する。
次に、中継装置100のアドレス変換部152は、取得したRSS文書のURL(URL#1)の値を、中継装置100のホスト名が記載されたURL(URL#2)(例えば「http://www.sample.com/int1/index.rdf」)に書き換える。なおアドレス変換部152で生成されるURL(URL#2)は、過去に生成したURLと重複しなければよい。アドレス変換部152は、URL変換後のリクエストメッセージを外部サーバ41のRSSリーダに送信する。
さらにアドレス変換部152は、RSS文書のURL(URL#1)および中継装置100のホスト名が記載されたURL(URL#2)を対応付けて内部で記憶する。
[ステップS15]外部サーバ41のRSSリーダ41aは、リクエストメッセージによって指定されたURL(URL#2)を、ユーザ30に対して提供するコンテンツの収集先を示すURLとして登録する。具体的には、RSSリーダ41aは、中継装置100から送られたリクエストメッセージを受信し、そのリクエストメッセージに含まれるURL(URL#2)を、ユーザ30のユーザIDに対応付けてRSS文書URL記憶部41bに格納する。
外部サーバ41のRSSリーダ41aは、URL格納後、レスポンスメッセージを内部クライアント31宛に送信する。このレスポンスメッセージは、中継装置100で中継される。
[ステップS16]中継装置100は、外部サーバ41からのレスポンスメッセージを内部クライアント31に転送する。
以上でRSS文書のアドレス登録手順である第1手順が完了する。
RSS文書取得の手順である第2手順は、詳細にはステップS21〜S14の4つの手順に分かれている。
[ステップS21]外部サーバ41のRSSリーダ41aは、中継装置100宛にRSS文書取得のリクエストメッセージを送信する。具体的には、RSSリーダ41aは、定期的にユーザ30用のURL(URL#2)を読み出す。次にRSSリーダ41aは、読み出したURL(URL#2)を指定した文書取得のリクエストメッセージを、そのURL(URL#2)のホスト名に示される中継装置100宛に送信する。
[ステップS22]中継装置100のコンテンツ取得部161は、外部サーバ41からのリクエストメッセージを受信する。次に中継装置100は、受信したリクエストメッセージで指定されたURL(URL#2)を、内部サーバ32内のRSS文書を指定するURL(URL#1)に変更し、内部サーバ32に転送する。具体的には、コンテンツ取得部161は、中継装置100のURL(URL#2)宛のリクエストメッセージを受信すると、変換アドレス記憶部120からURL(URL#2)を検索する。次にコンテンツ取得部161は、検索でヒットしたエントリにおいてURL(URL#2)に対応付けられた内部サーバ32のURL(URL#1)を取得する。そして、コンテンツ取得部161は、受信したリクエストメッセージの宛先を、内部サーバ32のURL(URL#1)に書き換えた上で、内部サーバ32宛にリクエストメッセージを送信する。
[ステップS23]内部サーバ32は、中継装置100からのリクエストメッセージに応じて、そのリクエストメッセージで指定されたRSS文書(RSS#1)を、レスポンスメッセージとして中継装置100に送信する。
[ステップS24]中継装置100のコンテンツ取得部161は、内部サーバ32から送信されたRSS文書(RSS#1)を取得し、コンテンツ変換部162に渡す。この際、コンテンツ取得部161は、取得したRSS文書(RSS#1)から、変換ポリシー記憶部130に登録された変換ポリシーで指定されたタグの位置を検索する。そしてコンテンツ取得部161は、検索でヒットしたコンテンツを取得する。
コンテンツ変換部162は、RSS文書(RSS#1)内のコンテンツ取得部161が取得したコンテンツを同じバイト数のダミーデータに変換し、別のRSS文書(RSS#2)を生成する。そしてコンテンツ変換部162は、変換後のRSS文書(RSS#2)を外部サーバ41のRSSリーダ41aに対して送信する。すると外部サーバ41のRSSリーダ41aは、ユーザ30のユーザIDに対応付けて、コンテンツ記憶部41c内にRSS文書(RSS#2)に含まれるコンテンツ(秘匿対象のコンテンツについてはダミーデータ)を格納する。
以上でRSS文書取得手順が完了する。
RSS文書配布の手順である第3手順は、詳細にはステップS31〜S34の4つの手順に分かれている。
[ステップS31]ユーザ30は内部クライアント31のブラウザ31aを操作し、外部サーバ41からRSSリーダ41aに対するHTML文書の取得の指示を入力する。すると、ブラウザ31aは、外部サーバ41に対してHTML文書取得のリクエストメッセージを送信する。このリクエストメッセージは、中継装置100で中継される。
[ステップS32]中継装置100は、内部クライアント31から送信されたリクエストメッセージを外部サーバ41のRSSリーダ41aに転送する。
[ステップS33]外部サーバ41は、リクエストメッセージを送信したユーザ30用のコンテンツをコンテンツ記憶部41cから取得し、ユーザ30に配布するHTML文書(HTML#1)を作成する。コンテンツ記憶部41cにダミーデータが格納されていれば、作成されたHTML文書(HTML#1)の少なくとも一部はダミーデータである。そしてRSSリーダ41aは、作成したHTML文書(HTML#1)を、リクエストメッセージに対するレスポンスメッセージとして内部クライアント31宛に送信する。送信されたレスポンスメッセージは、中継装置100で中継される。
[ステップS34]中継装置100の変換対象判別部171は、RSSリーダアドレス記憶部110にアドレスが登録されたRSSリーダ41aから送信されたレスポンスメッセージを受信する。次に変換対象判別部171は、受信したレスポンスメッセージに含まれるHTML文書(HTML#1)から、ダミーデータ格納領域として予め指定された領域内の文字列を取得する。なお変換対象判別部171は、文字列を抜き出す際に前後の空白文字(スペースや改行コード)を削除してもよい。
コンテンツ復元部172は、変換対象判別部171が取得した文字列を検索キーとして、秘匿コンテンツ記憶部140内のダミーデータを検索し、一致するダミーデータに対応付けられたコンテンツを取得する。次にコンテンツ復元部172は、レスポンスメッセージ中のダミーデータの書き込まれていた領域を、取得したコンテンツで置き換え、コンテンツ復元後のHTML(HTML#2)を作成する。そしてコンテンツ復元部172は、内部クライアント31のブラウザ31aに対してコンテンツ復元後のHTML(HTML#2)を送信する。ブラウザ31aは、HTML(HTML#2)を受信すると、HTML文書の記述に従ってコンテンツ画面表示する。
以上でRSS文書配布手順が完了する。
このようにして、内部サーバ32が配布しているコンテンツを外部に漏らすことなく、1台の外部サーバ41を利用して内部クライアント31が内部サーバ32で配布するコンテンツを閲覧できるようになる。すなわち正しくアクセス制限をかけつつ、内部・外部でRSS文書で提供されるコンテンツを収集・閲覧できるようになる。
次に図12〜図15を参照し、中継装置100のゲートウェイ機能の詳細な処理について説明する。
図12は、第2の実施の形態におけるメッセージ受信時の中継装置の処理を示す図である。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS41]中継装置100は、受信したメッセージが内部ネットワーク21から送られてきたものか否かを判断する。内部ネットワーク21から送られたメッセージであれば、処理がステップS42に進められる。外部ネットワーク22から送られたメッセージであれば、処理がステップS44に進められる。
[ステップS42]中継装置100は、登録アドレス変換処理を実行する。この処理は、アドレス登録監視部151とアドレス変換部152が協働して実行する。登録アドレス変換処理の詳細は後述する(図13参照)。
[ステップS43]中継装置100は、外部ネットワーク22へメッセージを送信する。その後、処理が終了する。
[ステップS44]中継装置100は、受信したメッセージがRSS文書取得を要求するリクエストメッセージか否かを判断する。RSS文書取得のリクエストメッセージであれば、処理がステップS45に進められる。RSS文書取得のリクエストメッセージでなければ、処理がステップS47に進められる。
[ステップS45]中継装置100は、コンテンツ変換処理を実行する。この処理は、コンテンツ取得部161とコンテンツ変換部162が協働して実行する。コンテンツ変換処理の詳細は、後述する(図14参照)。
[ステップS46]中継装置100は、リクエストメッセージへの応答として、外部ネットワーク22へRSS文書を含むレスポンスメッセージを送信する。その後、処理が終了する。
[ステップS47]中継装置100は、コンテンツ復元処理を実行する。この処理は、変換対象判別部171とコンテンツ復元部172が協働して実行する。コンテンツ復元処理の詳細は、後述する(図15参照)。
[ステップS48]中継装置100は、復元されたコンテンツを含むHTML文書を内部ネットワーク21へ送信する。その後、処理が終了する。
次に、登録アドレス変換処理について詳細に説明する。
図13は、登録アドレス変換処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS51]アドレス登録監視部151は、内部ネットワーク21から受信したメッセージの宛先が、RSSリーダ41aか否かを判断する。具体的には、アドレス登録監視部151は、受信したメッセージの宛先として指定されたURLを検索キーとして、RSSリーダアドレス記憶部110に登録されているアドレスを検索する。該当するアドレスがヒットした場合、受信したメッセージの宛先がRSSリーダ41aであると判断される。RSSリーダ宛のメッセージであれば、処理がステップS52に進められる。RSSリーダ宛のメッセージでなければ、登録アドレス変換処理が終了する。
[ステップS52]アドレス登録監視部151は、受信したメッセージがURL登録を要求するリクエストメッセージか否かを判断する。例えばアドレス登録監視部151は、メッセージがHTTPのPOSTメソッドのリクエストであり、内容としてURLを含んでいれば、URL登録要求のリクエストメッセージであると判断する。URL登録要求のリクエストメッセージであれば、処理がステップS53に進められる。URL登録要求のリクエストメッセージでなければ、登録アドレス変換処理が終了する。
[ステップS53]アドレス変換部152は、書き込み対象のURLの書き換えを行う。具体的には、アドレス変換部152は、書き込み対象のURLを、中継装置100のドメイン名をホスト名として含むユニークなURLに変換する。
[ステップS54]アドレス変換部152は、変換アドレス記憶部120のアドレス登録テーブル121に、変換前のURLと変換後のURLとを組としたエントリを登録する。その後、登録アドレス変換処理が終了する。
このようにして、内部サーバ32内のRSS文書のURLを他のURLに置き換えた上で、外部サーバ41のRSSリーダ41aに送られる。これにより、内部ネットワーク21における内部サーバ32のドメイン名やRSS文書のURLを秘匿しておくことができる。
次にコンテンツ変換処理について詳細に説明する。
図14は、コンテンツ変換処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS61]コンテンツ取得部161は、外部ネットワーク22から入力されたリクエストメッセージによる取得対象のRSS文書のURLを、変換アドレス記憶部120から取得する。具体的には、コンテンツ取得部161は、リクエストメッセージに示される宛先のURLを、変換アドレス記憶部120内のアドレス登録テーブル121における外部URLの欄から検索する。そしてコンテンツ取得部161は、検索でヒットしたエントリにおける内部URLの欄の値を取得する。
[ステップS62]コンテンツ取得部161は、ステップS61で取得したURLで示されるRSS文書の取得要求を内部サーバに対して送信し、該当するRSS文書を取得する。
[ステップS63]コンテンツ変換部162は、取得したRSS文書に含まれるコンテンツをダミーデータに変換する。具体的には、コンテンツ変換部162は、変換ポリシー記憶部130内のポリシー管理テーブル131のURLの欄から、取得したRSS文書のURLを検索する。次にコンテンツ変換部162は、検索でヒットしたエントリの秘匿場所の欄の値(秘匿場所)を取得する。さらにコンテンツ変換部162は、取得したRSS文書の構造を解析し、秘匿場所で示されるタグの位置に設定されている文字列を抽出する。そしてコンテンツ変換部162は、抽出した文字列と同じデータ長のダミーデータを生成し、RSS文書に対して、抽出した文字列に代えてダミーデータを書き込む。
[ステップS64]コンテンツ変換部162は、秘匿コンテンツ記憶部140内の秘匿コンテンツ管理テーブル141に、抽出した文字列とダミーデータとを組としてエントリを記録する。その後、コンテンツ変換処理が終了する。
このようにして、内部サーバ32で提供されるRSS文書内のコンテンツをダミーデータに変換し、ダミーデータを含むRSS文書をRSSリーダ41aに送信することができる。その結果、外部に秘匿すべきコンテンツを外部ネットワーク22に漏らすことなく、RSSリーダ41aにRSS文書を提供できる。
次にコンテンツ復元処理について説明する。
図15は、コンテンツ復元処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS71]変換対象判別部171は、外部ネットワーク22から受信したメッセージの送信元が、外部サーバ41のRSSリーダ41aか否かを判断する。具体的には、変換対象判別部171は、受信したメッセージの送信元のドメイン名を検索キーとして、RSSリーダアドレス記憶部110に登録されているアドレスを検索する。該当するドメイン名を含むアドレスがヒットした場合、受信したメッセージの送信元が外部サーバ41のRSSリーダ41aであると判断される。RSSリーダ41aから送られたメッセージであれば、処理がステップS72に進められる。RSSリーダ41aから送られたメッセージでなければ、コンテンツ復元処理が終了する。
[ステップS72]変換対象判別部171は、受信したメッセージに含まれるHTML文書から変換対象のダミーデータ格納領域を検出する。具体的には、変換対象判別部171は、HTML文書を走査し、<h3>タグおよび<div class="section">タグのバイト位置を特定し、それらのタグで囲まれる範囲の文字列を抽出する。
[ステップS73]コンテンツ復元部172は、変換対象判別部171が抽出した文字列を検索キーとして、秘匿コンテンツ記憶部140内の秘匿コンテンツ管理テーブル141におけるダミーデータの欄を検索する。
[ステップS74]コンテンツ復元部172は、ステップS73の検索により一致するエントリが見つかったか否かを判断する。エントリが見つかった場合、処理がステップS75に進められる。エントリが見つからなかった場合、コンテンツ復元処理が終了する。
[ステップS75]エントリが見つかった場合、コンテンツ復元部172は、ダミーデータをコンテンツに復元する。具体的には、コンテンツ復元部172は、HTML文書内のステップS72で検出された文字列(ダミーデータ)を、検出したエントリに含まれるコンテンツに書き換える。
以下、図16〜図20を参照し、コンテンツの変換と復元の具体例について説明する。
図16は、内部サーバから提供されるRSS文書(RSS#1)の例を示す図である。図16に示すRSS文書61では、「2008年12月人事情報」と「異動(A氏X部⇒Y部)」との文字(図中太字で示す)が、秘匿対象のコンテンツであるものとする。なお、RSS文書61の内部サーバ32での格納場所を示すURL(URL#1)は、「http://int1.sample.co.jp/index.rdf」である。
このようなRSS文書61を受け取ったコンテンツ変換部162は、図9に示すポリシー管理テーブル131に示される変換ポリシーをRSS文書に適用する。すなわちコンテンツ変換部162は、RSS文書61のURL(URL#1)に対応付けられた秘匿場所の値をポリシー管理テーブル131から抽出する。この例では「/rss/channel/item/title/text()」と「/rss/channel/item/description/text()」とが抽出される。この値は、XML(Extensible Markup Language)の文書構造上のタグの位置によって秘匿場所を示している。例えば「/rss/channel/item/title/text()」は、上位から下位へ<rss>、<channel>、<item>、<title>とタグを辿り、最後の<title>タグに囲まれたテキストが、秘匿対象コンテンツであることを示している。
コンテンツ変換部162は、抽出した秘匿場所の値に基づいてRSS文書61から秘匿対象のコンテンツを抽出し、ダミーデータに書き換える。
図17は、コンテンツ変換後のRSS文書(RSS#2)の例を示す図である。図17に示すRSS文書62では、コンテンツ「2008年12月人事情報」がダミーデータ「saioraebsapoofa92n」に変換されている。またコンテンツ「異動(A氏X部⇒Y部)」がダミーデータ「haneisnelskeospaosmepsme」に変換されている。このようにして生成されたRSS文書62がRSSリーダ41aに送信される。
またコンテンツ変換部162によって、変換前のコンテンツと変換後のダミーデータとの組が秘匿コンテンツ管理テーブル141に対して、図10に示したような2つのエントリが登録される。
その後、内部クライアント31のブラウザ31aがRSSリーダ41aにアクセスし、収集したコンテンツの取得のためのリクエストメッセージを送信すると、RSSリーダ41aからブラウザ31a宛にHTML文書(HTML#1)が送信される。
図18は、RSSリーダから配布されるHTML文書(HTML#1)の例を示す図である。このHTML文書63には、外部サーバ42などから収集したコンテンツと共に、RSS文書62に含まれていたダミーデータが記載されている。
HTML文書63が中継装置100に入力されると、変換対象判別部171によって<h3>タグおよび<div class="section">タグそれぞれで囲まれたバイト位置の文字列が抽出される。図18の例では、「saioraebsapoofa92n」と「haneisnelskeospaosmepsme」とが抽出される。そして、コンテンツ復元部172によって、ダミーデータが元のコンテンツに復元される。
図19は、コンテンツ復元後のHTML文書(HTML#2)の例を示す図である。コンテンツ復元後のHTML文書64では、ダミーデータが、そのダミーデータに対応付けて秘匿コンテンツ管理テーブル141に登録されていたコンテンツに復元されている。すなわち、「saioraebsapoofa92n」が「2008年12月人事情報」に復元され、「haneisnelskeospaosmepsme」が「異動(A氏X部⇒Y部)」に復元されている。
このようなHTML文書が内部クライアント31に送信され、ブラウザ31aによって画面表示される。
図20は、コンテンツの表示画面の例を示す図である。ブラウザ31aの表示画面65には、RSSリーダ41aから提供されたコンテンツが表示されている。その中には、内部サーバ32によって配布されたコンテンツ(「2008年12月人事情報」と「異動(A氏X部⇒Y部)」)も含まれる。
このようにして、HTML文書内のダミーデータが元のコンテンツに復元される。そしてHTML文書が内部クライアント31で表示されることで、ユーザ30は、外部サーバ41のRSSリーダ41aの機能を利用して、内部サーバ32で提供されるコンテンツを閲覧することができる。
しかもユーザ30は、外部クライアント43を用いて予めRSSリーダ41aに外部サーバ42で提供されるRSS文書のURLを登録しておけば、内部サーバ32と外部サーバ42の双方で提供されるコンテンツを含めた情報を、一括して閲覧することができる。その結果、RSSリーダを利用したコンテンツの収集・配布のサービルを利用する際の利便性が向上する。しかも、内部ネットワーク21から外部への出すことのできないコンテンツを秘匿したまま、外部サーバ41のRSSリーダ41aによるサービスの提供を受けることが可能となる。
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、外部サーバのRSSリーダがコンテンツの一部を切り出した文字列を配布する機能を有する場合に、ダミーデータの一部であっても元のコンテンツに復元できるようにするものである。なお第3の実施の形態に係るシステム構成は、図2〜図10に示した第2の実施の形態の構成と同じであるため、図2〜図10に示した各要素の符号を用いて第3の実施の形態を説明する。
第3の実施の形態では、変換対象判別部171とコンテンツ復元部172とによるコンテンツ復元処理が第2の実施の形態と異なる。相違する点は以下の通りである。
変換対象判別部171は、RSSリーダ41aから送信されたHTML文書からダミーデータを検索する際に、全体一致検索で該当文字列がヒットしない場合、部分一致で検索を行う。なお、第3の実施の形態において、ダミーデータは元のコンテンツと同じデータサイズで生成されているものとする。
コンテンツ復元部172は、ダミーデータに部分一致した文字列がある場合、一致した部分を、対応するコンテンツの一部に置き換える。具体的には、コンテンツ復元部172は、ダミーデータの一部が一致した文字列がある場合、そのダミーデータを含むエントリのコンテンツを秘匿コンテンツ記憶部140から読み出す。その後、コンテンツ復元部172は、ダミーデータ中の、HTML文書中の文字列と一致した部分の範囲(一致範囲)を判断する。範囲は、例えばダミーデータの先頭からのバイト数で示される。次にコンテンツ復元部172は、該当ダミーデータに対応するコンテンツから、一致範囲と同じ位置の文字列を抽出する。そして、コンテンツ復元部172は、コンテンツから抽出した文字列で、HTML文書内のダミーデータに一部一致した文字列を置き換える。
図21は、第3の実施の形態のコンテンツ復元処理の手順を示す図である。以下、図21に示す処理をステップ番号に沿って説明する。
[ステップS81]変換対象判別部171は、外部ネットワーク22から受信したメッセージの送信元が、外部サーバ41のRSSリーダ41aか否かを判断する。具体的には、変換対象判別部171は、受信したメッセージの送信元のドメイン名を検索キーとして、RSSリーダアドレス記憶部110に登録されているアドレスを検索する。該当するドメイン名を含むアドレスがヒットした場合、受信したメッセージの送信元が外部サーバ41のRSSリーダ41aであると判断される。RSSリーダ41aから送られたメッセージであれば、処理がステップS82に進められる。RSSリーダ41aから送られたメッセージでなければ、コンテンツ復元処理が終了する。
[ステップS82]変換対象判別部171は、受信したメッセージに含まれるHTML文書から変換対象のダミーデータ格納領域を検出する。具体的には、変換対象判別部171は、HTML文書を走査し、<h3>タグおよび<div class="section">タグのバイト位置を特定し、それらのタグで囲まれる範囲の文字列を抽出する。
[ステップS83]コンテンツ復元部172は、変換対象判別部171が抽出した文字列を検索キーとして、秘匿コンテンツ記憶部140内の秘匿コンテンツ管理テーブル141におけるダミーデータの欄を検索する。この際、ダミーデータの全体一致検索と、部分一致検索とが行われる。なお、部分一致と判断するための最小のデータ長が予め決められており、そのデータ長以上の文字の一致があった場合、部分一致と判断されるものとする。
[ステップS84]コンテンツ復元部172は、ステップS73の検索により一致するエントリが見つかったか否かを判断する。エントリが見つかった場合、処理がステップS87に進められる。エントリが見つからなかった場合、処理がステップS85に進められる。
[ステップS85]コンテンツ復元部172は、部分一致する文字列が検出されたか否かを判断する。部分一致する文字列が見つかった場合、処理がステップS86に進められる。部分一致する文字列が見つからなかった場合、コンテンツ復元処理が終了する。
[ステップS86]コンテンツ復元部172は、ダミーデータの部分位置の範囲とバイト位置を、そのダミーデータに対応するコンテンツから切り出す。その後、処理がステップS87に進められる。
[ステップS87]コンテンツ復元部172は、ダミーデータを元のコンテンツに復元する。すなわち、ダミーデータと全体一致する文字列がある場合、コンテンツ復元部172は、その文字列をダミーデータに対応付けられたコンテンツに書き換える。また、ダミーデータに部分一致する文字列がある場合、コンテンツ復元部172は、HTML文書内の部分一致した文字列を、ステップS85で抽出された文字列に書き換える。
このようにして、ダミーデータの一部がHTML文書に含まれる場合、部分一致した文字列に相当する部分のみを元のコンテンツに復元することができる。
図22は、第3の実施の形態におけるRSSリーダから配布されるHTML文書(HTML#1)の例を示す図である。図10に示す秘匿コンテンツ管理テーブル141と図22のHTML文書71内のコンテンツとを比較すると、ダミーデータ「saioraebsapoofa92n」に対しては、全体一致する文字列が検出される。他方、ダミーデータ「haneisnelskeospaosmepsme」に対しては、部分一致する文字列「haneisnels」が検出される。部分一致した文字列は、先頭から1バイトキャラクターで10文字である。すると、ダミーデータの先頭から10バイト分の文字列が部分一致する。そこでコンテンツ復元部172は、コンテンツ「異動(A氏X部⇒Y部)」の先頭から10バイト分の文字列を切り出す。この例では「異動(A氏」の文字が切り出され、ダミーデータの部分と置き換えられる。
図23は、第3の実施の形態におけるコンテンツ復元後のHTML文書(HTML#2)の例を示す図である。コンテンツ復元後のHTML文書72では、コンテンツ「2008年12月人事情報」については全体が復元されているが、コンテンツ「異動(A氏X部⇒Y部)」については、先頭から10バイト分の文字列「異動(A氏」のみが復元されている。
このように、RSSリーダ41aが配布するHTML文書71において、ダミーデータの一部のみが含まれている場合、復元する際にもコンテンツ内の一部のみを復元することができる。その結果、元のコンテンツのデータサイズが大きく、RSSリーダ41aにおいて見やすさを考慮した短縮が行われた場合、復元後においても、画面の見やすさを損なわないHTML文書72を作成することができる。
HTML文書72は、中継装置100から内部クライアント31に対して送信される。そして内部クライアント31のブラウザ31aによって、HTML文書72の内容が画面表示される。
なお、ダミーデータを非マルチバイトの文字コード(例えばASCIIコードで0x20-0x7Eの1バイト文字)で作成し、コンテンツがマルチバイト文字の場合、文字コードが部分一致した際に、文字コードの途中で切り出されてしまう場合がある。例えばEUCコードのとき、先頭バイトが0x00〜0x7Eの場合は1バイト文字だが、0x8E〜0xFEはマルチバイト文字(2バイト目が存在する文字)になる。このとき、EUCコードの元コンテンツが2バイト文字のみで構成されており、ASCIIコード上では11バイトの文字列に減らされていたときを想定する。
元のコンテンツは、バイナリで”B0 DB C6 B0 A1 CA A3 C1 BB E1 A1 A1”=“異動(A氏 ”…であるとき、最後の0xA1がない11バイトのデータ”B0 DB C6 B0 A1 CA A3 C1 BB E1 A1”が書き換えるべきコンテンツに該当する。コンテンツ復元部172は、このようなマルチバイト文字の境界になっていないデータを変換する際に、文字コードの境界に合わせてバイト位置を調整する機能を有する。調整の方法としては、1文字分になるようにバイトを追加(上記の例で12バイト目の0xA1を追加)するか、バイトを削除(上記の例で11バイト目の0xA1を削除)する方法のどちらでもよい。
〔第4の実施の形態〕
次に第4の実施の形態について説明する。第4の実施の形態は、RSSリーダによって作成されるHTML文書内のダミーデータが含まれる可能性のあるダミーデータ格納領域が不明な場合に、ダミーデータ格納領域の事前調査を行うものである。
図24は、第4の実施の形態に係る中継装置のゲートウェイ機能を示すブロック図である。図24に示す第4の実施の形態に係る中継装置100aのゲートウェイ機能のうち、図6に示した第2の実施の形態に係る中継装置100のゲートウェイ機能と同じ要素には、同じ符号を付し説明を省略する。
第4の実施の形態に係る中継装置100aには、第2の実施の形態に係る中継装置100に対して走査ルール判定手段181と走査ルール記憶部182とが追加されている。変換対象判別部171aは、第2の実施の形態における変換対象判別部171と異なる機能を有している。
走査ルール判定手段181は、外部サーバ41のRSSリーダ41aから配布されるHTML文書内で、ダミーデータがどの位置に現れるかを調査する。具体的には、RSSリーダアドレス記憶部110に新たなRSSリーダのURLが登録されると、走査ルール判定手段181は、RSSリーダ41aに対して調査用RSS文書(RSS#X)を公開する。また走査ルール判定手段181は、調査用RSS文書のアドレスである調査用URL(URL#X)を、RSSリーダ41aに送信する。
例えば、走査ルール判定手段181は、すべて同じ文字で構成されたコンテンツを含む調査用RSS文書(RSS#X)を公開する。さらに走査ルール判定手段181は、調査用RSS文書(RSS#X)によって公開されたコンテンツを含むHTML文書(HTML#X)を配布するメッセージを取得し、埋め込んだ特定パターンの現れ方からダミーデータ格納領域を検出する。そして走査ルール判定手段181は、検出したダミーデータ格納場所の走査ルールを生成して、走査ルール記憶部182に格納する。
なお調査用RSS文書(RSS#X)と調査用URL(URL#X)とは、予め走査ルール判定手段181が管理するRAM102またはHDD103内の記憶領域に格納されている。
走査ルール記憶部182は、走査ルール判定手段181が調査した走査ルールを記憶する記憶機能である。例えば、RAM102やHDD103の記憶領域の一部が走査ルール記憶部182として使用される。
変換対象判別部171aは、第2の実施の形態とは異なり、走査ルール記憶部182に登録された走査ルールに従って、RSSリーダ41aから配布されたHTML文書からダミーデータを検出する。
図25は、走査ルール記憶部のデータ構造例を示す図である。走査ルール記憶部182には、走査ルール管理テーブル182aが格納されている。走査ルール管理テーブル182aには、外部サーバURLと走査場所との欄が設けられている。各欄の横方向に並べられた情報が互いに関連付けられ、走査ルールを示す1つのエントリとなる。
外部サーバURLの欄には、走査ルールが適用されるHTML文書の送信元となる外部サーバのURLが設定される。走査場所の欄には、配布されたHTML文書内のダミーデータ格納領域を示す情報が設定される。図25の例では、走査場所の欄に、ダミーデータが設定される領域の前後に設けられるタグが示されている。
第4の実施の形態では、RSSリーダに対して調査用のRSS文書のURLを登録するする調査用URL登録処理が行われる。
図26は、調査用URL登録処理の手順を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
[ステップS91]走査ルール判定手段181は、RSSリーダアドレス記憶部110に対して新たなエントリが登録されたか否かを監視する。新たなエントリが登録された場合、処理がステップS92に進められる。新たなエントリが登録されていなければ、走査ルール判定手段181は、ステップS91の処理を繰り返し、エントリが登録されたか否かの監視を継続する。
[ステップS92]走査ルール判定手段181は、調査用URLをRSSリーダに登録する。例えば、RSSリーダアドレス記憶部110に外部サーバ41内のRSSリーダ41aのURLが新たに登録された場合、走査ルール判定手段181は、RSSリーダ41aに対して調査用URLを登録する。調査用URLは、中継装置100aのドメイン名をホスト名とするURLである。
具体的には、中継装置100aの管理者は、予めRSSリーダ41aを利用するためのアカウントを取得しておき、そのアカウントの認証情報を走査ルール判定手段181に設定しておく。その後、RSSリーダ41aのURLがRSSリーダアドレス記憶部110に設定されると、走査ルール判定手段181は、予め設定された認証情報により予め取得したアカウントでRSSリーダ41aにアクセスする。そして走査ルール判定手段181は、RSSリーダ41aに対して収集対象のRSS文書のURLとして調査用URL(URL#X)の登録を要求する。するとRSSリーダ41aにより、RSS文書URL記憶部41bに調査用URL(URL#X)が登録される。
このようにRSSリーダ41aに対して調査用URL(URL#X)を登録しておくことで、RSSリーダ41aは定期的に中継装置100aに対して、調査用URL(URL#X)を指定したRSS文書取得のリクエストメッセージを送信する。中継装置100では、該当するリクエストメッセージを受信すると、ダミーデータ格納領域調査処理を実行する。
図27は、第4の実施の形態に係るメッセージ受信時の中継装置の処理を示す図である。なおステップS101〜S104,S107〜S110の処理は、それぞれ図12に示した第2の実施の形態におけるステップS41〜S48の処理と同じである。ただし、ステップS104でYESと判断された場合には、処理がステップS105に進められる。以下、第2の実施の形態と異なる処理をステップ番号に沿って説明する。
[ステップS105]中継装置100は、受信したメッセージの取得対象とするRSS文書のURLが、調査用URL(URL#X)か否かを判断する。調査用URL(URL#X)取得のリクエストメッセージであれば、処理がステップS106に進められる。調査用URL(URL#X)取得のリクエストメッセージでなければ、処理がステップS107に進められる。
[ステップS106]中継装置100の走査ルール判定手段181は、ダミーデータ格納領域調査処理を実行する。その後、処理が終了する。
図28は、ダミーデータ格納領域調査処理の手順を示すフローチャートである。以下、図28に示す処理をステップ番号に沿って説明する。
[ステップS121]走査ルール判定手段181は、リクエストメッセージに対して、調査用RSS文書(RSS#X)を応答する。調査用RSS文書(RSS#X)は、例えば調査したい項目が同一の文字(”x”など)の羅列になっているものである。外部サーバ41のRSSリーダ41aはレスポンスを取得すると、調査用RSS文書(RSS#X)内のコンテンツを、コンテンツ記憶部41cに保持する。
[ステップS122]走査ルール判定手段181は、クライアントとして外部サーバ41のRSSリーダ41aにコンテンツ取得のリクエストを送る。すると、外部サーバ41のRSSリーダ41aは、調査用RSS文書(RSS#X)から取得したコンテンツを所定のタグ中に埋め込んだHTML文書(HTML#X)を、中継装置100aに応答する。
[ステップS123]走査ルール判定手段181は、受信したHTML文書(HTML#X)のタグ中に含まれるダミーデータの文字列の位置を検索し、HTML文書内での該当位置の走査ルールを判定する。例えば走査ルール判定手段181は、HTMLタグ構造上の位置および前後に文字がある場合、そのタグおよび文字列を抜き出し、それらの情報を走査ルールとする。
[ステップS124]走査ルール判定手段181は、判定した走査ルールを、HTML文書(HTML#X)のURLと共に走査ルール記憶部182に格納する。
次に調査用RSS文書(RSS#X)と、RSSリーダ41aから応答されるHTML文書(HTML#X)との具体例を用いて、走査ルールの判定例を説明する。
図29は、調査用RSS文書(RSS#X)の具体例を示す図である。図29に示す調査用RSS文書81は、XML形式の構造化文書である。そして、調査用RSS文書81内の所定のタグで囲まれた領域に、連続する”x”の文字列からなるコンテンツが設定されている。
図30は、応答されるHTML文書(HTML#X)に応じた走査ルールを示す図である。図30の例では、外部サーバ41から応答されるHTML文書82において、<td>タグに囲まれた領域に連続する”x”の文字列が設定されている。なおHTML文書82では、連続する”x”の文字列の後に”...”の文字が記載されている部分もある。
そこで走査ルール判定手段181は、<td>タグに囲まれた領域に連続する”x”の文字列のみが設定されている部分から1つの走査ルールを生成する。この走査ルールでは、<td>タグに囲まれた領域が、ダミーデータの格納領域であることが示される。
また走査ルール判定手段181は、<td>タグに囲まれた領域に連続する”x”の文字列と”...”の文字が設定されている部分からもう1つの走査ルールを生成する。この走査ルールでは、<td>タグに囲まれ、最後に”...”の文字が記載された領域内の”...”の文字を除く部分がダミーデータであることが示される。
生成された2つの走査ルールは、外部サーバ41を示すURLに対応付けて、走査ルール管理テーブル182aに登録される。
このような走査ルールが登録されることで、変換対象判別部171aは、登録された走査ルールに従って、外部サーバ41より配布されたHTML文書からダミーデータを抽出する。そして抽出されたダミーデータは、コンテンツ復元部172によって元のコンテンツに復元される。
図31は、走査ルールに従ったダミーデータの抽出およびコンテンツ復元例を示す図である。図31の例では、内部クライアント31からのリクエストメッセージに応答して、外部サーバ41からHTML文書83を含むレスポンスメッセージが中継装置100に送信されている。中継装置100では、走査ルール管理テーブル182aに設定された走査ルールに適合する場所から文字列を抽出する。HTML文書83からは、「タイトル」、「日付」、「saioraebsapoofa92n」、「haneisnelskeospaosmepsme」の各文字列が抽出される。抽出された文字列は、秘匿コンテンツ管理テーブル141に登録されているダミーデータと比較される。すると、「タイトル」と「日付」とは、ダミーデータとして登録されていないため、ダミーデータではないことが分かる。「saioraebsapoofa92n」と「haneisnelskeospaosmepsme」とは、ダミーデータとして秘匿コンテンツ管理テーブル141に登録されている。そこで、中継装置100では、HTML文書83内の「saioraebsapoofa92n」と「haneisnelskeospaosmepsme」との文字列が、秘匿コンテンツ管理テーブル141において対応付けて登録されているコンテンツに復元される。そして、ダミーデータをコンテンツに復元後のHTML文書84が、中継装置100から内部クライアント31に送信される。
このように外部サーバ41のRSSリーダ41aから配信されるHTML文書の走査ルールを作成しておけば、以降はその走査ルールに従って、ダミーの文字列を抜き出すことが可能となる。
〔第5の実施の形態〕
次に第5の実施の形態について説明する。第5の実施の形態は、外部サーバ41においてダミーデータの文字コードが変換された場合でも、元のコンテンツに復元できるようにしたものである。すなわち、文字コードの種別は、コンテンツを提供するサーバの実装に依存する。そのため、RSSリーダで収集したコンテンツ同士で、文字コードのコード体系が異なる場合がある。RSSリーダは、収集したコンテンツを統合したHTML文書をクライアントに配布するため、各コンテンツの文字コードのコード体系を統一する場合がある。すると中継装置から外部サーバにRSS文書に含めて送信したダミーデータについても、外部サーバからHTML文書で配布されるときには、文字コードが変更されている可能性がある。第5の実施の形態では、外部サーバにおいてダミーデータの文字コードが変更されても、ダミーデータを元のコンテンツに復元できるようにするものである。
なお第5の実施の形態に係るシステム構成は、図2〜図10に示した第2の実施の形態の構成と同じであるため、図2〜図10に示した各要素の符号を用いて第5の実施の形態を説明する。
第5の実施の形態では、コンテンツ変換処理におけるコンテンツ変換部162の処理と、コンテンツ復元処理におけるコンテンツ復元部172の処理とが第2の実施の形態と異なる。相違する点は以下の通りである。
図32は、第5の実施の形態におけるコンテンツ変換処理の手順を示すフローチャートである。図32に示す処理のうちステップS131,S132の処理は、それぞれ図14に示した第2の実施の形態におけるステップS61,S162の処理と同様である。そこで第2の実施の形態と異なるステップS134,S135の処理について説明する。
[ステップS133]コンテンツ変換部162は、コンテンツ取得部161が取得したRSS文書に含まれるコンテンツをダミーデータに変換する。この際、コンテンツ変換部162は、元のコンテンツの文字コードと同じコード体系によるダミーデータを生成する。
[ステップS134]コンテンツ変換部162は、コンテンツとダミーデータとを、所定のコード体系による文字コードに変換する。
[ステップS135]コンテンツ変換部162は、文字コード変換後のコンテンツとダミーデータとの組を、秘匿コンテンツ記憶部140に格納する。
図33は、第5の実施の形態におけるコンテンツ復元処理の手順を示すフローチャートである。図33に示す処理のうちステップS141,S142,S144,S145,S147の処理は、それぞれ図15に示した第2の実施の形態におけるステップS71〜S75の処理と同様である。そこで第2の実施の形態と異なるステップS143,S146の処理について説明する。
[ステップS143]コンテンツ復元部172は、外部サーバ41から配布されたHTML文書に含まれるダミーデータの文字コードを、所定の文字コード(コンテンツ変換部162による変換後の文字コードと同じコード体系)に変換する。所定の文字コードに変換することで、ステップS144における検索処理において、秘匿コンテンツ記憶部140から該当するダミーデータを見つけ出すことができる。
[ステップS146]コンテンツ復元部172は、ステップS144の検索処理で見つけ出されたエントリに含まれるコンテンツの文字コードを、外部サーバ41から配布されたHTML文書と同じコード体系の文字コードに変換する。コンテンツの文字コードをHTML文書に合わせた後、ステップS147においてダミーデータがコンテンツに復元される。その結果、内部クライアント31に送信されるHTML文書における文字コードのコード体系を統一させることができ、内部クライアント31において正しくコンテンツを表示できる。
ここで、内部サーバ32から配布するRSS文書の文字コードがShift-JIS、外部サーバ41から配布するHTML文書の文字コードがEUC-JPの場合を想定する。この場合、外部サーバ41のRSSリーダ41aでダミー文字列の文字コードが変わると、変換したダミーデータとは異なるバイト列のダミーデータが返ってくる。そのため、単純にバイトやビット単位の比較では、元のコンテンツに復元できなくなる。
そこで、第5の実施の形態では、コンテンツ変換部162がダミーデータを生成する際に、コンテンツと同じ文字コード(Shift-JIS)でダミーデータを生成する。そしてコンテンツ変換部162は、秘匿コンテンツ記憶部140にコンテンツおよびダミーデータを格納する際に、文字コード種別を内部管理用の文字コード(例えばUTF-8)に変換して格納する。なお、RSS文書の文字コード種別は、一般的に、内部サーバ32から送られてくる通信プロトコルのヘッダ領域に記載されている。
コンテンツ復元部172は、外部サーバ41から受け取ったHTML文書から抜き出したダミーデータの文字列を、内部管理用の文字コード(例えばUTF-8)に変換してから、秘匿コンテンツ記憶部140を検索する。コンテンツ復元部172は、検索でヒットしたエントリ内のコンテンツを秘匿コンテンツ記憶部140から読み出す。このとき読み出されるコンテンツは内部管理用の文字コード(例えばUTF-8)である。そのためコンテンツ復元部172は、読み出したコンテンツの文字コードを、HTML文書の文字コードであるEUC-JPに変換後、HTML文書ダミーデータとコンテンツの差し替えを行う。
このように文字コード変換の機能を追加することで、社外RSSサーバで文字コード変換が行われた場合でも、元のコンテンツに復元することができるようになる。
〔第6の実施の形態〕
次に第6の実施の形態について説明する。図2に示すようなシステムで、権限があるユーザ30が外部クライアント43を利用する場合に限り、外部クライアント43を利用するユーザ30に内部サーバ32,33の情報を見せたいという場合が考えられる。そこで第6の実施の形態は、内部サーバ32で公開されたRSS文書に含まれるコンテンツを、外部クライアント43から参照できるようにしたものである。
図34は、第6の実施の形態に係る中継装置のゲートウェイ機能を示すブロック図である。図34に示す第6の実施の形態に係る中継装置100bのゲートウェイ機能のうち、図6に示した第2の実施の形態に係る中継装置100のゲートウェイ機能と同じ要素には、同じ符号を付し説明を省略する。
第6の実施の形態に係る中継装置100bは、第2の実施の形態に係る中継装置100が有する要素に加えて、認証部191を有する。
認証部191は、外部クライアント43に対して、内部サーバ32,33のコンテンツを公開可能かの認証を行う。具体的には、認証部191は、外部クライアント43からのリクエストに対して、認証リクエストを返答する。その後、認証部191は、認証のためのユーザIDとパスワードとを外部クライアント43から取得すると、外部クラインと43を使用するユーザ30の認証を行い、そのユーザ30が内部のコンテンツにアクセス可能な権限を持つか否かを判断する。権限を有していれば、認証部191は、外部クライアント43から送られたコンテンツ取得のリクエストメッセージを、外部サーバ41のRSSリーダ41aに転送する。
コンテンツ復元部172aは、外部クライアント43からのリクエストメッセージに応じたHTML文書を含むレスポンスメッセージが外部サーバ41から届くと、そのレスポンスメッセージを外部クライアント43に対して送信する。
以下、外部クライアント43が外部サーバ41のRSSリーダ41aからHTML形式の画面データを取得する処理は、以下の手順で行われる。なお、内部サーバ32,33が公開しているRSS文書に含まれるコンテンツが、既にRSSリーダ41aのコンテンツ記憶部41cに格納済みであるものとする。
外部クライアント43は、ブラウザ43aを融資している。ユーザ30は、外部サーバ41のRSSリーダ41a経由で記事を購読する為に、ブラウザ43aに対してRSSリーダ41aへのアクセスを指示する。その指示に応じて外部クライアント43は、中継装置100bに対してHTML取得のリクエストメッセージを送信する。すると中継装置100bの認証部191が、外部クライアント43に対して認証リクエストを返信する。
外部クライアント43は、認証情報(ユーザIDおよびパスワード)を中継装置100bに対して返答する。中継装置100bの認証部191は、受信した認証情報を予め設定してあるユーザのアカウントの認証情報を照らし合わせ、ユーザ認証を行う。認証部191は、ユーザ認証に成功した場合、予め登録されているユーザの権限に関する情報を参照し、外部クライアント43を用いた内部サーバ32,33が提供するコンテンツへのアクセス権限の有無を判断する。アクセス権限がある場合、認証部191は、外部サーバ41のRSSリーダ41aにリクエストメッセージを転送する。外部サーバ41のRSSリーダ41aは、転送されたリクエストメッセージに応答し、ダミーデータを含むHTML文書(HTML#1)を中継装置100bに送信する。
中継装置100bの変換対象判別部171は、HTML文書(HTML#1)のレスポンスメッセージを走査し、<h3>タグおよび<div class="section">タグのバイト位置を特定し、ダミーデータを抜き出す。コンテンツ復元部172aは、ダミーデータを検索キーとして秘匿コンテンツ記憶部140を検索し、一致するダミーデータに対応するコンテンツを取得する。またコンテンツ復元部172aは、レスポンスメッセージ中のダミーデータの書き込まれていた領域を抽出下コンテンツで置き換える。そしてコンテンツ復元部172aは、元のコンテンツを含むHTML文書(HTML#2)を作成し、外部クライアント43に対して送信する。外部クライアント43では、HTML文書(HTML#2)を受信すると、HTML文書(HTML#2)にしたがってコンテンツを含む画面が表示される。
このような処理を行うための中継装置100bにおけるメッセージ受信時の処理は以下の通りである。
図35は、第6の実施の形態におけるメッセージ受信時の中継装置の処理を示す図である。図35に示す処理のうち、ステップS151〜S153,S160〜S163の処理は、それぞれ図12に示した第2の実施の形態におけるステップS41〜S48の処理と同様である。そこで第2の実施の形態と異なるステップS154〜S159の処理について説明する。
[ステップS154]中継装置100bは、受信したメッセージが、HTML取得のリクエストメッセージか否かを判断する。HTML取得のリクエストメッセージであれば、処理がステップS155に進められる。HTML取得のリクエストメッセージでなければ、認証処理がステップS156に進められる。
[ステップS155]HTML取得のリクエストメッセージを受信した場合、中継装置100bの認証部191は、ユーザ認証を要求する認証リクエストメッセージを外部クライアント43に応答する。その後、処理が終了する。
[ステップS156]認証部191は、受信したメッセージが、認証情報を含むレスポンスメッセージか否かを判断する。認証情報を含む場合、処理がステップS157に進められる。認証情報を含まない場合、処理がステップS160に進められる。
[ステップS157]認証部191は、認証情報に基づいてユーザ認証処理を行う。この例では、正しくユーザ認証ができたものとする。
[ステップS158]認証部191は、認証したユーザのアカウントに、内部サーバ32,33で公開されたコンテンツへのアクセス権限があるか否かを判断する。アクセス権限がある場合、処理がステップS159に進められる。アクセス権限が無い場合、処理が終了する。
[ステップS159]認証部191は、アクセス権限ありと判定した場合、HTML取得のリクエストメッセージを、外部サーバ41に送信する。その後、処理が終了する。
[ステップS164]コンテンツが復元されたHTML文書(HTML#2)が作成されると、コンテンツ復元部172aは、内部ネットワーク21または外部ネットワークへ、そのHTML文書(HTML#2)を送信する。具体的にはコンテンツ復元部172aは、内部クライアント31からのリクエストメッセージに対するレスポンスメッセージであれば、内部ネットワーク21を介して内部クライアント31へHTML文書(HTML#2)を送信する。またコンテンツ復元部172aは、外部クライアント43からのリクエストメッセージに対するレスポンスメッセージであれば、外部ネットワーク22を介して外部クライアント43へHTML文書(HTML#2)を送信する。その後、処理が終了する。
なお、外部クライアント43は、外部サーバ41のRSSリーダ41aにアクセスしに行く際に、直接RSSリーダ41aにアクセスするのではなく、中継装置100bを介してアクセスすることが必要である。これは例えば外部クライアント43のネットワーク環境設定中のProxy設定において、RSSリーダ41aにアクセスする際のProxyサーバとして中継装置100bを設定すればよい。
また、第6の実施の形態における認証部191は、単独でユーザ認証を行わずに、内部ネットワーク21に接続された認証サーバと連携してユーザ認証およびアクセス権限の有無を判断することもできる。この場合は、認証に必要な情報や認可に必要な情報が認証サーバ上にあり、そのサーバに対して認証部191が、外部クライアント43のアクセス可否を問い合わせることになる。
このようにして、外部ネットワーク22に接続された外部クライアント43を用いて、内部サーバ32,33が公開しているコンテンツを、外部サーバ41のRSSリーダ41a経由で参照可能になる。
〔第7の実施の形態〕
次に第7の実施の形態について説明する。第7の実施の形態は、RSSリーダの配布するコンテンツがJSON形式の場合でも、ダミーデータを元のコンテンツに復元可能とするものである。この場合、内部クライアントへの画面表示のフォーマットはHTML文書で渡され、その後にJSON形式でコンテンツのみの文書が内部クライアントに渡される。なお第7の実施の形態に係るシステム構成は、図2〜図10に示した第2の実施の形態の構成と同じであるため、図2〜図10に示した各要素の符号を用いて第7の実施の形態を説明する。
第7の実施の形態では、外部サーバ41のRSSリーダ41aは、第2の実施の形態で示したHTML文書(HTML#1)に代えて、JSON文書(JSON#1)を配布する。また中継装置100では、復元されたコンテンツを含むHTML文書(HTML#2)に代えて、復元されたコンテンツを含むJSON文書(JSON#2)を内部クライアント31に送信する。
図36は、外部サーバが配布するJSON文書(JSON#1)の例を示す図である。図36に示すようにJSON文書91には、ダミーデータ(「saioraebsapoofa92n」、「haneisnelskeospaosmepsme」)が含まれている。このようなJSON文書91が中継装置100に入力されると、変換対象判別部171によりJSON文書91からダミーデータが抽出される。
なお第7の実施の形態では、変換対象判別部171によるダミーの位置を指定する方法が第2の実施の形態と異なる。第7の実施の形態では、図36の例の場合、各要素に含まれるtitleおよびdescription要素がダミーデータの位置となる。
変換対象判別部171で抽出されたダミーデータは、コンテンツ復元部172により元のコンテンツに復元される。その結果、復元されたコンテンツを含むJSON文書(JSON#2)が生成される。
図37は、コンテンツが復元されたJSON文書(JSON#2)の例を示す図である。JSON文書92では、図36に示したJSON文書91内のダミーデータの部分が、元のコンテンツに書き換えられている。
このように、変換対象判別部171におけるダミーデータ格納領域の抽出方法を、JSON形式の文書に適合させることで、HTML以外の各種データ形式によりコンテンツ配布が行われても、ダミーデータを元のコンテンツに復元可能となる。
〔第8の実施の形態〕
次に第8の実施の形態について説明する。第8の実施の形態は、RSSリーダで配布されるコンテンツがXML形式の場合でも、ダミーデータを元のコンテンツに復元可能とするものである。なお第8の実施の形態に係るシステム構成は、図2〜図10に示した第2の実施の形態の構成と同じであるため、図2〜図10に示した各要素の符号を用いて第8の実施の形態を説明する。
第8の実施の形態では、外部サーバ41のRSSリーダ41aは、第2の実施の形態で示したHTML文書(HTML#1)に代えて、XML文書(XML#1)を配布する。また中継装置100では、復元されたコンテンツを含むHTML文書(HTML#2)に代えて、復元されたコンテンツを含むXML文書(XML#2)を内部クライアント31に送信する。
図38は、外部サーバが配布するXML文書(XML#1)の例を示す図である。図38に示すようにXML文書93には、ダミーデータ(「saioraebsapoofa92n」、「haneisnelskeospaosmepsme」)が含まれている。このようなXML文書93が中継装置100に入力されると、変換対象判別部171によりXML文書93からダミーデータが抽出される。
なお第8の実施の形態では、変換対象判別部171によるダミーの位置を指定する方法が第2の実施の形態と異なる。第8の実施の形態では、<contents>タグ中の<title>および<description>要素がダミーの位置となる。
変換対象判別部171で抽出されたダミーデータは、コンテンツ復元部172により元のコンテンツに復元される。その結果、復元されたコンテンツを含むXML文書(XML#2)が生成される。
図39は、コンテンツが復元されたXML文書(XML#2)の例を示す図である。XML文書94では、図38に示したXML文書93内のダミーデータの部分が、元のコンテンツに書き換えられている。
このように、変換対象判別部171におけるダミーデータ格納領域の抽出方法を、XML形式の文書に適合させることで、HTML以外の各種データ形式によりコンテンツ配布が行われても、ダミーデータを元のコンテンツに復元可能となる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、中継装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 第1のネットワークと第2のネットワークとの間の通信を中継する中継装置であって、
前記第2のネットワークに接続された情報収集装置から前記第1のネットワークに接続された情報提供装置が有する提供情報の取得要求を受信すると、前記情報提供装置から前記提供情報を取得する情報取得手段と、
前記情報取得手段が取得した前記提供情報をダミーデータに変換して前記情報収集装置に送信し、前記提供情報と前記ダミーデータとを関連付けて情報記憶手段に格納する第1の情報変換手段と、
前記第1のネットワークに接続された情報閲覧装置宛に、前記情報収集装置から前記ダミーデータが送信されると、前記情報記憶手段から前記ダミーデータに対応する前記提供情報を取得し、前記ダミーデータを前記提供情報に変換して前記情報閲覧装置に送信する第2の情報変換手段と、
を有することを特徴とする中継装置。
(付記2) 前記情報閲覧装置から前記情報収集装置宛の前記情報提供装置が有する前記提供情報の場所を示す第1のアドレスの登録要求を受信すると、前記第1のアドレスを前記中継装置内の場所を示す第2のアドレスに変換し、前記第2のアドレスの登録要求を前記情報収集装置に送信し、前記第1のアドレスと前記第2のアドレスとを対応付けてアドレス記憶手段に格納するアドレス変換手段をさらに有し、
前記情報取得手段は、前記情報収集装置から前記第2のアドレスを指定した情報の取得要求を受信すると、前記アドレス記憶手段を参照して前記第2のアドレスに対応する前記第1のアドレスを取得し、前記第1のアドレスで示された場所にある前記提供情報を前記情報提供装置から取得することを特徴とする付記1記載の中継装置。
(付記3) 前記第1の情報変換手段は、前記提供情報を、前記提供情報と同じデータサイズの前記ダミーデータに変換し、
前記第2の情報変換手段は、前記情報閲覧装置宛に、前記情報収集装置から前記ダミーデータの一部である部分ダミーデータが送信されると、前記情報記憶手段から前記部分ダミーデータを包含する前記ダミーデータに対応する前記提供情報から、前記ダミーデータ内の前記部分ダミーデータの位置と同じ位置の情報を抽出して部分提供情報とし、前記部分ダミーデータを前記部分提供情報に変換して前記情報閲覧装置に送信することを特徴とする付記1記載の中継装置。
(付記4) 前記情報収集装置から前記情報閲覧装置宛に前記ダミーデータを含む文書が送信されると、前記文書内の所定の場所に設定された情報を前記ダミーデータとして判別する変換対象判別手段をさらに有し、
前記第2の情報変換手段は、前記変換対象判別手段により判別された前記ダミーデータを前記提供情報に変換することを特徴とする付記1記載の中継装置。
(付記5) 前記情報収集装置に対して所定のデータパターンの調査用情報を送信し、前記情報収集装置から前記調査用情報を含む文書を取得し、取得した文書から前記調査用情報の設定場所を特定する走査ルールを判定し、前記走査ルールを走査ルール記憶手段に格納する走査ルール判定手段と、
前記情報収集装置から前記情報閲覧装置宛に前記ダミーデータを含む文書が送信されると、前記走査ルール記憶手段に記憶された前記走査ルールに従って送信された文書内の場所を特定し、特定した場所に設定されている情報を前記ダミーデータと判定する変換対象判別手段をさらに有し、
前記第2の情報変換手段は、前記変換対象判別手段により判別された前記ダミーデータを前記提供情報に変換することを特徴とする付記1記載の中継装置。
(付記6) 前記走査ルール判定手段は、タグによって文書構造が定義された構造化文書中の前記調査用情報が設定された場所を示すタグの情報を、前記走査ルールとすることを特徴とする付記5記載の中継装置。
(付記7) 前記第1の情報変換手段は、前記ダミーデータの文字コードを、所定のコード体系の文字コードに変換して前記情報記憶手段に格納し、
前記第2の情報変換手段は、前記情報収集装置から送信された前記ダミーデータの文字コードを前記所定のコード体系の文字コードに変換して、前記情報記憶手段から一致するダミーデータを検索し、検索によって見つけ出された前記ダミーデータに対応する前記提供情報を前記情報閲覧装置に送信することを特徴とする付記1記載の中継装置。
(付記8) 前記第1の情報変換手段は、文字列である前記提供情報と前記ダミーデータとの文字コードを、前記所定のコード体系の文字コードに変換して前記情報記憶手段に格納し、
前記第2の情報変換手段は、前記情報収集装置から前記情報閲覧装置宛に前記ダミーデータを含む文書が送信された場合、前記情報閲覧装置に送信する前記提供情報の文字コードを、前記ダミーデータを含む文書内の文字のコード体系の文字コードに変換し、前記ダミーデータを前記提供情報に書き換えた文書を前記情報閲覧装置に送信することを特徴とする付記7記載の中継装置。
(付記9) 前記第2のネットワークに接続された他の情報閲覧装置から、前記情報収集装置からの前記提供情報の取得要求を受け取ると、前記情報閲覧装置から認証情報を取得して前記提供情報へのアクセス権限の認証処理を行い、認証に成功すると前記情報収集装置に前記ダミーデータを要求する認証手段をさらに有し、
前記第2の情報変換手段は、前記認証手段からの要求に応じて前記情報収集装置から送信された前記ダミーデータを前記提供情報に変換して、前記他の情報閲覧装置に送信することを特徴とする付記1記載の中継装置。
(付記10) 第1のネットワークと第2のネットワークとの間の通信の中継処理をコンピュータに実行させる通信中継プログラムであって、
前記コンピュータに、
前記第2のネットワークに接続された情報収集装置から前記第1のネットワークに接続された情報提供装置が有する提供情報の取得要求を受信すると、前記情報提供装置から前記提供情報を取得し、
取得した前記提供情報をダミーデータに変換して前記情報収集装置に送信し、
前記提供情報と前記ダミーデータとを関連付けて情報記憶手段に格納し、
前記第1のネットワークに接続された情報閲覧装置宛に、前記情報収集装置から前記ダミーデータが送信されると、前記情報記憶手段から前記ダミーデータに対応する前記提供情報を取得し、前記ダミーデータを前記提供情報に変換して前記情報閲覧装置に送信する、
処理を実行させることを特徴とする通信中継プログラム。
(付記11) 第1のネットワークと第2のネットワークとの間の通信の中継をコンピュータで行う通信中継方法であって、
前記コンピュータが、
前記第2のネットワークに接続された情報収集装置から前記第1のネットワークに接続された情報提供装置が有する提供情報の取得要求を受信すると、前記情報提供装置から前記提供情報を取得し、
取得した前記提供情報をダミーデータに変換して前記情報収集装置に送信し、
前記提供情報と前記ダミーデータとを関連付けて情報記憶手段に格納し、
前記第1のネットワークに接続された情報閲覧装置宛に、前記情報収集装置から前記ダミーデータが送信されると、前記情報記憶手段から前記ダミーデータに対応する前記提供情報を取得し、前記ダミーデータを前記提供情報に変換して前記情報閲覧装置に送信する、
ことを特徴とする通信中継方法。