(57)【要約】【課題】汎用性を高め、設計や改良を容易にする。【解決手段】クライアント側でＧＵＩ表示層１０１が受けたユーザからの指示に従って、データ蓄積手段を有するデジタル複合機（ＭＦＰ）に対するコマンドを、そのＭＦＰにアクセスするためのコマンドを扱うドキュメントボックスプラグイン１０３がＸＭＬジェネレータ１０６にＸＭＬ形式のデータとして生成させ、ネットファイルラッパ１０８を介してＭＦＰに送信する。ＭＦＰ側では、ネットファイル２０１がこのコマンドを受け付けて適切なアプリにコマンドに対応するジョブの実行を指示すると共に、ＸＭＬ形式の応答データをクライアント側に返す。ドキュメントボックスプラグイン１０３はネットファイルラッパ１０８を介してこの応答データを受け取り、ＸＭＬパーサ１０７に解釈させる。【選択図】図１
2008289170.tif 000002
【特許請求の範囲】
【請求項１】
データ蓄積装置とデータの授受を行うための通信手段を有するデータ管理装置であって、
前記データ蓄積装置に対するコマンドを構造化文書形式で作成するコマンド作成手段と、
該手段が作成したコマンドを前記データ蓄積装置に送信するコマンド送信手段
と、
送信したコマンドに対する前記データ蓄積装置からの構造化文書形式の応答を受信する応答受信手段と、
該手段が受信した応答を解釈する応答解釈手段とを設け、
前記コマンドは前記データ蓄積装置に蓄積されている文書に認証情報が必要かどうかを確認するコマンドを含むことを特徴とするデータ管理装置。
【請求項２】
前記コマンドは入力された認証情報が正しいかどうかを確認するコマンドを含むことを特徴とする、請求項１記載のデータ管理装置。
【請求項３】
前記構造化文書形式は拡張マークアップ言語（ＸＭＬ）形式であることを特徴とする請求項１または２記載のデータ管理装置。
【請求項４】
前記コマンド作成手段は前記データ蓄積装置に送信するコマンドを拡張マークアップ言語形式のデータとして生成する拡張マークアップ言語生成手段を有し、前記応答解釈手段は拡張マークアップ言語形式のデータの内容を解釈し、他のプログラムが理解できる形式のデータに変換させるデータ変換手段を有することを特徴とする、請求項１乃至３いずれか一項記載のデータ管理装置。
【請求項５】
前記コマンド送信手段はさらに前記拡張マークアップ言語生成手段で生成された拡張マークアップ言語形式のデータをＳＯＡＰメッセージとして前記データ蓄積装置に送信し、前記応答受信手段は前記データ蓄積装置からの応答データをＳＯＡＰメッセージとして受信することを特徴とする、請求項１乃至４いずれか一項記載のデータ管理装置。
【請求項６】
ネットワークを介してデータ蓄積装置を管理する方法であって、
前記データ蓄積装置に対するコマンドを構造化文書形式で生成するコマンド生成段階と、
該段階において作成したコマンドを前記データ蓄積装置に送信するコマンド送信段階と、
送信したコマンドに対する前記データ蓄積装置からの構造化文書形式の応答データを受信する応答受信段階と、
該段階において受信した応答データを解釈する応答解釈段階とを含み、
前記コマンドは前記データ蓄積装置に蓄積されている文書に認証情報が必要かどうかを確認するコマンドを含むことを特徴とする方法。
【請求項７】
前記コマンドは入力された認証情報が正しいかどうかを確認するコマンドを含むことを特徴とする、請求項６記載の方法。
【請求項８】
前記構造化文書形式は拡張マークアップ言語（ＸＭＬ）形式であることを特徴とする、請求項１または２記載の方法。
【請求項９】
前記コマンド生成段階は、前記データ蓄積装置に送信するコマンドを拡張マークアップ言語形式のデータとして生成する拡張マークアップ言語生成段階を含み、前記応答解釈段階は、拡張マークアップ言語形式のデータの内容を解釈し、他のプログラムが理解できる形式のデータに変換させるデータ変換段階を含むことを特徴とする請求項６乃至８に記載の方法。
【請求項１０】
前記コマンド送信段階において、さらに前記拡張マークアップ言語生成段階で生成された拡張マークアップ言語形式のデータをＳＯＡＰメッセージとして前記データ蓄積装置に送信し、前記応答受信段階において、前記データ蓄積装置からの応答データをＳＯＡＰメッセージとして受信することを特徴とする、請求項６乃至９いずれか一項記載の方法。
【請求項１１】
データ蓄積装置とデータの授受が可能なように接続されたコンピュータを、
前記データ蓄積装置に対するコマンドを構造化文書形式で生成するコマンド生成手段と、
該手段が作成したコマンドを前記データ蓄積装置に送信するコマンド送信手段と、
送信したコマンドに対する前記データ蓄積装置からの構造化文書形式の応答データを受信する応答受信手段と、
該手段が受信した応答データを解釈する応答解釈手段として機能させ、
前記コマンドは前記データ蓄積装置に蓄積されている文書に認証情報が必要かどうかを確認するコマンドを含むことを特徴とするプログラム。
【請求項１２】
前記コマンドは入力された認証情報が正しいかどうかを確認するコマンドを含むことを特徴とする、請求項１１記載のプログラム。
【請求項１３】
前記構造化文書形式は拡張マークアップ言語（ＸＭＬ）形式であることを特徴とする、請求項１１または１２記載のプログラム。
【請求項１４】
前記コマンド生成手段は前記データ蓄積装置に送信するコマンドを拡張マークアップ言語形式のデータとして生成する拡張マークアップ言語生成手段を有し、前記応答解釈手段は拡張マークアップ言語形式のデータの内容を解釈し、他のプログラムが理解できる形式のデータに変換させるデータ変換手段を有することを特徴とする、請求項１１乃至１３いずれか一項記載のプログラム。
【請求項１５】
前記コマンド送信手段はさらに前記拡張マークアップ言語生成手段で生成された拡張マークアップ言語形式のデータをＳＯＡＰメッセージとして前記データ蓄積装置に送信し、前記応答受信手段は前記データ蓄積装置からの応答データをＳＯＡＰメッセージとして受信することを特徴とする、請求項１１乃至１４いずれか一項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ蓄積装置にコマンドを送信することによってデータ蓄積装置に蓄積しているデータに対して種々の処理を行わせるデータ管理装置、コンピュータをこのようなデータ管理装置として機能させるためのプログラム、このようなプログラムを記録した記録媒体、データ管理装置により制御されるデータ蓄積装置、このようなデータ管理装置とデータ蓄積装置とによって構成されるデータ管理システム、及びデータ蓄積装置の制御方法に関する。
【背景技術】
【０００２】
従来から、データ蓄積装置として、文書等のデータを蓄積し、クライアントからの指示に応じてそのデータをプリンタに送信して印刷させたり、クライアントに送信して編集に供したりする文書管理サーバが知られている。そして、近年では、プリンタ、コピー、ファクシミリ（ＦＡＸ）通信等の機能を備えたデジタル複合機（ＭＦＰ）に文書等のデータを蓄積するための大容量の不揮発性記憶手段を設け、蓄積しているデータの印刷やＦＡＸ送信が自身で可能なデータ蓄積装置として用いることも行われている。そして、これらのデータ蓄積装置にコマンドを発してその動作を指示するクライアント装置であるデータ管理装置と組み合わせ、データ管理システムとして運用することも行われている。
【０００３】
このようなデータ蓄積装置は、パーソナルコンピュータ（ＰＣ）等のクライアント装置からのコマンドに従って種々の動作を行うが、従来、これらのコマンドは装置毎の一連のコマンドセットとして設計されていた。そして、データ蓄積装置側とクライアント側の両方にこのコマンドセットに対応するためのプログラムをインストールする等して、設計したコマンドセットによる動作指示を可能にしていた。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このようなコマンドセットを用いる場合、例えば新たなコマンドを設けてデータ蓄積装置に新たな動作を行わせようとする場合には、データ蓄積装置側のコマンドセットを改良して新たなコマンドに対応させるだけでなく、クライアント側についても全ての装置でこの改良に対応した更新を行う必要があった。なぜなら、クライアント側で更新を行わなかった場合、データ蓄積装置に送信するコマンドに必要なデータが含まれない等の理由によりデータ蓄積装置が従来のコマンドすら正常に解釈できないといった事態が発生し得るからである。
【０００５】
従って、必ずしも新機能への対応を必要としないクライアント装置にまで新たなコマンドに対応するための更新を行う必要があり、データ管理システムを運用するために余計な労力を有するという問題があった。この問題は、多数のクライアント装置からデータ蓄積装置に対してコマンドを送信可能なシステムを構成する場合に特に顕著である。
【０００６】
さらに、コマンドセット自体も、コマンド相互間の関連性を考慮して設計しなければならないため、汎用性が低く、新機能の追加や他機種への流用を容易に行うことができないので、新機能や新機種の設計に大きな労力を必要とするという問題もあった。
【０００７】
この発明は、このような問題を解決し、データ蓄積装置に対して動作を指示するためのプログラムや装置の汎用性を高め、設計や改良を容易にすることを目的とする。また、データ管理装置とデータ蓄積装置とによって構成されるデータ管理システムにおいても、各装置の汎用性を高め、設計や改良を容易にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、この発明は、データ蓄積装置とデータの授受が可能なように接続されたコンピュータを、上記データ蓄積装置に対するコマンドを構造化文書形式で生成するコマンド生成手段と、その手段が作成したコマンドを上記データ蓄積装置に送信するコマンド送信手段と、送信したコマンドに対する上記データ蓄積装置からの構造化文書形式の応答データを受信する応答受信手段と、その手段が受信した応答データを解釈する応答解釈手段として機能させるためのプログラムを提供する。
【０００９】
上記コマンドはＸＭＬ形式等の構造化文書形式で表現されている。データ蓄積装置が上記コマンドを受信すると、コマンドに含まれる理解できる要素のみを認識し、理解できない要素は無視し、一方、期待していた要素が上記コマンドに含まれていなくても、その要素がないものとして取り扱うことができる。従って、例えデータ管理装置のプログラムとデータ蓄積装置のプログラム間にバージョンアップ等に起因するそごが生じても、データ管理装置はデータ蓄積装置を制御することができる。
【００１０】
また、上記データ蓄積装置は、蓄積文書に対する処理手段による処理の結果を、ＸＭＬ等の構造化文書形式で記述し応答データとして返信する。従って、これを受信したデータ管理装置は、受信した上記コマンドを応答解釈手段に解釈させ、これに含まれる理解できる要素のみを認識し、理解できない要素は無視し、一方、期待していた要素が上記コマンドに含まれていなくても、その要素がないものとして取り扱うことができる。従って、例えデータ管理装置のプログラムとデータ蓄積装置のプログラム間にバージョンアップ等に起因するそごが生じても、データ管理装置はデータ蓄積装置による処理の結果を知ることができる。
【００１１】
このようなプログラムに、上記コンピュータを、上記応答解釈手段による解釈結果を表示手段に表示させる手段として機能させるためのプログラムをさらに含めるようにするとよい。
【００１２】
さらに、このプログラムを画像形成手段を有するデータ蓄積装置とデータの授受が可能なように接続されたコンピュータを上記の各手段として機能させるためのプログラムとし、上記コマンドにその画像形成手段による画像形成を指示するコマンドを含めるようにするとよい。
【００１３】
あるいは、このプログラムをファクシミリ通信手段を有するデータ蓄積装置とデータの授受が可能なように接続されたコンピュータを上記の各手段として機能させるためのプログラムとし、上記コマンドにそのファクシミリ通信手段による送信を指示するコマンドを含めるようにするとよい。
【００１４】
さらに、このプログラムをスキャナ配信手段を有するデータ蓄積装置とデータの授受が可能なように接続されたコンピュータを上記の各手段として機能させるためのプログラムとし、上記コマンドにそのスキャナ配信手段による配信を指示するコマンドを含めるようにするとよい。
【００１５】
これらのプログラムにおいて、上記コマンドに上記データ蓄積装置に蓄積されている文書にパスワード等の認証情報が必要かどうかを確認するコマンドを含めるようにするとよい。また、上記パスワード等の認証情報が必要な場合、ユーザが入力した認証情報が正しいかどうかを確認するコマンドを含むようにするとよい。
【００１６】
さらに、これらのプログラムにおいて、上記構造化文書形式として拡張マークアップ言語（ＸＭＬ）形式を用いるとよい。
【００１７】
上記のプログラムにおいて、上記コマンド生成手段が拡張マークアップ言語生成手段を含み、上記応答解釈手段がデータ変換手段を含むようにするとよい。
【００１８】
また、これらのプログラムにおいて、上記コマンド送信手段は上記拡張マークアップ言語生成手段が生成した拡張マークアップ言語形式のデータをＳＯＡＰメッセージとして送信し、上記応答受信手段はデータ蓄積装置からの応答データをＳＯＡＰメッセージとして受信するようにしてもよい。
【００１９】
また、この発明は、上記のようなプログラムを記録したコンピュータ読み取り可能な記録媒体も提供する。
【００２０】
また、この発明のデータ管理装置は、データ蓄積装置とデータの授受を行うための通信手段を有するデータ管理装置であって、上記データ蓄積装置に対するコマンドを構造化文書形式で作成するコマンド作成手段と、その手段が作成したコマンドを上記データ蓄積装置に送信するコマンド送信手段と、送信したコマンドに対する上記データ蓄積装置からの構造化文書形式の応答を受信する応答受信手段と、その手段が受信した応答を解釈する応答解釈手段とを設けたものである。
【００２１】
また、この発明のデータ蓄積装置は、複数の蓄積文書を蓄積する蓄積手段と、複数の処理手段と、前記データ管理装置からの構造化文書形式のコマンドに基づき、少なくとも一の処理手段にコマンドを実行させ、構造化文書形式の応答データを前記データ管理装置に送信する処理管理手段とを設けたことを特徴とする。
【００２２】
上記コマンドはＸＭＬ等の構造化文書形式で記述されている。上記データ管理装置から受信した上記コマンドは、上記解釈手段により解釈される。この時、コマンドに含まれる理解できる要素のみを認識し、理解できない要素は無視し、一方、期待していた要素が上記コマンドに含まれていなくても、その要素がないものとして取り扱うことができる。従って、例えデータ管理装置のプログラムとデータ蓄積装置のプログラム間にバージョンアップ等に起因するそごが生じても、データ蓄積装置はデータ管理装置の制御を受けることができる。
【００２３】
また、上記データ蓄積装置は、蓄積文書に対する処理手段による処理の結果を、ＸＭＬ等の構造化文書形式で記述し応答データとして返信する。従って、これを受信したデータ管理装置は、受信した上記コマンドに含まれる理解できる要素のみを認識し、理解できない要素は無視し、一方、期待していた要素が上記コマンドに含まれていなくても、その要素がないものとして取り扱うことができる。従って、例えデータ管理装置のプログラムとデータ蓄積装置のプログラム間にバージョンアップ等に起因するそごが生じても、データ蓄積装置はデータ管理装置による処理の結果を知らせることができる。
【００２４】
また、この発明のデータ管理システムは、このようなデータ管理装置とデータ蓄積装置とによって構成するものである。
【００２５】
また、この発明による、ネットワークを介してデータ蓄積装置を管理する方法は、前記データ蓄積装置に対するコマンドを構造化文書形式で生成するコマンド生成段階と、該段階において作成したコマンドを前記データ蓄積装置に送信するコマンド送信段階と、送信したコマンドに対する前記データ蓄積装置からの構造化文書形式の応答データを受信する応答受信段階と、該段階において受信した応答データを解釈する応答解釈段階とから構成されることを特徴とする。
【発明の効果】
【００２６】
以上説明してきたように、この発明のデータ管理装置、データ蓄積装置、及びデータ管理システムによれば、装置やシステムの汎用性を高め、設計や改良を容易にすることができる。
【００２７】
また、この発明のプログラムによれば、コンピュータを、汎用性が高く、設計や改良が容易なデータ管理装置として機能させることができる。
【００２８】
また、この発明の記録媒体によれば、上記のプログラムを記憶していないコンピュータにそのプログラムを記憶させ、その実行によって上記のデータ管理装置として機能させることができる。
【００２９】
また、この発明の方法によれば、データ蓄積装置を容易に制御することができる。
【発明を実施するための最良の形態】
【００３０】
以下、この発明の好ましい実施の形態を図面を参照して説明する。
〔実施形態：図１、図２〕
まず、この発明の実施形態である、クライアント装置とデジタル複合機とによって構成されたデータ管理システムについて説明する。まず、図１及び図２を用いてそのデータ管理システムの構成について説明する。図１はそのデータ管理システムにおけるソフトウェア構成を示す構成図、図２はそのデータ管理システムの概略構成を示すブロック図である。
【００３１】
このデータ管理システムは、データ蓄積装置として機能するデジタル複合機（ＭＦＰ）２と、このＭＦＰ２に対して種々のコマンドを発し、蓄積されているデ−タ（蓄積文書）に対する印刷等の処理を行わせるためのデータ管理装置であるクライアント装置として機能するパーソナルコンピュータ（ＰＣ）１と、ＭＦＰ２に蓄積されているデータを複数のトレイに分類整理して保管するための配信サーバ４とを、ネットワーク３を介して接続して構成している。ここで、ネットワーク３としては、ローカルエリアネットワーク（ＬＡＮ）、イントラネット、インターネット等のいかなるネットワークを用いてもよく、有線であると無線であるとも問わない。
【００３２】
ＰＣ１は、ハードウェア構成としては公知のＰＣと同様である。すなわち、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスクドライブ（ＨＤＤ）１４、ディスプレイインタフェース（Ｉ／Ｆ）１５、ネットワークＩ／Ｆ１６を備え、これらがシステムバスによって接続され、またネットワークＩ／Ｆ１６を介してネットワーク３に接続されている。そして、ＨＤＤ１４に種々のアプリケーションプログラムをインストールしてＣＰＵ１１に実行させることにより、様々な機能を果たすことができる。ここでは、ＰＣ１をこのデータ管理システムのクライアント装置として機能させるためのプログラムである、図１に示すクライアントモジュール１００をインストールしてＣＰＵ１１に実行させ、ＣＰＵ１１を後述する種々の手段として機能させている。
【００３３】
また、このＰＣ１には、ディスプレイＩ／Ｆ１５を介して表示手段であるディスプレイ１８が接続されており、このディスプレイ１８によって、ユーザからの指示を受け付けるためのグラフィカル・ユーザ・インタフェース（ＧＵＩ）や動作の結果等の、必要な表示を行うことができる。なお、ディスプレイ１８は液晶ディスプレイやブラウン管による公知のものを利用することができ、ＰＣ１に内蔵するようにしても構わない。
【００３４】
さらに、図示は省略したが、キーボードやマウス等による操作部も備え、ユーザからの指示や操作を受け付けることができる。
【００３５】
ＭＦＰ２は、制御部２０、プリンタエンジン３１、スキャナエンジン３２を備えている。そして、制御部２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、データ蓄積手段２４、ネットワークＩ／Ｆ２５、エンジンＩ／Ｆ２６、スキャナＩ／Ｆ２７、ファクシミリ（ＦＡＸ）通信手段２８を備え、これらはシステムバス２９によって接続されている。
【００３６】
ＣＰＵ２１は、ＲＯＭ２２に格納された図１に示すＭＦＰモジュール２００を初めとする各種制御プログラムを実行して、プリンタエンジン３１による画像形成、スキャナエンジン３２による画像読み取り、ファクシミリ通信手段２８による画情報の送受信等を含む各部の動作の制御を行う。また、ネットワークＩ／Ｆ２５を介して受信するＰＣ１からのコマンドを解釈し、そのコマンドに対応する動作を実行したり、そのコマンドに対する応答をＰＣ１に返したりする処理も行う。
【００３７】
ＲＯＭ２２は、ＭＦＰモジュール２００を初めとする各種制御プログラムを記憶する記憶手段である。そして、このＲＯＭ２２を書き換え可能な記憶手段で構成すれば、新たにコマンドや機能を追加する場合等のプログラムのバージョンアップが容易になる。
【００３８】
ＲＡＭ２３は、ＣＰＵ２１のワークメモリとして使用したり、あるいは必要なデータ等を記憶したりするための記憶手段である。
【００３９】
データ蓄積手段２４は、文書等のデータを蓄積する手段であり、ＨＤＤ等の大容量の不揮発性記憶手段によって構成する。ここに記憶させるデータとしては、例えばスキャナエンジン３２によって読み取ったりファクシミリ通信手段２８によって受信したりした画像データや、ネットワークＩ／Ｆ２５を介してＰＣ１から受信した文書データ等が挙げられる。また、データ蓄積手段２４にＣＰＵ２１が実行するプログラムの一部を記憶させるようにしてもよい。
【００４０】
ネットワークＩ／Ｆ２５は、ＭＦＰ２をネットワーク３に接続するためのインタフェースである。また、エンジンＩ／Ｆ２６、スキャナＩ／Ｆ２７は、それぞれプリンタエンジン３１及びスキャナエンジン３２と制御部２０とを接続するためのインタフェースである。
【００４１】
ファクシミリ通信手段２８は、網制御部、ＦＡＸモデム等によって構成され、公衆回線を介して他の装置とファクシミリ通信を行うための手段である。
【００４２】
プリンタエンジン３１は、与えられたプリントデータに基づいて用紙に画像を形成（印刷）する画像形成手段であり、スキャナエンジン３２は、原稿の画像を所定の解像度の画像データとして読み取る手段である。
【００４３】
このように構成されたＭＦＰ２は、プリンタ、スキャナ、コピー機、ＦＡＸ装置等の種々の機能を有する。また、ＰＣ１からのコマンドや図示しない操作部からの操作に従って、データ蓄積手段２４に蓄積しているデータを管理したり、そのデータの内容をプリンタエンジン３１によって画像形成して出力したり、ファクシミリ通信手段２８によって他の装置にＦＡＸ送信したりすることもできる。
【００４４】
配信サーバ４は、ＰＣ１と同様に、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、ハードディスクドライブ（ＨＤＤ）４４、ディスプレイインタフェース（Ｉ／Ｆ）４５、ネットワークＩ／Ｆ４６を備え、これらがシステムバス４７によって接続された公知のＰＣである。またネットワークＩ／Ｆ４６を介してネットワーク３に接続されている。配信サーバ４のＨＤＤ４４には、ＰＣを配信サーバとして動作させるためのアプリケーションプログラム（サーバモジュール）がインストールされている。このアプリケーションプログラムをＣＰＵに実行させることにより、ＭＦＰ２及びＰＣ１に対して様々なサービスを提供することができる。
【００４５】
また、この配信サーバ４には、ディスプレイＩ／Ｆ４５を介して表示手段である図示しないディスプレイが接続されてもよく、このディスプレイによって、管理者からの指示を受け付けるためのグラフィカル・ユーザ・インタフェース（ＧＵＩ）や動作の結果等の、必要な表示を行うことができる。さらに、図示は省略したが、キーボードやマウス等による操作部も備え、管理者からの指示や操作を受け付けることができる。
【００４６】
この実施形態のデータ管理システムの機能は、このようなハードウェア構成のＰＣ１とＭＦＰ２において図１に示す各プログラムを実行させることによって実現されている。そこで、次にこれらの各プログラムについて説明する。なお、配信サーバ４については後述する。
【００４７】
クライアントモジュール１００は、上述したように、ＰＣ１側で実行させ、ＰＣ１をデータ管理装置として機能させるためのプログラムである。そして、ＧＵＩ表示層１０１、コントローラ１０２、ドキュメントボックスプラグイン１０３、個人文書管理プラグイン１０４、マイコンピュータプラグイン１０５、ＸＭＬ（拡張マークアップ言語）ジェネレータ１０６、ＸＭＬパーサ１０７、ネットファイルラッパ１０８、ＳＯＡＰプロキシ１０９等のプログラムを含む。
【００４８】
ＧＵＩ表示層１０１は、ディスプレイ１８にＧＵＩを表示させ、ユーザからの指示や操作を受け付けるためのプログラムである。データ蓄積装置に蓄積されているデータから処理すべきデータの選択を受け付けたり、印刷等の指示を受け付けたりする基本動作部分のＧＵＩは、このＧＵＩ表示層１０１が表示させる。
【００４９】
コントローラ１０２は、各プラグインとＧＵＩ表示層１０１との間でデータの受け渡しを行うためのプログラムである。
【００５０】
ドキュメントボックスプラグイン１０３、個人文書管理プラグイン１０４、マイコンピュータプラグイン１０５の各プラグインは、それぞれ特定の記憶装置あるいは記憶領域に記憶されているデータにアクセスするためのコマンドを集積したプログラムである。例えば、ドキュメントボックスプラグイン１０３が、ＭＦＰ２に記憶されているデータにアクセスするためのプログラムである。このようなプラグインは基本的には記憶装置毎に、場合によっては記憶装置の記憶領域毎に設けられている。そして、プラグインを記憶装置毎に設けることにより、記憶装置毎に理解できるコマンドやデータの体系が異なる場合でも、ＧＵＩ表示層１０１が受け取ったユーザからの指示を各記憶装置が理解できるコマンドとして送信したり、各記憶装置からの応答をコントローラ１０２やＧＵＩ表示層１０１が理解できるデータとして返したりすることができる。
【００５１】
またプラグインは、必要に応じて、コントローラ１０２やＧＵＩ表示層１０１を介さずにディスプレイ１８にＧＵＩを表示させ、ユーザからの指示や操作を受け付けることもできる。
【００５２】
ＸＭＬジェネレータ１０６は、与えられたデータに従ってＸＭＬ形式のデータを生成するプログラムである。そして、ここでは主にドキュメントボックスプラグイン１０３からの指示に従って、ＭＦＰ２に送信するコマンドを構造化文書形式である拡張マークアップ言語（ＸＭＬ）形式のデータとして生成する処理を行っている。ここで、構造化文書形式とは、種々のタグを用いて含まれるデータ要素の属性や構造を記述することができる表現形式のことであり、ＸＭＬ形式においては、さらにタグの種類や名称も必要に応じて自由に設定することができる。
【００５３】
ＸＭＬパーサ１０７は、ＸＭＬ形式のデータの内容を解釈し、他のプログラムが理解できる形式のデータに変換するプログラムである。そして、ここでは主にＭＦＰ２からのコマンドに対する応答として送られてくるＸＭＬ形式の応答データをドキュメントボックスプラグイン１０３が理解できる形式のデータに変換する処理を行っている。
【００５４】
ネットファイルラッパ１０８は、他の装置とのＸＭＬ形式のデータの授受を行うためのプログラムであり、ＸＭＬ形式のコマンドをＭＦＰモジュール２００のネットファイル２０１に送信したり、ネットファイル２０１からＸＭＬ形式の応答データを受信したりする。そして、このネットファイルラッパ１０８は、通信先が他の装置である場合でも、ドキュメントボックスプラグイン１０３には通信先がＰＣ１内にあるように見せることができるので、ネットファイルラッパ１０８を通して通信を行うことにより、通信先の指定を簡単なもので済ませることができる。なお、このような通信は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）等のプロトコルを用いて行うことができる。
【００５５】
ＳＯＡＰプロキシ１０９は、シンプル・オブジェクト・アクセス・プロトコル（ＳＯＡＰ）を用いて、ＰＣ１と他の装置との間でＸＭＬ形式のデータの授受を行うためのプログラムである。ＳＯＡＰプロキシ１０９は、ＸＭＬジェネレータ１０６で生成されたＸＭＬ形式のコマンドを、ＳＯＡＰエンベロープに格納し、ＳＯＡＰメッセージとしてネットワーク３を通してＭＦＰモジュール２００のＳＯＡＰサービス２０７に送信したり、ＳＯＡＰサービス２０７からＳＯＡＰメッセージを受信し、受信したＳＯＡＰメッセージに格納されているＸＭＬ形式の応答データをドキュメントボックスプラグイン１０３に手渡したりする。インターネットの標準技術に基づくＳＯＡＰプロトコルを利用することにより、従来の分散オブジェクト技術にあったアーキテクチャ依存性等の問題点を解決することができる。
【００５６】
このようなクライアントモジュール１００においては、例えばユーザがＧＵＩ表示層１０１がディスプレイに表示させているＧＵＩからＭＦＰ２に蓄積している文書の印刷を指示した場合には、ＧＵＩ表示層１０１がその印刷指示をコントローラ１０２に渡す。そして、コントローラは、ＭＦＰ２に記憶されているデータにアクセスするためのドキュメントボックスプラグイン１０３に印刷指示を渡す。ドキュメントボックスプラグイン１０３は、必要であればディスプレイにＧＵＩを表示させてパスワードや印刷条件の入力を受け付け、その内容をもとにＸＭＬジェネレータ１０６にＸＭＬ形式のコマンドを生成させ、ネットファイルラッパ１０８を通じてＭＦＰ２で動作するＭＦＰモジュール２００にそのコマンドを送信する。
【００５７】
コマンドがＭＦＰ２で処理されると、その応答データはネットファイルラッパ１０８を介してドキュメントボックスプラグイン１０３が受け取る。そして、これをＸＭＬパーサ１０７に解釈させ、さらにコントローラ１０２が理解できる形式のデータに変換してコントローラ１０２に返す。そして、ユーザに伝達すべき情報がある場合にはコントローラ１０２がデータをＧＵＩ表示層１０１に送って必要な表示を行わせることにより、ユーザの指示に従った処理を他の装置（ここではＭＦＰ２）に要求すると共に、その結果を表示することができる。結果の表示はドキュメントボックスプラグイン１０３が行うようにしてもよい。
【００５８】
なお、ここでは図示を省略したが、ＸＭＬジェネレータ１０６、ＸＭＬパーサ１０７、ネットファイルラッパ１０８、ＳＯＡＰプロキシ１０９は、各プラグイン毎に、使用するコマンド、送られてくる応答データ、必要な通信先等に応じた適切なものを用意している。
【００５９】
一方、ＭＦＰモジュール２００は、ＭＦＰ２側で実行させ、ＭＦＰ２をデータ蓄積装置として機能させるためのプログラムである。そして、ネットファイル２０１及びＳＯＡＰサービス２０７と、コピーアプリ２０２、プリンタアプリ２０３、ＦＡＸアプリ２０４、スキャナアプリ２０５等の各アプリケーションプログラムとを含んでいる。
【００６０】
ネットファイル２０１は、各アプリケーションプログラムに対するコマンドを取りまとめ、そのコマンドに従って各アプリケーションプログラムを動作させてクライアント装置（ここではＰＣ１）に対するサービスを提供するプログラムである。また、コマンドを受信したりそれに対する応答を応答データとして送信したりする通信の制御も行う。
【００６１】
ＳＯＡＰサービス２０７は、クライアントモジュール１００のＳＯＡＰプロキシ１０９から送信されるＳＯＡＰメッセージを受信し、受信したＳＯＡＰメッセージに格納されているＸＭＬ形式のデータをネットファイル２０１に手渡したり、ネットファイル２０１から手渡されたＸＭＬ形式のデータを、ＳＯＡＰエンベロープに格納し、ネットワーク３を通して、ＳＯＡＰメッセージとしてクライアントモジュール１００のＳＯＡＰプロキシに送信する。
【００６２】
コピーアプリ２０２、プリンタアプリ２０３、ＦＡＸアプリ２０４、スキャナアプリ２０５は、ＭＦＰ２の各エンジンや通信手段の動作を制御するアプリケーションであり、ＭＦＰ２をそれぞれコピー機、プリンタ、ＦＡＸ装置、スキャナとして機能させるためのアプリケーションプログラムである。そして、例えばプリンタアプリの場合には、データ蓄積手段２４に蓄積している蓄積データ２０６を印刷出力したり、ＦＡＸアプリ２０４の場合には蓄積データ２０６をＦＡＸ送信したりというように、データ蓄積手段２４に蓄積しているデータに対する処理も行うことができる。
【００６３】
このようなＭＦＰモジュール２００によれば、ＰＣ１からのコマンドに応じて必要なアプリケーションプログラムを動作させ、データ蓄積手段２４に蓄積している文書等のデータの管理・出力・送信等の動作を行うことができる。
〔第１の動作例：図３乃至図９〕
次に、上述した本発明に係るデータ管理システムの第１の動作例として、ＰＣ１がＭＦＰ２の蓄積データ２０６に蓄積されている蓄積文書の文書リストを取得する場合について説明する。ＰＣ１がＭＦＰ２にその蓄積している文書のリストを要求し、この要求に対し、ＭＦＰ２がその蓄積している文書のリストをＰＣ１に送信する。
【００６４】
図３は、本発明の実施形態であるデータ管理システムにおいて、ＰＣ１がＭＦＰ２に蓄積文書の文書リストを送信するように要求するためのコマンドを発する場合に、各プログラムが実行する動作を示す図である。図４は、その文書管理システムにおいて、ＰＣ１がＭＦＰに蓄積文書の文書リストの送信を要求する場合に、ＰＣ１がユーザに各種条件を設定させるために表示する条件設定画面の例を示す図である。図５は、ＰＣ１がＭＦＰ２に文書リストの送信を要求するためにコマンドを生成する図３に示した処理を示すフローチャートである。図６は、文書リストを取得するためのコマンドの例を示す図である。図７は、文書リストを取得するためにＰＣ１が送信したコマンドがＭＦＰ２において正常に受け付けられなかった場合に、ＭＦＰ２が送信する応答データの例を示す図である。図８は、文書リストを取得するためにＰＣ１が送信したコマンドがＭＦＰ２において正常に受け付けられた場合に、ＭＦＰ２が送信する応答データの例を示す図である。
【００６５】
図１及び図２に示したデータ管理システムにおいて、ユーザは、ＰＣ１を操作して、ＭＦＰ２のデータ蓄積手段２４に蓄積されている蓄積文書の文書リストを取得し、ＰＣ１のディスプレイ１８上に表示させることができる。この場合、クライアントモジュール１００を構成する各プログラムは、図３に示す処理を行う。なお、図３において、処理は基本的に下方向に進むものとし、矢印は各プログラム間でデータの受け渡しがあることを示す。
【００６６】
まず、ユーザの操作に応じて、ＧＵＩ表示層１０１がコントローラ１０２に文書リスト取得の指示を伝達する。ＧＵＩ表示層１０１は、同時に、取得すべき文書を蓄積している機器（ここではＭＦＰ２）にアクセスするためのプラグインのＩＤ（プラグインＩＤ）、取得すべき文書のフォルダのＩＤ（フォルダＩＤ）、取得すべき文書の開始番号等の情報もコントローラ１０２に伝達する。コントローラ１０２はこの指示及びデータを受け取ると、プラグインＩＤで指定されたプラグイン（この場合、ドキュメントボックスプラグイン１０３）に対してＭＦＰ２の蓄積文書の文書リストを取得するよう指示を伝達し、同時にフォルダＩＤ及び文書の開始番号等のデータも伝達する。
【００６７】
ドキュメントボックスプラグイン１０３は、フォルダＩＤをアプリケーションＩＤに変換する。フォルダＩＤ及びアプリケーションＩＤは、ＭＦＰ２のアプリケーション（コピーアプリ２０２、プリンタアプリ２０３、ＦＡＸアプリ２０４、またはスキャナアプリ２０５）を特定するためのＩＤである。ＰＣ１は、ＭＦＰ２のアプリケーションを、各アプリケーションと1対1に対応するフォルダとして管理している。フォルダＩＤは、このフォルダを特定するものであり、これが対応するアプリケーションＩＤに変換されてＭＦＰ２に送信される。
【００６８】
フォルダＩＤをアプリケーションＩＤに変換した後、ドキュメントボックスプラグイン１０３は例えば図４に示すような条件設定画面をディスプレイ１８に表示させ、文書リスト取得条件の入力を受け付ける。ここでは、文書リストのソート条件を設定する例を示している。
【００６９】
ユーザが文書リスト取得条件を設定してＯＫを選択すると、ドキュメントボックスプラグイン１０３は、その文書リスト取得条件、アプリケーションＩＤ、及び開始番号数をＸＭＬジェネレータ１０６に送信し、ＭＦＰ２に文書リスト取得を指示するＸＭＬ形式のコマンドを生成させる。ＸＭＬジェネレータ１０６とドキュメントボックスプラグイン１０３とを実行するＣＰＵ１１がコマンド生成手段として機能する。特に、ＸＭＬジェネレータ１０６を実行するＣＰＵ１１が、拡張マークアップ言語生成手段として機能する。
【００７０】
ドキュメントボックスプラグイン１０３は、ＸＭＬジェネレータ１０６が生成したＸＭＬ形式のコマンドを、ネットファイルラッパ１０８を介してＭＦＰ２のネットファイル２０１に送信する。ここでは、ネットファイルラッパ１０８とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド送信手段として機能する。
【００７１】
なお、ＸＭＬ形式のコマンドをＳＯＡＰメッセージとして送信する場合、ドキュメントボックスプラグイン１０３は、ＸＭＬジェネレータ１０６が生成したＸＭＬ形式のコマンドを、ＳＯＡＰプロキシ１０９及びネットワーク３を介してＭＦＰ２のＳＯＡＰサービス２０７に送信する。ＭＦＰ２のＳＯＡＰサービス２０７は、ＳＯＡＰプロキシ１０９から受信したＳＯＡＰメッセージからＸＭＬ形式のコマンドを取り出し、ネットファイル２０１に手渡す。
【００７２】
ＭＦＰ２側では、ＭＦＰモジュール２００のネットファイル２０１が文書リストの送信を要求するＸＭＬ形式のコマンドを受け取り、その内容を解釈する。コマンドに含まれているアプリケーションＩＤに基づき、ネットファイル２０１はアプリケーションＩＤで指定されたアプリケーションに文書リストを要求し、取得した文書リストをＸＭＬ形式の応答データに含めてＰＣ１に返す。ネットファイル２０１は、コマンドを正常に実行することができない場合には、エラーが発生したことを示す応答データをＰＣ１に返す。また、コマンドを正常に処理することができた場合には、要求された文書リストを応答データに含めて送信する。コマンドの受け付けＩＤとしてリクエストＩＤも応答データに含めてもよい。
【００７３】
ＰＣ１側では、ネットファイルラッパ１０８がこの応答データを受け取り、ドキュメントボックスプラグイン１０３に送る。ここでは、ネットファイルラッパ１０８とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１が応答受信手段として機能する。
【００７４】
応答データを受け取ると、ドキュメントボックスプラグイン１０３は、ＸＭＬパーサ１０７にその内容を解釈させる。ここでは、ＸＭＬパーサ１０７とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１が応答解釈手段として機能する。特に、ＸＭＬパーサ１０７を実行するＣＰＵ１１がデータ変換手段として機能する。
【００７５】
そして、ドキュメントボックスプラグイン１０３は、エラーチェックを行ってコマンドを正常に受け付けた旨の応答データが得られたか否かを判断する。
【００７６】
正常に受け付けた旨の応答データでなければ、ドキュメントボックスプラグイン１０３はエラーメッセージをディスプレイ１８に表示させる。ここでは、ドキュメントボックスプラグイン１０３により、このプログラムを実行するＣＰＵ１１が解釈結果を表示手段に表示させる手段として機能する。
【００７７】
そして、コントローラ１０２にはＸＭＬパーサ１０７による応答データの解釈結果に含まれるエラー番号を返す。この場合、コントローラ１０２もＧＵＩ表示層にエラー番号を返して文書リスト取得に関する処理を終了する。
【００７８】
正常に受け付けた旨の応答データであれば、ドキュメントボックスプラグイン１０３は、その応答データに含まれる文書リストをＸＭＬパーサ１０７から取得する。この時点においては、文書リストは、ＭＦＰ２のネットファイルが蓄積文書を管理するためのファイルＩＤで記述されている。ドキュメントボックスプラグイン１０３はこのファイルＩＤを文書ＩＤに変換する。そして、ドキュメントボックスプラグイン１０３は、文書ＩＤに変換された文書リストをＧＵＩ表示層１０１に表示させ、処理を戻して文書リスト取得指示に関する処理を終了する。図示は省略したが、この場合にも、コマンドが正常に処理された旨をディスプレイ１８に表示させるようにするとよい。
【００７９】
このようにした場合、ここでもＣＰＵ１１がドキュメントボックスプラグイン１０３により解釈結果を表示手段に表示させる手段として機能することになる。
【００８０】
このような処理により、ＸＭＬ形式のコマンドを用いてＭＦＰ２に文書リストの送信を要求することができる。
【００８１】
次に、ＰＣ１がＭＦＰ２に蓄積文書の文書リストを要求するＸＭＬ形式のコマンドを生成する処理について説明する。なお、図６にこの処理によって生成されるコマンドの例を示すが、これはプリンタアプリが管理している蓄積文書の文書リストを、ファイルＩＤ０から最大２０文書まで取得する場合の例である。
【００８２】
ドキュメントボックスプラグイン１０３は、コマンドの生成準備が整うと、ＸＭＬジェネレータ１０６に必要なデータを渡して図５に示す処理を実行させる。
【００８３】
まず、ステップＳ１でヘッダ部分及び定型部分を生成する。ヘッダ部分はＸＭＬデータの形式や転送に用いるプロトコル等を示すもので、図６に示す例では第１行目から第3行目までが、ヘッダ部分に相当する。また、４、５行目及び下から１、２行目の<operation>及び<getList>のタグが、文書リストの送信を要求するコマンドに必ず含まれる定型部分である。
【００８４】
次に、ステップＳ２でアプリケーションタグ<application>及び最大文書数タグ<maxNumber>を生成する。図６に示した例では、アプリケーションはプリンタアプリ、最大文書数は２０文書となっている。なお、この例では、文書ファイルをファイルＩＤ０から取得するので、開始番号数を表すタグは省略されている。
【００８５】
次に、ステップＳ３において、ソート条件タグ<sortParam>を生成する。ソート条件は図４の条件設定画面を通してユーザが設定した条件で、図６に示した例では、文書の作成日がソートキーとして選ばれている。
【００８６】
このような処理により、ドキュメントボックスプラグイン１０３が取得したフォルダＩＤ、開始番号数、ソート条件等の情報に基づいてＸＭＬ形式で表現したコマンドを生成することができる。
【００８７】
次に、ＰＣ１が蓄積文書の文書リストを要求するために送信したコマンドに対して、ＭＦＰ２が送信する応答データの解釈処理の例について説明する。
【００８８】
ＭＦＰ２は、図６に示したコマンドを受信すると、例えば図７又は図８に示すようなＸＭＬ形式の応答データを送信する。図７は受信したコマンドを正常に受け付けることができなかった（エラーが発生した）場合の例、図８は正常に受け付けた場合の例である。
【００８９】
これらの応答データを受信すると、ドキュメントボックスプラグイン１０３は、ＸＭＬパーサ１０７にその応答データを渡して図９に示す処理を実行させる。なお、図９においては、実行結果が成功か否か、失敗であればどのようなエラーが発生したかについてのみ解釈する処理を示している。
【００９０】
図９の処理では、まずステップＳ１１で結果タグを探索する。図７及び図８に示す例では、<isSucceeded>タグがこれに相当し、このタグの要素としてコマンド実行の成否が記載されている。
【００９１】
ステップＳ１２では結果タグの要素からコマンド実行の成否を判断し、失敗であればステップＳ１３に進む。ステップＳ１３ではエラータイプタグを探索し、ステップＳ１４でその要素であるエラータイプの情報を取得する。
【００９２】
図７に示した例では、ステップＳ１４で、エラータイプの情報として<errorType>タグの要素である"invalidValue"が取得される。また、エラーが発生したファイルＩＤがファイルＩＤタグ<fileID>に"10"と記載されている。
【００９３】
次のステップＳ１５では、ステップＳ１４で取得したエラータイプを、ドキュメントボックスプラグイン１０３が理解できるエラーコードに変換し、ステップＳ１６でそのエラーコード及びファイルＩＤをドキュメントボックスプラグイン１０３に返して終了する。このエラーコードは、コントローラ１０２やＧＵＩ表示層１０１も理解できるものであるとよい。
【００９４】
ステップＳ１２で成功だった場合には、ステップＳ１７で成功した旨のデータをドキュメントボックスプラグイン１０３に返して終了する。
【００９５】
このような処理により、ＭＦＰ２からの応答データを解釈し、実行結果の成否と、失敗であればどのようなエラーが発生したかの情報を得ることができる。
【００９６】
なお、必要な場合には、適宜タグを探索してエラー情報以外の情報を取得することができる。図８に示した例では、７行目の結果タグ<result>以下にファイルリストタグ<filelist>及びファイルＩＤタグ<fileID>があり、ファイルＩＤで表示された文書リストが記載されている。ドキュメントボックスプラグイン１０３は、このファイルＩＤで表示された文書リストを取得し、ファイルＩＤを文書ＩＤに変換することで、ＭＦＰ２の蓄積データ２０７に蓄積されている蓄積文書の文書リストを取得することができる。
【００９７】
以上説明したデータ管理システムにおいては、データ管理装置からデータ蓄積装置に対して指示を行うためのコマンドを構造化文書形式であるＸＭＬ形式のコマンドで表現するようにしている。そのため、例えクライアントモジュール１００（主にプラグインの部分）のバージョンとＭＦＰモジュール２００（主にネットファイルの部分）のバージョンが異なり、クライアントモジュール１００が生成するコマンドに含まれるデータと、ＭＦＰモジュール２００が理解（解釈）できるデータに過不足がある場合でも、ＭＦＰモジュール２００（ネットファイル２０１）はコマンドに含まれるデータのうち理解できるデータのみを用いてそのコマンドの処理を行うことができる。つまり、ＰＣ１が送信したコマンドをＭＦＰ２が柔軟に解釈して実行することができる。
【００９８】
また、ＭＦＰ２がＰＣ１に送信する応答データも構造化文書形式であるＸＭＬ形式で表現するようにしているので、もしＰＣ１のＸＭＬパーサ１０７が解釈できないデータが応答データに含まれていても、ＸＭＬパーサ１０７は自分が理解できるデータのみをドキュメントボックスプラグイン１０３に返すことができる。したがって、ドキュメントボックスプラグイン１０３は、応答データに含まれるデータのうちＸＭＬパーサ１０７が理解できるデータのみを用いて以後の処理を行うことができる。結果として、例えクライアントモジュール１００またはＭＦＰモジュール２００いずれか一方のみをバージョンアップした場合でも、バージョンアップ前の機能は保証される。
【００９９】
なぜなら、ＸＭＬ形式等の構造化文書形式のコマンド又は応答データを解釈する場合、理解できるタグの要素のみ認識され、理解できないタグの要素は単に無視され、また、読み取ろうとしたデータがない場合でも、特にエラーとはならず、そのデータはないものとして扱われるだけであるからである。
【０１００】
従って、以上説明した構成によれば、データ蓄積装置に対して動作を指示するためのプログラムや装置、あるいはデータ管理システムの汎用性を高め、設計や改良を容易にすることができる。
【０１０１】
また、応答データの解釈結果を表示手段に表示させるようにすれば、ユーザはコマンドが正常に受け付けられたか否か、エラーが生じていればどのようなエラーか、等を容易に認識することができる。
〔第２の動作例：図１０乃至図１７〕
次に、上述したデータ管理システムの第２の動作例として、ＰＣ１からの指示によりＭＦＰ２に文書の蓄積印刷を行わせる例について説明する。
【０１０２】
図１０乃至図１２はそのデータ管理システムにおいてＰＣからＭＦＰに対して蓄積印刷の命令を発する場合の各プログラムの動作を示す一連の図、図１３はその文書管理システムにおいて蓄積印刷を指示する場合の印刷条件設定を要求するＧＵＩの表示例を示す図、図１４は図１２に示した蓄積印刷用ＸＭＬ生成の処理を示すフローチャート、図１５は同じく蓄積印刷用ＸＭＬの例を示す図、図１６は蓄積印刷コマンドを正常に受け付けられなかった場合の応答データの例を示す図、図１７は同じく正常に受け付けた場合の応答データの例を示す図である。
【０１０３】
なお、蓄積印刷とは、ＭＦＰ２のデータ蓄積手段２４に蓄積している文書のデータを予め印刷出力に供すことのできるプリントデータに変換して蓄積しておき、このプリントデータに基づく印刷出力を行う動作のことであり、「再印刷」とも呼ばれる。１つの文書データを複数回に亘って繰り返し印刷出力する場合等にこの機能を用いると、文書データからプリントデータへの変換を印刷出力毎に行わなくてよいため、処理を高速化できる。
【０１０４】
図１及び図２に示したデータ管理システムにおいて、ＰＣ１を操作するユーザがＭＦＰ２のデータ蓄積手段２４にプリントデータとして蓄積されている対象データを指定して蓄積印刷の実行を求めた場合、クライアントモジュール１００を構成する各プログラムは、図１０乃至図１２に示す処理を行う。なお、図１０乃至図１２において、処理は基本的に下方向に進むものとし、矢印は各プログラム間でデータの受け渡しがあることを示す。
【０１０５】
まず、ＧＵＩ表示層１０１がコントローラ１０２に対して蓄積印刷の指示を伝達し、同時に、印刷すべきデータを蓄積している機器（ここではＭＦＰ２）にアクセスするためのプラグインのＩＤ、印刷すべきデータの文書ＩＤ等のデータも伝達する。そしてコントローラ１０２はこの指示を受け取ると、ＩＤで指定されたプラグイン（ここではドキュメントボックスプラグイン１０３）に対して蓄積印刷の指示を伝達し、同時に文書ＩＤ等のデータも伝達する。
【０１０６】
すると、ドキュメントボックスプラグイン１０３は、ＰＣ１側におけるデータの管理ＩＤである文書ＩＤを、ＭＦＰ２側におけるデータの管理ＩＤであるファイルＩＤに変換し、そのファイルＩＤをＸＭＬジェネレータ１０６に送信して、そのファイルＩＤのデータに対して処理を要求する際にパスワードが必要であるか否かを確認するためのパスワード有無チェック用ＸＭＬを生成させる。そして、生成させたパスワード有無チェック用ＸＭＬ形式のコマンドをネットファイルラッパ１０８を介してＭＦＰ２に送信する。
【０１０７】
ＭＦＰ２側では、ＭＦＰモジュール２００のネットファイル２０１がパスワード有無チェック用ＸＭＬ形式のコマンドを受け取ると、そのＸＭＬ形式のコマンドを解釈し、その内容に従って蓄積データ２０６を参照してパスワードの有無を調査し、その結果をＸＭＬ形式の応答データとして生成してＰＣ１に返す。
【０１０８】
そして、この応答データはネットファイルラッパ１０８が受け取り、ドキュメントボックスプラグイン１０３に返す。
【０１０９】
ドキュメントボックスプラグイン１０３は、応答データを受け取るとＸＭＬパーサ１０７にその内容を解釈させ、エラーチェックを行ってパスワード有無チェック用ＸＭＬ形式のコマンドを正常に処理できた旨の応答データが得られたか否かを判断する。
【０１１０】
正常に処理できた旨の応答データでなければ、ドキュメントボックスプラグイン１０３はエラーメッセージをディスプレイ１８に表示させると共に、コントローラ１０２にはＸＭＬパーサ１０７による応答データの解釈結果に含まれるエラー番号を返す。この場合、コントローラ１０２もＧＵＩ表示層にエラー番号を返して蓄積印刷指示に関する処理を終了する。
【０１１１】
正常に処理できた旨の応答データであれば、図１１に示す処理に進み、応答データの解釈結果からパスワードが必要か否かを判断する。パスワードが不要であればそのまま図１２に示す処理に進むが、パスワードが必要であれば、ドキュメントボックスプラグイン１０３はディスプレイ１８にパスワード入力画面を表示してパスワードの入力を要求する。
【０１１２】
そして、パスワードが入力されると、そのパスワードと対象ファイルのファイルＩＤとをＸＭＬジェネレータ１０６に送信して、パスワードが正しいか否かを確認するためのパスワードチェック用ＸＭＬコマンドを生成させる。そして、生成させたパスワードチェック用ＸＭＬコマンドをネットファイルラッパ１０８を介してＭＦＰ２に送信する。
【０１１３】
ＭＦＰ２側では、ＭＦＰモジュール２００のネットファイル２０１がパスワードチェック用ＸＭＬコマンドを受け取ると、そのＸＭＬコマンドを解釈し、その内容に従って蓄積データ２０６を参照してパスワードが正しいか否かを調査し、その結果をＸＭＬ形式の応答データとして生成してＰＣ１に返す。
【０１１４】
そして、この応答データはネットファイルラッパ１０８が受け取り、ドキュメントボックスプラグイン１０３に返す。
【０１１５】
ドキュメントボックスプラグイン１０３は、応答データを受け取るとＸＭＬパーサ１０７にその内容を解釈させ、応答データの解釈結果から入力されたパスワードが正しいパスワードであったか否かを判断する。正しいものであれば、図１２に示す処理に進むが、正しいものでなかったり、そもそもＭＦＰ２側でパスワードチェック用ＸＭＬコマンドを正常に処理できていなかったりした場合には、パスワードの入力画面表示処理まで戻って処理を繰り返す。所定回数繰り返した場合にはエラーメッセージを表示した上でコントローラ１０２とＧＵＩ表示層１０１にエラー番号を返し、処理を終了するようにしてもよい。
【０１１６】
パスワードが不要であるか正しいパスワードが入力されると、図１２に示す処理に進み、ドキュメントボックスプラグイン１０３は例えば図１３に示すようなＧＵＩをディスプレイ１８に表示させ、印刷条件の入力を受け付ける。ここでは、印刷部数の設定を受け付ける例を示しているが、他に用紙の向きや大きさ、ステープルやパンチ穴開け処理の有無等の設定も受け付けるようにしてもよい。また、複数の文書をまとめて印刷する場合には、ここまでの処理を印刷文書毎に繰り返して行うようにするとよい。
【０１１７】
ユーザが印刷条件を設定してＯＫを選択すると、その印刷条件と対象ファイルのファイルＩＤと、必要であればパスワードとをＸＭＬジェネレータ１０６に送信して、ＭＦＰ２に蓄積印刷を指示するＸＭＬ形式の蓄積印刷コマンドを生成させる。ここでは、ＸＭＬジェネレータ１０６とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド生成手段として機能する。特に、ＸＭＬジェネレータ１０６を実行するＣＰＵ１１が拡張マークアップ言語生成手段として機能する。
【０１１８】
そして、生成させたＸＭＬ形式の蓄積印刷コマンドをネットファイルラッパ１０８を介してＭＦＰ２に送信する。ここでは、ネットファイルラッパ１０８とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド送信手段として機能する。
【０１１９】
ＭＦＰ２側では、ＭＦＰモジュール２００のネットファイル２０１が蓄積印刷コマンドを受け取ると、そのコマンドを解釈し、蓄積印刷の指示であるのでプリンタアプリ２０３にその蓄積印刷ジョブの実行を指示し、その結果をＸＭＬ形式の応答データとして生成してＰＣ１に返す。この時点ではまだジョブは実行されていないが、応答データとしては指示を正常に行うことができたか否かを示すデータを返す。また、指示を正常に行うことができた場合には、コマンドの受け付けＩＤとしてリクエストＩＤを応答データに含めるものとする。
【０１２０】
そして、この応答データはネットファイルラッパ１０８が受け取り、ドキュメントボックスプラグイン１０３に返す。ここでは、ネットファイルラッパ１０８とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１が応答受信手段として機能する。
【０１２１】
応答データを受け取ると、ドキュメントボックスプラグイン１０３は、ＸＭＬパーサ１０７にその内容を解釈させる。ここでは、ＸＭＬパーサ１０７とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１が応答解釈手段として機能する。特に、ＸＭＬパーサ１０７を実行するＣＰＵ１１がデータ変換手段として機能する。
【０１２２】
そして、ドキュメントボックスプラグイン１０３は、エラーチェックを行ってコマンドを正常に受け付けた旨の応答データが得られたか否かを判断する。
【０１２３】
正常に受け付けた旨の応答データでなければ、ドキュメントボックスプラグイン１０３はエラーメッセージをディスプレイ１８に表示させる。ここでは、ドキュメントボックスプラグイン１０３により、このプログラムを実行するＣＰＵ１１が解釈結果を表示手段に表示させる手段として機能する。
【０１２４】
そして、コントローラ１０２にはＸＭＬパーサ１０７による応答データの解釈結果に含まれるエラー番号を返す。この場合、コントローラ１０２もＧＵＩ表示層にエラー番号を返して蓄積印刷指示に関する処理を終了する。
【０１２５】
正常に受け付けた旨の応答データであれば、その応答データに含まれるリクエストＩＤを記憶し、コントローラ１０２、ＧＵＩ表示層１０１へと処理を戻して蓄積印刷指示に関する処理を終了する。図示は省略したが、この場合にも、コマンドが正常に処理された旨をディスプレイ１８に表示させるようにするとよい。このようにした場合、ここでもＣＰＵ１１がドキュメントボックスプラグイン１０３により解釈結果を表示手段に表示させる手段として機能することになる。
【０１２６】
このような処理により、ＸＭＬ形式のコマンドを用いてＭＦＰ２に蓄積印刷の指示を行うことができる。
【０１２７】
次に、蓄積印刷コマンド（蓄積印刷用ＸＭＬ）の生成処理の例について説明する。なお、図１５にこの処理によって生成されるコマンドの例を示すが、これはパスワードの設定されているファイルＩＤ１０の文書とパスワードの設定されていないファイルＩＤ２０の文書とを２部ずつ蓄積印刷する場合の例である。
【０１２８】
ドキュメントボックスプラグイン１０３は、蓄積印刷コマンドの生成準備が整うと、ＸＭＬジェネレータ１０６に必要なデータを渡して図１４に示す処理を実行させる。
【０１２９】
まず、ステップＳ２１でヘッダ部分及び定型部分を生成する。ヘッダ部分はＸＭＬデータの形式や転送に用いるプロトコル等を示すもので、図１５に示す例では４行目までのデータに相当する。また、５、６行目及び下から１、２行目の<operation>及び<reprint>のタグが、蓄積印刷コマンドには必ず含まれる定型部分である。
【０１３０】
次に、ステップＳ２２で最初の印刷ファイルを選択し、そのファイルに対応する<targetFile>タグを生成する。そして、ステップＳ２３でそのファイルのファイルＩＤを要素とするファイルＩＤタグを生成する。図１５に示す例では、初めの印刷ファイルのファイルＩＤは１０であるので、ファイルＩＤタグ<fileID>の要素は１０である。
【０１３１】
次に、ステップＳ２４で選択されている印刷ファイルにパスワードがあるか否かを判断し、あればステップＳ２５に進んでパスワードを要素とするパスワードタグを生成してステップＳ２６に進む。なければそのままステップＳ２６に進む。図１５に示す例では、パスワードがあるので、パスワードを要素とするパスワードタグ<password>を生成している。
【０１３２】
ステップＳ２６では、次の印刷ファイルがあるか否か判断し、なければステップＳ２７に進んで印刷条件を指定するための印刷条件タグを生成して終了する。あれば、ステップＳ２８に進んで次の印刷ファイルを選択し、ステップＳ２３に戻って処理を繰り返す。
【０１３３】
図１５に示す例では、次の印刷ファイルがあるので、次のファイルＩＤ２０のファイルについて<targetFile>と<fileID>のタグを生成する。このファイルにはパスワードが設定されていないので、<password>のタグは生成しない。そして、印刷条件タグとしては、印刷部数を要素とする<copyVolume>のタグを生成している。
【０１３４】
このような処理により、ドキュメントボックスプラグイン１０３が取得した印刷すべき文書のファイルＩＤ、パスワード、印刷条件等の情報に基づいてＸＭＬ形式で表現した蓄積印刷コマンドを生成することができる。
【０１３５】
次に、蓄積印刷を指示するコマンドに対する応答データの解釈処理の例について説明する。
【０１３６】
図１５に示したコマンドをＭＦＰ２に送信すると、応答データとしては例えば図１６又は図１７に示すようなＸＭＬ形式の応答データが返される。図１６はコマンドを正常に受け付けられなかった（エラーが発生した）場合の例、図１７は正常に受け付けた場合の例である。
【０１３７】
これらの応答データが返されると、ドキュメントボックスプラグイン１０３は、ＸＭＬパーサ１０７にその応答データを渡して、第１の動作例に関連してすでに説明した図９に示す処理を実行させる。なお、図９においては、実行結果が成功か否か、失敗であればどのようなエラーが発生したかについてのみ解釈する処理を示している。
【０１３８】
図９の処理では、まずステップＳ１１で結果タグを探索する。図１６及び図１７に示す例では、<isSuceeded>タグがこれに相当し、このタグの要素としてコマンド実行の成否が記載されている。
【０１３９】
ステップＳ１２では結果タグの要素からコマンド実行の成否を判断し、失敗であればステップＳ１３に進む。ステップＳ１３ではエラータイプタグを探索し、ステップＳ１４でその要素であるエラータイプの情報を取得する。
【０１４０】
図１６に示した例では、ステップＳ１４で、エラータイプの情報として<errorType>タグの要素である"fileNotFound"が取得される。
【０１４１】
次のステップＳ１５では、ステップＳ１４で取得したエラータイプを、ドキュメントボックスプラグイン１０３が理解できるエラーコードに変換し、ステップＳ１６でそのエラーコードをドキュメントボックスプラグイン１０３に返して終了する。このエラーコードは、コントローラ１０２やＧＵＩ表示層１０１も理解できるものであるとよい。
【０１４２】
ステップＳ１２で成功だった場合には、ステップＳ１７で成功した旨のデータをドキュメントボックスプラグイン１０３に返して終了する。
【０１４３】
このような処理により、ＭＦＰ２からの応答データを解釈し、実行結果の成否と、失敗であればどのようなエラーが発生したかのデータを得ることができる。
【０１４４】
なお、これ以外のデータも必要な場合には、適宜タグを探索してその要素を取得するようにすればよい。例えば、図１７に示した例では８行目のタグ<requestID>の要素を取得すればリクエストＩＤが得られ、下から５行目のタグ<status>の要素を取得すれば、ＭＦＰ２がコマンドを受け付けた時点でのそのコマンドに対応するジョブの状態の情報が得られるが、その詳細についての説明は省略する。
【０１４５】
以上説明したデータ管理システムにおいては、データ管理装置からデータ蓄積装置に対して指示を行うためのコマンドを構造化文書形式であるＸＭＬ形式で表現するようにしているので、送信されたコマンドをＭＦＰ２側でネットファイル２０１によって解釈する場合、クライアントモジュール１００（主にプラグインの部分）のバージョンとＭＦＰモジュール２００（主にネットファイルの部分）のバージョンが異なるためにコマンドに含まれるデータとネットファイル２０１が理解（解釈）できるデータに過不足がある場合でも、ネットファイル２０１はコマンドに含まれるデータのうち理解できるデータのみを用いて以後の処理を行うことができる。
【０１４６】
また、ＭＦＰ２からの応答データも構造化文書形式であるＸＭＬ形式で表現するようにしているので、応答データとＸＭＬパーサ１０７が解釈できるデータに過不足がある場合でも、ドキュメントボックスプラグイン１０３は応答データに含まれるデータのうち理解できるデータのみを用いて以後の処理を行うことができる。すなわち、一方のみをバージョンアップした場合でも、バージョンアップ前の動作は保証される。
【０１４７】
なぜなら、ＸＭＬ形式等の構造化文書形式のデータを解釈する場合、理解できるタグの要素のみ認識され、理解できないタグの要素は単に無視され、また、読み取ろうとしたデータがない場合でも、特にエラーとはならず、そのデータはないものとして扱われるだけであるからである。
【０１４８】
従って、以上説明した構成によれば、データ蓄積装置に対して動作を指示するためのプログラムや装置、あるいはデータ管理システムの汎用性を高め、設計や改良を容易にすることができる。
【０１４９】
また、応答データの解釈結果を表示手段に表示させるようにすれば、ユーザはコマンドが正常に受け付けられたか否か、エラーが生じていればどのようなエラーか、等を容易に認識することができる。
〔第３の動作例：図１８乃至図２５〕
次に、上述したデータ管理システムの第３の動作例として、ＰＣ１からの指示によりＭＦＰ２に文書の蓄積ＦＡＸ送信を行わせる例について説明する。
【０１５０】
図１８乃至図２０は上述したデータ管理システムにおいてＰＣからＭＦＰに対して蓄積ＦＡＸ送信の命令を発する場合の各プログラムの動作を示す図１０乃至図１２と同様な一連の図、図２１はその文書管理システムにおいて蓄積ＦＡＸ送信を指示する場合の印刷条件設定を要求するＧＵＩの表示例を示す図、図２２は図２０に示した蓄積ＦＡＸ送信用ＸＭＬ生成の処理を示すフローチャート、図２３はその蓄積ＦＡＸ送信用ＸＭＬの例を示す図、図２４はその蓄積ＦＡＸ送信コマンドを正常に受け付けられなかった場合の応答データの例を示す図、図２４は同じく正常に受け付けた場合の応答データの例を示す図である。
【０１５１】
なお、蓄積ＦＡＸ送信とは、ＭＦＰ２のデータ蓄積手段２４に蓄積している文書のデータを予めＦＡＸ送信に供すことのできる符号化データに変換して蓄積しておき、この符号化データに基づくＦＡＸ送信を行う動作のことであり、「再ＦＡＸ」とも呼ばれる。１つの文書データを複数回に亘って繰り返しＦＡＸ送信する場合等にこの機能を用いると、文書データから符号化データへの変換をＦＡＸ送信毎に行わなくてよいため、処理を高速化できる。
【０１５２】
図１及び図２に示したデータ管理システムにおいて、ＰＣ１を操作するユーザがＭＦＰ２のデータ蓄積手段２４に符号化データとして蓄積されている対象データを指定して蓄積ＦＡＸ送信の実行を求めた場合、クライアントモジュール１００を構成する各プログラムは、図１８乃至図２０に示す処理を行う。
【０１５３】
まず、ＧＵＩ表示層１０１がコントローラ１０２に対して蓄積ＦＡＸ送信の指示を伝達し、同時にＦＡＸ送信すべきデータを蓄積している機器（ここではＭＦＰ２）にアクセスするためのプラグインのＩＤ、ＦＡＸ送信すべきデータの文書ＩＤ等のデータも伝達する。そして、コントローラ１０２はこの指示を受け取ると、ＩＤで指定されたプラグイン（ここではドキュメントボックスプラグイン１０３）に対して蓄積ＦＡＸ送信の指示を伝達し、同時に、文書ＩＤ等のデータも伝達する。
【０１５４】
すると、ドキュメントボックスプラグイン１０３は、ＰＣ１側におけるデータの管理ＩＤである文書ＩＤを、ＭＦＰ２側におけるデータの管理ＩＤであるファイルＩＤに変換し、そのファイルＩＤをＸＭＬジェネレータ１０６に送信して、そのファイルＩＤのデータに対して処理を要求する際にパスワードが必要であるか否かを確認するためのパスワード有無チェック用ＸＭＬを生成させる。
【０１５５】
以後のパスワード有無チェックとパスワードの正否チェックの処理は、図１０及び図１１を用いて説明した第２の動作例の場合と同様であるので説明を省略する。
【０１５６】
パスワードが不要であるか正しいパスワードが入力されると、図２０に示す処理に進み、ドキュメントボックスプラグイン１０３は例えば図２１に示すようなＧＵＩをディスプレイ１８に表示させ、送信条件の入力を受け付ける。ここでは、送信先の設定を受け付ける例を示しているが、親展送信や送付状の付加等の設定も受け付けるようにしてもよい。また、複数の文書をまとめて印刷する場合には、ここまでの処理を印刷文書毎に繰り返して行うようにするとよいことは、第２の動作例の場合と同様である。
【０１５７】
ユーザが送信条件を設定してＯＫを選択すると、その送信条件と対象ファイルのファイルＩＤと、必要であればパスワードとをＸＭＬジェネレータ１０６に送信して、ＭＦＰ２に蓄積ＦＡＸ送信を指示するＸＭＬ形式の蓄積ＦＡＸ送信コマンドを生成させる。ここでは、ＸＭＬジェネレータ１０６とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド生成手段として機能する。特に、ＸＭＬジェネレータ１０６を実行するＣＰＵ１１が拡張マークアップ言語生成手段として機能する。
【０１５８】
そして、生成させたＸＭＬ形式の蓄積ＦＡＸ送信コマンドをネットファイルラッパ１０８を介してＭＦＰ２に送信する。ここでは、ネットファイルラッパ１０８とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド送信手段として機能する。
【０１５９】
ＭＦＰ２側では、ＭＦＰモジュール２００のネットファイル２０１が蓄積ＦＡＸ送信コマンドを受け取ると、そのコマンドを解釈し、蓄積ＦＡＸ送信の指示であるのでＦＡＸアプリ２０４にその蓄積ＦＡＸ送信ジョブの実行を指示し、その結果をＸＭＬ形式の応答データとして生成してＰＣ１に返す。この時点ではまだジョブは実行されていないが、応答データとしては指示を正常に行うことができたか否かを示すデータを返す。また、指示を正常に行うことができた場合には、コマンドの受け付けＩＤとしてリクエストＩＤを応答データに含めるものとする。
【０１６０】
そして、この応答データはネットファイルラッパ１０８が受け取り、ドキュメントボックスプラグイン１０３に返す。
【０１６１】
以下の処理は、図１２を用いて説明した第２の動作例の場合と同様であるので説明を省略する。
【０１６２】
このような処理により、ＸＭＬ形式のコマンドを用いてＭＦＰ２に蓄積ＦＡＸ送信の指示を行うことができる。
【０１６３】
次に、蓄積ＦＡＸ送信を指示するＸＭＬ形式のコマンドの生成処理の例について説明する。なお、図２３にこの処理によって生成されるコマンドの例を示すが、これはパスワードの設定されているファイルＩＤ１０の文書とパスワードの設定されていないファイルＩＤ２０の文書とを電話番号03-xxxx-yyyyの送信先にする場合の例である。
【０１６４】
ドキュメントボックスプラグイン１０３は、蓄積ＦＡＸ送信コマンドの生成準備が整うと、ＸＭＬジェネレータ１０６に必要なデータを渡して図２２に示す処理を実行させる。
【０１６５】
まず、ステップＳ３１でヘッダ部分及び定型部分を生成する。ヘッダ部分はＸＭＬデータの形式や転送に用いるプロトコル等を示すもので、図２２に示す例では４行目までのデータに相当する。また、５、６行目及び下から１、２行目の<operation>及び<sendFax>のタグが、蓄積ＦＡＸ送信コマンドには必ず含まれる定型部分である。
【０１６６】
次に、ステップＳ３２で最初の送信ファイルを選択し、そのファイルに対応する<targetFile>タグを生成する。ステップＳ３３乃至Ｓ３５の処理は第２の動作例で説明した図１４のステップＳ２３乃至Ｓ２５の処理と同様であるから説明を省略する。
【０１６７】
ステップＳ３６では、次の送信ファイルがあるか否か判断し、なければステップＳ３７に進んで送信条件を指定するための送信条件タグを生成して終了する。あれば、ステップＳ３８に進んで次の送信ファイルを選択し、ステップＳ３３に戻って処理を繰り返す。
【０１６８】
図２３に示す例では、ファイルＩＤ２０のファイルについて<targetFile>と<fileID>のタグを生成し、送信条件タグとしては、送信先情報であることを示す<receiver>のタグと、送信先の電話番号を要素とする<receiverID>のタグを生成している。
【０１６９】
このような処理により、ドキュメントボックスプラグイン１０３が取得したＦＡＸ送信すべき文書のファイルＩＤ、パスワード、送信条件等の情報に基づいてＸＭＬ形式で表現した蓄積ＦＡＸ送信コマンドを生成することができる。
【０１７０】
次に、蓄積ＦＡＸ送信コマンドに対する応答データの例について説明する。
【０１７１】
図２３に示したコマンドをＭＦＰ２に送信すると、応答データとしては例えば図２４又は図２５に示すようなＸＭＬ形式の応答データが返される。図２４はコマンドが正常に処理できなかった（エラーが発生した）場合の例、図２５は正常に処理できた場合の例である。
【０１７２】
これらの応答データに対し、ＸＭＬパーサ１０７によって第１及び第２の動作例で図９を用いて説明したものと同様な処理を行うことにより、そのデータを解釈して実行結果の成否と、失敗であればどのようなエラーが発生したかのデータを得ることができる。
【０１７３】
すなわち、例えば図１６に示すデータと図２４に示すデータとを比較すると３行目のタグが異なるように、応答データ自体の構造は蓄積印刷の場合と異なるが、実行結果の正否を示すデータやエラータイプを同じタグ（<isSucceeded>や<errorType>）の要素としているので、蓄積ＦＡＸ送信コマンドに対する応答データも、ＸＭＬパーサ１０７における処理を蓄積印刷の場合と何ら変更することなく解釈を行うことができる。
【０１７４】
ここで、上述したように、この蓄積ＦＡＸ送信コマンド生成の処理についても、第２の動作例で図１４を用いて説明した蓄積印刷コマンド生成の処理と実質的に同一な部分が多い。すなわち、図２２に示す処理で図１４に示す処理と実質的に異なるのは、ステップＳ３１の定型部分の生成処理と、ステップＳ３７の送信条件タグの生成処理のみである。
【０１７５】
従って、例えば蓄積印刷コマンドの生成及びこのコマンドに対する応答データの解釈を行うプログラムが開発してあれば、蓄積ＦＡＸ送信コマンド生成及びこのコマンドに対する応答の解釈を行うプログラムを開発し、装置に新たな機能を持たせる際に、その大部分を流用して開発を行うことができる。これは、コマンドや応答データを構造化文書形式で表現しているので、タグの追加、削除、変更によってデータ構造の改変を容易に行うことができるためである。
【０１７６】
そこで、以上説明した構成によれば、このような観点からも、データ蓄積装置に対して動作を指示するためのプログラムや装置、あるいはデータ管理システムの汎用性を高め、設計や改良を容易にすることができるといえる。
〔第４の動作例：図２６乃至図３３〕
上述したデータ管理システムの第４の動作例として、ＰＣ１からの指示により、ＭＦＰ２のスキャナ機能により事前に蓄積されたスキャナ蓄積文書を、ネットワークに接続された配信サーバに配信する例について説明する。
【０１７７】
図１に示したサーバモジュール４００は、配信サーバ４で実行されるプログラムである。サーバモジュール４００はＧＵＩ表示層４０１、コントローラ４０２、ネットワークインターフェイス４０３、トレイ管理部４０４等のプログラムを含む。
【０１７８】
ＧＵＩ表示層４０１は、ディスプレイ（表示せず）にＧＵＩを表示させ、ユーザからの指示や操作を受け付けるためのプログラムである。ユーザはＧＵＩ表示層４０１を介して、配信サーバを管理することができる。コントローラ４０２は、他の各プログラムとＧＵＩ表示層４０１との間でデータの受け渡しを行うためのプログラムである。トレイ管理部４０４には、複数のトレイ４１０、４１１、...がさらに設けられている。各トレイ４１０、４１１、...には、データを分類整理して蓄積することができる。
【０１７９】
図２６乃至図２８は、上述したデータ管理システムにおいて、ＰＣからＭＦＰに対してスキャナ蓄積文書配信の命令を発する場合の各プログラムの動作を示す一連の図である。図２９はその文書管理システムにおいてスキャナ蓄積文書の配信を指示する場合の配信条件設定を要求するＧＵＩの表示例を示す図である。図３０は図２８に示したスキャナ蓄積文書の配信を要求するＸＭＬ形式のコマンドを生成する処理を示すフローチャートである。図３１はそのスキャナ蓄積文書の配信を要求するＸＭＬ形式のコマンドの例を示す図である。図３２はそのスキャナ蓄積文書の配信を要求するコマンドを正常に受け付けられなかった場合に、ＭＦＰ２がＰＣ１に送信する応答データの例を示す図である。図３３は同じく正常に受け付けた場合に、ＭＦＰ２がＰＣ１に送信する応答データの例を示す図である。
【０１８０】
なお、スキャナ蓄積文書の配信とは、ＭＦＰ２のスキャナ機能により事前にデータ蓄積手段２４に蓄積しているスキャナ蓄積文書のデータを、ネットワークに接続されている配信サーバ４に仮想的に設けられたトレイに、ネットワークを経由して送信、蓄積する動作のことであり、「スキャナ再配信」とも呼ばれる。
【０１８１】
図１及び２に示したデータ管理システムにおいて、ＰＣ１を操作するユーザがＭＦＰ２のデータ蓄積手段２４に蓄積されている対象データを指定してスキャナ再配信の実行を求めた場合、クライアントモジュール１００を構成する各プログラムは、図２６乃至図２８に示す処理を行う。
【０１８２】
まず、ＧＵＩ表示層１０１がコントローラ１０２に対してスキャナ再配信の指示を伝達し、同時にスキャナ再配信すべきデータを蓄積している機器（ここではＭＦＰ２）にアクセスするためのプラグインのＩＤ、スキャナ再配信すべきデータの文書ＩＤ等のデータも伝達する。そして、コントローラ１０２はこの指示を受け取ると、ＩＤで指定されたプラグイン（ここではドキュメントボックスプラグイン１０３）に対してスキャナ再配信の指示を伝達し、同時に、文書ＩＤ等のデータも伝達する。
【０１８３】
すると、ドキュメントボックスプラグイン１０３は、ＰＣ１側におけるデータの管理ＩＤである文書ＩＤを、ＭＦＰ２側におけるデータの管理ＩＤであるファイルＩＤに変換し、そのファイルＩＤをＸＭＬジェネレータ１０６に送信して、そのファイルＩＤのデータに対して処理を要求する際にパスワードが必要であるか否かを確認するためのパスワード有無チェック用にＸＭＬ形式のコマンドを生成させる。
【０１８４】
以後のパスワード有無チェックとパスワードの正否チェックの処理は、図１０及び図１１を用いて説明した第２の動作例の場合と同様であるので説明を省略する。
【０１８５】
パスワードが不要であるか正しいパスワードが入力されると、図２８に示す処理に進み、ドキュメントボックスプラグイン１０３は例えば図２９に示すようなＧＵＩをディスプレイ１８に表示させ、配信条件の入力を受け付ける。ここでは、配信先の設定を受け付ける例を示しているが、送付状の付加等の設定を受け付けるようにしてもよい。また、複数の文書をまとめて配信する場合には、ここまでの処理を文書毎に繰り返して行うようにするとよいことは、第２の動作例の場合と同様である。
【０１８６】
ユーザが配信条件を設定してＯＫを選択すると、その配信条件と対象ファイルのファイルＩＤと、必要であればパスワードとをＸＭＬジェネレータ１０６に送信して、ＭＦＰ２にスキャナ再配信を指示するＸＭＬ形式のスキャナ再配信コマンドを生成させる。ここでは、ＸＭＬジェネレータ１０６とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド生成手段として機能する。特に、ＸＭＬジェネレータ１０６を実行するＣＰＵ１１が拡張マークアップ言語生成手段として機能する。
【０１８７】
そして、生成させたＸＭＬ形式のスキャナ再配信コマンドをネットファイルラッパ１０８を介してＭＦＰ２に送信する。ここでは、ネットファイルラッパ１０８とドキュメントボックスプラグイン１０３とにより、これらのプログラムを実行するＣＰＵ１１がコマンド送信手段として機能する。
【０１８８】
ＭＦＰ２側では、ＭＦＰモジュール２００のネットファイル２０１がスキャナ再配信コマンドを受け取り、そのコマンドを解釈する。コマンドを解釈した結果、スキャナ再配信を指示するものであると判断すると、ネットファイル２０１は、スキャナアプリ２０５にそのスキャナ再配信ジョブの実行を指示する。
【０１８９】
スキャナアプリ２０５は、ネットファイル２０１からスキャナ再配信の指示を受けると、蓄積データ２０６に蓄積されているスキャナ蓄積文書の中から、指定されたファイルＩＤを持つスキャナ蓄積文書を取得し、配信先の情報とともにネットファイル２０１に送る。ネットファイル２０１は、スキャナ蓄積文書及び配信先の情報を受け取ると、指定された配信先にそのスキャナ蓄積文書を配信する。
【０１９０】
配信サーバ４側では、ネットワークサービス４０３が、このスキャナ蓄積文書及び配信先トレイを示す情報を受け取る。受け取ったスキャナ蓄積文書は、コントローラ４０２経由でトレイ管理部４０４に送られ、ユーザが指定した配信先トレイに保管される。トレイに保管されたスキャナ蓄積文書は、データ蓄積装置２に配信を指示したユーザのみでなく、そのスキャナ蓄積文書を参照する権限を有するユーザがパスワード等を入力することにより、参照することができる。
【０１９１】
一方、ＭＦＰ２は、その配信の結果を示すＸＭＬ形式の応答データを生成して、ＰＣ１に送信する。応答データとしては指示を正常に行うことができたか否かを示すデータを返す。また、指示を正常に行うことができた場合には、コマンドの受け付けＩＤとしてリクエストＩＤを応答データに含めるものとする。
【０１９２】
そして、この応答データはネットファイルラッパ１０８が受け取り、ドキュメントボックスプラグイン１０３に返す。
【０１９３】
以下の処理は、図１２を用いて説明した第２の動作例の場合と同様であるので説明を省略する。
【０１９４】
このような処理により、ＸＭＬ形式のコマンドを用いてＭＦＰ２にスキャナ再配信の指示を行うことができる。
【０１９５】
次に、スキャナ再配信を指示するＸＭＬ形式のコマンドの生成処理の例について説明する。なお、図３１にこの処理によって生成されるコマンドの例を示すが、これはパスワードの設定されているファイルＩＤ１０のスキャナ蓄積文書とパスワードの設定されていないファイルＩＤ２０のスキャナ蓄積文書とを配信サーバのトレイ"xxxx"に配信する場合の例である。
【０１９６】
ドキュメントボックスプラグイン１０３は、スキャナ再配信コマンドの生成準備が整うと、ＸＭＬジェネレータ１０６に必要なデータを渡して図３０に示す処理を実行させる。
【０１９７】
まず、ステップＳ４１でヘッダ部分及び定型部分を生成する。ヘッダ部分はＸＭＬデータの形式や転送に用いるプロトコル等を示すもので、図３１に示す例では４行目までのデータに相当する。また、５、６行目及び下から１、２行目の<operation>及び<distScan>のタグが、スキャナ再配信コマンドには必ず含まれる定型部分である。
【０１９８】
次に、ステップＳ４２で最初の配信ファイルを選択し、そのファイルに対応する<targetFile>タグを生成する。ステップＳ４３乃至Ｓ４５の処理は第２の動作例で説明した図１４のステップＳ２３乃至Ｓ２５の処理と同様であるから説明を省略する。
【０１９９】
ステップＳ４６では、次の配信ファイルがあるか否か判断し、なければステップＳ４７に進んで配信条件を指定するための配信条件タグを生成して終了する。あれば、ステップＳ４８に進んで次の配信ファイルを選択し、ステップＳ４３に戻って処理を繰り返す。
【０２００】
図３１に示す例では、ファイルＩＤ２０のファイルについて<targetFile>と<fileID>のタグを生成し、配信条件タグとしては、配信先情報であることを示す<tray>のタグと、送信先のトレイＩＤを要素とする<trayID>のタグを生成している。
【０２０１】
このような処理により、ドキュメントボックスプラグイン１０３が取得したスキャナ再配信すべき文書のファイルＩＤ、パスワード、配信条件等の情報に基づいてＸＭＬ形式で表現したスキャナ再配信コマンドを生成することができる。
【０２０２】
次に、スキャナ再配信コマンドに対する応答データの例について説明する。
【０２０３】
図３１に示したコマンドをＭＦＰ２に送信すると、応答データとしては例えば図３２又は図３３に示すようなＸＭＬ形式の応答データが返される。図３２はコマンドが正常に処理できなかった（エラーが発生した）場合の例、図３３は正常に処理できた場合の例である。
【０２０４】
これらの応答データに対し、ＸＭＬパーサ１０７によって第２の動作例で図９を用いて説明したものと同様な処理を行うことにより、そのデータを解釈して実行結果の成否と、失敗であればどのようなエラーが発生したかのデータを得ることができる。
【０２０５】
すなわち、例えば図１６に示すデータと図３２に示すデータとを比較すると３行目のタグが異なるように、応答データ自体の構造は蓄積印刷の場合と異なるが、実行結果の正否を示すデータやエラータイプを同じタグ（<isSucceeded>や<errorType>）の要素としているので、スキャナ再配信コマンドに対する応答データも、ＸＭＬパーサ１０７における処理を蓄積印刷の場合と何ら変更することなく解釈を行うことができる。
【０２０６】
ここで、上述したように、このスキャナ再配信コマンド生成の処理についても、第２の動作例で図１４を用いて説明した蓄積印刷コマンド生成の処理と実質的に同一な部分が多い。すなわち、図３０に示す処理で図１４に示す処理と実質的に異なるのは、ステップＳ４１の定型部分の生成処理と、ステップＳ４７の送信条件タグの生成処理のみである。
【０２０７】
従って、例えば蓄積印刷コマンドの生成及びこのコマンドに対する応答データの解釈を行うプログラムが開発してあれば、スキャナ再配信コマンド生成及びこのコマンドに対する応答データの解釈を行うプログラムを開発し、装置に新たな機能を持たせる際に、その大部分を流用して開発を行うことができる。これは、コマンドや応答データを構造化文書形式で表現しているので、タグの追加、削除、変更によってデータ構造の改変を容易に行うことができるためである。
【０２０８】
そこで、以上説明した構成によれば、このような観点からも、データ蓄積装置に対して動作を指示するためのプログラムや装置、あるいはデータ管理システムの汎用性を高め、設計や改良を容易にすることができるといえる。
【０２０９】
なお、以上説明した実施形態及び動作例において、データ蓄積装置としてコピー、プリンタ、ＦＡＸ、スキャナの機能を有するＭＦＰ２を用いた例について説明したが、これは必須ではなく、例えば第1の動作例の動作を行うためにはプリンタ機能、第２の動作例の動作を行うためにはプリンタ機能、第３の動作例の動作を行うためにはＦＡＸ機能、第４の動作例の動作を行うためにはスキャナ機能を有するものであればよい。また、データ蓄積装置として用いる装置はＭＦＰに限られるものではなく、データ蓄積手段を設けた装置と画像形成手段、ファクシミリ通信手段、またはスキャナ配信手段を設けた装置を別体として構成してもよい。
【０２１０】
また、動作例においては文書リスト取得、蓄積印刷、ＦＡＸ送信及びスキャナ配信の例について説明したが、他のコマンドについてももちろんこの発明を適用することができる。汎用性を高め、設計や改良を容易にすることができる点がこの発明の特徴であるので、次々と新しい機能を追加して装置やプログラムをバージョンアップすれば、この特徴を活かし、さらに利便性の高いデータ管理システムを構築することができる。
【０２１１】
さらにまた、以上説明した実施形態においては、データ管理装置、データ蓄積装置、配信サーバを１台ずつ設けたデータ管理システムを例として説明したが、データ管理装置やデータ蓄積装置を複数設け、どのデータ管理装置からどのデータ蓄積装置へコマンドを発してもよいようにシステムを構成することはもちろん可能である。
【０２１２】
また、上述したＰＣ１のＣＰＵ１１を上述した各手段として機能させるためのプログラムは、予めＰＣ１のＨＤＤ１４等に記憶させておくほか、記録媒体であるＣＤ−ＲＯＭあるいはフレキシブルディスク、ＳＲＡＭ、ＥＥＰＲＯＭ、メモリカード等の不揮発性記録媒体（メモリ）に記録して提供することもできる。そのメモリに記録されたプログラムをＰＣ１にインストールしてＣＰＵ１１に実行させるか、ＣＰＵ１１にそのメモリからこのプログラムを読み出して実行させることにより、上述した各手段として機能させることができる。
【０２１３】
さらに、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードして実行させることも可能である。
【図面の簡単な説明】
【０２１４】
【図１】クライアント装置（ＰＣ）、デジタル複合機（ＭＦＰ）及び配信サーバとによって構成された、本発明の実施形態であるデータ管理システムのソフトウェア構成を示す構成図である。
【図２】実施形態であるデータ管理システムのハードウェア構成を示すブロック図である。
【図３】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに文書リストの送信を要求する場合に各プログラムが実行する動作を示す図である。
【図４】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに文書リストの送信を要求する場合に表示する条件設定画面の例を示す図である。
【図５】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに文書リストの送信を要求するためにコマンドを生成する動作を示すフローチャートである。
【図６】ＰＣがＭＦＰに文書リストの送信を要求するために生成したコマンドの例を示す図である。
【図７】図６に示したコマンドを正常に受け付けることができなかった場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図８】図６に示したコマンドをＭＦＰが正常に受け付けた場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図９】ＰＣがＭＦＰから受信した応答データを解釈する動作を示すフローチャートである。
【図１０】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに蓄積文書の印刷を要求する場合に各プログラムが実行する動作を示す図である。
【図１１】図１０の続きの動作を示す図である。
【図１２】図１１の続きの動作を示す図である。
【図１３】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに蓄積文書の印刷を要求する場合に表示する条件設定画面の例を示す図である。
【図１４】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに蓄積文書の印刷を要求するためにコマンドを生成する動作を示すフローチャートである。
【図１５】ＰＣがＭＦＰに蓄積文書の印刷を要求するために生成したコマンドの例を示す図である。
【図１６】図１５に示したコマンドを正常に受け付けることができなかった場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図１７】図１５に示したコマンドを正常に受け付けた場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図１８】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに蓄積文書のＦＡＸ送信を要求する場合に各プログラムが実行する動作を示す図である。
【図１９】図１８の続きの動作を示す図である。
【図２０】図１９の続きの動作を示す図である。
【図２１】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに蓄積文書のＦＡＸ送信を要求する場合に表示する条件設定画面の例を示す図である。
【図２２】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰに蓄積文書のＦＡＸ送信を要求するためにコマンドを生成する動作を示すフローチャートである。
【図２３】ＰＣがＭＦＰに蓄積文書のＦＡＸ送信を要求するために生成したコマンドの例を示す図である。
【図２４】図２３に示したコマンドを正常に受け付けることができなかった場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図２５】図２３に示したコマンドを正常に受け付けた場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図２６】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰにスキャナ蓄積文書の再配信を要求する場合に各プログラムが実行する動作を示す図である。
【図２７】図２６の続きの動作を示す図である。
【図２８】図２７の続きの動作を示す図である。
【図２９】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰにスキャナ蓄積文書の再配信を要求する場合に表示する条件設定画面の例を示す図である。
【図３０】実施形態であるデータ管理システムにおいて、ＰＣがＭＦＰにスキャナ蓄積文書の再配信を要求するためにコマンドを生成する動作を示すフローチャートである。
【図３１】ＰＣがＭＦＰにスキャナ蓄積文書の再配信を要求するために生成したコマンドの例を示す図である。
【図３２】図３１に示したコマンドを正常に受け付けることができなかった場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【図３３】図３１に示したコマンドを正常に受け付けた場合に、ＭＦＰがＰＣに送信する応答データの例を示す図である。
【符号の説明】
【０２１５】
１：ＰＣ                  ２：ＭＦＰ
３：ネットワーク          ４：配信サーバ
１１、２１、４１：ＣＰＵ        
１２、２２、４２：ＲＯＭ  １３、２３、４３：ＲＡＭ
１４、４４：ＨＤＤ        １５、４５：ディスプレイＩ／Ｆ
１６、２５、４６：ネットワークＩ／Ｆ
１７、２９、４７：システムバス
１８：ディスプレイ        ２０：制御部
２４：データ蓄積手段      ２６：エンジンＩ／Ｆ
２７：スキャナＩ／Ｆ    ２８：ファクシミリ通信手段
３１：プリンタエンジン    ３２：スキャナエンジン
１００：クライアントモジュール
１０１：ＧＵＩ表示層      １０２：コントローラ
１０３：ドキュメントボックスプラグイン
１０４：個人文書管理プラグイン
１０５：マイコンピュータプラグイン
１０６：ＸＭＬジェネレータ  １０７：ＸＭＬパーサ
１０８：ネットファイルラッパ
１０９：ＳＯＡＰプロキシ
２００：ＭＦＰモジュール  ２０１：ネットファイル
２０２：コピーアプリ      ２０３：プリンタアプリ
２０４：ＦＡＸアプリ      ２０５：スキャナアプリ
２０６：蓄積データ
２０７：ＳＯＡＰサービス
４００：サーバモジュール  ４０１：ＧＵＩ表示層
４０２：コントローラ      ４０３：ネットワークサービス
４０４：トレイ管理部      ４１０、４１１：トレイ
【図１】
2008289170.tif 000003
【図２】
2008289170.tif 000004
【図３】
2008289170.tif 000005
【図４】
2008289170.tif 000006
【図５】
2008289170.tif 000007
【図６】
2008289170.tif 000008
【図７】
2008289170.tif 000009
【図８】
2008289170.tif 000010
【図９】
2008289170.tif 000011
【図１０】
2008289170.tif 000012
【図１１】
2008289170.tif 000013
【図１２】
2008289170.tif 000014
【図１３】
2008289170.tif 000015
【図１４】
2008289170.tif 000016
【図１５】
2008289170.tif 000017
【図１６】
2008289170.tif 000018
【図１７】
2008289170.tif 000019
【図１８】
2008289170.tif 000020
【図１９】
2008289170.tif 000021
【図２０】
2008289170.tif 000022
【図２１】
2008289170.tif 000023
【図２２】
2008289170.tif 000024
【図２３】
2008289170.tif 000025
【図２４】
2008289170.tif 000026
【図２５】
2008289170.tif 000027
【図２６】
2008289170.tif 000028
【図２７】
2008289170.tif 000029
【図２８】
2008289170.tif 000030
【図２９】
2008289170.tif 000031
【図３０】
2008289170.tif 000032
【図３１】
2008289170.tif 000033
【図３２】
2008289170.tif 000034
【図３３】
2008289170.tif 000035