以下、図面を参照しながら、本発明の実施形態の一例について説明する。
図1は、本発明の情報処理システムのシステム構成の一例を示す図である。本発明の情報処理システムは、画像処理サーバ101(情報処理サーバ)、文書管理サーバ102、クライアント端末103がLAN104(Local Area Network)等のネットワークを介して、相互にデータ通信可能に接続されている。図1のネットワーク上に接続される各種端末あるいはサーバの構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
画像処理サーバ101は、文書管理サーバ102の代わりに文書管理サーバ102に記憶された文書データの編集可否を制御するサーバである。画像処理サーバ101は、文書管理サーバ102に記憶された文書データを取得して、ページ単位に分割し、ページ単位で排他制御が実行できるよう、編集可否を制御する。
文書管理サーバ102は、当該文書管理サーバ102に記憶された文書データの編集可否を制御するサーバである。複数のユーザが文書データを編集できるよう、共有された文書データに対する編集指示を受け付けており、編集指示があると他のユーザが編集できないように制御する(チェックアウトする)。また、チェックアウトした文書データの登録指示があったら、文書データのバージョンを上げて、当該文書データを古い文書データに代わって、別ファイルの最新版として保存する。設定によっては別ファイルとして保存するのではなく、上書き保存としてもよい。更には、当該文書データを他のユーザが編集できるように制御する(チェックイン)。
クライアント端末103は、画像処理サーバ101や文書管理サーバ102に接続し、文書データの編集や登録を実行する装置である。ユーザは、クライアント端末103を介して、文書データのチェックアウトやチェックインを実行することが可能である。
図2は、本発明の実施形態における画像処理サーバ101、文書管理サーバ102、クライアント端末103のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボードやマウス等のポインティングデバイスといった入力デバイス209からの入力を制御する。
ビデオコントローラ(VC)206は、ディスプレイ210等の表示器への表示を制御する。表示器はCRTや液晶ディスプレイでも構わない。
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明の各種装置及びサーバが後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211(記憶手段)に格納されている。
次に、画像処理サーバ101、文書管理サーバ102、クライアント端末103のモジュール構成を示す機能構成図について、図3を用いて説明する。尚、図3の各種端末あるいはサーバのモジュール構成は一例であり、用途や目的に応じて様々な構成例がある。
画像処理サーバ101は、通信制御部311、リクエスト処理部312、画面生成部313、文書一時保管部314、文書データ操作部315、編集制御部316を備える。
通信制御部311は、文書管理サーバ102やクライアント端末103と相互に情報を送受信するための機能部である。リクエスト処理部312は、クライアント端末103からのリクエストを処理するための機能部である。より具体的には、文書データのチェックアウト/チェックイン、画面取得要求等である。
画面生成部313は、リクエスト処理部312が受け付けたクライアント端末103からのリクエストに応じて、クライアント端末103で表示可能な画面を生成する機能部である。文書一時保管部314は、リクエスト処理部312が受け付けたクライアント端末103からのリクエストに応じて、チェックアウトの指示がなされた文書データを文書管理サーバ102から取得し、画像処理サーバ101に一時保管するための機能部である。
文書データ操作部315は、リクエスト処理部312が受け付けたクライアント端末103からのリクエストに応じて、文書管理サーバ102から取得した文書データをページ単位となるよう分割、またはページ単位に分割された文書データを結合するための機能部である。編集制御部316は、リクエスト処理部312が受け付けたクライアント端末103からのリクエストに応じて、分割されたページ単位で編集の可否を制御する機能部である。
文書管理サーバ102は、通信制御部321、編集制御部322、属性情報更新部323、画面生成部324を備える。
通信制御部321は、画像処理サーバ101やクライアント端末103と相互に情報を送受信するための機能部である。編集制御部316は、文書データの編集可否を制御する機能部である。属性情報更新部323は、画像処理サーバ101や文書管理サーバ102で実行されたチェックアウト/チェックインに応じて、チェックアウト/チェックインしているユーザやページ数等を属性情報として記憶する機能部である。画面生成部324は、クライアント端末103からのリクエストに応じて、クライアント端末103で表示可能な画面を生成する機能部である。
クライアント端末103は、通信制御部331、表示制御部332を備える。通信制御部331は、画像処理サーバ101や文書管理サーバ102と相互に情報を送受信するための機能部である。表示制御部332は、画像処理サーバ101、文書管理サーバ102で生成された画面をクライアント端末103のディスプレイ210に表示させる機能部である。
次に、本発明の実施形態における画像処理サーバ101を介して、文書管理サーバ102に記憶された文書データをチェックアウトする一連の処理について、図5に示すフローチャートを用いて説明する。
まず、ステップS401では、クライアント端末103のCPU201は、文書編集画面の取得要求を画像処理サーバ101に送信する。ステップS402では、クライアント端末103のCPU201は、クライアント端末103から送信された文書編集画面の取得要求を受信し、ステップS403では、当該文書編集画面を生成する。このとき、画像処理サーバ101は、画像処理サーバ101に記憶された文書一覧テーブル500(図5参照)に基づいて、文書編集画面を生成する。
文書一覧テーブル500は、画像処理サーバ101の外部メモリ211等に記憶されており、文書管理サーバ文書ID501、ファイル名502から構成されている。文書管理サーバ文書ID501は、文書管理サーバ102で管理されている文書データごとに、当該文書管理サーバ102において一意に割り振られた識別情報である。ファイル名502は、当該文書データのファイル名を示す情報である。
文書一覧テーブル500に格納される情報は、文書管理サーバ102から取得する。定期的に文書管理サーバ102に対して文書管理サーバ文書ID501とファイル名502に相当する情報の取得リクエストを送信し、それに応じて送信されてくる情報を文書一覧テーブル500に格納している。すなわち、文書管理サーバ102に記憶されている文書データの一覧が文書一覧テーブル500で管理されていることになる。
文書編集画面を生成すると、図6に示すような画面となる。文書編集画面600は、文書一覧テーブル500から取得したファイル名502が一覧表示される文書一覧601、チェックアウトするページ数の指定を受け付ける編集対象ページ602、そして編集を開始する編集開始ボタン603を備えている。
文書編集画面600が生成されると、ステップS404では、画像処理サーバ101のCPU201は、ステップS403で生成された文書編集画面600をクライアント端末103に送信する。
ステップS405では、クライアント端末103のCPU201は、画像処理サーバ101から送信された文書編集画面600を受信し、ステップS406では、受信した文書編集画面600をクライアント端末103のディスプレイ210に表示する。そして、ユーザからの入力を受け付ける。
ステップS407では、クライアント端末103のCPU201は、文書一覧601で編集を行う文書データのファイル名502が選択され、かつ編集対象ページ602で編集するページ数が指定された状態で編集開始ボタン603が押下されたか否かを判定する。編集開始ボタン603が押下されたと判定した場合には、ステップS408に処理を進める。編集開始ボタン603が押下されていないと判定した場合には、編集開始ボタン603が押下されるまで待機する。
ステップS408では、クライアント端末103のCPU201は、文書編集画面600で指定された文書データのページをチェックアウトするべく、画像処理サーバ101に編集開始指示を送信する。
ステップS409では、画像処理サーバ101のCPU201は、クライアント端末103から送信された編集開始指示を受信する。そしてステップS410では、画像処理サーバ101のCPU201は、指定された文書データのページがチェックアウト可能か否かを判定する。チェックアウト可能か否かは、画像処理サーバ101に記憶された第2の文書属性テーブル800(図8参照)に基づいて判定する。第2の文書属性テーブル800は、画像処理サーバ101で文書データのページをチェックアウトすると生成されるテーブルである。このテーブルでは、どの文書データのどのページがチェックアウトされているのかを管理している。よって、クライアント端末103から要求された文書データのページがチェックアウトされているか否かを確認し、チェックアウトされていなければチェックアウト可能であると判定する。
第2の文書属性テーブル800は、画像処理サーバ101の外部メモリ211等に記憶され、文書ID801、ページ802、チェックアウト状態803、チェックアウトユーザ804、文書管理サーバ文書ID805、ファイル名806から構成される。文書ID801は、画像処理サーバ101で管理されているページごとに、当該画像処理サーバ101において一意に割り振られた識別情報である。ページ802は、分割されたページのページ番号を示す。チェックアウト状態803は、当該ページがチェックアウトされているか否かを示す。「YES」であればチェックアウトされており、「NO」であればチェックアウトされていない。チェックアウトユーザ804はチェックアウトしたユーザのユーザ名を示す。文書管理サーバ文書ID805は、当該ページが構成する文書データの文書管理サーバ文書ID501を示す。ファイル名806は、当該ページが構成する文書データのファイル名502を示す。
すなわち、ユーザから指定された文書データのページのチェックアウト状態803を参照し、1ページも「YES」となっていなければチェックアウト可能である。
チェックアウト可能であると判定した場合には、ステップS412に処理を進め、チェックアウト可能でないと判定した場合には、クライアント端末103にその旨を通知し、ステップS411に処理を進める。
ステップS411では、クライアント端末103のCPU201は、画像処理サーバ101からの通知に応じて、ユーザから指定された文書データのページがチェックアウトできない旨を通知する。通知方法は特に問わない。通知が完了したら、ステップS406に処理を戻す。
ステップS412では、クライアント端末103のCPU201は、ユーザから指定された文書データのページがRAM203等の一時領域に保存されているか否かを判定する。すなわち、すでに分割されたページが存在するか否かを判定する。後述するステップS419において、分割されたページが一時的に保存される。こうしておくことで、再度文書管理サーバ102から文書データを取得して分割することなく、編集を開始できる。一時領域に保存済みであると判定した場合には、ステップS421に処理を進める。一時領域に保存済みでないと判定した場合には、ステップS412に処理を進める。
ステップS413では、画像処理サーバ101のCPU201は、ユーザから編集指示された文書データ(以下、編集対象文書)のチェックアウト要求を文書管理サーバ102に送信する(第1のチェックアウト要求送信手段)。
ステップS414では、文書管理サーバ102のCPU201は、画像処理サーバ101から送信された編集対象文書のチェックアウト要求を受信する。そして、ステップS415では、文書管理サーバ102のCPU201は、編集対象文書をチェックアウトする(第2のチェックアウト手段)。より具体的には、文書管理サーバ102が記憶する第1の文書属性テーブル700(図7参照)に登録されたレコードから対象文書を示すレコードを特定し、当該レコードのチェックアウト状態704を「YES」に変更する。更に、チェックアウトユーザ705を「画像処理サーバ」とする。こうすることで、編集対象文書が文書管理サーバ102において他のユーザから編集されないように制御する。
文書属性テーブル700(図7参照)は、文書管理サーバ102の外部メモリ211等に記憶され、文書管理サーバ文書ID701、バージョン702、ファイル名703、チェックアウト状態704、チェックアウトユーザ705、編集中ユーザ706から構成される。文書管理サーバ文書ID701は、文書管理サーバ102で管理されている文書データごとに、当該文書管理サーバ102において一意に割り振られた識別情報である。バージョン702は、当該文書データの版を示す。ファイル名703は、当該文書データのファイル名を示す情報である。チェックアウト状態704は、当該ページがチェックアウトされているか否かを示す。「YES」であればチェックアウトされており、「NO」であればチェックアウトされていない。チェックアウトユーザ705はチェックアウトしたユーザのユーザ名を示す。編集中ユーザ706は、誰がどのページをチェックアウトしているのかを示す情報である。
チェックアウトが完了したら、ステップS416では、画像処理サーバ101のCPU201は、編集対象文書の取得要求を文書管理サーバ102に送信する(取得要求送信手段)。ステップS417では、文書管理サーバ102のCPU201は、画像処理サーバ101から送信された編集対象文書の取得要求を受信し、ステップS418では、当該編集対象文書を文書管理サーバ102の記憶領域から取得して、画像処理サーバ101に送信する(文書データ送信手段)。
ステップS419では、画像処理サーバ101のCPU201は、文書管理サーバ102から送信された編集対象文書を受信する。そして、ステップS420では、画像処理サーバ101のCPU201は、受信した編集対象文書をページ単位に分割する(文書データ分割手段)。文書データをページ単位に分割する方法は、従来技術を用いるため説明は省略する。本発明では、1ページごとに分割するものとして以下説明を行うが、ユーザから指定されたページ数だけを分割してもよい。分割が完了したら、画像処理サーバ101の一時領域に保存する。
ステップS421では、画像処理サーバ101のCPU201は、画像処理サーバ101に記憶された第2の文書属性テーブル800に編集対象文書に関するレコードを追加する。このとき、ページごとにレコードを作成する。
ステップS422では、画像処理サーバ101のCPU201は、ユーザから指定された編集対象文書のページを、当該ユーザとは異なるユーザによって編集されないよう、当該ページをチェックアウトする(第1のチェックアウト手段)。より具体的には、ユーザから指定されたページのチェックアウト状態803を「YES」とし、チェックアウトユーザ804にユーザのユーザ名を格納する。
ステップS423では、画像処理サーバ101のCPU201は、編集対象文書の属性情報更新要求を文書管理サーバ102に送信する。より具体的には、文書管理サーバ102が記憶する第1の文書属性テーブル700の編集中ユーザ706を更新するよう要求する。編集中ユーザ706には、どのユーザがどのページを編集中であるのかを示す情報が格納される。そのため、画像処理サーバ101に格納された、チェックアウトされたページ802とそれに対応するチェックアウトユーザ804とを送信する。
ステップS424では、文書管理サーバ102のCPU201は、画像処理サーバ101から送信された属性情報の更新要求を受信する。そして、ステップS425では、文書管理サーバ102のCPU201は、編集対象文書の属性情報を更新する。より具体的には、編集対象文書を示すレコードの編集中ユーザ706にどのユーザがどのページを編集中であるのかを示す情報を格納する。
第1の文書属性テーブル700の更新が完了すると、ステップS426では、画像処理サーバ101のCPU201は、ステップS420で分割したページのうち、ユーザから指定されたページを結合して編集用の文書データを生成する。そして、ステップS427では、画像処理サーバ101のCPU201は、ステップS426で結合した文書データをクライアント端末103に送信する。
ステップS428では、クライアント端末103のCPU201は、画像処理サーバ101から送信された指定ページを結合した文書データを受信し、ステップS429では、これを外部メモリ211等に保存する。こうすることで、保存した文書データは、ユーザからの指示に応じて当該文書データを編集可能なアプリケーションで編集される。
このようにして、文書管理サーバ102から文書データを取得し、ページ単位に分割し、分割されたページのうち指定されたページを画像処理サーバ101の機能によってチェックアウト状態とすることで、文書管理サーバ102に代わって、ページ単位のチェックアウトを実現する。更には、文書管理サーバ102においても、対象の文書データがチェックアウトされるので、画像処理サーバ101でチェックアウトされている最中に、当該文書データが文書管理サーバ102において他のユーザから編集される恐れがない。
次に、本発明の実施形態における画像処理サーバ101を介して、文書管理サーバ102に文書データをチェックインする一連の処理について、図10に示すフローチャートを用いて説明する。図10に示すフローチャートは、ユーザが図4に示した処理の流れによってチェックアウトしたページを編集した後、編集内容を文書管理サーバ102の文書データに反映させるべく、チェックインを実行するものである。
まず、ステップS1001では、クライアント端末103のCPU201は、画像処理サーバ101に文書登録画面の取得要求を送信する。ステップS1002では、画像処理サーバ101のCPU201は、クライアント端末103から送信された文書登録画面の取得要求を受信する。
ステップS1003では、画像処理サーバ101のCPU201は、文書登録画面を生成する。文書登録画面を生成する際には、画像処理サーバ101に記憶された第2の文書属性テーブル800を用いて生成する。クライアント端末103を介して文書登録画面の取得要求を指示したユーザがチェックアウトしている文書データとそのページをチェックアウトユーザ804に基づいて特定する。そして、当該文書データのページがチェックイン可能な画面を生成する。例えば、図11に示すような画面となる。図11に示す文書登録画面1100は、チェックイン可能な文書データのページを示す文書一覧1101、クライアント端末103に記憶された文書データであって、編集が完了した登録する文書データを指定するための参照欄1102、そしてチェックインの指示を受け付けるための登録ボタン1103から構成される。
ステップS1004では、画像処理サーバ101のCPU201は、ステップS1003で生成された文書登録画面1100をクライアント端末103に送信する。
ステップS1005では、クライアント端末103のCPU201は、画像処理サーバ101から送信された文書登録画面1100を受信し、ステップS1006では、受信した文書登録画面1100をクライアント端末103のディスプレイ210に表示する。そして、ユーザからの入力を受け付ける。
ステップS1007では、クライアント端末103のCPU201は、文書一覧1101でチェックインするページが選択され、かつ登録する文書データが参照欄1102で選択されている状態で、登録ボタン1103が押下されたか否かを判定する。登録ボタン1103が押下されたと判定した場合には、ステップS1008に処理を進める。登録ボタン1103が押下されていないと判定した場合には、登録ボタン1103が押下されるまで待機する。
ステップS1008では、クライアント端末103のCPU201は、参照欄1102で選択された、編集済みのページからなる文書データ(以下、編集済ページ)を画像処理サーバ101に送信する。
ステップS1009では、画像処理サーバ101のCPU201は、クライアント端末103から送信された編集済ページを受信する。そして、ステップS1010では、画像処理サーバ101のCPU201は、ステップS1009で受信した編集済ページを用いて、他のユーザが対応するページを編集できるよう、当該ページをチェックインする(第1のチェックイン手段)。チェックインする場合には、受信した編集済ページのページ数とチェックイン対象のページ数とが一致するか否かを判定し、一致すると判定した場合にはチェックインを行い、一致しないと判定した場合にはクライアント端末103にその旨を通知する。また、チェックインは、画像処理サーバ101に記憶された第2の文書属性テーブル800のレコードのうち、チェックインするページのレコードのチェックアウト状態803を「NO」、チェックアウトユーザ804を「NULL」にそれぞれ変更することでチェックインする。
ステップS1011では、画像処理サーバ101のCPU201は、チェックインしたページが構成していた編集対象文書を構成する他のページを一時領域から取得する。そして、ステップS1012では、画像処理サーバ101のCPU201は、チェックインしたページと、ステップS1011で取得したページとを用いて、文書管理サーバ102に記憶されている編集対象文書を更新するための文書データを生成する(文書データ生成手段)。すなわち、編集対象文書を構成する任意のページが更新されたということは、その更新を文書管理サーバ102にも反映させなければならない。よって、ページのチェックインがなされた場合には、画像処理サーバ101が保持する当該編集対象文書の最新版を文書管理サーバ102に送信し、これを更新する必要がある。そこで、チェックインの指示があったページと、画像処理サーバ101が保持する他のページとを結合し、最新版の文書データとして生成する。
そして、ステップS1013では、画像処理サーバ101のCPU201は、ステップS1012で生成した文書データを用いて、編集対象文書のチェックインを行うよう、文書管理サーバ102に要求する(チェックイン要求送信手段)。このとき、ステップS1012で生成した文書データも合わせて送信する。
ステップS1014では、文書管理サーバ102のCPU201は、画像処理サーバ101から送信されたチェックイン要求を受信し、ステップS1015では、チェックイン要求のあった編集対象文書をチェックインする(第2のチェックイン手段)。より具体的には、文書管理サーバ102に記憶されている第1の文書属性テーブル700のレコードのうち、編集対象文書を示すレコードのチェックアウト状態704を「NO」、チェックアウトユーザ705を「NULL」にそれぞれ変更する。そして、受信した最新版の文書データを編集対象文書の最新版として保存する。
ステップS1016では、文書管理サーバ102のCPU201は、編集対象文書の最新版が更新されたので、文書管理サーバ102で管理している編集対象文書のバージョンを上げる。より具体的には、文書管理サーバ102に記憶されている第1の文書属性テーブル700のレコードのうち、編集対象文書のレコードのバージョン702に格納されている値を上げる。バージョンの上げ方は一の位の値を1つ上げてもよいし、小数点第一位の値を1つ上げてもよい。バージョンアップの運用方法は文書管理サーバ102を利用するユーザごとに異なるので、設定に応じてこれを変更できてもよい。
バージョンアップが完了すると、ステップS1017では、画像処理サーバ101のCPU201は、編集対象文書の第1の文書属性テーブル700の更新要求を送信する。ここでいう更新要求とは、文書管理サーバ102に記憶されている第1の文書属性テーブル700の編集中ユーザ706の更新要求である。
ステップS1018では、文書管理サーバ102のCPU201は、画像処理サーバ101から送信された更新要求を受信し、ステップS1019では、当該更新要求に応じて、文書管理サーバ102に記憶されている第1の文書属性テーブル700の編集中ユーザ706の更新を行う。ここでは、チェックインされたページの編集が完了したので、当該ページを編集中としている情報を削除する。
更新が完了したら、ステップS1020では、画像処理サーバ101のCPU201は、編集対象文書を構成するページがすべてチェックインされているか否かを判定する。すなわち、編集対象文書を構成するページのうち、チェックアウトされているページがあるか否かを判定する。前述したステップS1015において、一度編集対象文書を最新版とするためにチェックインを行ったが、当該編集対象文書を構成する他のページを編集中のユーザが存在する場合がある。この場合には、再度文書管理サーバ102において編集対象文書のチェックアウトを行っておかないと、文書管理サーバ102で他のユーザがチェックアウトしてしまう可能性ある。そこで、ステップS1020では、すべてのページがチェックインしているか否かを判定している。より具体的な処理は、画像処理サーバ101に記憶されている第2の文書属性テーブル800を参照し、編集対象文書を構成するページのレコードのチェックアウト状態803がすべて「NO」となっているか否かによって判定する。すべてのページがチェックインされていると判定した場合には、ステップS1021に処理を進める。すべてのページがチェックインされていないと判定された場合、すなわちチェックアウト中のページが1ページでも存在する場合には、ステップS1023に処理を進める。
ステップS1021では、画像処理サーバ101のCPU201は、すべてのページがチェックインされたので、一時領域に保存した分割されたページを一時領域から削除する。そして、ステップS1022では、画像処理サーバ101のCPU201は、編集対象文書を構成するページを示すレコードを第2の文書属性テーブル800から削除する。
一方、ステップS1020で編集対象文書のページがすべてチェックイン状態になっていないと判定した場合、ステップS1023では、画像処理サーバ101のCPU201は、編集対象文書のチェックアウト要求を文書管理サーバ102に送信する(第2のチェックアウト要求手段)。
ステップS1024では、文書管理サーバ102のCPU201は、画像処理サーバ101から送信された、編集対象文書のチェックアウト要求を受信する。そして、ステップS1025では、文書管理サーバ102のCPU201は、編集対象文書のチェックアウトを実行する。チェックアウトの具体的な方法は、ステップS415と同様であるので説明を省略する。
このように、編集が完了したページのチェックインを画像処理サーバ101が行うことができる。更には、画像処理サーバ101で実行されたページのチェックインに応じて、文書管理サーバ102の編集対象文書も更新することができる。
次に、前述した図4のフローチャートと図10のフローチャートで実行されるチェックアウト/チェックインについて、図9と図12を用いて説明する。
まず図9は、画像処理サーバ101に記憶された第2の文書属性テーブル800のデータの遷移を示す図である。図8に示す第2の文書属性テーブル800の状態で、ユーザ「Yamada」が「文書1」の「ページ4」を編集開始した場合、当該ページのチェックアウトがなされる。すなわち図9の900に示すように、レコード901のチェックアウト状態803を「YES」に変更し、チェックアウトユーザ804を「Yamada」に変更する。そして文書管理サーバ102にチェックアウトした情報を送信すると、図7に示すような第1の文書属性テーブルとなる。編集対象文書である「DOC001」の編集中ユーザ706に「Yamada−4」と格納されるので、ユーザ「Yamada」が「ページ4」を編集中であることがわかるようになる。
そしてその後、ユーザ「Fukuda」が「文書1」の「ページ1〜3」の編集を完了し、チェックインすると、図9の910に示すような第2の文書属性テーブル800となる。レコード群911のように、「ページ1〜3」のチェックアウト状態803を「NO」にして、チェックアウトユーザ804を「NULL」にする。これに応じて、図7に示す第1の文書属性テーブル700の「文書1」に関するレコードの編集中ユーザ706から「Fukuda−1,2,3」を削除し、バージョン702を上げる。削除後のテーブルが、図12の1200に示すテーブルである。
更には、ユーザ「Yamada」が「文書1」の「ページ4」をチェックインした場合には、編集対象文書を構成するすべてのページがチェックインされたので、図9の920に示すように第2の文書属性テーブル800から「文書1」を構成するページのレコードを削除する。これに応じて、文書管理サーバ102の第1の文書属性テーブル700の「文書1」に関するレコードの編集中ユーザ706から「Yamada−4」を削除し、バージョン702を上げる。更に、チェックアウト状態704を「NO」にし、チェックアウトユーザ705を「NULL」にする。その結果が図12に示す1210のテーブルである。
このように画像処理サーバ101の第2の文書属性テーブル800と、文書管理サーバ102の第1の文書属性テーブル700とを更新していくことで、画像処理サーバ101においてページ単位の編集可否を制御したり、文書管理サーバ102において文書単位の編集可否を制御したりすることができるようになる。
次に、本発明の実施形態における文書管理サーバ102に記憶された文書データをチェックアウトする一連の処理について、図13に示すフローチャートを用いて説明する。
まず、ステップS1301では、クライアント端末103のCPU201は、文書管理サーバ編集画面の取得要求を文書管理サーバ102に送信する。ステップS1302では、クライアント端末103のCPU201は、クライアント端末103から送信された文書管理サーバ編集画面の取得要求を受信し、ステップS1303では、当該文書管理サーバ編集画面を生成する。このとき、文書管理サーバ102は、文書管理サーバ102に記憶された第1の文書属性テーブル700に基づいて、文書管理サーバ編集画面を生成する。
文書管理サーバ編集画面を生成すると、図14に示すような画面となる。文書管理サーバ編集画面1400は、第1の文書属性テーブル700から取得したファイル名703やそれに対応する編集中ユーザ706が一覧表示される文書一覧1401、編集を開始する編集開始ボタン1402を備えている。
文書管理サーバ編集画面1400が生成されると、ステップS1304では、文書管理サーバ102のCPU201は、ステップS1303で生成された文書管理サーバ編集画面1400をクライアント端末103に送信する。
ステップS1305では、クライアント端末103のCPU201は、文書管理サーバ102から送信された文書管理サーバ編集画面1400を受信し、ステップS1306では、受信した文書管理サーバ編集画面1400をクライアント端末103のディスプレイ210に表示する。そして、ユーザからの入力を受け付ける。
ステップS1307では、クライアント端末103のCPU201は、文書一覧1401で編集を行う文書データが選択された状態で編集開始ボタン1402が押下されたか否かを判定する。編集開始ボタン1402が押下されたと判定した場合には、ステップS1308に処理を進める。編集開始ボタン1402が押下されていないと判定した場合には、編集開始ボタン1402が押下されるまで待機する。
ステップS1308では、クライアント端末103のCPU201は、文書管理サーバ編集画面1400で指定された文書データをチェックアウトするべく、文書管理サーバ102に編集開始指示を送信する。
ステップS1309では、文書管理サーバ102のCPU201は、クライアント端末103から送信された編集開始指示を受信する。そしてステップS1310では、文書管理サーバ102のCPU201は、指定された文書データがチェックアウト可能か否かを判定する。チェックアウト可能か否かは、文書管理サーバ102に記憶された第1の文書属性テーブル700のチェックアウト状態704に基づいて判定する。チェックアウト可能であると判定した場合には、ステップS1312に処理を進め、チェックアウト可能でないと判定した場合には、クライアント端末103にその旨を通知し、ステップS1311に処理を進める。
ステップS1311では、クライアント端末103のCPU201は、文書管理サーバ102からの通知に応じて、ユーザから指定された文書データのページがチェックアウトできない旨を通知する。通知方法は特に問わない。通知が完了したら、ステップS1306に処理を戻す。
ステップS1312では、文書管理サーバ102のCPU201は、編集対象文書をチェックアウトする。より具体的には、文書管理サーバ102が記憶する第1の文書属性テーブル700に登録されたレコードから編集対象文書を示すレコードを特定し、当該レコードのチェックアウト状態704を「YES」に変更する。更に、チェックアウトユーザ705にはチェックアウト指示を行ったユーザ名を格納する。こうすることで、編集対象文書が文書管理サーバ102において他のユーザから編集されないように制御する。図15の1500では、ユーザ「Fukuda」が文書管理サーバ102で「文書4」をチェックアウトした場合の第1の文書属性テーブル700を示している。レコード1501に示すように、「文書4」のチェックアウト状態704を「YES」にし、チェックアウトユーザ705に「Fukuda」を格納している。
そして、ステップS1313では、文書管理サーバ102のCPU201は、第1の文書属性テーブル700の編集対象文書に関するレコードのうち、編集中ユーザ706を更新する。より具体的には、編集中ユーザ706にチェックアウトしたユーザのユーザ名と、チェックアウトしたページ数を示す情報を格納する。文書管理サーバ102からチェックアウトした場合には、文書単位でチェックアウトがなされるので、すべてのページを示す情報が格納されることになる。例えば、チェックアウトした「文書4」が8ページからなる文書データであった場合には、図15の1500に示すように、レコード1502の編集中ユーザ706には、「Fukuda−1,2,3,4,5,6,7,8」と格納する。
第1の文書属性テーブル700の更新が完了すると、ステップS1314では、文書管理サーバ102のCPU201は、チェックアウト指示にあった編集対象文書を取得し、クライアント端末103に送信する。
ステップS1315では、クライアント端末103のCPU201は、文書管理サーバ102から送信された編集対象文書を受信し、ステップS1316では、これを外部メモリ211等に保存する。こうすることで、保存した編集対象文書は、ユーザからの指示に応じて当該編集対象文書を編集可能なアプリケーションで編集される。
次に、本発明の実施形態における文書管理サーバ102で文書データをチェックインする一連の処理について、図16に示すフローチャートを用いて説明する。図16に示すフローチャートは、ユーザが図13に示した処理の流れによってチェックアウトした編集対象文書を編集した後、編集内容を文書管理サーバ102の元データに反映させるべく、チェックインを実行するものである。
まず、ステップS1601では、クライアント端末103のCPU201は、文書管理サーバ102に文書管理サーバ登録画面の取得要求を送信する。ステップS1602では、文書管理サーバ102のCPU201は、クライアント端末103から送信された文書管理サーバ登録画面の取得要求を受信する。
ステップS1603では、文書管理サーバ102のCPU201は、文書管理サーバ登録画面を生成する。文書管理サーバ登録画面を生成する際には、文書管理サーバ102に記憶された第1の文書属性テーブル800を用いて生成する。クライアント端末103を介して文書管理サーバ登録画面の取得要求を指示したユーザがチェックアウトしている文書データをチェックアウトユーザ705に基づいて特定する。そして、当該文書データがチェックイン可能な画面を生成する。例えば、図17に示すような画面となる。図17に示す文書管理サーバ登録画面1700は、チェックイン可能な文書データを示す文書一覧1701、クライアント端末103に記憶された文書データであって、編集が完了した登録する編集対象文書を指定するための参照欄1702、そしてチェックインの指示を受け付けるための登録ボタン1103から構成される。
ステップS1604では、文書管理サーバ102のCPU201は、ステップS1603で生成された文書管理サーバ登録画面1700をクライアント端末103に送信する。
ステップS1605では、クライアント端末103のCPU201は、文書管理サーバ102から送信された文書管理サーバ登録画面1700を受信し、ステップS1606では、受信した文書管理サーバ登録画面1700をクライアント端末103のディスプレイ210に表示する。そして、ユーザからの入力を受け付ける。
ステップS1607では、クライアント端末103のCPU201は、文書一覧1701でチェックインするページが選択され、かつ登録する編集対象文書が参照欄1702で選択されている状態で、登録ボタン1703が押下されたか否かを判定する。登録ボタン1703が押下されたと判定した場合には、ステップS1608に処理を進める。登録ボタン1703が押下されていないと判定した場合には、登録ボタン1703が押下されるまで待機する。
ステップS1608では、クライアント端末103のCPU201は、参照欄1702で選択された、編集済みの編集対象文書を文書管理サーバ102に送信する。
ステップS1609では、文書管理サーバ102のCPU201は、クライアント端末103から送信された編集対象文書を受信する。そして、ステップS1610では、文書管理サーバ102のCPU201は、ステップS1609で受信した編集対象文書を用いて、他のユーザが対応する編集対象文書を編集できるよう、当該編集対象文書をチェックインする。チェックインは、文書管理サーバ102に記憶された第1の文書属性テーブル700のレコードのうち、チェックインする編集対象文書のレコードのチェックアウト状態704を「NO」、チェックアウトユーザ705を「NULL」にそれぞれ変更することでチェックインする。例えば、図18の1800に示すように、編集対象文書に関するレコード1801のチェックアウト状態704を「NO」、チェックアウトユーザ705を「NULL」に変更する。
そして、ステップS1611では、文書管理サーバ102のCPU201は、第1の文書属性テーブル700の編集対象文書に関するレコードのうち、編集中ユーザ706を更新する。より具体的には、編集中ユーザ706からチェックインしたユーザのユーザ名と、チェックインした編集対象文書のページ数を示す情報を削除する。例えば、ユーザ「Fukuda」が「文書4」をチェックインすると、図15の1500に示すように、レコード1502の編集中ユーザ706から、「Fukuda−1,2,3,4,5,6,7,8」を削除し、「NULL」に変更する。
ステップS1612では、文書管理サーバ102のCPU201は、編集対象文書の最新版が更新されたので、文書管理サーバ102で管理している編集対象文書のバージョンを上げる。より具体的には、文書管理サーバ102に記憶されている第1の文書属性テーブル700のレコードのうち、編集対象文書のレコードのバージョン702に格納されている値を上げる。バージョンの上げ方は一の位の値を1つ上げてもよいし、小数点第一位の値を1つ上げてもよい。バージョンアップの運用方法は文書管理サーバ102を利用するユーザごとに異なるので、設定に応じてこれを変更できてもよい。
以上のようにして、文書管理サーバ102においても文書単位で編集の可否を制御している。また、画像処理サーバ101からの指示に応じてチェックアウトされた編集対象文書は、文書管理サーバ102からもチェックアウトすることができないようになっている。
以上説明したように、本実施形態によれば、文書データの編集可否を当該文書データ単位で制御する文書管理サーバの代わりに、当該運所データの編集可否を当該文書データのページ単位で制御することの可能な効果を奏する。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。