図1及び図2に本実施形態のシステム構成の一例を示す。図1は、公開元の端末10aが文書管理システム100内にある電子的な文書データ(以下単に「文書」という)を、公開先の他の端末10bを持つユーザに公開する操作を行う際に使用される要素群を示したものであり、図2は、公開先の端末10bが公開された文書を取得する際に使用される要素群を示したものである。図1と図2において、同一要素には同一符号を付している。文書管理システム100は、図1に示した公開操作時に使用される要素群102〜112と、図2に示した文書取得時に使用される要素群102、109〜128のすべてを有している。
図1において、端末10a及び10bは、スマートフォン、タブレット端末、ノートPC(パーソナルコンピュータ)等の携帯情報端末である。
このうち端末10aは、文書を公開するユーザが使用している端末である。このユーザは、文書管理システム100に対してユーザ登録されており、文書管理システム100に管理されている少なくとも1つの文書を自分が選んだユーザに公開(すなわち自分が選んだユーザが文書管理システム100からその文書を入手可能とする)権利を有する。以下、端末10aを操作するユーザを、公開元ユーザと呼ぶ。
一方、端末10bは、公開元ユーザが公開した文書を受け取るユーザが操作する端末である。このように公開元ユーザから文書の公開を受けるユーザのことを、以下では公開先ユーザと呼ぶ。公開先ユーザは、文書管理システム100にユーザ登録されておらず、文書管理システム100内に保管された文書に対するアクセス権を有していない。
本実施形態では、複数のユーザが例えば会議や講習等のために1つの場所で会合した際に、その中の公開元ユーザが他のユーザ(公開先ユーザ)に対して文書管理システム100内の文書を提供するための仕組みを提供する。ここで、公開元ユーザは、文書管理システム100にアクセス権を持っているが、公開先ユーザは、文書管理システム100に対するアクセス権を必ずしも持っていないものとする。
端末10aは、送受信部12及び端末情報取得部14を有する。送受信部12は、携帯電話回線又は無線通信技術等を用いてデータの送受信を行う装置である。
端末情報取得部14は、当該端末10aの近傍に位置する各端末10bの端末情報を取得する手段である。
取得する端末情報は、例えば、各端末10bを所有するユーザの電子メールのアドレス(以下「メールアドレス」という)である。また、電子メールアドレスに加え、各端末10bの端末ID(識別情報:Identification)を端末情報として取得してもよい。端末IDは、個々の端末の装置を一意に識別する識別情報であり、例えばMAC(Media Access Control)アドレス、携帯電話番号、携帯電話キャリアや公衆無線通信キャリアが付与したID等である。これら端末情報は、端末10b内に記憶されている。
端末情報取得部14は、赤外線通信、音声通信、Bluetooth(登録商標)等の近接無線通信技術を用いて各端末10bから端末情報を取得する。赤外線通信の場合は、端末10aと端末10bの赤外線通信ポート同士を互いに近づけ対向させて赤外線の送受信を行わせることで、端末情報を受け渡す。音声通信の場合、端末10aが超音波等の音波を用いて端末情報の要求を発信し、その要求を受け取った端末10bが、自身の記憶している端末情報を音波信号にて返信する。
近接無線通信技術や音声通信技術を用いる場合は、赤外線通信の場合のように端末同士を通信可能な特別な位置関係、姿勢とする必要はなく、ユーザは単に端末情報の受け渡しの操作をすればよい。例えば、端末10a及び端末10bはそれぞれ端末情報をやりとりするための端末情報通信プログラム(例えば端末10aの当該プログラムが、端末情報取得部14に該当)を実行しており、公開元ユーザが端末10aがそのプログラムに対して近傍の端末の情報取得を指示すると、端末10aのそのプログラムが近接無線通信等にて端末情報取得要求を発信する。近接無線通信の無線信号が届く範囲内の各公開先ユーザの端末10bの端末情報通信プログラムは、その端末情報取得要求に応じて、当該端末10b内に記憶されている端末情報を返信する。ここで、端末情報取得要求には、その要求の発信元である公開元ユーザの情報(例えば当該ユーザのメールアドレス、ユーザ名、端末10aの端末ID)が含まれていてもよい。また、端末10bの端末情報通信プログラムは、端末10bの画面に、その端末情報取得要求に含まれる公開元ユーザの情報、そのユーザから端末情報の要求を受けたことを示すメッセージ、及び、その要求に応じて当該公開先ユーザの端末情報を返信してよいか否かを入力するためのGUI(グラフィカルユーザインタフェース)を表示してもよい。そして、公開先ユーザがそのGUIに対して端末情報の送信を認める旨の入力を行うと、端末10bから端末10aに対して近接無線通信等にて端末10bの端末情報が送信される。
また、近接無線通信等を用いた端末情報の受け渡しのための操作として、例えば端末10aと10bとを軽くぶつけ合ったり、端末10aと端末10b群とを手に持って同時に振ったりするといった動作を行ってもよい。この場合、端末10aと端末10bに端末情報通信プログラムが、それら端末が搭載する加速度センサが検出した加速度を端末情報のやりとりのためのトリガとして認識する。そして、このトリガに応じて各端末10bの端末情報通信プログラムが当該端末10b内の端末情報を無線等で送信し、端末10aの端末情報通信プログラムがその端末情報を受信する。
以上に示した各例は、いずれも端末10bを有するユーザが、会合に参加していることを明示する動作(例えば端末10aとの赤外線通信、近接無線通信等による端末情報の問合せに対する応諾動作、端末10bを端末10aと同期して振る等の同期動作)を行うことで、端末10bの端末情報が端末10aに提供される。このため、単に位置的に近傍(例えば端末10aから近接無線通信の通信圏内)にいるだけで会合には参加していない人の端末情報が、公開先の情報として端末10aに収集される可能性が低減される。
ただし、このようにユーザの明示的な動作により端末10aの近傍のユーザのうち会合に参加している人のみを選別するという方式は一例に過ぎない。この代わりに、そのような選別は行わず、端末10aの端末情報取得部14が無線等による近接通信により得た近傍のすべての端末10bの端末情報の集合を、近傍端末情報として文書管理システム100に送るようにしてもよい。この場合、端末10aの近傍の端末10bのうち、文書の公開先とする端末10b(のユーザ)は、文書管理システム100(特に公開先判定部104)側で判定する。この判定の材料となる情報として、端末10aは、各端末10bから端末情報を取得したときの近接通信の通信強度(電波や音声の強度)の情報を、近傍端末情報に含めて文書管理システム100に送信してもよい。
互いに近傍に位置する端末間での端末情報のやりとりのための技術としては、特許文献4及び5に示されるもの等のように、上に例示したもの以外にも従来様々なものが用いられている。本実施形態では、端末情報を取得するための技術として、そのような従来技術やこれから開発される同じ目的のための技術を用いればよい。端末10aは、このような方法を用いることで、会議等のために会合している他のユーザの端末10bの端末情報を収集する。
公開元の端末10aの端末情報取得部14は、取得した近傍の端末10b群の端末情報と自分自身の端末情報との集合を含んだ近傍端末情報を、送受信部12を介して文書管理システム100に送信する。近傍端末情報は、会合しているユーザの集合を表す情報として機能する。また、図示は省略したが、この近傍端末情報に加え、端末10aは、公開元のユーザが指定した公開対象の文書を特定する情報を含んだ公開指示を文書管理システム100に送信する。
文書管理システム100は、文書群を記憶し、管理するシステムである。文書管理システム100は、当該システムに対して登録された各ユーザ(以下「登録ユーザ」と呼ぶ)のユーザID及び認証情報(例えばパスワード、指紋等の生体認証情報)等を含むユーザ情報を保持している。文書管理システム100は、ログインしてきたユーザに対してユーザID及び認証情報の入力を求め、そのユーザ情報と照合することで、ログインを許可するか否かを判定する。また、文書管理システム100は、登録ユーザから文書の登録を受け付けたり、自らが保持している文書に対する登録ユーザからの閲覧や編集等の操作を受け付けたりする。文書管理システム100は、各文書に対する各登録ユーザのアクセス権(例えば閲覧権、編集権)を管理しており、そのアクセス権の情報に従い、保管している文書に対する各登録ユーザからの操作を受け付けるか否かを制御する。
ここで、文書に対する登録ユーザのアクセス権の1つとして公開権が設定されていてもよい。公開権は、文書を、文書管理システム100に登録されていないユーザ(以下「非登録ユーザ」と呼ぶ)や、その文書にアクセス権がない登録ユーザに対して公開(すなわちそれらユーザの閲覧を認める)する権利である。登録ユーザは、自らが公開権を有する文書に対し、公開の操作を行うことができる。
図1に示すように、文書管理システム100は、端末10aからの文書公開操作に応じた処理のための機能モジュールとして、送受信部102、公開先判定部104、識別情報生成部106、文書公開処理部108、メール送信部109、文書記憶部110、公開先記憶部112、及び公開情報記憶部114を備える。
送受信部102は、携帯電話回線又は無線通信技術等を用いて、端末10a及び10bとの間でデータの送受信を行う装置である。送受信部102は、例えば、端末10aが送信した近傍端末情報を受信する。
公開先判定部104は、端末10aから受け取った近傍端末情報に基づき、公開対象の文書の公開先とすべき各ユーザを判定する。上述した例のように端末10aの端末情報取得部14が、近傍のユーザのうち会合に実際に参加しているユーザの端末情報のみを選別して取得する構成の場合、公開先判定部104は、近傍端末情報に含まれるすべての端末情報が示す端末及びユーザを公開先と判定する。一方、端末10aがそのような選別を行わず、取得した近傍のすべての端末10bの端末情報を含む近傍端末情報を文書管理システム100に送る構成の場合は、公開先判定部104は、例えばその近傍端末情報に含まれる各端末10bの通信強度を用いて、それら近傍の端末10bの中から、文書の公開先とする端末10b(及びユーザ)を選抜する。例えば、近傍端末情報に含まれる端末10bのうち、通信強度が閾値以上(すなわち端末10aに対する距離がある基準よりも小さい)である端末10bのみを文書の公開先と判定する。また、この選抜には、各端末10bの機種情報を用いてもよい。例えば、端末10aのユーザが属する組織が各人に支給している機種の端末10bのみを公開先に選抜したり、機種情報から特定される端末10bの種別が例えばタブレット端末やスマートフォン等と言った特定の種別である場合にその端末10bを公開先に選抜したりするなどである。この場合、近傍端末情報に含まれる各端末10bの端末情報には機種情報が含まれているとする。また、通信強度と端末の種別の組合せなど、複数の情報の組合せに基づいて、公開先とする端末10bを判定してもよい。
また、会合に参加する予定ではあったが実際には参加できなかったユーザに対しても文書の公開を行う実施例では、公開先判定部104は、スケジュール管理システム20に対してスケジュール確認要求を送り、その要求に対して返信されてきたスケジュール情報を
参照してその会合に参加予定であったユーザを特定する。そして、参加予定であったユーザのうち、端末10aからの近傍端末情報内に、対応する端末情報(メールアドレス等)が含まれていないユーザがいれば、そのようなユーザも公開先と判定する。なお、スケジュール確認要求には、公開元のユーザのメールアドレス(公開元のメールアドレスは、例えば端末10aからの公開指示に含まれる)が含まれる。スケジュール管理システム20は、確認要求を受けた時刻に該当するスケジュール(又はその時刻の近傍のスケジュール)の中から、公開元のユーザを参加予定者として含むスケジュールを特定し、そのスケジュールの参加予定者の情報を文書管理システム100に返す。
識別情報生成部106は、公開先判定部104が判定した公開先の各端末10b(更に公開元の端末10aを公開先として取り扱ってもよい)に対し、文書公開の制御において用いる当該端末の識別情報(以下「公開先ID」と呼ぶ)を生成する。各端末10bの公開先IDは、当該端末10bの端末情報から生成する。例えば、端末情報に含まれる端末IDとメールアドレスの文字列同士を繋げたもののハッシュ値を、当該端末の公開先IDとするなどである。この代わりに、端末情報に含まれる情報項目(端末ID及びメールアドレス)のうちの1つを公開先IDとして用いてもよい。識別情報生成部106は、生成した公開先IDと、その元になった端末情報の組を公開先記憶部112に登録する。
公開先記憶部112は、公開先の各ユーザ(端末)の情報を記憶するデータベースである。図3に公開先記憶部112の記憶するデータ内容の一例を示す。この例では、文書の公開先に判定されたユーザごとに、そのユーザの公開先ID、端末ID及びメールアドレスが記憶されている。このうち端末ID及びメールアドレスは、端末10aから送られてきた近傍端末情報内の個々の端末情報から抽出される。図3の例では、3つの端末のユーザが公開先と判定されており、そのうち3番目のユーザについては端末IDが取得できず、メールアドレスのみが取得されている。
文書記憶部110は、文書群を記憶するデータベースである。図4に文書記憶部110が記憶する文書の管理データの一例を示す。この例では、各文書を一意的に識別するための文書IDに対応づけて、当該文書の文書名、作成日、更新日が登録されている。文書の実体データ(例えば文書ファイル)は、文書IDに対応づけられて文書記憶部110内に記憶されているものとする。
また、図示は省略したが、文書管理システム100は、当該システム100に対して登録された登録ユーザのユーザ情報を保持している。図5に、文書管理システム100が有するユーザ情報の一例を示す。この例では、ユーザ情報には、個々のユーザのユーザ情報として、文書管理システム100でのそのユーザの識別情報であるユーザIDと、そのユーザのユーザ名と、そのユーザのメールアドレスの組が含まれる。
文書公開処理部108は、端末10aからの公開指示に応じて、近傍端末情報に基づいて判定された公開先の各ユーザに対して、公開指示の対象である文書を公開する。この「公開」の処理は、具体的には、誰に対してどの文書を公開するかを示す公開情報を公開情報記憶部114に登録する処理のことである。すなわち、文書公開処理部108は、端末10aからの公開指示に含まれる公開対象の文書を特定する情報と、その公開指示に対応づけて送られてきた近傍端末情報から特定された公開先の情報との組を、公開情報記憶部114に登録する。
図6に公開情報記憶部114のデータ内容の一例を示す。図6に示した表のうちの各行が、それぞれ1回の公開指示に応じて生成された公開情報を示している。図6の例では、個々の公開情報は、公開ID、文書ID、公開日、公開期限、公開者、公開先の項目を含んでいる。公開IDは、個々の公開指示に対して文書公開処理部108が一意的に付与した識別情報である。文書IDは、公開対象の文書の文書IDである。一度の公開指示で複数の文書が公開対象に指定された場合、文書IDの欄にはそれら複数の文書の文書IDが列挙される。公開日は、公開指示を受け付けた日時の情報である。公開期限は、公開対象の文書を公開する期間の終期である。この例では、公開日から公開期限までの間、公開先のユーザは公開対象の文書を入手できる。公開期限の値は、公開元のユーザが指定し、公開元のユーザから明示的な指定がない場合はあらかじめ用意したデフォルト値とする。なお、公開期限の代わりに、公開期間の始期と終期の両方を設定するようにしてもよい。公開者は、公開元のユーザを示す情報であり、ここでは文書管理システム100での公開元ユーザのユーザIDが登録されている。公開先の欄には、公開先判定部104が判定した各公開先のユーザの公開先IDが登録される。公開先のユーザが複数存在する場合、それら複数のユーザの公開先IDが列挙される。
文書公開処理部108は、端末10aからの公開指示、及び識別情報生成部106が生成した公開先IDの情報に基づき、図6に例示した公開情報を生成し、公開情報記憶部114に登録する。
また、文書公開処理部108は、公開先の各ユーザに対して文書の公開を知らせる公開通知メールを生成し、メール送信部109にその公開通知メールの送信を行わせる。公開通知メールは、公開文書取得用のURL(Uniform Resource Locator)(以下「公開URL」と呼ぶ)を含んだ電子メールである。公開URLは、例えば「http://www.example.com/docmentManager/share」などのようにあらかじめ定めた固定のURLであってよい。この例の公開URLは、文書管理システム100のどの文書を公開する場合にも用いられる共通のものである。公開通知メールを受け取ったユーザが、そのメールに記載された公開URLにアクセスすると、その公開URLに対応するHTTP(Hypertext Transfer Protocol)リクエストが文書管理システム100に届き、文書管理システム100がそのリクエストに応じて文書公開のための処理(後で図2等を参照して説明)を開始する。文書によらない共通の公開URLを用いる例では、ユーザが公開URLにアクセスすることで、文書管理システム100からそのユーザに対し、そのユーザに公開されたすべての文書を一度にまとめてそのユーザに提供してもよい。
また、別の例として、公開IDごとに異なる公開URLを用いてもよい。例えば、公開URLに公開IDを含めるなどである。この例では、公開通知メール中の公開URLにアクセスしたユーザには、その公開URLに対応する公開IDの公開対象の文書のみが提供される。
公開通知メールには公開URLの他に、公開期限を知らせるメッセージが含まれてもよい。また、公開元ユーザの情報(例えばユーザ名)、公開対象の文書の文書名、公開元ユーザが公開指示を行った日時など、公開先ユーザが公開対象の文書を識別する助けとなる情報を公開メールに組み込んでもよい。
メール送信部109は、電子メールを送信するメール送信サーバである。本実施形態の文脈では、メール送信部109は、例えば、文書公開処理部108が生成した公開通知メールを、公開先判定部104が判定した各公開先のユーザのメールアドレス宛に送信する。電子メールの送信は、送受信部102を介して行われる。
スケジュール管理システム20は、例えば企業や役所、各種団体等の組織において予定されているイベント(すなわち「スケジュール」)の情報を管理するシステムである。スケジュール記憶部22には、個々のスケジュールの管理情報が記憶される。
図7にスケジュール情報の一例を示す。この例では、個々のスケジュールの管理情報には、スケジュールID、スケジュール名、開始日時、終了日時、及び参加者の各項目が含まれる。スケジュールIDは、当該スケジュールを一意的に識別するための識別情報である。スケジュール名は、当該スケジュールを登録したユーザ等が付けた、当該スケジュールの名称である。開始日時及び終了日時は、当該スケジュールの開始及び終了の予定日時である。参加者の欄には、当該スケジュールに参加する予定の各ユーザのユーザIDが列挙される。
なお、スケジュール記憶部22に登録される参加者のユーザIDは、スケジュール管理システム20におけるユーザの識別情報である。スケジュール管理システム20と文書管理システム100が別々にユーザ管理を行っている場合、両者のユーザIDは一般に一致しない。
図8にスケジュール管理システム20が管理するユーザ情報の一例を示す。この例では、ユーザ情報には、個々のユーザのユーザ情報として、スケジュール管理システム20でのそのユーザの識別情報であるユーザIDと、そのユーザのユーザ名と、そのユーザのメールアドレスの組が含まれる。
上述のようにスケジュール管理システム20と文書管理システム100との間で、同じユーザに付与されたユーザID同士が一致しない場合でも、同一ユーザのメールアドレスは一致する(両システムには同一人について同じメールアドレスが登録されているものとする)ので、メールアドレスを参照することで、同一人かどうかを判定できる。
スケジュール記憶部22のスケジュール情報には、図7に例示した項目の他に、そのスケジュールに係るイベント(会合など)が開催される場所を特定する情報(例えば会議室の識別情報や、会合場所の緯度、経度の情報など)が含まれてもよい。
スケジュール管理システム20の送受信部24は、文書管理システム100との間でデータの送受信を行う装置である。これら両者間のデータの送受信は、例えば、ローカルエリアネットワークやインターネット等のデータ通信ネットワーク経由で行われる。送受信部24は、文書管理システム100からのスケジュール確認要求を受け取る。スケジュール確認要求には公開元ユーザのメールアドレスが含まれているので、スケジュール管理システム20は、そのメールアドレスに対応するユーザIDをユーザ情報(図8参照)から求め、スケジュール記憶部22内のスケジュールの中から、その公開元ユーザのユーザIDを参加者として含み、かつ、その確認要求を受け取った時刻をスケジュール期間、すなわち開始日時から終了日時までの期間内に含んだ(あるいはスケジュール期間が確認要求の受信時刻に近い)スケジュールを特定する。そして、特定したスケジュールの各参加者のユーザIDを求め、それら各ユーザIDに対応するメールアドレスをユーザ情報(図8参照)から求める。そして、そのように求めたそのスケジュールの参加者のメールアドレスのリストを、要求元である文書管理システム100に送信する。文書管理システム100は、このリストと、別途端末10aから送られてきている近傍端末情報から、会合に参加する予定ではあったが実際には参加していないユーザを特定し、そのユーザを文書の公開先に追加する。
なお、スケジュール管理システム20は、会合に参加する予定ではあったが実際には参加していないユーザに対しても文書を公開する例において用いられるものである。会合に実際に参加したユーザ以外には文書を公開しない例では、スケジュール管理システム20は不要である。
なお、図3〜図8に例示した各記憶部の記憶するデータ項目群はあくまで一例に過ぎない。各記憶部は、図3〜図8に例示した項目すべてを記憶するものでなくてもよいし、図3〜図8に例示した項目以外の項目を記憶してもよい。
次に、図2を参照して、公開通知メールを受け取った端末10bが、そのメールに記載された公開URLを用いて文書の公開を受ける際に用いられるシステム構成について説明する。
図2に示すように、文書管理システム100は、端末10bからの公開文書の要求に応じた処理のための機能モジュールとして、送受信部102、メール送信部109、文書記憶部110、公開先記憶部112、公開情報記憶部114、認証情報記憶部116、端末情報判定部120、認証コード生成部122、認証URL生成部124、認証コード判定部126、公開文書提供部128を備える。このうち、図1に示したものと同符号の要素については、説明を省略する。
端末情報判定部120は、公開先の端末10bから送られてきた端末情報(特にメールアドレス)が有効なものであるか否かを判定する。ここでは、その端末情報が公開先記憶部112に記憶されており、かつ、公開情報記憶部114にその端末情報に対応するユーザを公開先とする文書が登録されている場合に、その端末情報が有効であると判定する。そうでなければ、その端末情報は無効なものと判定する。
認証コード生成部122は、有効と判定された端末情報のメールアドレス(すなわち公開先のユーザ)宛に提供する認証コードを生成する。認証コードは、公開URLに対してアクセスしてきた公開先のユーザ(すなわち端末情報を送信してきた端末10bのユーザ)が公開文書を取得する権利を有するユーザであることを証する、短期間のみ有効なコード情報である。これは、公開URLが特段の期限のないURLであったのと対照的である。
すなわち、本実施形態では、会合の際に公開URLを含む公開通知メールを受けた公開先のユーザには、公開対象の文書をすぐにダウンロードすることは要求しない。公開先のユーザは、対応する公開期限内の、ダウンロードの準備が整った時点で、公開URLにアクセスすればよい。このアクセスの時点では、公開先のユーザは公開対象の文書のダウンロードの準備ができていると想定できるので、その時点から短期間(例えば数分間から数時間)だけ有効な認証コードをそのユーザに提供し、ユーザがその認証コードを用いて公開文書のダウンロード要求をしてくるのを待つ。認証コードは、その公開先のユーザのメールアドレスに対して送る。このメールアドレスは、端末10bから公開URLへのアクセスに応じて提供したログインページに対して入力され、かつ、公開先記憶部112に登録されていると確認されたものである。仮に、公開URLを不正に入手した第三者がログインページに対して自分のメールアドレスを入力しても、そのメールアドレスは公開先記憶部112に登録されていないので、その第三者のメールアドレスに対して認証コードが送信されることはない。また、その第三者がそのログインページに対して正当な公開先ユーザのメールアドレスを入力した場合は、認証コードはその正当な公開先ユーザのメールアドレスに送られるだけであり、この場合も第三者は認証コードを入手できない。
正しい公開先のユーザは、公開URLにアクセスして入手した認証コードを端末10bから文書管理システム100に送ることで、そのユーザに対して公開された文書のデータを入手する。
認証コード生成部122は、ログインページから入力された端末情報(例えばメールアドレス)、又は公開先記憶部112に登録されているその端末情報に対応する公開先ID、又はその両方から、認証コード生成する。公開先ID、端末情報、又はその組合せのうちのいずれを認証コードの材料に用いるかは、あらかじめ設定しておけばよい。以下では、公開先IDを材料として用いる場合を代表例として説明する。認証コード生成部122は、例えば公開先IDの文字列に、その認証コード発行時点の日時(例えば公開URLに対して端末10bからアクセスがあった日時)の文字列を付加し、その付加結果の文字列のハッシュ値を求め、そのハッシュ値を認証コードとして用いる。この例では、日時の情報を組み込んでおくことで、過去に発行された認証コードの不正利用が成功する可能性を低減している。
認証コード生成部122は、生成した認証コードを、その元になった公開先ID(あるいはその元になった端末情報に対応する公開先ID)と対応づけて、認証情報記憶部116に登録する。認証情報記憶部116には、認証コードと公開先IDに加えて他の情報項目、例えば認証コードを発行した日時の情報、を記録してもよい。
図9に、認証情報記憶部116が記憶するデータ内容の一例を示す。この例では、認証コード、公開先ID、及び認証コードの発行日時の情報の組が記憶されている。1つの例では、この発行日時からあらかじめ定めた認証コードの有効期間(例えば数分から数時間)の間のみ、その認証コードは有効である。発行日時の代わりに、認証コードの有効期限を認証情報記憶部116に登録してもよい。
また、認証情報記憶部116には、公開URLにアクセスしてきた端末10bの識別情報も合わせて記憶してもよい。端末10bの識別情報としては、端末IDを用いてもよいし、公開URLにアクセスしてきた際の端末10bのIPアドレスを用いてもよい。IPアドレスは、公開URLにアクセスするHTTPリクエストに含まれているので、文書管理システム100が特別な処理をしなくても入手可能である。端末10bの識別情報(例えばIPアドレス)を認証情報記憶部116に記憶しておくことで、後に到来する認証コードを含んだダウンロード要求が、その正当な端末10bからのものであるか否かを判定し得る。何らかの方法で認証コードを不正入手した第三者が他の端末からその認証コードを用いて文書管理システム100に公開文書を要求したとしても、その不正要求は拒絶される。
また、認証情報記憶部116には、公開URLにアクセスしてきた際の端末10bの位置情報を記録してもよい。この位置情報は、例えば公開URLに対応するログインページに対してユーザが端末情報を入力して送信する際に、端末10bが例えば内蔵するGPS(グローバル・ポジショニング・システム)デバイスから取得し、文書管理システム100宛に送信すればよい。この位置情報は、後に到来する認証コードを含んだダウンロード要求が、その正当な端末10bからのものであるか否かを判定する際に用いる。認証コードの有効期間は短いので、その間に公開先のユーザが移動する距離は大きくないと考えられる。そこで、認証コードを受け取った際に、文書管理システム100が認証コードの送信元の端末から位置情報を取得し、その位置情報が示す位置が認証情報記憶部116に記憶されたその認証コードに対応する位置とを比較し、両者の距離が閾値以下であれば、その認証コードが有効であると判定する。両者の距離が閾値を超える場合、その認証コードは無効(例えば不正な第三者からのもの)と判定する。
認証URL生成部124は、認証コードを含んだURL(「認証URL」と呼ぶ)を生成し、その認証URLを含んだ電子メール(「認証通知メール」と呼ぶ)を生成する。認証URLは、公開URLに対して認証コードを付加してできるURLである。例えば「http://www.example.com/docmentManager/share/jfpoi80435jfjret」が認証URLの一例である。このうち末尾の文字列「jfpoi80435jfjret」が認証コードであり、その前が公開URLの文字列である。認証コードを認証URLに含めて公開先のユーザに通知すると、そのユーザがその認証URLにアクセスする操作(例えばURLのクリック操作)を行うだけで、端末10bから文書管理システム100に対して認証コードが送られることになる。
認証URL生成部124は、生成した認証通知メールを、メール送信部109及び送受信部102を介して、公開先ユーザのメールアドレス(すなわちログインページに入力されたメールアドレス)に送る。
認証コード判定部126は、端末10bからの認証URLに対するアクセス要求に含まれる認証コードが有効であるか否かを判定する。この判定では、その認証コードが認証情報記憶部116に記憶され、かつそのアクセス要求の時刻がその認証コードの有効期間内(例えば認証コードの発行日時から、あらかじめ定めた時間内)である、か否かを判定する。この判定結果が肯定の場合、その認証コードは有効であると判定する。
また更に、認証URLに対するアクセス要求の発信元の端末のIPアドレス等の識別情報又はそのアクセス要求の時点でのその端末の位置情報、又はその両方を取得し、それらの値を確認した上で認証コードの有効性を判定してもよい。この場合、端末の識別情報又は位置情報又はその両方が認証情報記憶部116に記憶されたものと一致(位置情報についてはその差が閾値以下)する場合にのみ、その認証コードが有効であると判定する。
公開文書提供部128は、認証URLに対するアクセス要求に含まれる認証コードが有効と判定された場合に、その認証コードに対応するユーザを公開先とする文書を文書記憶部110から取得する。それら文書群を、送受信部102経由で、そのアクセス要求の発信元の端末10bに対して送信する。このとき、それら文書群を含むアーカイブファイルを作成し、そのアーカイブファイルを端末10bに送ってもよい。
次に、図10及び図11を参照して、本実施形態のシステムの処理手順の一例を説明する。まず、図10を参照して、公開元ユーザが文書の公開指示を行ったときの処理の例を説明する。
まず公開元ユーザが、端末10aを操作して文書管理システム100にログインする(S100)。公開元ユーザは、文書管理システム100にアカウントを有しているので、ログインが可能である。このログインにより、文書管理システム100は、公開元ユーザの端末10aに対して、保管している文書群に対する操作のためのUI(ユーザインタフェース)画面を、例えばウェブページの形で提供する。このUI画面には、例えば、公開元ユーザがアクセス権を持つ文書の一覧や、この一覧に含まれる文書に対する絞り込み条件を入力する入力欄が含まれてもよい。文書の一覧には、各文書の識別情報(例えば文書ID)が含まれる。絞り込み条件は、例えば、文書の属性情報(例えば文書名や作成日時、公開元ユーザが持つその文書に対するアクセス権の種類)や文書本文に対する検索条件である。絞り込み条件を入力して絞り込みを指示すると、文書管理システム100は、その条件を満たす文書を抽出し、抽出された文書の一覧画面を公開元ユーザの端末10aに提供する。公開元ユーザは、このようなUI画面に示された文書の中から、公開対象とする一以上の文書を選択する(S102)。ここで、文書管理システム100に既に保持されている文書だけでなく、ユーザが端末10a上に保持する文書や、文書管理システム100以外のネットワークストレージ上にある文書を文書管理システム100にアップロードし、アップロードした文書を公開先に指定できるようにしてもよい。そして、公開元ユーザは、UI画面に示される公開指示ボタン(例えばこのボタンには「選択した文書を公開」等の説明が付随する)をクリックする等の操作により、それら選択した文書の公開を指示する(S104)。この公開指示操作により、選択された文書の識別情報(文書ID)の集合が端末10aから文書管理システム100に送られる。文書管理システム100は、この集合に含まれる文書を、公開対象と認識する。また、公開元ユーザは、端末10aに対して近傍端末の検索を指示する(S106)。この指示に応じ、端末情報取得部14が当該端末10aの近傍の各端末10bから端末情報を取得し(S108)、取得した端末情報の集合(すなわち近傍端末情報)を文書管理システム100に送信する(S110)。近傍端末情報は、S104の操作に応じて送られた公開対象の文書群の情報と対応づけて、文書管理システム100に送信される。
なお、公開元ユーザが近傍端末の検索指示を明示的に入力しなくても、例えば文書一覧画面に含まれる文書公開ボタンがクリックされると端末情報取得部14が動作する等の方式で、自動的に近傍端末の検索及びその検索結果(近傍端末情報)の送信がなされるようにしてもよい。
文書管理システム100は、端末10aから受け取った公開対象の文書群の情報と近傍端末情報を受信する。次に、文書管理システム100(特に識別情報生成部106)は、近傍端末情報に含まれる各公開先端末10bの端末情報について、その端末情報に対応する公開先IDを生成し(S200)、その公開先IDと端末情報の組を公開先記憶部112に登録する(S202)。また、文書管理システム100(特に文書公開処理部108)は、それら各公開先端末10bのユーザに対して、公開対象の文書群の公開処理を実行する(S204)。この公開処理では、公開情報記憶部114に対し、その公開対象の文書群の文書IDと、公開先端末10bに対応する公開先IDのリストとを含んだ公開情報を登録する。また、文書公開処理部108は、公開URLを含んだ公開通知メールを作成し、メール送信部109に、その公開通知メールを、それら各公開先端末10bのメールアドレス(S200で受け取った端末情報に含まれるもの)宛に送信させる(S206)。公開通知メールは、各公開先端末10bのユーザにより受信される。また、公開元の端末10aも文書の公開先に含める仕様の場合、公開通知メールは、公開元端末10aのユーザにも受信される(S112)。
次に、図11を参照して、公開通知メールを受け取った公開先のユーザが、その公開通知メールに含まれる公開URLへのアクセス操作を行ったときの処理の例を説明する。この手順では、まず公開通知メールを受け取ったユーザが、自分の操作する端末10bにて、その公開通知メールに含まれる公開URLにアクセスする操作(例えば公開URLをクリックするなど)を行う(S120)。この端末10bは、当該ユーザ宛の電子メールが受け取れるものであれば、会合時(公開元の端末10aが端末情報を収集した時)にそのユーザが操作していた端末10bとは別の端末でもよい。S120の操作に応じ、公開URLを含んだHTTPリクエストが端末10bから文書管理システム100に送られる。文書管理システム100は、そのリクエストに応じ、端末情報(ここではメールアドレス)の入力欄を含むログインページを返す。端末10bは、そのログインページを表示し、ユーザからのそのログインページの入力欄に対する端末情報の入力、及び送信指示の入力を受け付ける(S122)。端末情報が入力され、送信指示が入力されると、端末10bは、その端末情報を文書管理システム100に送信する(S124)。
文書管理システム100の端末情報判定部120は、受信した端末情報が公開先記憶部112に登録された有効な端末情報のいずれかに該当するかどうかを判定する(S210)。端末情報が有効でなければ、文書管理システム100は、例えば端末情報が有効でない旨を示すメッセージを記したウェブページを端末10bに返すなどのエラー処理を行い、今回の端末10bからアクセスに対する処理を終了する。
S210にて端末情報が有効であると判定した場合、認証コード生成部122が、その端末情報に対応する公開先IDを公開先記憶部112から取得し、その公開先IDから今回のアクセスに対応する認証コードを生成し(S212)、生成した認証コードをその公開IDと対応づけて認証情報記憶部116に登録する(S214)。そして、認証URL生成部124が、その認証コードと公開先URLとから認証URLを生成し(S216)、その認証URLを記載した認証通知メールを、メール送信部109を介して、その端末情報に含まれるメールアドレス宛に送信する(S218)。
ここで、文書管理システム100は、端末10bから受け取った端末情報が有効とS210で判定した場合、端末10bに対してパスワード等の設定画面をウェブページの形で提供し、公開先のユーザから(その端末情報に対応づけて生成した)認証コードに設定するパスワードの入力を受け付けてもよい。受け付けたパスワードは、その認証コードと対応づけて認証情報記憶部116に保存される。
その認証通知メールを受け取った(S126)公開先のユーザは、端末10bにてそのメールを閲覧し、そのメール内に表示された認証URLにアクセスする操作を行う(S128)。これにより、端末10bは、認証URLを含んだHTTPリクエストを文書管理システム100に送る。
このリクエストを受け取った文書管理システム100では、認証コード判定部126が、認証情報記憶部116を参照して、そのリクエスト中の認証URLに含まれる認証コードが有効か否かを判定する(S220)。認証コードが有効でない場合、文書管理システム100は、例えば認証コードが有効でない旨を示すメッセージを記したウェブページを端末10bに返すなどのエラー処理を行い、今回の端末10bからのアクセスに対する処理を終了する。
認証コードが有効な場合、公開文書提供部128が、その認証コードに対応する公開先IDを認証情報記憶部116から求め、その公開先IDを公開先のリストに含み、かつ公開期限が過ぎていない公開情報を公開情報記憶部114から求め、求めたすべての公開情報に含まれる公開対象の文書を特定する。そして、特定したそれら文書群を、S128のアクセスに対する応答として端末10bに送信する(S222)。特定した文書群は、アーカイブファイルにまとめて送信してもよい。また、認証URLに対するアクセスとこれに対する応答をSSL(Secure Socket Layer)等の通信路暗号化技術で暗号化することで、それら文書群の通信路上での漏洩を防ぐようにしてもよい。そして、文書管理システム100は、それら文書群をその公開先ユーザに提供した旨のログ情報を記録し、認証情報記憶部116から、その認証コードのエントリを削除する(S224)。認証コードを削除することで、同じ認証コードにより複数回文書群が取得されることがなくなる。ログ情報には、公開先ユーザの情報として、例えば、そのユーザのメールアドレスを記録する。
ここで、認証コード判定部126は、取得した認証URLに含まれる認証コードにパスワードが設定されていることが認証情報記憶部116の情報からわかった場合、S220にて、端末10bに対してパスワード入力用のウェブページを送信し、パスワード入力を受け付けてもよい。そして、入力されたパスワードが、認証情報記憶部116にその認証コードと対応づけて記憶されたパスワードと一致しない場合、S220で認証コードが無効と判定する。入力されたパスワードが正しく、また認証情報記憶部116に記憶された他のすべの情報から見ても認証情報が有効と判定された場合に、S220の判定結果がYESとなる。
端末10bは、文書管理システム100から送られてきた文書群を取得し、保存する(S130)。公開先のユーザは、端末10b内に保存した文書を閲覧する。
以上、本発明の実施形態を説明した。本実施形態の仕組みを用い、例えば、文書管理システム100に保存された会議資料を、そのシステム100に登録されていない会議参加者に配布するなどの応用が考えられる。
次に、会合に参加する予定であったが参加できなかったユーザに対しても文書を公開する仕組みの例について説明する。
この例では、文書管理システム100の公開先判定部104は、公開元の端末10aから公開指示を受け取ると、送受信部102を介してスケジュール管理システム20に対してスケジュール確認要求を送る。その要求には、公開元ユーザのメールアドレス(これは公開指示に含まれる)が含まれる。スケジュール管理システム20は、スケジュール記憶部22の中から、その公開先ユーザのメールアドレスに対応するユーザIDを参加者の欄に含み、かつその要求を受け取った時刻に該当する(あるいはその近傍の時刻)のスケジュールを探す。そして、該当するスケジュールが見つかれば、そのスケジュールの参加者欄に含まれる各ユーザIDに対応するメールアドレスを、スケジュール管理システム20の保持するユーザ情報から求め、求めたメールアドレスのリストを文書管理システム100に返す。文書管理システム100の公開先判定部104は、受け取ったリストに含まれるメールアドレスの中に、公開指示に対応づけて受け取った近傍端末情報に含まれていないものがあれば、そのメールアドレスを公開先に追加する。これにより、スケジュールには登録されているが、会合には参加しなかったユーザも、文書の公開先となる。
この例では、公開元ユーザのメールアドレスと確認要求の時刻から、対応するスケジュールを判定したが、この代わりに、これに加えて、公開元ユーザの位置情報と各スケジュールの開催予定場所の情報も考慮して、対応するスケジュールを判定してもよい。この例では、スケジュール記憶部22には、各スケジュールの開催場所の位置情報(例えば緯度・経度、あるいは会議室番号などといった開催場所の識別情報)が登録される。公開元の端末10aは、公開指示に対応づけて自分の現在位置の情報を文書管理システム100に通知する。文書管理システム100は、スケジュール管理システム20に対し、その端末10aの現在位置情報を含む確認要求を送る。スケジュール管理システム20は、例えば、確認要求に含まれる公開元ユーザのメールアドレス、現在位置情報、及び確認要求の時刻を、各スケジュールの参加者、開催場所、及び期間の情報と照合することで、確認要求に最も適合したスケジュールを判定する。
以上の例では、電子メールを用いて公開URLや認証URLをユーザ宛に通知したが、ショートメッセージサービスやSNS(ソーシャルネットワーキングサービス)などの他の情報伝達手段を用いて公開URLや認証URLを各ユーザに通知してもよい。この場合、公開元の端末10aの端末情報取得部14は、その情報伝達手段における各ユーザの識別情報を他の端末10bから収集すればよい。
また、以上の例では、公開元のユーザが公開対象の文書を選択(S102)した上で、文書公開の指示を発した(S104)が、この順序は必須ではない。公開対象の文書を指定せずに、公開元のユーザが文書公開指示を端末10aから文書管理システム100に送ってもよい。この場合、その指示に応じて端末10aは近傍の端末の端末情報を収集して文書管理システム100に送り、文書管理システム100は、それら近傍の各端末の情報を公開先とした公開情報を生成して公開情報記憶部114に登録し、公開URLを含んだメールを各公開先に送る(S200〜S206)。ここで、その公開情報が公開情報記憶部114に登録された時点では、公開対象の文書IDの欄は空欄(S102で公開先の文書が全く指定されなかった場合)である。文書管理システム100は、S204の後、その公開情報の公開ID(図6参照)を含む電子メールを、公開元のユーザのメールアドレス宛に送る。ここでは、例えば、文書管理システム100のウェブサーバのURLの後にあらかじめ定めた公開対象文書登録を示すパス名と、その公開IDとを付加して文書登録用のURLを作成し、そのURLを含んだ電子メールを公開元ユーザに送る。そのメールを受け取った公開元ユーザは、そのURLにアクセスすることで、文書管理システム100から、その公開IDに対応する文書登録用のウェブページを受け取り、そのウェブページを用いて公開対象の文書をアップロードする。文書管理システム100は、アップロードされた文書に文書IDを付与して保管すると共に、その文書IDを、公開情報記憶部114内のその公開IDに対応する公開対象の文書IDの欄に追加する。この仕組みにより、公開指示の後に、公開対象の文書を追加することが可能となる。
また、以上の例では、公開元の端末10aが近傍の各端末10bの端末情報を収集したが、これは一例に過ぎない。この代わりに、文書管理システム100が、公開元の端末10aの近傍の各端末10bの端末情報を収集してもよい。これには、例えば、会合時に、公開元の端末10aから文書管理システム100に公開指示を送ると共に、会合に参加している各ユーザが、それぞれ各自の端末10bから文書管理システム100にアクセスする。このとき、各端末10a及び10bは、それぞれ自身の位置情報と端末情報とを文書管理システム100に送る。この位置情報は、端末が内蔵するGPSデバイスから取得した位置情報であってもよいし、例えば部屋ごとに設けられた無線基地局のIDであってもよい。文書管理システム100は、各端末10a及び10bからある時間幅の範囲内に送られてきた位置情報に基づき、端末10aの近傍に位置する端末10bを識別し、それら近傍の端末10bの端末情報を判別する。
以上に例示した端末10a、10b、スケジュール管理システム20、文書管理システム100は、例えば、汎用のコンピュータにそれら各装置、各システムの各機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)等の二次記憶を制御する二次記憶コントローラ、各種I/O(入出力)インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVDなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の二次記憶装置に保存され、コンピュータにインストールされる。二次記憶装置に記憶されたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
またスケジュール管理システム20及び文書管理システム100は、当該システムを構成する機能モジュールが、それぞれ複数のコンピュータ上に分散して実装されてもよい。この場合、それら分散されたモジュール同士が互いに通信しながら、上記実施形態に説明した機能を実現する。