次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
[システム構成]
図1は、本実施形態を示す文書管理システムの構成を説明する図である。
図1において、10はClientPCで、文書管理システムにユーザAがブラウザを介してアクセスする。11はClientPCで、文書管理システムにユーザBがブラウザを介してアクセスする。12はClientPCで、文書管理システムにユーザCがブラウザを介してアクセスする。
20はWebアプリケーションサーバPCで、Webアプリケーションを提供する。30はユーザ管理サーバPCで、本システムにアクセスするユーザの情報を管理する。40は文書管理サーバで、文書を保存/管理する機能を有する。なお、上記ClientPC10〜12と、WebアプリケーションサーバPC20、ユーザ管理サーバPC30、及び文書管理サーバPC40は、ネットワークを介して相互に通信可能に接続されている。なお、上記システムを構成するPC、サーバは、後述するハードウェア資源と、ソフトウエア資源を備えて、各種のプログラムをOSの管理下で実行することで種々のデータ処理、通信処理、管理処理を行う。
ここで、WebアプリケーションサーバPC20、ユーザ管理サーバPC30、及び文書管理サーバPC40は、別々に配置されている構成としているが、一つのPCにおいて構成されても構わない。
また、ユーザA、B、及びユーザCがClientPC10、11、12を操作する構成としている。しかし、WebアプリケーションサーバPC20、ユーザ管理サーバPC30、及び文書管理サーバPC40のいずれか、もしくは全てと同じClientPCで操作する構成としても構わない。
更に、本実施形態に係る文書管理システムは、ユーザA、B、及びユーザCがClientPCにインストールされているブラウザを介してネットワーク上にアクセスする構成としている。しかし、図示しない専用のクライアントアプリケーションをClientPC10、11、及びClientPC12に配置し、それを操作する構成であっても構わない。この場合、WebアプリケーションサーバPC20ではなく、文書管理サーバPC40と専用クライアントアプリケーションが通信する構成でも構わない。
[ハードウェア構成]
図2は、本実施形態に示す文書管理システムを構成する各PCのハードウェア構成を説明するブロック図である。なお、本例は、一般的な情報処理装置のハードウェア構成図に相当するものとし、本実施形態の各PCには一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU100は、ROM102のプログラム用ROMに記憶された、或いはハードディスク等の外部メモリ109からRAM101にロードされたOSやアプリケーション等のプログラムを実行する。ここで、OSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。
RAM101は、CPU100の主メモリ、ワークエリア等として機能する。キーボードコントローラ103は、キーボード107や図示しないポインティングデバイスからのキー入力を制御する。ディスプレイコントローラ104は、各種ディスプレイ108の表示を制御する。ディスクコントローラ105は、各種データを記憶するハードディスク(HD)109やフレキシブルディスク(FD)等の外部メモリ19におけるデータアクセスを制御する。NC106はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
[ソフトウエア構成]
図3は、本発明の実施形態に係る文書管理システムの一例を示すソフトウエア構成を説明する図である。本例は、図1に示したWebアプリケーションサーバPC20、ユーザ管理サーバPC30、及び文書管理サーバPC40内のソフトウエア構成を示している。
図3において、メイン制御部200は、文書管理システムの全体を制御し、後述する各部に対する指示、管理を行う。データ送受信部201は、Client PC10においてユーザがブラウザを介して出した命令を受け取り、メイン制御部200より指示を受けた結果を、ClientPC10に返答する。
セッション記憶部202は、ClientPC10においてユーザがブラウザを介して本文書管理システムにアクセスしてから、同一ユーザからのアクセスであることを示すためのセッション情報を生成する。
更に、セッション記憶部202は、ユーザが本文書管理システムへのアクセスを止める(ログアウト)、もしくは自動タイムアウトなどでセッションが切れるまでの間、繰り返し使用する各種情報をセッション情報と関連付けて保持する。
WebUI生成部203は、メイン制御部200より指示を受け、状況に応じたWebUI(HTML)を生成する。ここで、WebUI生成部203が生成するWebUIは、HTMLだけに限定するものではなく、Java(登録商標)Scriptなどのスクリプト言語が埋まっていても構わない。
次に、ユーザ情報操作部300は、メイン制御部200からの指示に従い、ユーザ情報記憶部301に保存されている本文書管理システムにアクセス可能なユーザ、及びユーザ特性の抽出、編集などの操作を行う。ここで、ユーザ管理に関して、本文書管理システム独自の管理ではなく、既知の技術であるActive Directory、LDAPなどとユーザ情報操作部300が連携し、ユーザ情報記憶部301においてはユーザ特性のみを保存しても構わない。
次に、文書情報操作部400は、メイン制御部200からの指示に従い、文書情報記憶部401に文書の実体、文書のテンプレート、文書のページ内の領域分割されたオブジェクト、オブジェクトの差分、及び各種履歴の登録、保存する。
さらに、文書情報操作部400は、文書情報記憶部401に保存されている文書の実体、文書のテンプレート、文書のページ内の領域分割されたオブジェクト、オブジェクトの差分、及び各種履歴の抽出、編集などの操作を行う。
文書分析部402は、メイン制御部200からの指示に従い、文書のページ内を解析し、領域分割を行い、領域分割して得られたオブジェクトに属性情報を付加して、文書情報操作部400を介して文書情報記憶部401に登録、保存する。
文書検索部403は、メイン制御部200からの指示に従い、文書、文書のテンプレート、及びオブジェクトを、文書情報操作部400を介して文書情報記憶部401より検索して取得する。
文書比較部404は、メイン制御部200からの指示に従い、オブジェクト間の比較を行う。プログラム制御部405は、メイン制御部200からの指示に従い、プログラム記憶部406に保存されているプログラムを読み出し、オブジェクトの属性情報にプログラムを埋め込む。さらに、プログラム制御部405は、オブジェクトに保存されたプログラムに従いアクションを実行する。
ユーザ通知部407は、オブジェクトに保存されたプログラムに従ったアクションを実行する際、メール通知や図示しないClientPC10、11、及びClientPC12に表示するユーザインタフェースを用いてユーザに通知する。
以下、本発明の第1実施形態に係る文書管理システムにおける処理について、図1乃至図15を用いて具体的に説明する。
[ログイン、及びユーザ特性登録処理]
図4は、本実施形態を示す文書管理システムにおけるログイン、及びユーザ特性登録処理の一例を示す図である。本例は、ユーザAが、ClientPC10のブラウザを介して本文書管理システムにアクセス(ログイン)する処理例である。なお、初めてログインした際にはユーザ特性を入力する。
図5は、本実施形態を示す文書管理システムにおける第1のデータ処理手順の一例を示すフローチャートである。本例は、本システムにユーザがログインして、ユーザ特性を登録する処理例である。なお、S100〜S106は各ステップを示す。また、各ステップは、WebアプリサーバPC20のメイン制御部200がユーザ管理サーバPC30のCPU100の制御プログラムを実行することで実現される。ここで、制御プログラムには、図3に示したソフトウエアが含まれる。
S100において、ユーザAがClientPC10のブラウザを介して本文書管理システムのトップページにアクセスすると、WebアプリサーバPC20のメイン制御部200は、データ送受信部201を介してリクエストを受信する。続いて、WebUI生成部203に依頼し、トップページの生成を行い、データ送受信部201を介して、ClientPC10にレスポンスとして返し、ClientPC10のブラウザにトップページを表示させる。
次に、S100により表示されたトップページにてユーザAがポインティングデバイスを操作してログイン情報を入力すると、メイン制御部200は、データ送受信部201を介してユーザAのログイン情報を受信する。例えば、ログイン情報にはユーザ名とパスワードなどが含まれる。
続いて、S101において、ユーザ管理サーバPC30のユーザ情報操作部300に問い合わせ、ユーザ情報記憶部301に登録されたユーザか否かを確認する。その結果、メイン制御部200がユーザ情報記憶部301にユーザAが存在しない、もしくはパスワードが間違っていると判断された場合、S102へ進む。そして、S102で、メイン制御部200は、WebUI生成部203に依頼しログイン失敗エラーページの生成を行う。続いて、データ送受信部201を介してClientPC10にレスポンスとして返し、ClientPC10のブラウザにログイン失敗エラーページを表示させて、本処理を終了する。
一方、S101で、メイン制御部200がユーザ情報記憶部301にユーザAが存在して、かつパスワードが正しいと判断された場合、S103へ進む。
そして、S103で、メイン制御部200は、セッション記憶部202においてセッション情報を生成する。続いて、ユーザ情報記憶部300に問い合わせ、ユーザ情報記憶部301にユーザAのユーザ特性が登録されているか否かをメイン制御部200が判断する。なお、セッション情報を生成するタイミングは、ここに限定しない。ここで、ユーザAのユーザ特性が登録されていないとメイン制御部200が判断した場合、S104へ進み、メイン制御部200は、WebUI生成部203に依頼し、ユーザ特性入力ページの生成を行う。続いて、データ送受信部201を介して、ユーザ特性入力ページをClientPC10にレスポンスとして返し、ClientPC10のブラウザに表示させる。
次に、S104により表示されたユーザ特性入力ページにてユーザAがユーザ特性を入力すると、メイン制御部200は、データ送受信部201を介してユーザAのユーザ特性を受信する。
続いて、S105において、メイン制御部200は、ユーザ情報操作部300に指示し、ユーザ情報記憶部301に受信したユーザAのユーザ特性を登録する。この際、メイン制御部200は、セッション記憶部202に対しても、生成済みのセッション情報とともにユーザ特性を保持することを指示する。これにより、毎回ユーザAのユーザ特性情報をユーザ情報記憶部301より取得することがなくなるため、処理速度を向上させることができる。
図6は、図3に示したユーザ情報記憶部301に保存されているユーザ特性テーブルの一例を示す図である。本例では、ユーザ特性として、所属部署、役職、部署における上長(承認者)、プロジェクト、プロジェクト内での業務、プロジェクトにおける上長などがあり、後述するアクション実行処理において利用される。なお、ユーザ特性としては、これら以外の情報が含まれていても構わない。更に、ユーザ特性の項目として複数の値が含まれていても構わない。例えば、複数のプロジェクトに関わるユーザの場合には、複数選択できるほうがよい。
また、ユーザ特性入力ページでは、ユーザ特性の項目を自由にユーザが入力できるのではなく、選択できる形状であることが望ましい。このためには、本文書管理システムを導入するユーザ環境に応じて、導入先の管理者などが事前に適切な選択項目を設定しておくことが望ましい。
次に、S106において、メイン制御部200は、WebUI生成部203にユーザAのページを生成させる。続いて、データ送受信部201を介してClientPC10にレスポンスとして返し、ClientPC10のブラウザにユーザAのページを表示させ、本処理を終了する。
[テンプレート登録処理]
本実施形態においては、ワークフローを実現するために、事前にワークフローを提供するための文書テンプレートを作成し、文書管理サーバPC40の文書情報記憶部401に保存しておく。
ユーザCが、ClientPC12のブラウザを介して本文書管理システムにアクセス(ログイン)し、テンプレートとして登録したい文書を登録し、ワークフローを実現するためのアクションを指定して本システムにて保存する。
図7は、本実施形態を示す文書管理システムにおけるテンプレート登録処理の一例を示す図である。本例は、ユーザCが、ClientPC12のブラウザを介して本文書管理システムにアクセス(ログイン)し、文書のテンプレートを登録する例である。
図8は、本実施形態を示す文書管理システムにおける第2のデータ処理手順の一例を示すフローチャートである。本例は、本システムにユーザがログインして、ユーザ特性を登録する処理例である。なお、S200〜S208の各ステップは、WebアプリサーバPC20のメイン制御部200が文書管理サーバPC30を制御することで実現される。より具体的には、WebアプリサーバPC20、文書管理サーバPC30が備えるCPU100が図3に示す制御プログラムを実行することで実現される。
S200において、ユーザCがClientPC12のブラウザを介して本文書管理システムにログインする。ログイン処理は、図5に詳細を示したログイン処理の流れを示した通りである。
次に、S201において、S200によりブラウザ上に表示されたユーザCのページにて文書登録を実行すると、メイン制御部200は、データ送受信部201を介してテンプレートして登録すべき文書を受信する。続いて、一旦セッション記憶部202においてセッション情報と関連付けて保存する。尚、この文書登録は、例えば、ClientPC12の内部(ローカル)に保存されている文書データをブラウザ経由で登録することになる。
次に、S202において、S201によりセッション記憶部202に保持されている文書に対し、メイン制御部200は文書管理サーバPC40の文書分析部402に指示し、所定の認識処理を実行してオブジェクト抽出処理を行う。ここで、メイン制御部200は、文書情報の中でオブジェクトを抽出し、抽出されたオブジェクトの属性情報とともに、一時的にセッション記憶部202にその抽出された文書と関連付けて保存する。ここで、属性情報にはそのオブジェクトがテキストなのか画像なのかを示す情報や、ユーザが任意に指定可能な名前などの情報が設定される。加えて、後述するようなプログラムも属性情報としてオブジェクトに設定することができる。
なお、オブジェクト抽出とは、文書の各ページ内を解析し、領域分割を行う既知の技術で構わない。具体的な領域分離の例としては、テキストの固まりが段落毎に分離されたり、所定の画像、図、表の部分が分離されたりしても良い。
また、領域分割の粒度は自動的に決定されても構わないし、ユーザが範囲指定する、もしくは自動的に領域分割された結果をユーザに提示して、ユーザが修正しても構わない。
次に、S203において、S201によりセッション記憶部202に保持されている文書に対し、メイン制御部200はワークフローを実現するためのテンプレートとして登録することをユーザCが要求したかどうかを判断する。なお、この要求は、S200により表示されたユーザCのページにて文書登録を実行する際に、テンプレートして保存することを指示しても良いし、それ以外の手段でも構わない。ここで、テンプレートとして登録することをユーザCが要求していないとメイン制御部200が判断した場合は、S208へ進む。
一方、S203で、テンプレートとして登録することをユーザCが要求しているとメイン制御部200が判断した場合は、S204において、メイン制御部200は、WebUI生成部203に依頼し、テンプレートに対するアクション登録ページの生成を行う。
続いて、データ送受信部201を介して、本文書管理システムのアクション登録ページをClientPC12にレスポンスとして返し、ClientPC12のブラウザに表示する。なお、図示しないアクション登録ページの一例としては、S202により文書のページ内から抽出されたオブジェクトの一覧を表示し、ユーザがそれらオブジェクトの選択、登録指示などができる形態であればよい。
次に、S205において、S203によりClientPC12のブラウザに表示されたアクション登録ページをユーザCが操作し、文書のページ内から抽出されたオブジェクトに対して何らかのアクションを指定しているかをメイン制御部200が判断する。ここで、抽出されたオブジェクトに対してアクションを指定していないとメイン制御部200が判断した場合は、S207へ進む。
一方、S205でユーザCが文書から抽出されたオブジェクトに対してアクションを指定しているとメイン制御部200が判断した場合は、メイン制御部200は、データ送受信部201を介してユーザCの指示を受信する。そして、S206で、メイン制御部200は、プログラム制御部405に指示し、ユーザCの指示を実行するためのプログラムをプログラム記憶部406より読み出し、後述するオブジェクトの属性情報1102に埋め込む。そして、S207で、メイン制御部200は上記したプログラムが埋め込まれたオブジェクトをテンプレートとしてセッション記憶部202に保存する。
なお、属性情報1102に埋め込まれたプログラムの例としては、「上司にメールにて通知する」、「他の文書を作成/起票する」などのワークフローを実現するためのアクションとなる。なお、本例は、アクションの一例であって、これらはワークフローを実行するユーザの環境に適応したものとなるため、これらに限定されるものではない。
図9は、本実施形態を示す文書管理システムにおける文書のページ内から抽出されたオブジェクトに対してアクションを指定した結果の一例を示す図である。なお、ここで、オブジェクトは、S202で実行される処理で抽出される。
図9において、文書データ1000に対して、S202より抽出された各オブジェクト1011〜1020が存在し、オブジェクト1011〜1014までは署名欄で、署名欄1011及び署名欄1012に署名の印影1030及び印影1031が存在していることを表す。
署名欄1011のオブジェクトは、文書内の位置を示す位置情報1100、オブジェクトの実際のデータ1101、及び属性情報1102から構成される。属性情報1102に、ユーザCが指定したアクションを実行するプログラムが埋め込まれるが、それ以外の情報が埋め込まれても構わない。
なお、オブジェクトのデータ1101は、イメージ、図、表、テキストなど、どのような情報であっても構わない。また、オブジェクトの構成は、この形式に限らず、位置情報1100、オブジェクトのデータ1101、属性情報1102が各々個別に管理されて、それらの関連性を特定できるように保存されていれば良い。
また、S205により、ユーザCはアクションを起す順番を指定できるように構成されていても良い。例えば、文書データ1000においては、オブジェクト1011がアクションを最初に起すオブジェクトであることを属性情報1102に埋め込み、オブジェクト1012がアクションを二番目に起すオブジェクトであることを埋め込むことになる。これにより、ワークフローの各工程(ステップ)を考慮した処理をシーケンシャルに実施できる。つまり、1011から1014までの署名を順に行って本文所の各工程が終了することになる。また、図9で示すように、ある署名用のオブジェクト(1012)に対して署名された際に処理されるそのオブジェクトに埋め込まれたプログラムの内容を、次の承認者への自動メール送信処理とすれば、円滑なワークフローが実行できる。
更に、本実施形態においては、署名欄1011〜1014までに署名がされたことでアクションを実行するが、例えば、文書内の特定のオブジェクト内の修正が行われた場合など、アクションを実行するための判断はこれに限定されない。
次に、S207において、S205によりユーザCがアクションの指定を終えると、メイン制御部200は、セッション記憶部202に一時保存されている全オブジェクトを、文書情報操作部400に指示して文書情報記憶部401にテンプレートとして保存する。
次に、S208において、S201によりセッション記憶部202に保持されている文書を、メイン制御部200は、文書情報操作部400に指示して文書情報記憶部401に保存して、本処理を終了する。なお、この際、S207より保存した文書のテンプレート情報を特定できるIDなどの情報と関連付けて保存する。
[文書作成処理]
本実施形態において、ワークフローを実行するために、文書管理サーバPC40の文書情報記憶部401に文書テンプレートとして保存された文書を用いる。
ユーザAが、ClientPC10のブラウザを介して本文書管理システムにアクセス(ログイン)し、ワークフローを実行するために文書をコピーして作成し、本システムにて登録する。
図10は、本実施形態を示す文書管理システムにおけるテンプレート登録処理の一例を示す図である。本例は、文書管理システムにおける文書作成処理時のワークフローを示す。ここで、ユーザAは、文書作成と署名を行う操作を実行し、ユーザBは文書編集と署名を行う操作を実行する例である。
図11は、本実施形態を示す文書管理システムにおける第3のデータ処理手順の一例を示すフローチャートである。本例は、ユーザAがClientPC10のブラウザを介して本文書管理システムにログインして、文書作成と署名の処理例である。ここで、ログイン処理は、図5に示したログイン処理と同様である。なお、S300〜S304は各ステップを示す。また、各ステップは、WebアプリケーションサーバPC20のメイン制御部200が文書管理サーバPC30を制御することで実現される。より具体的には、WebアプリケーションサーバPC20、文書管理サーバPC30が備えるCPU100が制御プログラムを実行することで実現される。
S300において、ユーザAがClientPC10のブラウザを介して本文書管理システムにログインする。ログイン処理は、図5に示したログイン処理と同様である。
次に、S301において、S300により表示されたユーザAのページにてワークフローを実行するための業務に応じた文書をコピーする。ここで、文書のコピーは、文書管理サーバPC40内での文書のコピーでも良いし、ClientPC10に文書をダウンロードしても良い。本実施形態においては、ClientPC10に文書をダウンロードした場合について述べる。
なお、この際、コピーした文書中に、文書を特定するためのIDなどを追加しても良い。これにより、後述するアクション実行処理時に、前バージョンの文書を検索することが可能となる。
メイン制御部200は、文書情報操作部400に指示して文書情報記憶部401よりユーザAが所望する文書を取得する。続いて、データ送受信部201を介して、文書をClientPC10に送信する。
なお、メイン制御部200は、セッション記憶部202においてセッション情報と関連付けて文書の情報、及び文書に関連付けられた文書のテンプレート情報を保存しておいても良い。この場合、ユーザAが同一セッション中に文書を登録した場合、文書検索部403、および文書比較部404を介して対応する文書を文書情報記憶部401から取り出す処理を省略することが可能となる。
次に、S302において、S301によりClientPC10に送信された文書を元に、ユーザAは、文書に必要となる情報を記載して作成し、文書内の署名欄に署名をする。なお、署名は、印影データを付与する、もしくは、ユーザAの名前を記載しても良く、その手段を限定するものではない。なお、印影データは、ClientPC10で管理されるものであっても、ユーザ情報記憶部301で管理されるものであってもよい。
次に、S303において、S302によりユーザAが作成した文書を、本文書管理システムに登録する。具体的には、メイン制御部200は、データ送受信部201を介して文書を受信し、一旦セッション記憶部202においてセッション情報と関連付けて保存する。
次に、S304において、メイン制御部200がセッション記憶部202に保存した文書を元に、メイン制御部200はアクションを実行して、本処理を終了する。なお、S304におけるアクション実行処理の詳細については後述する。
[文書編集処理]
図12は、本実施形態を示す文書管理システムにおける第4のデータ処理手順の一例を示すフローチャートである。本例は、図10に示したユーザBがClientPC11のブラウザを介して本文書管理システムにログインして、文書編集と書名を行う処理例である。より具体的には、ワークフローを実行するために文書を取得して編集し、本システムにて登録する処理例である。ここで、ログイン処理は、図5に示したログイン処理と同様である。なお、S400〜S405は各ステップを示す。また、各ステップは、WebアプリサーバPC20のメイン制御部200が文書管理サーバPC30を制御することで実現される。より具体的には、WebアプリサーバPC20、文書管理サーバPC30が備えるCPU100が図3に示した制御プログラムを実行することで実現される。
S400において、ユーザBがClientPC11のブラウザを介して本文書管理システムにログインする。ログイン処理は、図5に示した処理と同様である。
次に、S401において、S400により表示されたユーザBのページにてワークフローを実行するための文書を確認するための通知があるか否かメイン制御部200が判断する。具体的には、図示しないユーザBのページにタスクリスト、もしくは承認待ちの文書一覧などがユーザインタフェース内に存在し、ユーザBが確認すべき文書の情報が記載されている。
ここで、ユーザBへの文書を確認するための通知手段は、上述した以外の手段であっても良い。
例えば、メールにて文書の確認依頼が届き、メール内にはURLなど確認すべき文書を特定するIDが記載されており、ClientPC11のブラウザを介してユーザBが確認すべき文書に直接アクセスしても良い。
次に、S402において、S401により表示されたユーザBのページにてワークフローを実行するための文書を取得する。ここで、文書の取得は、文書管理サーバPC40内での文書のコピーでも良いし、ClientPC11に文書をダウンロードしても良い。本実施形態においては、ClientPC11に文書をダウンロードした場合について述べる。
ここで、メイン制御部200は、文書情報操作部400に指示して文書情報記憶部401よりユーザBが所望する文書を取得する。続いて、データ送受信部201を介して、文書をClientPC11に送信する。
なお、メイン制御部200は、セッション記憶部202においてセッション情報と関連付けて文書の情報、及び文書に関連付けられた文書のテンプレート情報を保存しておいても良い。
この場合、ユーザBが同一セッション中に文書を登録した場合、文書検索部403、および文書比較部404を介して対応する文書を文書情報記憶部401から取り出す処理を省略することが可能となる。
次に、S403において、S402によりWebアプリケーションサーバPC20のメイン制御部200からClientPC11に送信された文書を元に、ユーザBは、文書の記載内容を確認し、必要に応じて編集し、文書内の署名欄に署名をする。
なお、署名は、印影データを付与する、もしくは、ユーザBの名前を記載しても良く、その手段を限定するものではない。
次に、S404において、S403によりユーザBがClientPC11を用いて編集した文書を、本文書管理システムに登録する。具体的には、メイン制御部200は、データ送受信部201を介して文書をClientPC11より受信し、一旦セッション記憶部202においてセッション情報と関連付けて保存する。
次に、S405において、S404によりメイン制御部200がセッション記憶部202に保存した文書を元に、メイン制御部200はアクションを実行して、本処理を終了する。なお、S405にアクション実行処理の詳細については後述する。
[アクション実行処理]
図13は、本実施形態を示す文書管理システムにおける第5のデータ処理手順の一例を示すフローチャートである。本例は、S405に関わるアクション実行処理例である。本例は、ユーザが、ClientPCのブラウザを介して本文書管理システムにアクセス(ログイン)し、ワークフローを実行するために文書を本システムにて登録した際、文書内の変更があったオブジェクトの属性情報に埋め込まれたアクションを実行する処理例である。これにより、ワークフローの次の工程に進むことができる。
なお、S1001〜S1017は各ステップを示す。また、各ステップは、WebアプリサーバPC20のメイン制御部200が文書管理サーバPC30を制御することで実現される。より具体的には、WebアプリサーバPC20、文書管理サーバPC30が備えるCPU100が図3に示した制御プログラムを実行することで実現される。
図14は、本実施形態を示す文書管理システムにおけるアクション実行処理の例を示す図である。以下、オブジェクト間の比較を示す一例について説明する。
S1001において、メイン制御部200は、セッション記憶部202に保持されているユーザが登録した文書に対する分析を文書分析部402に指示し、それによりオブジェクト抽出を行う。オブジェクト抽出されたデータは、セッション記憶部202に一時的にその文書と関連付けて保存する。
図14に示すように、文書2100(“Version n”)、及び抽出されたオブジェクト2111〜2120がセッション記憶部202に一時的に保存される。
次に、S1002において、S1001によりセッション記憶部202に保存された文書に対し、メイン制御部200は比較対象となる同一文書の前バージョン(Version n−1)が存在するか否かを判断する。
具体的には、文書管理サーバPC40は、同一セッション中に文書が登録された場合、セッション記憶部202に保存されている元の文書の情報と、S1001により保存されたユーザが登録した文書を用いて、文書比較部404にて前バージョンか否かを判断させる。なお、文書比較部404にて両文書に含まれる文書を特定するIDが存在するのであれば、それを比較して判断しても良いし、文書の内容から判断しても良い。また、ユーザが本文書管理システムに文書を登録する際に、更新対象となる文書を指定しても良い。
ここで、同一セッション中に文書が登録されていないとメイン制御部200が判断した場合、メイン制御部200は、文書検索部403に指示して、文書情報記憶部401から該当の文書を検索し、文書比較部404にて前バージョンであるか否かを判断する。
次に、S1003において、S1002によりユーザが登録した文書の前バージョンが存在しないとメイン制御部200が判断した場合、メイン制御部200は、文書の最初のバージョンとして文書情報操作部400に指示して、文書情報記憶部401に保存する。この際、S1001により抽出された全オブジェクトも、文書情報記憶部401に保存する。
次に、S1004において、メイン制御部200は、S1003により文書情報記憶部401に保存された文書に対応するテンプレートを検索する。次に、S1005で、メイン制御部200は、セッション記憶部202に保存した文書とS1001により抽出されたオブジェクトの情報を基に、文書検索部403に指示して、文書情報記憶部401に文書のテンプレートが存在するか否かを判断する。更に、文書比較部404にて文書のテンプレートか否かを判断する。
具体的には、文書比較部404にて文書にテンプレートを特定するIDが存在するのであれば、それを比較して判断しても良いし、S1001により抽出されたオブジェクトの組合せ、もしくは文書の内容を比較して判断しても良い。また、ユーザが本文書管理システムに文書を登録する際に、対象となるテンプレートを指定しても良く、テンプレートを検索するための手段を限定しない。
次に、S1005において、S1004によりセッション記憶部202に保存された文書に対応するテンプレートが存在しないとメイン制御部200が判断した場合、アクションを実行することなく、本処理を終了する。
一方、S1005において、セッション記憶部202に保存された文書に対する前バージョンが存在すると判断した場合、S1006で、メイン制御部200は、文書の比較対象として前バージョンの文書を構成するオブジェクトの一覧を取得する。より詳細には、メイン制御部200は、文書情報操作部400に指示し、文書情報記憶部401より前バージョンの文書を構成するオブジェクトの一覧を取得し、セッション記憶部202に保存する。
本実施形態では、図14に示すように、文書の比較対象として全バージョンの文書2000(“Version n−1”)、及びオブジェクト抽出されたデータ2011〜2020がセッション記憶部202に一時的に保存される。
また、S1004及びS1005により文書に対応するテンプレートが存在した場合、文書の比較対象としてテンプレートを構成するオブジェクトの一覧を取得する。より詳細には、メイン制御部200は、文書情報操作部400に指示し、文書情報記憶部401よりテンプレートを構成するオブジェクトの一覧を取得し、セッション記憶部202に保存する。
図14において、文書の比較対象としてテンプレートの文書2000(“Version n−1”)、及びテンプレートを構成するオブジェクトの一覧(オブジェクト2011〜2020)がセッション記憶部202に一時的に保存される。
次に、S1007において、S1001によりセッション記憶部202に保存された文書2100から抽出されたオブジェクト2111〜2120と、S1006により取得した比較対象となる文書2000の全オブジェクト2011〜2020との比較を終えたか否かをメイン制御部200が判断する。ここで、比較が終わっていないとメイン制御部200が判断した場合、S1008において、メイン制御部200は、文書2100から抽出されたオブジェクト2111〜2120のうち、比較を終えていないオブジェクトを選択する。続いて、メイン制御部200は、S1006により比較対象となる文書2000から抽出されたオブジェクト2011〜2020より比較対象を選択し、文書比較部404に指示して両オブジェクトのデータの比較を行い、両オブジェクトに差異があるかどうかのオブジェクト判断処理を実行する。
なお、比較対象となる文書2000から比較対象となるオブジェクトを選択する際には、比較を行うオブジェクトの文書における位置情報から選択されても良いし、それ以外の方法であっても構わない。また、両オブジェクト間のデータの比較は、各オブジェクトの実データのHash値を計算して比較しても良いし、それ以外の方法であっても構わない。
次に、S1009において、S1008により現在のバージョンと前のバージョンとの比較を行った両オブジェクト間に変化しているオブジェクトがあるか否かをその差分から確認し、差分が無いとメイン制御部200が判断した場合は、S1007に戻り、文書2100から抽出された全オブジェクト2111〜2120の比較を終えたか否かメイン制御部200が判断する。
ここで、図14を用いて、両オブジェクト間に差分があるか否かを判断する手段の一例を説明する。
文書2100のオブジェクト2111〜2114が署名欄とした場合、オブジェクト2111〜2114には、予め署名データ2130、及び署名データ2131のみが許可された差分として登録されている。そこで、予め署名データ2130、及び署名データ2131のみ以外は差分ではないと判断しても良い。
また、差分を見るオブジェクトがテキストである場合、文字列の比較を行い、差分があると判断しても構わない。なお、差分を判断する手段としては、これらに限らない。
次に、S1010において、S1009により両オブジェクトに差分があるとメイン制御部200が判断した場合、メイン制御部200は、差分のあったオブジェクトを、文書情報操作部400に指示して、“Version n”のバージョン管理対象として、セッション記憶部202に一時保管する。このように変化のあったオブジェクトを報知することが可能となる。
より詳細には、メイン制御部200は、セッション情報記憶部202に保存された文書2100の差分のあったオブジェクトデータをセッション情報記憶部202に一時保存する。ここで差分のあったオブジェクト、図14に示す例では、オブジェクト2112とオブジェクト2131の合成をオブジェクト2200とし、また、オブジェクト2116をオブジェクト2201としてセッション情報記憶部202に一時保存する。これらが差分情報としてセッション情報記憶部202に一時保存される。このように本実施形態では、変更されたオブジェクトを含む同一ページ内のすべてのオブジェクトを順次記憶させるのではなく、差異が認められたオブジェクトのみを順次追記する形式としてオブジェクトデータを管理している。これにより、文書情報記憶部401に記憶させるオブジェクトデータの操作履歴情報量を抑えることができる。さらに、メイン制御部200は、差分を圧縮して文書情報記憶部401に記憶させるように制御してもよい。
次に、S1011において、S1007により全オブジェクトの比較を終えた場合、メイン制御部200は、セッション記憶部202に差分オブジェクトが“Version n”のバージョン管理対象として一時保存されているか判断する。ここで、差分オブジェクトが存在しないメイン制御部200が判断した場合、S1017においてエラー通知を行い、本処理を終了する。
一方、S1011によりバージョン管理対象として差分オブジェクトが一時保存されているとメイン制御部200が判断した場合、S1012において、差分オブジェクトの属性情報に、アクションを実行するためのプログラムが埋め込まれているか否かをメイン制御部200が判断する。ここで、アクションを実行するためのプログラムが埋め込まれていないとメイン制御部200が判断した場合は、S1015へ進む。
一方、S1012で、差分オブジェクトの属性情報にプログラムが埋め込まれているとメイン制御部200が判断した場合、S1013においてそのプログラムに従いアクションを実行して良いか否かをメイン制御部200が判断する。
例えば、先述したテンプレート登録処理において、ユーザCが文書2100のオブジェクトのアクションを起す順番を指定していた場合、順番通りにアクションが実行されているか否かをメイン制御部200が判断する。ここで、プログラムに従いアクションを実行して良いか否かは、他の要因に従い判断しても構わない。
一方、S1013で、プログラムに従いアクションを実行しないとメイン制御部200が判断した場合、S1017においてエラー通知を行い、本処理を終了する。
一方、S1013によりプログラムに従いアクションを実行するとメイン制御部200が判断した場合、S1014へ進む。
そして、S1014で、メイン制御部200は、プログラム制御部405に埋め込まれたプログラムの情報を渡し、アクションを実行する。プログラム制御部405は、プログラムの内容に従い、必要に応じてユーザ通知部407に指示してユーザに通知する。
ここで、実行するアクションの一例としては、ユーザの上司への電子メール送信等を用いた通知、または他の文書を起票/作成などであってもよい。ここで、埋め込まれたプログラムの内容が“上司へのメール通知”である場合、図6に示したユーザ特性テーブルより、操作しているユーザの上長情報を抽出することで、“上司へのメール通知”と言うアクションを実現できる。具体的には、図9のように属性情報1102の一部としてプログラムが記述されている。<method>の欄の宛先指定の部分にユーザの上長を示す変数を指定しておくことで、プログラム動作時に処理ユーザの上長を承認者として上記のように自動選択し、電子メール送信が実行される。ここで、この送信メールの内容には、本処理対象の文書が添付されるといったことも可能である。
なお、それ以外の手段でアクションを実現しても構わない。本実施形態では、ワークフローが実行されるユーザ毎に、作成あるいは編集された文書情報を監査するユーザのレベルが順次付けられてユーザ情報が管理されている。
更に、既に一度アクションを実行したプログラムが埋められたオブジェクトが、再度“Version n”のバージョン管理対象として差分オブジェクトが一時保存される場合もある。こういった場合には、上長からの作業工程の差戻し(修正依頼)として判断するといったことも可能となる。この場合、差戻し時のアクションとして、文書作成ユーザに対して、電子メール送信にて差し戻しを通知しても良い。ここで差し戻されたユーザが同じ文書を用いて、再度ワークフローの作業工程を進めると、当然差し戻されて、修正を加えて工程が進んだことも履歴として、後述するように管理できる。
ここで、差し戻しを判定するルールとは、例えば、文書2100の署名欄2111に存在する署名データ2130が削除(また、取消し線の追加など)された場合などを意味する。なお、それ以外のルールでも、差戻し処理が実行されてもよい。
次に、S1015において、S1010により“Version n”のバージョン管理対象として一時保存された全差分オブジェクトに対して、データのHash値を算出し、各オブジェクトの属性情報に埋め込む。
これにより、各オブジェクトのデータの内容に改ざんが無いことを監査時など後から証明することが可能となる。更に、データのHash値に署名を施し、署名されたデータを各オブジェクトの属性情報に埋め込むことで、より確かな情報として監査時に利用できる。
なお、全差分オブジェクトに対して、データのHash値を埋め込む必要はなく、少なくともプログラムが埋め込まれた差分オブジェクトに対してデータのHash値を埋め込むだけでも構わない。
このようにプログラムが埋め込まれた差分オブジェクトに対してデータのHash値を埋め込むことで、後から既にアクションが実行済みであることを証明/判断する手段として用いることができる。
なお、アクションが実行済みであるか否かを判断するための手段として、Hash値が埋め込み以外の手段で判断できても構わない。
次に、S1016において、メイン制御部200は、S1015によりHash値を埋め込まれた差分オブジェクトを、文書情報操作部400に指示して、“Version n”としてバージョン管理し、文書情報記憶部401に保存して、本処理を終了する。このように本実施形態では、差異のあったオブジェクトの差分が版別(バージョン別)に管理されている。このため、図15に示すように、1つの文書に対するワークフローを実行する場合に、属性情報に埋め込まれた情報を解析して実行される毎の操作履歴をユーザの要求に応じて提示することができる。しかも、ワークフローの実行に伴って差異が発生しているオブジェクトデータのみを保持するため、文書情報記憶部401の容量に占める履歴情報領域を抑えることが可能である。
より詳細には、メイン制御部200は、セッション情報記憶部202に保存された文書2100の差分のあったオブジェクトデータ(ここでは、オブジェクト2112とオブジェクト2131の合成をオブジェクト2200、オブジェクト2117をオブジェクト2201として)を、文書情報記憶部401に保存する。
図15は、本実施形態を示す文書管理システムにおけるユーザインタフェースの一例を示す図である。本例は、ワークフローを実現した結果、監査の際に文書作成が完了するまでの各工程(バージョン)で、どのような修正/変更が行われたのか確認するためのユーザインタフェースの一例である。ユーザは、図15に示すユーザインタフェースにより各工程(バージョン)において、修正/変更されたオブジェクトの情報を一覧で確認でき、また各工程(バージョン)の文書の内容を確認することもできる。ここで、上記ユーザインタフェースは、メイン制御部200から操作するいずれかのClientPCに提示され、当該提示されたユーザインタフェースがClientPCのブラウザを介して表示される。より具体的には、図15においては、ユーザによってVer2の履歴を選択された場合の文書のプレビューを行っており、オリジナル文書にその工程(バージョン)の差分オブジェクトで置換したものをプレビューしている。
なお、本実施形態においては、文書2100の署名欄2111〜2114のオブジェクトの属性情報にアクションを実行するためのプログラムを埋める場合について説明した。
しかしながら、それ以外の手段でアクションを実行しても構わない。例えば、予め署名データ2130、及び2131をオブジェクトとして登録しておき、署名データのオブジェクトの属性情報にアクションを実行するためのプログラムを埋め込むことで、アクションを実行しても構わない。
〔第2実施形態〕
上記第1実施形態では、文書管理システムに文書を登録する際、ClinetPCを利用する場合について説明したが、複合デバイスにて文書をスキャンして文書管理システムに登録するワークフローにも本発明を適用することができる。以下、その実施形態について説明する。
[システム構成]
図16は、本実施形態に係る文書管理システムの構成を説明する図である。本例は、ユーザA、及びその他のユーザが画像処理装置(複合デバイス50、51)に表示されるブラウザを介して文書管理システムに接続可能に構成された例である。
ここで、文書管理システムの構成は、第1実施形態におけるWebアプリケーションサーバPC20と、ユーザ管理サーバPC30と、文書管理サーバPC40がネットワークを介して接続されている。
なお、WebアプリケーションサーバPC20、ユーザ管理サーバPC30、及び文書管理サーバPC40は、別々に配置されている構成としているが、一つのPCにおいて構成されても構わない。
また、本実施形態に係る文書管理システムは、ユーザA、及びその他のユーザがブラウザを介してアクセスする構成としているが、図示しない専用のクライアントアプリケーションを複合デバイス50、51に配置し、それを操作する構成であっても構わない。
この場合、WebアプリケーションサーバPC20ではなく、文書管理サーバPC40と専用クライアントアプリケーションが通信する構成でも構わない。
なお、複合デバイス16は、後述するように、印刷された原稿をスキャンして読み取るスキャナ部と、スキャナ部から読み取られた画像データ、あるいは外部装置から受信する印刷データを印刷するプリンタ部と、外部装置とネットワークを介して通信する通信部を少なくとも備える。ここで、複合デバイス16には、Webブラウザ機能を備え、WebアプリケーションサーバPC20が提供するユーザインタフェースを表示部(不図示)に表示することが可能に構成されている。
[文書作成処理]
第2の実施形態おいて、ワークフローを実行するために、文書管理サーバPC40に文書テンプレートとして保存された文書を用いる必要がある。
そこで、ユーザAが、複合デバイス50のブラウザを介して本文書管理システムにアクセス(ログイン)し、ワークフローを実行するために文書を印刷して作成し、本システムにて登録する。
図17は、本実施形態を示す文書管理システムにおける第6のデータ処理手順の一例を示すフローチャートである。本例は、ユーザAが、複合デバイス50のブラウザを介して本文書管理システムにアクセス(ログイン)し、ワークフローを実行するために文書テンプレートを印刷して作成し、本システムにて登録する処理例である。
なお、S500〜S504は各ステップを示す。また、各ステップは、WebアプリサーバPC20のメイン制御部200が文書管理サーバPC30を制御することで実現される。より具体的には、WebアプリサーバPC20、文書管理サーバPC30が備えるCPU100が制御プログラムを実行することで実現される。
S500において、ユーザAが複合デバイス50のブラウザを介して本文書管理システムにログインする。なお、ログイン処理は、図5に示した処理と同様である。
次に、S501において、S500により表示されたユーザAのページにてワークフローを実行するための業務に応じた文書テンプレートを複合デバイス50から印刷する。なお、この際、印刷した文書中に、文書を特定するための文書IDなどを追加しても良い。これにより、後述するアクション実行処理時に、前バージョンの文書を検索することが可能となる。
ここで、メイン制御部200は、文書情報操作部400に指示して文書情報記憶部401よりユーザAが所望する文書テンプレートを取得する。続いて、データ送受信部201を介して、文書テンプレートを複合デバイス50に送信、印刷する。なお、メイン制御部200は、セッション記憶部202においてセッション情報と関連付けて文書テンプレートの情報を保存しておいてもよい。この場合、ユーザAが同一セッション中に文書を登録した場合、文書検索部403、および文書比較部404を介して対応する文書を文書情報記憶部401から取り出す処理を省略することが可能となる。
次に、S502において、S501により複合デバイス50から印刷された紙文書を元に、ユーザAは、紙文書に必要となる情報を記載して作成し、紙文書内の署名欄に署名をする。なお、署名は、例えばハンコを押す、もしくは、ユーザAの名前を記載するなどの手段がある。
次に、S503において、S502によりユーザAが作成した紙文書を、複合デバイス50のスキャナ部にてスキャンして、本文書管理システムに登録する。ここで、メイン制御部200は、データ送受信部201を介して紙文書の画像データを複合デバイス50、51より受信し、一旦セッション記憶部202においてセッション情報と関連付けて保存する。
次に、S504において、S503によりメイン制御部200がセッション記憶部202に保存した文書の画像データを元に、メイン制御部200はアクションを実行して、本処理を終了する。なお、アクション実行処理は、第1実施形態に係る文書管理システムのアクション実行処理(図13)と同じである。
[文書編集処理]
以下、図18に示す文書管理システムを用いて、第2実施形態おける文書編集処理について説明する。
図18は、本実施形態に係る文書管理システムにおける文書編集処理を説明する図である。本例、ユーザBが、複合デバイス51のブラウザを介して本文書管理システムにアクセス(ログイン)し、ワークフローを実行するために文書を印刷して編集し、本システムにて登録する例である。
図19は、本実施形態を示す文書管理システムにおける第7のデータ処理手順の一例を示すフローチャートである。本例は、ユーザBが、複合デバイス51のブラウザを介して本文書管理システムにアクセス(ログイン)し、ワークフローを実行するために文書を印刷し、さらに、文書編集を行い、本システムにて登録する処理例である。
なお、S600〜S605は各ステップを示す。また、各ステップは、WebアプリサーバPC20のメイン制御部200が文書管理サーバPC30を制御することで実現される。より具体的には、WebアプリサーバPC20、文書管理サーバPC30が備えるCPU100が制御プログラムを実行することで実現される。
S600において、ユーザBが複合デバイス51のブラウザを介して本文書管理システムにログインする。ログイン処理は、図5に示した処理と同様である。
次に、S601において、S600により表示されたユーザBのページにてワークフローを実行するための文書を確認するための通知があるか否かを判断する。具体的には、図示しないユーザBのページにタスクリスト、もしくは承認待ちの文書一覧などがユーザインタフェース内に存在し、ユーザBが確認すべき文書の情報が記載されている。
ここで、ユーザBへの文書を確認するための通知手段は、上述した以外の手段であっても良い。例えば、メールにて文書の確認依頼が届き、メール内には確認すべき文書を特定するIDが記載されており、複合デバイス51のブラウザを介してユーザBが確認すべき文書にアクセスしても良い。
次に、S602において、S601により表示されたユーザBのページにてワークフローを実行するための文書を複合デバイス51のプリンタ部で印刷する。具体的には、メイン制御部200は、文書情報操作部400に指示して文書情報記憶部401よりユーザBが所望する文書を取得する。続いて、データ送受信部201を介して、文書を複合デバイス51のプリンタ部から印刷する。
なお、メイン制御部200は、セッション記憶部202においてセッション情報と関連付けて文書の情報、及び文書に関連付けられた文書のテンプレート情報を保存しておいてもよい。
この場合、ユーザBが同一セッション中に文書を登録した場合、前記文書検索部403、および文書比較部404を介して対応する文書を文書情報記憶部401から取り出す処理を省略することが可能となる。
次に、S603において、S602により複合デバイス51から印刷した文書を元に、ユーザBは、文書の記載内容を確認し、必要に応じて編集し、文書内の署名欄に署名をする。なお、署名は、ハンコを押す、もしくは、ユーザBの名前を記載するなどしてもよい。
次に、S604において、S603によりユーザBが編集した文書を、複合デバイス50のスキャナ部にてスキャンして、本文書管理システムに登録する。具体的には、メイン制御部200は、データ送受信部201を介して文書を受信し、一旦セッション記憶部202においてセッション情報と関連付けて保存する。
次に、S605において、S604によりメイン制御部200がセッション記憶部202に保存した文書を元に、メイン制御部200はアクションを実行して、本処理を終了する。なお、S605の処理は、第1実施形態に係る文書管理システムのアクション実行処理(図13)と同じである。
なお、第1実施形態に係る文書管理システムのアクション実行処理フローのS1008において、比較対象である両オブジェクト間のデータの比較は、各オブジェクトの実データのHash値を計算して比較しても良いとしている。
しかしながら、第2の実施形態では他の手段の方が望ましい。具体的には、紙文書をスキャンして得られた画像データに対してオブジェクト分割するため、画像の特徴量による比較や、パターンマッチングによる類似度などを用いたほうが良い。それら以外の手段であっても構わない。
上記第2実施形態により、ユーザは紙文書を使ってもワークフロー機能を利用することが可能となる。
また、第1及び第2実施形態に係る文書管理システムでは、各ユーザがClientPCのみ、もしくは複合デバイスのいずれか一方のみを用いた場合について説明した。
しかしながら、本発明の第1及び第2の実施形態に係る文書管理システムでは、ClientPC、及び複合デバイスの両方を各工程で利用しても構わない。
図20は、本実施形態を示す文書管理システムと通信する画像処理装置(複合デバイス)の一例を示す図である。
図20において、2105はデバイス全体を制御するコントローラ部である。
コントローラ部2105において、2101はCPUであり、このコントローラの制御および演算処理等を行うものである。2102はROMであり、システム起動プログラムの情報等の記憶領域である。2103はRAMであり、使用制限のないデータ記憶領域であり、2104はハードディスクあるいはSRAMなど不揮発性記憶装置である。
なお、RAMは2103は、オペレーティングシステムや通信制御およびエンジン制御などのプログラムがロードされ、実行される領域である。106はスキャナ部であり、画像読み取り動作をする。
2107はプリンタ部であり、コントローラ部2105の制御のもとで印刷動作をする。2108は操作部であり、ユーザからの指示を受け付ける。ここで、操作部は所定の表示を行ったりするものであってもよい。
2109は通信部であり、ネットワーク通信制御を行うものであり、他のデバイスや図1に示したWebアプリケーションサーバPC20、ClientPC10〜12との通信が可能である。2110はシステムバスであり、上述の構成要素間のデータの通路となるべきものである。
〔第3実施形態〕
以下、図21に示すメモリマップを参照して本発明に係る文書管理システムで読み取り可能なデータ処理プログラムの構成について説明する。
図21は、本発明に係る文書管理システムで読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図5、図8、図11〜図13、図17、図19に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。