(57)【特許請求の範囲】
【請求項１】
画像入力装置で入力された画像データを情報処理装置を介して画像出力装置に送信するデータ送信システムにおける情報処理装置であって、
前記画像入力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像入力装置情報と、前記画像出力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像出力装置情報とを含む転送情報を入力する入力手段と、
前記入力された転送情報に含まれる画像入力装置情報において前記画像入力装置が第１のタイプである場合、前記画像入力装置に画像入力指示を行うことによって入力された画像データを当該画像入力装置から取得することによって受信し、前記画像入力装置が第２のタイプである場合、前記画像入力装置が能動的に送信した画像データを受信する受信手段と、
前記入力された転送情報に含まれる画像出力装置情報において前記画像出力装置が第１のタイプである場合、前記受信した画像データを前記画像出力装置に送信し、前記画像出力装置が第２のタイプである場合、前記画像出力装置が能動的に送信する画像データ送信要求を待って当該画像データ送信要求に応じて前記受信した画像データを前記画像出力装置に送信する送信手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記転送情報は、前記画像データの受信及び送信に利用されるプロトコルと、受信及び送信される前記画像データの形式と、前記画像データが送信される宛先のアドレスとを含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記転送情報において、受信された画像データの形式と送信される画像データの形式が異なる場合、受信された画像データを送信される画像データの形式に合わせて変換する変換手段を更に有することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記送信手段は、前記転送情報に含まれる送信に利用されるプロトコルに従って、前記画像データを送信することを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記画像入力装置情報は、前記画像入力装置とデータ送信を行う場合にデータ送信を主導する装置が送信元と受信先のいずれであるかを記述した情報であり、前記画像出力装置情報は、前記画像出力装置とデータ送信を行う場合にデータ送信を主導する装置が送信元と受信先のいずれであるかを記述した情報であることを特徴とする請求項１乃至４の何れか一項に記載の情報処理装置。
【請求項６】
画像入力装置で入力された画像データを画像出力装置に送信する情報処理装置による情報処理方法であって、
前記情報処理装置の入力手段が、前記画像入力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像入力装置情報と、前記画像出力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像出力装置情報とを含む転送情報を入力する入力工程と、
前記情報処理装置の受信手段が、前記入力された転送情報に含まれる画像入力装置情報において前記画像入力装置が第１のタイプである場合、前記画像入力装置に画像入力指示を行うことによって入力された画像データを当該画像入力装置から取得することによって受信し、前記画像入力装置が第２のタイプである場合、前記画像入力装置が能動的に送信した画像データを受信する受信工程と、
前記情報処理装置の送信手段が、前記入力された転送情報に含まれる画像出力装置情報において前記画像出力装置が第１のタイプである場合、前記受信した画像データを前記画像出力装置に送信し、前記画像出力装置が第２のタイプである場合、前記画像出力装置が能動的に送信する画像データ送信要求を待って当該画像データ送信要求に応じて前記受信した画像データを前記画像出力装置に送信する送信工程と
を有することを特徴とする情報処理方法。
【請求項７】
前記転送情報は、前記画像データの受信及び送信に利用されるプロトコルと、受信及び送信される前記画像データの形式と、前記画像データが送信される宛先のアドレスとを含むことを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記転送情報において、受信された画像データの形式と送信される画像データの形式が異なる場合、前記情報処理装置の変換手段が、受信された画像データを送信される画像データの形式に合わせて変換する変換工程を更に有することを特徴とする請求項７記載の情報処理方法。
【請求項９】
前記送信工程では、前記転送情報に含まれる送信に利用されるプロトコルに従って、前記画像データを送信することを特徴とする請求項７記載の情報処理方法。
【請求項１０】
前記画像入力装置情報は、前記画像入力装置とデータ送信を行う場合にデータ送信を主導する装置が送信元と受信先のいずれであるかを記述した情報であり、前記画像出力装置情報は、前記画像出力装置とデータ送信を行う場合にデータ送信を主導する装置が送信元と受信先のいずれであるかを記述した情報であることを特徴とする請求項６乃至９の何れか一項に記載の情報処理方法。
【請求項１１】
画像入力装置で入力された画像データを画像出力装置に送信する情報処理装置としてコンピュータを機能させるためのコンピュータプログラムを記憶したコンピュータ可読記憶媒体であって、
前記画像入力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像入力装置情報と、前記画像出力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像出力装置情報とを含む転送情報を入力する入力手段と、
前記入力された転送情報に含まれる画像入力装置情報において前記画像入力装置が第１のタイプである場合、前記画像入力装置に画像入力指示を行うことによって入力された画像データを当該画像入力装置から取得することによって受信し、前記画像入力装置が第２のタイプである場合、前記画像入力装置が能動的に送信した画像データを受信する受信手段と、
前記入力された転送情報に含まれる画像出力装置情報において前記画像出力装置が第１のタイプである場合、前記受信した画像データを前記画像出力装置に送信し、前記画像出力装置が第２のタイプである場合、前記画像出力装置が能動的に送信する画像データ送信要求を待って当該画像データ送信要求に応じて前記受信した画像データを前記画像出力装置に送信する送信手段と
としてコンピュータを機能させるためのコンピュータプログラムを記憶したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばネットワークを介して接続される入力装置及び出力装置等によって構成される画像入出力システム及び画像入出力制御装置とそれらの制御方法に関するものである。
【０００２】
【従来の技術】
従来、イメージスキャナやデジタルカメラやファクス受信機等や画像ファイルシステム（読み出し部）のデジタル化された入力装置は一般的にコンピュータと接続され、コンピュータからの制御によって入力処理を行っていた。すなわち、入力装置は接続されたコンピュータからデータを引き出される受動的な役割を果たしていた。一方近年では、入力装置の側が能動的に入力処理を行いデータの送り先に対してデータを送り込むプッシュ型の入力装置も開発されている。また従来、プリンタやファクス送信機や画像ファイルシステム（書き込み部）等のデジタル化された出力装置は一般的にコンピュータと接続され、コンピュータからの制御によって出力処理を行っていた。すなわち、出力装置は接続されたコンピュータからデータを送り込まれる受動的な役割を果たしていた。一方近年では、出力装置の側が能動的にデータの送り元からデータを読み出し出力処理を行うプル型の出力装置も開発されている。
【０００３】
一方、入力装置と出力装置を互いに直接に（すなわち、間に制御の主体かつデータの仲介者としてのコンピュータを介在させることなく）接続して、各装置の機能を組み合わせて、複合機能を提供するマルチファンクションシステムを構成する方式が知られている。このようなマルチファンクションシステムでは、入力装置と出力装置の相互間で、プロトコルおよび入力速度と出力速度、双方の制御体系、転送可能なデータ形式、画像解像度等からなるインタフェース条件が整合する場合にのみ入力装置と出力装置を接続できるため、あらかじめ定め設計した入力装置と出力装置の組み合わせを固定的に接続してきた。例えば１台のプッシュ型のイメージスキャナと複数の受動型のプリンタとをケーブルで予め接続し、原稿の１ページのスキャン１度に対してプリンタの台数だけ複写出力を得るデジタル複写機（重連コピー）のように、単一の入力装置と複数の出力装置を固定的に組み合わせたシステムが考案されている。
【０００４】
しかしながら近年では、Ethernetに代表されるネットワーク技術の発展と普及は著しく、単一ＬＡＮ上に入出力装置が多数接続されるようになったばかりか、複数のＬＡＮ間のインターネット接続によってあるＬＡＮに接続された入力装置と別のＬＡＮ接続された出力装置を組み合わせる事も可能になってきている。また、あるネットワークにある入出力装置が付け加えられたり取り除かれたりといった構成の変更は日常的に多く行われるようになってきている。したがって、ネットワーク経由で到達可能な、すなわち原理的には組み合わせ可能な入出力装置の組の数は膨大かつ動的になり、あらかじめ組み合わせを固定したシステムだけでなく、柔軟にその時点で組み合わせ可能な入出力装置群の組からなる組み合わせ型のマルチファンクションシステムを構成する方法が求めらる。そこで入力装置と出力装置の間でそれぞれのインタフェース条件のネゴシエーションを行い、接続可能な入力装置と出力装置の組み合わせを探し出す、すなわち固定的でない組み合わせによるマルチファンクションシステムも考案されている。
【０００５】
また、入力装置および／または出力装置が複数のインタフェース条件をサポートする場合には、入力装置と出力装置の間であらかじめネゴシエーションを行い接続可能なインタフェース条件を判定し、入力装置と出力装置のそれぞれがそのインタフェース条件での接続を行うシステムも考案されている。本発明の発明者らは先ごろ、ネットワークに接続された各デバイスの特性を示す情報（この情報をデバイスプロファイルと呼ぶ）をデータベースによって管理し、該デバイスプロファイルに基づき組み合わせ可能な入力装置と出力装置を選択した上で、それらを組み合わせた転送経路情報および転送に係る転送条件情報（これらの情報を転送パスプロファイルと呼ぶ）をデータベースによって管理し、入出力装置の操作パネルから該転送パスプロファイルを選択することで簡便なユーザインタフェースによっても入出力装置の複雑な組み合わせからなる複合機能を指定することが可能となり、さらに該転送パスプロファイルによって転送パスを構成する入出力装置群の制御を行う、転送パスプロファイルに基づく仮想的な入出力装置（システム）の構成方法を提案している。
【０００６】
【発明が解決しようとする課題】
しかしながら上記従来例の、本提案者らによる先の提案による「転送パスプロファイル」による組み合わせ型のマルチファンクションシステムの構成方法では、柔軟かつ動的な入出力装置の組み合わせを構成することはできるものの、転送パスプロファイルに含むことのできる組は、能動型の入力装置に対しては受動型の出力装置、また受動型の入力装置に対しては能動型の出力装置からなる組み合わせに限られていた。すなわち、例えばプッシュ型のスキャナとプル型のプリンタとの組み合わせを構成しようと試みた場合、両者ともデータ転送の起動を能動的に行なうように設計されているために、転送制御方向の不整合が生じ、実際には組み合わせられなかった。また逆に従来型の受動的なスキャナとプリンタとの組み合わせを構成しようと試みた場合、両者ともデータ転送の相手から転送の指示が命じられるのを待ちつづけるように設計されているために、転送制御方向の不整合が生じ、実際には組み合わせられなかった。このために、到達可能なネットワークに数多くの入出力装置が接続されている場合であっても、それらの入出力装置が前提とする転送制御方向によっては、転送パスプロファイルとして組み合わせ得る組み合わせの数は実質的に少ないことがある。すなわち、前提とする転送制御方向の不整合のためにネットワークに接続されている多種の入出力装置群を有効に転送パスプロファイルに組み込めないという問題があった。
【０００７】
また、上記従来例の転送パスプロファイルによる組み合わせ型のマルチファンクションシステムの構成方法では、柔軟かつ動的な入出力装置の組み合わせを構成することはできるものの、転送パスプロファイルに含むことのできる組は、扱い得る転送データが完全に合致する入力装置と出力装置の組み合わせのみであった。すなわち、例えば画像データの転送に際しての画像フォーマットや解像度、また例えばページ記述データの転送に際してのページ記述言語（ＰＤＬ）等、転送データの表現形式が入力装置と出力装置の両者で整合する組み合わせ以外は仮想入出力装置を構成できなかった。このために、到達可能なネットワークに数多くの入出力装置が接続されている場合であっても、それらの入出力装置の扱うデータ形式によっては、転送パスプロファイルとして組み合わせ得る組み合わせの数は実質的に少ないことがある。すなわち、扱う転送データの表現形式の差異のためにネットワークに接続されている多種の入出力装置群を有効に転送パスプロファイルに組み込めないという問題があった。
【０００８】
本発明は上記の問題を解決するためになされたものであり、本発明の第１の目的は、機器の特性の不整合によって単純に接続することのできない入出力装置を組み合わせ、ネットワークに接続された入出力装置群からより多くの仮想的な入出力装置を簡便に構成するマルチファンクションシステム及びその制御方法を提供することにある。
【０００９】
特に、データ転送制御方向が整合しない入力装置及び出力装置を組み合わせて、仮想的な入出力装置を簡単に構成可能なマルチファンクションシステム及びその制御方法を提供することを目的とする。
【００１０】
また特に、扱い得る転送データ表現形式の相異なる入力装置及び出力装置を組み合わせて、仮想的な入出力装置を簡便に構成可能な画像入出力システム及び画像入出力制御装置とそれらの制御方法を提供することを目的とする。
【００１１】
さらに、上記従来例では、柔軟かつ動的な入出力装置の組み合わせを構成することはできるものの、１つの入力装置と複数の出力装置との組み合わせからなる仮想入出力装置を実現するためには、入力装置側が複数の出力装置のそれぞれに対するデータ転送処理の責任を担っていたため、入力装置が達成しなければならない処理が複雑であった。したがってこの入力装置には、単に入力データの生成とその単一の宛先への転送だけの処理に必要な以上の制御手順をあらかじめ組み込んでおく必要があり、したがって装置を構成するために必要な資源、すなわちＣＰＵ性能やメモリ量やネットワークインタフェース性能といった資源に関して、より厳しい要求が生じることになる。これはひいてはネットワークに多数接続されている入力装置群１台１台のコストアップという問題につながる。
【００１２】
本発明は上記の問題を解決するためになされたものであり、入力と出力が１対多の関係にある複合機能を実現する場合、入力装置に必要な負荷を軽減し、したがって入力装置には高性能なＣＰＵや大容量あるいは高速処理可能なメモリ等を搭載する必要をなくし、安価にした入力装置を含む画像入出力システム及び画像入出力制御装置とそれらの制御方法を実現することが可能とすることを第２の目的とする。
【００１３】
さらに、転送パラメータ等の転送処理の出力装置ごとの差違に対する配慮を入力装置ごとに組み込む必要をなくして入力装置の単純化と汎用化を達成し、さらにシステム構築とシステム管理を容易にした画像入出力システム及び画像入出力制御装置とそれらの制御方法を提供することを第３の目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成からなる。
【００１５】
画像入力装置で入力された画像データを情報処理装置を介して画像出力装置に送信するデータ送信システムにおける情報処理装置であって、
前記画像入力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像入力装置情報と、前記画像出力装置が外部装置からの指示に従って受動的にデータ通信を実行する第１のタイプであるか外部装置からの指示を待たずに能動的にデータ通信を実行する第２のタイプであるかを示す画像出力装置情報とを含む転送情報を入力する入力手段と、
前記入力された転送情報に含まれる画像入力装置情報において前記画像入力装置が第１のタイプである場合、前記画像入力装置に画像入力指示を行うことによって入力された画像データを当該画像入力装置から取得することによって受信し、前記画像入力装置が第２のタイプである場合、前記画像入力装置が能動的に送信した画像データを受信する受信手段と、
前記入力された転送情報に含まれる画像出力装置情報において前記画像出力装置が第１のタイプである場合、前記受信した画像データを前記画像出力装置に送信し、前記画像出力装置が第２のタイプである場合、前記画像出力装置が能動的に送信する画像データ送信要求を待って当該画像データ送信要求に応じて前記受信した画像データを前記画像出力装置に送信する送信手段とを備える。
【００４１】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳説する。
【００４２】
［第１の実施の形態］
図１は、イメージスキャナやレーザビームプリンタをネットワークに接続するためのネットワークボードを装着した場合における、１台のイメージスキャナと２台のレーザプリンタを含むネットワークの構成の一例を示した図である。図においてレーザプリンタ１０１は、レーザビームプリンタでありレーザプリンタ３００と同様に構成されている。また代理装置が１台接続されている。
【００４３】
各装置のネットワークボードはローカルエリアネットワーク（ＬＡＮ）１０へ、例えば同軸コネクタをもつEthernetインタフェース１０Ｂａｓｅ２やＲＪ４５を持つ１０Ｂａｓｅ−Ｔ等のＬＡＮインタフェースを介して接続されている。
【００４４】
ホストコンピュータ４００等の複数のホストコンピュータもまたＬＡＮへ接続されており、ネットワークオペレーティングシステムの制御の下、これらのホストコンピュータは各装置のネットワークボードと通信することができる。
【００４５】
またＬＡＮ１０にサーバコンピュータ５００が接続されており、ネットワークオペレーティングシステムの制御の下、ホストコンピュータや各装置のネットワークボードと通信することができる。
【００４６】
＜装置の構成＞
次に、本実施例を適用するに好適な入力装置であるイメージスキャナと出力装置としてレーザプリンタの構成について、図２、図３を参照しながら説明する。なお、本実施例の適用範囲は、イメージスキャナやレーザビームプリンタに限られるものではなく、例えばファックスやデジタルカメラ、画像ファイリング装置等、他の入出力方式のデジタル情報処理装置一般でよいことは言うまでもない。
【００４７】
図２は本発明の実施例を示す入力装置の制御システム構成を説明するブロック図である。ここでは、イメージスキャナを例にして説明する。
【００４８】
イメージスキャナ２００において、２０１はＣＰＵで、ＲＯＭ２０３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部記憶装置２０５に記憶された制御プログラム等に基づいてシステムバス２１０に接続される各種デバイスとのアクセスを統括的に制御し、スキャナエンジン２０６から入力情報として画像信号を入力する。またこのＲＯＭ２０３のプログラムＲＯＭには、後述のフローチャートで示されるようなＣＰＵ２０１の制御プログラム等を記憶し、ＲＯＭ２０３のデータＲＯＭには、ハードディスクや不揮発性ＮＶＲＡＭ等の外部記憶装置２０５が無いイメージスキャナの場合には、装置の設定情報等を記憶している。
【００４９】
通信制御部２０８は、ネットワークボード２０９を介してホストコンピュータ等の外部装置との通信処理をＣＰＵ２０１の制御により可能となっており、イメージスキャナ内の情報等をホストコンピュータ等に通知可能に構成されている。
【００５０】
２０２はＣＰＵ２０１の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ２０２は、入力画像情報変換領域、環境データ格納領域等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部記憶装置２０５は、ディスクコントローラ（ＤＫＣ）２０４によりアクセスを制御される。
【００５１】
外部記憶装置２０５は、オプションとして接続され、入力画像情報格納領域や画像変換プログラム等を記憶する。また、２０７は操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００５２】
図３は、本発明の実施例を示す出力装置の制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタを例にして説明する。
【００５３】
レーザビームプリンタ３００において、３０１はＣＰＵで、ＲＯＭ３０３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部記憶装置３０５に記憶された制御プログラム等に基づいてシステムバス３１０に接続される各種デバイスとのアクセスを統括的に制御し、プリンタエンジン３０６に出力情報として画像信号を出力する。またこのＲＯＭ３０３のプログラムＲＯＭには、後述のフローチャートで示されるようなＣＰＵ３０１の制御プログラム等を記憶し、ＲＯＭ３０３のデータＲＯＭには、ハードディスク等の外部記憶装置３０５が無いプリンタの場合には、装置の設定情報等を記憶している。
【００５４】
通信制御部３０８は、ネットワークボード３０９を介してホストコンピュータ等の外部装置との通信処理をＣＰＵ３０１の制御により可能となっており、プリンタ内の情報等をホストコンピュータ等に通知可能に構成されている。
【００５５】
３０２はＣＰＵ３０１の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ３０２は、出力画像情報展開領域、環境データ格納領域、ＮＶＲＡＭ（不揮発性ランダムアクセスメモリ）等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部記憶装置３０５は、ディスクコントローラ（ＤＫＣ）３０４によりアクセスを制御される。外部記憶装置３０５は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、３０７は、操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００５６】
また、前述した外部記憶装置は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部記憶装置を複数接続できるように構成されていても良い。さらに、図示しないＮＶＲＡＭを有し、操作パネル３０７からのプリンタモード設定情報を記憶するようにしても良い。
【００５７】
図４は、本発明の実施例を示す制御プログラムが動作するホストコンピュータの制御システム構成を説明するブロック図である。
【００５８】
４００はホストコンピュータで、ＲＯＭ４０３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ４０１を備え、システムバス４１３に接続される各デバイスをＣＰＵ４０１が総括的に制御する。
【００５９】
また、このＲＯＭ４０３のプログラム用ＲＯＭには、図１１等のフローチャートで示されるようなＣＰＵ４０１の制御プログラム等を記憶し、ＲＯＭ４０３のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ４０３のデータ用ＲＯＭは上記文書処理等を行う際に使用する各種データ（例えば、印刷情報初期値、エラーメッセージ等）を記憶する。
【００６０】
４０２はＲＡＭで、ＣＰＵ４０１の主メモリ、ワークエリア等として機能する。
【００６１】
４０５はキーボードコントローラ（ＫＢＣ）で、キーボード４０９や不図示のポインティングデバイスからのキー入力を制御する。
【００６２】
４０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）４１０の表示を制御する。
【００６３】
４０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部記憶装置４１１とのアクセスを制御する。
【００６４】
４０８はネットワークインタフェースでネットワークを介してイメージスキャナ２００やレーザビームプリンタ３００等の入出力装置に接続されて（ＬＡＮ等のネットワークに関するデバイスおよび接続されている他の外部装置は不図示）、各入出力装置との通信制御処理を実行する。
【００６５】
ＣＰＵ４０１は、例えばＲＡＭ４０２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ４１０上でのＷＹＳＩＷＹＧ（見たままのものが得られる、即ちディスプレイ上で最終出力形態がその都度確認できること、仕上り希望通りにディスプレイに表示したり、表示通りに出力装置で出力できること）を可能としている。また、ＣＰＵ４０１は、ＣＲＴ４１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【００６６】
図５は、本発明の実施例を示す制御プログラムが動作するサーバコンピュータの制御システム構成を説明するブロック図である。
【００６７】
５００はサーバコンピュータで、ＲＯＭ５０３のプログラム用ＲＯＭに記憶された処理プログラム等に基づく処理を実行するＣＰＵ５０１を備え、システムバスＳ１３に接続される各デバイスをＣＰＵ５０１が総括的に制御する。
【００６８】
また、このＲＯＭ５０３のプログラム用ＲＯＭには、ＣＰＵ５０１の制御プログラム等を記憶する。
【００６９】
５０２はＲＡＭで、ＣＰＵ５０１の主メモリ、ワークエリア等として機能する。
【００７０】
５０５はキーボードコントローラ（ＫＢＣ）で、キーボード５０９や不図示のポインティングデバイスからのキー入力を制御する。
【００７１】
５０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）５１０の表示を制御する。
【００７２】
５０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム，種々のアプリケーション，フォントデータ，ユーザファイル，編集ファイル等を記憶するハードディスク（ＨＤ），フロッピーディスク（ＦＤ）等の外部記憶装置５１１とのアクセスを制御する。
【００７３】
５０８はネットワークインタフェースでネットワークを介してイメージスキャナ２００やレーザビームプリンタ３００等の入出力装置に接続されて（ＬＡＮ等のネットワークに関するデバイスおよび接続されている他の外部装置は不図示）、他のホストコンピュータや各入出力装置との通信制御処理を実行する。
【００７４】
ＣＰＵ５０１は、ハードディスク等の記録デバイスＳ１１に記憶されたファイルへのアクセスを管理する。
【００７５】
本実施例のサーバコンピュータは第１にファイルサーバとしての機能を果たす。すなわち、ホストコンピュータ４００等でデータの送受信や共有、記憶およびプリントサーバへ送信するデータのキューイング（処理待ち行列として記憶）を行う、ファイル管理部としての役割を果たす。
【００７６】
管理されるファイルには各種のものがありえるが、本実施例におけるファイルサーバは、主に後述の入力装置、出力装置、代理装置の機器情報（デバイスプロファイル）および装置間のデータ転送経路に係る情報（転送パスプロファイル）および転送パスプロファイルで定義される入出力装置群から構成される仮想的な入出力装置システムに係る情報（仮想デバイス）をネットワーク経由で集積格納する。
【００７７】
さらに本実施例のサーバコンピュータは、このような各種装置の構成情報を収集し、また、問い合わせに答えるデータベースマネージメントシステム（ＤＢＭＳ）としての機能をも持ち、構成情報サーバとしての役割を果たす。換言すれば本サーバコンピュータは第２に、各種装置等のプロファイル情報を管理し検索に答える一種のディレクトリサーバ、あるいは、ネームサーバ、あるいはルックアップサーバとして働く。本サーバのこの役割は、インターネットで広く利用されているＤＮＳ、あるいはＬＤＡＰ等の各種ディレクトリサービス、分散コンピューティング技術や分散オブジェクト技術における各種のネーミングサービスやインタフェースレポジトリ、あるいは、ＳｕｎによるＪａｖａ／ＪＩＮＩのルックアップサービス等を利用して実現することもできる。
【００７８】
各装置のネットワークボードは、様々なホストコンピュータと効率良く通信を行なう為に、複数のネットワークソフトウェアを同時に使用することが可能であり、例えばNetWare（Novell社の商標）やUNIX（ＡＴ＆Ｔ社の商標）等のソフトウェアを使用できる。またこれらソフトウェアで用いられる様々ネットワークプロトコルも同時に使用することが可能であり、例えばＴＣＰ／ＩＰやＩＰＸ／ＳＰＸ等が使用可能である。
【００７９】
図６は本発明の実施例を示す代理装置の制御システム構成を説明するブロック図である。
【００８０】
代理装置６００において、６０１はＣＰＵで、ＲＯＭ６０３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部記憶装置６０５に記憶された制御プログラム等に基づいてシステムバス６１３に接続される各種デバイスとのアクセスを統括的に制御する。またこのＲＯＭ６０３のプログラムＲＯＭには、後述のフローチャートで示されるようなＣＰＵ６０１の制御プログラム等を記憶し、ＲＯＭ６０３のデータＲＯＭには、ハードディスクや不揮発性ＮＶＲＡＭ等の外部記憶装置６０５が無いの場合には、装置の設定情報等を記憶している。
【００８１】
６１２はネットワークインタフェースでネットワークを介してイメージスキャナ２００やレーザビームプリンタ３００等の入出力装置に接続されて（ＬＡＮ等のネットワークに関するデバイスおよび接続されている他の外部装置は不図示）、各入出力装置との通信制御処理を実行する。
【００８２】
６０２はＣＰＵ６０１の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ客量を拡張することができるように構成されている。なお、ＲＡＭ６０２は、入力画像情報一時蓄積領域、環境データ格納領域等に用いられる。
【００８３】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部記憶装置６０５は、ディスクコントローラ（ＤＫＣ）６０４によりアクセスを制御される。外部記憶装置６０５は、オプションとして接続され、入力画像情報格納領域や画像変換プログラム等を記憶する。
【００８４】
また、６０７は操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００８５】
＜デバイスプロファイル＞
次に、これら装置の装置属性を記述したデバイスプロファイルと、各装置がそれをネットワーク経由でアナウンスする処理について説明する。
【００８６】
図７は本実施例に係るデバイスプロファイル情報の一例であり、イメージスキャナの装置情報を記述している。
【００８７】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではinput-device/scannerによって入力装置でありさらに詳しくはイメージスキャナであることが記述されている。
【００８８】
またDevice-Idは機器の識別子（ｓｃａｎ５）を示している。
【００８９】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．２が記述されている。
【００９０】
Transmission-Modeはサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Passiveによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ転送をサポートすることと、および、データ転送の制御において他の装置か主導的に制御のトリガをかけてデータ転送を行ない、本装置は受動的にその指示に従うことが規定される。すなわち、本例のスキャナは、他の装置からの指示をトリガとして原稿画像の読み込みを行ない、読み込んだ画像データを処理の指示元の他の装置に送信する。このように受動的なデータ転送を開始する入力装置を受動型入力装置と呼ぶことにする。
【００９１】
また、Resolutionはデータ処理解像度を示し、本例では１２００ｄｐｉ(dot per inch)の解像度で原稿画像を読み取ってデータ化できることが記述されている。
【００９２】
また、Data-formatはサポートするデータフォーマットを示している。本例ではＪＰＥＧ、ＧＩＦおよびＬＩＰＳ  ＩＶをサポートすることが記述されている。図８は本実施例に係るデバイスプロファイル情報の一例であり、プリンタの装置情報を記述している。
【００９３】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではoutput-device/printerによって出力装置でありさらに詳しくはプリンタであることが記述されている。
【００９４】
またDevice-Idは機器の識別子（ｌｐ５−１）を示している。
【００９５】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．５が記述されている。
【００９６】
Transmission-Modeはサポートする転送プロトコルと制御の方向性を示している。ここに記述されたLPD/Passive、FTP/Passiveによって、本例のデバイスプロファイルを持つ装置は、プロトコルＦＴＰおよびＬＰＤ（ＬＰＳ）によるデータ転送をサポートすることと、および、本装置は受動的に他の装置によるデータ転送制御を受けることが規定される。すなわち、本例のプリンタはデータの送信元からの発する要求に従って、印字出力のためのプリントデータを受信する。このように受動的にデータ転送の開始を待つ出力装置を受動的出力装置と呼ぶことにする。
【００９７】
また、Resolutionはデータ処理解像度を示し、本例では６００ｄｐｉ(dot per inch)の解像度の入力画像データを受信して印字出力できることが記述されている。
【００９８】
また、Data-formatはサポートするデータフォーマットを示している。本例ではＬＩＰＳ  ＩＶをサポートすることが記述されている。
【００９９】
図９は本実施例に係るデバイスプロファイル情報の一例であり、インタフェース変換機能を持った代理装置の装置情報を記述している。
【０１００】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではfilter-device/convによって代理装置でありさらに詳しくはインタフェース変換機能を持ったフィルタであることが記述されている。
【０１０１】
またDevice-Idは機器の識別子（proxy０）を示している。
【０１０２】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．１０が記述されている。
【０１０３】
filter-device/convタイプの代理装置は、受信用と送信用にサポートするインタフェース条件を持つ。
【０１０４】
Receive-Transmission-Modeは受信時にサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Passive,Activeによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ受信をサポートすることと、および、送信元装置からのデータ受信の制御が本装置を主導として行なうことも送信元の他の装置を主導として行なうこともどちらでもサポートできることを表現している。
Send-Transmission-Modeは送信時にサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Passive,Activeによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ送信をサポートすることと、および、データ転送の制御が本装置を主導として行なうことも送信先の他の装置を主導として行なうこともどちらでもサポートできることを表現している。
また、Receive-Resolutionは受信データ解像度を示し、１２００ｄｐｉ、６００ｄｐｉ、４００ｄｐｉ、３００ｄｐｉの各解像度の画像データを受信して処理できることを示している。Send-Resolutionは送信データ解像度を示し、送信先への送信時にデータを１２００ｄｐｉ、６００ｄｐｉ、４００ｄｐｉ、３００ｄｐｉ、１００ｄｐｉの各解像度に解像度変換して送信する能力を持つことを示している。
【０１０５】
また、Receive-Data-Formatは受信時にサポートするデータフォーマットを示している。本例ではＪＰＥＧをサポートすることが記述されている。Send-Data-Formatは送信時にサポートするデータ形式を示している。本例では、ＪＰＥＧ、ＧＩＦおよびＬＩＰＳ  ＩＶの各形式にデータ形式を変換して送信する能力を持つことを示している。
【０１０６】
＜プロファイルのアナウンス＞
図１０は、本発明におけるスキャナ（入力装置）およびプリンタ（出力装置）および代理装置の電源起動時あるいは、操作パネル等で設定変更が行なわれた際に機器情報をネットワーク上に通知する場合の、操作が行われた各装置における処理を示すフローチャートである。なお、Ｓ１００１〜Ｓ１００７は各ステップを示す。また、各制御手順は入力装置２００および出力装置３００および代理装置６００のＲＯＭに記憶されている。
【０１０７】
Ｓ１００１において現在の装置構成に従って、図２１に例として示した情報を合んだデバイスプロファイルを作成する。
【０１０８】
次にＳ１００２では前回設定変更時の情報が、プロファイルを管理するネットワーク上のデバイス存在しているかを確認するために、ネットワークに自装置のデバイスプロファイルを取得するための取得命令を送信し、Ｓ１００３で一定期間応答があるのを待機し、応答があった場合にはＳ１００５へ進み前記Ｓ１００１で生成したデバイスプロファイルと応答のあったデバイスプロファイルを比較する。
【０１０９】
Ｓ１００６でデバイスプロファイルの内容に変更があったと判断した場合には、Ｓ１００７においてＳ１００１で生成されたデバイスファイルを応答先に返信して処理を終了する。
【０１１０】
Ｓ１００７でデバイスプロファイルの内容が同一と判断した場合にはそのまま処理を終了する。
【０１１１】
Ｓ１００３においてデバイスプロファイル取得命令に対する応答がないと判断した場合には、Ｓ１００１で生成したデバイスプロファイルを新規装置情報としてネットワーク上にブロードキャスト送信を行ない処理を終了する。ネットワークに送信された情報は、サーバコンピュータ５００によって受信され、そのデータベース機能（ＤＢＭＳ）の管理下の記録デバイスに格納される。
【０１１２】
＜転送プロファイル＞
次に、デバイスプロファイルをもとに、複数の分散したデバイスを組み合わせる転送経路を定義し、組み合わせた装置群の複合機能によって新たに仮想的な入出力装置を定義する手順について説明する。
【０１１３】
図１１は、ホストコンピュータ４００のＣＰＵ４０１によって実行され、本発明における入力装置および出力装置の機器情報に従って入出力装置間の転送方式を決定し仮想入出力装置を生成する場合の処理を示すフローチャートである。なお、Ｓ１１０１〜Ｓ１１１３は各ステップを示す。また、各制御手順は、ＲＯＭ４０３に記憶されている。
【０１１４】
Ｓ１１０１で入力装置のデバイスプロファイルを取得する取得命令を送信し、Ｓ１１０２で一定期間応答があるのを待機する。ネットワークシステム全体が正常に機能していれば通常、サーバコンピュータ５００がデータベース中に格納している情報から要求のプロファイルデータを検索し応答を返す。
【０１１５】
応答を検知した場合には、Ｓ１１０３で応答のあったデバイスプロファイルが複数存在するかを判断する。デバイスプロファイルが複数存在する場合には、Ｓ１１０４でユーザから任意のデバイスプロファイルの選択を促す処理を行ない、選択されたデバイスプロファイル情報をＲＡＭ４０２等に一時記憶しておく。次にＳ１１０５で出力装置のデバイスプロファイルを取得する取得命令を送信する。ここで出力装置には代理装置も含む。
【０１１６】
Ｓ１１０６で一定期間応答があるのを待機し、応答を検知した場合には、Ｓ１１０７に進む。
【０１１７】
Ｓ１１０７では、Ｓ１１０４で選択された入力装置のデバイスプロファイルの定義内容に応じて、入力装置から出力処理可能な出力装置のデバイスプロファイルを検索する。Ｓ１１０７の検索処理は図１２に示す処理である。
【０１１８】
そしてＳ１１０８で出力可能な出力装置が存在した否かを判定し、存在した場合には、さらにＳ１１０９で複数台合致する出力装置が存在するかを判定する。
【０１１９】
複数存在する場合には、Ｓ１１１０で複数の出力デバイスプロファイルからなる組の選択をユーザに促す。ユーザは、ＣＲＴ４１０上に表示される図１３で示すようなグラフィカルユーザインタフェース（ＧＵＩ）によって、入力デバイスと出力デバイスを連結して、入力装置と出力装置の組を特定する。
【０１２０】
この結果、Ｓ１１１１では、選択された出力装置デバイスプロファイルの組と入力装置デバイスプロファイルから例えば図１４で示すような転送パスプロファイルを作成する。選択された入力装置と出力装置を連接するために、インタフェース変換のマッチングを行なう代理装置が仲介する場合は、代理装置を挟み込んだ転送パスプロファイルが生成される。
【０１２１】
そしてＳ１１１２において、作成された転送パスプロファイルとユーザ固有のプレファレンス等を組み合わせて論理的な入出力装置を定義する仮想入出力装置情報としてまとめ、それを入力装置あるいは出力装置が参照可能な領域としてサーバコンピュータ５００の記録デバイスＳ１１に送信して格納する。
【０１２２】
またＳ１１０２あるいはＳ１１０６でデバイスプロファイル取得要求命令に対する応答が無い場合、もしくはＳ１１０８で出力可能なデバイスプロファイルが検索できなかった場合には、Ｓ１１１３でユーザにエラー通知を行ない処理を終了する。
【０１２３】
なお、本例では入力装置をキーとして、データ転送の方向に探索を進めることで連接可能な転送パスを生成しているが、特定の出力装置に着目してその出力装置に到達する転送パスを素早く生成したい場合には転送経路の下流から上流に向けて逆向きに同様の探索を適用するように構成することもできる。
【０１２４】
図１２は図１１の出力可能なデバイスを検索する処理ステップに該当するサブルーチンを詳細に説明する図である。図１１のＳ１１０７ではＳ１１０５の時点で唯一選択されている入力側のデバイスプロファイルを入力源として与え、またここで取得した代理デバイスおよび出力側デバイスのプロファイルのリストを出力先リストとして与え、サブルーチンを呼び出す。まずＳ１２０１では呼び出し元から与えられた出力デバイス（代理装置を含む）プロファイルのリストから最初の１つを選択する。
【０１２５】
Ｓ１２０２で、それが代理装置であるかどうかを判定し、代理装置でない場合は以下の処理をスキップしてＳ１２０４に進む。
【０１２６】
Ｓ１２０４では、選択された出力装置（ここでは代理装置は含まない）が、与えられた入力源からの転送条件によって受信できるか否かを判定し、受信不能であれば（すなわち転送パスを構成しえなければ）以下の処理をスキップしてＳ１２０６に進む。
【０１２７】
Ｓ１２０５では、選択された出力デバイスプロファイルを本サブルーチンの実行結果リストに加える。このリストへの加算処理は集合の和によって行い、同一の要素を数回加えても結果リスト内にはそれぞれの要素が１つだけ存在するものとする。
【０１２８】
Ｓ１２０６では、呼び出し元から与えられた出力先リストの全ての検索が完了したか否かを判定し、完了した場合は復帰する。未検索の出力リストが残っている場合は、Ｓ１２に戻りリストの全ての出力先について以上の一連の処理を繰り返す。
【０１２９】
一方、Ｓ１２０２で選択されている入力源が代理装置であればＳ１２０３に進み、選択されている代理デバイスを入力源として与えまたサブルーチンの呼び出し時に与えられた代理デバイスおよび出力側デバイスのプロファイルのリストを出力先リストとして与えキ本サブルーチンを再帰的に呼び出す。この再帰呼び出しによって、代理デバイスを経由して到達可能なすべての出力デバイスをリストに追加することができる。
【０１３０】
ここでいう出力可能な出力側装置とは、着目している送信元側の装置の送信時のインタフェース条件、すなわちデータ解像度、データ形式等や転送プロトコルや制御の方向性と、転送先の出力側装置の受信時のインタフェース条件とを比較して、合致するものを含むような出力側装置のことをいう。代理装置が出力側に位置付けられるときはＲｅｃｅｉｖｅ系の各属性によってマッチングを行なう。一方代理装置が入力側に位置付けられるときはＳｅｎｄ系の各属性によってマッチングを行なう。
【０１３１】
制御の方向性のマッチングを行なうルールは、同一プロトコルのActiveとpassive、または、PassiveとActiveは整合するというルールである。Active同士およびpassive同士は不整合となり連接が許されない。Activeな送信側とpassiveな受信側を連接する際には、生成する転送パスプロファイルにおけるその部分経路のTransmission-Trigger属性の値にSourceすなわち送信側を設定する。Passiveな送信側とActiveな受信側を連接する際には、生成する転送パスプロファイルにおけるその部分経路のTransmission-Trigger属性の値にDestinationすなわち送信側を設定する。
【０１３２】
図１３はＣＲＴ４１０上に表示されるグラフィカルユーザインタフェース（ＧＵＩ）であり、入力デバイスと１台以上の出力デバイスを連結して、この結果１つの仮想的な入出力装置を定義する。
【０１３３】
図に示すウィンドウの部分ｂは、図１１のＳ１１０９で検出された複数台の出力装置を列挙している。
【０１３４】
ユーザが出力装置を示すアイコンの中から所望の１つ（ｌｐ５−２）をカーソルｃによって選択して部分ａまでドラグし配置する。すると、部分ａ内に表示されている入力装置を示すアイコン（ｓｃａｎ５）と連結する矢印付きの線分が自動的に表示される。
【０１３５】
ユーザは以上の処理を所望の出力装置をすべて配置し終えるまで繰り返し、完了するとウィンドウ下部のＯＫボタンにカーソルを合わせマウスクリックする。この時点で部分ａ内に構成されている入力装置から１台以上の出力装置への有向グラフが論理的に生成され、これらの組合せが仮想的な入出力装置を構成する。
【０１３６】
ここに含まれる出力装置に対応するデバイスプロファイルの組が図１１のＳ１１１０の選択結果となる。
【０１３７】
図１４は本実施例に係る転送パスプロファイルの一例である。本例の転送パスプロファイルは各行の記述順序に意味を持つことに注意されたい。
【０１３８】
Ｐａｔｈ−Ｓｅｔ属性は、装置ＩＤの組によって該装置群が連接した経路を記述し、複数の経路をリストとして記述する。
【０１３９】
Input-Deviceは、経路に含まれる入力装置のデバイスプロファイルで定義されたDevice-idの値であり、Input-Addressはその入力装置のネットワークアドレスである。
【０１４０】
Filter-Deviceは、経路に含まれる代理装置のデバイスプロファイルで定義されたDevice-idの値であり、Filter-Addressはその代理装置のネットワークアドレスである。
【０１４１】
つづく４行は上記入力装置から代理装置へのデータ転送のインタフェースパラメータを示す。
【０１４２】
Transmission-Modeはデータ転送のプロトコルを示し、ＦＴＰが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では受信側、すなわち代理装置が能動的にデータ転送を起動し入力装置からのデータ獲得を行ない、入力装置は受動的に要求されたデータを渡す。次のResolutionは転送時のデータ解像度を示し、本例では１２００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＪＰＥＧである。
【０１４３】
次に、Output-Deviceは、経路に含まれる出力装置のデバイスプロファイルで定義されたDevice-idの値であり、Output-Addressはその出力装置のネットワークアドレスである。
【０１４４】
続く４行は上記代理装置から出力装置へのデータ転送のインタフェースパラメータを示す。
【０１４５】
Transmission-Modeはデータ転送のプロトコルを示し、ＬＰＤが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では送信側、すなわち代理装置が能動的にデータ転送を起動し代理装置からのデータ送信を行ない、出力装置は受動的に受信したデータを処理する。次のResolutionは転送時のデータ解像度を示し、本例では６００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＬＩＰＳ  ＩＶである。
【０１４６】
したがって、本例の代理装置は本転送パスプロファイルによるデータ転送に際して、１２００ｄｐｉで受信したデータを６００ｄｐｉで送信する解像度変換と、ＪＰＥＧで受信したデータをＬＩＰＳ  ＩＶで送信するデータ形式変換とを行なう。また、ＦＴＰからＬＰＤへの転送プロトコルの変換を行なう。
【０１４７】
図１５は本実施例に係る仮想入出力装置情報の一例である。
【０１４８】
Transmission-Profile：属性は本仮想入出力装置を構成する転送パスプロファイルを示し、本例ではその値から例えば図１４の転送パスプロファイルを用いることがわかる。
【０１４９】
User-Profile：属性はユーザごとに固有の設定値を集めたデータ構造への識別子を示す。また、Display-Comment：属性は、本仮想入出力装置情報をホストコンピュータのＧＵＩや装置の操作パネル等に表示する際に識別の助けとなるコメントを記述する。
【０１５０】
次に実際に入力装置から出力装置へのデータ転送を行なう分散システムの動作を説明する。
【０１５１】
図１６は代理装置６００における操作パネル６０７の外観を示す図である。使用者はネットワークスキャナ２００に原稿をセットしてから、代理装置６００の操作パネル６０７を操作して、ネットワークに分散した論理的な仮想入出力装置の起動を行なう。図において、１６０１は１２桁の文字を表示可能な液晶パネル、１６０５は各機能を選択する十字キー、１６０３は処理動作の開始を指示する実行ボタンである。
【０１５２】
液晶パネル１６０１が装置のアイドル状態を示しているとき（図１６（ａ））、使用者は十字パネル１６０２の右キーを押すことにより、仮想入出力装置の選択を開始できる。
【０１５３】
図１６（ｂ）は十字パネル１６０２の右キーを１度押した場合の液晶パネル１６０１の表示内容である。液晶パネルの文字列は図１５のDisplay-Comment：に示されている文字列を表示しており、当該の仮想入出力装置が選択されていることがわかる。仮想入出力装置情報が複数登録されている場合、十字パネル１６０２の右キーをさらに押すことにより別の仮想入出力装置情報を選択可能である。
【０１５４】
ここで実行ボタン１６０３を押すことにより、この仮想入出力装置を利用したネットワーク分散コピー機能を実行する。図１５の仮想入出力装置情報によると、Transmission-Profile：属性の値から、例えば図１４の転送パスプロファイルを用いることがわかる。
【０１５５】
＜受動型デバイスの組み合わせによる仮想複写機＞
図１７は、本実施例における論理入出力装置情報に従って、入力装置から代理装置を経て出力装置にデータ転送を行なうことでリモートコピー機能を実現する際の、装置間の相互通信手順を示す図である。
【０１５６】
代理装置６００においてユーザが操作パネルを操作して起動した仮想入出力装置が、スキャナ２００から代理装置６００を経てプリンタ３００に到達する転送パスから構成されるリモートコピー機能を実現している場合、代理装置はスキャナに対して仮想入出力装置情報を含む接続要求を行なう（入力要求）。
【０１５７】
入力要求が受理されると、代理装置はスキャナに対して転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、代理装置が入力要求時にスキャナに指定した仮想入出力装置情報にもとづく図１４の転送パス情報をスキャナが検索すれば、スキャナは転送に係るパラメータを取得できる。
【０１５８】
制御データが受理されると、スキャナはスキャナエンジンによって読みとった原稿画像のデータを、代理装置に送信する（転送データ）。
【０１５９】
代理装置はスキャナからの転送データを受理し、次に、代理装置はプリンタに対して仮想入出力装置情報を含む接続要求を行なう（出力要求）。
【０１６０】
出力要求が受理されると、代理装置はプリンタに対し転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、代理装置が出力要求時にプリンタに指定した仮想入出力装置情報にもとづく転送パス情報をプリンタが検索すれば、プリンタは転送に係るパラメータを取得できる。
【０１６１】
制御データが受理されると、代理装置はスキャナから受信したデータをプリンタに送信する（転送データ）。
【０１６２】
プリンタによって転送データが受理されると、ネットワークに分散したデバイスにより組み合わされたマルチファンクションデバイスによる論理的なコピー動作が完了する。
【０１６３】
＜受動型デバイスの組み合わせによる仮想複写機におけるスキャナの動作＞
図１８は、本実施例における受動型入力装置であるスキャナが、論理入出力装置情報に従って、出力装置あるいは代理装置である出力先に対して出力データを送信する場合の処理を示すフローチャートである。なお、Ｓ１８０１、Ｓ１８０９は各ステップを示す。また、各制御手順はスキャナ２００のＲＯＭ２０３に記憶されている。
【０１６４】
まずＳ１８０１で本入力装置を入力元とする接続要求がプリンタ３００や代理装置６００等によって行なわれるまで待機する。接続要求を検知すると、Ｓ１８０２で、接続要求に付随する仮想入出力装置情報を確認し、Ｓ１８０３で、接続要求に含まれてきた仮想入出力装置情報に対応する転送パス情報を検索するために、サーバ５００に対して転送パス情報（図１４）の取得要求を送信する。
【０１６５】
Ｓ１８０４で一定期間応答を待機し、応答を検知した場合には、Ｓ１８０５で、転送パス情報に記述された転送パラメータに合致するスキャン動作を行うように、入力装置の動作設定に反映する。
【０１６６】
次にＳ１８０６で接続要求に対する接続を確立し、Ｓ１８０７でスキャナエンジン２０６によってデータ入力処理を行なう。
【０１６７】
Ｓ１８０８では、転送パスプロファイルに定義された出力先の装置に対して、転送パスプロファイルに定義された転送方式に従って、入力したデータを転送する。
【０１６８】
一方Ｓ１８０４でサーバ５００から応答が無い場合にはＳ１８０９でユーザにエラー通知を行ない処理を終了する。
【０１６９】
＜受動型デバイスの組み合わせによる仮想複写機における代理装置の動作＞
図１９は、本実施例における、代理装置が入力源である入力装置から受信したデータを論理入出力装置情報に従って出力装置へ対して転送する処理を示すフローチャートである。なお、Ｓ１９０１、Ｓ１９１６は各ステップを示す。また、各制御手順は代理装置６００のＲＯＭ６０３に記憶されている。
【０１７０】
ユーザが代理装置６００の操作パネル６０７で十字パネル１６０２の右キーを押下するとすると、Ｓ１９０１で、前記代理装置が転送パスプロファイルの代理装置として定義されている仮想入出力装置情報を検索するために、サーバ５００に対して仮想入出力装置情報の取得要求を送信する。
【０１７１】
Ｓ１９０２で一定期間応答を待機し、応答を検知した場合には、Ｓ１９０３で応答のあった仮想入出力装置情報が複数存在するかを判断する。仮想入出力装置情報が複数存在した場合には、Ｓ１９０４で操作パネルの液晶パネル１６０１に表示し、ユーザに任意の仮想入出力装置を選択させる。
【０１７２】
次にＳ１９０５で、選択された仮想入出力装置に係る転送パスプロファイル情報すなわち例えば図１４の各属性に対応する情報を取得するための命令を送信する。
【０１７３】
Ｓ１９０６で一定期間応答を待機し、応答を検知した場合には、Ｓ１９０７で、転送パス情報に記述された入力装置から該代理装置への転送パラメータ（すなわち解像度やデータ形式など）に従ってデータを受信するべくデータ受信のための設定を行なう。また、Ｓ１９０６で、転送パスプロファイルに記述された入力装置に対して、仮想入出力情報を含む接続要求を行う。
【０１７４】
Ｓ１９０９で入力元との接続が確立されたことを判定し、接続が確立すると、Ｓ１９１０で転送パス情報に記述された転送パラメータに従って入力装置からの転送データを受信し、記憶装置６０５に格納する。
【０１７５】
次にＳ１９１１で転送パスプロファイルによって定義された出力装置である出力先に対して仮想入出力装置情報を含む接続要求を行なう。
【０１７６】
Ｓ１９１２で出力先との接続が確立されたことを判定し、接続が確立するとＳ１９１３で、転送パスプロファイルに定義された出力装置へのデータ転送のための解像度や形式等の転送パラメータに合わせて転送データのデータ変換を行ない、Ｓ１９１４で、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、転送データを送信する。
【０１７７】
ついでＳ１９１５で、転送パスプロファイルに定義されたすべての出力先に対するデータ転送処理が完了したことを確認し、未処理の出力先が残っている場合はＳ１９１１に戻り、すべての出力先に対するデータ転送処理が完了するまでこれを繰り返してから終了する。
【０１７８】
一方Ｓ１９０４あるいはＳ１９０６でサーバ５００から応答が無い場合、もしくはＳ１９０９あるいはＳ１９１２で接続先と接続が確立できない場合には、Ｓ１９１６で、ユーザにエラー通知を行ない処理を終了する。
【０１７９】
＜受動型デバイスの組み合わせによる仮想複写機におけるプリンタの動作＞
図２０は本実施例の受動型出力装置であるプリンタが入力元からデータを受信する処理の流れを示すフローチャートである。なお、Ｓ２００１〜Ｓ２００９は各ステップを示す。また、各制御手順はプリンタ３００のＲＯＭ３０３に記憶されている。
【０１８０】
まずＳ２００１で、本プリンタを出力先とする接続要求が代理装置６００等によって行なわれるまで待機する。
【０１８１】
接続要求を受信すると、Ｓ２００２で仮想入出力装置指定の確認を行ない、Ｓ２００３では、接続要求に含まれてきた仮想入出力装置情報に対応する転送パス情報を検索するためにサーバ５００に対して転送パス情報（図１４）の取得要求を送信する。
【０１８２】
Ｓ２００４で一定期間応答を待機し、応答を検知した場合には、Ｓ２００５で、転送パス情報に記述された代理装置から該プリンタへの転送パラメータ（すなわち解像度やデータ形式など）に従ってデータを受信するべくデータ受信のための設定を行なう。また、Ｓ２００６で、接続元である代理装置との接続を確立する。さらに、Ｓ２００７で転送パス情報に記述された転送パラメータに従って代理装置からの転送データを受信する。
【０１８３】
次にＳ２００８で、受信したデータをプリンタエンジンによって印字出力し、処理が完了すると終了する。
【０１８４】
一方Ｓ２００４でサーバ５００から応答が無い場合は、Ｓ２００９で、ユーザにエラー通知を行ない処理を終了する。
【０１８５】
なお、本実施例において入力装置と出力装置と代理装置は、それぞれ別個のネットワークノードとして構成して説明したが、各装置の機能のいくつかを１つのネットワークノードすなわち装置の中に実装してもよい。この場合、他の入力装置の代理としてデータ形式のマッチングを伴う出力装置への転送を請け負う機能を入力装置や出力装置に埋め込むように構成することもできる。またサーバコンピュータに代理装置としての機能を持たせることもできる。
【０１８６】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報の格納先としてサーバコンピュータ５００を想定しているが、サーバコンピュータ５００が存在しない場合、デバイスプロファイルの取得要求があった際に入力装置および出力装置自身が要求先に直接現在の構成情報を元に通知してもよく、一方転送パスプロファイルおよび仮想入出力装置定義についても作成したホストコンピュータの記録装置に格納しておき、入力装置あるいは出力装置から要求があった場合に通知するか、あるいは転送パスプロファイルおよび仮想入出力装置定義を作成した後、入出力先となる入力装置および出力装置に送信に各入力装置および出力装置の記憶装置に格納し取得可能にしてもよい。
【０１８７】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報はホストコンピュータによって生成するように構成しているが、各プロファイルはサーバ、入力装置、出力装置、あるいは、代理装置において生成するように構成してもよい。
【０１８８】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報はあらかじめ生成してサーバに格納することを想定しているが、各装置において仮想入出力の選択を行なう時点でリアルタイムに、動的に各プロファイルの生成を行なうように構成してもよい。
【０１８９】
以上説明したように、本実施例によれば、代理装置がデータ転送の中継を行なう際にデータ転送制御の主従関係を調整することで、ネットワークに分散したスキャナとプリンタ等の装置を転送パスプロファイルによって組み合わせてリモートコピー等の複合的な機能を実現する分散システムにおいて、受動的に制御を待つように構成された（すなわち従来型の）入出力装置同士を組み合わせる転送パスプロファイルの定義が可能となり、組合わせの柔軟性が向上する。
【０１９０】
また本実施例によれば、データ転送を伴う仮想入出力装置の動作中はホストコンピュータが関与する必要がないため、大容量の画像データを高速に扱えるＣＰＵやメモリ資源を備えた高価なホストコンピュータを用意しなくとも、分散システムを構成することができる。
【０１９１】
また本実施例によれば、代理装置を挟み込むことによって組合わせ可能となる装置の組の発見を、入出力装置のみならず代理装置もそれ自体の装置構成情報をデバイスプロファイルとしてネットワークにアナウンスし、システムはこれらのデバイスプロファイルからほぼ自動的に転送経路を探索して転送パスプロファイルを構成するため、ユーザから透過に可能な組合わせの動的構成が行われ、ユーザに煩雑な操作を強いることなくユーザは数多くの組合わせからなる分散システムを利用することができる。
【０１９２】
また、本実施形態では、入力デバイスとしてスキャナを、出力デバイスとしてプリンタを用いているが、それぞれ画像の入力及び出力が行えるデバイスであればその種類は問わない。例えば、入力デバイスとしてファクシミリ受信機や文書処理装置、汎用のコンピュータなどを利用することもできるし、出力デバイスとしてファクシミリ送信機や電子ファイリング装置などを利用することもできる。
【０１９３】
また、入出力されるのは画像データに限らず、最終的に画像化されて出力されるデータであればどのような形式のデータであってもよい。例えば、文書データと呼ばれるような文書処理装置や文書処理アプリケーションの扱う形式のデータを入出力データとすることもできるし、画像データといっても様々な形式があり、それらのいずれであってもよい。
【０１９４】
［第２の実施形態］
以下に、本発明の第２の実施の形態を説明する。なお第１の実施の形態と同様の構成については同じ符合を用い説明を省略する。
【０１９５】
本実施形態におけるネットワークシステムは図１のように構成される。本実施形態において、プリンタ３００は能動型出力装置の一例としていわゆるプルプリント機能を持つプリンタであり、スキャナ２００は能動型入力装置の一例であるいわゆるプッシュスキャナであり、これらを組み合わせてネットワークに分散した仮想的なコピー装置を実現するシステムである。
【０１９６】
＜デバイスプロファイル＞
図２１は本実施例に係るデバイスプロファイル情報の一例であり、イメージスキャナの装置情報を記述している。
【０１９７】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではinput-device/scannerによって入力装置でありさらに詳しくはイメージスキャナであることが記述されている。
【０１９８】
またDevice-Idは機器の識別子（ｓｃａｎ５）を示している。
【０１９９】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．２が記述されている。
【０２００】
Transmission-Modeはサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Activeによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ転送をサポートすることと、および、データ転送の制御が本装置を主導として行なわれることが規定される。すなわち、本例のスキャナは、スキャナ装置の操作パネルに対するユーザの操作をトリガとして原稿画像の読み込みを行ない、読み込んだ画像データはスキャナ装置から発する要求によって出力先となる他の装置へと転送される。このように能動的なデータ転送を開始する入力装置を能動的入力装置と呼ぶことにする。
【０２０１】
また、Resolutionはデータ処理解像度を示し、本例では１２００ｄｐｉ(dot per inch)の解像度で原稿画像を読み取ってデータ化できることが記述されている。
また、Data-formatはサポートするデータフォーマットを示している。本例ではＪＰＥＧ、ＧＩＦおよびＬＩＰＳ  ＩＶをサポートすることが記述されている。
【０２０２】
図２２は本実施例に係るデバイスプロファイル情報の一例であり、プリンタの装置情報を記述している。
【０２０３】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではoutput-device/printerによって出力装置でありさらに詳しくはプリンタであることが記述されている。
【０２０４】
またDevice-Idは機器の識別子（ｌｐ５−１）を示している。
【０２０５】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．Ｓが記述されている。
【０２０６】
Transmission-Modeはサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Activeによって、本例のデバイスプロファイルを持つ装置は、プロトコルＦＴＰによるデータ転送をサポートすることと、および、本装置は他の装置に対して能動的にデータ転送の制御を行ないデータを獲得することが規定される。すなわち、本例のプリンタはデータの送信元にデータ転送の要求を発して、印字出力のためのプリントデータを受信する。このように能動的にデータ転送を開始する出力装置を能動的出力装置と呼ぶことにする。またこのようなプリント動作を特にプルプリントと呼ぶ。
【０２０７】
また、Resolutionはデータ処理解像度を示し、本例では６００ｄｐｉ(dotper inch)の解像度の入力画像データを受信して印字出力できることが記述されている。
【０２０８】
また、Data-formatはサポートするデータフォーマットを示している。本例ではＬＩＰＳ  ＩＶをサポートすることが記述されている。
【０２０９】
＜転送パスプロファイル＞
図２３は本実施例に係る転送パスプロファイルの一例である。本例の転送パスプロファイルは各行の記述順序に意味を持つことに注意されたい。
【０２１０】
Ｐａｔｈ−Ｓｅｔ属性は、装置ＩＤの組によって該装置群が連接した経路を記述し、複数の経路をリストとして記述する。
【０２１１】
Input-Deviceは、経路に含まれる入力装置のデバイスプロファイルで定義されたDevice-idの値であり、Input-Addressはその入力装置のネットワークアドレスである。
【０２１２】
Filter-Deviceは、経路に含まれる代理装置のデバイスプロファイルで定義されたDevice-idの値であり、Filter-Addressはその代理装置のネットワークアドレスである。
【０２１３】
つづく４行は上記入力装置から代理装置へのデータ転送のインタフェースパラメータを示す。
【０２１４】
Transmission-Modeはデータ転送のプロトコルを示し、ＦＴＰが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では送信側、すなわち入力装置が能動的にデータ転送を起動し代理装置へのデータ転送を行ない、代理装置は受動的にデータを受信する。次のResolutionは転送時のデータ解像度を示し、本例では１２００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＪＰＥＧである。
【０２１５】
次に、Output-Deviceは、経路に含まれる出力装置のデバイスプロファイルで定義されたDevice-idの値であり、Output-Addressはその出力装置のネットワークアドレスである。
【０２１６】
続く４行は上記代理装置から出力装置へのデータ転送のインタフェースパラメータを示す。
【０２１７】
Transmission-Modeはデータ転送のプロトコルを示し、ＦＴＰが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では受信側、すなわち出力装置が能動的にデータ転送を起動し代理装置からのデータ獲得を行ない、代理装置は受動的に要求されたデータを渡す。次のResolutionは転送時のデータ解像度を示し、本例では６００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＬＩＰＳ  ＩＶである。
【０２１８】
したがって、本例の代理装置は本転送パスプロファイルによるデータ転送に際して、１２００ｄｐｉで受信したデータを６００ｄｐｉで送信する解像度変換と、ＪＰＥＧで受信したデータをＬＩＰＳ  ＩＶで送信するデータ形式変換とを行なう。
【０２１９】
＜能動型デバイスの組み合わせによる仮想複写機＞
図２４は、本実施例における論理入出力装置情報に従って、入力装置から代理装置を経て出力装置にデータ転送を行なうことでリモートコピー機能を実現する際の、装置間の相互通信手順を示す図である。
【０２２０】
スキャナ２００においてユーザが操作パネルを操作して起動した仮想入出力装置が、スキャナ２００から代理装置６００を経てプリンタ３００に到達する転送パスから構成されるリモートコピー機能を実現している場合、スキャナは代理装置に対して仮想入出力装置情報を含む接続要求を行なう（出力要求）。
【０２２１】
出力要求が受理されると、スキャナは代理装置に対して転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、スキャナが出力要求時に代理装置に指定した仮想入出力装置情報にもとづく図２３の転送パス情報を代理装置が検索すれば、代理装置は転送に係るパラメータを取得できる。
【０２２２】
制御データが受理されると、スキャナはスキャナエンジンによって読みとった原稿画像のデータを、代理装置に送信する（転送データ）。
【０２２３】
次にプリンタ３００においてユーザが操作パネルを操作してスキャナ２００で読み取った原稿画像を要求すると、プリンタは代理装置に対して仮想入出力装置情報を含む接続要求を行なう（入力要求）。
【０２２４】
入力要求が受理されると、プリンタは代理装置に対し転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、プリンタが入力要求時に代理装置に指定した仮想入出力装置情報にもとづく転送パス情報を代理装置が検索すれば、代理装置は転送に係るパラメータを取得できる。
【０２２５】
制御データが受理されると、代理装置はスキャナから受信したデータをプリンタに送信する（転送データ）。
【０２２６】
プリンタによって転送データが受理されると、ネットワークに分散したデバイスにより組み合わされたマルチファンクションデバイスによる論理的なコピー動作が完了する。
【０２２７】
＜能動型デバイスの組み合わせによる仮想複写機におけるスキャナの動作＞
図２５は、本実施例におけるスキャナが、論理入出力装置情報に従って、出力装置あるいは代理装置である出力先に対して出力データを送信する場合の処理を示すフローチャートである。なお、Ｓ２５０１〜Ｓ２５１２は各ステップを示す。また、各制御手順はスキャナ２００のＲＯＭ２０３に記憶されている。
【０２２８】
ユーザがスキャナ２００の操作パネル２０７で十字パネル１６０２の右キーを押下するとすると、Ｓ２５０１で、前記入力装置が転送パスプロファイルの入力装置として定義されている仮想入出力装置情報を検索するために、サーバ５００に対して仮想入出力装置情報の取得要求を送信する。
【０２２９】
Ｓ２５０２で一定期間応答を待機し、応答を検知した場合には、Ｓ２５０３で応答のあった仮想入出力装置情報が複数存在するかを判断する。仮想入出力装置情報が複数存在した場合には、Ｓ２５０４で操作パネルの液晶パネル１６０１に表示し、ユーザに任意の仮想入出力装置を選択させる。
【０２３０】
次にＳ２５０５で、選択された仮想入出力装置に係る転送パスプロファイル情報すなわち例えば図２３の各属性に対応する情報を取得するための命令を送信する。
【０２３１】
Ｓ２５０６で一定期間応答を待機し、応答を検知した場合には、Ｓ２５０７で、転送パスプロファイルによって定義された出力装置または代理装置である出力先に対して仮想入出力装置情報を含む接続要求を行なう。
【０２３２】
Ｓ２５０８で出力先である出力装置または代理装置との接続が確立されたことを判定し、接続が確立するとＳ２５０９で転送パスプロファイルに定義された値を入力装置の設定に反映し、Ｓ２５１０でデータ入力処理を行なう。
【０２３３】
Ｓ２５１１では、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、入力されたデータを転送する。
【０２３４】
一方Ｓ２５０２およびＳ２５０６でサーバ５００から応答が無い場合、もしくはＳ２５１０で出力先と接続が確立できない場合にはＳ２５１２でユーザにエラー通知を行ない処理を終了する。
【０２３５】
＜能動型デバイスの組み合わせによる仮想複写機における代理装置の動作＞
図２６は、本実施例における、代理装置が入力源である入力装置から受信したデータを論理入出力装置情報に従って出力装置へ対して転送する処理を示すフローチャートである。なお、Ｓ２６０１〜Ｓ２６１４は各ステップを示す。また、各制御手順は代理装置６００のＲＯＭ６０３に記憶されている。
【０２３６】
まずＳ２６０１で、本代理装置を出力先とする接続要求がスキャナ２００等によって行なわれるまで待機する。
【０２３７】
接続要求を受信すると、Ｓ２６０２で、接続要求に付随する仮想入出力装置情報を確認し、２６０３で、接続要求に含まれてきた仮想入出力装置情報に対応する転送パス情報を検索するために、サーバ５００に対して転送パス情報（図２３）の取得要求を送信する。
【０２３８】
Ｓ２６０４で一定期間応答を待機し、応答を検知した場合には、Ｓ２６０５で、転送パス情報に記述された入力装置から承代理装置への転送パラメータ（すなわち解像度やデータ形式など）に従ってデータを受信するべくデータ受信のための設定を行なう。また、Ｓ２６０６で、接続元である入力装置との接続を確立する。さらに、Ｓ２６０７で転送パス情報に記述された転送パラメータに従って入力装置からの転送データを受信し、記憶装置６０５に格納する。
【０２３９】
次にＳ２６０８で本代理装置を入力元とする接続要求がプリンタ３００等によって行なわれるまで待機する。
【０２４０】
Ｓ２６０９で、接続要求に付随する仮想入出力装置情報から当該接続要求が、現在実行中の仮想入出力装置を構成するために出力装置が行った接続要求であることを判定する。本フローチャートを実行するプロセスが担当する仮想入出力装置と無関係な接続要求であれば無視してＳ２６０８で再待機する。実行中の仮想入出力装置に係る接続要求であれば処理を続行する。
【０２４１】
Ｓ２６１０で、接続元である出力装置との接続を確立する。さらにＳ２６１１で転送パスプロファイルに定義された出力装置へのデータ転送のための解像度や形式等の転送パラメータに合わせて転送データのデータ変換を行ない、Ｓ２６１２で、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、転送データを送信する。
【０２４２】
ついでＳ２６１３で、転送パスプロファイルに定義されたすべての出力先に対するデータ転送処理が完了したことを確認し、未処理の出力先が残っている場合はＳ２６０８に戻り、すべての出力先に対するデータ転送処理が完了するまでこれを繰り返してから終了する。
【０２４３】
一方Ｓ２６０４でサーバ５００から応答が無い場合には、Ｓ２６１４で、ユーザにエラー通知を行ない処理を終了する。
【０２４４】
＜能動型デバイスの組み合わせによる仮想複写機におけるプリンタの動作＞
図２７は本実施例の能動型出力装置が入力元からデータを受信する処理の流れを示すフローチャートである。なお、Ｓ２７０１〜Ｓ２７１２は各ステップを示す。また、各制御手順はプリンタ３００のＲＯＭ３０３に記憶されている。
【０２４５】
ユーザがプリンタ３００の操作パネル３０７で十字パネル１６０２の右キーを押下するとすると、Ｓ２７０１で、前記プリンタが転送パスプロファイルの出力装置として定義されている仮想入出力装置情報を検索するために、サーバ５００に対して仮想入出力装置情報の取得要求を送信する。
【０２４６】
Ｓ２７０２で一定期間応答を待機し、応答を検知した場合には、Ｓ２７０３で応答のあった仮想入出力装置情報が複数存在するかを判断する。仮想入出力装置情報が複数存在した場合には、Ｓ２７０４で操作パネルの液晶パネル１６０１に表示し、ユーザに任意の仮想入出力装置を選択させる。
【０２４７】
次にＳ２７０５で、選択された仮想入出力装置に係る転送パスプロファイル情報すなわち例えば図２３の各属性に対応する情報を取得するための命令を送信する。
【０２４８】
Ｓ２７０６で一定期間応答を待機し、応答を検知した場合には、Ｓ２７０７で転送パス情報に記述された代理装置から該プリンタへの転送パラメータ（すなわち解像度やデータ形式など）に従ってデータを受信するべくデータ受信のための設定を行なう。また、Ｓ２７０８で、転送パスプロファイルによって定義された入力装置または代理装置である入力元に対して仮想入出力装置情報を含む接続要求を行なう。
【０２４９】
Ｓ２７０９で入力元である入力装置または代理装置との接続が確立されたことを判定し、接続が確立するとＳ２７１０で転送パス情報に記述された転送パラメータに従って代理装置からの転送データを受信する。
【０２５０】
次にＳ２７１１で、受信したデータをプリンタエンジンによって印字出力し、処理が完了すると終了する。
【０２５１】
一方、Ｓ２７０２およびＳ２７０６でサーバ５００から応答が無い場合、もしくはＳ２７０９で入力元と接続が確立できない場合にはＳ２７１２でユーザにエラー通知を行ない処理を終了する。
【０２５２】
なお、本実施例において入力装置と出力装置と代理装置は、それぞれ別個のネットワークノードとして構成して説明したが、各装置の機能のいくつかを１つのネットワークノードすなわち装置の中に実装してもよい。この場合、他の入力装置の代理としてデータ形式のマッチングを伴う出力装置への転送を請け負う機能を入力装置や出力装置に埋め込むように構成することもできる。またサーバコンピュータに代理装置としての機能を持たせることもできる。
【０２５３】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報の格納先としてサーバコンピュータ５００を想定しているが、サーバコンピュータ５００が存在しない場合、デバイスプロファイルの取得要求があった際に入力装置および出力装置自身が要求先に直接現在の構成情報を元に通知してもよく、一方転送パスプロファイルおよび仮想入出力装置定義についても作成したホストコンピュータの記録装置に格納しておき、入力装置あるいは出力装置から要求があった場合に通知するか、あるいは転送パスプロファイルおよび仮想入出力装置定義を作成した後、入出力先となる入力装置および出力装置に送信に各入力装置および出力装置の記憶装置に格納し取得可能にしてもよい。
【０２５４】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報はホストコンピュータによって生成するように構成しているが、各プロファイルはサーバ、入力装置、出力装置、あるいは、代理装置において生成するように構成してもよい。
【０２５５】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報はあらかじめ生成してサーバに格納することを想定しているが、各装置において仮想入出力の選択を行なう時点でリアルタイムに、動的に各プロファイルの生成を行なうように構成してもよい。
【０２５６】
以上説明したように、本実施例によれば第１の実施の形態の効果に加えてさらに、プッシュスキャナやプルプリンタといった、ユーザがその装置の前で操作することで他の装置との連携を果たす能動的な新しい入出力装置同士を組み合わせて、仮想的な論理入出力装置の一構成要素として利用することが可能となる。
【０２５７】
＜第１及び第２実施形態の効果＞
以上詳述したように、第１及び第２実施形態によれば、代理装置がデータ転送の中継を行なう際にデータ転送制御の主従関係を調整することで、ネットワークに分散した入力装置と出力装置を転送パスプロファイルによって組み合わせて複合的な機能を実現する分散システムにおいて、前提とするデータ転送制御方向が整合しない入出力装置を組み合わせ、より柔軟な組合せからなる転送パスプロファイルの定義を可能とし、ネットワークに接続された入出力装置群からより多くの仮想的な入出力装置を簡便に構成する分散システムを提供できる。
【０２５８】
［第３の実施形態］
以下、本発明の第３の実施の形態を図面に基づいて詳説する。なお本実施形態におけるネットワークの構成や、ネットワーク中の各デバイスの構成は、第１の実施形態の図１乃至図６と同様であるので、説明を省略する。ただし、本実施形態では、第１あるいは第２の実施形態における仮想入出力装置のように、能動型の入出力デバイスどおし、あるいは受動型の入出力デバイスどおしを組み合わせたものではなく、一方が能動型、他方が受動型の入出力デバイスを組み合わせて構成される。そのために、組み合わされるデバイスのデバイスプロファイルは第１あるいは第２の実施形態とは異なる。
【０２５９】
次に、本実施形態における各デバイスの装置属性を記述したデバイスプロファイルと、各装置がそれをネットワーク経由でアナウンスする処理について説明する。
【０２６０】
＜デバイスプロファイル＞
図２１は本実施例に係るデバイスプロファイル情報の一例であり、能動型のイメージスキャナの装置情報を記述している。
【０２６１】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではinput-device/scannerによって入力装置でありさらに詳しくはイメージスキャナであることが記述されている。
【０２６２】
またDevice-Idは機器の識別子（ｓｃａｎ５）を示している。
【０２６３】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．２が記述されている。
【０２６４】
Transmission-Modeはサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Passiveによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ転送をサポートすることと、および、データ転送の制御が本装置を主導として行なわれることが規定される。すなわち、本例のスキャナは、スキャナ装置の操作パネルに対するユーザの操作をトリガとして原稿画像の読み込みを行ない、読み込んだ画像データはスキャナ装置から発する要求によって出力先となる他の装置へと転送される。このように能動的なデータ転送を開始する入力装置を能動的入力装置と呼ぶことにする。
【０２６５】
また、Resolutionはデータ処理解像度を示し、本例では１２００ｄｐｉ(dot per inch)の解像度で原稿画像を読み取ってデータ化できることが記述されている。
【０２６６】
また、Data-formatはサポートするデータフォーマットを示している。本例ではＪＰＥＧ、ＧＩＦおよびＬＩＰＳ  ＩＶをサポートすることが記述されている。
【０２６７】
図８は本実施例に係るデバイスプロファイル情報の一例であり、受動型のプリンタの装置情報を記述している。
【０２６８】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではoutput-device/printerによって出力装置でありさらに詳しくはプリンタであることが記述されている。
【０２６９】
またDevice-Idは機器の識別子（ｌｐ５−１）を示している。
【０２７０】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．５が記述されている。
【０２７１】
Transmission-Modeはサポートする転送プロトコルと制御の方向性を示している。ここに記述されたLPD/Passive、FTP/Passiveによって、本例のデバイスプロファイルを持つ装置は、プロトコルＦＴＰおよびＬＰＤ（ＬＰＳ）によるデータ転送をサポートすることと、および、本装置は受動的に他の装置によるデータ転送制御を受けることが規定される。すなわち、本例のプリンタはデータの送信元からの発する要求に従って、印字出力のためのプリントデータを受信する。このように受動的にデータ転送の開始を待つ出力装置を受動的出力装置と呼ぶことにする。
【０２７２】
また、Resolutionはデータ処理解像度を示し、本例では６００ｄｐｉ(dot per inch)の解像度の入力画像データを受信して印字出力できることが記述されている。
【０２７３】
また、Data-formatはサポートするデータフォーマットを示している。本例ではＬＩＰＳ  ＩＶをサポートすることが記述されている。
【０２７４】
図９は本実施例に係るデバイスプロファイル情報の一例であり、インタフェース変換機能を持った代理装置の装置情報を記述している。
【０２７５】
Device-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置(filter)であるかといった種別を示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。ここではfilter-device/convによって代理装置でありさらに詳しくはインタフェース変換機能を持ったフィルタであることが記述されている。
【０２７６】
またDevice-Idは機器の識別子（proxy０）を示している。
【０２７７】
Device-Addressは機器のネットワークアドレスを示している。ここでは、ＴＣＰ／ＩＰネットワークを前提とし、ＩＰアドレス１７２．１６．１０．１０が記述されている。
【０２７８】
filter-device/convタイプの代理装置は、受信用と送信用にサポートするインタフェース条件を持つ。
【０２７９】
Receive-Transmission-Modeは受信時にサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Passive,Activeによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ受信をサポートすることと、および、送信元装置からのデータ受信の制御が本装置を主導として行なうことも送信元の他の装置を主導として行なうこともどちらでもサポートできることを表現している。
【０２８０】
Send-Transmission-Modeは送信時にサポートする転送プロトコルと制御の方向性を示している。ここに記述されたFTP/Passive,Activeによって、本例のデバイスプロファイルを持つ装置は、良く知られたファイル転送プロトコルであるＦＴＰによるデータ送信をサポートすることと、および、データ転送の制御が本装置を主導として行なうことも送信先の他の装置を主導として行なうこともどちらでもサポートできることを表現している。
【０２８１】
また、Receive-Resolutionは受信データ解像度を示し、１２００ｄｐｉ、６００ｄｐｉ、４００ｄｐｉ、３００ｄｐｉの各解像度の画像データを受信して処理できることを示している。Send-Resolutionは送信データ解像度を示し、送信先への送信時にデータを１２００ｄｐｉ、６００ｄｐｉ、４００ｄｐｉ、３００ｄｐｉ、１００ｄｐｉの各解像度に解像度変換して送信する能力を持つことを示している。
【０２８２】
また、Receive-Data-Formatは受信時にサポートするデータフォーマットを示している。本例ではＪＰＥＧをサポートすることが記述されている。Send-Data-Formatは送信時にサポートするデータ形式を示している。本例では、ＪＰＥＧ、ＧＩＦおよびＬＩＰＳ  ＩＶの各形式にデータ形式を変換して送信する能力を持つことを示している。
【０２８３】
本実施形態における入力装置および出力装置および代理装置の電源起動時あるいは、操作パネル等で設定変更が行なわれた際に機器情報をネットワーク上に通知する場合の処理は、第１の実施形態と同じく図１０のフローチャートとなる。図１０は既に説明済みであるので、その説明はここでは省略する。
【０２８４】
また、ホストコンピュータ４００のＣＰＵ４０１によって実行され、本発明における入力装置および出力装置の機器情報に従って入出力装置間の転送方式を決定し仮想入出力装置を生成する場合の処理は、第１実施形態と同じく図１１及び図１２のフローチャートとなるので、その説明はここでは省略する。さらに複数の出力装置が存在する場合に、用いる出力装置を選択するためのＧＵＩも、第１実施形態と同じく図１３に示されたものである。
【０２８５】
しかしながら、仮想入出力装置を構成するための手順は第１の実施形態と同一であっても、入力装置のプロファイルと出力装置のプロファイルがそれぞれ第１の実施形態と異なり、能動的なスキャナと受動的なプリンタであるために、作成される仮想入出力装置の構成やその制御の仕方は第１の実施形態とは異なる。
【０２８６】
本実施形態において、図１１のステップＳ１１１１により作成される転送パスプロファイルは、例えば図２８に示すようなものである。選択された入力装置と出力装置を連接するために、インタフェース変換のマッチングを行なう代理装置が仲介する場合は、代理装置を挟み込んだ転送パスプロファイルが生成される。
【０２８７】
そして、作成された図２８の転送パスプロファイルとユーザ固有のプレファレンス等とが組み合わされて論理的な入出力装置を定義する仮想入出力装置情報としてまとめられ、それが入力装置あるいは出力装置が参照可能な領域としてサーバコンピュータ５００の記録デバイスＳ１１に送信されて格納される。格納される仮想入出力装置のデバイスプロファイルは、第１の実施形態における図１５と同様の形式となる。ただし、転送プロファイルの識別子は第１の実施形態と本実施形態とではともに＃２３４で同一であるものの、その内容は第１の実施形態では図１４のような転送プロファイルであり、本実施形態では図２８に示す転送プロファイルである。
【０２８８】
図２８は本実施例に係る転送パスプロファイルの一例である。本例の転送パスプロファイルは各行の記述順序に意味を持つことに注意されたい。
【０２８９】
Ｐａｔｈ−Ｓｅｔ属性は、装置ＩＤの組によって該装置群が連接した経路を記述し、複数の経路をリストとして記述する。
【０２９０】
Input-Deviceは、経路に含まれる入力装置のデバイスプロファイルで定義されたDevice-idの値であり、Input-Addressはその入力装置のネットワークアドレスである。
【０２９１】
Filter-Deviceは、経路に含まれる代理装置のデバイスプロファイルで定義されたDevice-idの値であり、Filter-Addressはその代理装置のネットワークアドレスである。
【０２９２】
つづく４行は上記入力装置から代理装置へのデータ転送のインタフェースパラメータを示す。
【０２９３】
Transmission-Modeはデータ転送のプロトコルを示し、ＦＴＰが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では送信側、すなわちスキャナ（入力装置）が能動的にデータ送信を行ない、代理装置（proxy)は受動的に転送データの受信を行なう。次のResolutionは転送時のデータ解像度を示し、本例では１２００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＪＰＥＧである。
【０２９４】
次に、Output-Deviceは、経路に含まれる出力装置のデバイスプロファイルで定義されたDevice-idの値であり、Output-Addressはその出力装置のネットワークアドレスである。
【０２９５】
続く４行は上記代理装置から出力装置へのデータ転送のインタフェースパラメータを示す。
【０２９６】
Transmission-Modeはデータ転送のプロトコルを示し、ＬＰＤが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では送信側、すなわち代理装置が能動的にデータ送信を行ない、プリンタ（出力装置）は受動的に転送データの受信を行なう。次のResolutionは転送時のデータ解像度を示し、本例では６００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＬＩＰＳ  ＩＶである。
【０２９７】
したがって、本例の代理装置は本転送パスプロファイルによるデータ転送に際して、ＦＴＰで受信したデータをＬＰＤで送信するプロトコル変換と、１２００ｄｐｉで受信したデータを６００ｄｐｉで送信する解像度変換と、ＪＰＥＧで受信したデータをＬＩＰＳ  ＩＶで送信するデータ形式変換とを行なう。
【０２９８】
原稿複写を行う際には、使用者はネットワークスキャナ２００の前に立ち、原稿をセットしてから、その操作パネル２０７を操作して、ネットワークに分散した論理的な仮想入出力装置の起動を行なう。ネットワークスキャナ２００における操作パネル２０７の外観は図１６に示す通りであり、第１実施形態の代理装置６００の操作パネルと同様の構成を有している。
【０２９９】
＜仮想複写機におけるデータ転送シーケンス＞
図２９は、本実施形態における仮想入出力装置情報に従って、入力装置から代理装置を経て出力装置にデータ転送を行なうことでリモートコピー機能を実現する際の、装置間の相互通信手順を示す図である。
【０３００】
能動型入力装置であるスキャナ２００においてユーザが操作パネル２０７を操作して起動した仮想入出力装置が、スキャナ２００から代理装置６００を経てプリンタ３００に到達する転送パスから構成されるリモートコピー機能を実現している場合、スキャナは代理装置に対して仮想入出力装置情報を含む接続要求を行なう（出力要求）。
【０３０１】
出力要求が受理されると、スキャナは代理装置に対し転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、スキャナが出力要求時に代理装置に指定した仮想入出力装置情報にもとづく図２８の転送パス情報を代理装置が検索すれば、代理装置は転送に係るパラメータを取得できる。
【０３０２】
制御データが受理されると、スキャナはスキャナエンジンによって読みとった原稿画像のデータを、代理装置に送信する（転送データ）。
【０３０３】
代理装置はスキャナからの転送データを受理し、次に、代理装置はプリンタに対して仮想入出力装置情報を含む接続要求を行なう（出力要求）。
【０３０４】
出力要求が受理されると、代理装置はプリンタに対し転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、代理装置が出力要求時にプリンタに指定した仮想入出力装置情報にもとづく転送パス情報をプリンタが検索すれば、プリンタは転送に係るパラメータを取得できる。
【０３０５】
制御データが受理されると、代理装置はスキャナから受信したデータを、プリンタに送信する（転送データ）。この際、図２８の転送パス情報に記述された通り、代理装置は受信した転送データをプリンタが受信可能なインタフェース条件に変換して転送する。
【０３０６】
プリンタによって転送データが受理されると、ネットワークに分散した論理的なコピー動作が完了する。
【０３０７】
＜仮想複写機におけるスキャナの動作＞
図３０は、本実施例におけるスキャナが、論理入出力装置情報に従って、出力装置あるいは代理装置である出力先に対して出力データを送信する場合の処理を示すフローチャートである。なお、Ｓ３００１〜Ｓ３０１２は各ステップを示す。また、各制御手順はスキャナ２００のＲＯＭ２０３に記憶されている。
【０３０８】
ユーザがスキャナ２００の操作パネル２０７で十字パネル１６０２の右キーを押下するとすると、Ｓ３００１で、前記入力装置が転送パスプロファイルの入力装置として定義されている仮想入出力装置情報を検索するために、サーバ５００に対して仮想入出力装置情報の取得要求を送信する。
【０３０９】
Ｓ３００２で一定期間応答を待機し、応答を検知した場合には、Ｓ３００３で応答のあった仮想入出力装置情報が複数存在するかを判断する。仮想入出力装置情報が複数存在した場合には、Ｓ３００４で操作パネルの液晶パネル１６０１に表示し、ユーザに任意の仮想入出力装置を選択させる。
【０３１０】
次にＳ３００５で、選択された仮想入出力装置に係る転送パスプロファイル情報すなわち例えば図２８の各属性に対応する情報を取得するための命令を送信する。
【０３１１】
Ｓ３００６で一定期間応答を待機し、応答を検知した場合には、Ｓ３００７で、転送パスプロファイルによって定義された出力装置または代理装置である出力装置に対して仮想入出力装置情報を含む接続要求を行なう。
【０３１２】
Ｓ３００８である出力先である出力装置または代理装置との接続が確立されたことを判定し、接続が確立するとＳ３００９で転送パスプロファイルに定義された値を入力装置の設定に反映し、Ｓ３０１０でデータ入力処理を行なう。
【０３１３】
Ｓ３０１１では、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、入力されたデータを転送する。
【０３１４】
一方Ｓ３００２およびＳ３００６でサーバ５００から応答が無い場合、もしくはＳ３０１０で出力先と接続が確立できない場合にはＳ３０１２でユーザにエラー通知を行ない処理を終了する。
【０３１５】
＜仮想複写機における代理装置の動作＞
図３１は、本実施例における、代理装置が入力源である入力装置から受信したデータを論理入出力装置情報に従って出力装置へ対して転送する処理を示すフローチャートである。なお、Ｓ３１０１〜Ｓ３１１３は各ステップを示す。また、各制御手順は代理装置６００のＲＯＭ６０３に記憶されている。
【０３１６】
まずＳ３１０１で、本代理装置を出力先とする接続要求がスキャナ２００等によって行なわれるまで待機する。
【０３１７】
接続要求を受信すると、Ｓ３１０３で、接続要求に含まれてきた仮想入出力装置情報に対応する転送パス情報を検索するために、サーバ５００に対して転送パス情報（図２８）の取得要求を送信する。
【０３１８】
Ｓ３１０４で一定期間応答を待機し、応答を検知した場合には、Ｓ３１０５で、転送パス情報に記述された入力装置から該代理装置への転送パラメータ（すなわち解像度やデータ形式など）に従ってデータを受信するべくデータ受信のための設定を行なう。また、Ｓ３１０６で、接続元である入力装置との接続を確立する。さらに、Ｓ３１０７で転送パス情報に記述された転送パラメータに従って入力装置からの転送データを受信し、記憶装置６０５に格納する。
【０３１９】
次にＳ３１０８で転送パスプロファイルによって定義された出力装置である出力先に対して接続要求を行なう。
【０３２０】
Ｓ３１０９で出力先との接続が確立されたことを判定し、接続が確立するとＳ３１１０で、転送パスプロファイルに定義された出力装置へのデータ転送のための解像度や形式等の転送パラメータに合わせて転送データのデータ変換を行ない、Ｓ３１１１で、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、入力されたデータを送信する。
【０３２１】
ついでＳ３１１２で、転送パスプロファイルに定義されたすべての出力先に対するデータ転送処理が完了したことを確認し、未処理の出力先が残っている場合はＳ３１０８に戻り、すべての出力先に対するデータ転送処理が完了するまでこれを繰り返してから終了する。
【０３２２】
一方Ｓ３１０４およびサーバ５００から応答が無い場合、もしくはＳ３１０９で出力先と接続が確立できない場合には、Ｓ３１１３で、ユーザにエラー通知を行ない処理を終了する。
【０３２３】
なお本例では、受信データを一時格納後に該データに対するデータ変換を施しその後でデータの送信を行なったが、これは受信時に受信中のデータをリアルタイムに変換するように構成してもよい。また、送信時に送信中のデータをリアルタイムに変換するように構成してもよい。また、これらの場合、変換の処理内容によっては記憶装置６０５に受信データを一時格納せずに、受信データをリアルタイムに変換しかつ送信先に転送するように構成してもよい。
【０３２４】
図２９の手順は、以上のようなスキャナと代理装置の動作手順によって実現される。なお、プリンタ（出力装置）の動作手順は第１の実施形態の図２０と同様であり、接続要求を検知すると、仮想入出力装置情報を参照してスキャナとの接続を確立し、転送パスプロファイルに定義された転送方式でデータを受信し、印刷出力する。
【０３２５】
以上説明したように、本実施例によれば、代理装置がデータ転送の中継を行なう際に、転送データの変換を行なう。そうすることで、ネットワークに分散したスキャナとプリンタ等の装置を転送パスプロファイルによって組み合わせてリモートコピー等の複合的な機能を実現する分散システムにおいて、入力側の装置と出力側の装置の間で扱い得る転送データの種類や形式等が食い違う場合であっても入力と出力を組み合わせることが可能となり、組み合わせの柔軟性が向上する。
【０３２６】
また本実施例によれば、代理装置を挟み込むことによって組合わせ可能となる装置の組の発見を、入出力装置のみならず代理装置もそれ自体の装置構成情報をデバイスプロファイルとしてネットワークにアナウンスし、システムはこれらのデバイスプロファイルからほぼ自動的に転送経路を探索して転送パスプロファイルを構成するため、ユーザから透過に可能な組合わせの動的構成が行われ、ユーザに煩雑な操作を強いることなくユーザは数多くの組合わせからなる分散システムを利用することができる。
【０３２７】
また本実施例によれば、代理装置にデータ変換の役割を委譲できるようになったため、入力装置および出力装置は多種の転送データ形式や解像度に対応する必要がなくなり、入出力装置の単純化、ひいては装置を実現するコストの削減を達成できる。またシステム全体として見れば、同種のデータ変換機構を重複して保有する無駄が減りシステムコストの削減ともなる。
【０３２８】
さらにまた本実施例によれば、各種のデータ変換の機構は代理装置に集中して持たせればよくなり、このため新たな変換方法への対応などは代理装置のみの更新で実現可能となるので、システムの拡張性が向上し、またシステム管理の省力化等を図ることができる。
【０３２９】
［第４の実施の形態］
以下に、本発明の第４の実施の形態を説明する。なお第１乃至３の実施の形態と同様の構成については同じ符合を用い説明を省略する。本実施形態では、第１の実施形態における図７のデバイスプロファイルを有する受動的なスキャナと、第２の実施形態における図２２のデバイスプロファイルを有する能動的なプリンタとを組み合わせた仮想複写機を説明する。
【０３３０】
図３２は本実施形態に係る転送パスプロファイルの一例である。本例の転送パスプロファイルは各行の記述順序に意味を持つことに注意されたい。
【０３３１】
Ｐａｔｈ−Ｓｅｔ属性は、装置ＩＤの組によって該装置群が連接した経路を記述し、複数の経路をリストとして記述する。
【０３３２】
Input-Deviceは、経路に含まれる入力装置のデバイスプロファイルで定義されたDevice-idの値であり、Input-Addressはその入力装置のネットワークアドレスである。
【０３３３】
Filter-Deviceは、経路に含まれる代理装置のデバイスプロファイルで定義されたDevice-idの値であり、Filter-Addressはその代理装置のネットワークアドレスである。
【０３３４】
つづく４行は上記入力装置から代理装置へのデータ転送のインタフェースパラメータを示す。
【０３３５】
Transmission-Modeはデータ転送のプロトコルを示し、ＦＴＰが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では受信側、すなわち代理装置が能動的にデータ転送を起動し入力装置からのデータ獲得を行ない、入力装置は受動的に要求されたデータを渡す。
【０３３６】
次のResolutionは転送時のデータ解像度を示し、本例では１２００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＪＰＥＧである。
【０３３７】
次に、Output-Deviceは、経路に含まれる出力装置のデバイスプロファイルで定義されたDevice-idの値であり、Output-Addressはその出力装置のネットワークアドレスである。
【０３３８】
続く４行は上記代理装置から出力装置へのデータ転送のインタフェースパラメータを示す。
【０３３９】
Transmission-Modeはデータ転送のプロトコルを示し、ＦＴＰが用いられる。Transmission-Triggerはデータ転送を主導する装置が、転送の送信元と受信先のいずれかを記述し、データ転送の制御の方向性をあらわす。本例では受信側、すなわち出力装置が能動的にデータ転送を起動し代理装置からのデータ獲得を行ない、代理装置は受動的に要求されたデータを渡す。次のResolutionは転送時のデータ解像度を示し、本例では６００ｄｐｉである。次のData-Formatは転送時のデータ形式を示し、本例ではＬＩＰＳ  ＩＶである。
【０３４０】
したがって、本例の代理装置は本転送パスプロファイルによるデータ転送に際して、１２００ｄｐｉで受信したデータを６００ｄｐｉで送信する解像度変換と、ＪＰＥＧで受信したデータをＬＩＰＳ  ＩＶで送信するデータ形式変換とを行なう。
【０３４１】
図３３は本実施形態における仮想入出力装置情報に従って入力装置から代理装置を経て出力装置にデータ転送を行なうことでリモートコピー機能を実現する際の装置間の相互通信手順を示す図である。
【０３４２】
能動型出力装置であるプリンタ３００の操作パネル３０７には、図１６と同様のユーザインタフェースが提供される。ユーザが操作パネルで十字パネル１６０２の右キーを押下するとすると、当該プリンタが転送パスプロファイルの出力装置として定義されている仮想入出力装置情報を検索するために、サーバ５００に対して仮想入出力装置情報の取得要求を送信する。
【０３４３】
ユーザが操作パネル３０７を操作して起動した仮想入出力装置が、受動型のスキャナ２００から代理装置６００を経てプリンタ３００に到達する図３２の転送パスから構成されるリモートコピー機能を実現している場合、プリンタは代理装置に対して仮想入出力装置情報を含む入力要求を行なう（入力要求）。
【０３４４】
入力要求が受理されると、プリンタは代理装置に対し転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、プリンタが入力要求時に代理装置に指定した仮想入出力装置情報にもとづく図３２の転送パス情報を代理装置が検索すれば、代理装置は転送に係るパラメータを取得できる。
【０３４５】
次に、代理装置はスキャナに対して仮想入出力装置情報を含む入力要求を行なう（入力要求）。
【０３４６】
入力要求が受理されると、代理装置はスキャナに対し転送に係る制御パラメータや同期信号等を送信する（制御データ）。ここで転送のためのインタフェース条件のネゴシエーションを行なうことも可能であるが、ネゴシエーションは行なわなくとも、代理装置が出力要求時にスキャナに指定した仮想入出力装置情報にもとづく転送パス情報をスキャナが検索すれば、スキャナは転送に係るパラメータを取得できる。
【０３４７】
次に、スキャナは代理装置から受信した制御データの受理応答を行ない、さらに、スキャナはスキャナエンジンによって読みとった原稿画像のデータを、代理装置に送信する（転送データ）。
【０３４８】
次に、代理装置はスキャナからの転送データを受理し、さらに、代理装置はプリンタから受信した制御データに対する受理応答を行なう。ついで、代理装置はスキャナから受信したデータを、プリンタに送信する（転送データ）。この際、図３２の転送パス情報に記述された通り、代理装置は受信した転送データをプリンタが受信可能なインタフェース条件に変換して転送する。
【０３４９】
プリンタによって転送データが受理されると、ネットワークに分散した論理的なコピー動作が完了する。
【０３５０】
図３２の手順を遂行するスキャナ、代理装置、プリンタの動作は、第３の実施形態において説明したと同様である。
【０３５１】
なお、本実施例において入力装置と出力装置と代理装置は、それぞれ別個のネットワークノードとして構成して説明したが、各装置の機能のいくつかを１つのネットワークノードすなわち装置の中に実装してもよい。この場合、他の入力装置の代理としてデータ形式のマッチングを伴う出力装置への転送を請け負う機能を入力装置や出力装置に埋め込むように構成することもできる。またサーバコンピュータに代理装置としての機能を持たせることもできる。
【０３５２】
また、本実施形態において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報の格納先としてサーバコンピュータ５００を想定しているが、サーバコンピュータ５００が存在しない場合、デバイスプロファイルの取得要求があった際に入力装置および出力装置自身が要求先に直接現在の構成情報を元に通知してもよく、一方転送パスプロファイルおよび仮想入出力装置定義についても作成したホストコンピュータの記録装置に格納しておき、入力装置あるいは出力装置から要求があった場合に通知するか、あるいは転送パスプロファイルおよび仮想入出力装置定義を作成した後、入出力先となる入力装置および出力装置に送信に各入力装置および出力装置の記憶装置に格納し取得可能にしてもよい。
【０３５３】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報はホストコンピュータによって生成するように構成しているが、各プロファイルはサーバ、入力装置、出力装置、あるいは、代理装置において生成するように構成してもよい。
【０３５４】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報はあらかじめ生成してサーバに格納することを想定しているが、各装置において仮想入出力の選択を行なう時点でリアルタイムに、動的に各プロファイルの生成を行なうように構成してもよい。
【０３５５】
以上説明したように、本実施例によれば第３の実施の形態の効果に加えてさらに、プルプリンタのような能動的な出力装置から起動される分散入出力システムにおいても、データ転送経路の下流の装置から上流の装置へのデータ要求を代理装置が中継し、さらに、データ転送経路の上流から下流へ転送される転送データを代理装置が中継する際に転送データの変換を行なうことで、入力側の装置と出力側の装置の間で扱い得る転送データの種類や形式等が食い違う場合であっても入力と出力を組み合わせることが可能であり、組み合わせの柔軟性が向上する。
【０３５６】
＜第３及び第４実施形態の効果＞
以上詳述したように、第３及び第４の実施形態によれば、代理装置がデータ転送の中継を行なう際に転送データの変換を行なうことで、ネットワークに分散した入力装置と出力装置を転送パスプロファイルによって組み合わせて複合的な機能を実現する分散システムにおいて、扱い得る転送データ表現形式の相異なる入出力装置を組み合わせ、より柔軟な組合せからなる転送パスプロファイルの定義を可能とし、ネットワークに接続された入出力装置群からより多くの仮想的な入出力装置を簡便に構成する分散システムを提供できる。
【０３５７】
［第５の実施形態］
本実施形態を適用するに好適な入力装置であるイメージスキャナと出力装置としてレーザプリンタの構成、及びそれらをネットワークで接続したネットワークシステムの構成は、第１の実施形態のそれと同様である。そこで、それらの説明は省略する。
【０３５８】
図３４は本実施形態に係るデバイスプロファイル情報の例であり、図３４（ａ）はスキャナの、図３４（ｂ）は代理装置の、図３４（ｃ）はプリンタのデバイスプロファイルである。
【０３５９】
図３４において、例えばDevice-Typeは、その機器が入力装置であるか出力装置であるかあるいは転送を行う代理装置（ｆｉｌｔｅｒ）であるかを示しており、それぞれスラッシュ（／）の後により詳細な装置の種別を示している。特に代理装置の場合は詳細な種別によってその転送フィルタとしての働きを示しており、図３４（ｂ）のDevice−Typeにおける“ｔｅｅ”は、１入力多出力の転送を行うフィルタとして振る舞う代理装置であることを示している。またDevice-idは各機器の識別子、Device-addressは自機器のネットワークアドレス、Transmission-Modeはサポートする転送プロトコル、Resolutionはデータ処理解像度、Media-Sizeはサポートしている用紙サイズ、Data-formatはサポートするデータフォーマットを示している。
【０３６０】
なお、これらデバイスプロファイルを、入力装置および出力装置および代理装置の電源起動時あるいは、操作パネル等で設定変更が行なわれた際にネットワーク上に通知する処理手順は、第１の実施形態における図１０と同様である。
【０３６１】
図３５は本実施形態に係る転送パスプロファイルの一例である。
【０３６２】
Input-Deviceは、入力装置のデバイスプロファイルで定義されたDevice-idの値であり、Input-Addressは入力装置のネットワークアドレスである。また、Output-Deviceは出力装置のデバイスプロファイルで定義されたDevice-idの値であり、Output-Addressは出力装置のネットワークアドレスを示している。またOutput-Trayは出力装置のデバイスプロファイルの中で定義された排紙先を示している。
【０３６３】
本例の転送パスプロファイルによると、ネットワークスキャナ１００はOutput-Address：に書かれた１７２．１６．１０．１０を出力機器として選択し、Resolution：に書かれた６００ｄｐｉの解像度で原稿を読み込み、Document-format：に書かれたＬＩＰＳ  ＩＶ形式で印刷データを送信する。
【０３６４】
この図３５の転送バスプロファイルを含む仮想入出力装置情報は、図１５に示したと同様の内容を有するので、説明を省略する。
【０３６５】
また、この仮想入出力装置情報を有する画像入出力装置を転送バスプロファイルを参照して生成する手順は、図１１乃至１２の通りであり、その際のＧＵＩは図１３に示したとおりである。
【０３６６】
図３６は、選択された出力装置デバイスプロファイルの組と入力装置デバイスプロファイルから、図３５で示すような転送パスプロファイルを作成するサブルーチンの処理を説明するフローチャートである。
【０３６７】
本実施例のアルゴリズムにおける基本方針は以下の通りである。すなわち、選択された出力装置デバイスプロファイルが複数台存在する場合は、入力装置からデバイスプロファイル中のｔｅｅ型のデバイスにデータ転送が可能であり、かつ、ｔｅｅ型フィルタデバイス経由の出力条件を受信できる出力デバイスが選択された出力装置の組の中に複数存在するならば、そのフィルタ装置経由のパスを優先的に採用する。
【０３６８】
組み合わせるべき入力装置と複数の出力装置の組を伴ってサブルーチンが起動されると、Ｓ３６０１で与えられた入力装置から出力装置に至る全てのパスを含むリストを生成する。ここでパスは、入力装置と出力装置を直接連結したものと、代理装置を介して連結したものとの両方がありえる。入力装置ｓxと代理装置ｆyと出力装置ｄzからなるパスを３項組（ｓx，ｆy，ｄz）と記すことにする。また、入力装置ｓxと出力装置ｄzとからなるパスを３項組（ｓx，０，ｄz）で記す事にする。なお、本実施例では説明の便宜上、ソース−フィルタ−デスティネーションの３項に限定して説明するが、これはフィルタを多段にし複数の代理装置を連接可能な構成へと容易に拡張可能である。
【０３６９】
次にＳ３６０２で、リストに含まれるパスの中から１つ選択しその出力装置に注目する。この出力装置をｄiと記す。
【０３７０】
次にＳ３６０３で、リストに含まれるすべてのパスの中でｄiに至るパスの数を数えあげる。これはリスト中の組の第３項がｄiである組を数えあげる事に他ならない。パス数が１の場合はＳ３６０４に進み、１でなければ（すなわち２以上であれば）Ｓ３６０８までスキップする。
【０３７１】
次にＳ３６０４で、ｄiに対し、上のステップで判定したｄiに至る唯一のパスを採用することを決定する。また決定した唯一のパスをリストから取り除く。
【０３７２】
次にＳ３６０５で、前ステップで決定したパスが代理装置を含むパスであるか否かを判定する。代理装置を含むパスとは、パスの３項組の第２項が０でない組に他ならない。代理装置を含む場合、Ｓ３６０６に進む。なお、説明のためこの第２項をｆjと記す。含まない場合は、Ｓ３６０８までスキップする。
【０３７３】
次にＳ３６０６では、リストに含まれるパスの中から、第２項がｆjであるパスをすべて採用することを決定する。ここで、決定されたパスの第３項を説明のためｄkと記す。
【０３７４】
次にＳ３６０７では、前ステップで決定したパスによっていたる全てのｄkについて、リストからｄkを含む全てのパスを取り除く。
【０３７５】
次にＳ３６０８では、リストになお未選択のｄiが残っているか否かを判定し、全てのｄiについて上記ステップを終了した場合は次のＳ３６０９に進む。残っている場合はＳ３６０２に戻り全てのｄiについて上記のステップを繰り返す。
【０３７６】
次にＳ３６０９では、リストに残ったすべてのパスのそれぞれについてパスのスコアを算出する。パスのスコアは、３項組の第２項がリストに現れる数（すなわちその代理装置によって到達可能な目的とする出力装置の数）と等しい数値とする。第２項が０のパスについてはスコアを１．１とする。
【０３７７】
次にＳ３６１０では、前ステップで算出したスコアのうち最大スコアのパスを、そのパスによって到達する出力装置ｄlのためのパスとして採用することに決定する。
【０３７８】
次にＳ３６１１では、前ステップで決定したパスによって至る第３項ｄlを含む全てのパスをリストから消去する。
【０３７９】
次にＳ３６１２では、パスのリストが空になったか否かを判定し、空であれば本サブルーチンを完了し復帰する。空でなければ、前述のステップＳ３６０９に戻り、リストが空になるまで上記のステップを繰り返す。
【０３８０】
例えば、図３５の転送パスファイルのInput-Deviceは、入力装置のデバイスプロファイルで定義されたDevice-idの値であり、Input-Addressは入力装置のネットワークアドレスである。また、Output-Deviceは出力装置のデバイスプロファイルで定義されたDevice-idの値であり、Output-Addressは出力装置のネットワークアドレスを示している。またOutput-Trayは出力装置のデバイスプロファイルの中で定義された排紙先を示している。
【０３８１】
この例では出力装置として２台のプリンタの組が選択されているので、出力装置に係る属性を２組定義している。また、この例では入力装置から出力されるデータを受信可能なｔｅｅ型のフィルタデバイスとしてｐｒｏｘｙ０が存在する。ｐｒｏｘｙ０のデバイスプロファイルによれば、この代理装置を入力源として、選択された２台のプリンタに対して出力処理を行うことが可能である。そこで、代理装置経由の経路が優先され、図３５の転送パスプロファイルではｓｃａｎ５はまずフィルタデバイスｐｒｏｘｙ０にデータ送信を行い、ｐｒｏｘｙ０がｌｐ５−３とｌｐ５−１に対するデータ転送を担当するように構成されている。
【０３８２】
さらに、Transmission-Mode、Resolution、Media-Size、Data-formatは入力装置と代理装置と出力装置のデバイスプロファイルで合致した値を選択し定義している。合致する値が複数存在した場合には、予め定義しておいたデフォルトの優先順位に従って一意の値を選択するか、あるいは図１３のＧＵＩを用いてユーザに選択を促すように構成することもできる。
【０３８３】
尚、ネットワークスキャナ２００における操作パネル２０７の外観は図１６に示す通りであり、操作方法もまた同様である。
【０３８４】
図１６のスキャン実行ボタン１６０３を押すことにより、この仮想入出力装置を利用したコピー機能を実行する。図１５の仮想入出力装置情報によると、Transmission-Profile：属性の値から、図３５の転送パスプロファイルを用いることがわかる。
【０３８５】
本例の転送パスプロファイルによると、Output-Set：属性に記述されたｌｐ５−３およびｌｐ５−１の２台の出力装置への出力を行なうこと、さらにFilter-Set：に記述された代理装置ｐｒｏｘｙ０がこの２台への出力を肩代りすることがわかる。そこでネットワークスキャナ２００はFilter-Address：に記述されたアドレス１７２・１６・１０・２を出力機器として選択し、最初のResolution：属性に書かれた６００ｄｐｉの解像度で原稿を読み込み、読み込んだデータをDocument-format：に書かれたＬＩＰＳ  ＩＶ形式で送信する。この際、出力処理のためのパラメータとして、少なくとも転送パスプロファイル情報（あるいは仮想入出力装置情報）を含むデータも、出力機器に送信する。
【０３８６】
ｐｒｏｘｙ０である代理装置６００は、まず１番目のOutput-Address：に書かれた１７２．１６．１０．１０のOutput-Device：ｌｐ５−３を出力機器として選択し、スキャナから渡された画像データを、その解像度と２番目のResolution：に書かれた６００ｄｐｉの解像度が等しく、またその形式と２番めのDocument-format：に書かれたＬＩＰＳ  ＩＶ形式が等しいため、特に画像データの変換処理は行なわずに、選択した宛先であるｌｐ５−３に転送する。印刷データはＬＡＮ１０を介してネットワークプリンタ３００に転送される。この時、プリンタ３００は転送パスプロファイルに関係なく、転送された印刷データの印刷処理を行うだけである。
【０３８７】
さらにｐｒｏｘｙ０である代理装置６００は、まず２番目のOutput-Address：に書かれた１７２．１６．１０．５のOutput-Device：ｌｐ５−１を出力機器として選択し、スキャナから渡された画像データを、その解像度と３番目のResolution：に書かれた６００ｄｐｉの解像度が等しく、またその形式と３番めのDocument-format：に書かれたＬＩＰＳ  ＩＶ形式が等しいため、特に画像データの変換処理は行なわずに、選択した宛先であるｌｐ５−１に転送する。印刷データはＬＡＮ１０を介してネットワークプリンタ１０１に転送される。この時、プリンタ１０１は転送パスプロファイルに関係なく、転送された印刷データの印刷処理を行うだけである。
【０３８８】
図２５は、本実施形態における論理入出力装置情報に従って入力装置からデータ入力を行ない、出力装置あるいは代理装置である出力先に対して出力データを送信する場合の処理を示すフローチャートである。この図は、第２の実施形態における手順であるが、本実施形態においては若干内容が異なるので、あらためて説明する。なお、Ｓ２５０１〜Ｓ２５１３は各ステップを示す。また、各制御手順はスキャナ２００のＲＯＭ１０３に記憶されている。
【０３８９】
ユーザがスキャナ２００の操作パネル２０７で十字パネル１６０２の右キーを押下するとすると、Ｓ２５０１で、前記入力装置が転送パスプロファイルの入力装置として定義されている仮想入出力装置情報を検索するために、サーバ５００に対して仮想入出力装置情報の取得要求を送信する。
【０３９０】
Ｓ２５０２で一定期間応答を待機し、応答を検知した場合には、Ｓ２５０３で応答のあった仮想入出力装置情報が複数存在するかを判断する。仮想入出力装置情報が複数存在した場合には、Ｓ２５０４で操作パネルの液晶パネル１６０１に表示し、ユーザに任意の仮想入出力装置を選択させる。
【０３９１】
次にＳ２５０５で、選択された仮想入出力装置に係る転送パスプロファイル情報すなわわち図３５の各属性に対応する情報を取得するための命令を送信する。
【０３９２】
Ｓ２５０６で一走期間応答を待機し、応答を検知した場合には、Ｓ２５０７で、転送パスプロファイルによって定義された出力装置または代理装置である出力先に対して仮想入出力装置情報を含んで接続要求を行なう。
【０３９３】
Ｓ２５０８で出力先である出力装置または代理装置との接続が確立されたことを判定し、積続が確立するとＳ２５０９で転送パスプロファイルに定義された値を入力装置の設定に反映し、Ｓ２５１０でデータ入力処理を行なう。
【０３９４】
Ｓ２５１１では、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、入力されたデータを転送する。
【０３９５】
ここで本例による説明では、単一の代理装置にすべての出力装置に対する転送処理を委譲できるため、データ転送が完了した時点で一連の処理を終了する。
【０３９６】
より厳密には、図３６の処理によって生成される転送パスは、入力装置から１つ以上の出力先（出力装置および／または代理装置）への転送経路を示す場合もあり、この場合、転送パスプロファイルに定義されたすべての出力先に対するデータ転送処理が完了したことを確認し、未処理の出力先が残っている場合はＳ２５０７またはＳ２５０９に戻り、すべての出力先に対するデータ転送処理が完了するまでこれを繰り返してから終了する。Ｓ２５０７に戻るのは、入力したデータを一時蓄積する記憶領域を持たない場合と、前回の出力先に対するデータ転送の転送パラメータと異なるパラメータで次の出力先に対するデータ転送を行なうために再度データ入力しなおさなければならない場合である。前回の出力先に対するデータ転送の転送データが一時蓄積されており、かつ、転送パラメータと次の出力先に対する転送パラメータがすべて等しい場合や転送パラメータは異なっていてもＳ２５１１の転送時の設定のみで次の出力先のための転送パラメータに対応したデータ転送ができる場合は、Ｓ２５０９に戻ればよい。
【０３９７】
一方Ｓ２５０２およびＳ２５０６でサーバ４００から応答が無い場合、もしくはＳ２５１０で出力先と接続が確立できない場合にはＳ２５１３でユーザにエラー通知を行ない処理を終了する。
【０３９８】
図３７は、本実施例における、代理装置が入力源である入力装置から受信したデータを論理入出力装置情報に従って出力装置へ対して転送する処理を示すフローチャートである。なお、Ｓ３７０１〜Ｓ３７１３は各ステップを示す。また、各制御手順は代理装置６００のＲＯＭ６０３に記憶されている。
【０３９９】
まずＳ３７０１で、本代理装置を出力先とする接続要求がスキャナ１００等によって行なわれるまで待機する。
【０４００】
接続要求を受信すると、Ｓ３７０３で、接続要求に含まれてきた仮想入出力装置情報に対応する転送パス情報を検索するために、サーバ４００に対して転送パス情報（図３５）の取得要求を送信する。
【０４０１】
Ｓ３７０４で一定期間応答を待機し、応答を検知した場合には、Ｓ３７０５で、転送パス情報に記述された入力装置から該代理装置への転送パラメータ（すなわち解像度やデータ形式など）に従ってデータを受信するべくデータ受信のための設定を行なう。また、Ｓ３７０６で、接続元である入力装置との接続を確立する。さらに、Ｓ３７０６で転送パス情報に記述された転送パラメータに従って入力装置からの転送データを受信し、記憶装置６０５に格納する。
【０４０２】
次にＳ３７０７で転送パスプロファイルによって定義された出力装置である出力先に対して接続要求を行なう。
【０４０３】
Ｓ３７０８で出力先との接続が確立されたことを判定し、接続が確立するとＳ３７０９で、転送パスプロファイルに定義された出力装置へのデータ転送のための解像度や形式等の転送パラメータを該代理装置の送信時変換設定に反映し、Ｓ３７１０でデータ送信処理を行なう。
【０４０４】
Ｓ３７１１では、転送パスプロファイルに定義された出力装置または代理装置の１台に対して、転送パスプロファイルに定義された転送方式に従って、入力されたデータを転送する。
【０４０５】
Ｓ３７１２で、転送パスプロファイルに定義されたすべての出力装置に対するデータ転送処理が完了したことを確認し、未処理の出力先が残っている場合はＳ３７０８に戻り、すべての出力先に対するデータ転送処理が完了するまでこれを繰り返してから終了する。
【０４０６】
一方Ｓ３７０４およびでサーバ４００から応答が無い場合、もしくはＳ３７０９で出力先と接続が確立できない場合には、Ｓ３７１３で、ユーザにエラー通知を行ない処理を終了する。
【０４０７】
なお、本実施例においては入力装置がその入力装置と転送パスプロファイルで組み合わされたＮ台の出力装置のそれぞれに対してＮ回ユニキャストの通信を繰り返して順次出力データの転送を行ったが、たとえばＩＰプロトコルのマルチキャストのように、ネットワーク中の複数のノードからなるグループに対して同時に通信するプロトコルが利用可能な場合は、マルチキャスト型の通信を利用して、所望の転送パスプロファイルに含まれる複数の出力装置の組に対して同時にデータ転送してもよい。
【０４０８】
また、本実施例においては、出力装置の組みとして２台のプリンタを例にあげて説明したが、転送パスプロファイルに指定する複数の出力装置は同一種類のものに限らなくてもよい。すなわち、複数のプリンタのみならず画像ファイリング装置、ファクス等、転送データの出力先となる装置であれば異なる種類の装置の組みを転送プロファイルに記述して、複数出力の仮想入出力装置とすることができる。
【０４０９】
また、本実施例において入力装置と出力装置と代理装置は、それぞれ別個のネットワークノードとして構成して説明したが、各装置の機能のいくつかを１つのネットワークノードすなわち装置の中に実装してもよい。この場合、他の入力装置の代理として複数の出力装置への転送機能を請け負う機能を持った入力装置や出力装置を構成することもできる。またサーバコンピュータに代理装置としての機能を持たせることもできる。
【０４１０】
また、本実施例において、デバイスプロファイルおよび転送パスプロファイル、ユーザプロファイルさらに仮想入出力装置定義情報の格納先としてサーバコンピュータ５００を想定しているが、サーバコンピュータ５００が存在しない場合、デバイスプロファイルの取得要求があった際に入力装置および出力装置自身が要求先に直接現在の構成情報を元に通知してもよく、一方転送パスプロファイルおよび仮想入出力装置定義についても作成したホストコンピュータの記録装置に格納しておき、入力装置あるいは出力装置から要求があった場合に通知するか、あるいは転送パスプロファイルおよび板想入出力装置定義を作成した後、入出力先となる入力装置および出力装置に送信に各入力装置および出力装置の記憶装置に格納し取得可能にしてもよい。
【０４１１】
以上説明したように、本実施例によれば、任意の入力装置と複数の出力装置を柔軟に組み合わせて複合機能を提供するマルチファンクションシステムでありながら、適切な入力装置が直接的に転送制御を行なう転送回数を減らすことが可能となる。この結果、入力装置はすべての出力先への出力処理が完了する前に次の入力処理に取り掛かることができ、装置としてのスループットが向上する。また、入力装置にかかる転送制御のための負荷が軽減され、入力装置において貴重な資源、すなわちＣＰＵ性能やメモリ容量、記憶装置のアクセス帯域、バス帯域、ネットワークインタフェース帯域等といった資源の占有を軽減することができ、ひいてはスキャナ装置を実現するための要求資源を減らしコストダウンの達成につながる。
【０４１２】
またさらに本実施例によれば、複数の出力先のそれぞれに対して出力を依頼する際の制御方法が異なる場合にも、これらのそれぞれの制御方法は代理装置のみが一括管理して代理装置でのみ制御方法の使い分けに配慮すればよい。これによって、入力装置の単純化と汎用化のみならず、出力装置に対する制御ノウハウの集中によるシステム構築の容易化、およびシステム管理の省力化が達成できる。
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０４１３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０４１４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０４１５】
【発明の効果】
以上詳述したように、本発明によれば、ネットワークに接続された入力機器及び出力機器を用いて、データ転送制御方向が整合しない入出力装置を組み合わせて、より柔軟な組合せからなる仮想的な入出力装置を簡便に構成することができる。
【０４１６】
また、代理装置がデータ転送の中継を行なう際に転送データの変換を行なうことで、ネットワークに分散した、扱い得る転送データ表現形式の相異なる入出力装置を組み合わせて、より柔軟な組合せからなる仮想的な入出力装置を簡便に構成することが可能となる。
【０４１７】
また、入力と出力が１対多の関係にある複合機能を実現する場合、予め入力側となる装置と出力側となる複数の装置の組との間に両者間のデータ転送を講け負う代理装置を挟み込んだ転送経路を定義しておき、複合機能の選択および制御にこの定義を利用することで、入力装置に必要とされる負荷を軽減し、したがって入力装置には高性能なＣＰＵや大容量あるいは高速処理可能なメモリ等を搭載する必要がなくなり、安価にして入力装置を実現することが可能となる。
【０４１８】
また、入力装置は複数の出力先のそれぞれに対する処理を一括して代理装置に委譲することが可能となり、個別の転送処理から早く解放され次の入力処理にいち早く取り掛かることができ、システムの入力スループットの向上を図ることができる。
【０４１９】
さらに、入力装置は複数の出力先のそれぞれに対する処理を一括して代理装置に委譲することが可能となり、転送パラメータ等の転送処理の出力装置ごとの差異に対する配慮は代理装置で一元管理および実行すればよく、したがって、入力装置の単純化と汎用化を達成し、また出力装置の制御ノウハウが代理装置に集中できるためシステム構築とシステム管理を容易にすることが可能となる。
【図面の簡単な説明】
【図１】実施形態の、入出力装置等が接続されたネットワーク構成を示す図である。
【図２】実施形態におけるイメージスキャナ制御システムの構成を説明するブロック図である。
【図３】実施形態におけるプリンタ制御システムの構成を説明するブロック図である。
【図４】実施形態におけるホストコンピュータ制御システムの構成を説明するブロック図である。
【図５】実施形態におけるサーバ制御システムの構成を説明するブロック図である。
【図６】実施形態における代理装置制御システムの構成を説明するブロック図である。
【図７】実施形態における受動型入力装置のデバイスプロファイルの例を示す図である。
【図８】実施形態における受動型出力装置のデバイスプロファイルの例を示す図である。
【図９】実施形態における代理装置のデバイスプロファイルの例を示す図である。
【図１０】実施形態の、装置がデバイスプロファイル情報をネットワークにアナウンスする処理を示すフローチャートである。
【図１１】実施形態の、論理入出力装置定義処理を示すフローチャートである。
【図１２】実施形態の、出力装置の選択処理を示すフローチャートである。
【図１３】実施形態の、仮想入出力装置を定義するユーザインタフェース例を示す図である。
【図１４】実施形態の、受動型入力装置と受動型出力装置を組み合わせた転送パスプロファイルの例を示す図である。
【図１５】実施形態の、仮想入出力装置プロファイルの例を示す図である。
【図１６】実施形態における仮想入出力装置を操作するユーザインタフェースの例を示す図である。
【図１７】第１実施形態の、受動型入力装置と受動型出力装置の代理装置を経由したやりとりを示す図である。
【図１８】実施形態の、受動型入力装置が出力先に対してデータを送信する処理の流れを示すフローチャートである。
【図１９】実施形態の、能動型装置間を連結する代理装置による中継処理を示すフローチャートである。
【図２０】実施形態の、受動型出力装置が入力元からデータを受信する処理の流れを示すフローチャートである。
【図２１】実施形態における能動型入力装置のデバイスプロファイルの例を示す図である。
【図２２】実施形態における能動型出力装置のデバイスプロファイルの例を示す図である。
【図２３】実施形態の、能動型入力装置と能動型出力装置を組み合わせた転送パスプロファイルの例を示す図である。
【図２４】第２実施形態の、能動型入力装置と能動型出力装置の代理装置を経由したやりとりを示す図である。
【図２５】実施形態の、能動型入力装置が出力先に対してデータを送信する処理の流れを示すフローチャートである。
【図２６】実施形態の、能動型装置間を連結する代理装置による中継処理を示すフローチャートである。
【図２７】実施形態の、能動型出力装置が入力元からデータを受信する処理の流れを示すフローチャートである。
【図２８】第３実施形態の、転送パスプロファイルの例を示す図である。
【図２９】第３実施形態の、能動型入力装置と受動型出力装置の代理装置を経由したやりとりを示す図である。
【図３０】実施形態の、能動型入力装置が出力先に対してデータを送信する処理の流れを示すフローチャートである。
【図３１】実施形態の、代理装置による中継処理を示すフローチャートである。
【図３２】実施形態の、受動型入力装置と能動型出力装置を組み合わせた転送パスプロファイルの例を示す図である。
【図３３】第４実施形態の、受動型入力装置と能動型出力装置の代理装置を経由したやりとりを示す図である。
【図３４】実施形態におけるデバイスプロファイルの例を示す図である。
【図３５】第５実施形態の、転送パスプロファイルの例を示す図である。
【図３６】実施形態の、転送パスプロファイル定義手順を示すフローチャートである。
【図３７】実施形態の、代理装置による中継処理を示すフローチャートである。
【符号の説明】
１０  ＬＡＮ
２００  スキャナ
３００  プリンタ
４００  ホストコンピュータ
５００  サーバ
６００  代理装置
【図１】
0004454767.tif 000002
【図２】
0004454767.tif 000003
【図３】
0004454767.tif 000004
【図４】
0004454767.tif 000005
【図５】
0004454767.tif 000006
【図６】
0004454767.tif 000007
【図７】
0004454767.tif 000008
【図８】
0004454767.tif 000009
【図９】
0004454767.tif 000010
【図１０】
0004454767.tif 000011
【図１１】
0004454767.tif 000012
【図１２】
0004454767.tif 000013
【図１３】
0004454767.tif 000014
【図１４】
0004454767.tif 000015
【図１５】
0004454767.tif 000016
【図１６】
0004454767.tif 000017
【図１７】
0004454767.tif 000018
【図１８】
0004454767.tif 000019
【図１９】
0004454767.tif 000020
【図２０】
0004454767.tif 000021
【図２１】
0004454767.tif 000022
【図２２】
0004454767.tif 000023
【図２３】
0004454767.tif 000024
【図２４】
0004454767.tif 000025
【図２５】
0004454767.tif 000026
【図２６】
0004454767.tif 000027
【図２７】
0004454767.tif 000028
【図２８】
0004454767.tif 000029
【図２９】
0004454767.tif 000030
【図３０】
0004454767.tif 000031
【図３１】
0004454767.tif 000032
【図３２】
0004454767.tif 000033
【図３３】
0004454767.tif 000034
【図３４】
0004454767.tif 000035
【図３５】
0004454767.tif 000036
【図３６】
0004454767.tif 000037
【図３７】
0004454767.tif 000038