JP2004151868A - 電子バインダ装置 - Google Patents
電子バインダ装置 Download PDFInfo
- Publication number
- JP2004151868A JP2004151868A JP2002314742A JP2002314742A JP2004151868A JP 2004151868 A JP2004151868 A JP 2004151868A JP 2002314742 A JP2002314742 A JP 2002314742A JP 2002314742 A JP2002314742 A JP 2002314742A JP 2004151868 A JP2004151868 A JP 2004151868A
- Authority
- JP
- Japan
- Prior art keywords
- page
- binder
- message
- document file
- pages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】バインダ文書ファイルのセキュリティを確実かつ柔軟に行うことで、ページ管理を容易にし、バインダ文書ファイルの活用範囲の拡大化を図る。
【解決手段】電子ドキュメントを構成する各ページから新たなバインダ文書ファイルを生成する電子バインダ装置において、バインダデータ102の各ページに係わるセキュリティ情報を設定するための拡張記録領域を設け、上記拡張記録領域にバインダデータ102のセキュリティに関する情報を設定し、このセキュリティに関する情報に基づき、バインダページ管理部106はページの編集許可を付与するようにすることにより、ページ単位の不正な編集を防止してセキュリティ機能を向上させることができるようにする。
【選択図】 図1
【解決手段】電子ドキュメントを構成する各ページから新たなバインダ文書ファイルを生成する電子バインダ装置において、バインダデータ102の各ページに係わるセキュリティ情報を設定するための拡張記録領域を設け、上記拡張記録領域にバインダデータ102のセキュリティに関する情報を設定し、このセキュリティに関する情報に基づき、バインダページ管理部106はページの編集許可を付与するようにすることにより、ページ単位の不正な編集を防止してセキュリティ機能を向上させることができるようにする。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は電子バインダ装置に関し、特に、電子的な情報を記録した文書の管理を行なうために用いて好適なものである。
【0002】
【従来の技術】
企業では、最新の文書管理システムを導入して、既に作成した文書の再利用を推進しようとしている。初期の文書管理システムにおいては、スキャナ等の文字読み取り装置を用いて、紙媒体に印刷された文書情報を文字データまたは画像データとして読み出し、記録媒体に書き込むことで、上記文書情報を登録保存するようなシステム構成であった。
【0003】
それに対し、最近の文書管理システムでは、パソコン等で作成された電子情報の文書を上記文字読み取り装置等を用いずに、記録媒体に直接登録して保存できるようになっている。
【0004】
また、複写機等の画像読み取り装置が読み取った画像データを、文書管理システムが備えている記録媒体に、直接的にかつ自動的に登録することができる文書管理装置や文書管理システムも知られており、文書管理システムが徐々に用いられるようになってきている。
【0005】
さらに、最近では、文書管理システムが備えている記録媒体に登録されている複数の文書の中から、任意のページをそれぞれ抜き出して、上記抜き出したページをいわゆるバインダで綴じるかのようにまとめて一つの文書を作成することができるような文書管理システムも提案されている(例えば、特許文献1参照。)。本願ではそのような文書管理システムを、電子バインダシステムと称することとする。
【0006】
上記特許文献1に記載された電子バインダシステムの場合、電子バインダシステム内部において、文書ファイルの順序付けは各文書ファイル単位に行なっている。しかしながら、文書ファイルを構成する個々のページに対するページ操作を行なうことはできないようになっている。
【0007】
また、文書ファイルを統一フォーマットによって一つのバインダ文書ファイルとして取り扱い、プリンタドライバを用いて上記バインダ文書ファイルを印刷できるようにした技術も提案されている(例えば、特許文献2参照。)。
【0008】
この場合も、上記バインダ文書ファイルは、文書ファイル単位で管理されており、バインダ文書ファイルを構成する各ページ単位で並べ替えを行ったり、削除を行ったり等の編集を行なうことはできていない。
【0009】
また、他の特許文献によれば、ページめくりのための管理テーブルを保持する文書管理システムが提案されている(例えば、特許文献3参照)。これにおいても、ページ単位の編集操作については何も記載されていない。
【0010】
上記以外の他の電子バインダシステムには、バインダとして綴じられた各ページを削除したり、並べ替えたりすることができるようになっているものがある。
【0011】
また、各種アプリケーションソフトによって、それぞれ個別に作成された文書ファイルが保存された記録媒体から上記文書ファイルを読み出して、文書ファイル単位でバインダに綴じることができるような文書管理システムも知られている。上記文書管理システムの場合、どのようなアプリケーションソフトプログラムで作成された文書ファイルでも、一つの文書として扱うことができるようになる。
【0012】
例えば、ワードプロセッサ文書及びプレゼンテーション用の文書が記録媒体に保存されている場合、これらの文書の表示や保存の順序を変更したり、あるいは、新たな文書を追加したりすることができる。
【0013】
上述したように、バインダ文書ファイルのページの管理については、ユーザのニーズにより様々なことが要求されるようになってきており、電子バインダシステムに求められる機能も複雑化・煩雑化してきている。
【0014】
【特許文献1】
特開2001−034511号公報
【特許文献2】
特開2001−229159号公報
【特許文献3】
特開2000−122782号公報
【0015】
【発明が解決しようとする課題】
上述したように、バインダ文書ファイルでは、記録媒体上に保存された様々な種類の文書ファイルを編集して作成することが可能である。また、バインダ文書ファイルは、束ねた情報を上記作成元の文書ファイルと切り離してページ単位で編集することが可能である。
【0016】
しかしながら、従来のバインダ文書ファイルは、上記文書ファイル(バインダ文書ファイルの作成元)の情報を文書ファイル単位として扱っておりページ単位として取り扱うように成されていない。
【0017】
この場合、たとえ上記文書ファイル(バインダ文書ファイルの作成元)そのものに対して編集不可のセキュリティを施していても、作成したバインダ文書ファイルでは情報がページ単位で扱われる。そのため、編集許可の与えられていない第三者が、バインダ文書ファイルを構成する個々のページそのものにアクセスして編集することができてしまうという問題があった。
【0018】
また、バインダ文書ファイル内では、文書ファイル単位に依らず、ページ単位で並べ替えを自由に行なうことが可能である。そのため、例えば、ページの順番が不正に入れ替えられてしまい、元の意味内容が変更されてしまうという問題もあった。
【0019】
本発明は上述した問題点にかんがみ、電子データを記録した文書から任意のページを抜き出してバインダのように綴じたバインダ文書ファイルのセキュリティ管理を確実にかつ柔軟に行なえることを目的とする。
【0020】
【課題を解決するための手段】
本発明の電子バインダ装置は、電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成する電子バインダ装置であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手段と、上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備えたことを特徴としている。
【0021】
これにより、例えばバインダ文書ファイルに対して編集不可のセキュリティが施されているだけでは文書管理のセキュリティ性が不十分な電子バインダ装置の場合、ページ単位で編集不可のセキュリティが設定されることから、ページそのものの編集を防止することが可能となる。
【0022】
また、本発明によるバインダ文書ファイルでは、文書単位に依らず、ページの並べ替えを自由に行なうことが可能なことから実行されてしまう、ページの順序の入れ替えによるバインダ文書の意味の変更を防ぐことが可能となる。
【0023】
【発明の実施の形態】
以下、本発明の電子バインダ装置の実施の形態について、図面を参照しながら説明する。
【0024】
(第1の実施の形態)
本実施の形態は、種類の異なるアプリケーションソフトで作成したそれぞれの文書ファイルが有するデータを、同一の文書ファイルにおけるページのデータとしてみなして、上記各ページをバインダの綴りのように取り扱うことを可能とした電子バインダ装置において、上記バインダのページ管理(保持)に関する実施の形態である。
【0025】
まず始めに、本実施の形態におけるバインダ文書ファイルについて説明する。本実施の形態においてバインダ文書ファイルとは、異なる種類のアプリケーションソフトで作成した複数の文書ファイルを、それぞれの文書を作成するために用いたアプリケーションソフトの違いを意識すること無しに扱うことが可能なフォーマット形式で綴られた文書ファイルである。
【0026】
例えば、バインダ文書ファイルには、アプリケーションソフトのデータファイル(素材文書)を単純に束ねただけでページが確定されていないフォーマット形式による文書ファイルもある。第1の実施の形態では、素材文書のページを確定させ、その確定させたページから必要なページを集めて生成したフォーマット形式のバインダ文書ファイルを対象とする。
【0027】
このため、例えばプレーンテキスト文書などのように文書のページ区切りが明確でないものがあるため、本実施の形態においては、ページを確定させるために、文書ファイルが電子バインダ装置に挿入(インポート)された時点で各ページを確定させるようにしている。
【0028】
バインダ文書ファイルのページを確定させる具体的な方法としては、アプリケーションソフトの印刷機能を利用して行なう方法が挙げられる。例えば、Adobe社のPDFであるとか、W3C(World Wide Web Consortium)で定められたSVG(Scalable Vector Graphics)などのように、バインダ文書ファイルをアプリケーションソフトに依らずに表示や印刷を行なうことができる統一的なフォーマット形式に変換して、上記ページを確定する方法を考慮することができる。
【0029】
このように、バインダ文書ファイルのページを確定させ、統一的なフォーマット形式に変換することにより、例えば、バインダ文書ファイルを構成している元の素材文書を作成するために用いたアプリケーションソフトが存在しない環境でも、バインダ文書ファイルの閲覧や印刷等を行なうことができる。
【0030】
また、素材文書を作成するために用いたアプリケーションソフトが存在する環境でも、アプリケーションソフトの設定内容等の相違により、素材文書のあるページの内容が、バインダ文書ファイルでは異なるページ位置に表示されてしまう可能性が存在していた。バインダ文書ファイルのページを統一的なフォーマット形式に変換することは、上述したようなページ表示の位置ずれを回避することを可能にしている。
【0031】
さらに、バインダ文書ファイルを扱うことが可能なアプリケーションソフトでは、バインダ文書ファイルに新規なページを挿入することや、或いは既存のページを削除することや、ページ間移動等を行なうことができる。また、任意の連続したページを束ねたり、束ねられているページを解除したり、または1つに束ねられたページを2つ以上に分割したりすること等ができる。
【0032】
次に、図面を参照しながら、本発明の実施の形態を説明する。
図1は、本実施の形態の電子バインダ装置100の一例を示す構成図である。図1において、101はデータベースであり、バインダ文書ファイルをはじめ、他の種類の文書データや、文書に関するメタデータ、あるいは検索に必要なデータ等が格納されている。
102は、上記データベース101に格納されるバインダデータ(バインダ文書ファイルを構成するデータ)である。
【0033】
103は、必要な情報を基にバインダデータ102を生成するバインダデータ生成管理部(バインダ文書ファイル生成手段)である。バインダデータ生成管理部103は、バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定したり、データベース101から読み出したバインダデータ102の情報を管理したりする。なお、このバインダデータ生成管理部103により、後述するページ編集に関するセキュリティ情報等を設定するセキュリティ情報設定手段が構成されている。
【0034】
105は、バインダデータ102の内部に含まれる文書ファイルを管理するためのバインダ内部ファイル管理部である。このバインダ内部ファイル管理部105により、上記文書ファイルをページ単位に分割するページ分割手段、文書更新管理手段、及びページ画像更新手段が構成されている。
【0035】
106は、バインダデータ102のページ構成を管理するためのバインダページ管理部である。バインダページ管理部106により、ページに関する情報を管理するページ情報管理手段が構成されている。
【0036】
107は、バインダデータ102に対するユーザの操作指示を行なうためのデータベースアクセスユーザインターフェイス部である。上記データベースアクセスユーザインターフェイス部107を介して、ユーザの操作指示がバインダ内部ファイル管理部105やバインダページ管理部106に対する制御指示として伝達される。
【0037】
具体的にバインダデータ102に対して、ユーザが編集操作を指示した場合に行われる処理について述べる。例えば、ユーザがバインダデータ102に、他の文書ファイルのデータを追加するための処理を行なわせる指示をした場合を示す。
【0038】
先ず、バインダ内部ファイル管理部105は、上記他の文書ファイルからページ毎に分割したページイメージを生成する。
【0039】
なお、このページイメージとは、先に述べたバインダ文書ファイルのページを確定させるための所定のフォーマット形式に基づくイメージ情報であり、例えば、画像、Adobe社のPDF、W3CのSVG等のことを表す。
【0040】
次に、バインダ内部ファイル管理部105は、追加される文書をバインダデータ生成管理部103に通知する。更に、バインダ内部ファイル管理部105は、バインダページ管理部106に対して、上記分割された他の文書ファイルのページ情報を通知する。
【0041】
次に、バインダページ管理部106は、バインダデータ生成管理部103に対して、必要なページに関する情報を通知する。バインダデータ生成管理部103は、バインダ内部ファイル管理部105及びバインダページ管理部106から通知された上記他の文書ファイルに関する情報を基に、バインダデータ102を生成する。そして、上記生成したバインダデータ102をデータベース101に登録する。
【0042】
一方、文書ファイルのデータを削除する場合も上述した文書ファイルのデータを追加する場合と同様に、バインダ内部ファイル管理部105は管理していた該当文書ファイルを削除するとともに、上記削除した文書ファイルに関するページイメージを削除した旨をバインダページ管理部106に通知する。
【0043】
この通知を受けたバインダページ管理部106は、バインダデータ生成管理部103に対して、バインダ内部ファイル管理部105によって上記文書ファイルの指定されたページが削除されたことを通知し、上記削除されたバインダページに関するページ管理情報の削除を行なう。
【0044】
バインダページ管理部106からページ削除の通知を受けたバインダデータ生成管理部103は、ページ削除後のバインダデータ102を再生成してデータベース101に登録する。
【0045】
本実施の形態においては、バインダデータ102の各ページ情報そのものはバインダページ管理部106に存在しており、電子バインダ装置100の内部でページの追加、変更、及び削除等の編集を行なうために必要となるメッセージをやり取りしている。
【0046】
本実施の形態の電子バインダ装置100において、ページを表す実体(ページ情報)は、各ページ間で独立して存在している。ここで、そのページの実体をπとし、nページ目の実体をπnと表す。また、バインダを表す実体(文書ファイル情報)をβとする。なお、バインダの実体βは、各バインダについて一つしか存在しないため、ページの実体πnのような末尾の添え字(サフィックス)であるnを伴なって表記されない。
【0047】
ここで、バインダの実体β(以下、バインダβと称する)についての特徴を述べる。
1.バインダβは、ゼロ個以上のページπから構成される。
2.バインダβは、ページπから出力されるメッセージを受信する。
3.バインダβは、特定のページπへメッセージを送信する。
4.バインダβは、全てのページπへメッセージを送信する。
5.バインダβは、バインダβの総ページ数を把握している。
【0048】
上記1.について、バインダβがいかなるページπnも持たない場合は、バインダβは空のバインダを意味することになる。
また、上記4.について、バインダβ自身が把握しているのはバインダβが有する総ページ数の情報だけであり、バインダβを構成する個々のページに関する情報については関知していない。このため、電子バインダ装置100において、バインダβ自身のページ管理が煩雑になることは無い。
【0049】
なお、バインダβが有するページ数を表わすには、例えば1〜nページのバインダβの場合、β1−nと表わすものとする。
【0050】
次に、ページの実体π(以下、ページπと称する)についての特徴を述べる。
1.ページπnは、ページπの下位に何の要素も有していない構成をしている。
2.ページπnは、バインダβからメッセージを受信する。
3.ページπnは、隣接するページ(πn−1またはπn+1)からメッセージを受信する。
4.ページπnは、バインダβへメッセージを送信する。
5.ページπnは、隣接するページ(πn−1またはπn+1)へメッセージを送信する。
6.ページπnは、自己のページ番号nのみを把握している。
【0051】
上記1.については、バインダβとのデータ構造上、ページπnはその末端に位置し、ページπnよりも下位には構成要素を持たないことを示している。
【0052】
上記3.及び上記5.は、ページπnに対して、隣接するページπn−1やページπn+1から相互にメッセージを受け取ったり、送ったりすることを意味している。なお、隣接ページへのメッセージ送信は、特別な指示が無い限り、正順(昇順)に送られる。例えば、ページπnが隣接するページにメッセージを送る場合は、ページπn+1に送られることになる。
【0053】
バインダβとページπnの概念を具体的に示したものが図2である。この例では、バインダβ200が4ページ(β1−4)を持ち、バインダβ200以下に個々のページ(π1201〜π4204)が保持されたデータ構造となっている。
【0054】
まず、バインダデータ生成管理部103が新規にバインダβを作成した際は、図3に示すような、総ページ数0のバインダβ300が作成される。ここで、総ページ数0のバインダβ300に、任意のページπnを挿入するパターンについて考えると、次の3つのページ挿入パターンがある。
【0055】
(1)先頭にページπnを挿入
(2)末尾にページπnを挿入
(3)特定のページにページπnを挿入
【0056】
空のバインダβ300に対するページ挿入の場合、上記のいずれのページ挿入処理を行っても、実質的には同じ結果となる。上記ページ挿入処理を更に一般化して考えるために、図4に示すようなバインダβ400の総ページが4ページであって、2ページ目のπ2402と3ページ目のπ3403との間に新たなページπnew405を挿入する場合のバインダとページ間とのメッセージ授受について、具体的に述べる。
【0057】
まず、ページπnew405はバインダβ1−4400に対して、「3ページ目として挿入したい」旨のメッセージを送る。ここで、本実施の形態におけるメッセージには、特に明示していなくても、送信元を特定できる情報が含まれているものとする。
【0058】
なお、上記メッセージ送信のために、データベースアクセスユーザインタフェイス部107を介して、ユーザはバインダ内部ファイル管理部105及びバインダページ管理部106に対して、ページπnew405を3ページ目へ挿入する指示が行われていることとする。
【0059】
バインダβ1−4400は、ページπnew405から上記メッセージを受け取ると自身の処理状態を判断する。この判断の結果、バインダβ1−4400が他のメッセージを処理中でなければ、ページπnew405からのメッセージに応じるため、バインダβ1−4400はページπ3に対して、「ページ番号を1ページ増やす」ように指示する旨のメッセージを送る。
【0060】
その結果、ページπ3403は現在のページ番号3を「+1ページ」ずらしてページ番号4とする。次に、ページπ3403は、ページπ4404に対しても、同様に現在のページ番号を1ページ増やすように指示するメッセージを送る。この結果、ページπ4404は現在のページ番号4を「+1」ずらしてページ番号5とする。
【0061】
ここで、ページπ4404は最終ページであり、これ以上メッセージを送るページ対象が存在しない。このため、ページπ4404はバインダβ1−4400に対して、「『ページ番号を1ページ増やす』メッセージが末端ページまで到達」したことを表わすメッセージを送信する。
【0062】
バインダβ1−4400が上記メッセージを受け取ると、ページπnew405に対して3ページ目に挿入する許可を与えるメッセージを送る。そこで、ページπnew405は自己のページ番号を3として付与する。そして、バインダβ1−4400は、自己の総ページ数を1つ増やした後に、ページ挿入処理を完了させる。
【0063】
なお、バインダβ1−4400がページπnew405からのページ挿入依頼メッセージを最初のメッセージとして受け取った時点から、ページπ4404からの末端ページ到達メッセージを受け取った最終時点までの間は、バインダβ1−4400自身はロック状態にあり、他のメッセージを受け付けないようになっている。
【0064】
上記メッセージを受け付けない方法として、バインダβ1−4400がメッセージを拒否して送信側で再度送り直す方法や、バインダβ1−4400自身にメッセージキューを持ち、そこに送信側からのメッセージを溜めておく方法等がある。本実施の形態では、メッセージを受け付けない方法は、いかなる方法であっても良い。
【0065】
このバインダβ1−4400にページπnew405を挿入する際のメッセージ伝達の遷移を、図5に示す。詳細については、先に説明した通りである。
ここで、上述した3つのページ挿入パターン((1)先頭に挿入、(2)末尾に挿入、(3)特定のページに挿入)に戻ると、上記ページπnew405の挿入の説明は、(3)特定のページの挿入パターンに相当することになる。
【0066】
なお、図6及び図7、図10及び図11、及び図14及び図15に示す本実施の形態のページ編集に関するフローチャートでは、そのページ編集処理が終了するまでページπnのページ番号は変化しないものとする。例えば、ページ編集処理の過程で、4ページ目を表わすページπ4が、前後のページの削除処理や挿入処理によってページ番号が変更されたとしても、そのページ編集処理が終了するまでは、ページπ4のままである。
【0067】
上述した指定位置へページの挿入処理を実行する際のバインダ及びページに対する処理、或いはメッセージ授受を、図6及び図7に示すフローチャートを用いて説明する。まず、前提条件として、バインダβがnページ持ち、ページπnewをXページ目に挿入するものとする。
【0068】
ステップS601で、ページπnewがバインダβに対して、メッセージ”Insert(X)”を送る。ここで、”Insert(X)”は、Xページ目に挿入したいことを示すメッセージを表わし、図5に示した手順500における”Insert(3)”がこれに相当する。ステップS602で、このメッセージをバインダβが受信する。
【0069】
ここで、本実施の形態においては、以降のフローチャート(図10及び図14)の説明でも同様だが、メッセージの送受信に関するエラー処理については、フローチャートが煩雑になるため明記していない。例えば、通常、メッセージ送受信の際、所定の時間以内に送受信処理が終了しなければタイムアウト処理などが発生する。上記タイムアウト処理のメッセージに対する基本的な処理については、本発明に直接関係しないため明記していないが、実際には行われているものとする。
【0070】
ステップS603で、ステップS602においてバインダβが受信したメッセージの受け入れを許可することが可能か否かを判断する。これは、バインダβがメッセージを受け付けないロック状態にあるときや、送られてきたメッセージの中で挿入対象ページXがバインダβ1−nのページ範囲(1〜nページ)外などである場合に許可されない。
【0071】
バインダβが送信されたメッセージの受け入れを許可できない場合は、ステップS604でそのエラー処理が行われる。一方、バインダβが送信されたメッセージを許可できる場合は、ステップS605で、バインダβが許可したメッセージ以外の他のメッセージをバインダβがさらに受け付けないように、バインダβのメッセージ受信に関してロックを掛ける。
【0072】
ステップS609で、変数mにページ番号のXを代入し、ステップS610で、変数mがバインダβの最後のページn以下(m≦n)かどうか判定する。この判定の結果、Yesならば、ステップS611へ進む。
【0073】
ステップS611では、mページ目のページπmにメッセージ”Shift(1)”を送る(図5に示す手順501及び手順502におけるメッセージ”Shift(1)”)。ステップS612では、ページπmが上記メッセージ”Shift(1)”を受信して、ステップS613でページπmのページ番号を「m+1」とする。ステップS614で変数mを1つだけ増やし、ステップS610に戻る。
【0074】
ここで、ステップS611において、”Shift(1)”メッセージの送信元は、本メッセージを直前に受信しているページπである。具体的には、図6に示すステップS610〜ステップS614の繰返しループにおいて、最初の送信元は、ページπnewであり、以降”Shift(1)”メッセージを受信したページπmとなる。
【0075】
すなわち、ページπnewを最初の送信元として、ページπnewからページπmへ”Shift(1)”メッセージを送信して、上記メッセージを受信したページπmがさらにページπm+1へ”Shift(1)”メッセージを送信する。このように、挿入対象のページ以降のページ番号がそれぞれ+1されるようにするため、順次、上記”Shift(1)”メッセージの送信が繰り返される。
【0076】
一方、ステップS610で、変数mがバインダβ最後のページnを越える場合は、図7に示したステップS615へ進み、最終ページπmはバインダβに対して、メッセージ”Finish(Shift(1))”を送る(図5に示す手順503を参照)。なお、メッセージ”Finish(message)”(以下、(message)は任意のメッセージ内容を表す)は、最終ページまで、上記(message)、が伝播して、これ以上メッセージを伝播する対象のページが存在しないときに送られるメッセージである。
【0077】
また、このメッセージ”Finish(message)”は、バインダβのメッセージ処理にロックが施されていても、バインダβが受信することのできる特殊なメッセージである。
【0078】
ステップS616で、バインダβはこのメッセージ”Finish(message)”を受け取る。ステップS606では、ステップS602のメッセージ”Insert(X)”の送信元ページであるπnewに対して、”Allow(Insert(X))”のメッセージを送る(図5に示す手順504を参照)。ここで、メッセージ”Allow(message)”は、バインダβが上記(message)を許可することを意味する。
【0079】
なお、バインダβが上記(message)を拒否した場合は、メッセージ”Reject(message)”が送信元に送られる。このメッセージ”Reject(message)”は、ステップS604のエラー処理内で送信元のページに送られている。
【0080】
ステップS607では、ページπnewがステップS606でのメッセージ”Allow(message)”を受信して、バインダβからページの挿入が許可される。そして、ステップS608で、ページπnewは自己のページ番号をXとする。
【0081】
ステップS617で、バインダβは自己の総ページ数を1つ増やす。上述した処理によってバインダβにページπnewを挿入するための処理が完了したので、ステップS618では、ステップS605で施されたバインダβのメッセージロック処理を解除する。
【0082】
上記図6及び図7に示したページ挿入のフローチャートは、バインダβの指定したページXへ挿入する際の処理を示してものである。それに対して、バインダβの先頭にページを挿入する場合は、図6のステップS609で用いる変数XをX=0とし、また、バインダβの末尾にページを挿入する場合は、変数XをX=n+1として、上述した処理を行なうようにすればよい。
【0083】
次に、バインダからページを削除する例について述べる。図8は5ページからなるバインダβ1−5700であり、この中の3ページ目(ページπ3703)を削除することとする。
【0084】
まず、ページπ3703がバインダβ1−5700に対して、「自分自身を削除したい」旨のメッセージを送る。バインダβ1−5700は、上記ページπ3703からのページ削除メッセージを受け取ると自己の処理状態を判断する。バインダβ1−5700が他のメッセージの処理中でなければ、バインダβ1−5700はページπ4704に対して、「ページ番号を1ページ減らす」ように指示するメッセージを送る。
【0085】
そこで、ページπ4704は現在のページ番号4を「−1」ずらしてページ番号3とする。次に、ページπ4704は、ページπ5705にも同様に、「ページ番号を1ページ減らす」ように指示するメッセージを送る。ページπ5705は現在のページ番号5を「−1」ずらしてページ番号4とするが、π5705は最終ページであり次に上記メッセージを送る対象のページが存在しない。このため、ページπ5705はバインダβ1−5700に対して、「『ページ番号を1ページ減らす』メッセージが末端まで到達」したことを表わすメッセージを送信する。
【0086】
次に、バインダβ1−5700がページπ5705より上記メッセージを受け取ると、ページπ3703に対して自分自身であるページπ3703を削除する許可を与える旨のメッセージを送る。これにより、ページπ3703は自分自身を消滅させる。
【0087】
最後に、バインダβ1−5700は総ページ数を1減らして、削除処理は完了する。なお、バインダβ1−5700がページπ3703からのページ削除依頼メッセージを最初のメッセージとして受け取った時点から、ページπ5705からの末端ページ到着メッセージを受け取った終了時点までの間は、バインダβ1−5700自身はロック状態にあり、他のメッセージを受け付けない。
【0088】
このバインダβ1−5700からページπ3703を削除する際のメッセージ伝達の遷移を、図9に示す。詳細については、先に説明した通りである。
【0089】
上述した指定ページの削除処理を実行する際のバインダ及びページに関する処理、或いはメッセージ授受を、図10及び図11のフローチャートを用いて説明する。まず、前提条件として、バインダβがnページ持ち、ページπxをXページ目から削除するものとする。
【0090】
ステップS901で、ページπxがバインダβに対して、メッセージ”Delete(X)”を送る。ここで、”Delete(X)”は、Xページ目を削除したいことを示すメッセージを表わし、図9に示した手順800における”Delete(3)”がこれに相当する。ステップS902で、このメッセージをバインダβが受信する。
【0091】
ステップS903で、ステップS902においてバインダβが受信したメッセージの受け入れを許可することが可能か否かを判断する。これは、バインダβがメッセージを受け付けないロック状態にあるときや、送られてきたメッセージの中で削除対象ページXがバインダβ1−nのページ範囲(1〜nページ)外などである場合に許可されない。
【0092】
バインダβが送信されたメッセージの受け入れを許可できない場合は、ステップS904でそのエラー処理が行われる。一方、バインダβが送信されたメッセージを許可できる場合は、ステップS905で、バインダβが許可したメッセージ以外の他のメッセージをバインダβがさらに受け付けないように、バインダβのメッセージ受信に関してロックを掛ける。
【0093】
ステップS908で、変数mにページ番号のXを代入し、ステップS909で、変数mがバインダβの最後のページnより小さい(m<n)かどうか判定する。判定の結果、Yesならば、ステップS910へ進む。
【0094】
ステップS910では、「m+1」ページ目のページπm+1にメッセージ”Shift(−1)”を送る(図9に示す手順801及び手順802を参照)。ステップS911では、ページπm+1が上記メッセージ”Shift(−1)”を受信して、ステップS912でページπm+1のページ番号をmとする。ステップS913で変数mを1だけ増やし、ステップS909に戻る。このようにして、隣接ページへ順次、ページ番号を「−1」するメッセージ”Shift(−1)”が送られる。
【0095】
ステップS909で、変数mがバインダβ最後のページnを超える場合は、ステップS915へ進み、最終ページπmはバインダβに対して、メッセージ”Finish(Shift(−1))”を送る(図9に示す手順803を参照)。
【0096】
ステップS916で、バインダβはこのメッセージ”Finish(Shift(−1))”を受け取り、ステップS906では、バインダβはステップS902のメッセージ”Delete(X)”の送信元ページであるπxに対して、”Allow(Delete(X))”のメッセージを送る(図9に示す手順804を参照)。
【0097】
なお、バインダβが上記メッセージ”Finish(Shift(−1))”の受け取りを拒否した場合は、”Reject( Finish(Shift(−1)))”が送信元のページに送られる。このメッセージ”Reject(Finish(Shift(−1)))”は、ステップS904のエラー処理内で該当するページに送られている。
【0098】
ステップS907では、ページπxがステップS906でのメッセージ”Allow(Delete(X))”を受信する。そして、ステップS914へ進み、バインダβからXページ目を消滅させるべくページπx自身を消滅させる。
【0099】
ステップS917で、バインダβは、自己の総ページ数を1つ減らす。上述した処理によってバインダβからページπxを消滅するための処理が完了したので、ステップS918では、ステップS905で施されたバインダβのメッセージロック処理を解除する。
【0100】
次に、バインダ内のページの移動に関する例について述べる。図12(A)は5ページからなるバインダβであり、この中の4ページ目を2ページ目に移動するとする。
【0101】
まず、ページπ41004がバインダβ1−51000に対して、「2ページ目に移動したい」旨のメッセージを送る。バインダβ1−51000は、上記ページπ41004からのページ移動メッセージを受け取ると自己の処理状態を判断する。
【0102】
バインダβ1−51000が他のメッセージの処理中でなければ、バインダβ1−51000は、まず、移動元ページの次ページであるページπ51005に対して、隣接するページ(ページπ41004)からのメッセージを拒絶するようにメッセージを送る。これによって、ページπ51005は、隣接するページπ41004からのメッセージが送られてきた場合、その指示に従わないで、隣接するページπ41004からメッセージがあったことをバインダβ1−51000に伝えるようになる。
【0103】
次いで、バインダβ1−51000は、移動先ページπ21002に対して、「ページ番号を1ページ増やす」ように指示するメッセージを送る。その結果、ページπ21002は現在のページ番号2を「+1」ずらしてページ番号3として、さらにページπ21002は、ページπ31003に対して同様に、ページ番号を1ページ増やすように指示する旨のメッセージを送る。この結果、ページπ31003は現在のページ番号3を「+1」ずらしてページ番号4とする。
【0104】
ページπ31003も同様に、ページ番号を1ページ増やすように指示するメッセージを隣接しているページπ41004に送るが、ページπ41004は自ら移動するために、バインダβ1−51000に対して「『ページ番号を1ページ増やす』メッセージが送られてきた」ことを拒絶する旨のメッセージを送信する。
【0105】
バインダβ1−51000がページπ41004からの上記拒絶する旨のメッセージを受け取ると、ページπ51005に対してメッセージの受信拒絶を解除する指示を送り、ページπ51005のロック状態が実際にロック解除される。
【0106】
最後にバインダβ1−51000は、ページπ41004に対して、ページπ21002に移動することの許可を与えるメッセージを送る。そこで、ページπ41004は自己の現在のページ番号4を移動先のページ番号2として、移動処理は完了する。
【0107】
なお、バインダβ1−51000がページπ41004からのページ移動依頼メッセージを最初のメッセージとして受け取った時点から、ページπ51005からメッセージを受け取る時点までの間は、バインダβ1000自身はロック状態にあり、他のメッセージを受け付けない。
【0108】
バインダβ1−51000において、任意のページがページ移動する際のメッセージ伝達の遷移を、図13に示す。詳細については、先に説明した通りである。
【0109】
また、図12(B)は図12(A)と同じく5ページからなるバインダβ1−51010であり、この中の2ページ目を4ページ目に移動する例である。この場合は、ページ間の移動メッセージが「ページ番号を1ページ減らす」となる。この場合は、移動元のページπ21012以降のページに上記メッセージを送るため、バインダβ1010からメッセージをブロックするように指示されたページπ51015がメッセージを拒絶する。
【0110】
このメッセージ伝達の遷移について、図16に示す。詳細については、先に説明した通りである。
ページ移動の場合のメッセージ授受について、図14及び図15のフローチャートを用いて説明する。まず、前提条件として、バインダβがnページ持ち、ページπxをXページ目からYページ目に移動するものとする。
【0111】
先ず、ステップS1201で、ページπxがバインダβに対して、メッセージ”Move(X,Y)”を送る(図13における手順1100、及び図16における手順1600を参照)。ここで、メッセージ”Move(X,Y)”は、Xページ目をYページ目に移動したいことを示すメッセージを表わす。
ステップS1202で、このメッセージをバインダβが受信する。
【0112】
ステップS1203で、バインダβは、ステップS1202で受信したメッセージを許可できるか否かを判断する。これは、バインダβがロック状態にあって複数のページから同時にメッセージを受け付けることができない状態でないか、或いは、バインダβに送られてきたメッセージ内容のページX及びページYが、バインダβが保持するページ範囲(1〜n)外などでないかを判断する必要があるためである。
【0113】
上記の場合には、バインダβは、ステップS1202で受信したメッセージ”Move(X,Y)”を許可せず、ステップS1204でそのエラー処理が行われる。
【0114】
一方、バインダβがステップS1202で受信したメッセージメッセージ”Move(X,Y)”を許可できる場合は、ステップS1205において、バインダβがその他のメッセージを受け付けてしまわないように、バインダβのメッセージ受信に関してロックを施している。
【0115】
ステップS1206では、バインダβは、メッセージとして送られてきたページ番号X及びページ番号Yの大小関係を調べるために両ページ番号を比較する。その結果、ページ番号Xがページ番号Yより真に小さい場合は、ステップS1207で変数limitに「Y+1」が代入される。
【0116】
一方、ステップS1206で、ページ番号Yがページ番号Xより等しいか若しくは大きい場合は、ステップS1208で変数limitに「X+1」が代入される。
【0117】
ステップS1209では、ページπlimitが存在するか否かを確認する。ページπlimitが存在していれば、ステップS1210へ進み、ページπlimitが存在していなければ、ステップS1216へ進む。
【0118】
ステップS1210では、バインダβは、ページπlimitに対してメッセージ”DoBlockMessage()”を送る(図13に示す手順1101、及び図16に示す手順1601を参照)。なお、メッセージ”DoBlockMesssage()”が送られたページπlimitは、メッセージ”CancelBlockMessage()”がバインダβから送られてくるまで、隣接するページからのメッセージを拒絶する。ページπlimitが隣接するページからのメッセージを拒絶したときは、ページπlimitはメッセージの送り元であるバインダβに対して、メッセージを拒絶した旨のメッセージ”BlockMessage(message)”を送る。
【0119】
ステップS1211で、ページπlimitはステップS1210でバインダβより送られたメッセージを受信する。ステップS1212では、ページπlimitは送信元であるバインダβに、メッセージ”StartBlockMessge()”を送る(図13に示す手順1102、及び図16に示す手順1602を参照)。ステップS1213で、バインダβが上記メッセージ”StartBlockMessge()”を受信する。
【0120】
ステップS1216では、ページ番号Xがページ番号Yより真に小さいか否かを確認する。ページ番号Xがページ番号Yより小さい場合は、ステップS1217へ、ページ番号Xがページ番号Yより大きい場合は、ステップS1219へ進む。
【0121】
なお、以下のステップS1217〜ステップS1220で行なう処理については、上記ステップS1206での同様なページ番号の比較判断処理の後に移動して、上記ステップS1217〜ステップS1220での処理を、S1206の直後に行なうようにしてもよい。
【0122】
ステップS1217では、変数mにX+1を代入し、ステップS1218では、変数valに−1を代入して、ステップS1222へ進む。
また、ステップS1219では、変数mにXを代入し、ステップS1220でvalに1を代入する。
【0123】
ステップS1222では、ページπmにメッセージ”Shift(Val)”を送る(図13に示す手順1103〜1105、図16に示す手順1603〜1605を参照)。ステップS1223でページπmがこのメッセージを受信する。
【0124】
ステップS1224で、ページπmがステップS1210でバインダβからブロックするように指示が出されているか、もしくは、変数Xと変数mが等しいか判定する。判定の結果、バインダβからのブロック指示が出されているか、若しくは変数Xと変数mが等しければステップS1228へ、そうでなければステップS1225へ進む。
【0125】
ステップS1225では、ページπmのページ番号に変数valを加える。ステップS1226では、変数mを「m+1」として、ステップS1227で、ページπmが存在するか確認する。ページπmが存在していればステップS1222へ戻り、存在していなければステップS1214へ進む。
【0126】
一方、ステップS1224で、バインダβからのブロック指示が出されている、若しくは変数X=mの場合には、ステップS1228でバインダβにメッセージ”Reject(Shift(Val))”を送る(図13に示す手順1106、及び図16に示す手順1606を参照)。
【0127】
ステップS1229で、バインダβがメッセージ”Reject(Shift(Val))”を受け取ると、S1210でメッセージブロックを指示したページπlimitに対して、メッセージブロック解除の指示”CancelBlockMessage()”を送り(図13に示す手順1107、及び図16に示す手順1607を参照)、ステップS1214へ進む。
【0128】
ステップS1214は、ステップS1202でのメッセージ送信元ページπxに対して、”Allow(Move(x,y))”のメッセージを送る。ステップS1215で、ページπxがそのメッセージ”Allow(Move(x,y))”を受信し、ステップS1221では、ページπxのページ番号をXからYに変更する(図13に示す手順1109、及び図16に示す手順1609を参照)。
【0129】
このようにしてページの移動処理が完了すると、ステップS1230では、ステップS1205でバインダβのメッセージ受信に関してするロック状態が解除される。
【0130】
以上、説明してきた図14及び図15に示すフローチャートはバインダβにおけるページ移動に関しての全体の流れを表わすものであったが、本発明の場合、ページ自身が自律的にメッセージをやりとりして処理が行なわれている。
【0131】
すなわち、上述した説明では、各ページπ自身がメッセージ伝達を行なうように説明しているが、実際にはバインダページ管理部106が各ページに関する記録領域を管理していて上記メッセージの伝達が行われるようになされている。
【0132】
この場合、バインダページ管理部106は、他のページから伝達されるメッセージを指定のページに関する記録領域に保持したり、また対応するメッセージを出力したり、或いは、保持済みのページ属性に基づいてメッセージを拒否したりして、ページ管理を図っている。なお、バインダページ管理部106によるバインダの管理及び後述するバインダ群についても同様な方法で行っている。
【0133】
ここでは、その一例として図4〜図7で説明したページの挿入処理を挙げ、メッセージ伝達の観点から説明する。まず、バインダβ400、ページπ1401、ページπ2402、ページπ3403、ページπ4404がそれぞれ独立して存在している。
【0134】
ページはページ番号と、元となる親のID番号を持ち、バインダはページから派生したものでありページの特徴とともに総ページ数という属性を持つ。ただし、本実施の形態ではバインダのページ番号は使われない。全てのページ(バインダ)には、一意なID番号が付けられるとする。
【0135】
まず、バインダ内部ファイル管理部105は、図4で示したように3ページ目に挿入されるページπnew405を作成する。バインダページ管理部106は、ページπnew405の作成時には、とりあえずページ番号は無効な値、ID番号にはバインダβ400に対応する値を設定する。
【0136】
ここで、バインダページ管理部106は、ページπnew405に関する記録領域に保有されているID番号を使って、バインダβ400自身に関する記録領域に対して”Insert(3)”のメッセージを送る(図5に示す手順500を参照)。
なお、メッセージには送信元を特定できる情報が付随しているものとする。
【0137】
バインダページ管理部106は、バインダβ400に関する記録領域に上記メッセージ”Insert(3)”が出力されたと判断すると、次に、バインダページ管理部106は、バインダβ400が処理可能な状態であるか否かを、バインダβ400自身が自律的に行っているが如く判断する。
【0138】
この判断の結果、処理可能である場合、バインダページ管理部106は、バインダβ400に関する記録領域に、ページ番号3とバインダ自身のID番号をあらためて設定して、メッセージ”Shift(1)”を各ページの記録領域に向けてブロードキャストする。
【0139】
ここで、バインダページ管理部106が、バインダβ400から各ページに対するメッセージの送り方として、例えば、次の2つの方法がある。直接送り先のID番号を指定する方法と、親のID番号とページ番号を指定する方法である。前者は、ページπnew405からバインダβ400へ送られるときの方法で、後者は先に述べたバインダβ400からページπnew405へ送られるときの方法である。
【0140】
バインダページ管理部106は、各ページに関する記録領域を参照して、バインダβから受け取ったメッセージを判断し、処理を行なう。ここで、バインダページ管理部106は、送られたメッセージが何れのページ宛のメッセージであるかを判断して、該当ページに対して送られたメッセージに対応した処理を行なうように動作する。
【0141】
例えば、バインダページ管理部106は、ページπ3に送信されたメッセージを確認すると、次のメッセージの送り先としてページ番号4(送付宛先が4ページ目という意味)、及び同一のバインダのID番号を指定して、メッセージ“Shift(1)”を送る(図5に示す手順502を参照)。
【0142】
次に、バインダページ管理部106は、指定されたページπ4404からページπ5405へ向けて、バインダのID番号を指定してメッセージ“Shift(1)”を送る。
【0143】
ここで、バインダページ管理部106は、ページπ4404からバインダβ400の内部で持っている総ページ数(すなわち、4ページ)以上のページ番号である5ページ目に対してメッセージを送っていることを判断する。そこで、バインダページ管理部106は、バインダβ400宛てへのメッセージではないが、総ページ以上(範囲外)のページ番号を指定して送信している旨のメッセージを、ページπ4404に送り返す。
【0144】
バインダページ管理部106は、ページπ4404が上記メッセージを受け取ったと判断すると、次に、ページπ4404自身が最終ページであることを理解して、ページπ4404のページ番号を4から5にする。つまり、バインダページ管理部106は、現在のページπ4404に関する記録領域に保持されたページ情報のページ番号4に対して、メッセージで送られてきた“Shift(1)”の「1」を加えてページ番号5を新たに保持する。
【0145】
更に、バインダページ管理部106は、ページπ4404が、上記メッセージを受理したことを表わすメッセージ“Allow(Shift(1))”をページπ3403に返す。ページπ3403でも同様に、バインダページ管理部106によって、ページ番号を「+1」してページ番号4として、最初のメッセージの呼び出し元であるバインダβ400にメッセージ“Allow(Shift(1))”を返すことが行われる。
【0146】
これによって、バインダページ管理部106は、バインダβ400に関して、既存のページの更新処理が終了したことを判断し、メッセージ“Insert(3)”を送ってきたページπnew405に対して、メッセージ“Allow(Insert(3))”を送る。そして最終的に、バインダページ管理部106は、バインダβに含まれることとなるページπnew405のページ番号を3と設定する(図5に示す手順504を参照)。
【0147】
なお、図7及び図11のフローチャート上で、バインダ「βにメッセージ”Finish(Shift(1))”を送る」のステップS615(ステップS915を含む)が示されているが、実際には上記のようにバインダページ管理部106が管理するメッセージがバインダβに伝達されていることになる。
【0148】
このようにして、バインダページ管理部106がバインダβ及び各ページπに関する記録領域を管理することにより、バインダβを構成する各ページが自律して存在するかのように、送られてくるメッセージの内容を各ページ自身が理解して、それに応じた処理が実行されるようにすることができる。このため、例えば、ページ管理テーブルのようなページを管理するために、さらに別のデータの準備を不要にすることができる。
【0149】
(第2の実施の形態)
次に、複数のページをまとめた状態を維持できる「ページ群」を導入する。なお、第1の実施の形態と同様に、本実施の形態においても、バインダページ管理部106がページ、ページ群、及びバインダを管理することによって、それぞれが自律的にメッセージ伝達等しているように動作している。
以下、ページ群θについての特徴を挙げる。
【0150】
1.ページ群θは、複数のページπをまとめたものである。
2.ページ群θは、ページπの存在できる位置に存在できる。
3.ページ群θは、1ページでも構わない。
4.ページ群θは、ページπと同等のメッセージを送ることができる。
5.ページ群θがまとめている末端の構成要素は、必ずページπとなる。
【0151】
上記1.については、ページ群θは、複数のページをまとめていることを表わし、上記2.は、ページ群θはページπを派生したものであることを意味している。また、上記3.は、ページ群θは1ページだけしか対象としていなくても、ページ群となり得ることを示している。
【0152】
上記4.は、ページ群θはページπの派生であるので、ページと同等のメッセージが送れることを示している。
上記5.は、上記2.から分かるように、ページ群θはページの存在できる位置に存在できるので、ページ群でまとめられているものの中にページ群が入ることができる。しかし、ページ群θを辿っていくと、最終的には必ずページでなければならないことを表している。
【0153】
なお、ページ群がまとめているページ数がmページからnページのときは、ページ群θm−nと記載することにする。
【0154】
具体的には、ページ群θ、バインダβ、及びページπとの関係を、図17のように表わすことができる。図17では、バインダβ1700は、ページとしてページπ11401、ページπ21402、及びページπ61406を持つ。
【0155】
更に、ページを束ねたものとしてページ群θ3−51407を持つ。ここで、ページ群θ3−51407は、その内部にページπ31403、π51405、及びページ群θ4−41408を持つ。ページ群θ4−41408は、唯一のページπ41404から成る。このように、ページ群θ1707、1708は、内部にページπ、あるいはページ群θ自体を持つ構造を表わす。
また、図17に示すように、バインダβ、ページ群、及びページは、それぞれに対する拡張記録領域1710〜1718を有している。なお、拡張記録領域1710〜1718に記録された情報を用いた実施の形態については、第3の実施の形態において説明する。
【0156】
ここで、ページ群θはメッセージ空間を持つ。メッセージ空間は、ページ群θがメッセージを送ることができる範囲であり、このメッセージ空間内にあるページに対して、メッセージを送ったり、処理を指示させたりすることができる。
【0157】
ページ群θがメッセージを送ることができるのは、一階層分だけである。すなわち、図17に示した例では、バインダβ1−61700は、ページ群の一種であるので、バインダβ1−61700から直接メッセージを送ることが出来るものは、ページπ11401、ページπ21402、ページπ61406、及びページ群θ3−51407だけである。
【0158】
ページ群であるθ3−51407は、受け取ったメッセージを判断し、必要であれば更に内部のページπ31403、ページπ51405、及びページ群θ4−41408にそのメッセージや、もしくはページ群θ3−51407で加工されたメッセージを通知する。同様な処理をθ4−41408でも行なう。
【0159】
上記第1の実施の形態において、図4〜図7で説明したページの挿入処理におけるメッセージ伝達を、上述したページ群を含んでいるバインダ文書ファイルで説明する。まず、バインダβは図17のような6ページから成り、3ページから5ページが束ねられている。更に、4ページ目がページ群θ1708に属しているとする。
【0160】
ここで、ページπ11701、ページπ21702、ページπ31703、ページπ41704、ページπ51705、ページπ61706、ページ群θ3−51707、及びページ群θ4−41708は、それぞれ独立して存在している。
【0161】
但し、先に説明したように、バインダβ1700、ページ群θ3−51707、及びページ群θ4−41708はメッセージ空間を持つ。バインダβ1700は、自己のメッセージ空間内に、ページπ11701、ページπ21702、ページπ61706、及びページ群θ3−51707を持っている。
【0162】
ページ群θ3−51707は、自己のメッセージ空間内に、ページπ31703、ページπ51705、及びページ群θ4−41708を持っている。また、ページ群θ4−41708は、ページπ41704だけを自己のメッセージ空間に持っている。
【0163】
ページπはページ番号と、元となる親のID番号を持ち、バインダβはページπから派生したものであり、ページの特徴とともに総ページ数という属性を持つ。ただし、本実施の形態ではバインダのページ番号は使われない。
【0164】
全てのページ(バインダ)には、一意なID番号が付けられるとする。ページ群θには、自己のメッセージ空間に持つページの範囲を属性に持っている。例えば、ページ群θ3−51707であれば、「ページ3からページ5」が属性として保有している。
【0165】
まず、既に図4でも示したように、バインダβ1700の3ページ目のメッセージ空間に挿入されるページπnewが作成される。また、ページπnewの作成時には、とりあえずページ番号として無効な値、またID番号としてバインダβに対応する値が設定される。ここで、ページπnewは自己で保有するID番号を使い、バインダβに対して”Insert(3)”のメッセージを送る(図5に示す手順500参照)。
【0166】
なお、メッセージには送信元を特定できる情報が付随しているものとする。バインダβ1700は、上記メッセージ”Insert(3)”を受け取ると、バインダβ1700が処理可能な状態であるか否かを、バインダβ1700自身が自律的に判断する。判断の結果、処理可能である場合、バインダβ1700は、ページ番号の3とバインダβ1700自身のID番号をあらためて設定して、メッセージ”Shift(1)”をバインダβ1700のメッセージ空間内の全てのページに向けてブロードキャストする。
【0167】
ここで、バインダβ1700から各ページに対するメッセージの送り方として、例えば、次の2つの方法がある。直接送り先ページのID番号を指定する方法と、親のID番号とページ番号を指定する方法である。前者は、ページπnewからバインダβ1700へ送られるときの方法で、後者は先に述べたバインダβ1700からページπnewへ送られるときの方法である。
【0168】
各ページは、バインダβ1700から受け取ったメッセージの判定を独自に判断し、処理を行なう。また、各ページは自分宛のメッセージでなければ、送られたメッセージの処理を行なわない。例えば、ページ群θ3−51707は、自己の管理しているメッセージ空間内にページπ31703があることがその属性より分かるので、ページ群θ3−51707は自己のメッセージ空間宛に、ページ番号3と自己のID番号を設定して、メッセージ”Shift(1)”を転送する。
【0169】
ページ群θ3−51707のメッセージ空間内の各ページは、受け取ったメッセージの判定を独自に判断し、処理を行なう。各ページは、自分宛のメッセージでなければ、転送されたメッセージの処理は行なわない。例えば、ページπ31703は、ページ群θ3−51707から転送されたメッセージを確認すると、送り先にページ番号4(送付宛先が4ページ目とういう意味)、及びページ群θ3−51707のID番号を指定して、メッセージ“Shift(1)”を送る(図5に示す手順502を参照)。
【0170】
すると、今度は指定されたページ群θ4−41708が、自分宛のメッセージであることを判断し、ページ群θ3−51707と同様に、更にその内部のメッセージ空間に上記メッセージを転送する。その結果、ページπ41704が自分宛のメッセージであると判断すると、ページ群θ4−41708のメッセージ空間において、ページπ41704は、ページπ51705へ向けて、ページ群θ4−41708のID番号を指定してメッセージ“Shift(1)”を送る。
【0171】
ここで、ページπ41704がページ群θ4−41708の内部で管理しているページ数以上のページ番号(すなわち、5ページ目)に対してメッセージを送っている。そこで、ページ群θ4−41708は、自身宛てへのメッセージではないが、ページπ41704に総ページ以上(範囲外)のページ番号を指定して送信している旨のメッセージを、ページπ41704に送り返す。
【0172】
ページπ41704が上記メッセージを受け取ると、ページπ41704自身が最終ページであることを理解して、ページ番号を4から5に変更する。つまり、現在のページ番号4にメッセージで送られてきた“Shift(1)”の「1」を加えてページ番号5に変更する。
【0173】
更に、ページπ41704は、メッセージを受理したことを表わすメッセージ“Allow(Shift(1))”をページ群θ4−41708に返す。
【0174】
ページ群θ4−41708が自己のメッセージ空間に上記メッセージを転送すると同時に、ページ番号5と自己のID番号を設定して、ページπ51705にメッセージ”Shift(1)”を送る。ページπ51705は今まで述べてきたように、自己が最終ページであることを理解して、ページ番号を5から6にして、メッセージ“Allow(Shift(1))”をページ群θ4−41708に返す。
【0175】
ページ群θ4−41708は、隣接するページ(ページπ51705)に投げたメッセージと、自身のメッセージ空間に投げたメッセージとの両方から、メッセージ“Allow(Shift(1))”が返されるのを待つ。そして、自己の管理しているページを「ページ5からページ5」にし、ページπ31703にメッセージ“Allow(Shift(1))”を送る。
【0176】
ページπ31703でも同様に、ページ番号を4として、メッセージの呼び出し元であるページ群θ3−51707に、メッセージ“Allow(Shift(1))”を返す。また、ページ群θ3−51707も、ページ群θ4−41708も、同様に自己のメッセージ空間にメッセージを投げるとともに、ページπ61706にも上記メッセージ“Allow(Shift(1))”投げており、これにより、ページπ61706がページ番号7に変更される。
【0177】
今まで述べてきた、あるページに対してそのページ番号を変更する処理は、第1実施の形態に述べた方式と同様である。ページ群θ3−51707はメッセージ“Allow(Shift(1))”を受け取ることで、自己のメッセージ空間内のページを、「ページ4から6」にする。
【0178】
そして、バインダβ1700は、既存のページの更新処理が終了したことを知り、メッセージ“Insert(3)”を送ってきたページπnewに対して、メッセージ“Allow(Insert(3))”を送り、最終的に、ページπnewのページ番号を3とする。
【0179】
このように、メッセージ伝達については、第1の実施の形態で示したページに対して伝達する処理と基本的に同様である。特にページ群の場合は、隣接するページにメッセージを送る際に、ページ群自身のメッセージ空間にも上記メッセージを転送し、その両方からの終了を待って判断している点が異なるだけである。
【0180】
なお、バインダβ1700の直下ではなく、ページ群θ3−51707の中にページπnewを挿入したい場合は、ページ群θ3−51707のメッセージ空間内にページπnewを作成すればよい。このときは、ページπnewから発せられるメッセージは、ページ群θ3−51707に通達される。これは、前記処理のバインダβ1700にメッセージが送られることに相当する。そのメッセージは更に、自己が所属するメッセージ空間の上位に位置するページ群(バインダ含む)に対して転送される。
【0181】
例えば、前記の例において、ページ群θ3−51707の中にページπnewをページ番号3として挿入するときを示す。まず、ページπnewからページ群θ3−51707に対して“Insert(3)”のメッセージが伝わる。更に、ページ群θ3−51707は、ページ群θ3−51707が所属するメッセージ空間の所有者として上位に位置付けられたバインダβ1700に対して、上記メッセージ“Insert(3)”を転送する。
【0182】
この後は、先程と同様の処理がなされ、最終的にページ群θ3−51707のメッセージ空間内のページπnewに対して、ページ番号を3とするようなページ挿入処理が行われる。このようにページ群の内部で管理しているページ番号が変更されるときでも、適切にページ番号が付け替えられる。
【0183】
また、特定区間をページ群にする場合は、ページ群にしたいメッセージ空間でページ群θを作成するようにする。そして、そのメッセージ空間を所有しているページ群に対して、例えば、ページ群θから“DoFold(m,n)”なるメッセージを送る。すると、上記メッセージ空間の全てのページ、及びページ群に対して、メッセージ“Fold(m,n,ページ群θのID)”がブロードキャストされる。この場合、ページmからページnの間のページは、ページ群θ以下に移動する。
【0184】
また、ページ群θの削除も同様にできる。ページ群の削除は、複数ページが削除されることを除けば、これも単なるページの削除と同様に可能である。ページπの移動、ページ群θの移動は、同一メッセージ空間内であれば、複数ページが増減するだけの違いである。また、メッセージ空間をまたがったページπの移動、ページ群θの移動は、同一メッセージ空間内における移動、削除を組み合わせて実現可能である。
【0185】
更に、バインダβ1、及びバインダβ2が存在している場合に、バインダβ2をバインダβ1の内部に挿入することが可能である。これは、バインダβ1の挿入先のメッセージ空間にバインダβ2を置くことで、バインダβ2をページ群として扱うことにより実現できる。
【0186】
(第3の実施の形態)
ここでは、バインダ、各ページ、及びページ群が、図17に示すような拡張記録領域を持つ場合の実施の形態について説明する。例えば、バインダの拡張記録領域にタイトルを表わすフィールドを設ければ、バインダそのもののタイトルを表わし、また、ページπ、ページ群θのそれぞれに対する拡張記録領域に、タイトルを表わすフィールドを設ければ、あるページ群θに対してタイトル(章題)を表わすことができる。上記拡張記録領域には、タイトルを表わすフィールドの他に、セキュリティに関する情報や暗号化のための鍵情報を保持するフィールド等を設けるようになされている。
【0187】
また、この拡張記録領域に対する処理は、バインダβ、各ページπ、及び各ページ群θがその処理方法を知っている。このため、上述したような第1の実施の形態、又は第2の実施の形態のように、メッセージが伝達された場合、バインダβ、各ページπ、及び各ページ群θは自己が処理すべきメッセージを自律して判定する。
【0188】
一例として、各ページπまたは各ページ群θがタイトルを持ち、各ページπまたは各ページ群θの拡張記録領域1711〜1718に上記タイトルを設定する場合は、例えば、メッセージ“SetTitle(”title”)”のようなメッセージとその処理方法を定義しておいて、各ページπ、ページ群θごとにメッセージを設定する。
【0189】
このように、各ページπまたは各ページ群θに拡張記録領域1711〜1718を用意した場合、各ページπまたは各ページ群θに対するメッセージと処理方法とを自由に定義できる。更に、各ページπ及び各ページ群θは、それぞれ個別に自己のデータを保持するため、まとめて管理する必要が無くなる。
【0190】
また、バインダ文書ファイルのセキュリティに関する情報を上記拡張記録領域1710〜1718に設定することができる。上記セキュリティ情報として、例えば、(1)ページπやページ群θの編集不可を示す情報、(2)並べ替えを許可しないことを示す情報、(3)そのページπを作成するのに基となった文書ファイルの変更を反映するか否かの情報などがある。以下、具体的に一つずつ見ていくことにする。
【0191】
(1)編集不可を示す情報
まず、ページπの編集許可についての情報を上記拡張記録領域に持つ場合を説明する。ページπ対して、ユーザが強調したい部分に印を付けたり、不要な部分を消したりすることにより、ページπを見やすくすることがある。例えば、ページπに対して、線分を引いたり、円を描いたり、特定領域に色を塗ったり、或いは、予め定められたスタンプなどを押したりしたアノテーション(注釈)情報を付加することが挙げられる。
【0192】
ここで、ページπにアノテーション情報が付与(設定)されると、元となる文書が改竄されることになってしまうことになる。そこで、不正にアノテーション情報が付与されることを防止するため、アノテーション情報の許可を与えたくない場合があり得る。
【0193】
このような場合のために、各ページの拡張記録領域1711〜1716に「ページの編集許可」に関するフラグ情報を与える。このフラグの状態によって、ページの編集を行なうことを不許可にすることができれば、ページの改竄を防止することが可能となる。
【0194】
また、原則、ページの改竄を行なえないが、一部のページだけに編集の許可を与えるような限定的許可としてのアノテーション情報を、上記拡張記録領域1711〜1716にフラグ情報として追加することもできる。例えば、「機密文書」というような固定文字の記されたスタンプ機能だけが上記ページのアノテーション情報として付与されている場合、そのページの改竄を行なうことは不可能である。
【0195】
上記の場合、例えば、「ページの編集許可」に関して複数の許可レベルを設けておき、上記拡張記録領域1711〜1716に設定された許可レベルが上記複数の許可レベルの何れのレベルかを判断する。そして、この許可レベルに応じて各ページを編集できるようにすれば、限定付きの編集機能を与えることが可能である。
【0196】
(2)並び替え不可を示す情報
ページπの並べ替えについても同様に、ページπの順序が変わることでバインダ文書ファイルが本来有していた意味が変わってしまう場合がある。したがって、ページ順序を変更するような文書の改竄を防止するために、「並べ替えの許可」に関するフラグ情報を、各ページの拡張記録領域1711〜1716に設けるようにする。
【0197】
更に、上記(1)の「編集不可を示す情報」の場合と同様に、この「並べ替え許可」のフラグ情報にも許可レベルを設けて、例えば、原則、ページの並べ替えは出来ないが、現在のページ順が変わらない範囲で、複数のページを束ねることが可能とするような、限定的な編集許可を与えるようにすることができる。
【0198】
(3)元文書ファイルの変更の反映不可を示す情報
「そのページを作成するのに元となった文書ファイルの変更を、バインダ文書ファイルに反映」するためには、各ページの拡張記録領域に、元となった文書ファイルのページに関する情報(例えば、ディレクトリのパスやネットワーク上のパス)を記録しておく領域と、そのページを作成するときに用いた時点での上記元文書ファイルの更新日を記録しておく領域とを用意しておく。
【0199】
更には、「そのページを作成するのに元となった文書ファイルの変更を、バインダ文書ファイルに反映」することを許可するか否かのフラグ情報を設ける。元文書ファイルの変更を反映することの許可を指示するフラグ情報があった場合、バインダ文書ファイルの各ページの拡張記録領域1711〜1716に保持された、元文書ファイルのパス名に記録されている元文書ファイルの更新日と、バインダ文書ファイルのページ拡張記録領域1711〜1716に記録されている指定パスにある実際のバインダ文書ファイルの更新日を比較する。
【0200】
上記比較によって2つの更新日が異なれば、元文書ファイルのページ変更をバインダ文書ファイルに反映させるために、再度、更新後のページ画像を作成して、バインダ文書ファイルの該当ページを更新することが可能である。
【0201】
ただし、バインダ文書ファイルの作成者がページπの更新を望まない場合は、「そのページπを作成するのに元となった文書の変更、バインダ文書ファイルに反映」することを許可するか否かのフラグ情報を不許可にすれば、元文書ファイルの変更がバインダ文書ファイルに反映されることは無い。
【0202】
ここで、上記(1)〜(3)の例に示したような、文書ファイルのセキュリティ機能に関連しているページ編集の制限は、バインダβを生成する当初には必要でなく、ページ編集が終了した段階で必要となる場合も含んでいる。また、ページ編集の制限(限定付き編集制限を含む)を施した後でも、その後にさらにページの再編集が必要となる場合も含んでいる。このように、本実施の形態では、再編集時におけるバインダ文書ファイルのセキュリティに関しても、適用できることはいうまでもない。
なお、上述した各ページのセキュリティ情報に基づく編集制限の方法は、バインダβまたはページ群θについての編集制限の方法に適用することができる。
【0203】
次に、ページ編集許可に制限を与える方法について述べる。今まで述べてきたようにページ間での情報の伝達は、複数のメッセージのやり取りによって行われる。そのため、ページ間のメッセージ自身が改竄されてしまうと、ページの拡張記録領域のセキュリティに関する情報は変更されてしまうこととなる。そこで、メッセージ自身を改竄されないための実現方法の例として、公知の技術である暗号化技法を用いてページ間のメッセージを暗号化して、この暗号化したメッセージ文をページ間で通知する方法を示す。
【0204】
上記公知の暗号化技法として、例えば、ページ間で共通の鍵を共有する秘密鍵暗号方式があり、この秘密鍵暗号化方式を用いて、メッセージ自身の改竄防止を実現することが可能である。その内容を以下に示す。
【0205】
始めに(空の)バインダβを生成するときに、同時に暗号化のための秘密鍵も生成しておき、この秘密鍵をバインダβの拡張記録領域内に保持しておく。なお、バインダページ管理部106が、上記秘密鍵を管理している。
【0206】
ページπ、ページ群θを作成するときは、このバインダβから派生するか、もしくは、派生したページπ、ページ群θからさらに派生させる。バインダβは、自己の秘密鍵を上記ページπ、ページ群θの生成時に、ページπ、ページ群θに渡す。これにより、各バインダ間で暗号化されたメッセージを伝達する場合は、この秘密鍵が利用される。なお、暗号化されていない場合は、そのメッセージのまま解釈されながら伝達される。
【0207】
これを、図を用いて具体的に説明する。図18は、ページπA1801からページπB1802へ、メッセージ1803を送る場合である。この場合は、メッセージ1803には暗号化が施されておらず、平文のままのメッセージ1803が伝わるため、各ページ(ページπA1801、ページπB1802)ではメッセージを加工する処理(例えば、暗号化処理や復号化処理)は必要ない。
【0208】
なお、ここではページπについて説明しているが、暗号化の対象がバインダβやページ群θであっても同様な説明がなされる。
【0209】
一方、図19は、メッセージを暗号化してから受信側ページに送る例である。図18と同じく、ページπA1900からページπB1910へメッセージを送るが、図19では暗号化されたメッセージ1905が送られる。
【0210】
ページπA1900内には暗号化部1902がある。まず、ページπB1910へ送るべきメッセージ1901及びページπA1900が持つ秘密鍵1903を暗号化部1902へ渡す。
【0211】
暗号化部1902は、メッセージ1901と秘密鍵1903とを用いて、ページ間伝達用の暗号化メッセージ1905を生成する。これにより、ページπA1900は、生成された暗号化メッセージ1905をページπB1910宛に送り出す。ページπB1910は、送られた暗号化メッセージ1905を受け取る。
【0212】
ページπB1910は、複合化部1912を有している。ページπB1910は、暗号化されたメッセージ1905及びページπB1910が持つ秘密鍵1913を、複合化部1912へ渡す。複合化部1912は、秘密鍵1913を用いて、暗号化メッセージ1905の解読を試みる。
【0213】
この場合、ページ間のお互いの秘密鍵1903と秘密鍵1913とが一致していればメッセージの復号は成功し、平文に戻ったメッセージ1911が生成される。そこで、ページπB1910は、生成されたメッセージ1911内容に従った処理を行なう。
以上が、暗号化処理及び復号化処理が成功する例である。
【0214】
なお、上記説明では、ページπA1900が暗号化部1902を持ち、また、ページπB1910が復号化部1912を持つというように示した。実際には、ページπA1900を管理するバインダページ管理部106が、ページπA1900のメッセージ1901及びページπA1900の拡張記録領域に保持された秘密鍵1903を、電子バインダ装置100内の暗号化手段(暗号化部1902)へ渡す。そして、上記暗号化手段によって生成した暗号メッセージ1905を、ページπA1900へ戻すように動作している。
ページπB1910における復号化処理についても同様である。
【0215】
図19に対して、図20は、メッセージを異なる秘密鍵によって暗号化及び復号化する例である。図19と同様に、ページπA2000内の暗号化部2002により、ページπB2010へ送るべきメッセージ2001と、ページπA2000が保持する秘密鍵2003とから、ページ間伝達用の暗号化メッセージ2005を生成する。次に、ページπA2000は、生成されたメッセージ2005をページπB2010宛に送り出す。
【0216】
ページπB2010の複合化部2012は、暗号化されたメッセージ2005と秘密鍵2013を用いて、暗号化メッセージの解読を試みる。この場合、ページ間のお互いの秘密鍵2003及び秘密鍵2013が一致していないので復号に失敗する。このため、平文に戻ったメッセージ2011を生成できず、送られてきた暗号化メッセージ2005の処理を行なうことができないことになる。
【0217】
なお、図19において説明したように、実際には、ページπA2000及びページπB2010を管理するバインダページ管理部106が、暗号化部2002及び復号化部2012における暗号復号化処理の動作を管理している。
【0218】
このように、秘密鍵の同一性によって判断すれば、メッセージ伝達において秘密鍵と合致しないメッセージ処理(復号化処理)を阻止(ブロック)することができる。
なお、メッセージについてのページπの挿入、移動、及び削除等のための編集処理は、上述した第1の実施の形態または第2の実施の形態で述べた内容に従って行われるものとする。
【0219】
暗号化メッセージが生成される場合、バインダβ、ページπ、及びページ群θの内部のデータは、全て暗号化処理されて隠蔽される。更に、ページπ内部には、メッセージの暗号化処理を行なう暗号化部、及びメッセージの復号処理を行なう復号化部を持つ。暗号化された内部データにアクセスするためには、上記暗号化部及び復号化部を介することが必要であり、バインダβ、ページπ、及びページ群θは、この暗号化部及び複合化部を介さないアクセス処理を認めず、そのアクセスを拒否するようにしている。
【0220】
このようにバインダβ、ページπ、及びページ群θの内部データの隠蔽を行ったり、メッセージを暗号化したりすることにより、バインダβ等が自己にとって解釈可能なメッセージしか受け付けないような処理を行なうことを可能にする。
【0221】
なお、この例では、暗号化方式のために秘密鍵暗号方式を用いたが、他の暗号化方式として公知の技術である公開鍵暗号方式を用いてもよい。
【0222】
以上により、本実施の形態の電子バインダ装置によれば、各ページにそれぞれ対応させて拡張記録領域を設けて、これらの拡張記録領域に、各ページに対するアクセス権限を定めた情報としてみなせるセキュリティ情報をそれぞれ設定するようにしたので、アクセス権限のないユーザによるページへのユーザアクセスを拒否することができる。また、上記セキュリティ情報を、複数の許可レベルによって設定して、ページの編集を限定付きで認めることやユーザごとに異なる編集許可の付与を行なうことができる。
【0223】
これにより、バインダ文書ファイルには、様々な文書ファイルの情報を保持しておくことが可能となり、バインダ文書ファイル内の情報をページ単位として扱うことができるとともに、文書ファイルに対して編集不可のセキュリティが施されているだけのバインダ文書ファイルにおけるページ自身の編集を防止することができる。
【0224】
また、バインダ文書ファイルでは、文書単位に依らずページ単位で、自由にページの並び替えを可能とするとともに、ページの順序が入れ替えられてしまうことで、バインダ文書ファイルが有していた本来の意味が変更されてしまうことを防止することができる。
このように、本発明によれば、バインダ文書ファイルの管理を柔軟に、かつ容易に行なうことができる。
また、暗号化されたメッセージを用いれば、セキュリティが施されたページ等を含むバインダ文書ファイルの場合であっても編集操作を行なうことは可能である。また、この暗号化処理を利用して、ページの拡張記録領域に、例えば、「ページの編集許可」や「並べ替え許可」等の編集可否情報を設定することにより、暗号対象となるページ等に対して、秘密鍵を保持していないバインダからのメッセージを拒絶することが可能となる。
【0225】
なお、本発明の目的は、第1〜第3の実施の形態のホスト及び端末の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムコードを読みだして実行することによっても、達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が第1〜第3の実施の形態の機能を実現することとなり、そのプログラムコードを記録した記録媒体及び当該プログラムコードは本発明を構成することとなる。
【0226】
プログラムコードを供給するための記録媒体としては、ROM、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード等を用いることができる。
また、コンピュータが読みだしたプログラムコードを実行することにより、第1及び第2の実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行ない、その処理によって第1〜第3の実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0227】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によって第1〜第3の実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0228】
図21は、上記コンピュータの機能2600を示したものである。
コンピュータ機能2600は、上記図21に示すように、CPU2651と、ROM2652と、RAM2653と、キーボード(KB)2659のキーボードコントローラ(KBC)2655と、表示部としてのCRTディスプレイ(CRT)2660のCRTコントローラ(CRTC)2656と、ハードディスク(HD)2661及びフレキシブルディスク(FD)2662のディスクコントローラ(DKC)2657と、ネットワーク2670との接続のためのネットワークインターフェースコントローラ(NIC)2658とが、システムバス2654を介して互いに通信可能に接続された構成としている。
【0229】
CPU2651は、ROM2652或いはHD2661に記録されたソフトウェア、或いはFD2662より供給されるソフトウェアを実行することで、システムバス2654に接続された各構成部を総括的に制御する。
すなわち、CPU2651は、所定の処理シーケンスに従った処理プログラムを、ROM2652、或いはHD2661、或いはFD2662から読み出して実行することで、第1〜第3の実施の形態での動作を実現するための制御を行う。
【0230】
RAM2653は、CPU2651の主メモリ或いはワークエリア等として機能する。
KBC2655は、KB2659や図示していないポインティングデバイス等からの指示入力を制御する。
CRTC2656は、CRT2660の表示を制御する。
DKC2657は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、及び第1から第3の実施の形態における所定の処理プログラム等を記録するHD2661及びFD2662とのアクセスを制御する。
NIC2658は、ネットワーク2670上の装置或いはシステムと双方向にデータをやりとりする。
【0231】
本発明の実施態様の例を以下に列挙する。
〔実施態様1〕電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成する電子バインダ装置であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手段と、上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備えたことを特徴とする電子バインダ装置。
【0232】
〔実施態様2〕上記セキュリティ情報は、上記バインダ文書ファイルを構成する各ページに対する編集、上記各ページ間におけるページ移動、または上記バインダ文書ファイルのページ更新を行う編集のうち、少なくとも何れか一つの編集を許可するか否かの情報を含むことを特徴とする実施態様1に記載の電子バインダ装置。
【0233】
〔実施態様3〕上記ページ情報管理手段は、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいて、上記バインダ文書ファイルを構成する各ページ自身が自己に関連する編集処理であるかを自律的に判断するが如く、上記各ページを管理することを特徴とする実施態様1または2に記載の電子バインダ装置。
【0234】
〔実施態様4〕上記ページ情報管理手段により上記バインダ文書ファイルを構成する各ページの管理は、上記各ページ間または上記各ページと上記各ページを統括するバインダ間の所定のメッセージ伝達を基に行われることを特徴とする実施態様1〜3の何れか1つに記載の電子バインダ装置。
【0235】
〔実施態様5〕複数の電子ドキュメントをページ単位に分割するページ分割手段と、上記ページ分割手段により分割された電子ドキュメントの各ページから、任意のページを抽出してバインダ文書ファイルを生成するバインダ文書ファイル生成手段と、上記バインダ文書ファイル生成手段により生成されたバインダ文書ファイルを、上記ページ単位で追加、削除、または並び替えの編集のうち、少なくとも何れか1つの編集を行なう編集手段とを備えた電子バインダ装置であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定する拡張記録領域設定手段と、上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備え、上記ページ情報管理手段は、上記セキュリティ情報設定手段により設定された各セキュリティ情報に基づき、上記バインダ文書ファイルを構成する各ページ間または上記バインダ文書ファイルを構成する各ページと上記バインダ文書ファイルを構成する各ページを統括するバインダ間に所定のメッセージを伝達して、上記バインダ文書ファイルを構成する各ページを管理することを特徴とする電子バインダ装置。
【0236】
〔実施態様6〕上記ページ情報管理手段は、上記メッセージの内容を判断して、上記バインダ文書ファイルを構成する各ページ自身が上記セキュリティ情報設定手段により設定されたセキュリティ情報に応じた処理を自律的に判断するが如く、対応するメッセージを上記所定のページまたは上記バインダに通知することを特徴とする実施態様5に記載の電子バインダ装置。
【0237】
〔実施態様7〕上記セキュリティ情報設定手段は、上記バインダ文書ファイルを編集するためのアノテーションを付与することが可能か否かの情報を、上記ページの拡張記録領域に設定することを特徴とする実施態様5または6に記載の電子バインダ装置。
【0238】
〔実施態様8〕上記セキュリティ情報設定手段は、上記アノテーションの内容として複数の編集許可レベルの情報を設定することを特徴とする実施態様7に記載の電子バインダ装置。
【0239】
〔実施態様9〕上記アノテーションの内容は、上記バインダ文書ファイルを構成するページの並び替えを許可する情報を含むことを特徴とする実施態様8に記載の電子バインダ装置。
【0240】
〔実施態様10〕上記アノテーションの内容は、上記バインダ文書ファイルを構成するページの並べ替えを許可しないが上記バインダ文書ファイルを構成するページを束ねることを許可する情報を含むことを特徴とする実施態様9に記載の電子バインダ装置。
【0241】
〔実施態様11〕上記バインダ文書ファイルを構成するページを作成する元文書ファイルの上記電子ドキュメントに関して、ディレクトリパス、ネットワークのパス、または更新日時の少なくとも何れか1つの情報を管理する文書更新管理手段と、上記文書更新管理手段で管理する更新日時に基づき、上記バインダ文書ファイルのページを更新するページ画像更新手段とを備えることを特徴とする実施態様5〜10の何れか1つに記載の電子バインダ装置。
【0242】
〔実施態様12〕上記バインダ文書ファイルを構成するページ間で伝達されるメッセージ情報を暗号化する暗号化手段を備え、上記ページ情報管理手段は、上記暗号化手段による上記メッセージ情報の暗号化に必要な鍵情報を、上記バインダ文書ファイルを構成するページ自身が持つが如く、一対一に対応付けて管理することを特徴とする実施態様2〜11の何れか1つに記載の電子バインダ装置。
【0243】
〔実施態様13〕上記実施態様1〜12の何れか1つに記載の電子バインダ装置にアクセス可能に構成されていることを特徴とする電子バインダシステム。
【0244】
〔実施態様14〕電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成するためのバインダ文書ファイル生成方法であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有することを特徴とするバインダ文書ファイル生成方法。
【0245】
〔実施態様15〕複数の電子ドキュメントをページ単位に分割するページ分割手順と、上記ページ分割手順により分割された電子ドキュメントの各ページから、任意のページを抽出してバインダ文書ファイルを生成するバインダ文書ファイル生成手順と、上記バインダ文書ファイル生成手順により生成されたバインダ文書ファイルを、上記ページ単位で追加、削除、または並び替えの編集のうち、少なくとも何れか1つの編集を行なう編集手順とを備えたバインダ文書ファイル生成方法であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有し、上記ページ情報管理手順は、上記セキュリティ情報設定手順により設定された各セキュリティ情報に基づき、上記バインダ文書ファイルを構成する各ページ間、または上記バインダ文書ファイルを構成する各ページと上記バインダ文書ファイルを構成する各ページを統括するバインダ間に所定のメッセージを伝達して、上記バインダ文書ファイルを構成する各ページを管理することを特徴とするバインダ文書ファイル生成方法。
【0246】
〔実施態様16〕電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成するためのバインダ文書ファイル生成方法を実行するためのコンピュータプログラムであって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有することを特徴とするコンピュータプログラム。
【0247】
〔実施態様17〕複数の電子ドキュメントをページ単位に分割するページ分割手順と、上記ページ分割手順により分割された電子ドキュメントの各ページから、任意のページを抽出してバインダ文書ファイルを生成するバインダ文書ファイル生成手順と、上記バインダ文書ファイル生成手順により生成されたバインダ文書ファイルを、上記ページ単位で追加、削除、または並び替えの編集のうち、少なくとも何れか1つの編集を行なう編集手順とを備えたバインダ文書ファイル生成方法を実行するためのコンピュータプログラムであって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有し、上記ページ情報管理手順は、上記セキュリティ情報設定手順により設定された各セキュリティ情報に基づき、上記バインダ文書ファイルを構成する各ページ間、または上記バインダ文書ファイルを構成する各ページと上記バインダ文書ファイルを構成する各ページを統括するバインダ間に所定のメッセージを伝達して、上記バインダ文書ファイルを構成する各ページを管理することを特徴とするコンピュータプログラム。
【0248】
〔実施態様18〕実施態様16または実施態様17に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【0249】
【発明の効果】
以上述べてきたように、本発明によれば、電子ドキュメントを構成する各ページから必要なページを集めて新たなバインダ文書ファイルを生成する際に、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティに関する情報を設定するための拡張記録領域を設定し、上記拡張記録領域に上記セキュリティに関する情報を設定するようにしたので、上記バインダ文書ファイルの編集許可をページ単位で行なうようにすることができる。
これにより、バインダ文書ファイルのセキュリティを文書単位で行なう場合よりもセキュリティ性を大幅に向上させることができ、情報の改変・流出を防止する機能に優れた文書管理を実現することができる。
【図面の簡単な説明】
【図1】本発明の電子バインダ装置の実施の形態を示す構成図である。
【図2】バインダβとページπの関係を具体的な概念図として示した図である。
【図3】バインダデータ生成管理部が新規にバインダ(バインダ文書ファイル)を作成した際の、総ページ数0のバインダ(空のバインダ)βを説明するための図である。
【図4】バインダβの2ページ目と3ページ目の間に新たなをページπnewを挿入することを説明するための図である。
【図5】バインダβにページπnewを挿入する際のバインダと各ページ間のメッセージ伝達を説明する図である。
【図6】バインダにページを挿入するときの動作手順を説明するフローチャートである。
【図7】バインダにページを挿入するときの動作手順を説明するフローチャートである。
【図8】バインダからページを削除することを説明するための図である。
【図9】バインダからページを削除する際のバインダと各ページ間のメッセージ伝達を説明するための図である。
【図10】バインダからページを削除するときの動作手順を説明するフローチャートである。
【図11】バインダからページを削除するときの動作手順を説明するフローチャートである。
【図12】バインダにおいて、ページの移動を説明するための図である。
【図13】バインダにおいて、ページを前方移動する際のバインダと各ページ間のメッセージ伝達を説明するための図である。
【図14】バインダにおいて、ページを移動するときの動作手順を説明するフローチャートである。
【図15】バインダにおいて、ページを移動するときの動作手順を説明するフローチャートである。
【図16】バインダにおいて、ページを後方移動する際のバインダと各ページ間のメッセージ伝達を説明するための図である。
【図17】束ねたページを表すページ群を説明するための図である。
【図18】暗号化されていないメッセージをページ間で送受信する場合を説明するための図である。
【図19】暗号化されたメッセージをページ間で送受信する場合を説明するための図である。
【図20】暗号化されたメッセージを受信側のページが拒絶する場合を説明するための図である。
【図21】本発明の実施の形態例の電子バインダ装置の機能をコンピュータに実現させるためのプログラムを、コンピュータ読み取り可能な記録媒体から読み出して実行するコンピュータの構成を示すブロック図である。
【符号の説明】
101 データベース
102 バインダデータ
103 バインダデータ生成管理部
105 バインダ内部ファイル管理部
106 バインダページ管理部
107 データベースアクセスユーザインタフェース部
【発明の属する技術分野】
本発明は電子バインダ装置に関し、特に、電子的な情報を記録した文書の管理を行なうために用いて好適なものである。
【0002】
【従来の技術】
企業では、最新の文書管理システムを導入して、既に作成した文書の再利用を推進しようとしている。初期の文書管理システムにおいては、スキャナ等の文字読み取り装置を用いて、紙媒体に印刷された文書情報を文字データまたは画像データとして読み出し、記録媒体に書き込むことで、上記文書情報を登録保存するようなシステム構成であった。
【0003】
それに対し、最近の文書管理システムでは、パソコン等で作成された電子情報の文書を上記文字読み取り装置等を用いずに、記録媒体に直接登録して保存できるようになっている。
【0004】
また、複写機等の画像読み取り装置が読み取った画像データを、文書管理システムが備えている記録媒体に、直接的にかつ自動的に登録することができる文書管理装置や文書管理システムも知られており、文書管理システムが徐々に用いられるようになってきている。
【0005】
さらに、最近では、文書管理システムが備えている記録媒体に登録されている複数の文書の中から、任意のページをそれぞれ抜き出して、上記抜き出したページをいわゆるバインダで綴じるかのようにまとめて一つの文書を作成することができるような文書管理システムも提案されている(例えば、特許文献1参照。)。本願ではそのような文書管理システムを、電子バインダシステムと称することとする。
【0006】
上記特許文献1に記載された電子バインダシステムの場合、電子バインダシステム内部において、文書ファイルの順序付けは各文書ファイル単位に行なっている。しかしながら、文書ファイルを構成する個々のページに対するページ操作を行なうことはできないようになっている。
【0007】
また、文書ファイルを統一フォーマットによって一つのバインダ文書ファイルとして取り扱い、プリンタドライバを用いて上記バインダ文書ファイルを印刷できるようにした技術も提案されている(例えば、特許文献2参照。)。
【0008】
この場合も、上記バインダ文書ファイルは、文書ファイル単位で管理されており、バインダ文書ファイルを構成する各ページ単位で並べ替えを行ったり、削除を行ったり等の編集を行なうことはできていない。
【0009】
また、他の特許文献によれば、ページめくりのための管理テーブルを保持する文書管理システムが提案されている(例えば、特許文献3参照)。これにおいても、ページ単位の編集操作については何も記載されていない。
【0010】
上記以外の他の電子バインダシステムには、バインダとして綴じられた各ページを削除したり、並べ替えたりすることができるようになっているものがある。
【0011】
また、各種アプリケーションソフトによって、それぞれ個別に作成された文書ファイルが保存された記録媒体から上記文書ファイルを読み出して、文書ファイル単位でバインダに綴じることができるような文書管理システムも知られている。上記文書管理システムの場合、どのようなアプリケーションソフトプログラムで作成された文書ファイルでも、一つの文書として扱うことができるようになる。
【0012】
例えば、ワードプロセッサ文書及びプレゼンテーション用の文書が記録媒体に保存されている場合、これらの文書の表示や保存の順序を変更したり、あるいは、新たな文書を追加したりすることができる。
【0013】
上述したように、バインダ文書ファイルのページの管理については、ユーザのニーズにより様々なことが要求されるようになってきており、電子バインダシステムに求められる機能も複雑化・煩雑化してきている。
【0014】
【特許文献1】
特開2001−034511号公報
【特許文献2】
特開2001−229159号公報
【特許文献3】
特開2000−122782号公報
【0015】
【発明が解決しようとする課題】
上述したように、バインダ文書ファイルでは、記録媒体上に保存された様々な種類の文書ファイルを編集して作成することが可能である。また、バインダ文書ファイルは、束ねた情報を上記作成元の文書ファイルと切り離してページ単位で編集することが可能である。
【0016】
しかしながら、従来のバインダ文書ファイルは、上記文書ファイル(バインダ文書ファイルの作成元)の情報を文書ファイル単位として扱っておりページ単位として取り扱うように成されていない。
【0017】
この場合、たとえ上記文書ファイル(バインダ文書ファイルの作成元)そのものに対して編集不可のセキュリティを施していても、作成したバインダ文書ファイルでは情報がページ単位で扱われる。そのため、編集許可の与えられていない第三者が、バインダ文書ファイルを構成する個々のページそのものにアクセスして編集することができてしまうという問題があった。
【0018】
また、バインダ文書ファイル内では、文書ファイル単位に依らず、ページ単位で並べ替えを自由に行なうことが可能である。そのため、例えば、ページの順番が不正に入れ替えられてしまい、元の意味内容が変更されてしまうという問題もあった。
【0019】
本発明は上述した問題点にかんがみ、電子データを記録した文書から任意のページを抜き出してバインダのように綴じたバインダ文書ファイルのセキュリティ管理を確実にかつ柔軟に行なえることを目的とする。
【0020】
【課題を解決するための手段】
本発明の電子バインダ装置は、電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成する電子バインダ装置であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手段と、上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備えたことを特徴としている。
【0021】
これにより、例えばバインダ文書ファイルに対して編集不可のセキュリティが施されているだけでは文書管理のセキュリティ性が不十分な電子バインダ装置の場合、ページ単位で編集不可のセキュリティが設定されることから、ページそのものの編集を防止することが可能となる。
【0022】
また、本発明によるバインダ文書ファイルでは、文書単位に依らず、ページの並べ替えを自由に行なうことが可能なことから実行されてしまう、ページの順序の入れ替えによるバインダ文書の意味の変更を防ぐことが可能となる。
【0023】
【発明の実施の形態】
以下、本発明の電子バインダ装置の実施の形態について、図面を参照しながら説明する。
【0024】
(第1の実施の形態)
本実施の形態は、種類の異なるアプリケーションソフトで作成したそれぞれの文書ファイルが有するデータを、同一の文書ファイルにおけるページのデータとしてみなして、上記各ページをバインダの綴りのように取り扱うことを可能とした電子バインダ装置において、上記バインダのページ管理(保持)に関する実施の形態である。
【0025】
まず始めに、本実施の形態におけるバインダ文書ファイルについて説明する。本実施の形態においてバインダ文書ファイルとは、異なる種類のアプリケーションソフトで作成した複数の文書ファイルを、それぞれの文書を作成するために用いたアプリケーションソフトの違いを意識すること無しに扱うことが可能なフォーマット形式で綴られた文書ファイルである。
【0026】
例えば、バインダ文書ファイルには、アプリケーションソフトのデータファイル(素材文書)を単純に束ねただけでページが確定されていないフォーマット形式による文書ファイルもある。第1の実施の形態では、素材文書のページを確定させ、その確定させたページから必要なページを集めて生成したフォーマット形式のバインダ文書ファイルを対象とする。
【0027】
このため、例えばプレーンテキスト文書などのように文書のページ区切りが明確でないものがあるため、本実施の形態においては、ページを確定させるために、文書ファイルが電子バインダ装置に挿入(インポート)された時点で各ページを確定させるようにしている。
【0028】
バインダ文書ファイルのページを確定させる具体的な方法としては、アプリケーションソフトの印刷機能を利用して行なう方法が挙げられる。例えば、Adobe社のPDFであるとか、W3C(World Wide Web Consortium)で定められたSVG(Scalable Vector Graphics)などのように、バインダ文書ファイルをアプリケーションソフトに依らずに表示や印刷を行なうことができる統一的なフォーマット形式に変換して、上記ページを確定する方法を考慮することができる。
【0029】
このように、バインダ文書ファイルのページを確定させ、統一的なフォーマット形式に変換することにより、例えば、バインダ文書ファイルを構成している元の素材文書を作成するために用いたアプリケーションソフトが存在しない環境でも、バインダ文書ファイルの閲覧や印刷等を行なうことができる。
【0030】
また、素材文書を作成するために用いたアプリケーションソフトが存在する環境でも、アプリケーションソフトの設定内容等の相違により、素材文書のあるページの内容が、バインダ文書ファイルでは異なるページ位置に表示されてしまう可能性が存在していた。バインダ文書ファイルのページを統一的なフォーマット形式に変換することは、上述したようなページ表示の位置ずれを回避することを可能にしている。
【0031】
さらに、バインダ文書ファイルを扱うことが可能なアプリケーションソフトでは、バインダ文書ファイルに新規なページを挿入することや、或いは既存のページを削除することや、ページ間移動等を行なうことができる。また、任意の連続したページを束ねたり、束ねられているページを解除したり、または1つに束ねられたページを2つ以上に分割したりすること等ができる。
【0032】
次に、図面を参照しながら、本発明の実施の形態を説明する。
図1は、本実施の形態の電子バインダ装置100の一例を示す構成図である。図1において、101はデータベースであり、バインダ文書ファイルをはじめ、他の種類の文書データや、文書に関するメタデータ、あるいは検索に必要なデータ等が格納されている。
102は、上記データベース101に格納されるバインダデータ(バインダ文書ファイルを構成するデータ)である。
【0033】
103は、必要な情報を基にバインダデータ102を生成するバインダデータ生成管理部(バインダ文書ファイル生成手段)である。バインダデータ生成管理部103は、バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定したり、データベース101から読み出したバインダデータ102の情報を管理したりする。なお、このバインダデータ生成管理部103により、後述するページ編集に関するセキュリティ情報等を設定するセキュリティ情報設定手段が構成されている。
【0034】
105は、バインダデータ102の内部に含まれる文書ファイルを管理するためのバインダ内部ファイル管理部である。このバインダ内部ファイル管理部105により、上記文書ファイルをページ単位に分割するページ分割手段、文書更新管理手段、及びページ画像更新手段が構成されている。
【0035】
106は、バインダデータ102のページ構成を管理するためのバインダページ管理部である。バインダページ管理部106により、ページに関する情報を管理するページ情報管理手段が構成されている。
【0036】
107は、バインダデータ102に対するユーザの操作指示を行なうためのデータベースアクセスユーザインターフェイス部である。上記データベースアクセスユーザインターフェイス部107を介して、ユーザの操作指示がバインダ内部ファイル管理部105やバインダページ管理部106に対する制御指示として伝達される。
【0037】
具体的にバインダデータ102に対して、ユーザが編集操作を指示した場合に行われる処理について述べる。例えば、ユーザがバインダデータ102に、他の文書ファイルのデータを追加するための処理を行なわせる指示をした場合を示す。
【0038】
先ず、バインダ内部ファイル管理部105は、上記他の文書ファイルからページ毎に分割したページイメージを生成する。
【0039】
なお、このページイメージとは、先に述べたバインダ文書ファイルのページを確定させるための所定のフォーマット形式に基づくイメージ情報であり、例えば、画像、Adobe社のPDF、W3CのSVG等のことを表す。
【0040】
次に、バインダ内部ファイル管理部105は、追加される文書をバインダデータ生成管理部103に通知する。更に、バインダ内部ファイル管理部105は、バインダページ管理部106に対して、上記分割された他の文書ファイルのページ情報を通知する。
【0041】
次に、バインダページ管理部106は、バインダデータ生成管理部103に対して、必要なページに関する情報を通知する。バインダデータ生成管理部103は、バインダ内部ファイル管理部105及びバインダページ管理部106から通知された上記他の文書ファイルに関する情報を基に、バインダデータ102を生成する。そして、上記生成したバインダデータ102をデータベース101に登録する。
【0042】
一方、文書ファイルのデータを削除する場合も上述した文書ファイルのデータを追加する場合と同様に、バインダ内部ファイル管理部105は管理していた該当文書ファイルを削除するとともに、上記削除した文書ファイルに関するページイメージを削除した旨をバインダページ管理部106に通知する。
【0043】
この通知を受けたバインダページ管理部106は、バインダデータ生成管理部103に対して、バインダ内部ファイル管理部105によって上記文書ファイルの指定されたページが削除されたことを通知し、上記削除されたバインダページに関するページ管理情報の削除を行なう。
【0044】
バインダページ管理部106からページ削除の通知を受けたバインダデータ生成管理部103は、ページ削除後のバインダデータ102を再生成してデータベース101に登録する。
【0045】
本実施の形態においては、バインダデータ102の各ページ情報そのものはバインダページ管理部106に存在しており、電子バインダ装置100の内部でページの追加、変更、及び削除等の編集を行なうために必要となるメッセージをやり取りしている。
【0046】
本実施の形態の電子バインダ装置100において、ページを表す実体(ページ情報)は、各ページ間で独立して存在している。ここで、そのページの実体をπとし、nページ目の実体をπnと表す。また、バインダを表す実体(文書ファイル情報)をβとする。なお、バインダの実体βは、各バインダについて一つしか存在しないため、ページの実体πnのような末尾の添え字(サフィックス)であるnを伴なって表記されない。
【0047】
ここで、バインダの実体β(以下、バインダβと称する)についての特徴を述べる。
1.バインダβは、ゼロ個以上のページπから構成される。
2.バインダβは、ページπから出力されるメッセージを受信する。
3.バインダβは、特定のページπへメッセージを送信する。
4.バインダβは、全てのページπへメッセージを送信する。
5.バインダβは、バインダβの総ページ数を把握している。
【0048】
上記1.について、バインダβがいかなるページπnも持たない場合は、バインダβは空のバインダを意味することになる。
また、上記4.について、バインダβ自身が把握しているのはバインダβが有する総ページ数の情報だけであり、バインダβを構成する個々のページに関する情報については関知していない。このため、電子バインダ装置100において、バインダβ自身のページ管理が煩雑になることは無い。
【0049】
なお、バインダβが有するページ数を表わすには、例えば1〜nページのバインダβの場合、β1−nと表わすものとする。
【0050】
次に、ページの実体π(以下、ページπと称する)についての特徴を述べる。
1.ページπnは、ページπの下位に何の要素も有していない構成をしている。
2.ページπnは、バインダβからメッセージを受信する。
3.ページπnは、隣接するページ(πn−1またはπn+1)からメッセージを受信する。
4.ページπnは、バインダβへメッセージを送信する。
5.ページπnは、隣接するページ(πn−1またはπn+1)へメッセージを送信する。
6.ページπnは、自己のページ番号nのみを把握している。
【0051】
上記1.については、バインダβとのデータ構造上、ページπnはその末端に位置し、ページπnよりも下位には構成要素を持たないことを示している。
【0052】
上記3.及び上記5.は、ページπnに対して、隣接するページπn−1やページπn+1から相互にメッセージを受け取ったり、送ったりすることを意味している。なお、隣接ページへのメッセージ送信は、特別な指示が無い限り、正順(昇順)に送られる。例えば、ページπnが隣接するページにメッセージを送る場合は、ページπn+1に送られることになる。
【0053】
バインダβとページπnの概念を具体的に示したものが図2である。この例では、バインダβ200が4ページ(β1−4)を持ち、バインダβ200以下に個々のページ(π1201〜π4204)が保持されたデータ構造となっている。
【0054】
まず、バインダデータ生成管理部103が新規にバインダβを作成した際は、図3に示すような、総ページ数0のバインダβ300が作成される。ここで、総ページ数0のバインダβ300に、任意のページπnを挿入するパターンについて考えると、次の3つのページ挿入パターンがある。
【0055】
(1)先頭にページπnを挿入
(2)末尾にページπnを挿入
(3)特定のページにページπnを挿入
【0056】
空のバインダβ300に対するページ挿入の場合、上記のいずれのページ挿入処理を行っても、実質的には同じ結果となる。上記ページ挿入処理を更に一般化して考えるために、図4に示すようなバインダβ400の総ページが4ページであって、2ページ目のπ2402と3ページ目のπ3403との間に新たなページπnew405を挿入する場合のバインダとページ間とのメッセージ授受について、具体的に述べる。
【0057】
まず、ページπnew405はバインダβ1−4400に対して、「3ページ目として挿入したい」旨のメッセージを送る。ここで、本実施の形態におけるメッセージには、特に明示していなくても、送信元を特定できる情報が含まれているものとする。
【0058】
なお、上記メッセージ送信のために、データベースアクセスユーザインタフェイス部107を介して、ユーザはバインダ内部ファイル管理部105及びバインダページ管理部106に対して、ページπnew405を3ページ目へ挿入する指示が行われていることとする。
【0059】
バインダβ1−4400は、ページπnew405から上記メッセージを受け取ると自身の処理状態を判断する。この判断の結果、バインダβ1−4400が他のメッセージを処理中でなければ、ページπnew405からのメッセージに応じるため、バインダβ1−4400はページπ3に対して、「ページ番号を1ページ増やす」ように指示する旨のメッセージを送る。
【0060】
その結果、ページπ3403は現在のページ番号3を「+1ページ」ずらしてページ番号4とする。次に、ページπ3403は、ページπ4404に対しても、同様に現在のページ番号を1ページ増やすように指示するメッセージを送る。この結果、ページπ4404は現在のページ番号4を「+1」ずらしてページ番号5とする。
【0061】
ここで、ページπ4404は最終ページであり、これ以上メッセージを送るページ対象が存在しない。このため、ページπ4404はバインダβ1−4400に対して、「『ページ番号を1ページ増やす』メッセージが末端ページまで到達」したことを表わすメッセージを送信する。
【0062】
バインダβ1−4400が上記メッセージを受け取ると、ページπnew405に対して3ページ目に挿入する許可を与えるメッセージを送る。そこで、ページπnew405は自己のページ番号を3として付与する。そして、バインダβ1−4400は、自己の総ページ数を1つ増やした後に、ページ挿入処理を完了させる。
【0063】
なお、バインダβ1−4400がページπnew405からのページ挿入依頼メッセージを最初のメッセージとして受け取った時点から、ページπ4404からの末端ページ到達メッセージを受け取った最終時点までの間は、バインダβ1−4400自身はロック状態にあり、他のメッセージを受け付けないようになっている。
【0064】
上記メッセージを受け付けない方法として、バインダβ1−4400がメッセージを拒否して送信側で再度送り直す方法や、バインダβ1−4400自身にメッセージキューを持ち、そこに送信側からのメッセージを溜めておく方法等がある。本実施の形態では、メッセージを受け付けない方法は、いかなる方法であっても良い。
【0065】
このバインダβ1−4400にページπnew405を挿入する際のメッセージ伝達の遷移を、図5に示す。詳細については、先に説明した通りである。
ここで、上述した3つのページ挿入パターン((1)先頭に挿入、(2)末尾に挿入、(3)特定のページに挿入)に戻ると、上記ページπnew405の挿入の説明は、(3)特定のページの挿入パターンに相当することになる。
【0066】
なお、図6及び図7、図10及び図11、及び図14及び図15に示す本実施の形態のページ編集に関するフローチャートでは、そのページ編集処理が終了するまでページπnのページ番号は変化しないものとする。例えば、ページ編集処理の過程で、4ページ目を表わすページπ4が、前後のページの削除処理や挿入処理によってページ番号が変更されたとしても、そのページ編集処理が終了するまでは、ページπ4のままである。
【0067】
上述した指定位置へページの挿入処理を実行する際のバインダ及びページに対する処理、或いはメッセージ授受を、図6及び図7に示すフローチャートを用いて説明する。まず、前提条件として、バインダβがnページ持ち、ページπnewをXページ目に挿入するものとする。
【0068】
ステップS601で、ページπnewがバインダβに対して、メッセージ”Insert(X)”を送る。ここで、”Insert(X)”は、Xページ目に挿入したいことを示すメッセージを表わし、図5に示した手順500における”Insert(3)”がこれに相当する。ステップS602で、このメッセージをバインダβが受信する。
【0069】
ここで、本実施の形態においては、以降のフローチャート(図10及び図14)の説明でも同様だが、メッセージの送受信に関するエラー処理については、フローチャートが煩雑になるため明記していない。例えば、通常、メッセージ送受信の際、所定の時間以内に送受信処理が終了しなければタイムアウト処理などが発生する。上記タイムアウト処理のメッセージに対する基本的な処理については、本発明に直接関係しないため明記していないが、実際には行われているものとする。
【0070】
ステップS603で、ステップS602においてバインダβが受信したメッセージの受け入れを許可することが可能か否かを判断する。これは、バインダβがメッセージを受け付けないロック状態にあるときや、送られてきたメッセージの中で挿入対象ページXがバインダβ1−nのページ範囲(1〜nページ)外などである場合に許可されない。
【0071】
バインダβが送信されたメッセージの受け入れを許可できない場合は、ステップS604でそのエラー処理が行われる。一方、バインダβが送信されたメッセージを許可できる場合は、ステップS605で、バインダβが許可したメッセージ以外の他のメッセージをバインダβがさらに受け付けないように、バインダβのメッセージ受信に関してロックを掛ける。
【0072】
ステップS609で、変数mにページ番号のXを代入し、ステップS610で、変数mがバインダβの最後のページn以下(m≦n)かどうか判定する。この判定の結果、Yesならば、ステップS611へ進む。
【0073】
ステップS611では、mページ目のページπmにメッセージ”Shift(1)”を送る(図5に示す手順501及び手順502におけるメッセージ”Shift(1)”)。ステップS612では、ページπmが上記メッセージ”Shift(1)”を受信して、ステップS613でページπmのページ番号を「m+1」とする。ステップS614で変数mを1つだけ増やし、ステップS610に戻る。
【0074】
ここで、ステップS611において、”Shift(1)”メッセージの送信元は、本メッセージを直前に受信しているページπである。具体的には、図6に示すステップS610〜ステップS614の繰返しループにおいて、最初の送信元は、ページπnewであり、以降”Shift(1)”メッセージを受信したページπmとなる。
【0075】
すなわち、ページπnewを最初の送信元として、ページπnewからページπmへ”Shift(1)”メッセージを送信して、上記メッセージを受信したページπmがさらにページπm+1へ”Shift(1)”メッセージを送信する。このように、挿入対象のページ以降のページ番号がそれぞれ+1されるようにするため、順次、上記”Shift(1)”メッセージの送信が繰り返される。
【0076】
一方、ステップS610で、変数mがバインダβ最後のページnを越える場合は、図7に示したステップS615へ進み、最終ページπmはバインダβに対して、メッセージ”Finish(Shift(1))”を送る(図5に示す手順503を参照)。なお、メッセージ”Finish(message)”(以下、(message)は任意のメッセージ内容を表す)は、最終ページまで、上記(message)、が伝播して、これ以上メッセージを伝播する対象のページが存在しないときに送られるメッセージである。
【0077】
また、このメッセージ”Finish(message)”は、バインダβのメッセージ処理にロックが施されていても、バインダβが受信することのできる特殊なメッセージである。
【0078】
ステップS616で、バインダβはこのメッセージ”Finish(message)”を受け取る。ステップS606では、ステップS602のメッセージ”Insert(X)”の送信元ページであるπnewに対して、”Allow(Insert(X))”のメッセージを送る(図5に示す手順504を参照)。ここで、メッセージ”Allow(message)”は、バインダβが上記(message)を許可することを意味する。
【0079】
なお、バインダβが上記(message)を拒否した場合は、メッセージ”Reject(message)”が送信元に送られる。このメッセージ”Reject(message)”は、ステップS604のエラー処理内で送信元のページに送られている。
【0080】
ステップS607では、ページπnewがステップS606でのメッセージ”Allow(message)”を受信して、バインダβからページの挿入が許可される。そして、ステップS608で、ページπnewは自己のページ番号をXとする。
【0081】
ステップS617で、バインダβは自己の総ページ数を1つ増やす。上述した処理によってバインダβにページπnewを挿入するための処理が完了したので、ステップS618では、ステップS605で施されたバインダβのメッセージロック処理を解除する。
【0082】
上記図6及び図7に示したページ挿入のフローチャートは、バインダβの指定したページXへ挿入する際の処理を示してものである。それに対して、バインダβの先頭にページを挿入する場合は、図6のステップS609で用いる変数XをX=0とし、また、バインダβの末尾にページを挿入する場合は、変数XをX=n+1として、上述した処理を行なうようにすればよい。
【0083】
次に、バインダからページを削除する例について述べる。図8は5ページからなるバインダβ1−5700であり、この中の3ページ目(ページπ3703)を削除することとする。
【0084】
まず、ページπ3703がバインダβ1−5700に対して、「自分自身を削除したい」旨のメッセージを送る。バインダβ1−5700は、上記ページπ3703からのページ削除メッセージを受け取ると自己の処理状態を判断する。バインダβ1−5700が他のメッセージの処理中でなければ、バインダβ1−5700はページπ4704に対して、「ページ番号を1ページ減らす」ように指示するメッセージを送る。
【0085】
そこで、ページπ4704は現在のページ番号4を「−1」ずらしてページ番号3とする。次に、ページπ4704は、ページπ5705にも同様に、「ページ番号を1ページ減らす」ように指示するメッセージを送る。ページπ5705は現在のページ番号5を「−1」ずらしてページ番号4とするが、π5705は最終ページであり次に上記メッセージを送る対象のページが存在しない。このため、ページπ5705はバインダβ1−5700に対して、「『ページ番号を1ページ減らす』メッセージが末端まで到達」したことを表わすメッセージを送信する。
【0086】
次に、バインダβ1−5700がページπ5705より上記メッセージを受け取ると、ページπ3703に対して自分自身であるページπ3703を削除する許可を与える旨のメッセージを送る。これにより、ページπ3703は自分自身を消滅させる。
【0087】
最後に、バインダβ1−5700は総ページ数を1減らして、削除処理は完了する。なお、バインダβ1−5700がページπ3703からのページ削除依頼メッセージを最初のメッセージとして受け取った時点から、ページπ5705からの末端ページ到着メッセージを受け取った終了時点までの間は、バインダβ1−5700自身はロック状態にあり、他のメッセージを受け付けない。
【0088】
このバインダβ1−5700からページπ3703を削除する際のメッセージ伝達の遷移を、図9に示す。詳細については、先に説明した通りである。
【0089】
上述した指定ページの削除処理を実行する際のバインダ及びページに関する処理、或いはメッセージ授受を、図10及び図11のフローチャートを用いて説明する。まず、前提条件として、バインダβがnページ持ち、ページπxをXページ目から削除するものとする。
【0090】
ステップS901で、ページπxがバインダβに対して、メッセージ”Delete(X)”を送る。ここで、”Delete(X)”は、Xページ目を削除したいことを示すメッセージを表わし、図9に示した手順800における”Delete(3)”がこれに相当する。ステップS902で、このメッセージをバインダβが受信する。
【0091】
ステップS903で、ステップS902においてバインダβが受信したメッセージの受け入れを許可することが可能か否かを判断する。これは、バインダβがメッセージを受け付けないロック状態にあるときや、送られてきたメッセージの中で削除対象ページXがバインダβ1−nのページ範囲(1〜nページ)外などである場合に許可されない。
【0092】
バインダβが送信されたメッセージの受け入れを許可できない場合は、ステップS904でそのエラー処理が行われる。一方、バインダβが送信されたメッセージを許可できる場合は、ステップS905で、バインダβが許可したメッセージ以外の他のメッセージをバインダβがさらに受け付けないように、バインダβのメッセージ受信に関してロックを掛ける。
【0093】
ステップS908で、変数mにページ番号のXを代入し、ステップS909で、変数mがバインダβの最後のページnより小さい(m<n)かどうか判定する。判定の結果、Yesならば、ステップS910へ進む。
【0094】
ステップS910では、「m+1」ページ目のページπm+1にメッセージ”Shift(−1)”を送る(図9に示す手順801及び手順802を参照)。ステップS911では、ページπm+1が上記メッセージ”Shift(−1)”を受信して、ステップS912でページπm+1のページ番号をmとする。ステップS913で変数mを1だけ増やし、ステップS909に戻る。このようにして、隣接ページへ順次、ページ番号を「−1」するメッセージ”Shift(−1)”が送られる。
【0095】
ステップS909で、変数mがバインダβ最後のページnを超える場合は、ステップS915へ進み、最終ページπmはバインダβに対して、メッセージ”Finish(Shift(−1))”を送る(図9に示す手順803を参照)。
【0096】
ステップS916で、バインダβはこのメッセージ”Finish(Shift(−1))”を受け取り、ステップS906では、バインダβはステップS902のメッセージ”Delete(X)”の送信元ページであるπxに対して、”Allow(Delete(X))”のメッセージを送る(図9に示す手順804を参照)。
【0097】
なお、バインダβが上記メッセージ”Finish(Shift(−1))”の受け取りを拒否した場合は、”Reject( Finish(Shift(−1)))”が送信元のページに送られる。このメッセージ”Reject(Finish(Shift(−1)))”は、ステップS904のエラー処理内で該当するページに送られている。
【0098】
ステップS907では、ページπxがステップS906でのメッセージ”Allow(Delete(X))”を受信する。そして、ステップS914へ進み、バインダβからXページ目を消滅させるべくページπx自身を消滅させる。
【0099】
ステップS917で、バインダβは、自己の総ページ数を1つ減らす。上述した処理によってバインダβからページπxを消滅するための処理が完了したので、ステップS918では、ステップS905で施されたバインダβのメッセージロック処理を解除する。
【0100】
次に、バインダ内のページの移動に関する例について述べる。図12(A)は5ページからなるバインダβであり、この中の4ページ目を2ページ目に移動するとする。
【0101】
まず、ページπ41004がバインダβ1−51000に対して、「2ページ目に移動したい」旨のメッセージを送る。バインダβ1−51000は、上記ページπ41004からのページ移動メッセージを受け取ると自己の処理状態を判断する。
【0102】
バインダβ1−51000が他のメッセージの処理中でなければ、バインダβ1−51000は、まず、移動元ページの次ページであるページπ51005に対して、隣接するページ(ページπ41004)からのメッセージを拒絶するようにメッセージを送る。これによって、ページπ51005は、隣接するページπ41004からのメッセージが送られてきた場合、その指示に従わないで、隣接するページπ41004からメッセージがあったことをバインダβ1−51000に伝えるようになる。
【0103】
次いで、バインダβ1−51000は、移動先ページπ21002に対して、「ページ番号を1ページ増やす」ように指示するメッセージを送る。その結果、ページπ21002は現在のページ番号2を「+1」ずらしてページ番号3として、さらにページπ21002は、ページπ31003に対して同様に、ページ番号を1ページ増やすように指示する旨のメッセージを送る。この結果、ページπ31003は現在のページ番号3を「+1」ずらしてページ番号4とする。
【0104】
ページπ31003も同様に、ページ番号を1ページ増やすように指示するメッセージを隣接しているページπ41004に送るが、ページπ41004は自ら移動するために、バインダβ1−51000に対して「『ページ番号を1ページ増やす』メッセージが送られてきた」ことを拒絶する旨のメッセージを送信する。
【0105】
バインダβ1−51000がページπ41004からの上記拒絶する旨のメッセージを受け取ると、ページπ51005に対してメッセージの受信拒絶を解除する指示を送り、ページπ51005のロック状態が実際にロック解除される。
【0106】
最後にバインダβ1−51000は、ページπ41004に対して、ページπ21002に移動することの許可を与えるメッセージを送る。そこで、ページπ41004は自己の現在のページ番号4を移動先のページ番号2として、移動処理は完了する。
【0107】
なお、バインダβ1−51000がページπ41004からのページ移動依頼メッセージを最初のメッセージとして受け取った時点から、ページπ51005からメッセージを受け取る時点までの間は、バインダβ1000自身はロック状態にあり、他のメッセージを受け付けない。
【0108】
バインダβ1−51000において、任意のページがページ移動する際のメッセージ伝達の遷移を、図13に示す。詳細については、先に説明した通りである。
【0109】
また、図12(B)は図12(A)と同じく5ページからなるバインダβ1−51010であり、この中の2ページ目を4ページ目に移動する例である。この場合は、ページ間の移動メッセージが「ページ番号を1ページ減らす」となる。この場合は、移動元のページπ21012以降のページに上記メッセージを送るため、バインダβ1010からメッセージをブロックするように指示されたページπ51015がメッセージを拒絶する。
【0110】
このメッセージ伝達の遷移について、図16に示す。詳細については、先に説明した通りである。
ページ移動の場合のメッセージ授受について、図14及び図15のフローチャートを用いて説明する。まず、前提条件として、バインダβがnページ持ち、ページπxをXページ目からYページ目に移動するものとする。
【0111】
先ず、ステップS1201で、ページπxがバインダβに対して、メッセージ”Move(X,Y)”を送る(図13における手順1100、及び図16における手順1600を参照)。ここで、メッセージ”Move(X,Y)”は、Xページ目をYページ目に移動したいことを示すメッセージを表わす。
ステップS1202で、このメッセージをバインダβが受信する。
【0112】
ステップS1203で、バインダβは、ステップS1202で受信したメッセージを許可できるか否かを判断する。これは、バインダβがロック状態にあって複数のページから同時にメッセージを受け付けることができない状態でないか、或いは、バインダβに送られてきたメッセージ内容のページX及びページYが、バインダβが保持するページ範囲(1〜n)外などでないかを判断する必要があるためである。
【0113】
上記の場合には、バインダβは、ステップS1202で受信したメッセージ”Move(X,Y)”を許可せず、ステップS1204でそのエラー処理が行われる。
【0114】
一方、バインダβがステップS1202で受信したメッセージメッセージ”Move(X,Y)”を許可できる場合は、ステップS1205において、バインダβがその他のメッセージを受け付けてしまわないように、バインダβのメッセージ受信に関してロックを施している。
【0115】
ステップS1206では、バインダβは、メッセージとして送られてきたページ番号X及びページ番号Yの大小関係を調べるために両ページ番号を比較する。その結果、ページ番号Xがページ番号Yより真に小さい場合は、ステップS1207で変数limitに「Y+1」が代入される。
【0116】
一方、ステップS1206で、ページ番号Yがページ番号Xより等しいか若しくは大きい場合は、ステップS1208で変数limitに「X+1」が代入される。
【0117】
ステップS1209では、ページπlimitが存在するか否かを確認する。ページπlimitが存在していれば、ステップS1210へ進み、ページπlimitが存在していなければ、ステップS1216へ進む。
【0118】
ステップS1210では、バインダβは、ページπlimitに対してメッセージ”DoBlockMessage()”を送る(図13に示す手順1101、及び図16に示す手順1601を参照)。なお、メッセージ”DoBlockMesssage()”が送られたページπlimitは、メッセージ”CancelBlockMessage()”がバインダβから送られてくるまで、隣接するページからのメッセージを拒絶する。ページπlimitが隣接するページからのメッセージを拒絶したときは、ページπlimitはメッセージの送り元であるバインダβに対して、メッセージを拒絶した旨のメッセージ”BlockMessage(message)”を送る。
【0119】
ステップS1211で、ページπlimitはステップS1210でバインダβより送られたメッセージを受信する。ステップS1212では、ページπlimitは送信元であるバインダβに、メッセージ”StartBlockMessge()”を送る(図13に示す手順1102、及び図16に示す手順1602を参照)。ステップS1213で、バインダβが上記メッセージ”StartBlockMessge()”を受信する。
【0120】
ステップS1216では、ページ番号Xがページ番号Yより真に小さいか否かを確認する。ページ番号Xがページ番号Yより小さい場合は、ステップS1217へ、ページ番号Xがページ番号Yより大きい場合は、ステップS1219へ進む。
【0121】
なお、以下のステップS1217〜ステップS1220で行なう処理については、上記ステップS1206での同様なページ番号の比較判断処理の後に移動して、上記ステップS1217〜ステップS1220での処理を、S1206の直後に行なうようにしてもよい。
【0122】
ステップS1217では、変数mにX+1を代入し、ステップS1218では、変数valに−1を代入して、ステップS1222へ進む。
また、ステップS1219では、変数mにXを代入し、ステップS1220でvalに1を代入する。
【0123】
ステップS1222では、ページπmにメッセージ”Shift(Val)”を送る(図13に示す手順1103〜1105、図16に示す手順1603〜1605を参照)。ステップS1223でページπmがこのメッセージを受信する。
【0124】
ステップS1224で、ページπmがステップS1210でバインダβからブロックするように指示が出されているか、もしくは、変数Xと変数mが等しいか判定する。判定の結果、バインダβからのブロック指示が出されているか、若しくは変数Xと変数mが等しければステップS1228へ、そうでなければステップS1225へ進む。
【0125】
ステップS1225では、ページπmのページ番号に変数valを加える。ステップS1226では、変数mを「m+1」として、ステップS1227で、ページπmが存在するか確認する。ページπmが存在していればステップS1222へ戻り、存在していなければステップS1214へ進む。
【0126】
一方、ステップS1224で、バインダβからのブロック指示が出されている、若しくは変数X=mの場合には、ステップS1228でバインダβにメッセージ”Reject(Shift(Val))”を送る(図13に示す手順1106、及び図16に示す手順1606を参照)。
【0127】
ステップS1229で、バインダβがメッセージ”Reject(Shift(Val))”を受け取ると、S1210でメッセージブロックを指示したページπlimitに対して、メッセージブロック解除の指示”CancelBlockMessage()”を送り(図13に示す手順1107、及び図16に示す手順1607を参照)、ステップS1214へ進む。
【0128】
ステップS1214は、ステップS1202でのメッセージ送信元ページπxに対して、”Allow(Move(x,y))”のメッセージを送る。ステップS1215で、ページπxがそのメッセージ”Allow(Move(x,y))”を受信し、ステップS1221では、ページπxのページ番号をXからYに変更する(図13に示す手順1109、及び図16に示す手順1609を参照)。
【0129】
このようにしてページの移動処理が完了すると、ステップS1230では、ステップS1205でバインダβのメッセージ受信に関してするロック状態が解除される。
【0130】
以上、説明してきた図14及び図15に示すフローチャートはバインダβにおけるページ移動に関しての全体の流れを表わすものであったが、本発明の場合、ページ自身が自律的にメッセージをやりとりして処理が行なわれている。
【0131】
すなわち、上述した説明では、各ページπ自身がメッセージ伝達を行なうように説明しているが、実際にはバインダページ管理部106が各ページに関する記録領域を管理していて上記メッセージの伝達が行われるようになされている。
【0132】
この場合、バインダページ管理部106は、他のページから伝達されるメッセージを指定のページに関する記録領域に保持したり、また対応するメッセージを出力したり、或いは、保持済みのページ属性に基づいてメッセージを拒否したりして、ページ管理を図っている。なお、バインダページ管理部106によるバインダの管理及び後述するバインダ群についても同様な方法で行っている。
【0133】
ここでは、その一例として図4〜図7で説明したページの挿入処理を挙げ、メッセージ伝達の観点から説明する。まず、バインダβ400、ページπ1401、ページπ2402、ページπ3403、ページπ4404がそれぞれ独立して存在している。
【0134】
ページはページ番号と、元となる親のID番号を持ち、バインダはページから派生したものでありページの特徴とともに総ページ数という属性を持つ。ただし、本実施の形態ではバインダのページ番号は使われない。全てのページ(バインダ)には、一意なID番号が付けられるとする。
【0135】
まず、バインダ内部ファイル管理部105は、図4で示したように3ページ目に挿入されるページπnew405を作成する。バインダページ管理部106は、ページπnew405の作成時には、とりあえずページ番号は無効な値、ID番号にはバインダβ400に対応する値を設定する。
【0136】
ここで、バインダページ管理部106は、ページπnew405に関する記録領域に保有されているID番号を使って、バインダβ400自身に関する記録領域に対して”Insert(3)”のメッセージを送る(図5に示す手順500を参照)。
なお、メッセージには送信元を特定できる情報が付随しているものとする。
【0137】
バインダページ管理部106は、バインダβ400に関する記録領域に上記メッセージ”Insert(3)”が出力されたと判断すると、次に、バインダページ管理部106は、バインダβ400が処理可能な状態であるか否かを、バインダβ400自身が自律的に行っているが如く判断する。
【0138】
この判断の結果、処理可能である場合、バインダページ管理部106は、バインダβ400に関する記録領域に、ページ番号3とバインダ自身のID番号をあらためて設定して、メッセージ”Shift(1)”を各ページの記録領域に向けてブロードキャストする。
【0139】
ここで、バインダページ管理部106が、バインダβ400から各ページに対するメッセージの送り方として、例えば、次の2つの方法がある。直接送り先のID番号を指定する方法と、親のID番号とページ番号を指定する方法である。前者は、ページπnew405からバインダβ400へ送られるときの方法で、後者は先に述べたバインダβ400からページπnew405へ送られるときの方法である。
【0140】
バインダページ管理部106は、各ページに関する記録領域を参照して、バインダβから受け取ったメッセージを判断し、処理を行なう。ここで、バインダページ管理部106は、送られたメッセージが何れのページ宛のメッセージであるかを判断して、該当ページに対して送られたメッセージに対応した処理を行なうように動作する。
【0141】
例えば、バインダページ管理部106は、ページπ3に送信されたメッセージを確認すると、次のメッセージの送り先としてページ番号4(送付宛先が4ページ目という意味)、及び同一のバインダのID番号を指定して、メッセージ“Shift(1)”を送る(図5に示す手順502を参照)。
【0142】
次に、バインダページ管理部106は、指定されたページπ4404からページπ5405へ向けて、バインダのID番号を指定してメッセージ“Shift(1)”を送る。
【0143】
ここで、バインダページ管理部106は、ページπ4404からバインダβ400の内部で持っている総ページ数(すなわち、4ページ)以上のページ番号である5ページ目に対してメッセージを送っていることを判断する。そこで、バインダページ管理部106は、バインダβ400宛てへのメッセージではないが、総ページ以上(範囲外)のページ番号を指定して送信している旨のメッセージを、ページπ4404に送り返す。
【0144】
バインダページ管理部106は、ページπ4404が上記メッセージを受け取ったと判断すると、次に、ページπ4404自身が最終ページであることを理解して、ページπ4404のページ番号を4から5にする。つまり、バインダページ管理部106は、現在のページπ4404に関する記録領域に保持されたページ情報のページ番号4に対して、メッセージで送られてきた“Shift(1)”の「1」を加えてページ番号5を新たに保持する。
【0145】
更に、バインダページ管理部106は、ページπ4404が、上記メッセージを受理したことを表わすメッセージ“Allow(Shift(1))”をページπ3403に返す。ページπ3403でも同様に、バインダページ管理部106によって、ページ番号を「+1」してページ番号4として、最初のメッセージの呼び出し元であるバインダβ400にメッセージ“Allow(Shift(1))”を返すことが行われる。
【0146】
これによって、バインダページ管理部106は、バインダβ400に関して、既存のページの更新処理が終了したことを判断し、メッセージ“Insert(3)”を送ってきたページπnew405に対して、メッセージ“Allow(Insert(3))”を送る。そして最終的に、バインダページ管理部106は、バインダβに含まれることとなるページπnew405のページ番号を3と設定する(図5に示す手順504を参照)。
【0147】
なお、図7及び図11のフローチャート上で、バインダ「βにメッセージ”Finish(Shift(1))”を送る」のステップS615(ステップS915を含む)が示されているが、実際には上記のようにバインダページ管理部106が管理するメッセージがバインダβに伝達されていることになる。
【0148】
このようにして、バインダページ管理部106がバインダβ及び各ページπに関する記録領域を管理することにより、バインダβを構成する各ページが自律して存在するかのように、送られてくるメッセージの内容を各ページ自身が理解して、それに応じた処理が実行されるようにすることができる。このため、例えば、ページ管理テーブルのようなページを管理するために、さらに別のデータの準備を不要にすることができる。
【0149】
(第2の実施の形態)
次に、複数のページをまとめた状態を維持できる「ページ群」を導入する。なお、第1の実施の形態と同様に、本実施の形態においても、バインダページ管理部106がページ、ページ群、及びバインダを管理することによって、それぞれが自律的にメッセージ伝達等しているように動作している。
以下、ページ群θについての特徴を挙げる。
【0150】
1.ページ群θは、複数のページπをまとめたものである。
2.ページ群θは、ページπの存在できる位置に存在できる。
3.ページ群θは、1ページでも構わない。
4.ページ群θは、ページπと同等のメッセージを送ることができる。
5.ページ群θがまとめている末端の構成要素は、必ずページπとなる。
【0151】
上記1.については、ページ群θは、複数のページをまとめていることを表わし、上記2.は、ページ群θはページπを派生したものであることを意味している。また、上記3.は、ページ群θは1ページだけしか対象としていなくても、ページ群となり得ることを示している。
【0152】
上記4.は、ページ群θはページπの派生であるので、ページと同等のメッセージが送れることを示している。
上記5.は、上記2.から分かるように、ページ群θはページの存在できる位置に存在できるので、ページ群でまとめられているものの中にページ群が入ることができる。しかし、ページ群θを辿っていくと、最終的には必ずページでなければならないことを表している。
【0153】
なお、ページ群がまとめているページ数がmページからnページのときは、ページ群θm−nと記載することにする。
【0154】
具体的には、ページ群θ、バインダβ、及びページπとの関係を、図17のように表わすことができる。図17では、バインダβ1700は、ページとしてページπ11401、ページπ21402、及びページπ61406を持つ。
【0155】
更に、ページを束ねたものとしてページ群θ3−51407を持つ。ここで、ページ群θ3−51407は、その内部にページπ31403、π51405、及びページ群θ4−41408を持つ。ページ群θ4−41408は、唯一のページπ41404から成る。このように、ページ群θ1707、1708は、内部にページπ、あるいはページ群θ自体を持つ構造を表わす。
また、図17に示すように、バインダβ、ページ群、及びページは、それぞれに対する拡張記録領域1710〜1718を有している。なお、拡張記録領域1710〜1718に記録された情報を用いた実施の形態については、第3の実施の形態において説明する。
【0156】
ここで、ページ群θはメッセージ空間を持つ。メッセージ空間は、ページ群θがメッセージを送ることができる範囲であり、このメッセージ空間内にあるページに対して、メッセージを送ったり、処理を指示させたりすることができる。
【0157】
ページ群θがメッセージを送ることができるのは、一階層分だけである。すなわち、図17に示した例では、バインダβ1−61700は、ページ群の一種であるので、バインダβ1−61700から直接メッセージを送ることが出来るものは、ページπ11401、ページπ21402、ページπ61406、及びページ群θ3−51407だけである。
【0158】
ページ群であるθ3−51407は、受け取ったメッセージを判断し、必要であれば更に内部のページπ31403、ページπ51405、及びページ群θ4−41408にそのメッセージや、もしくはページ群θ3−51407で加工されたメッセージを通知する。同様な処理をθ4−41408でも行なう。
【0159】
上記第1の実施の形態において、図4〜図7で説明したページの挿入処理におけるメッセージ伝達を、上述したページ群を含んでいるバインダ文書ファイルで説明する。まず、バインダβは図17のような6ページから成り、3ページから5ページが束ねられている。更に、4ページ目がページ群θ1708に属しているとする。
【0160】
ここで、ページπ11701、ページπ21702、ページπ31703、ページπ41704、ページπ51705、ページπ61706、ページ群θ3−51707、及びページ群θ4−41708は、それぞれ独立して存在している。
【0161】
但し、先に説明したように、バインダβ1700、ページ群θ3−51707、及びページ群θ4−41708はメッセージ空間を持つ。バインダβ1700は、自己のメッセージ空間内に、ページπ11701、ページπ21702、ページπ61706、及びページ群θ3−51707を持っている。
【0162】
ページ群θ3−51707は、自己のメッセージ空間内に、ページπ31703、ページπ51705、及びページ群θ4−41708を持っている。また、ページ群θ4−41708は、ページπ41704だけを自己のメッセージ空間に持っている。
【0163】
ページπはページ番号と、元となる親のID番号を持ち、バインダβはページπから派生したものであり、ページの特徴とともに総ページ数という属性を持つ。ただし、本実施の形態ではバインダのページ番号は使われない。
【0164】
全てのページ(バインダ)には、一意なID番号が付けられるとする。ページ群θには、自己のメッセージ空間に持つページの範囲を属性に持っている。例えば、ページ群θ3−51707であれば、「ページ3からページ5」が属性として保有している。
【0165】
まず、既に図4でも示したように、バインダβ1700の3ページ目のメッセージ空間に挿入されるページπnewが作成される。また、ページπnewの作成時には、とりあえずページ番号として無効な値、またID番号としてバインダβに対応する値が設定される。ここで、ページπnewは自己で保有するID番号を使い、バインダβに対して”Insert(3)”のメッセージを送る(図5に示す手順500参照)。
【0166】
なお、メッセージには送信元を特定できる情報が付随しているものとする。バインダβ1700は、上記メッセージ”Insert(3)”を受け取ると、バインダβ1700が処理可能な状態であるか否かを、バインダβ1700自身が自律的に判断する。判断の結果、処理可能である場合、バインダβ1700は、ページ番号の3とバインダβ1700自身のID番号をあらためて設定して、メッセージ”Shift(1)”をバインダβ1700のメッセージ空間内の全てのページに向けてブロードキャストする。
【0167】
ここで、バインダβ1700から各ページに対するメッセージの送り方として、例えば、次の2つの方法がある。直接送り先ページのID番号を指定する方法と、親のID番号とページ番号を指定する方法である。前者は、ページπnewからバインダβ1700へ送られるときの方法で、後者は先に述べたバインダβ1700からページπnewへ送られるときの方法である。
【0168】
各ページは、バインダβ1700から受け取ったメッセージの判定を独自に判断し、処理を行なう。また、各ページは自分宛のメッセージでなければ、送られたメッセージの処理を行なわない。例えば、ページ群θ3−51707は、自己の管理しているメッセージ空間内にページπ31703があることがその属性より分かるので、ページ群θ3−51707は自己のメッセージ空間宛に、ページ番号3と自己のID番号を設定して、メッセージ”Shift(1)”を転送する。
【0169】
ページ群θ3−51707のメッセージ空間内の各ページは、受け取ったメッセージの判定を独自に判断し、処理を行なう。各ページは、自分宛のメッセージでなければ、転送されたメッセージの処理は行なわない。例えば、ページπ31703は、ページ群θ3−51707から転送されたメッセージを確認すると、送り先にページ番号4(送付宛先が4ページ目とういう意味)、及びページ群θ3−51707のID番号を指定して、メッセージ“Shift(1)”を送る(図5に示す手順502を参照)。
【0170】
すると、今度は指定されたページ群θ4−41708が、自分宛のメッセージであることを判断し、ページ群θ3−51707と同様に、更にその内部のメッセージ空間に上記メッセージを転送する。その結果、ページπ41704が自分宛のメッセージであると判断すると、ページ群θ4−41708のメッセージ空間において、ページπ41704は、ページπ51705へ向けて、ページ群θ4−41708のID番号を指定してメッセージ“Shift(1)”を送る。
【0171】
ここで、ページπ41704がページ群θ4−41708の内部で管理しているページ数以上のページ番号(すなわち、5ページ目)に対してメッセージを送っている。そこで、ページ群θ4−41708は、自身宛てへのメッセージではないが、ページπ41704に総ページ以上(範囲外)のページ番号を指定して送信している旨のメッセージを、ページπ41704に送り返す。
【0172】
ページπ41704が上記メッセージを受け取ると、ページπ41704自身が最終ページであることを理解して、ページ番号を4から5に変更する。つまり、現在のページ番号4にメッセージで送られてきた“Shift(1)”の「1」を加えてページ番号5に変更する。
【0173】
更に、ページπ41704は、メッセージを受理したことを表わすメッセージ“Allow(Shift(1))”をページ群θ4−41708に返す。
【0174】
ページ群θ4−41708が自己のメッセージ空間に上記メッセージを転送すると同時に、ページ番号5と自己のID番号を設定して、ページπ51705にメッセージ”Shift(1)”を送る。ページπ51705は今まで述べてきたように、自己が最終ページであることを理解して、ページ番号を5から6にして、メッセージ“Allow(Shift(1))”をページ群θ4−41708に返す。
【0175】
ページ群θ4−41708は、隣接するページ(ページπ51705)に投げたメッセージと、自身のメッセージ空間に投げたメッセージとの両方から、メッセージ“Allow(Shift(1))”が返されるのを待つ。そして、自己の管理しているページを「ページ5からページ5」にし、ページπ31703にメッセージ“Allow(Shift(1))”を送る。
【0176】
ページπ31703でも同様に、ページ番号を4として、メッセージの呼び出し元であるページ群θ3−51707に、メッセージ“Allow(Shift(1))”を返す。また、ページ群θ3−51707も、ページ群θ4−41708も、同様に自己のメッセージ空間にメッセージを投げるとともに、ページπ61706にも上記メッセージ“Allow(Shift(1))”投げており、これにより、ページπ61706がページ番号7に変更される。
【0177】
今まで述べてきた、あるページに対してそのページ番号を変更する処理は、第1実施の形態に述べた方式と同様である。ページ群θ3−51707はメッセージ“Allow(Shift(1))”を受け取ることで、自己のメッセージ空間内のページを、「ページ4から6」にする。
【0178】
そして、バインダβ1700は、既存のページの更新処理が終了したことを知り、メッセージ“Insert(3)”を送ってきたページπnewに対して、メッセージ“Allow(Insert(3))”を送り、最終的に、ページπnewのページ番号を3とする。
【0179】
このように、メッセージ伝達については、第1の実施の形態で示したページに対して伝達する処理と基本的に同様である。特にページ群の場合は、隣接するページにメッセージを送る際に、ページ群自身のメッセージ空間にも上記メッセージを転送し、その両方からの終了を待って判断している点が異なるだけである。
【0180】
なお、バインダβ1700の直下ではなく、ページ群θ3−51707の中にページπnewを挿入したい場合は、ページ群θ3−51707のメッセージ空間内にページπnewを作成すればよい。このときは、ページπnewから発せられるメッセージは、ページ群θ3−51707に通達される。これは、前記処理のバインダβ1700にメッセージが送られることに相当する。そのメッセージは更に、自己が所属するメッセージ空間の上位に位置するページ群(バインダ含む)に対して転送される。
【0181】
例えば、前記の例において、ページ群θ3−51707の中にページπnewをページ番号3として挿入するときを示す。まず、ページπnewからページ群θ3−51707に対して“Insert(3)”のメッセージが伝わる。更に、ページ群θ3−51707は、ページ群θ3−51707が所属するメッセージ空間の所有者として上位に位置付けられたバインダβ1700に対して、上記メッセージ“Insert(3)”を転送する。
【0182】
この後は、先程と同様の処理がなされ、最終的にページ群θ3−51707のメッセージ空間内のページπnewに対して、ページ番号を3とするようなページ挿入処理が行われる。このようにページ群の内部で管理しているページ番号が変更されるときでも、適切にページ番号が付け替えられる。
【0183】
また、特定区間をページ群にする場合は、ページ群にしたいメッセージ空間でページ群θを作成するようにする。そして、そのメッセージ空間を所有しているページ群に対して、例えば、ページ群θから“DoFold(m,n)”なるメッセージを送る。すると、上記メッセージ空間の全てのページ、及びページ群に対して、メッセージ“Fold(m,n,ページ群θのID)”がブロードキャストされる。この場合、ページmからページnの間のページは、ページ群θ以下に移動する。
【0184】
また、ページ群θの削除も同様にできる。ページ群の削除は、複数ページが削除されることを除けば、これも単なるページの削除と同様に可能である。ページπの移動、ページ群θの移動は、同一メッセージ空間内であれば、複数ページが増減するだけの違いである。また、メッセージ空間をまたがったページπの移動、ページ群θの移動は、同一メッセージ空間内における移動、削除を組み合わせて実現可能である。
【0185】
更に、バインダβ1、及びバインダβ2が存在している場合に、バインダβ2をバインダβ1の内部に挿入することが可能である。これは、バインダβ1の挿入先のメッセージ空間にバインダβ2を置くことで、バインダβ2をページ群として扱うことにより実現できる。
【0186】
(第3の実施の形態)
ここでは、バインダ、各ページ、及びページ群が、図17に示すような拡張記録領域を持つ場合の実施の形態について説明する。例えば、バインダの拡張記録領域にタイトルを表わすフィールドを設ければ、バインダそのもののタイトルを表わし、また、ページπ、ページ群θのそれぞれに対する拡張記録領域に、タイトルを表わすフィールドを設ければ、あるページ群θに対してタイトル(章題)を表わすことができる。上記拡張記録領域には、タイトルを表わすフィールドの他に、セキュリティに関する情報や暗号化のための鍵情報を保持するフィールド等を設けるようになされている。
【0187】
また、この拡張記録領域に対する処理は、バインダβ、各ページπ、及び各ページ群θがその処理方法を知っている。このため、上述したような第1の実施の形態、又は第2の実施の形態のように、メッセージが伝達された場合、バインダβ、各ページπ、及び各ページ群θは自己が処理すべきメッセージを自律して判定する。
【0188】
一例として、各ページπまたは各ページ群θがタイトルを持ち、各ページπまたは各ページ群θの拡張記録領域1711〜1718に上記タイトルを設定する場合は、例えば、メッセージ“SetTitle(”title”)”のようなメッセージとその処理方法を定義しておいて、各ページπ、ページ群θごとにメッセージを設定する。
【0189】
このように、各ページπまたは各ページ群θに拡張記録領域1711〜1718を用意した場合、各ページπまたは各ページ群θに対するメッセージと処理方法とを自由に定義できる。更に、各ページπ及び各ページ群θは、それぞれ個別に自己のデータを保持するため、まとめて管理する必要が無くなる。
【0190】
また、バインダ文書ファイルのセキュリティに関する情報を上記拡張記録領域1710〜1718に設定することができる。上記セキュリティ情報として、例えば、(1)ページπやページ群θの編集不可を示す情報、(2)並べ替えを許可しないことを示す情報、(3)そのページπを作成するのに基となった文書ファイルの変更を反映するか否かの情報などがある。以下、具体的に一つずつ見ていくことにする。
【0191】
(1)編集不可を示す情報
まず、ページπの編集許可についての情報を上記拡張記録領域に持つ場合を説明する。ページπ対して、ユーザが強調したい部分に印を付けたり、不要な部分を消したりすることにより、ページπを見やすくすることがある。例えば、ページπに対して、線分を引いたり、円を描いたり、特定領域に色を塗ったり、或いは、予め定められたスタンプなどを押したりしたアノテーション(注釈)情報を付加することが挙げられる。
【0192】
ここで、ページπにアノテーション情報が付与(設定)されると、元となる文書が改竄されることになってしまうことになる。そこで、不正にアノテーション情報が付与されることを防止するため、アノテーション情報の許可を与えたくない場合があり得る。
【0193】
このような場合のために、各ページの拡張記録領域1711〜1716に「ページの編集許可」に関するフラグ情報を与える。このフラグの状態によって、ページの編集を行なうことを不許可にすることができれば、ページの改竄を防止することが可能となる。
【0194】
また、原則、ページの改竄を行なえないが、一部のページだけに編集の許可を与えるような限定的許可としてのアノテーション情報を、上記拡張記録領域1711〜1716にフラグ情報として追加することもできる。例えば、「機密文書」というような固定文字の記されたスタンプ機能だけが上記ページのアノテーション情報として付与されている場合、そのページの改竄を行なうことは不可能である。
【0195】
上記の場合、例えば、「ページの編集許可」に関して複数の許可レベルを設けておき、上記拡張記録領域1711〜1716に設定された許可レベルが上記複数の許可レベルの何れのレベルかを判断する。そして、この許可レベルに応じて各ページを編集できるようにすれば、限定付きの編集機能を与えることが可能である。
【0196】
(2)並び替え不可を示す情報
ページπの並べ替えについても同様に、ページπの順序が変わることでバインダ文書ファイルが本来有していた意味が変わってしまう場合がある。したがって、ページ順序を変更するような文書の改竄を防止するために、「並べ替えの許可」に関するフラグ情報を、各ページの拡張記録領域1711〜1716に設けるようにする。
【0197】
更に、上記(1)の「編集不可を示す情報」の場合と同様に、この「並べ替え許可」のフラグ情報にも許可レベルを設けて、例えば、原則、ページの並べ替えは出来ないが、現在のページ順が変わらない範囲で、複数のページを束ねることが可能とするような、限定的な編集許可を与えるようにすることができる。
【0198】
(3)元文書ファイルの変更の反映不可を示す情報
「そのページを作成するのに元となった文書ファイルの変更を、バインダ文書ファイルに反映」するためには、各ページの拡張記録領域に、元となった文書ファイルのページに関する情報(例えば、ディレクトリのパスやネットワーク上のパス)を記録しておく領域と、そのページを作成するときに用いた時点での上記元文書ファイルの更新日を記録しておく領域とを用意しておく。
【0199】
更には、「そのページを作成するのに元となった文書ファイルの変更を、バインダ文書ファイルに反映」することを許可するか否かのフラグ情報を設ける。元文書ファイルの変更を反映することの許可を指示するフラグ情報があった場合、バインダ文書ファイルの各ページの拡張記録領域1711〜1716に保持された、元文書ファイルのパス名に記録されている元文書ファイルの更新日と、バインダ文書ファイルのページ拡張記録領域1711〜1716に記録されている指定パスにある実際のバインダ文書ファイルの更新日を比較する。
【0200】
上記比較によって2つの更新日が異なれば、元文書ファイルのページ変更をバインダ文書ファイルに反映させるために、再度、更新後のページ画像を作成して、バインダ文書ファイルの該当ページを更新することが可能である。
【0201】
ただし、バインダ文書ファイルの作成者がページπの更新を望まない場合は、「そのページπを作成するのに元となった文書の変更、バインダ文書ファイルに反映」することを許可するか否かのフラグ情報を不許可にすれば、元文書ファイルの変更がバインダ文書ファイルに反映されることは無い。
【0202】
ここで、上記(1)〜(3)の例に示したような、文書ファイルのセキュリティ機能に関連しているページ編集の制限は、バインダβを生成する当初には必要でなく、ページ編集が終了した段階で必要となる場合も含んでいる。また、ページ編集の制限(限定付き編集制限を含む)を施した後でも、その後にさらにページの再編集が必要となる場合も含んでいる。このように、本実施の形態では、再編集時におけるバインダ文書ファイルのセキュリティに関しても、適用できることはいうまでもない。
なお、上述した各ページのセキュリティ情報に基づく編集制限の方法は、バインダβまたはページ群θについての編集制限の方法に適用することができる。
【0203】
次に、ページ編集許可に制限を与える方法について述べる。今まで述べてきたようにページ間での情報の伝達は、複数のメッセージのやり取りによって行われる。そのため、ページ間のメッセージ自身が改竄されてしまうと、ページの拡張記録領域のセキュリティに関する情報は変更されてしまうこととなる。そこで、メッセージ自身を改竄されないための実現方法の例として、公知の技術である暗号化技法を用いてページ間のメッセージを暗号化して、この暗号化したメッセージ文をページ間で通知する方法を示す。
【0204】
上記公知の暗号化技法として、例えば、ページ間で共通の鍵を共有する秘密鍵暗号方式があり、この秘密鍵暗号化方式を用いて、メッセージ自身の改竄防止を実現することが可能である。その内容を以下に示す。
【0205】
始めに(空の)バインダβを生成するときに、同時に暗号化のための秘密鍵も生成しておき、この秘密鍵をバインダβの拡張記録領域内に保持しておく。なお、バインダページ管理部106が、上記秘密鍵を管理している。
【0206】
ページπ、ページ群θを作成するときは、このバインダβから派生するか、もしくは、派生したページπ、ページ群θからさらに派生させる。バインダβは、自己の秘密鍵を上記ページπ、ページ群θの生成時に、ページπ、ページ群θに渡す。これにより、各バインダ間で暗号化されたメッセージを伝達する場合は、この秘密鍵が利用される。なお、暗号化されていない場合は、そのメッセージのまま解釈されながら伝達される。
【0207】
これを、図を用いて具体的に説明する。図18は、ページπA1801からページπB1802へ、メッセージ1803を送る場合である。この場合は、メッセージ1803には暗号化が施されておらず、平文のままのメッセージ1803が伝わるため、各ページ(ページπA1801、ページπB1802)ではメッセージを加工する処理(例えば、暗号化処理や復号化処理)は必要ない。
【0208】
なお、ここではページπについて説明しているが、暗号化の対象がバインダβやページ群θであっても同様な説明がなされる。
【0209】
一方、図19は、メッセージを暗号化してから受信側ページに送る例である。図18と同じく、ページπA1900からページπB1910へメッセージを送るが、図19では暗号化されたメッセージ1905が送られる。
【0210】
ページπA1900内には暗号化部1902がある。まず、ページπB1910へ送るべきメッセージ1901及びページπA1900が持つ秘密鍵1903を暗号化部1902へ渡す。
【0211】
暗号化部1902は、メッセージ1901と秘密鍵1903とを用いて、ページ間伝達用の暗号化メッセージ1905を生成する。これにより、ページπA1900は、生成された暗号化メッセージ1905をページπB1910宛に送り出す。ページπB1910は、送られた暗号化メッセージ1905を受け取る。
【0212】
ページπB1910は、複合化部1912を有している。ページπB1910は、暗号化されたメッセージ1905及びページπB1910が持つ秘密鍵1913を、複合化部1912へ渡す。複合化部1912は、秘密鍵1913を用いて、暗号化メッセージ1905の解読を試みる。
【0213】
この場合、ページ間のお互いの秘密鍵1903と秘密鍵1913とが一致していればメッセージの復号は成功し、平文に戻ったメッセージ1911が生成される。そこで、ページπB1910は、生成されたメッセージ1911内容に従った処理を行なう。
以上が、暗号化処理及び復号化処理が成功する例である。
【0214】
なお、上記説明では、ページπA1900が暗号化部1902を持ち、また、ページπB1910が復号化部1912を持つというように示した。実際には、ページπA1900を管理するバインダページ管理部106が、ページπA1900のメッセージ1901及びページπA1900の拡張記録領域に保持された秘密鍵1903を、電子バインダ装置100内の暗号化手段(暗号化部1902)へ渡す。そして、上記暗号化手段によって生成した暗号メッセージ1905を、ページπA1900へ戻すように動作している。
ページπB1910における復号化処理についても同様である。
【0215】
図19に対して、図20は、メッセージを異なる秘密鍵によって暗号化及び復号化する例である。図19と同様に、ページπA2000内の暗号化部2002により、ページπB2010へ送るべきメッセージ2001と、ページπA2000が保持する秘密鍵2003とから、ページ間伝達用の暗号化メッセージ2005を生成する。次に、ページπA2000は、生成されたメッセージ2005をページπB2010宛に送り出す。
【0216】
ページπB2010の複合化部2012は、暗号化されたメッセージ2005と秘密鍵2013を用いて、暗号化メッセージの解読を試みる。この場合、ページ間のお互いの秘密鍵2003及び秘密鍵2013が一致していないので復号に失敗する。このため、平文に戻ったメッセージ2011を生成できず、送られてきた暗号化メッセージ2005の処理を行なうことができないことになる。
【0217】
なお、図19において説明したように、実際には、ページπA2000及びページπB2010を管理するバインダページ管理部106が、暗号化部2002及び復号化部2012における暗号復号化処理の動作を管理している。
【0218】
このように、秘密鍵の同一性によって判断すれば、メッセージ伝達において秘密鍵と合致しないメッセージ処理(復号化処理)を阻止(ブロック)することができる。
なお、メッセージについてのページπの挿入、移動、及び削除等のための編集処理は、上述した第1の実施の形態または第2の実施の形態で述べた内容に従って行われるものとする。
【0219】
暗号化メッセージが生成される場合、バインダβ、ページπ、及びページ群θの内部のデータは、全て暗号化処理されて隠蔽される。更に、ページπ内部には、メッセージの暗号化処理を行なう暗号化部、及びメッセージの復号処理を行なう復号化部を持つ。暗号化された内部データにアクセスするためには、上記暗号化部及び復号化部を介することが必要であり、バインダβ、ページπ、及びページ群θは、この暗号化部及び複合化部を介さないアクセス処理を認めず、そのアクセスを拒否するようにしている。
【0220】
このようにバインダβ、ページπ、及びページ群θの内部データの隠蔽を行ったり、メッセージを暗号化したりすることにより、バインダβ等が自己にとって解釈可能なメッセージしか受け付けないような処理を行なうことを可能にする。
【0221】
なお、この例では、暗号化方式のために秘密鍵暗号方式を用いたが、他の暗号化方式として公知の技術である公開鍵暗号方式を用いてもよい。
【0222】
以上により、本実施の形態の電子バインダ装置によれば、各ページにそれぞれ対応させて拡張記録領域を設けて、これらの拡張記録領域に、各ページに対するアクセス権限を定めた情報としてみなせるセキュリティ情報をそれぞれ設定するようにしたので、アクセス権限のないユーザによるページへのユーザアクセスを拒否することができる。また、上記セキュリティ情報を、複数の許可レベルによって設定して、ページの編集を限定付きで認めることやユーザごとに異なる編集許可の付与を行なうことができる。
【0223】
これにより、バインダ文書ファイルには、様々な文書ファイルの情報を保持しておくことが可能となり、バインダ文書ファイル内の情報をページ単位として扱うことができるとともに、文書ファイルに対して編集不可のセキュリティが施されているだけのバインダ文書ファイルにおけるページ自身の編集を防止することができる。
【0224】
また、バインダ文書ファイルでは、文書単位に依らずページ単位で、自由にページの並び替えを可能とするとともに、ページの順序が入れ替えられてしまうことで、バインダ文書ファイルが有していた本来の意味が変更されてしまうことを防止することができる。
このように、本発明によれば、バインダ文書ファイルの管理を柔軟に、かつ容易に行なうことができる。
また、暗号化されたメッセージを用いれば、セキュリティが施されたページ等を含むバインダ文書ファイルの場合であっても編集操作を行なうことは可能である。また、この暗号化処理を利用して、ページの拡張記録領域に、例えば、「ページの編集許可」や「並べ替え許可」等の編集可否情報を設定することにより、暗号対象となるページ等に対して、秘密鍵を保持していないバインダからのメッセージを拒絶することが可能となる。
【0225】
なお、本発明の目的は、第1〜第3の実施の形態のホスト及び端末の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記録媒体に格納されたプログラムコードを読みだして実行することによっても、達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が第1〜第3の実施の形態の機能を実現することとなり、そのプログラムコードを記録した記録媒体及び当該プログラムコードは本発明を構成することとなる。
【0226】
プログラムコードを供給するための記録媒体としては、ROM、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード等を用いることができる。
また、コンピュータが読みだしたプログラムコードを実行することにより、第1及び第2の実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行ない、その処理によって第1〜第3の実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0227】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によって第1〜第3の実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0228】
図21は、上記コンピュータの機能2600を示したものである。
コンピュータ機能2600は、上記図21に示すように、CPU2651と、ROM2652と、RAM2653と、キーボード(KB)2659のキーボードコントローラ(KBC)2655と、表示部としてのCRTディスプレイ(CRT)2660のCRTコントローラ(CRTC)2656と、ハードディスク(HD)2661及びフレキシブルディスク(FD)2662のディスクコントローラ(DKC)2657と、ネットワーク2670との接続のためのネットワークインターフェースコントローラ(NIC)2658とが、システムバス2654を介して互いに通信可能に接続された構成としている。
【0229】
CPU2651は、ROM2652或いはHD2661に記録されたソフトウェア、或いはFD2662より供給されるソフトウェアを実行することで、システムバス2654に接続された各構成部を総括的に制御する。
すなわち、CPU2651は、所定の処理シーケンスに従った処理プログラムを、ROM2652、或いはHD2661、或いはFD2662から読み出して実行することで、第1〜第3の実施の形態での動作を実現するための制御を行う。
【0230】
RAM2653は、CPU2651の主メモリ或いはワークエリア等として機能する。
KBC2655は、KB2659や図示していないポインティングデバイス等からの指示入力を制御する。
CRTC2656は、CRT2660の表示を制御する。
DKC2657は、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイル、ネットワーク管理プログラム、及び第1から第3の実施の形態における所定の処理プログラム等を記録するHD2661及びFD2662とのアクセスを制御する。
NIC2658は、ネットワーク2670上の装置或いはシステムと双方向にデータをやりとりする。
【0231】
本発明の実施態様の例を以下に列挙する。
〔実施態様1〕電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成する電子バインダ装置であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手段と、上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備えたことを特徴とする電子バインダ装置。
【0232】
〔実施態様2〕上記セキュリティ情報は、上記バインダ文書ファイルを構成する各ページに対する編集、上記各ページ間におけるページ移動、または上記バインダ文書ファイルのページ更新を行う編集のうち、少なくとも何れか一つの編集を許可するか否かの情報を含むことを特徴とする実施態様1に記載の電子バインダ装置。
【0233】
〔実施態様3〕上記ページ情報管理手段は、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいて、上記バインダ文書ファイルを構成する各ページ自身が自己に関連する編集処理であるかを自律的に判断するが如く、上記各ページを管理することを特徴とする実施態様1または2に記載の電子バインダ装置。
【0234】
〔実施態様4〕上記ページ情報管理手段により上記バインダ文書ファイルを構成する各ページの管理は、上記各ページ間または上記各ページと上記各ページを統括するバインダ間の所定のメッセージ伝達を基に行われることを特徴とする実施態様1〜3の何れか1つに記載の電子バインダ装置。
【0235】
〔実施態様5〕複数の電子ドキュメントをページ単位に分割するページ分割手段と、上記ページ分割手段により分割された電子ドキュメントの各ページから、任意のページを抽出してバインダ文書ファイルを生成するバインダ文書ファイル生成手段と、上記バインダ文書ファイル生成手段により生成されたバインダ文書ファイルを、上記ページ単位で追加、削除、または並び替えの編集のうち、少なくとも何れか1つの編集を行なう編集手段とを備えた電子バインダ装置であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定する拡張記録領域設定手段と、上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備え、上記ページ情報管理手段は、上記セキュリティ情報設定手段により設定された各セキュリティ情報に基づき、上記バインダ文書ファイルを構成する各ページ間または上記バインダ文書ファイルを構成する各ページと上記バインダ文書ファイルを構成する各ページを統括するバインダ間に所定のメッセージを伝達して、上記バインダ文書ファイルを構成する各ページを管理することを特徴とする電子バインダ装置。
【0236】
〔実施態様6〕上記ページ情報管理手段は、上記メッセージの内容を判断して、上記バインダ文書ファイルを構成する各ページ自身が上記セキュリティ情報設定手段により設定されたセキュリティ情報に応じた処理を自律的に判断するが如く、対応するメッセージを上記所定のページまたは上記バインダに通知することを特徴とする実施態様5に記載の電子バインダ装置。
【0237】
〔実施態様7〕上記セキュリティ情報設定手段は、上記バインダ文書ファイルを編集するためのアノテーションを付与することが可能か否かの情報を、上記ページの拡張記録領域に設定することを特徴とする実施態様5または6に記載の電子バインダ装置。
【0238】
〔実施態様8〕上記セキュリティ情報設定手段は、上記アノテーションの内容として複数の編集許可レベルの情報を設定することを特徴とする実施態様7に記載の電子バインダ装置。
【0239】
〔実施態様9〕上記アノテーションの内容は、上記バインダ文書ファイルを構成するページの並び替えを許可する情報を含むことを特徴とする実施態様8に記載の電子バインダ装置。
【0240】
〔実施態様10〕上記アノテーションの内容は、上記バインダ文書ファイルを構成するページの並べ替えを許可しないが上記バインダ文書ファイルを構成するページを束ねることを許可する情報を含むことを特徴とする実施態様9に記載の電子バインダ装置。
【0241】
〔実施態様11〕上記バインダ文書ファイルを構成するページを作成する元文書ファイルの上記電子ドキュメントに関して、ディレクトリパス、ネットワークのパス、または更新日時の少なくとも何れか1つの情報を管理する文書更新管理手段と、上記文書更新管理手段で管理する更新日時に基づき、上記バインダ文書ファイルのページを更新するページ画像更新手段とを備えることを特徴とする実施態様5〜10の何れか1つに記載の電子バインダ装置。
【0242】
〔実施態様12〕上記バインダ文書ファイルを構成するページ間で伝達されるメッセージ情報を暗号化する暗号化手段を備え、上記ページ情報管理手段は、上記暗号化手段による上記メッセージ情報の暗号化に必要な鍵情報を、上記バインダ文書ファイルを構成するページ自身が持つが如く、一対一に対応付けて管理することを特徴とする実施態様2〜11の何れか1つに記載の電子バインダ装置。
【0243】
〔実施態様13〕上記実施態様1〜12の何れか1つに記載の電子バインダ装置にアクセス可能に構成されていることを特徴とする電子バインダシステム。
【0244】
〔実施態様14〕電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成するためのバインダ文書ファイル生成方法であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有することを特徴とするバインダ文書ファイル生成方法。
【0245】
〔実施態様15〕複数の電子ドキュメントをページ単位に分割するページ分割手順と、上記ページ分割手順により分割された電子ドキュメントの各ページから、任意のページを抽出してバインダ文書ファイルを生成するバインダ文書ファイル生成手順と、上記バインダ文書ファイル生成手順により生成されたバインダ文書ファイルを、上記ページ単位で追加、削除、または並び替えの編集のうち、少なくとも何れか1つの編集を行なう編集手順とを備えたバインダ文書ファイル生成方法であって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有し、上記ページ情報管理手順は、上記セキュリティ情報設定手順により設定された各セキュリティ情報に基づき、上記バインダ文書ファイルを構成する各ページ間、または上記バインダ文書ファイルを構成する各ページと上記バインダ文書ファイルを構成する各ページを統括するバインダ間に所定のメッセージを伝達して、上記バインダ文書ファイルを構成する各ページを管理することを特徴とするバインダ文書ファイル生成方法。
【0246】
〔実施態様16〕電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成するためのバインダ文書ファイル生成方法を実行するためのコンピュータプログラムであって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有することを特徴とするコンピュータプログラム。
【0247】
〔実施態様17〕複数の電子ドキュメントをページ単位に分割するページ分割手順と、上記ページ分割手順により分割された電子ドキュメントの各ページから、任意のページを抽出してバインダ文書ファイルを生成するバインダ文書ファイル生成手順と、上記バインダ文書ファイル生成手順により生成されたバインダ文書ファイルを、上記ページ単位で追加、削除、または並び替えの編集のうち、少なくとも何れか1つの編集を行なう編集手順とを備えたバインダ文書ファイル生成方法を実行するためのコンピュータプログラムであって、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を設定するための拡張記録領域を設定する拡張記録領域設定手順と、上記拡張記録領域設定手順により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手順と、上記セキュリティ情報設定手順により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手順とを有し、上記ページ情報管理手順は、上記セキュリティ情報設定手順により設定された各セキュリティ情報に基づき、上記バインダ文書ファイルを構成する各ページ間、または上記バインダ文書ファイルを構成する各ページと上記バインダ文書ファイルを構成する各ページを統括するバインダ間に所定のメッセージを伝達して、上記バインダ文書ファイルを構成する各ページを管理することを特徴とするコンピュータプログラム。
【0248】
〔実施態様18〕実施態様16または実施態様17に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【0249】
【発明の効果】
以上述べてきたように、本発明によれば、電子ドキュメントを構成する各ページから必要なページを集めて新たなバインダ文書ファイルを生成する際に、上記バインダ文書ファイルを構成する各々のページに係わるセキュリティに関する情報を設定するための拡張記録領域を設定し、上記拡張記録領域に上記セキュリティに関する情報を設定するようにしたので、上記バインダ文書ファイルの編集許可をページ単位で行なうようにすることができる。
これにより、バインダ文書ファイルのセキュリティを文書単位で行なう場合よりもセキュリティ性を大幅に向上させることができ、情報の改変・流出を防止する機能に優れた文書管理を実現することができる。
【図面の簡単な説明】
【図1】本発明の電子バインダ装置の実施の形態を示す構成図である。
【図2】バインダβとページπの関係を具体的な概念図として示した図である。
【図3】バインダデータ生成管理部が新規にバインダ(バインダ文書ファイル)を作成した際の、総ページ数0のバインダ(空のバインダ)βを説明するための図である。
【図4】バインダβの2ページ目と3ページ目の間に新たなをページπnewを挿入することを説明するための図である。
【図5】バインダβにページπnewを挿入する際のバインダと各ページ間のメッセージ伝達を説明する図である。
【図6】バインダにページを挿入するときの動作手順を説明するフローチャートである。
【図7】バインダにページを挿入するときの動作手順を説明するフローチャートである。
【図8】バインダからページを削除することを説明するための図である。
【図9】バインダからページを削除する際のバインダと各ページ間のメッセージ伝達を説明するための図である。
【図10】バインダからページを削除するときの動作手順を説明するフローチャートである。
【図11】バインダからページを削除するときの動作手順を説明するフローチャートである。
【図12】バインダにおいて、ページの移動を説明するための図である。
【図13】バインダにおいて、ページを前方移動する際のバインダと各ページ間のメッセージ伝達を説明するための図である。
【図14】バインダにおいて、ページを移動するときの動作手順を説明するフローチャートである。
【図15】バインダにおいて、ページを移動するときの動作手順を説明するフローチャートである。
【図16】バインダにおいて、ページを後方移動する際のバインダと各ページ間のメッセージ伝達を説明するための図である。
【図17】束ねたページを表すページ群を説明するための図である。
【図18】暗号化されていないメッセージをページ間で送受信する場合を説明するための図である。
【図19】暗号化されたメッセージをページ間で送受信する場合を説明するための図である。
【図20】暗号化されたメッセージを受信側のページが拒絶する場合を説明するための図である。
【図21】本発明の実施の形態例の電子バインダ装置の機能をコンピュータに実現させるためのプログラムを、コンピュータ読み取り可能な記録媒体から読み出して実行するコンピュータの構成を示すブロック図である。
【符号の説明】
101 データベース
102 バインダデータ
103 バインダデータ生成管理部
105 バインダ内部ファイル管理部
106 バインダページ管理部
107 データベースアクセスユーザインタフェース部
Claims (1)
- 電子ドキュメントを構成する複数のページの中から必要なページを集めて新たなバインダ文書ファイルを生成する電子バインダ装置であって、
上記バインダ文書ファイルを構成する各々のページに係わるセキュリティ情報を指定するための拡張記録領域を設定する拡張記録領域設定手段と、
上記拡張記録領域設定手段により設定された拡張記録領域に上記バインダ文書ファイルのセキュリティ情報を設定するセキュリティ情報設定手段と、
上記セキュリティ情報設定手段により上記拡張記録領域に設定されたセキュリティ情報に基づいてページに関する情報を管理するページ情報管理手段とを備えたことを特徴とする電子バインダ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002314742A JP2004151868A (ja) | 2002-10-29 | 2002-10-29 | 電子バインダ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002314742A JP2004151868A (ja) | 2002-10-29 | 2002-10-29 | 電子バインダ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004151868A true JP2004151868A (ja) | 2004-05-27 |
Family
ID=32458976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002314742A Pending JP2004151868A (ja) | 2002-10-29 | 2002-10-29 | 電子バインダ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004151868A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009519511A (ja) * | 2005-12-05 | 2009-05-14 | サーセン コーポレイション | 文書データセキュリティ管理方法及びそのシステム |
US7761433B2 (en) | 2004-06-15 | 2010-07-20 | Canon Kabushiki Kaisha | Document processing apparatus, method and program |
JP2010534033A (ja) * | 2007-07-13 | 2010-10-28 | マイクロソフト コーポレーション | 暗号で保護した文書の作成と検証 |
JP2014222460A (ja) * | 2013-05-14 | 2014-11-27 | シャープ株式会社 | 電子機器およびプログラム |
-
2002
- 2002-10-29 JP JP2002314742A patent/JP2004151868A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761433B2 (en) | 2004-06-15 | 2010-07-20 | Canon Kabushiki Kaisha | Document processing apparatus, method and program |
JP2009519511A (ja) * | 2005-12-05 | 2009-05-14 | サーセン コーポレイション | 文書データセキュリティ管理方法及びそのシステム |
JP2010534033A (ja) * | 2007-07-13 | 2010-10-28 | マイクロソフト コーポレーション | 暗号で保護した文書の作成と検証 |
US8887297B2 (en) | 2007-07-13 | 2014-11-11 | Microsoft Corporation | Creating and validating cryptographically secured documents |
JP2014222460A (ja) * | 2013-05-14 | 2014-11-27 | シャープ株式会社 | 電子機器およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5532920A (en) | Data processing system and method to enforce payment of royalties when copying softcopy books | |
US8910034B2 (en) | System and method for managing dynamic document references | |
EP1220151B1 (en) | Multi-stage watermarking process and system | |
JP5923625B2 (ja) | Epub基盤コンテンツに関するデジタル著作権管理装置及び方法、並びにユーザ権限によるepub基盤コンテンツ提供装置及び方法 | |
US9460060B2 (en) | System and method for managing dynamic document references | |
US20080016372A1 (en) | Method, apparatus, and program product for revealing redacted information | |
US8261187B2 (en) | System and method for managing dynamic document references | |
JPH09233067A (ja) | 知的情報処理方法および装置 | |
JP5285188B2 (ja) | デジタルワークの分配及び利用を制御するためのシステム | |
US20070156744A1 (en) | System and method for managing dynamic document references | |
US8775933B2 (en) | System and method for managing dynamic document references | |
JP2008310447A (ja) | ドキュメント管理装置、ドキュメント管理方法及びプログラム | |
KR20020067663A (ko) | 데이터배포시스템 | |
US20090287709A1 (en) | Information processing apparatus for editing document having access right settings, method of information processing, and program | |
CN101071365B (zh) | 印刷系统及印刷方法 | |
JP2004151868A (ja) | 電子バインダ装置 | |
JP2008134821A (ja) | 電子ファイル処理プログラムおよび情報処理装置 | |
JP2009087265A (ja) | 情報処理装置およびその方法 | |
JP2005165844A (ja) | 文書印刷システム、クライアント装置、印刷装置、文書印刷方法、およびプログラム | |
JP2008140073A (ja) | 複製文書管理システム及び複製文書管理方法およびプログラムおよび記録媒体 | |
JP2006252295A (ja) | ページ管理システム | |
JP2006155279A (ja) | 情報処理システムおよび電子文書安全化方法およびプログラムおよび記録媒体 | |
JPH1175050A (ja) | イメージデータ合成装置 | |
JP2002016785A (ja) | コンテンツコピー機及びコンテンツコピー機用プログラム記録媒体 | |
JP2004110492A (ja) | 情報提供システム、情報提供方法及びプログラム |