(57)【要約】【目的】  受信したデータに対してデータ処理を行うデータ処理装置において、外部装置にアクセスして取得したデータに対してデータ処理を行う機能のない装置に、容易にこの機能を追加できるようにする。【構成】  データ蓄積装置１０に蓄積されているデータの処理を行うデータ処理装置２０に、ユーザからの指示に基づき、データ蓄積装置１０に対して蓄積されているデータの取得要求を行うデータ取得要求部２３と、自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理機能部２１と、自身の第２のポートを監視して、そのポートで受信した、上記取得要求に対応するデータ蓄積装置１０からのデータに対して、データ処理機能部２１が取扱い可能な形式へのデータ変換を行い、上記第１のポートにループバックするデータ変換機能部２２とを設けた。【選択図】        図１
2007328558.tif 000002
【特許請求の範囲】
【請求項１】
外部装置に蓄積されているデータの処理を行うデータ処理装置であって、
ユーザからの指示に基づき、前記外部装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、
自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段と、
自身の前記第１のポートと異なる第２のポートを監視して、そのポートで受信した、前記取得要求に対応する前記外部装置からのデータに対して、前記データ処理手段が取扱い可能な形式へのデータ変換を行い、前記第１のポートにループバックするデータ変換手段とを設けたことを特徴とするデータ処理装置。
【請求項２】
請求項１記載のデータ処理装置であって、
前記データ変換手段が、各々自身の前記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、前記第２のポートで受信した、前記取得要求に対応する前記外部装置からのデータを、前記データ処理手段が取り扱うことのできる形式のデータに変換して、前記第１のポートにループバックする手段であることを特徴とするデータ処理装置。
【請求項３】
請求項１又は２記載のデータ処理装置であって、
前記外部装置にアクセスして、前記外部装置から取得可能な文書のリストのデータを取得する文書リスト取得手段と、
該手段が取得したリストの内容を表示手段に表示させる表示制御手段とを設け、
前記データ要求手段は、前記表示手段に表示されたリストから文書が選択された場合に、前記外部装置に対してその文書のデータの取得要求を行う手段であることを特徴とするデータ処理装置。
【請求項４】
請求項１乃至３のいずれか一項記載のデータ処理装置であって、
前記データ処理手段が行うデータ処理は、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換であることを特徴とするデータ処理装置。
【請求項５】
請求項１乃至４のいずれか一項記載のデータ処理装置であって、
前記データ変換手段が行うデータ変換は、データの解凍、復号化、プリンタ言語変換、およびＨＴＭＬドキュメントから所定の要素の内容を取り出す処理のいずれかを含むことを特徴とするデータ処理装置。
【請求項６】
データ蓄積装置と、そのデータ蓄積装置に蓄積されているデータを処理するデータ処理装置とを備えたデータ処理システムであって、
前記データ処理装置に、
ユーザからの指示に基づき、前記データ蓄積装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、
自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段と、
自身の前記第１のポートと異なる第２のポートを監視して、そのポートで受信した、前記取得要求に対応する前記データ蓄積装置からのデータに対して、前記データ処理手段が取扱い可能な形式へのデータ変換を行い、前記第１のポートにループバックするデータ変換手段とを設け、
前記データ蓄積装置に、
データを蓄積するデータ蓄積手段と、
前記取得要求に応じて、要求されたデータを前記データ蓄積手段から取得して前記データ処理装置の前記第２のポートに送信する手段とを設けたことを特徴とするデータ処理システム。
【請求項７】
請求項６記載のデータ処理システムであって、
前記データ処理装置の前記第２のデータ変換手段が、各々自身の前記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、前記第２のポートで受信した、前記取得要求に対応する前記データ蓄積装置からのデータを、前記データ処理手段が取り扱うことのできる形式のデータに変換して、前記第１のポートにループバックする手段であることを特徴とするデータ処理システム。
【請求項８】
請求項６又は７のいずれか一項記載のデータ処理システムであって、
前記データ処理装置において、
前記データ処理手段が行うデータ処理が、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換であることを特徴とするデータ処理システム。
【請求項９】
外部装置に蓄積されているデータの処理を行うデータ処理装置に、
ユーザからの指示に基づき外部装置に対して蓄積されているデータの取得要求を行うデータ要求手順と、
自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手順と、
自身の前記第１のポートと異なる第２のポートを監視して、そのポートで受信した、前記取得要求に対応する前記外部装置からのデータに対して、前記データ処理手順で取扱い可能な形式へのデータ変換を行い、前記第１のポートにループバックするデータ変換手順とを実行させることを特徴とするデータ処理装置の制御方法。
【請求項１０】
請求項９記載のデータ処理装置の制御方法であって、
前記データ変換手順が、各々の手順で自身の前記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手順で監視するポートにループバックする複数の変換手順で複数段のデータ変換処理を行うことにより、前記第２のポートで受信した、前記取得要求に対応する前記外部装置からのデータを、前記データ処理手順で取り扱うことのできる形式のデータに変換して、前記第１のポートにループバックする手順であることを特徴とするデータ処理装置の制御方法。
【請求項１１】
請求項９又は１０のいずれか一項記載のデータ処理装置の制御方法であって、
前記データ処理手順で行うデータ処理が、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換であることを特徴とするデータ処理装置の制御方法。
【請求項１２】
自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段を有するデータ処理装置に、
ユーザからの指示に基づき、前記外部装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、
自身の前記第１のポートと異なる第２のポートを監視して、そのポートで受信した、前記取得要求に対応する前記外部装置からのデータに対して、前記データ処理手段が取扱い可能な形式へのデータ変換を行い、前記第１のポートにループバックするデータ変換手段とを付加することを特徴とするデータ変換機能付加方法。
【請求項１３】
請求項１２記載のデータ変換機能付加方法であって、
前記データ変換手段が、各々自身の前記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、前記第２のポートで受信した、前記取得要求に対応する前記外部装置からのデータを、前記データ処理手段が取り扱うことのできる形式のデータに変換して、前記第１のポートにループバックする手段であることを特徴とするデータ変換機能付加方法。
【請求項１４】
請求項１２又は１３記載のデータ変換機能付加方法であって、
前記データ処理装置に、
前記外部装置にアクセスして、前記外部装置から取得可能な文書のリストのデータを取得する文書リスト取得手段と、
該手段が取得したリストの内容を表示手段に表示させる表示制御手段とをさらに付加し、
前記データ要求手段は、前記表示手段に表示されたリストから文書が選択された場合に、前記外部装置に対してその文書のデータの取得要求を行う手段であることを特徴とするデータ変換機能付加方法。
【請求項１５】
請求項１２乃至１４のいずれか一項記載のデータ変換機能付加方法であって、
前記データ処理手段が行うデータ処理は、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換であることを特徴とするデータ変換機能付加方法。
【請求項１６】
請求項１２乃至１５のいずれか一項記載のデータ変換機能付加方法であって、
前記データ変換手段が行うデータ変換は、データの解凍、復号化、プリンタ言語変換、ＨＴＭＬドキュメントから所定の要素の内容を取り出す処理のいずれかを含むことを特徴とするデータ変換機能付加方法。
【請求項１７】
外部装置に蓄積されているデータの処理を行うデータ処理装置を制御するコンピュータを、
ユーザからの指示に基づき、前記外部装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、
自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段と、
自身の前記第１のポートと異なる第２のポートを監視して、そのポートで受信した、前記取得要求に対応する前記外部装置からのデータに対して、前記データ処理手段が取扱い可能な形式へのデータ変換を行い、前記第１のポートにループバックするデータ変換手段として機能させるためのプログラム。
【請求項１８】
請求項１７記載のプログラムであって、
前記データ変換手段が、各々自身の前記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、前記第２のポートで受信した、前記取得要求に対応する前記外部装置からのデータを、前記データ処理手段が取り扱うことのできる形式のデータに変換して、前記第１のポートにループバックする手段であることを特徴とするプログラム。
【請求項１９】
請求項１７又は１８記載のプログラムであって、
前記データ処理手段が行うデータ処理は、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換であることを特徴とするプログラム。
【請求項２０】
請求項１７乃至１９のいずれか一項記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、外部装置に蓄積されているデータの処理を行うデータ処理装置、このようなデータ処理装置とデータ蓄積装置とを備えたデータ処理システム、このようなデータ処理装置の制御方法、このようなデータ処理装置に対するデータ変換機能付加方法、コンピュータにこのようなデータ処理装置を制御させるためのプログラム、およびこのようなプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来から、特定のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ変換を行うデータ処理装置が知られている。
そして、このようなデータ処理装置の具体例としては、例えば、ＰＣ（パーソナルコンピュータ）から受信したプリントデータに基づいて印刷を行うプリンタが挙げられる。
【０００３】
図２６に、このようなＰＣとプリンタの機能構成を示す。
この図に示すように、ＰＣ８０には、一般的に、ワードプロセッサや表計算、ドローイングを始めとする種々の機能を実現するためのアプリケーション（アプリ）８１を備えており、ユーザは、このアプリケーション８１で取り扱う文書や図等をプリントするために、アプリケーション８１に対して印刷の指示を行う。
【０００４】
また、ＰＣ８０には、アプリケーション８１が出力する、プリントすべき画像の内容を、プリンタ９０が処理できる形式のプリンタ言語で記載されたプリントデータ（プリント言語形式のプリントデータ）に変換するプリンタドライバ８２を備えている。そして、アプリケーション８１は、ユーザが印刷を指示した場合に、指定されたプリンタと対応するプリンタドライバ８２に、出力する画像の内容を示すデータを渡し、プリンタドライバ８２が、そのデータを、ユーザが指定したプリンタが処理できる形式のプリントデータに変換してポートモニタ８３のスプールディレクトリにスプールする。
【０００５】
ポートモニタ８３は、ＰＣ８０とプリンタ９０との間のデータの転送を行うドライバであり、スプールディレクトリにスプールされたデータを、使用するプリンタのアドレスの、９１００番ポートに送信する。このポートは、プリンタが一般にプリントデータの受信に使用するポートである。
【０００６】
一方、プリンタ９０には、実際にプリント動作を行うエンジン部であるプリントエンジン９３と、プリンタアプリ９１とを備えている。
そして、プリンタアプリ９１は、起動している間は常に９１００番ポートをリスンし、ここにデータが送られてくると、そのデータが特定のプリンタ言語で記載されたプリントデータであることを前提に、そのプリントデータを、プリントエンジン９３にプリントを行わせるための画像データに変換する。この処理は、例えばプリントデータに基づいて画像メモリに描画を行い、ビットマップ形式の画像データを生成する処理である。そして、その画像データに基づいてプリントエンジン９３を駆動することにより、用紙上に、受信したプリントデータに基づく画像を形成させることができる。
【０００７】
この場合において、プリンタアプリ９１は、開発効率向上や処理負荷低減の観点から、受信したデータの形式はチェックせず、どのようなデータを受信した場合でも、同じように処理を行うようにすることが行われている。そして、このようにした場合でも、データの送信元のＰＣの側でプリンタアプリ９１が処理できるような形式のデータを送信する制御を確実に行えば、プリンタ９０を問題なく動作させることができる。
【０００８】
このようなプリンタについては、例えば特許文献１に記載されている。
【特許文献１】特開２００４−２５２９８４号公報、段落００６１  また、プリンタ等の画像形成装置にファイアウォールの外側からコマンドを送る手法としては、例えば特許文献２及び特許文献３に記載されているものが挙げられる。
【特許文献２】特開２００３−３２３３６０号公報
【特許文献３】特開２００４−５４１８号公報
【０００９】
また、近年、セキュリティ志向の高まりから、上述のようなプリンタにおいて、ＰＣから印刷を指示した際、ユーザが望んだタイミングで印刷が行えるようにするため、ＰＣから受信したプリントデータを一時的に保存しておき、その後プリンタの操作パネルからパスワードを入力することにより、保存したデータに基づく印刷物を得られる機能を設けることも行われている。このようなプリンタによれば、ユーザがプリンタの前に移動しないうちに印刷物が出力されて放置され、他人に持ち去られてしまうような事態を防止できる。
このようなプリンタについては、特許文献４に記載されている。
【特許文献４】特開２００１−１７５４４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、特許文献４に記載のように、ＰＣから送信したプリントデータをプリンタに保存するとすると、保存の必要があるデータとすぐ印刷すべきデータの区別、保存するデータの管理、そのデータへのアクセス権の管理といった処理をプリンタ側で行わなければならない。従って、プリンタにおいて印刷の実行に必要な機能が複雑なものになり、図２６を用いて説明したような、従来の構成を有効に活用できないという問題があった。また、一旦プリンタに蓄積したデータを、他のプリンタから利用することが難しいという問題もあった。
【００１１】
そこで、このような問題を解決するため、ＰＣからプリントデータを一旦サーバに送信し、保存の必要があるデータについてはそのサーバに蓄積しておいて、印刷すべきタイミングでプリンタ側からそのサーバにアクセスしてプリントデータを取得するようにすることが考えられる。このようにすれば、保存するデータの管理、そのデータへのアクセス権の管理といった機能は、サーバ側で担うことができるため、プリンタに持たせる機能は単純化することができる。
【００１２】
しかしながら、プリンタからサーバ等の外部装置にアクセスしてデータを取得するための仕組みについては、ＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）やＨＴＴＰといった（HyperText Transfer Protocol）といった標準的なプロトコルを利用すると開発の効率がよい一方、図２６を用いて説明したような、特定の形式のデータしか処理できないプリンタでは、そのままでは標準的なプロトコルを用いた通信に対応することができない。
【００１３】
このため、プリンタに、サーバ等の外部装置にアクセスし、その外部装置からデータを取得して印刷を行う機能を追加する場合には、標準的なプロトコルを使用して取得したデータを印刷するための仕組みを別途開発しなければならず、開発効率が悪いという問題があった。
このような問題は、上述したプリンタに限らず、受信したデータに対してそのデータの形式によらず特定のデータ処理を行うようなデータ処理装置について、同様に存在する問題である。
【００１４】
この発明は、このような問題を解決し、受信したデータに対してデータ処理を行うデータ処理装置において、外部装置にアクセスして取得したデータに対してデータ処理を行う機能のない装置に、容易にこの機能を追加できるようにすることを目的とする。特に、外部装置にアクセスして取得したデータに対してデータ処理を行う機能を有する装置を、既存の資源を利用して容易に開発できるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、この発明のデータ処理装置は、外部装置に蓄積されているデータの処理を行うデータ処理装置において、ユーザからの指示に基づき、上記外部装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段と、自身の上記第１のポートと異なる第２のポートを監視して、そのポートで受信した、上記取得要求に対応する上記外部装置からのデータに対して、上記データ処理手段が取扱い可能な形式へのデータ変換を行い、上記第１のポートにループバックするデータ変換手段とを設けたものである。
【００１６】
このようなデータ処理装置において、上記データ変換手段を、各々自身の上記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、上記第２のポートで受信した、上記取得要求に対応する上記外部装置からのデータを、上記データ処理手段が取り扱うことのできる形式のデータに変換して、上記第１のポートにループバックする手段とするとよい。
【００１７】
さらに、上記外部装置にアクセスして、上記外部装置から取得可能な文書のリストのデータを取得する文書リスト取得手段と、その手段が取得したリストの内容を表示手段に表示させる表示制御手段とを設け、上記データ要求手段を、上記表示手段に表示されたリストから文書が選択された場合に、上記外部装置に対してその文書のデータの取得要求を行う手段とするとよい。
【００１８】
さらに、上記データ処理手段が行うデータ処理を、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換とするとよい。
さらにまた、上記データ変換手段が行うデータ変換を、データの解凍、復号化、プリンタ言語変換、およびＨＴＭＬドキュメントから所定の要素の内容を取り出す処理のいずれかを含むものとするとよい。
【００１９】
また、この発明のデータ処理システムは、データ蓄積装置と、そのデータ蓄積装置に蓄積されているデータを処理するデータ処理装置とを備えたデータ処理システムにおいて、上記データ処理装置に、ユーザからの指示に基づき、上記データ蓄積装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段と、自身の上記第１のポートと異なる第２のポートを監視して、そのポートで受信した、上記取得要求に対応する上記データ蓄積装置からのデータに対して、上記データ処理手段が取扱い可能な形式へのデータ変換を行い、上記第１のポートにループバックするデータ変換手段とを設け、上記データ蓄積装置に、データを蓄積するデータ蓄積手段と、上記取得要求に応じて、要求されたデータを上記データ蓄積手段から取得して上記データ処理装置の上記第２のポートに送信する手段とを設けたものである。
【００２０】
このようなデータ処理システムにおいて、上記データ処理装置の上記第２のデータ変換手段を、各々自身の上記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、上記第２のポートで受信した、上記取得要求に対応する上記データ蓄積装置からのデータを、上記データ処理手段が取り扱うことのできる形式のデータに変換して、上記第１のポートにループバックする手段とするとよい。
さらに、上記データ処理装置において、上記データ処理手段が行うデータ処理を、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換とするとよい。
【００２１】
また、この発明のデータ処理装置の制御方法は、外部装置に蓄積されているデータの処理を行うデータ処理装置に、ユーザからの指示に基づき外部装置に対して蓄積されているデータの取得要求を行うデータ要求手順と、自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手順と、自身の上記第１のポートと異なる第２のポートを監視して、そのポートで受信した、上記取得要求に対応する上記外部装置からのデータに対して、上記データ処理手順で取扱い可能な形式へのデータ変換を行い、上記第１のポートにループバックするデータ変換手順とを実行させるものである。
【００２２】
このようなデータ処理装置の制御方法において、上記データ変換手順を、各々の手順で自身の上記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手順で監視するポートにループバックする複数の変換手順で複数段のデータ変換処理を行うことにより、上記第２のポートで受信した、上記取得要求に対応する上記外部装置からのデータを、上記データ処理手順で取り扱うことのできる形式のデータに変換して、上記第１のポートにループバックする手順とするとよい。
さらに、上記データ処理手順で行うデータ処理を、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換とするとよい。
【００２３】
また、この発明のデータ変換機能付加方法は、自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段を有するデータ処理装置に、ユーザからの指示に基づき、上記外部装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、自身の上記第１のポートと異なる第２のポートを監視して、そのポートで受信した、上記取得要求に対応する上記外部装置からのデータに対して、上記データ処理手段が取扱い可能な形式へのデータ変換を行い、上記第１のポートにループバックするデータ変換手段とを付加するものである。
【００２４】
このようなデータ変換機能付加方法において、上記データ変換手段を、各々自身の上記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、上記第２のポートで受信した、上記取得要求に対応する上記外部装置からのデータを、上記データ処理手段が取り扱うことのできる形式のデータに変換して、上記第１のポートにループバックする手段とするとよい。
【００２５】
また、上記データ処理装置に、上記外部装置にアクセスして、上記外部装置から取得可能な文書のリストのデータを取得する文書リスト取得手段と、その手段が取得したリストの内容を表示手段に表示させる表示制御手段とをさらに付加し、上記データ要求手段を、上記表示手段に表示されたリストから文書が選択された場合に、上記外部装置に対してその文書のデータの取得要求を行う手段とするとよい。
【００２６】
さらに、上記データ処理手段が行うデータ処理を、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換とするとよい。
さらにまた、上記データ変換手段が行うデータ変換を、データの解凍、復号化、プリンタ言語変換、ＨＴＭＬドキュメントから所定の要素の内容を取り出す処理のいずれかを含むものとするとよい。
【００２７】
また、この発明のプログラムは、外部装置に蓄積されているデータの処理を行うデータ処理装置を制御するコンピュータを、ユーザからの指示に基づき、上記外部装置に対して蓄積されているデータの取得要求を行うデータ要求手段と、自身の第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行うデータ処理手段と、自身の上記第１のポートと異なる第２のポートを監視して、そのポートで受信した、上記取得要求に対応する上記外部装置からのデータに対して、上記データ処理手段が取扱い可能な形式へのデータ変換を行い、上記第１のポートにループバックするデータ変換手段として機能させるためのプログラムである。
【００２８】
このようなプログラムにおいて、上記データ変換手段を、各々自身の上記第１のポートと異なる特定のポートを監視し、そのポートで受信したデータに対してデータ変換を行って、次段の変換手段が監視するポートにループバックする変換手段を複数有し、これらの各変換手段によって複数段のデータ変換処理を行うことにより、上記第２のポートで受信した、上記取得要求に対応する上記外部装置からのデータを、上記データ処理手段が取り扱うことのできる形式のデータに変換して、上記第１のポートにループバックする手段とするとよい。
さらに、上記データ処理手段が行うデータ処理を、プリンタ言語で記述されたデータから、プリントエンジンに画像形成を行わせるための画像データへの変換とするとよい。
【００２９】
また、この発明の記録媒体は、上記のいずれかのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００３０】
以上のようなこの発明のデータ処理装置、データ処理システム、データ処理装置の制御方法、またはデータ変換機能付加方法によれば、受信したデータに対してデータ処理を行うデータ処理装置において、外部装置にアクセスして取得したデータに対してデータ処理を行う機能のない装置に、容易にこの機能を追加できるようにすることができる。また、外部装置にアクセスして取得したデータに対してデータ処理を行う機能を有する装置を、既存の資源を利用して容易に開発できるようにすることもできる。
【００３１】
また、この発明のプログラムによれば、コンピュータにデータ処理装置を制御させて上記のような機能を実現させ、同様な効果を得ることができる。
この発明の記録媒体によれば、上記のプログラムを記憶していないコンピュータにそのプログラムを読み出させて実行させ、上記の効果を得ることができる。
【発明を実施するための最良の形態】
【００３２】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔第１の実施形態：図１乃至図５〕
まず、図１に、この発明のデータ処理システムの第１の実施形態を含むシステムの構成を示す機能ブロック図を示す。
この実施形態のデータ処理システムは、図１に示すデータ蓄積装置１０とデータ処理装置２０とによって構成される。そして、情報処理装置３０等の、データ処理装置２０に処理させるべきデータを生成する装置から送信されるデータをデータ蓄積装置１０が蓄積しておき、データ処理装置２０がデータ蓄積装置１０にアクセスしてそのデータを取得し、処理するシステムである。
また、これらの各装置の間の通信経路としては、ＬＡＮ（ローカルエリアネットワーク）のようなネットワークを始め、有線・無線を問わず、任意の通信経路を利用することができる。
【００３３】
このようなデータ処理システムにおいて、データ蓄積装置１０は、通信制御部１１とデータ蓄積部１２とを備えている。
そして、通信制御部１１は、データ蓄積装置１０と、データ処理装置２０及び情報処理装置３０との間の通信を制御する機能を有し、より具体的には、情報処理装置３０から受信したデータをデータ蓄積部１２に蓄積する機能と、データ処理装置２０からのデータ取得要求に応じて、データ蓄積部１２に蓄積したデータをデータ処理装置２０の第２のポートに送信する機能とを有する。
【００３４】
また、データ蓄積部１２は、通信制御部１１が情報処理装置３０から受信したデータを蓄積する機能を有するデータ蓄積手段である。なお、データ蓄積部１２に蓄積するデータは、データ処理装置２０に送信すべきもののみでもよいし、そのデータに付随して受信したデータに基づき、識別用のインデックス等を付して蓄積するようにしてもよい。
【００３５】
一方、データ処理装置２０は、データ処理機能部２１，データ変換機能部２２，データ取得要求部２３，操作受付部２４を有する。
そして、データ処理機能部２１は、データ処理手段であり、第１のポートを監視して、そのポートで受信したデータに対してそのデータの形式によらず特定のデータ処理を行う機能を有する。
【００３６】
なお、データ処理機能部２１による処理後のデータは、外部に出力しても、データ処理装置２０の内部で別の用途に使用してもよい。また、ここでいう「データの形式によらず」とは、アプリケーションが処理対象として認識するレベルでの形式を指すものである。装置間でデータを送受信する際には、通信プロトコルに従ってデータパケットに所定の形式のヘッダやフッタを付すことが行われるので、ポートに入力するデータ自体には、一部所定の形式であることが必要な部分もあるが、この部分のデータについては考慮しないものとする。
【００３７】
データ変換機能部２２は、データ変換手段であり、第１のポートとは異なる第２のポートを監視して、そのポートで受信した、データ取得要求に応じてデータ蓄積装置１０から送信されてくるデータに対して、データ処理機能部２１が取り扱うことのできる形式へのデータ変換を行って、その変換後のデータをループバックにより第１のポートに送信する機能を有する。
【００３８】
データ取得要求部２３は、データ要求手段であり、ユーザからの指示に基づき、データ蓄積装置１０に対して、データ蓄積部１２に蓄積されているデータの取得を要求するデータ取得要求を送信する機能を有する。
操作受付部２４は、その指示を受け付けるためのユーザインタフェースである。この指示は、ハードウェアキー、タッチパネル、ＧＵＩ（グラフィカル・ユーザ・インタフェース）、その他の各種センサ等、任意の方式により受け付け可能である。また、データ蓄積装置１０からどのデータを取得するかの指定も受け付け、その内容をデータ取得要求に反映させることができるようにしてもよい。
なお、データ蓄積装置１０のアドレス等の宛先情報は、データ取得要求部２３が参照できるように予め設定しておくようにする。あるいは、宛先情報の指定も操作受付部２４が受け付けるようにしてもよい。
【００３９】
また、情報処理装置３０は、送信データ生成部３１と通信制御部３２を備えている。
そして、送信データ生成部３１は、データ処理装置２０に処理させるデータを生成する機能を有する。通信制御部３２は、送信データ生成部３１が生成したデータを、そのデータの蓄積を要求する蓄積要求と共にデータ蓄積装置１０に送信し、データ蓄積部１２に蓄積させる機能を有する。なお、データ蓄積装置１０のアドレス等の宛先情報は、通信制御部３２が参照できるように予め設定しておくようにする。
【００４０】
次に、図２に、上述したデータ処理装置２０のハードウェア構成を示す。
この図に示すように、データ処理装置２０は、ＣＰＵ１２１，ＲＯＭ１２２，ＲＡＭ１２３，不揮発性メモリ１２４，通信インタフェース（Ｉ／Ｆ）１２５，操作部１２６を備え、これらがシステムバス１２７により接続されている。
【００４１】
そして、ＣＰＵ１２１は、データ処理装置２０全体を統括制御する制御手段であり、ＲＯＭ１２２や不揮発性メモリ１２４に記録された種々のプログラムを実行することにより、データ処理手段，データ変換手段等の各手段として機能し、この実施形態の特徴に係る種々の機能を実現する。
ＲＯＭ１２２は、不揮発性の記憶手段であり、ＣＰＵ１２１が実行するプログラムや、固定的なパラメータ等を記憶する。ＲＯＭ１２２を書き換え可能な記憶手段として構成し、これらのデータをアップデートできるようにしてもよい。
【００４２】
ＲＡＭ１２３は、一時的に使用するデータを記憶したり、ＣＰＵ１２１のワークメモリとして使用したりする記憶手段である。
不揮発性メモリ１２４は、フラッシュメモリやＨＤＤ（ハードディスクドライブ）等による書き換え可能な不揮発性記憶手段であり、ＣＰＵ１２１が実行するプログラムや、装置の電源がＯＦＦされた後でも保持しておく必要があるパラメータの値等を記憶する。
【００４３】
通信Ｉ／Ｆ１２５は、データ処理装置２０をネットワークに接続するためのインタフェースであり、例えばイーサネット（登録商標）方式の通信を行うためのネットワークインタフェースとすることができる。そして、ネットワークを介して他の装置と通信を行う場合、この通信Ｉ／Ｆ１２５とＣＰＵ１２１とが通信手段として機能する。なお、通信Ｉ／Ｆ１２５は、ネットワークの規格や使用する通信プロトコル等に応じて適切なものを用意する。また、複数の規格に対応させて複数の通信Ｉ／Ｆ１２５を設けることも当然可能である。
操作部１２６は、ユーザによる操作を受け付けるためのキーやボタン、あるいはタッチパネル等の操作手段である。液晶ディスプレイ（ＬＣＤ）や発光ダイオード（ＬＥＤ）等による表示部を兼ね備えていてもよい。
【００４４】
なお、図２には示していないが、データ処理装置２０に、外部に対して通信以外の物理的な出力を行うためのエンジン部を設けてもよい。このエンジン部は、例えばデータ処理装置２０がレーザプリンタであれば、電子写真方式によるプリントエンジンであり、ＣＰＵ１２１がこれらの動作を適切に制御することにより、データ処理装置２０にプリント動作を実行させることができる。
また、ユーザにメッセージやＧＵＩ等を表示したり、ユーザの操作を受け付けたりするための操作部及び表示部を設けてもよい。
また、データ蓄積装置１０及び情報処理装置３０のハードウェア構成も、図３に示したものと同様、ＣＰＵ，ＲＯＭ，ＲＡＭ，ＨＤＤ，通信Ｉ／Ｆを設けたものとすればよく、例えば公知のコンピュータを用いることができる。
【００４５】
そして、これらのハードウェアに、図１を用いて説明したような機能を実現させることにより、データ処理装置２０において、データ処理機能部２１が、処理するデータの取得を第１のポートから行う機能しか有さず、かつその第１のポートがデータ蓄積装置１０との通信に適さない場合でも、データ蓄積装置１０との間の通信に適する第２のポートでデータ蓄積装置１０からデータを受信してそのデータをデータ処理機能部２１に処理させ、最終的にデータ処理機能部２１による処理結果を得ることができる。
すなわち、データ処理装置２０は何らかの通信プロトコルに従ってデータ取得要求をデータ蓄積装置１０に送信し、データ蓄積装置１０は、その要求に対する応答として、データ処理装置２０に対し、処理させるデータを送信する。データ処理装置２０における第２のポートは、その応答を受信するポートである。
【００４６】
そして、データ変換機能部２２は、第２のポートで受信したデータを、データ処理機能部２１が取り扱うことのできる形式へ変換し、変換後のデータを第１のポートにループバックする。すると、データ処理機能部２１は、そのデータが初めから第１のポートに送信されてきたかの如く、ループバックされてきたデータを処理し、処理後のデータを出力することができる。
従って、データ処理装置２０によれば、データ蓄積装置１０からの要求に応じて第１のポートにデータを送信させるようなプロトコルを開発しなくても、データ蓄積装置１０から第２のポートに、一般的な通信プロトコルに従ってデータを送信させるだけで、第１のポートにデータを送信させた場合と同等な処理結果を得ることができる。
【００４７】
なお、情報処理装置３０の通信制御部３２が、送信データ生成部３１が生成したデータを直接データ処理装置２０の第１のポートに送信して処理させることができるようにしてもよい。この場合でも、データ処理装置２０のデータ処理機能部２１は、受信したデータに対して、上記の特定のデータ処理を行う。データ処理装置２０にデータ変換機能部２２を設けたとしても、このようなデータ処理機能部２１の機能はいささかも妨げられることはない。
【００４８】
データ処理装置２０においては、このように、データ処理機能部２１がデータを受け取る受け口を、情報処理装置３０から受け取る場合と、第２のデータ変換機能部２２から受け取る場合とで共通化しているため、データ処理機能部２１（を実現するためのソフトウェアやハードウェア）が開発済みである場合、それ自体を改変する必要は全くない。そして、データ変換機能部２２及びデータ取得要求部２３を実現するためのソフトウェアやハードウェアを追加するだけで、データ処理装置２０に上述した機能を実現させることができる。
従って、データ処理装置２０が、データ蓄積装置１０に要求してデータを取得し、そのデータをデータ処理機能部２１による処理に供することができるようにしつつ、このような機能を有する装置を、既存の資源を利用して容易に開発できるようにすることができる。
【００４９】
ただし、データ処理機能部２１は、受信したデータの形式によらず特定のデータ変換を行うようにしているため、処理対象として想定している形式以外の形式のデータを受信してしまうと、変換処理が意味を成さないものとなり、出力が全く無意味なデータになってしまう。従って、情報処理装置３０がデータ処理装置２０の第１のポートに直接データを送信する場合には、情報処理装置３０の側で、データ処理機能部２１が処理可能な形式のデータを送信する必要がある。
【００５０】
ところで、近年では、セキュリティを考慮し、ＬＡＮと外部ネットワークとの境界だけでなく、ＬＡＮ環境内にもファイアウォールを設けることが行われるようになっている。
従って、図３に示すように、データ蓄積装置１０及び情報処理装置３０とデータ処理装置２０との間に、ファイアウォール７０が設けられることも考えられる。そしてこの場合、データ処理装置２０は、データ蓄積装置１０及び情報処理装置３０から、ファイアウォール７０越しにデータを受信することになる。
【００５１】
しかし、ファイアウォール７０は、通常、予め定めた特定のポート以外のポートを使用した通信を遮断し、不正な通信を防止できるような設定とすることが行われる。従って、第１のポートがデータ処理装置２０独自のプロトコルでの通信に用いるポートであると、ファイアウォール７０により通信が遮断され、情報処理装置３０からデータ処理装置２０の第１のポートへ直接のデータを送信しようとしても、送信できないことも考えられる。
【００５２】
しかし、ＨＴＴＰやＨＴＴＰＳ（HyperText Transfer Protocol Security）、あるいはＬＤＡＰ（Lightweight Directory Access Protocol），ＰＯＰ３（Post Office Protocol 3），ＳＭＴＰ（Simple Mail Transport Protocol），ＦＴＰ（File Transfer Protocol）のような通常よく使用されるプロトコルを用いた通信に使用されるポート、すなわちこれらのプロトコルを用いた通信に使用する旨が予約されているポートは、ファイアウォール７０において使用が許可される場合が多い。
【００５３】
このため、ファイアウォール７０があっても、データ処理装置２０がこのようなプロトコルを用いてデータ蓄積装置１０からデータを取得することは可能である場合が多い（この場合にデータ処理装置２０がデータを受け取るポートが第２のポートである）。従って、情報処理装置３０からデータ処理装置２０に直接データを送信できなくても、一旦データ蓄積装置１０に蓄積することにより、データ処理装置２０側からそのデータを取得させて処理させることができる。
この場合に、データ処理機能部２１により、情報処理装置３０からのデータが初めから第１のポートに送信されてきたかの如く、データの処理結果が得られることは、上述の通りである。
【００５４】
従って、データ処理装置２０には、データ変換機能部２２を、ファイアウォール７０を通過できる通信プロトコルに対応させることにより、ファイアウォール７０により外部装置から第１のポートへのデータ送信が遮断されるような環境下であっても、データ処理装置２０側で、ファイアウォールのない環境での使用を想定して設計したデータ処理機能部２１に一切変更を加えることなく、また、ファイアウォール７０の設定を変更することもなく、外部からデータを受信してデータ処理機能部２１に処理させることができるという効果もある。
【００５５】
なお、データ変換機能部２２も、データ処理機能部２１と同様、受信したデータの形式によらず特定のデータ変換を行うようにしてもよい。しかし、データ変換機能部２２が処理するデータは、上述したようなＨＴＴＰやＨＴＴＰＳを始めとする、よく使用されるプロトコルを用いた転送に適した形式のデータとすることが好ましい。そして、このような形式のデータには、種々のパラメータを含め、データの内容を示すことがよく行われるため、このようなパラメータの値を参照し、その値に応じて処理の内容を変えるようにしてもよい。
【００５６】
例えば、基本処理として、ＨＴＴＰメッセージの所定のタグの中身を取り出す処理を行い、ＨＴＴＰメッセージ中に、その所定のタグの中身が圧縮されている旨の情報が含まれていた場合には、取り出したデータにさらに解凍処理を行う等である。
また、図３では、情報処理装置３０とデータ蓄積装置１０との間にはファイアウォール７０を示していない。しかし、ここにファイアウォール７０があったとしても、情報処理装置３０とデータ蓄積装置１０との間でも上記のような通常よく使用されるプロトコルを用いた通信を行うようにすれば、これらの装置の間での通信も可能な場合が多いと考えられる。
【００５７】
また、以上説明してきたようなデータ処理システムにおいて、図４に示すように、データ処理装置２０′にデータ変換機能部を複数段に設け、順次、次段のデータ変換機能部で処理可能なデータ形式への変換を行って、次段のデータ変換機能部がデータを受け付けるポートに、変換後のデータをループバックさせるようにすることも考えられる。この場合、各データ変換機能部が、データ変換手段に該当する。図では３段だが、それ以上のデータ変換機能部を設けてよいことは、もちろんである。
【００５８】
そして、このようにした場合でも、データ処理装置２０′がデータ蓄積装置１０からデータを受信するポートを第３のポートとし、第２のデータ変換機能部２６にデータ蓄積装置１０から送信されてくるデータを適切に処理できる機能を設けておけば、データ処理装置２０′の側では、各データ変換機能部がデータ変換を実行しつつ、最終的にデータ処理機能部２１による処理結果を得ることができる。
このような構成は、データ変換を入れ子式に行う必要がある場合に有効である。
【００５９】
また、図４の構成において、多段の変換処理のうち、途中のデータ変換機能部もデータ蓄積装置１０から送信されてくるデータに対応可能であれば、データ蓄積装置１０がその途中のデータ変換機能部が監視するポートにデータを送信してきた場合でも、そのデータ変換機能部以降の変換処理を実行させることが可能である。すなわち、多段の変換処理のうち、途中の工程から処理を開始させる制御も可能である。
【００６０】
また、図５に示すように、データ処理装置２０″側で、複数のデータ変換機能部が、データ処理機能部２１が取り扱うことのできる形式へのデータ変換を行って、処理後のデータを第１のポートにループバックさせるような構成も可能である。このようにしても、最初にデータを受け付けるデータ変換機能部が、データ蓄積装置１０から送信されてくるデータに対応可能であれば、最終的にデータ処理機能部２１による処理結果を得ることができる。
このような構成は、データ処理装置２０″がデータ蓄積装置１０との間で複数のプロトコルを用いた通信を行い、かつ各プロトコルについてデータ処理装置２０″がデータを受信するポートが異なる場合に有効である。もちろん、図４に示した構成と、図５に示した構成とを組み合わせてもよい。
【００６１】
〔第２の実施形態：図６乃至図１７〕
次に、この発明のデータ処理システムの、より具体的な第２の実施形態について説明する。
図６及び図７は、その第２の実施形態であるプリントシステムを含むシステムの構成を示す機能ブロック図である。図６には、サーバ装置４０とプリンタ５０とがＨＴＴＰを用いて通信を行う場合のデータの流れを、図７には、同じくＨＴＴＰＳを用いて通信を行う場合のデータの流れをそれぞれ示している。なお、これらの図においては、ソフトウェアにより実現される機能を示すブロックに、そのソフトウェアの名称を付している。また、以後、説明の便宜のため、ＣＰＵがソフトウェアを実行することによって行う処理や動作を、そのソフトウェアが処理や動作を行うものとして説明することもある。
【００６２】
この実施形態のプリントシステムは、図６及び図７に示すサーバ装置４０とプリンタ５０とによって構成される。そして、ＰＣ６０等のプリント実行を指示する装置から送信されるプリントデータをサーバ装置４０が蓄積しておき、プリンタ５０がサーバ装置４０にアクセスしてそのプリントデータを取得し、そのプリントデータに従った印刷を行うシステムである。
また、これらの各装置の間の通信経路としては、ＬＡＮ（ローカルエリアネットワーク）のようなネットワークを始め、有線・無線を問わず、任意の通信経路を利用することができる。
【００６３】
このようなプリントシステムにおいて、サーバ装置４０は、通信制御部４１とデータ蓄積部４２とを備えている。
そして、通信制御部４１は、ＨＴＴＰ又はＨＴＴＰＳを用いた外部装置との間の通信を制御する機能を有する。また、ＰＣ６０から受信したプリントデータをデータ蓄積部４２に蓄積する機能と、プリンタ５０からの取得要求に応じて、データ蓄積部４２に蓄積したプリントデータをプリンタ５０のＨＴＴＰポートに送信する機能も有する。また、プリンタ５０から、データ蓄積部４２に蓄積したプリントデータファイルのリストの送信を要求された場合に、そのリストのデータを作成してプリンタ５０に送信する機能も有する。
また、データ蓄積部４２は、通信制御部４１がＰＣ６０から受信したプリントデータ及びこれに関連するデータを蓄積する機能を有するデータ蓄積手段である。
【００６４】
一方、プリンタ５０は、プリンタアプリ５１，ＨＴＴＰ通信用アプリ５２，ＨＴＴＰＳ通信用アプリ５３，パネル制御モジュール５４，操作パネル５５，プリントエンジン５６を備えている。
そして、プリンタアプリ５１は、データ処理手段であり、第１のポートである９１００番ポートを監視して、ここで何らかのデータを受信した場合、そのデータを特定のプリンタ言語で記載されたプリントデータとして取り扱い、そのプリントデータを、プリントエンジン５６にプリントを行わせるための画像データに変換する処理を行う。すなわち、背景技術の項で図２６を用いて説明したプリンタ９０のプリンタアプリ９１と同様な機能を有する。
【００６５】
また、ＨＴＴＰ通信用アプリ５２は、データ要求手段及びデータ変換手段であり、サーバ装置４０等の外部装置との間でＨＴＴＰを用いた通信を行う機能を有する。より具体的には、パネル制御モジュール５４から受け取る操作内容の情報により、ユーザからサーバ装置４０に蓄積されている文書の印刷指示があったことを検出した場合に、サーバ装置４０に対してその文書に係るプリントデータの送信を要求する取得要求のＨＴＴＰリクエストを送信する機能を有する。また、その要求に応じて送信されてくるＨＴＴＰレスポンスを第２のポートであるＨＴＴＰポートで受信した場合に、その構造を解析すると共に、プリンタアプリ５１が取り扱うことができる形式のプリントデータが記載されているはずの特定のタグ内の要素を取り出す機能も有する。そして、取り出したプリントデータをループバックにより９１００番ポートに送信する機能も有する。
【００６６】
さらに、ＨＴＴＰ通信用アプリ５２は、文書リスト取得手段でもあり、パネル制御モジュール５４から受け取る操作内容の情報により、ユーザからサーバ装置４０に蓄積されているプリントデータのリストの表示指示があったことを検出した場合に、サーバ装置４０に対してそのリストのデータの送信を要求するＨＴＴＰリクエストを送信する機能を有する。また、その要求に応じて送信されてくるＨＴＴＰレスポンスを第２のポートであるＨＴＴＰポートで受信し、その構造を解析すると共に、リストのデータが記載されているはずの特定のタグ内の要素を取り出してパネル制御モジュール５４に渡し、操作パネル５５にサーバ装置４０に蓄積されている文書のリストを表示させる機能も有する。
なお、ＨＴＴＰポートは、８０番ポートや８０８０番ポート等、ＨＴＴＰを用いた通信に通常使用するポートである。
【００６７】
また、ＨＴＴＰＳ通信用アプリ５３は、使用するポートがＨＴＴＰＳポート、より具体的には４４３番ポートのようにＨＴＴＰＳを用いた通信に通常使用するポート、であり、通信に使用するプロトコルがＨＴＴＰＳであって、取り扱うＨＴＴＰメッセージを暗号化された状態で送受信することを除けば、ＨＴＴＰ通信用アプリ５２と同様な機能を有する。ＨＴＴＰＳポートも第２のポートである。
【００６８】
パネル制御モジュール５４は、操作パネル５５の動作を制御し、操作パネル５５における操作の検出や、画面の表示を行う機能を有する。また、検出した操作の内容は、サーバ装置４０との通信に使用するプロトコルに応じてＨＴＴＰ通信用アプリ５２又はＨＴＴＰＳ通信用アプリ５３に渡す。画面の表示は、予め用意されているＧＵＩのデータや、ＨＴＴＰ通信用アプリ５２又はＨＴＴＰＳ通信用アプリ５３から受け取るリストのデータ等に従って行う。
【００６９】
操作パネル５５は、液晶ディスプレイ（ＬＣＤ）や発光ダイオード（ＬＥＤ）等による表示部と、種々のキーやボタン及びＬＣＤに積層したタッチパネル等による操作部とを備える。そして表示部には、パネル制御モジュール５４の制御に従って、プリンタ５０の動作状態、設定内容、メッセージ、操作受付のためのＧＵＩ（グラフィカル・ユーザ・インタフェース）等を表示し、操作部では、プリンタ５０に対するユーザの動作指示、設定指示等の操作を受け付ける。
【００７０】
従って、プリンタ５０は、９１００番ポートで特定のプリンタ言語で記載されたプリントデータを受信した場合にそのプリントデータに基づいてプリントを行うことができると共に、サーバ装置４０に対する取得要求に対する応答として、９１００番ポートとは異なるＨＴＴＰポートやＨＴＴＰＳポートで、ＨＴＴＰメッセージ内に記載されたプリントデータを受信した場合には、ここからプリントデータを取り出した上で、そのプリントデータに基づいてプリントを行うことができる。
【００７１】
なお、プリンタアプリ５１は、受信するデータが特定の形式であることを前提にデータ変換処理を行うので、実際に受信したデータの形式がそれと異なる形式であった場合には、出力は無意味なデータになってしまう。しかし、このような構成としても、データの送信側を制御して正しい形式のデータを送信させるようにすれば問題なく動作するので、処理負荷の低減を考慮し、このような構成を採用している。
【００７２】
ＨＴＴＰ通信用アプリ５２及びＨＴＴＰＳ通信用アプリ５３については、受信するデータがプリントデータか文書リストのデータかを区別する必要がある。しかし、サーバ装置４０に要求を送信する時点で、応答として受信するデータが何であるべきかは把握できるため、プリンタアプリ５１の場合と同様に、受信するデータが、送信した要求の内容に応じた特定の形式であることを前提にデータ変換処理を行うようにしてもよい。
また、ＨＴＴＰ通信用アプリ５２及びＨＴＴＰＳ通信用アプリ５３は、デバイス組み込み用のＪａｖａ（登録商標）であるＪ２ＭＥ（Java 2 Micro Edition）を利用し、ＤＳＤＫ（Device Software Development Kit）の環境で動作するＤＳＤＫサーバアプリケーションとして作成することが考えられる。
【００７３】
一方、ＰＣ６０には、アプリケーション６１とプリンタドライバ６２とポートモニタ６３を備えるが、このうち、アプリケーション６１とプリンタドライバ６２は、背景技術の項で図２６を用いて説明したＰＣ８０のアプリケーション８１及びプリンタドライバ８２と同様な機能を有する。
【００７４】
また、ポートモニタ６３は、標準スプーラ６４と拡張スプーラ６５を備えているが、このうち標準スプーラ６４の機能は、上記のＰＣ８０のポートモニタ８３の機能と同様なものである。すなわち、プリンタドライバ６２は、プリンタ言語形式に変換したプリントデータを、標準スプーラ６４のスプールディレクトリにスプールするようにし、標準スプーラ６４は、そのスプールディレクトリにスプールされたデータを、使用するプリンタのアドレスの、９１００番ポートに送信する機能を有する。
ＰＣ６０とプリンタ５０との間に、９１００番ポートへのデータ送信を阻害するファイアウォール等がなければ、この標準スプーラ６４を用いてプリンタ５０にプリントデータを送信し、プリントを行わせることも可能である。
【００７５】
しかし、プリントデータを一旦サーバ装置４０に蓄積させる場合には、標準スプーラ６４のデータ送信機能を使用せず、標準スプーラ６４のスプールディレクトリにスプールされたデータは、拡張スプーラ６５のスプールディレクトリにスプールし直し、拡張スプーラ６５が、そのデータをサーバ装置４０に送信するようにしている。そして、この際の送信はここでは、プリントデータ及びその蓄積を要求する蓄積要求を記載したＨＴＴＰリクエストを送信することによって行う。
またこの時、ユーザの指定に応じて必要な場合には通信の暗号化を行うことができるようにしている。暗号化を行わない場合は、ＨＴＴＰを用いて送信を行い、暗号化を行う場合は、ＨＴＴＰＳを用いて送信を行えばよい。
【００７６】
以上のようなサーバ装置４０，プリンタ５０，ＰＣ６０のハードウェア構成は、それぞれ第１の実施形態で図２を用いて説明したデータ蓄積装置１０，データ処理装置２０，情報処理装置３０と同様でよい。ただし、プリンタ５０は、エンジン部としてプリントエンジン５６を備え、操作部及び表示部として、操作パネル５５を備えている。また、プリンタ５０は、コピーやファクシミリ通信等の機能を併せ持つデジタル複合機（ＭＦＰ）であってもよい。
【００７７】
次に、図６及び図７に示した各装置が行う処理及び動作につき、より詳細に説明する。
まず図８に、サーバ装置４０がプリンタ５０からの取得要求に応じてプリンタ５０に送信する、プリントデータを含むＨＴＴＰメッセージの形式を示す。
なお、通信にＨＴＴＰＳを用いる場合には、データは暗号化されており、復号化に必要な情報を記載したヘッダやフッタが記載されているが、復号化してしまえば、ＨＴＴＰメッセージとなる。
【００７８】
そして、このＨＴＴＰメッセージの中には、予め定めたタグでマークアップした種々の情報が記載され得る。例えば、（ａ）に示す例では、ＨＴＴＰメッセージに、印刷属性データと、プリントデータファイルとを記載している。
このうち、プリントデータファイルは、プリンタアプリ５１が取り扱うことのできるプリンタ言語によるプリントデータをバイナリで記載したデータを含むファイルである。プリンタ言語としてＰＣＬ（Printer Control Language）６，ＰＣＬ５ｅ，ＲＰＣＳ等を用いる場合、バイナリのプリントデータに、ＰＪＬ（Printer Job Language）言語で記載したヘッダとフッタを付し、ここに、用紙サイズ、解像度等、プリントジョブの実行に関する情報のうち、画像データの内容に関わる情報を記載する。
【００７９】
そして、この例では、プリントデータファイルをＨＴＴＰメッセージ中からそのまま取り出すだけで、例えば、受信したＨＴＴＰメッセージのうち特定のタグでマークアップされている部分（所定の要素）を取り出すだけで、受信したＨＴＴＰメッセージをプリンタアプリ５１が取り扱うことのできるデータに変換することができる。
【００８０】
また、印刷属性データは、両面印刷有無，集約印刷を行うならばその集約形式，ステープル処理有無，パンチ穴あけ有無等、プリントジョブの実行に関する情報のうち、画像データの内容には関わらない、プリンタ５０側での処理を指定する情報を示すデータである。そして、ＨＴＴＰ通信用アプリ５２及びＨＴＴＰＳ通信用アプリ５３は、このデータに基づき、ＰＪＬ言語の拡張ヘッダを生成し、ＨＴＴＰメッセージ中から取り出したプリントデータにマージして９１００番ポートにループバック送信することができる。なお、この印刷属性データはＨＴＴＰメッセージに記載されていなくてもよい。
【００８１】
なお、印刷属性データは、ＰＪＬ言語の拡張ヘッダとしてＨＴＴＰメッセージ中に記載し、そのまま取り出してプリントデータにマージできるようにしても、パラメータの羅列としてＨＴＴＰメッセージ中に記載し、プリンタ５０側でこれをＰＪＬ言語に変換してもよいが、ここでは後者の方式を採用している。この方が、プリンタ５０側で実行できない機能に係る設定、例えば両面ユニットがない場合の両面印刷設定等、をプリンタ５０側の判断で排除できるため、好ましい。
また、印刷属性データや、その中の細分化された項目をそれぞれタグによりマークアップしておけば、印刷属性データに関する処理を行う必要がない場合には、単にタグの内容を読み飛ばすようにすることにより、処理を簡略化することができる。
【００８２】
一方、（ｂ）に示す例では、ＨＴＴＰメッセージに、印刷属性データと、印刷内容ファイルとを記載している。
このうち、印刷内容ファイルは、プリンタ５０にプリントさせる画像の内容を、ＰＤＦ（Portable Document Format）やＰＳ（PostScript）といったページ記述言語で記載したり、プリントさせる情報の内容をＸＭＬ（eXtensible Markup Language）といった構造化言語により記載したりしたデータを含むファイルである。
【００８３】
そして、ＨＴＴＰ通信用アプリ５２及びＨＴＴＰＳ通信用アプリ５３には、このような印刷内容ファイルを含むＨＴＴＰメッセージを受信した場合に、印刷内容ファイルの内容を解釈し、その内容に基づき、プリントすべき画像の内容を、プリンタアプリ５１が取り扱うことのできるプリンタ言語によるプリントデータに変換する機能を持たせることができる。これは、ＰＤＦやＰＳといった特定の形式のデータのみ処理可能な機能でもよいし、複数の形式を識別して、各々に対し適切な処理が可能な機能としてもよい。
【００８４】
ただし、このような機能によりプリントデータを生成したとしても、もとの印刷内容ファイルにＰＪＬ言語によるヘッダやフッタが含まれていなければ、変換後のデータにもヘッダやフッタは含まれない。そこで、デフォルトのヘッダ及びフッタを自動生成して変換後のプリントデータに付すようにするとよい。
また、ＨＴＴＰメッセージに印刷属性データが含まれていれば、（ａ）の場合と同様にＰＪＬ言語の拡張ヘッダを生成し、これを変換後のプリントデータに付すことができる。この場合には、自動生成するのはフッタのみでよい。
【００８５】
次に、図９に、図６及び図７に示したサーバ装置４０，プリンタ５０及びＰＣ６０を設置する環境の例を示す。
会社等においてネットワーク環境を構築する場合、外部からのアクセスを許可するサーバ４０ｅ〜４０ｇは、社内環境と社外環境の双方からファイアウォール７０ｅにより隔離したＤＭＺと呼ばれる領域に設けることは広く行われている。
【００８６】
そして、近年においては、社内環境においても、拠点毎、部署毎、フロア毎といった環境毎にファイアウォール７０ａ〜７０ｄを設け、セキュリティの強化を図ることが行われるようになっている。この場合、図６及び図７に示したプリンタ５０及びＰＣ６０は、プリンタ５０ａ〜５０ｄ，ＰＣ６０ａ〜６０ｄのようにファイアウォール７０ａ〜７０ｄの内側に配置される。また、サーバ装置４０については、サーバ装置４０ｅ〜４０ｇのようにＤＭＺに配置されたサーバ装置４０を用いることもできるし、これとは別にサーバ装置４０ａ〜４０ｄのようにファイアウォール７０ａ〜７０ｄの内側に配置することもできる。
【００８７】
そして、ファイアウォール７０ａ〜７０ｄは、ＨＴＴＰやＨＴＴＰＳといった通常良く使用されるプロトコルでの通信に使用するポートの使用は許可するが、９１００番ポートのように、機種依存のプロトコルでの通信に使用するポートの使用は許可しない設定となっていることが多い。従って、各環境においてプリンタ５０（包括的に指す場合には符号のアルファベットは省略する）がファイアウォール７０の内側に配置されている場合、同一環境内のＰＣ６０からのプリントデータは、９１００番ポートで直接受信できるが、他の環境内のＰＣ６０の場合には、９１００番ポートへの送信は、ファイアウォール７０により遮断されてしまう。
【００８８】
しかし、図６及び図７を用いて説明したようなＨＴＴＰ通信用アプリ５２及びＨＴＴＰＳ通信用アプリ５３を設け、ＨＴＴＰやＨＴＴＰＳといった、ファイアウォール７０で使用を許可されているポートを使用するプロトコルでのプリントデータの送受信を可能にすれば、ファイアウォール７０が存在しても、ＰＣ６０から任意のサーバ装置４０にプリントデータを登録したり、プリンタ５０が任意のサーバ装置４０からプリントデータを取得してプリントを実行することができる。また、この際に、プリンタアプリ５１やプリントエンジン５６については、９１００番ポートでプリントデータを受信するような従来の機種のものに、一切変更を加える必要がない。
【００８９】
次に、図１０に、ＰＣ６０において、拡張スプーラ６５の使用並びに、通信の暗号化の有無を設定するためのＧＵＩの例を示す。
この設定画面１５０は、ＰＣ６０のＯＳ（オペレーティングシステム）にデバイスドライバとして拡張スプーラ６５が登録されている場合、ユーザが拡張スプーラ５５を使用したプリント、すなわちサーバ装置４０に一旦プリントデータを蓄積するプリント、の設定を行おうとすると、その拡張スプーラ６５の機能により表示されるものである。
【００９０】
そして、この画面においては、ユーザが検索ボタン１５１を押下すると、ＰＣ６０がＯＳの機能によりブロードキャストを行って、使用可能なサーバ装置を検索し、サーバ一覧部１５２にその情報を表示する。また、ファイアウォール７０を越える別環境にあるサーバ装置の情報については、特定のサーバ装置にサーバリストを登録しておき、これを参照して情報を表示するようにしてもよい。図の例では、プリンタ一覧部１５２にサーバ装置の名称とＩＰ（Internet Protocol）アドレスを表示するようにしているが、これに限られるものではない。
【００９１】
そして、ユーザがカーソル１５３を合わせてサーバ一覧部１５２からいずれかのサーバ装置を選択し、ＯＫボタン１５５を押下すると、そのサーバ装置にプリントデータの蓄積を指示するためのポートが作成され、ＯＳに、そのサーバ装置にプリントデータの蓄積を指示する際に、拡張スプーラ６５を使用する旨が設定される。また、そのサーバ装置にデータを送信する際のＩＰアドレスも設定される。またこのとき、チェックボックス１５４にチェックが入っていた場合、プリントデータの転送を、ＨＴＴＰＳプロトコルにより暗号化して行う旨も設定される。また、キャンセルボタン１５６が押下された場合には、設定は行わずにこの画面を閉じる。
【００９２】
次に、図１１乃至図１８を用いて、図６及び図７に示したプリントシステムにおいてサーバ装置４０，プリンタ５０及びＰＣ６０が実行する、この実施形態の特徴に係る処理について説明する。この処理については、種々のバリエーションが考えられるが、ここでは、ＰＣ６０がサーバ装置４０にプリントデータを送信して蓄積させ、その後プリンタ５０からサーバ装置４０にアクセスしてプリントデータを取得し、そのプリントデータに基づく印刷を行うことを前提とした場合の処理例を示す。
【００９３】
まず、図１１に、ＰＣ６０のＣＰＵが実行する処理のフローチャートを示す。
この処理は、ＰＣ６０において、なんらかの文書（図，表，画像等も含む）について、サーバ装置４０に一旦プリントデータを蓄積してプリントする蓄積プリントが指示された場合に、ＣＰＵがプリンタドライバ６２及び拡張スプーラ６５を実行することにより行うものである。
【００９４】
この処理においてはまず、ステップＳ１１で、プリンタドライバ６２が、標準スプーラ６４のスプールディレクトリに、印刷内容を示すプリントデータをスプールする。
その後、ステップＳ１２で、スプールしたプリントデータと、プリント指示時に指定された拡張印刷属性（図８に示した印刷属性データとして記載すべき項目の属性）に基づく印刷属性データとを含み、それらの蓄積を要求する蓄積要求を記載したＨＴＴＰメッセージを生成し、ステップＳ１３で、作成したＨＴＴＰメッセージを拡張スプーラ６５のスプールディレクトリにスプールする。
【００９５】
そして、ステップＳ１４で、通信を暗号化する旨の設定がなされているか否か判断する。
ここで暗号化しない旨が設定されていれば、ステップＳ１５に進み、拡張スプーラ６５のスプールディレクトリにスプールしたＨＴＴＰメッセージを、ＨＴＴＰプロトコルにより、送信先として指定されているサーバ装置４０のアドレスに送信し、処理を終了する。
【００９６】
また、ステップＳ１４で暗号化する旨が設定されていれば、ステップＳ１６に進み、拡張スプーラ６５のスプールディレクトリにスプールしたＨＴＴＰメッセージを暗号化し、ＨＴＴＰＳプロトコルにより、送信先として指定されているサーバ装置４０のアドレスに送信し、処理を終了する。
【００９７】
以上の処理により、プリントデータを、暗号化有無に応じてＨＴＴＰ又はＨＴＴＰＳを用いてサーバ装置４０に送信し、蓄積を要求することができる。
なお、ＰＣ６０が、プリントデータに基づく印刷実行を許可するプリンタやユーザの制限、あるいは認証用のパスワード等の指定を受け付け、この情報もサーバ装置４０に送信して蓄積させるようにしてもよい。
【００９８】
次に、図１２に、上記の蓄積要求を含むＨＴＴＰメッセージを受信した場合にサーバ装置４０のＣＰＵが実行する処理のフローチャートを示す。
サーバ装置４０のＣＰＵは、ＰＣ６０が図１１のステップＳ１５又はＳ１６の処理で送信してくるＨＴＴＰメッセージを受信すると、図１２のフローチャートに示す処理を開始する。そして、まずステップＳ２１で、受信したＨＴＴＰメッセージから、蓄積を要求されたプリントデータ、印刷属性データ、およびそれらのインデックス情報として使用するデータを抽出する。このデータとしては、送信元のＰＣの名前あるいはアドレスや、印刷するファイルの名前等が考えられ、メッセージそのものに記載されていなくても、メッセージの受信に伴って取得できる情報であればよい（ＩＰアドレス等）。
なお、図示は省略したが、通信にＨＴＴＰＳを用いる場合には、受信したＨＴＴＰメッセージを復号化する処理もここで行う。
【００９９】
次のステップＳ２２では、ステップＳ２１で抽出したプリントデータ及び印刷属性データにインデックス情報を付して、プリンタ５０からの取得要求に応じて送信できるよう、データ蓄積部４２に蓄積する。このとき、インデックス情報に応じて、プリントデータを蓄積するフォルダを分けるようにしてもよい。
そして、ステップＳ２３で、ＰＣ６０に対してプリントデータの蓄積が完了した旨の応答のＨＴＴＰメッセージを返して、処理を終了する。
【０１００】
以上の処理により、サーバ装置４０はＰＣ６０から受信したプリントデータをデータ蓄積部４２を設けた記録媒体に蓄積することができる。
なお、ＨＴＴＰメッセージに、プリントデータに基づく印刷実行を許可するプリンタやユーザの制限、あるいは認証用のパスワード等の指定が含まれていた場合、プリンタ５０からファイルリストやプリントデータを要求された場合に送信可否の判断に使用できるように、これらの情報もプリントデータと対応させて蓄積しておく。
【０１０１】
次に、図１３に、プリンタ５０がサーバ装置４０に蓄積されている文書のリストの表示指示を検出した場合に、プリンタ５０及びサーバ装置４０が実行する処理のフローチャートを示す。この処理は、プリンタ５０に、サーバ装置４０との間の通信を暗号化しない（ＨＴＴＰプロトコルを使用する）ことが設定されている場合の処理である。
プリンタ５０のＣＰＵは、パネル制御モジュール５４から受け取る情報により、ユーザがサーバ装置４０に蓄積されているプリントデータを示すファイルリストの表示指示を行ったことを検出すると、図１３の左側のフローチャートに示す処理を開始する。この処理は、ＨＴＴＰ通信用アプリ５２の機能に係るものである。
【０１０２】
そして、この処理においては、まずステップＳ３１で、パネル制御モジュール５４から、ファイルリストを取得するサーバ装置のＩＰアドレスとフォルダ名を指定する情報を取得する。これらの情報は、ファイルリストの表示指示を受け付ける際に、これと同時にまたは予め、ユーザに入力させておくようにするとよい。
【０１０３】
図１４に、この入力を受け付けるための画面の例を示す。
図１４に示すサーバ指定画面１３０は、サーバＩＰ指定部１３１，フォルダ名指定部１３２を有し、ここには、ファイルリストを取得するサーバ装置のＩＰアドレスとフォルダ名を入力する。また、プロキシＵＲＬ指定部１３３とプロキシポート指定部１３４も有し、ファイルリストを取得するサーバ装置へのアクセスにプロキシサーバを使用する場合、そのＵＲＬとポートを入力する。
【０１０４】
その後、設定ボタン１３６を押下することにより、入力した内容を設定することができる。図示しない別の画面においてファイルリストの表示が指示されると、この画面で設定した内容に従って、ファイルリストの取得先等がパネル制御モジュール５４を介してＨＴＴＰ通信用アプリ５２に伝えられる。キャンセルボタン１３５を押下した場合には、設定を変更せずに入力された内容を破棄する。
なお、サーバ装置のＩＰアドレスについては、ＰＣ６０が図１０に示した画面で設定を受け付ける場合と同様、サーバ装置のリストから選択させるようにするとよい。
【０１０５】
図１３の説明に戻ると、次のステップＳ３２では、指定されたフォルダ名のフォルダのファイルリストを要求するファイルリスト取得要求のＨＴＴＰメッセージを生成して、指定されたＩＰアドレスのサーバに送信する。
一方、サーバ装置４０のＣＰＵは、そのＨＴＴＰメッセージを受信すると、図１３の右側のフローチャートに示す処理を開始する。図１３でステップＳ３２から延びる矢印は、このことを示す。なお、サーバ装置４０は、ＨＴＴＰメッセージを受信した場合、そこに含まれるタグやその内容等から、受信したメッセージがどのような要求に係るものかを判別できるとする。
【０１０６】
そして、サーバ装置４０のＣＰＵは、まずステップＳ４１で、受信したＨＴＴＰメッセージから、リスト送信を要求されたフォルダの情報を抽出する。その後、ステップＳ４２で、データ蓄積部４２を検索し、要求されたフォルダに蓄積しているプリントデータのうち、ＨＴＴＰメッセージの送信元のプリンタに送信可能なもののリストを作成する。このとき、プリントデータと対応するＰＣ６０側のファイル名や、プリントデータの登録時刻等、ユーザに印刷すべきプリントデータを選択させる際に有益な情報も、リストに含めるとよい。また、各プリントデータの送信可否については、蓄積しているプリントデータについてのアクセス権限を示す情報と、ＨＴＴＰリクエストの送信元の情報とを比較して判断すればよい。
【０１０７】
次のステップＳ４３では、作成したリストのデータを含む応答のＨＴＴＰメッセージを生成してプリンタ５０に返し、処理を終了する。このとき、ＨＴＴＰメッセージはプリンタ５０のＨＴＴＰポートに送信する。
【０１０８】
一方、プリンタ５０側の処理は、ステップＳ３３でこの応答のＨＴＴＰメッセージを受信するまで待機する。図１３でステップＳ４３から延びる矢印は、このことを示す。
そして、応答を受信すると、ステップＳ３４に進み、受信した応答にファイルリストのデータがあるか否か判断する。そしてあれば、ステップＳ３５でファイルリストのデータをパネル制御モジュール５４に渡して、操作パネル５５にファイルリスト画面を表示させ、処理を終了する。
【０１０９】
一方、ステップＳ３４でデータがなければ、ステップＳ３６でエラー処理を行って処理を終了する。この処理は、例えば操作パネル５５に「ファイルリストのデータが取得できませんでした」と表示させる等が考えられる。また、ステップＳ３３でタイムアウトした場合にも同様な処理を行うとよい。
以上の処理により、プリンタ５０は、サーバ装置４０にアクセスして、サーバ装置４０から取得可能なファイル（文書）のリストのデータを取得することができる。また、プリンタ５０のＣＰＵはステップＳ３２，Ｓ３３では文書リスト取得手段として機能し、ステップＳ３５では表示制御手段として機能する。
【０１１０】
ここで、図１５に、図１３のステップＳ３５で表示させるファイルリスト画面の例を示す。
このファイルリスト画面１４０には、リストボタン１４１，スクロールボタン１４２，１４３，印刷ボタン１４４を有する。
そして、リストボタン１４１は、サーバ装置４０から取得可能なプリントデータの情報を示すと共に、そのプリントデータを印刷対象とする選択を受け付けるためのボタンである。ここでは、プリントデータの情報として、文書番号、文書名、文書タイプ、およびサーバ装置４０への登録日の情報を表示している。
【０１１１】
スクロールボタン１４２，１４３は、プリントデータの数が多く、リストボタンを画面内に全て表示しきれない場合に、画面をスクロールさせるためのボタンである。
そして、印刷ボタン１４４は、リストボタン１４１により印刷対象として選択したプリントデータの印刷実行指示を受け付けるためのボタンであり、このボタンが押下されると、印刷実行指示がパネル制御モジュール５４を介してＨＴＴＰ通信用アプリ５２に伝えられる。
【０１１２】
次に、図１６に、プリンタ５０がこの印刷実行指示を検出した場合に、プリンタ５０及びサーバ装置４０が実行する処理のフローチャートを示す。この処理も、プリンタ５０に、サーバ装置４０との間の通信を暗号化しない（ＨＴＴＰプロトコルを使用する）ことが設定されている場合の処理である。
プリンタ５０のＣＰＵは、パネル制御モジュール５４から受け取る情報により、ユーザがファイルリスト画面で印刷すべきプリントデータを選択し、印刷の実行を指示したことを検出すると、図１６の左側のフローチャートに示す処理を開始する。この処理も、ＨＴＴＰ通信用アプリ５２の機能に係るものである。
【０１１３】
そして、この処理においては、ステップＳ５１で、パネル制御モジュール５４から、プリントデータを取得するサーバ装置のＩＰアドレス及びそのサーバ装置から取得すべきプリントデータを指定する情報を取得する。プリントデータの指定は、ファイルリスト画面１４０でなされたものであり、ＩＰアドレスやフォルダ名については、サーバ指定画面１３０の設定されたものであるが、図１３のステップＳ３１で取得したものを記憶しておいてもよい。
次に、ステップＳ５２で、ローカルホストの９１００番ポートに接続要求を行って、接続許可を受ける。その後、ステップＳ５３で、指定されたプリントデータを要求するデータ取得要求のＨＴＴＰメッセージを生成し、指定されたＩＰアドレスのサーバに送信する。
【０１１４】
一方、サーバ装置４０のＣＰＵは、そのＨＴＴＰメッセージを受信すると、図１６の右側のフローチャートに示す処理を開始する。図１６でステップＳ５３から延びる矢印は、このことを示す。なお、上述のように、サーバ装置４０は、ＨＴＴＰメッセージを受信した場合、そこに含まれるタグやその内容等から、受信したメッセージがどのような要求に係るものかを判別できるとする。
そして、サーバ装置４０のＣＰＵは、まずステップＳ７１で、受信したＨＴＴＰメッセージから、プリントデータを指定する情報を抽出する。その後、ステップＳ７２で、データ蓄積部４２を検索し、送信を要求されたプリントデータ及びそのプリントデータと対応する印刷属性データを取得する。なお、印刷属性データは存在しない場合もある。
【０１１５】
次のステップＳ７３では、取得したプリントデータ及び印刷属性データを含む応答のＨＴＴＰメッセージを生成してプリンタ５０に返し、処理を終了する。ここで生成するＨＴＴＰメッセージは、図８に示したものである。また、ＨＴＴＰメッセージはプリンタ５０のＨＴＴＰポートに送信する。また、ステップＳ７３で送信したデータは、データ蓄積部４２から削除してしまってもよいし、再度のプリントに使用できるよう、蓄積したままにしておいてもよい。また、ステップＳ７３での送信時にも、プリンタ５０及びそのユーザが、取得を要求してきたプリントデータへのアクセス権限を有することを確認するようにするとよい。
【０１１６】
一方、プリンタ５０側では、ステップＳ５３の後、ＨＴＴＰポートを監視し、ステップＳ５４でサーバ装置４０から応答のＨＴＴＰメッセージを受信するまで待機する。図１６でステップＳ７３から延びる矢印は、このことを示す。
そして、応答を受信すると、ステップＳ５４でこれをバッファに蓄積しつつ、蓄積したＨＴＴＰメッセージからプリントデータを抽出する。
そして、ステップＳ５５で、受信したデータ中に印刷属性データがあったか否か判断し、あれば、ステップＳ５６でその印刷属性データからＰＪＬ言語の拡張ヘッダを生成してステップＳ５４で抽出したプリントデータにマージし、ステップＳ５７以下に進む。なければそのままステップＳ５７以下に進む。
【０１１７】
そして、ステップＳ５７では、ステップＳ５４での抽出処理エラーが起こったか否か判断する。ここで、抽出処理エラーは、抽出に使用したライブラリから処理結果としてエラーが返された場合である。プリントデータとして抽出されたデータが不適当な形式のデータであっても、エラーとはならない。
そして、ステップＳ５７でエラーが起こっていなければ、ステップＳ５８で、抽出したプリントデータを、マージした拡張ヘッダも含めてローカルホストの９１００番ポートに送信する。その送信は、データの切れ目を意識せずに４０９６バイトずつ等の所定サイズずつ行えばよい。また、一度に送信するサイズは、ＰＣ６０から直接９１００番ポートにプリントデータを送信する場合と同じサイズとするとよい。
【０１１８】
その後、ステップＳ５９で、プリントデータの抽出及び９１００番ポートへの送信が完了したか否か判断し、完了していなければステップＳ５４に戻って処理を繰り返し、完了していれば、ステップＳ６０に進んで通信を切断し、処理を終了する。
また、ステップＳ５７でＹＥＳの場合も、ステップＳ６１に進んでエラー処理を行った後、ステップＳ６０で通信を切断し、処理を終了する。
【０１１９】
以上の処理において、ステップＳ５４〜Ｓ５６ではプリンタ５０のＣＰＵがデータ変換手段として機能する。
また、以上の処理により、プリンタ５０は、データ取得要求に応じてサーバ装置４０からＨＴＴＰポートに送信されてくるＨＴＴＰメッセージに対し、プリンタアプリ５１が処理できる形式のデータとするための変換処理を行い、その処理後のデータを９１００番ポートに送信することができる。この変換処理は、ここでは受信したデータの形式によらず同じ処理としているが、適切な形式のデータを受信していれば、出力は、プリンタアプリ５１が処理できる形式のプリントデータとなる。なお、ステップＳ５５及びＳ５６の処理は、行わなくてもよい。
【０１２０】
次に、図１７に、プリンタ５０に、サーバ装置４０との間の通信を暗号化する（ＨＴＴＰＳを使用する）ことが設定されている場合の、図１６と対応する処理のフローチャートを示す。
この処理は、図１６に示した処理と概ね同様なものであり、メッセージを受信するポートがＨＴＴＰＳポートである点（Ｓ８４）、受信したＨＴＴＰＳメッセージを復号化する点（Ｓ８４，Ｓ１０１）が異なるのみであるので、詳細な説明は省略する。
【０１２１】
そして、この処理により、プリンタ５０は、データ取得要求に応じてサーバ装置４０からＨＴＴＰＳポートに送信されてくる暗号化されたＨＴＴＰメッセージに対し、プリンタアプリ５１が処理できる形式のデータとするための変換処理を行い、その処理後のデータを９１００番ポートに送信することができる。
なお、図１３に示した処理についても、通信にＨＴＴＰＳを使用する場合には、同様な変形が可能である。
【０１２２】
次に、図１８に、プリンタ５０のＣＰＵが実行するプリンタアプリ５１の機能に係る処理のフローチャートを示す。
ＣＰＵは、プリンタ５０が起動されると、プリンタアプリ５１を実行することにより、図１８のフローチャートに示す処理を開始する。
そして、ステップＳ１１１でプリンタアプリ５１を９１００番ポートにバインドし、このポートを監視（リスン）する状態にする。そして、ステップＳ１１２及びＳ１１３でその９１００番ポートへの接続を待つ。
【０１２３】
その後、ローカルのループバックあるいはＰＣ６０等の外部クライアント等により接続要求があると、ステップＳ１１３からステップＳ１１４に進んでその接続を許可する。
そして、ステップＳ１１５で、９１００番ポートでデータを受信し、それをバッファに蓄積しつつ、その蓄積したデータをもとに、画像メモリに画像データを描画して、プリントエンジン５６にその画像データに基づくプリントを指示する。
そして、ステップＳ１１６で、クライアントからの通信切断、ステップＳ１１５での描画処理エラー、描画完了のいずれかが起こるまでステップＳ１１５に戻って処理を繰り返す。そして、いずれかが起こるとステップＳ１１７で通信を切断し、ステップＳ１１２に戻って処理を繰り返す。
【０１２４】
以上の処理により、プリンタ５０は、９１００番ポートに受信したデータをプリントエンジン５６を駆動するための画像データに変換するための特定の描画処理を行い、その処理後のデータに基づいてプリントエンジン５６にプリントを実行させることができる。この処理は、データの送信元がＨＴＴＰ通信用アプリ５２やＨＴＴＰＳ通信用アプリ５３であっても、ＰＣ６０であっても、共通に行うようにしている。また、描画処理は、受信したデータの形式によらず同じ処理を行うが、適切な形式のデータを受信していれば、描画により、形成すべき画像の内容を示す画像データを得ることができる。
なお、このフローチャートに示した処理は、従来のプリンタに備えるプリントエンジンの場合と同様なものでよい。
【０１２５】
以上説明してきたようなプリントシステムによれば、サーバ装置４０，プリンタ５０及びＰＣ６０に、以上説明してきたような機能を実現させることにより、プリンタ５０において、プリンタアプリ５１が、処理するプリントデータの取得を９１００番ポートから行う機能しか有さない場合でも、一般的な通信プロトコルであるＨＴＴＰやＨＴＴＰＳで使用するポートでサーバ装置４０からプリントデータを受信してそのデータをプリンタアプリ５１に処理させ、プリントエンジン５６によりプリントデータに基づく印刷物を得ることができる。
【０１２６】
また、この場合において、プリンタアプリ５１がデータを受け取る受け口を、ＨＴＴＰ通信用アプリ５２やＨＴＴＰＳ通信用アプリ５３から受け取る場合と、ＰＣ６０から受け取る場合とで共通化しているため、従来からあるプリンタアプリ５１を改変する必要は全くない。そして、ＨＴＴＰ通信用アプリ５２やＨＴＴＰＳ通信用アプリ５３及び、パネル制御モジュール５４のうちサーバ装置４０からのファイルリストやプリントデータの取得指示の受付に必要な部分の機能を追加し、必要な設定を行うだけで、プリンタ５０に上述した機能を実現させることができる。
【０１２７】
従って、既存の資源を有効に利用し、少ない開発工数で、プリンタがＨＴＴＰやＨＴＴＰＳを用いてサーバ装置からプリントデータを取得して印刷を行うことが可能なプリントシステムを開発することができる。また、プリンタ５０側では、プリンタアプリ５１が受信したデータに対しては、特定の処理を行うようにしているので、一般にハードウェア資源の制約が厳しいプリンタ５０の側での処理負荷を低減すると共に、この点でもアプリの開発工数を低減することができる。ＨＴＴＰ通信用アプリ５２やＨＴＴＰＳ通信用アプリ５３が受信したデータについても同様な取扱いをするようにすれば、さらに大きな効果を得ることができる。
【０１２８】
〔第２の実施形態の変形例：図１９乃至図２４〕
次に、以上説明してきた第２の実施形態のプリントシステムの変形例について説明する。
第２の実施形態においては、主としてＨＴＴＰメッセージにプリンタ言語で記述されたプリントデータをそのまま記載する例について説明したが、これに限られることはない。すなわち、プリントデータを、圧縮したり暗号化したりした状態でＨＴＴＰメッセージに記載するようにしてもよい。また、ＸＭＬ形式で定義された帳票データとして記載することも考えられる。
【０１２９】
図１９乃至図２２にこれらの場合のＨＴＴＰ通信用アプリ５２におけるデータの取扱い例を示す。
例えば、図１９に示すように圧縮したプリントデータをＨＴＴＰメッセージに記載した場合、ＨＴＴＰ通信用アプリ５２が、受信したＨＴＴＰメッセージから取り出した圧縮状態のプリントデータを解凍して９１００番ポートにループバック送信すればよい。
このようにすることにより、サーバ装置４０からプリンタ５０に送信するデータのサイズを低減し、データ転送速度が遅い場合には、全体としてプリントまでの時間を短縮できる。なお、圧縮は、ＰＣ６０が行い、サーバ装置４０が圧縮されたプリントデータを受信してそのまま蓄積するようにしてもよいし、サーバ装置４０がＰＣ６０から受信したプリントデータを圧縮して蓄積するようにしてもよい。下記の暗号化についても同様である。
【０１３０】
また、図２０に示すように暗号化したプリントデータをＨＴＴＰメッセージに記載した場合、ＨＴＴＰ通信用アプリ５２が、受信したＨＴＴＰメッセージから取り出した暗号化状態のプリントデータを復号化して９１００番ポートにループバック送信すればよい。
このようにすることにより、ＨＴＴＰＳプロトコルを使用しなくても、転送するデータを暗号化してセキュリティを向上させることができる。
【０１３１】
また、図２１に示すようにＸＭＬ形式で定義された帳票データ等をそのままＨＴＴＰメッセージに記載した場合、ＨＴＴＰ通信用アプリ５２は、受信したＨＴＴＰメッセージから取り出した帳票データをプリンタ言語形式のプリントデータに変換して９１００番ポートにループバック送信する。
このようにすれば、ＰＣ６０にプリンタドライバを設けなくても、プリンタ５０にプリントを行わせることが可能になる。従って、多数のクライアントがプリンタ５０を共用する場合等には、各クライアントに個別にプリンタドライバをインストールすることが不要になり、管理の負担を軽減することができる。
【０１３２】
また、ＰＤＡ（携帯情報端末）や携帯電話のように、持ち歩く端末では、常に適切なドライバを設定しておくことが難しいし、ＣＰＵの処理能力も比較的小さいと考えられるので、このような場合にはプリンタ５０の側にプリンタドライバの機能を持たせることが特に有効と考えられる。
なお、ＨＴＴＰメッセージに、プリントデータの記載形式（圧縮、暗号化、ＸＭＬ形式等）を記載しておき、ＨＴＴＰ通信用アプリ５２が受信したＨＴＴＰメッセージからまずその記載形式のデータを読み取り、その内容に応じた処理を選択して実行するようにしてもよい。
【０１３３】
また、ＨＴＴＰＳを利用する場合も、同様にプリントデータを圧縮した状態やＸＭＬ形式の状態、あるいは暗号化された状態等でＨＴＴＰメッセージに記載してもよい。
図２２に、図１９と対応する例を示す。
【０１３４】
また、第１の実施形態で図４を用いて説明した例と対応するものとして、複数段のデータ変換処理により、プリンタアプリ５１が対応しているプリンタ言語形式のプリントデータを生成して９１００番ポートに転送するようにすることも考えられる。
図２３にこのようにする場合のプリントシステムの機能ブロック図の例を示す。
この例においては、プリンタ５０′には、ＨＴＴＰＳ通信用アプリ５３は省略したが、図６のプリンタ５０の構成に加え、解凍アプリ５７を設け、９２００番ポートで受信したデータに対し、特定の復号化処理を行って、その結果を９１００番ポートに送信するようにしている。そして、ＨＴＴＰ通信用アプリ５２′は、データ取得要求に対する応答として受信したＨＴＴＰメッセージから圧縮状態のプリントデータを取り出して、これを９２００番ポートに送信するようにしている。
【０１３５】
そして、サーバ装置４０は、圧縮された状態のプリントデータをＨＴＴＰメッセージに記載してプリンタ５０′のＨＴＴＰポートに送信すると、プリンタ５０′側で解凍処理を行わせ、プリントデータに基づくプリントを行わせることができる。すなわち、図１７を用いて説明した場合と同様な処理が可能である。
そして、この場合、ＨＴＴＰ通信用アプリ５２′にはプリントデータを解凍する機能を設けなくてよく、また、解凍アプリ５７には単に受信したデータに対して特定の解凍処理を行って９１００番ポートにループバック送信する機能を設ければよい。従って、各アプリの構成を単純化し、開発工数の低減やコストダウンを図ることができる。
【０１３６】
また、図２３に別の例を示すが、この図に示すプリンタ５０″に備えるＨＴＴＰ通信用アプリ５２″のように、データ取得要求に対する応答として受信したＨＴＴＰメッセージに記載されていたプリントデータが圧縮されているかいないかに応じて、ループバック送信先を変えることができるようにしてもよい。このようにすれば、サーバ装置４０から送信されてくるプリントデータの形式が場合によって異なっても、プリンタ５０″側でこれを振り分けて適切に処理し、プリントデータに基づくプリントを行うことができる。
【０１３７】
もちろん、復号化機能を有するアプリや、ＸＭＬ形式の帳票データをプリントデータに変換する機能を有するアプリ等を設け、ＨＴＴＰメッセージに含まれるデータの形式に応じ、これらのアプリが監視するポートにループバック送信できるようにすることも考えられる。
また、サーバ装置４０にプリントデータを送信して蓄積させる装置の具体例としては、以上説明してきたようなＰＣ６０以外にも、例えばスキャナやＭＦＰ等の画像機器（画像処理装置）が考えられる。
【０１３８】
図２５に、この場合のプリントシステムの構成例を示す。
この図に示す画像機器１６０は、操作パネル１６１及びスキャナエンジン１６３を備え、スキャナアプリ１６２によって操作パネル１６１からの指示を検出してそれに従ってスキャナエンジン１６３を駆動し、ＡＤＦ（自動原稿給装装置）やコンタクトガラス上に載置された原稿の画像を読み取って画像データを得る。
【０１３９】
そして、スキャナエンジン１６３は、その画像データをプリンタドライバ１６４に渡し、以後、その画像データに係る画像をプリントさせるためのプリントデータを、ＰＣ６０の場合と同様に、標準スプーラ１６６と拡張スプーラ１６７を備えるポートモニタ１６５により、サーバ装置４０に適当なプロトコルで送信し、蓄積させる。どのアドレスのサーバ装置にどのプロトコルで送信するかは、操作パネル１６１からの操作により指定することができる。プリンタ５０がサーバ装置４０からプリントデータを取得して印刷する処理については、上述したものと同様である。
このようにプリントシステムを構成することにより、スキャナエンジン１６３で読み取った画像をプリンタ５０にプリントさせることができ、全体として、画像機器１６０とプリンタ５０が近くにあればコピー機、遠くにあればファクシミリ装置のような動作を行わせることができる。
【０１４０】
また、ＰＣ６０や画像機器１６０がサーバ装置４０に蓄積させるプリントデータは、送信側で自ら作成したものでなくてもよく、他の装置から受信した印刷要求に含まれるプリントデータを転送するものでもよい。また、この場合に、図８に示したような印刷属性データを付加して転送するようにしてもよい。
【０１４１】
以上で実施形態の説明を終了するが、以上説明してきた実施形態及び変形例において、装置やシステムの構成、具体的な処理内容、通信に使用する通信プロトコル等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、通信経路として、ネットワーク以外にも、パラレルケーブルを介した通信経路を用いることも考えられる。
【０１４２】
また、プリンタアプリ５１に、処理中にデータが不正な内容であることを認識した場合（正しい形式のデータであればありえない形式でデータが並んでいた場合等）に、エラーと認識し、プリントを中止する機能を設けてもよい。このようにすれば、誤ったデータに基づいて無駄なプリントを行ってしまうことを防止できる。
また、この発明はプリンタのような画像形成装置以外のデータ処理装置にも適用できることはもちろんである。その具体例としては、帳票システムや発券システム等の業務システム、テレビ・ビデオ・ラジオ等の記録装置や出力装置等が挙げられる。
さらに、以上説明してきた実施形態や変形例の構成は、矛盾しない範囲で適宜組み合わせることもできる。
【０１４３】
また、この発明によるプログラムは、コンピュータに外部装置に蓄積されているデータの処理を行うデータ処理装置を制御させ、上述したデータ処理装置２０のような装置として機能させるためのプログラムであり、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
このようなプログラムは、はじめからコンピュータに備えるＲＯＭあるいはＨＤＤ等の記憶手段に格納しておいてもよいが、記録媒体であるＣＤ−ＲＯＭあるいはフレキシブルディスク，ＳＲＡＭ，ＥＥＰＲＯＭ，メモリカード等の不揮発性記録媒体（メモリ）に記録して提供することもできる。そのメモリに記録されたプログラムをコンピュータにインストールしてＣＰＵに実行させるか、ＣＰＵにそのメモリからこのプログラムを読み出して実行させることにより、上述した各手順を実行させることができる。
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードして実行させることも可能である。
【産業上の利用可能性】
【０１４４】
以上説明してきたように、この発明のデータ処理装置、データ処理システム、データ処理装置の制御方法、データ変換機能付加方法、プログラム又は記録媒体によれば、受信したデータに対してデータ処理を行うデータ処理装置において、外部装置にアクセスして取得したデータに対してデータ処理を行う機能のない装置に、容易にこの機能を追加できるようにすることができる。また、外部装置にアクセスして取得したデータに対してデータ処理を行う機能を有する装置を、既存の資源を利用して容易に開発できるようにすることもできる。
従って、この発明を適用することにより、処理の柔軟性が高いデータ処理装置を安価に提供することができる。
【図面の簡単な説明】
【０１４５】
【図１】この発明のデータ処理システムの第１の実施形態を含むシステムの構成を示す機能ブロック図である。
【図２】図１に示したデータ処理装置のハードウェア構成を示す図である。
【図３】図１に示したシステムの、データ蓄積装置とデータ処理装置の間にファイアウォールがある状態での動作について説明するための図である。
【図４】図１に示したシステムの変形例を示す機能ブロック図である。
【図５】その別の変形例を示す機能ブロック図である。
【０１４６】
【図６】この発明のデータ処理システムの第２の実施形態であるプリントシステムを含むシステムの構成を示す機能ブロック図である。
【図７】その別の図である。
【図８】図６及び図７に示したシステムにおいてサーバ装置がプリンタからの取得要求に応じてプリンタに送信する、プリントデータを含むＨＴＴＰメッセージの形式について説明するための図である。
【図９】図６に示したサーバ装置，プリンタ及びＰＣを設置する環境の例を示す図である。
【図１０】図６に示したＰＣにおいて拡張スプーラの使用並びに、通信の暗号化の有無を設定するためのＧＵＩの例を示す図である。
【０１４７】
【図１１】図６に示したシステムにおいてＰＣのＣＰＵが実行する処理の例を示すフローチャートである。
【図１２】図１１に示す処理でＰＣが送信するＨＴＴＰメッセージ又はＨＴＴＰＳメッセージを受信した場合にサーバ装置のＣＰＵが実行する処理の例を示すフローチャートである。
【図１３】図６に示したシステムにおいてプリンタがサーバ装置に蓄積されている文書のリストの表示指示を検出した場合に、プリンタ及びサーバ装置のＣＰＵが実行する処理の例を示すフローチャートである。
【図１４】ファイルリストを取得するサーバ装置のＩＰアドレスとフォルダ名を設定するための画面の例を示す図である。
【図１５】図１３のステップＳ３５の処理で表示させるファイルリスト画面の例を示す図である。
【０１４８】
【図１６】同じくプリンタがサーバ装置に蓄積されているプリントデータに係る印刷の実行指示を検出した場合の処理の例を示すフローチャートである。
【図１７】その別の例を示すフローチャートである。
【図１８】図６に示したシステムにおいてプリンタのＣＰＵが実行するプリンタアプリの機能に係る処理の例を示すフローチャートである。
【図１９】この発明の第２の実施形態の変形例でのＨＴＴＰ通信用アプリにおけるデータの取扱い例を示す図である。
【図２０】その別の例を示す図である。
【０１４９】
【図２１】そのさらに別の例を示す図である。
【図２２】第２の実施形態の変形例でのＨＴＴＰＳ通信用アプリにおけるデータの取扱い例を示す図である。
【図２３】第２の実施形態の一変形例の構成を示す、図６と対応する図である。
【図２４】第２の実施形態の別の変形例の構成を示す、図６と対応する図である。
【図２５】第２の実施形態のさらに別の変形例の構成を示す、図６と対応する図である。
【図２６】従来のデータ処理装置の一例であるプリンタの機能構成を、そのプリンタにプリントを指示するＰＣの機能構成例と併せて示す図である。
【符号の説明】
【０１５０】
１０：データ蓄積装置、１１，３２，４１：通信制御部、１２，４２：データ蓄積部、
２０：データ処理装置、２１：データ処理機能部、２２：データ変換機能部、
２３：データ取得要求部、２４：操作受付部、２５：第１のデータ変換機能部、
２６：第２のデータ変換機能部、３０：情報処理装置、３１：送信データ生成部、
４０：サーバ装置、５０，５０′，５０″：プリンタ、
５１：プリンタアプリ、５２，５２′，５２″：ＨＴＴＰ通信用アプリ、
５３：ＨＴＴＰＳ通信用アプリ、５４：パネル制御モジュール、５５：操作パネル、
５６：プリントエンジン、５７：解凍アプリ、６０：ＰＣ、６１：アプリケーション、
６２：プリンタドライバ、６３：ポートモニタ、６４：標準スプーラ、
６５：拡張スプーラ、７０：ファイアウォール
【図１】
2007328558.tif 000003
【図２】
2007328558.tif 000004
【図３】
2007328558.tif 000005
【図４】
2007328558.tif 000006
【図５】
2007328558.tif 000007
【図６】
2007328558.tif 000008
【図７】
2007328558.tif 000009
【図８】
2007328558.tif 000010
【図９】
2007328558.tif 000011
【図１０】
2007328558.tif 000012
【図１１】
2007328558.tif 000013
【図１２】
2007328558.tif 000014
【図１３】
2007328558.tif 000015
【図１４】
2007328558.tif 000016
【図１５】
2007328558.tif 000017
【図１６】
2007328558.tif 000018
【図１７】
2007328558.tif 000019
【図１８】
2007328558.tif 000020
【図１９】
2007328558.tif 000021
【図２０】
2007328558.tif 000022
【図２１】
2007328558.tif 000023
【図２２】
2007328558.tif 000024
【図２３】
2007328558.tif 000025
【図２４】
2007328558.tif 000026
【図２５】
2007328558.tif 000027
【図２６】
2007328558.tif 000028