図1は、本実施形態に係るコンテンツ管理システム10の構成概略図である。コンテンツ管理システム10は、複数のクライアント端末12、複数のコンテンツ管理サーバ14、及び、情報処理装置としての公開情報管理サーバ16を含んで構成される。複数のクライアント端末12と複数のコンテンツ管理サーバ14は、LANあるいはインターネットなどの通信回線18を介して互いに通信可能に接続されている。また、複数のコンテンツ管理サーバ14と公開情報管理サーバ16も、LANあるいはインターネットなどを介して互いに通信可能に接続されている。
クライアント端末12は、コンテンツ管理システム10を利用する利用者(ユーザ)が使用する端末である。クライアント端末12は、一般的なコンピュータであってよく、例えばパーソナルコンピュータあるいはタブレット端末などである。クライアント端末12は、ROM、RAM、あるいはハードディスクなどから構成される記憶部、通信モジュールなどから構成される通信部、マウスあるいはキーボードなどから構成される入力部、液晶パネルなどから構成される表示部、及び、CPUなどから構成される制御部などを含んで構成される。
コンテンツ管理サーバ14は、ユーザに対してコンテンツ(電子データ)管理サービスを提供するサーバである。なお、本明細書においては、「コンテンツ」という用語と「電子データ」という用語は同義である。コンテンツ管理サービスとは、例えば、ユーザからアップロードされたコンテンツを記憶し、ユーザからの要求に応じて記憶したコンテンツに対する処理を行い、あるいはユーザからの要求に応じてコンテンツを送信するサービスである。
本実施形態では、コンテンツ管理サービスが管理するコンテンツは電子文書であるが、コンテンツ管理サービスが管理するコンテンツは電子文書に限られず、動画像データ、静止画像データ、音声データなどであってもよい。
ユーザは、各コンテンツ管理サービスにユーザ登録をすることで、当該コンテンツ管理サービスを利用可能となる。図1に示された、コンテンツ管理サーバAは、コンテンツ管理サービスAを提供するサーバであり、コンテンツ管理サーバBは、コンテンツ管理サービスBを提供するサーバである。コンテンツ管理サーバAは、コンテンツ管理サービスAの管理者によって保守管理され、コンテンツ管理サーバBは、コンテンツ管理サービスBの管理者によって保守管理される。なお、コンテンツ管理サービスは、クラウドサービスであり、1つのコンテンツ管理サービスは、複数のサーバにより提供されてもよい。つまり、コンテンツ管理サーバ14は複数のサーバにより構成されてもよい。
クライアント端末Aは、コンテンツ管理サービスAにユーザ登録したユーザが使用する端末であり、クライアント端末Bは、コンテンツ管理サービスBにユーザ登録したユーザが使用する端末であるとする。
図2は、コンテンツ管理サーバ14の構成概略図である。上述のように、コンテンツ管理システム10には複数のコンテンツ管理サーバ14が含まれるが、複数のコンテンツ管理サーバ14は、同様の構成であるため、1つのコンテンツ管理サーバ14に着目して説明する。本実施形態では、コンテンツ管理サーバ14はサーバコンピュータであるが、以下に説明する機能を発揮する限りにおいて、コンテンツ管理サーバ14はどのような装置であってもよい。
通信部20は、例えばネットワークアダプタなどを含んで構成される。通信部20は、通信回線18を介して、クライアント端末12と通信する機能を発揮する。また、通信部20は、公開情報管理サーバ16と通信する機能を発揮する。
記憶部22は、例えばROM、RAM、あるいはハードディスクなどを含んで構成される。記憶部22には、コンテンツ管理サーバ14の各部を動作させるためのプログラムが記憶される。さらに、図2に示すように、記憶部22には、リソースDB(データベース)24、コンテンツDB26、及びアクセス権限DB28が定義される。
リソースDB24には、コンテンツ管理サーバ14が提供するコンテンツ管理サービスにユーザ登録したユーザに関する情報が記憶される。例えば、ユーザを識別するユーザID、ユーザ名、ユーザの連絡先(メールアドレスなど)、及び、ユーザがコンテンツ管理サービスにログインする際に必要なパスワードなどが関連付けられて記憶される。また、リソースDB24には、複数のユーザから構成されるグループ単位(例えば企業単位)の情報を記憶してもよい。その場合は、例えば、グループを識別するグループID、グループの代表者のユーザ名、代表者の連絡先(メールアドレスなど)、及び、当該グループに属するユーザがコンテンツ管理サービスにログインする際に必要なパスワードなどが関連付けられて記憶される。
コンテンツDB26には、コンテンツ管理サービスが管理するコンテンツが記憶される。例えば、コンテンツ自体(本実施形態では電子文書)に対して、コンテンツを一意に識別するコンテンツID(本実施形態では文書ID)、コンテンツ名(本実施形態では文書名)、登録日時などの属性情報が関連付けられて記憶される。
アクセス権限DB28には、コンテンツDB26に記憶された各コンテンツに対するユーザ毎のアクセス権限が記憶される。例えば、コンテンツDB26に記憶されたコンテンツのコンテンツID、アクセス権限の対象者のユーザID、及び、当該ユーザの当該コンテンツに対するアクセス権限が関連付けられて記憶される。アクセス権限とは、コンテンツに対するユーザの操作可能範囲を示すものであり、ユーザは、アクセス権限で許可された範囲で当該コンテンツの操作を行うことができる。
図3に、アクセス権限DB28の内容の例が示されている。図3の1番目のレコードは、文書ID「文書A1」が示す電子文書に対して、ユーザID「AR0001」が示すユーザが、属性取得(当該コンテンツの属性の閲覧)、コンテント取得(当該コンテンツのダウンロード)、属性変更(当該コンテンツの属性の変更)、コンテント変更(当該コンテンツ自体の編集)、及びアクセス権変更(当該コンテンツのアクセス権限の変更)が可能であることが示されている。このように、アクセス権限としては複数の種類が存在する。もちろん、アクセス権限としては、図3に示されたもの以外の種類があってもよい。
アクセス権限DB28においては、コンテンツDB26に記憶された各コンテンツに対するグループのアクセス権限が記憶されてもよい。その場合は、コンテンツIDと、グループIDと、当該グループIDが示すグループのアクセス権限が関連付けられて記憶される。例えば、図3の3番目のレコードは、文書ID「文書A1」が示す電子文書に対して、グループID「GBR0001」に含まれるユーザが、属性取得及びコンテント取得が可能であることが示されている。
詳しくは後述するが、アクセス権限DB28には、当該コンテンツ管理サーバ14のコンテンツDB26に記憶されたコンテンツに対する、当該コンテンツ管理サーバ14が提供するコンテンツ管理サービスにユーザ登録したユーザのアクセス権限のみならず、他のコンテンツ管理サービスにユーザ登録したユーザのアクセス権限も記憶され得る。例えば、図3の2番目のレコードにおいて、文書ID「文書A1」が示す電子文書は、コンテンツ管理サーバAが提供するコンテンツ管理サービスAが管理する電子文書であるが、対象者のユーザID「BR0001」は、コンテンツ管理サーバBが提供するコンテンツ管理サービスBにユーザ登録したユーザである。
制御部30は、例えばCPUなどを含んで構成される。制御部30は、記憶部22に記憶されたプログラムに従って、コンテンツ管理サーバ14の各部を制御する。また、図2に示されるように、制御部30は、リソース情報管理部32、コンテンツ管理部34、及びアクセス権限管理部36としても機能する。
リソース情報管理部32は、当該コンテンツ管理サーバ14が提供するコンテンツ管理サービスを利用するユーザあるいはグループに関する情報の管理を行う。具体的には、ユーザによるコンテンツ管理サービスに対するユーザ登録処理に応じて、リソースDB24に各種情報を登録する。また、リソース情報管理部32は、登録済みのユーザがコンテンツ管理サービスにアクセスした際に、ユーザのコンテンツ管理サービスの利用に先立って、ユーザを認証する認証処理を行う。認証処理は、例えばユーザにユーザID及びパスワードを入力させることで行う。
コンテンツ管理部34は、当該コンテンツ管理サーバ14が提供するコンテンツ管理サービスが管理するコンテンツの管理を行う。例えば、コンテンツ管理部34は、ユーザからアップロードされたコンテンツをコンテンツDB26に登録する。また、ユーザからの要求に応じて、コンテンツDB26に登録されたコンテンツあるいはその属性情報の内容を変更する。また、ユーザからの要求に応じて、コンテンツDB26に登録されたコンテンツをユーザに提供する。すなわち、当該ユーザが利用するクライアント端末12にコンテンツを送信する。
アクセス権限管理部36は、当該コンテンツ管理サーバ14が提供するコンテンツ管理サービスが管理するコンテンツに対する各ユーザのアクセス権限を管理する。アクセス権限管理部36は、当該コンテンツ管理サーバ14が提供するコンテンツ管理サービスにユーザ登録したユーザのコンテンツに対するアクセス権限については、例えば、当該コンテンツがコンテンツDB26に登録される際に、当該コンテンツの所有者などの指示に基づいて決定し、アクセス権限DB28に当該コンテンツに対するユーザのアクセス権限を登録する。上述のように、アクセス権限DB28には、他のコンテンツ管理サービスにユーザ登録したユーザのコンテンツに対するアクセス権限も登録され得るが、当該アクセス権限の設定方法については後述する。また、コンテンツDB26に登録済みのコンテンツについて、「アクセス権変更」のアクセス権限を持つユーザによって、当該コンテンツのアクセス権限が変更された場合には、アクセス権限管理部36は、当該コンテンツに対するユーザのアクセス権限を変更する。
図4は、公開情報管理サーバ16の構成概略図である。本実施形態では、公開情報管理サーバ16はサーバコンピュータであるが、以下に説明する機能を発揮する限りにおいて、公開情報管理サーバ16はどのような装置であってもよい。
公開情報管理サーバ16は、複数のコンテンツ管理サービスの間に介在して、複数のコンテンツ管理サービスを連携させる公開情報管理サービスを提供する。具体的には、公開情報管理サービスは、あるコンテンツ管理サービスで管理されているコンテンツ(公開コンテンツ)を、他のコンテンツ管理サービスにユーザ登録したユーザ(公開先ユーザ)が利用できるようにするサービスである。より詳しくは、公開情報管理サービスは、公開コンテンツに対する公開先ユーザのアクセス権限を、公開コンテンツを管理するコンテンツ管理サービスではなく、当該他のコンテンツ管理サービスに管理させながら、公開コンテンツを公開先ユーザに公開する。
通信部40は、例えばネットワークアダプタなどを含んで構成される。通信部40は、複数のコンテンツ管理サーバ14と通信する機能を発揮する。
記憶部42は、例えばROM、RAM、あるいはハードディスクなどを含んで構成される。記憶部42には、公開情報管理サーバ16の各部を動作させるための情報処理プログラムが記憶される。さらに、図4に示すように、記憶部42には、参加サービスDB44、サービス契約DB46、公開情報DB48、アクセストークンDB50、及びアクセス権限対応DB52が定義される。
参加サービスDB44には、公開情報管理サービスの対象となるコンテンツ管理サービスに関する情報が記憶される。図5に、参加サービスDB44の内容の例が示されている。図5に示される通り、参加サービスDB44においては、コンテンツ管理サービスを識別するサービスIDと、コンテンツ管理サービスの名称とが関連付けられて記憶される。
サービス契約DB46には、参加サービスDB44に記憶された各コンテンツ管理サービスとユーザと間の契約に関する契約情報が記憶される。図6に、サービス契約DB46の内容の例が示されている。図6に示される通り、サービス契約DB46においては、参加サービスDB44に記憶されたサービスIDと、当該サービスIDが示すコンテンツ管理サービスとユーザ(あるいはグループ)との間の契約を識別する契約IDと、当該ユーザ(グループの場合は代表者)のユーザIDと、当該ユーザあるいは代表者の連絡先(本実施形態ではメールアドレス)が関連付けられて記憶される。サービス契約DB46によれば、公開情報管理サーバ16は、公開情報管理サービスの対象となる各コンテンツ管理サービスに対してユーザ登録した(すなわち各コンテンツ管理サービスを利用する)ユーザあるいはグループを把握することができる。
公開情報DB48には、参加サービスDB44に記憶された複数のコンテンツ管理サービス間において公開されている公開コンテンツに関する情報が記憶される。具体的には、公開情報DB48には、あるコンテンツ管理サービスで管理されている公開コンテンツについての、他のコンテンツ管理サービスにユーザ登録した公開先ユーザへの公開に関する情報が記憶される。
図7に、公開情報DB48の内容の例が示されている。公開元サービスIDは、公開コンテンツを管理するコンテンツ管理サービスのサービスIDである。公開元契約IDは、公開コンテンツを公開する公開者と、公開元サービスIDが示すコンテンツ管理サービスとの間の契約の契約IDである。文書IDは、公開コンテンツのコンテンツIDである。公開先サービスIDは、当該公開コンテンツの公開先ユーザがユーザ登録したコンテンツ管理サービスのサービスIDである。公開先契約IDは、公開先ユーザと、公開先サービスIDが示すコンテンツ管理サービスとの間の契約の契約IDである。リンクオブジェクトIDは、リンク情報としてのリンクオブジェクトの識別情報である。リンクオブジェクトについては後述する。公開URLは、公開コンテンツのアクセス先である。公開先メールアドレスは公開先ユーザのメールアドレスである。公開終了時刻は、公開コンテンツの公開終了時刻である。公開者メールアドレスは、公開者のメールアドレスである。
公開情報DB48においては、上述の各情報が互いに関連付けられて記憶される。例えば、図7の1番目のレコードは、公開元サービスID「001」が示すコンテンツ管理サービスで管理されている文書ID「文書A1」が示す電子文書が、公開先サービスID「002」が示すコンテンツ管理サービスに対して公開先契約ID「0002」が示す内容の契約をした公開先ユーザに対して公開されていることを示す。
アクセストークンDB50には、公開先ユーザが公開コンテンツにアクセスする際に用いるアクセストークンに関する情報が記憶される。アクセストークンとは、公開コンテンツにアクセスした公開先ユーザが、当該公開コンテンツを操作する権限を有するユーザであるか否かを判定するための情報である。
図8にアクセストークンDB50の内容の例が示されている。図8に示される通り、アクセストークンDB50においては、アクセストークンと、当該アクセストークンの対象となる公開コンテンツに係る公開元サービスID及び契約ID、当該公開コンテンツを識別するIDである文書ID、アクセストークンの猶予期間(有効期限)、並びに当該アクセストークンによって許可される操作内容が互いに関連付けられて記憶される。
アクセス権限対応DB52には、複数のコンテンツ管理サービスの間でのアクセス権限の対応に関する情報が記憶される。例えば、コンテンツの閲覧権限を表すアクセス権限であっても、あるコンテンツ管理サービスではその名称が「読み取り権」であり、他のコンテンツ管理サービスではその名称が「READ権」である場合がある。このようなアクセス権限(の名称)の差異を吸収すべく、アクセス権限対応DB52において、複数のコンテンツ管理サービスの間において、意味が実質的に同じであるアクセス権の対応情報が示されている。特に、アクセス権限対応DB52には、公開コンテンツの公開元のコンテンツ管理サービスにおけるアクセス権限と、当該公開コンテンツの公開先のコンテンツ管理サービスにおけるアクセス権限との対応関係が示されている。
図9にアクセス権限対応DB52の内容の例が示されている。図9に示される通り、アクセス権限対応DB52においては、公開元サービスIDと、当該公開元サービスIDが示すコンテンツ管理サービスにおけるアクセス権限の種別(名称)、公開先サービスIDと、当該公開元サービスIDが示すコンテンツ管理サービスにおけるアクセス権限の種別(名称)、が互いに関連付けられて記憶される。アクセス権限対応DB52は、公開情報管理サービスの提供者などによって用意されて記憶部42に記憶される。
制御部54は、例えばCPUなどを含んで構成される。制御部54は、記憶部42に記憶された情報処理プログラムに従って、公開情報管理サーバ16の各部を制御する。また、図4に示されるように、制御部54は、参加サービス管理部56、サービス契約管理部58、公開情報管理部60、アクセストークン管理部62、アクセス権限対応管理部64、及び通知出力部66としても機能する。
参加サービス管理部56は、コンテンツ管理サービスの管理者からの依頼に基づいて、参加サービスDB44の登録内容を変更する処理を行う。具体的には、コンテンツ管理サービスの管理者が、コンテンツ管理サービスのサービス名を指定した上で、公開情報管理サーバ16に対して、公開情報管理サービスの利用開始依頼を送信すると、参加サービス管理部56は、当該コンテンツ管理サービスのサービスIDを発行し、発行したサービスIDとサービス名を関連付けて参加サービスDB44に登録する。また、参加サービスDB44に登録済みのコンテンツ管理サービスの管理者が、コンテンツ管理サービスのサービス名を指定した上で、公開情報管理サーバ16に対して、公開情報管理サービスの利用終了依頼を送信すると、参加サービス管理部56は、当該コンテンツ管理サービスに関する情報を参加サービスDB44から削除する。
サービス契約管理部58は、コンテンツ管理サービスのユーザからの依頼に基づいて、サービス契約DB46の登録内容を変更する処理を行う。具体的には、コンテンツ管理サービスのユーザが、当該コンテンツ管理サービスの名前、当該コンテンツ管理サービスにおけるユーザIDあるいはグループID、及び当該ユーザ(グループである場合は代表者)のメールアドレスを指定した上で、公開情報管理サーバ16に対して、公開情報管理サービスの利用開始依頼を送信すると、サービス契約管理部58は、契約IDを発行し、発行した契約IDと、ユーザが指定したコンテンツ管理サービスの名前と参加サービスDB44に基づいて特定されるサービスIDと、ユーザIDあるいはグループIDと、ユーザ(あるいは代表者)のメールアドレスとを関連付けてサービス契約DB46に登録する。また、サービス契約DB46に登録済みのユーザあるいはグループの代表者が、公開情報管理サーバ16に対して、公開情報管理サービスの利用終了依頼を送信すると、参加サービス管理部56は、当該ユーザあるいはグループに関する情報をサービス契約DB46から削除する。
公開情報管理部60は、公開コンテンツの公開者からの依頼に基づいて、公開情報DB48の登録内容を変更する処理を行う。具体的には、公開者から公開コンテンツを公開先ユーザに公開したいという依頼を受けた場合、公開情報管理部60は、種々の手続き(詳細後述)を行った上で、公開情報DB48に上述の情報を登録する。このように、公開情報管理部60は、公開情報登録部として機能する。また、公開者から公開コンテンツの公開を終了したいという依頼を受けた場合、公開情報管理部60は、当該公開コンテンツに関する情報を公開情報DB48から削除する。また、上述のように、公開情報DB48には、各公開コンテンツの公開終了時刻が関連付けられているため、公開情報管理部60は、公開終了時刻を徒過している公開コンテンツに関する情報を公開情報DB48から削除する。
アクセストークン管理部62は、公開コンテンツに対する公開先ユーザからの利用要求に基づいて、当該公開コンテンツに関するアクセストークンを発行してアクセストークンDB50に登録する。また、公開先ユーザがアクセストークンを用いて公開コンテンツにアクセスした際に、アクセストークン管理部62は、当該アクセストークンの有効性を判断し、有効であれば、公開先ユーザによる公開コンテンツに対する操作を許可する。
アクセス権限対応管理部64は、公開元のコンテンツ公開サービスと公開先のコンテンツ公開サービスとの間でアクセス権限の設定処理が行われる際に、アクセス権限対応DB52に基づいて、一方のコンテンツ公開サービスから受け取ったアクセス権限を他方のコンテンツ公開サービスにおける名称に変換する。
公開情報管理部60、アクセストークン管理部62、及び、アクセス権限対応管理部64の処理の詳細については図10及び11に示すフローチャートに沿って後述する。
通知出力部66は、公開情報DB48に基づいて、現在時刻から公開コンテンツの公開終了時刻までの時間が所定時間以内となった場合、当該公開コンテンツの公開者及び公開先ユーザの少なくとも一方に対して通知を出力する。所定時間は、公開情報管理サービスの管理者などによって予め決定されていてよい。通知は、例えばメールを送信することで行われる。上述のように、本実施形態では、各公開コンテンツに公開終了時刻が定められているところ、当該通知によれば、公開者あるいは公開先ユーザは、公開コンテンツの公開終了時刻が迫っていることを把握することができる。
コンテンツ管理システム10の構成概略は以上の通りである。以下、図10及び図11に示すフローチャートに従って、各部(特に公開情報管理サーバ16の公開情報管理部60、アクセストークン管理部62、及び、アクセス権限対応管理部64)の処理の詳細を説明する。以下の説明においては、第1サーバとしてのコンテンツ管理サーバAが提供するコンテンツ管理サービスAで管理されている電子文書A1が公開コンテンツであり、公開者はコンテンツ管理サービスAにユーザ登録しているユーザA1であり、公開先ユーザは第2サーバとしてのコンテンツ管理サーバBが提供するコンテンツ管理サービスBにユーザ登録しているユーザB1であるとする。
まず、図10に示すフローチャートに従って、公開文書A1を公開先ユーザB1に対して公開する処理の流れについて説明する。
ステップS10において、公開者であるユーザA1は、コンテンツ管理サービスAにアクセスして、公開文書A1と、公開先のコンテンツ管理サービスB、及び、公開先ユーザB1を指定する。なお、公開先ユーザはグループであってもよい。
ステップS12において、コンテンツ管理サーバAは、ユーザA1の指示に基づいて、公開文書A1に関する文書公開リクエストを公開情報管理サーバ16に送信する。文書公開リクエストには、少なくとも、公開文書A1の識別情報である文書ID、公開先のコンテンツ管理サービスBのサービスID、及び、公開先ユーザB1に関する情報が含まれる。なお、本実施形態では、公開コンテンツの識別情報として文書IDを用いているが、公開コンテンツの識別情報としては、公開コンテンツを一意に識別できる限りにおいて、これに限られるものではない。例えば、公開コンテンツのアドレス(公開URL)などであってもよい。本実施形態では、文書公開リクエストには、さらに、公開文書A1の属性情報、公開元のコンテンツ管理サービスAのサービスID、公開者であるユーザA1に関する情報が含まれる。公開文書A1の属性情報とは、例えば、公開文書A1の名前、概要、公開目的、及び公開終了時刻などである。ユーザA1に関する情報とは、例えば、ユーザA1のユーザID、ユーザA1のメールアドレス、及び、ユーザA1とコンテンツ管理サービスA間の契約の契約IDなどである。公開先ユーザB1に関する情報とは、例えば、公開先ユーザB1のユーザID、公開先ユーザB1のメールアドレス、及び、公開先ユーザB1とコンテンツ管理サービスB間の契約の契約IDなどである。公開先ユーザとしてグループが指定された場合は、公開先ユーザB1は当該グループの代表者である。なお、コンテンツ管理サーバ14は、事前に公開情報管理サーバ16にアクセスすることで、各コンテンツ管理サービスのサービスIDや各契約の契約IDを取得しておく。
ステップS14において、公開情報管理部60は、ステップS12で受信した文書公開リクエストに基づいて、公開先のコンテンツ管理サービスBが参加サービスDB44に登録されているか否かを判定する。さらに、公開情報管理部60は、ステップS12で受信した文書公開リクエストに基づいて、公開先のコンテンツ管理サービスBと公開先ユーザB1との間の契約がサービス契約DB46に登録されているか否かを判定する。
コンテンツ管理サービスB及び公開先ユーザB1に関する契約の少なくとも一方が登録されていない場合(ステップS14で「いいえ」)、公開情報管理サーバ16が管理していないコンテンツ管理サービスに対する公開、あるいは、公開情報管理サーバ16が管理していないユーザに対する公開のリクエストであることになるため、公開情報管理部60は公開文書A1を公開せずに処理を終了する。コンテンツ管理サービスB及び公開先ユーザB1に関する契約がいずれも登録されている場合(ステップS14で「はい」)、ステップS16に進む。
ステップS16において、公開情報管理サーバ16の通信部40は、ステップS12で受信した文書公開リクエストをコンテンツ管理サーバBに転送する。なお、ステップS12で受信した文書公開リクエストには、公開先のコンテンツ管理サービスBのサービスIDが含まれているが、これは当該文書公開リクエストの転送先を示すものであるため、通信部40がコンテンツ管理サーバBに転送する文書公開リクエストには、公開先のコンテンツ管理サービスBのサービスIDが含まれていなくてもよい。
ステップS18において、コンテンツ管理サーバBのリソース情報管理部32は、ステップS16で受信した文書公開リクエストに基づいて、公開先ユーザB1がコンテンツ管理サーバBのリソースDB24に登録されているか否かを判定する。登録されていない場合は(ステップS18で「いいえ」)、コンテンツ管理サービスBに登録していない(例えば登録抹消された)ユーザに対する公開のリクエストであることになるため、公開文書A1の公開処理はここで終了する。公開先ユーザB1が当該リソースDB24に登録されている場合(ステップS18で「はい」)、ステップS20に進む。
ステップS20において、コンテンツ管理サーバBの通信部20は、公開先ユーザB1に対して、公開者であるユーザA1から公開文書A1に関する公開リクエストが来ていることを通知する。具体的には、通信部20は、ユーザA1のメールアドレスと公開文書A1の情報(例えば公開文書A1の属性情報)を含むメールを公開先ユーザB1のメールアドレスに送信する。
ステップS22において、コンテンツ管理サーバBからメールを受信した公開先ユーザB1は、クライアント端末Bを用いて、公開文書A1に対する公開先ユーザB1のアクセス権限を設定する。公開先ユーザがグループであり、公開先ユーザB1がグループの代表者である場合は、公開先ユーザB1は、公開文書A1に対する当該グループのアクセス権限を設定する。その上で、公開先ユーザB1は、受信したメールに返信する形で、公開文書Aに対する公開先ユーザB1あるいはグループのアクセス権限をコンテンツ管理サーバBに送信する。コンテンツ管理サーバBは、このようにして、公開先ユーザB1から公開文書A1に対する公開先ユーザB1あるいはグループのアクセス権限を受信する。
なお、本実施形態では、公開文書A1に対する公開先ユーザB1のアクセス権限は、公開先ユーザB1により設定されていたが、コンテンツ管理サービスBにおいて当該アクセス権限が設定される限りにおいて、その他の方法によって設定されてもよい。例えば、公開文書A1の属性と公開先ユーザB1の属性(この場合は予めコンテンツ管理サーバBのリソースDB24に各ユーザの属性を登録しておく)との関係に基づいて、公開文書A1に対するアクセス権限が自動設定されてもよい。
ステップS24において、コンテンツ管理サーバBのアクセス権限管理部36は、公開文書A1に関するリンクオブジェクトを生成する。リンクオブジェクトは、公開文書A1を指し示す情報であり、コンテンツ管理サーバBの制御部30は、例えば、当該リンクオブジェクトに基づいて、クライアント端末Bの表示部に公開文書A1に対応するアイコンを表示させることができる。コンテンツ管理サーバBのアクセス権限管理部36は、生成したリンクオブジェクトを識別するリンクオブジェクトIDと、ステップS22で受信したアクセス権限とを関連付けて、コンテンツ管理サーバBのアクセス権限DB28に仮登録しておく。
ステップS26において、コンテンツ管理サーバBの通信部20は、公開情報管理サーバ16に対して、アクセス権限情報としてのアクセス権限リクエストを送信する。アクセス権限リクエストには、少なくとも、コンテンツ管理サーバBにおいて公開文書A1のアクセス権限が設定されたことを示す情報、及び、リンクオブジェクトIDが含まれる。本実施形態では、アクセス権限リクエストには、公開者であるユーザA1のメールアドレス、公開元のコンテンツ管理サービスAのサービスID、公開先のコンテンツ管理サービスBのサービスID、ユーザA1とコンテンツ管理サービスAとの間の契約の契約ID、公開先ユーザB1とコンテンツ管理サービスBとの間の契約の契約ID、公開文書A1に対するアクセス権限を示す情報、及びリンクオブジェクトIDが含まれる。
公開情報管理サーバ16は、コンテンツ管理サーバBから受信したアクセス権限リクエストをコンテンツ管理サーバAに転送する。ここで、公開情報管理部60は、アクセス権限情報に含まれる、公開元のコンテンツ管理サービスA及び公開先のコンテンツ管理サービス、並びに、コンテンツ管理サービスAとユーザA1との間の契約及びコンテンツ管理サービスBと公開先ユーザB1との間の契約が登録済みであるか否かを判定するようにしてもよい。いずれかが登録されていない場合は、公開文書A1に関する公開処理を終了する。
また、アクセス権限対応管理部64は、アクセス権限対応DB52に、コンテンツ管理サービスAとコンテンツ管理サービスBとの間におけるアクセス権限の対応情報が登録されている場合には、受信したアクセス権限リクエストに含まれる公開文書A1に対するアクセス権限(の名称)をコンテンツ管理サービスAにおけるアクセス権限に変換した上で、アクセス権限リクエストをコンテンツ管理サーバAに転送する。
ステップS28において、コンテンツ管理サーバAの通信部20は、ステップS26で受信したアクセス権限情報をユーザA1に送信する。具体的には、コンテンツ管理サーバAの通信部20は、アクセス権限情報をメールでユーザA1に送信する。
ステップS30において、コンテンツ管理サーバAからメールを受信した公開者であるユーザA1は、クライアント端末Aを用いて、アクセス権限情報に基づいて、公開先ユーザB1により設定された公開文書A1に対する公開先ユーザB1のアクセス権限を確認する。その上で、ユーザA1は、公開文書A1に対する公開先ユーザB1のアクセス権限を許容し、公開文書A1を公開先ユーザB1に公開することを許可するか否かをメールでコンテンツ管理サーバAに送信する。
ユーザA1が公開文書A1を公開先ユーザB1に公開することを許可しなかった場合(ステップS30で「いいえ」)、ステップS32において、ユーザA1が許可しなかったことを公開先ユーザB1に通知した上で、公開文書A1を公開せずに処理を終了する。具体的には、コンテンツ管理サーバAが公開情報管理サーバ16に対して、ユーザA1が公開文書A1を公開先ユーザB1に公開することを拒否したことを示す公開拒否情報を送信し、公開情報管理サーバ16がコンテンツ管理サーバBに当該公開拒否情報を転送し、コンテンツ管理サーバBは、受信した公開拒否情報に基づいて、公開先ユーザB1が利用するクライアント端末Bに通知を送信する。
ユーザA1が公開文書A1を公開先ユーザB1に公開することを許可した場合(ステップS30で「はい」)、ステップS34に進む。
ステップS34において、コンテンツ管理サーバAの通信部20は、公開文書A1の公開URLを公開情報管理サーバ16に送信する。コンテンツ管理サーバAから公開文書A1の公開URLを受信したことで、公開情報管理サーバ16は、ユーザA1が公開文書A1を公開先ユーザB1に公開することを許可したと判定できる。
ステップS36において、公開情報管理部60は、ステップS12でコンテンツ管理サーバAから受信した文書公開リクエストに含まれる、公開文書A1の文書IDを含む各情報、ステップS26で受信したアクセス権限リクエストに含まれる、リンクオブジェクトIDを含む各情報、及び、ステップS34で受信した公開URLをそれぞれ関連付けて、公開情報DB48(図7参照)に登録する。これにより、公開先ユーザB1に対して公開文書A1が公開されたことになる。
ステップS38において、公開情報管理サーバ16の通信部40は、公開先ユーザB1に対して公開文書A1が公開されたことを示す情報をコンテンツ管理サーバBに送信する。
ステップS40において、コンテンツ管理サーバBのアクセス権限管理部36は、ステップS24でアクセス権限DB28に仮登録したリンクオブジェクトIDとアクセス権限を正式登録する。
ステップS42において、コンテンツ管理サーバBの通信部20は、公開先ユーザB1に対して公開文書A1が公開されたことを公開先ユーザB1に通知する。
以上の処理によって、コンテンツ管理サービスAで管理されている公開文書A1が、コンテンツ管理サービスBにユーザ登録した公開先ユーザB1に公開される。
本実施形態によれば、公開文書A1に関するアクセス権限は、公開元のコンテンツ管理サービスAでは管理されず、公開先のコンテンツ管理サービスBで管理されることになる。したがって、公開者であるユーザA1の負担が低減される。
また、公開文書A1に関する公開先ユーザB1のアクセス権限が、公開先のコンテンツ管理サービスBで管理されるため、公開先ユーザB1のアクセス権限の管理方法として、コンテンツ管理サービスBにおけるアクセス権限管理の仕組みをそのまま利用できることになる。これにより、各コンテンツ管理サービスのアクセス権限の管理方法に応じた柔軟な管理が可能となる。
また、本実施形態によれば、公開先ユーザB1が設定した公開文書A1に対するアクセス権限が、公開者であるユーザA1により確認された上で、公開文書A1が公開される。換言すれば、2人のユーザによりアクセス権限が確認された上で公開文書A1が公開される。したがって、公開文書A1のアクセス権限を公開者であるユーザA1が管理する場合に比して、誤ったアクセス権限が設定される可能性を低減することができる。
なお、既に公開済みの公開文書に対する公開先ユーザのアクセス権限が変更された場合には、ステップS22以下の処理を繰り返すことで、公開情報管理部60は、当該公開文書に対する公開先ユーザのアクセス権限を変更することができる。
次に、図11に示すフローチャートに従って、公開先ユーザB1が、公開済みの公開文書A1に対してアクセスする処理の流れについて説明する。
ステップS60において、公開先ユーザB1は、クライアント端末Bを用いてコンテンツ管理サービスBにアクセスし、公開文書A1に関するリンクオブジェクトを指定する。具体的には、公開先ユーザB1は、コンテンツ管理サービスBにアクセスすることによってクライアント端末Bの表示部に表示された、当該リンクオブジェクトに対応するアイコンを選択する。さらに、公開先ユーザB1は、指定したリンクオブジェクトに対する操作内容を指定する。ここでは、公開先ユーザB1は、公開文書A1に対するダウンロード操作を指定したものとする。
ステップS62において、コンテンツ管理サーバBのアクセス権限管理部36は、アクセス権限DB28を参照して、ステップS60で指定されたリンクオブジェクトが示す公開文書A1に対する、ステップS60で指定された操作のアクセス権限を公開先ユーザB1が有しているか否かを判定する。
公開文書A1に対する操作のアクセス権限を公開先ユーザB1が有していないと判定された場合(ステップS62で「いいえ」)、アクセス権限を有さないユーザからの操作であると判定できるため、公開先ユーザB1に対して公開文書A1のアクセスを許可せずに処理を終了する。公開文書A1に対する操作のアクセス権限を公開先ユーザB1が有している場合(ステップS62で「はい」)、ステップS64に進む。
ステップS64において、コンテンツ管理サーバBの通信部20は、公開情報管理サーバ16に対してアクセスリクエストを送信する。アクセスリクエストには、少なくとも、ステップS60で公開先ユーザB1が選択したリンクオブジェクトのリンクオブジェクトIDが含まれる。本実施形態では、アクセスリクエストには、リンクオブジェクトIDの他、公開先のコンテンツ公開サービスBのサービスID及びコンテンツ公開サービスB、公開先ユーザB1との間の契約の契約ID、及びステップS60で指定した公開文書A1に対する操作内容などが含まれる。
ステップS66において、アクセストークン管理部62は、ステップS64で受信したアクセスリクエストに含まれるリンクオブジェクトIDをキーとして公開情報DB48を検索し、当該リンクオブジェクトIDに関連付けられている公開文書A1を特定する。また、アクセストークン管理部62は、公開文書A1に対する、アクセスリクエストに含まれる操作内容に関するアクセストークンを発行する。発行されるアクセストークンには猶予期間が定められるのが好適である。その上で、アクセストークン管理部62は、発行したアクセストークンと、アクセスリクエストに含まれる各情報と、公開文書A1の文書IDと、猶予期間とを関連付けてアクセストークンDB50に登録する(図8参照)。
ステップS68において、公開情報管理部60は、ステップS64で受信したアクセスリクエストに含まれるリンクオブジェクトIDをキーとして公開情報DB48を検索し、当該リンクオブジェクトIDに関連付けられている公開文書A1のアクセス先である公開URLを特定する。その上で、公開情報管理サーバ16の通信部40は、特定した公開文書A1の公開URL及びステップS66で発行したアクセストークンをコンテンツ管理サーバBに送信する。
ステップS70において、コンテンツ管理サーバBの通信部20は、ステップS68で受信した公開文書A1の公開URL及びアクセストークンを公開先ユーザB1が利用するクライアント端末Bに送信する。
ステップS72において、公開先ユーザB1は、クライアント端末Bを用いて、ステップS70で受信したアクセストークンを用いて公開URLにアクセスする。
ステップS74において、クライアント端末Bからのアクセスを受けたコンテンツ管理サーバAの通信部20は、ステップS72でクライアント端末Bから送信されたアクセストークンと共に、アクセス可否リクエストを公開情報管理サーバ16に送信する。
ステップS76において、公開情報管理サーバ16のアクセストークン管理部62は、アクセストークンDB50を参照して、ステップS74で受信したアクセストークンが有効であるか否かを判定する。
受信したアクセストークンが有効でない場合(ステップS76で「いいえ」)、例えばアクセストークンの猶予期間が徒過している場合には、アクセストークン管理部62は、当該アクセストークンが有効でないことを示す情報をコンテンツ管理サーバAに送信する。それに基づいて、コンテンツ管理サービスAは、公開文書A1に対する公開先ユーザB1の操作を許可せずに処理を終了する。受信したアクセストークンが有効である場合(ステップS76で「はい」)、ステップS78に進む。
ステップS78において、アクセストークン管理部62は、アクセストークンDB50から、ステップS76で判定したアクセストークンに関する情報を削除する。これによりアクセストークンは1度のみ使用可能となり、公開文書A1への不正アクセスの可能性が低減される。
ステップS80において、アクセストークン管理部62は、アクセストークンDB50を参照して、ステップS76で判定したアクセストークンで許可されている操作内容を特定する。その上で、公開情報管理サーバ16の通信部40は、特定された操作内容を示す情報をコンテンツ管理サーバAに送信する。
ステップS82において、コンテンツ管理サーバAのコンテンツ管理部34は、ステップS78で受信した操作内容を示す情報に基づいて、公開先ユーザB1の公開文書A1に対する操作を許可し、当該操作を実行する。本例では、公開先ユーザB1は、公開文書A1をダウンロードする操作を指定しているから、コンテンツ管理部34は、公開文書A1をクライアント端末Bに送信する。
以上の処理によって、コンテンツ管理サービスBにユーザ登録した公開先ユーザB1により、コンテンツ管理サービスAで管理されている公開文書A1に対する操作が実行される。
本実施形態によれば、公開文書A1に対する操作に関するアクセス権限の判定は、公開元のコンテンツ管理サービスAではなく、公開先のコンテンツ管理サービスBにおいて行われる。したがって、アクセス権限の判定を公開元のコンテンツ管理サービスAで行う場合に比して、コンテンツ管理サービスAの負荷を低減することができ、好適にコンテンツ管理サービスAを稼働させることができる。
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。