(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
1.実施形態
1−1.文書管理システムの全体構成
図1は、本発明の一実施形態に係る文書管理システム9の全体構成を示す図である。
図1に示すように、文書管理システム9は、サーバ装置1a、サーバ装置1b(以下、特に区別の必要がない場合は、これらを総称して「サーバ装置1」と記す)、および端末装置2を有している。サーバ装置1と端末装置2とは通信回線3により接続されている。サーバ装置1の数は2つに限られず、3つ以上であってもよい。また、端末装置2は複数であってもよい。また、通信回線3は、複数あってもよい。
【0012】
1−2.サーバ装置の構成
図2は、サーバ装置1の構成を示す図である。制御部11は、サーバ装置1の各部の動作を制御する手段である。制御部11は、CPU(Central Processing Unit)などの演算処理装置や、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置を備え、これら記憶装置に記憶されたプログラムを実行する。
【0013】
通信部13は、通信回線3を介して端末装置2と情報を通信するインターフェイスであり、たとえば各種のモデムやIMT−2000に準拠した無線通信回路、あるいは、USB(Universal Serial Bus)規格に準拠したシリアルインターフェースや、IrDA(Infrared Data Association)、Bluetooth(登録商標)などに準拠した無線インターフェイスなどである。
【0014】
記憶部12はハードディスクなどの大容量の記憶手段であり、制御部11に読み込まれるプログラムを記憶する。なお、記憶部12は、いわゆるリムーバブルディスク、すなわち着脱可能な記録媒体を含んでもよい。
【0015】
また、記憶部12は、文書を記憶する文書データベース(図において「DB」と表記する)121と、端末装置2で文書に対して行われた操作を記憶する操作データベース122とを含む。文書データベース121は、文書ごとに文書名など、その文書を識別するための識別情報を対応付けて記憶する。
【0016】
文書管理システム9に含まれる各サーバ装置1は、それぞれが管理する文書を互いに関連付けており、1つのサーバ装置1aにおいて文書が作成されたり更新されたりすると、他のサーバ装置1bにおいても、その文書に対応する文書が作成されたり更新されたりするように構成されている。文書の実体はそれぞれのサーバ装置に記憶されていてもいいし、いずれかのサーバ装置または外部の装置に1つだけ記憶されていて、それぞれのサーバ装置から参照されるように構成されていてもよい。
【0017】
各サーバ装置1において操作体系はそれぞれ異なっている。操作体系とは、サーバ装置1が提供している操作の集合を意味する。サーバ装置1が提供している操作は、ユーザがGUI(Graphical User Interface)等を介し指示することが可能である。
【0018】
サーバ装置1aは、第1操作体系に含まれる第1操作に応じて処理を実行する第1情報処理装置の一例である。また、サーバ装置1bは、第1操作体系と異なる第2操作体系に含まれる第2操作に応じて処理を実行する第2情報処理装置の一例である。
【0019】
図3は、たとえばサーバ装置1aが、端末装置からの要求により、自装置の管理対象である文書に対して行った操作のログを記録する操作データベース122の一例を示す図である。操作データベース122は、このサーバ装置1aが管理する文書に対して、端末装置2からの要求に応じて行われた操作が、行われた順序にそれぞれ対応付けて記憶されるデータベースである。
図3に示すように、操作データベース122では、たとえば、「時刻」、「操作」、および「反映」の3つの要素が、サーバ装置1aのある文書の識別子に対応付けられて記憶される。「操作」欄には、操作の内容を示す情報(操作情報という)が記述される。「時刻」欄には、端末装置2においてその操作が行われた時刻を示す情報が記述される。「反映」欄には、たとえば端末装置2からの要求に応じてサーバ装置1aで行われた操作が、その操作の対象文書に対応する、サーバ装置1bの文書データベース121で管理されている文書に対する操作履歴として、サーバ装置1bに反映済であるか否かを示す情報が記述される。後述するが、操作データベース122には、他のサーバ装置1bが端末装置からの要求によりサーバ装置1bの管理下の文書に対して行った操作のログが、対応するサーバ装置1aの管理下の文書への操作履歴として記録されることになる。このように操作データベース122は、それぞれのサーバ装置自身が行った操作と、他のサーバ装置が対応する文書に対して行った操作が操作履歴として記憶される。
【0020】
1−3.サーバ装置の機能的構成
図4は、たとえばサーバ装置1bの機能的構成を示す図である。サーバ装置1bの制御部11は、取得部111、反映部112、および提示部113として機能する。取得部111は、上述した端末装置2の指示でサーバ装置1aにおいて行われた操作を示す操作情報を、通信回線3および通信部13を介して、たとえば端末装置から取得する。
【0021】
反映部112は、上述の通り取得された、まだ反映されていないサーバ装置1aでの文書操作情報を、対応するサーバ装置1bの文書に対する操作履歴として記憶する処理を行う。
【0022】
提示部113は、端末装置2からの指示に従って、文書データベース121に登録された文書を読み出し、その文書を、通信部13および通信回線3を介して端末装置2に提示する処理を行う。
【0023】
1−4.端末装置の構成
図5は、端末装置2の構成を示す図である。制御部21は、端末装置2の各部の動作を制御する手段である。制御部21は、CPUなどの演算処理装置や、ROM、RAMなどの記憶装置を備え、これら記憶装置に記憶されたプログラムを実行する。通信部23は、通信回線3を介してサーバ装置1と操作情報などを通信するインターフェイスであり、たとえばIMT−2000やIMT−Advancedなどに準拠した無線通信回路である。
【0024】
表示部25は、液晶などを使用したディスプレイ装置であり、制御部21からの指示に応じて画像を表示する。操作部24は各種の指示をするためのタッチパネルやボタンなどを有しており、ユーザによる操作を受け付けてその操作内容に応じた信号を制御部21に供給する。操作部24により供給された信号に基づいて制御部21は、操作情報を生成し、通信部23を介してその操作情報を、たとえばサーバ装置1aへ送信する。
【0025】
記憶部22はフラッシュメモリなどの大容量の記憶手段であり、制御部21に読み込まれるプログラムを記憶する。なお、記憶部22は、いわゆるリムーバブルディスク、すなわち着脱可能な記録媒体を含んでもよい。
【0026】
また、記憶部22は、指令データベース221を有する。指令データベース221は、複数のサーバ装置1のそれぞれに送信した操作情報から変換された情報であって、操作情報が示す操作により各サーバ装置1で実行される処理について、サーバ装置1の機種と操作体系に依存しない汎用性のある情報(指令情報という)を記憶するデータベースである。
【0027】
指令情報は、具体的には、操作情報を、サーバ装置1における処理の単位である「指令」の順列で表したものである。この「指令」とは、各サーバ装置1が実行可能な処理を決められた単位にまで分解したものである。決められた単位とはたとえば、それ以上分解できない単位などである。そして、操作情報により示される操作は、1つまたは複数並べられた一連の指令群に対応付けられている。なお、個々の「指令」は、全てのサーバ装置1で実行可能なものでなくてもよく、いずれかのサーバ装置1で実行可能なものであればよい。
【0028】
図6は、指令データベース221の一例を示す図である。指令データベース221は、たとえば「時刻」、「サーバ装置名」、「文書名」、「指令」、および「同期情報」の5つの要素が対応付けられている。「指令」欄には、端末装置2で行われた操作に対応する、上述の指令情報が記述される。「時刻」欄には、端末装置2においてその操作が行われた時刻を示す情報が記述される。「サーバ装置名」欄には、端末装置2が操作の要求を行ったサーバ装置1(たとえばサーバ装置1a)の名称または識別情報が記述される。「文書名」欄には、端末装置2で行われた操作が対象とする文書の名称または識別情報が記述される。「同期情報」欄には、上述したユーザの操作により文書に対して行われた処理に関する履歴情報が他のサーバ装置1(たとえばサーバ装置1b)に同期されたかどうかを表す情報が記述される。
【0029】
1−5.端末装置の機能的構成
図7は、端末装置2の機能的構成を示す図である。端末装置2の制御部21は、クライアント211a、クライアント211b(以下、特に区別の必要がない場合は、これらを総称して「クライアント211」と記す)、および変換部212として機能する。
【0030】
クライアント211aは、サーバ装置1aに記憶された文書を操作するためのクライアントアプリケーションである。クライアント211aが実行されているときに操作部24が受け付けたユーザの操作は、クライアント211aにより、サーバ装置1aで扱われる操作として解釈される。そして、クライアント211aは、解釈した操作の内容を示す操作情報を生成し、通信部23を介してその操作情報をサーバ装置1aに送信する。この操作情報をサーバ装置1aに送信することにより、クライアント211aは、ユーザの操作に応じた処理の実行をサーバ装置1aに対して要求する。つまり、クライアント211aは、ユーザから受け付けた第1操作に応じた処理の実行を、第1情報処理装置に対して要求する第1要求部の一例である。
【0031】
一方、クライアント211bは、サーバ装置1bに記憶された文書を操作するためのクライアントアプリケーションである。クライアント211bが実行されているときに操作部24が受け付けたユーザの操作は、クライアント211bにより、サーバ装置1bで扱われる操作として解釈される。そして、クライアント211bは、解釈した操作の内容を示す操作情報を生成し、通信部23を介してその操作情報をサーバ装置1bに送信する。
【0032】
変換部212は、たとえばクライアント211がサーバ装置1aに送信した操作情報を、対応データベース2120に基づいて、指令情報に変換し、記憶部22の指令データベース221に記憶する。つまり、変換部212は、第1要求部が実行を要求した処理に対応する第1操作を、第1情報処理装置および第2情報処理装置における処理の単位である指令が1つまたは複数並べられた一連の指令群に変換して記憶部に記憶させる変換部の一例である。
【0033】
また、変換部212は、指令データベース221に記憶された指令情報を読み出して、これに対応する操作の履歴を記憶していないサーバ装置1bに対して、そのサーバ装置1bで扱われる操作を示す操作情報に変換(逆変換という)し、そのサーバ装置1bへ送信する。つまり、変換部212は、記憶部に記憶された一連の指令群を、第2操作体系において対応する第2操作に変換する変換部の一例である。
【0034】
ここで対応データベース2120とは、変換部212に含まれるデータベースである。
図8は、対応データベース2120の例を示す図である。対応データベース2120は、各クライアント211がそれぞれ対応付けられているサーバ装置1の名称のリストであるサーバ装置名リストL0と、各クライアント211がサーバ装置1aおよびサーバ装置1bにそれぞれ送信可能な操作を示す操作情報リストL1aおよび操作情報リストL1b(以下、特に区別の必要がない場合は、これらを総称して「操作情報リストL1」と記す)と、その操作の内容を各サーバ装置1に依存しない指令情報で表現した指令情報リストL2とを有する。
【0035】
図8に示すように、サーバ装置名リストL0に記述されているサーバ装置名は、そのサーバ装置名で示されるサーバ装置1によって扱われる操作が記述された操作情報リストL1に対応付けられている。そして、各操作情報リストL1に記述されている操作は、指令情報リストL2に記述された指令情報に対応付けられている。
【0036】
たとえば、サーバ装置1aで扱われる操作のうち「チェックアウト」は、「HTTP LOCK」→「HTTP GET」→「ファイル保存」という3つの指令からなる一連の指令群に対応付けられている。この一連の指令群が指令情報である。「チェックアウト」はサーバ装置1aでは扱われるが、サーバ装置1bでは扱われない。一方、指令情報を構成する各々の指令は、サーバ装置1bで扱われる操作に対応する指令情報に含まれている場合がある。したがって、サーバ装置1aで扱われる操作を示す操作情報を指令情報に変換し、変換された指令情報を更にサーバ装置1bで扱われる操作を示す操作情報に逆変換することで、サーバ装置1aでの操作が、サーバ装置1bでの操作に変換される。逆変換のときに、指令情報中の指令のうち、サーバ装置1bで対応していないものがある場合には、その指令を無視してもよい。
【0037】
たとえば、上述した指令情報は、「HTTP LOCK」→「HTTP GET」→「ファイル保存」であるが、このうち、「HTTP LOCK」は、サーバ装置1bで扱われる操作である「ロック」に対応している。そして、「HTTP GET」→「ファイル保存」という一連の指令群は、サーバ装置1bで扱われる操作である「ダウンロード」に対応している。したがって、変換部212は、サーバ装置1aに対して行われた「チェックアウト」という操作を、指令情報に変換して、更にサーバ装置1bに向けた「ロック」→「ダウンロード」という操作に逆変換する。
【0038】
また、サーバ装置1aに対して「編集」という操作が行われたとき、変換部212は、これを「ファイルOpen」→「ファイル更新」→「ファイル保存」という3つの指令からなる一連の指令群に変換する。そして、この一連の指令群をサーバ装置1bに向けた操作情報に逆変換する際に、変換部212は対応データベース2120を参照して、これに対応する操作情報がないと判定し、この一連の指令群を無視する。
【0039】
図9は、異なる操作体系の操作情報と、指令情報(一連の指令群)との対応関係の一例を示す図である。
図9に示すように、サーバ装置1aで用いられる第1操作体系において、「A1」→「A2」という2つの連続する操作でなされる処理がサーバ装置1a管理下の文書に向けて行われたとき、変換部212は、対応データベース2120を参照して、「A1」を「C1」→「C2」という一連の指令群に、「A2」を「C3」→「C4」→「C5」という一連の指令群に、それぞれ変換し、指令データベース221に記憶する。
【0040】
そして、変換部212は、上述した処理に相当する処理の履歴を、サーバ装置1bの管理下の対応する文書の履歴として記憶させる際に、指令データベース221に記憶した一連の指令群を読み出し、対応データベース2120を参照して、これを第2操作体系に従った操作情報に逆変換する。対応データベース2120には、第2操作体系における「B1」が「C1」→「C2」→「C3」という一連の指令群に対応しており、「B2」が「C4」→「C5」という一連の指令群に対応していることが記述されている。したがって、変換部212は、「C1」→「C2」→「C3」→「C4」→「C5」という一連の指令群を、「B1」→「B2」という2つの連続する操作を示す操作情報に逆変換する。制御部21は、逆変換されたこの操作情報をサーバ装置1bに送り、これを処理の履歴として記憶するよう要求する。逆変換された操作情報は、操作の対象となったサーバ装置1a管理下の文書に対応する、サーバ装置1b管理下の文書に対する処理の履歴として、サーバ装置1bに記憶される。なお後述するが、これらの操作の対象となる文書そのもの(実体情報)については、端末装置を介することなく、サーバ装置1a・1b間で同期が行われるものとする。
【0041】
このように、サーバ装置1aに対して行われた操作を示す操作情報は、指令情報に変換され、その指令情報を逆変換することで、その操作が反映されていないサーバ装置1bにおけるその操作を示す操作情報が生成される。ある操作体系における1つの操作が、他の操作体系における1つの操作に対応していなくても、上述したようにある操作体系における複数の操作が、他の操作体系における複数の操作に対応している場合があり、端末装置2は、操作情報を指令情報へ変換することにより、異なる操作体系間の操作情報を対応付ける。なお、指令情報に対応する操作情報がない場合には、サーバ装置1bに向けた操作を示す操作情報は生成されず、サーバ装置1bにおいて、その操作は処理の履歴として記憶されないことになる。
【0042】
1−6.文書管理システムの動作
図10は、文書管理システム9の動作の流れを示すシーケンスチャートである。端末装置2の制御部21において、クライアント211a、クライアント211b、および変換部212が実行されている。クライアント211aは、操作部24により受け付けられたユーザの操作を示す操作情報を取得すると(ステップS101)、取得したその操作情報をサーバ装置1aに送信する(ステップS102)。
【0043】
サーバ装置1aは、送信されたその操作情報を操作データベース122に記憶し、この操作情報に対応する指令に基づいて処理を行い、上述したユーザの操作を文書データベース121に記憶されている文書に反映させる(ステップS103)。そして、サーバ装置1aは、操作が文書に反映されたことを示す情報を端末装置2に送信する(ステップS104)。
【0044】
操作が文書に反映されたことを示す情報が端末装置2に受信されると、端末装置2において実行されているクライアント211aは、その操作を示す操作情報を指令情報に変換するよう変換部212に指示する(ステップS105)。変換部212は、その指示に従い、上述した操作情報を指令情報に変換し(ステップS106)、指令データベース221に記憶する(ステップS107)。
【0045】
また、ユーザの指示や予め決められた期間の経過、サーバ装置1aからの要請などを契機として、端末装置2が上述した操作の履歴をサーバ装置1bにも記憶させる場合、変換部212は、指令データベース221に記憶された指令情報をサーバ装置1bで扱われる操作の操作情報に逆変換し(ステップS111)、逆変換により得られた操作情報をサーバ装置1bに処理の履歴として記憶させるようにクライアント211bに対して指示する(ステップS112)。クライアント211bは、指示された操作情報をサーバ装置1bに送信し、この操作情報を、処理の履歴として記憶するようサーバ装置1bに要求する(ステップS113)。すなわち、クライアント211bは、変換部212により変換された第2操作を、処理の履歴として記憶するよう第2情報処理装置に対して要求する第2要求部の一例である。
【0046】
なお、サーバ装置1aは、たとえば、通信状態が不良のため、決められた期間を超えてサーバ装置1bと同期がとれなかった場合に、上述した要請をすればよい。
【0047】
サーバ装置1bは、端末装置2から送信された操作情報を、自装置が管理する文書に対する処理の履歴として操作データベース122に記憶して、サーバ装置1aにおける処理の履歴を、自装置における処理の履歴に反映させる(ステップS114)。このときサーバ装置1bは、端末装置2から送信された操作情報により示される操作を、自身が管理する文書の実体に反映させてもよいし、操作が反映された文書をサーバ装置1aから受信してもよい。端末装置2から送信された操作情報が自装置における処理の履歴に反映されると、サーバ装置1bは、その旨の通知を端末装置2に送信する(ステップS115)。
【0048】
端末装置2においてクライアント211bは、サーバ装置1bから上述した通知を受信すると、変換部212にこの通知を送信する(ステップS116)。変換部212は、この通知を受信して、指令データベース221の「同期情報」欄に、サーバ装置1bにおいて文書に対する処理の履歴が同期したことを記述する(ステップS117)。ここで端末装置2は、サーバ装置1aに対して、処理の履歴が同期したことを通知してもよい。その通知を受けて、サーバ装置1aでは、操作データベースの「反映」欄に操作履歴の同期が反映されていることが記述される。
【0049】
以上、説明したとおり、この文書管理システム9は、文書に対する操作体系が異なる複数のサーバ装置1を有しているが、それぞれの操作を、サーバ装置1における処理の単位である指令に分解して指令情報として記憶するため、このような構成を有していない場合と比べて、一方のサーバ装置1で行われた操作が、他方のサーバ装置1に向けた操作に変換される割合が増加し、それぞれが管理する文書に対する処理の履歴を同期させることが容易になる。
【0050】
2.変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組み合わせてもよい。
2−1.変形例1
上述した実施形態において、端末装置2で行われた操作は、サーバ装置1に記憶された文書に反映されていたが、端末装置2に記憶された文書に対して反映されてもよい。この場合、
図5に破線で示したように、端末装置2の記憶部22には、端末側文書データベース222を有していてもよい。この端末側文書データベース222は、端末装置2の操作部24で受け付けられる操作がサーバ装置1に記憶された文書に反映されるのに伴って、端末装置2内において反映される文書を記憶するデータベースである。端末側文書データベース222に記憶された文書は、サーバ装置1の文書データベース121に記憶された文書と同期するように、操作が反映されるため、サーバ装置1の文書のバックアップとして機能する。この変形例において、指令データベース221には、サーバ装置1の文書データベース121に記憶された文書と、端末側文書データベース222に記憶された文書との対応関係が記述されてもよい。
【0051】
2−2.変形例2
上述した実施形態において、端末装置2が操作部24で受け付けたサーバ装置1aに対する操作を、サーバ装置1bに対しても反映させる契機として、ユーザの指示や予め決められた期間の経過、サーバ装置1aからの要請などが挙げられていたが、端末装置2において何らかの現象を検知し、その検知結果に応じて上述した反映の処理が行われてもよい。
【0052】
たとえば、
図5に破線で示すように、端末装置2は、検知部26を有する。検知部26は、端末装置2の周囲の環境から何らかの物理量を検知する検知装置である。検知部26は、たとえば、周囲の光を検知する光電素子を備えたカメラ(撮像装置)であってもよい。
【0053】
この場合、端末装置2の制御部21は、検知部26の検知結果に基づいて、サーバ装置1aに対する操作を、サーバ装置1bに対しても反映させるか否かを判定する判定部213(
図7参照)として機能する。たとえば、検知部26が撮像装置である場合、制御部2は撮像された画像の色調や明るさ、またはそれらの平均値や中間値などを閾値と比較し、検知結果であるその画像に応じて、上述した反映を行うか否かを判定する。
【0054】
また、検知部26は、航法衛星からの電波を検知して、GNSS(Global Navigation Satellite System:全地球航法衛星システム)に基づき、端末装置2の位置を測位する測位装置であってもよい。
【0055】
この場合、端末装置2の制御部21は、検知部26の検知結果に基づいて、端末装置2がどこに所在しているかを特定し、その所在地に応じて、上述した反映を行うか否かを判定する。なお、検知部26による検知は、操作部24がユーザの操作を受け付けたときであってもよい。
【0056】
また、検知部26は、通信部23の受信する電波強度や通信状態を検知してもよい。この場合、端末装置2の制御部21は、検知部26の検知結果に基づいて、端末装置2が使用可能な通信回線3の種類を特定し、その種類に応じて、上述した反映を行うか否かを判定する。たとえば、特定した通信回線3の種類が、決められた帯域幅よりも大きい帯域幅で通信が可能な通信回線3を示すものである場合に、制御部21は、上述した反映を行うと判定してもよい。
【0057】
2−3.変形例3
上述した実施形態において、端末装置2で実行されるクライアント211aは、操作部24により受け付けられたユーザの操作を示す操作情報を取得すると、取得したその操作情報をサーバ装置1aに送信していたが、この送信のタイミングには種々の態様があってもよい。このタイミングは、たとえば、ユーザが送信を指示したときであってもよいし、クライアント211aがサーバ装置1aに接続したときでもよい。また、このタイミングは、クライアント211aがサーバ装置1aに、決められた効率以上の効率で接続したときでもよい。ここでいう決められた効率とは、単位時間当たりの通信量などで現される。具体的には、たとえば、決められた帯域幅よりも大きい帯域幅で通信が可能な通信回線3を介して端末装置2がサーバ装置1aに接続したとき、クライアント211aは、上述の操作情報をサーバ装置1aに送信してもよい。