(57)【特許請求の範囲】
【請求項１】
サーバとクライアントとを有するネットワークにおいて、ノードネットワークを構築して通信を行なう通信方法であって、
サーバルートノードと、前記ネットワーク内のサーバが提供するサービスについてのノードとを含むサーバノードネットワークを生成する工程と、
クライアントルートノードと、前記サーバノードネットワーク内で提供されるサービスに対応するノードとを含むクライアントノードネットワークを生成する工程とを有し、
前記サーバノードネットワークにおいて、前記サービスについてのノードは、対応するサービスの情報を前記サーバルートノードに提供し、前記サーバルートノードは、前記クライアントノードネットワークからのサービスに関する問い合わせに応じて当該サーバルートノードに提供されたサービスの情報を返送し、
前記クライアントノードネットワークを生成する工程において、前記クライアントルートノードは、前記サーバノードネットワーク内で提供されるサービスに関する情報を前記サーバルートノードに対して問い合わせ、該問い合わせに応じて前記サーバルートノードから返送されてくる前記サービスの情報を受信することにより、前記サーバノードネットワーク内で提供されるサービスに対応するノードを特定のサーバと提携させて生成し、
更に、前記クライアントノードネットワークにおいて、アプリケーションからのジョブ要求を当該ジョブ要求を処理するためのサービスに対応するノードに送信し、該クライアントノードネットワーク内の該ジョブ要求を処理するためのサービスに対応するノードにより、前記サーバノードネットワーク内の対応するサービスのノードに向けて該ジョブ要求を送信する工程とを備えることを特徴とする通信方法。
【請求項２】
前記ジョブ要求が前記クライアントノードネットワーク内の該ジョブ要求を処理するためのサービスに対応するノードから前記サーバノードネットワーク内の対応するサービスのノードに向けて送信される際は、前記クライアントルートノードと前記サーバルートノードとを介して送信されることを特徴とする請求項１に記載の通信方法。
【請求項３】
前記クライアントルートノードと前記サーバルートノードとの間の通信は、オペレーティングシステムを通して行なわれることを特徴とする請求項１又は２に記載の通信方法。
【請求項４】
更に、前記ジョブ要求を管理するジョブ管理キューを生成する工程を有することを特徴とする請求項１に記載の通信方法。
【請求項５】
前記ジョブ管理キューは、直ちに実行されるべきジョブを管理するレディーキューと、将来において実行されるべきジョブを管理するタイマキューとを含むことを特徴とする請求項４に記載の通信方法。
【請求項６】
更に、前記ジョブ要求の状態情報を保持するためのシステムキューを生成する工程を備え、
前記状態情報は、前記ジョブ要求をモニタできるように前記クライアントからアクセス可能であることを特徴とする請求項１に記載の通信方法。
【請求項７】
サーバとクライアントとを有するネットワークにおいて、ノードネットワークを構築して通信を行なう通信システムであって、
サーバルートノードと、前記ネットワーク内のサーバが提供するサービスについてのノードとを含むサーバノードネットワークを生成する手段と、
クライアントルートノードと、前記サーバノードネットワーク内で提供されるサービスに対応するノードとを含むクライアントノードネットワークを生成する手段とを有し、
前記サーバノードネットワークにおいて、前記サービスについてのノードは、対応するサービスの情報を前記サーバルートノードに提供し、前記サーバルートノードは、前記クライアントノードネットワークからのサービスに関する問い合わせに応じて当該サーバルートノードに提供されたサービスの情報を返送し、
前記クライアントノードネットワークを生成する手段において、前記クライアントルートノードは、前記サーバノードネットワーク内で提供されるサービスに関する情報を前記サーバルートノードに対して問い合わせ、該問い合わせに応じて前記サーバルートノードから返送されてくる前記サービスの情報を受信することにより、前記サーバノードネットワーク内で提供されるサービスに対応するノードを特定のサーバと提携させて生成し、
更に、前記クライアントノードネットワークにおいて、アプリケーションからのジョブ要求を当該ジョブ要求を処理するためのサービスに対応するノードに送信し、該クライアントノードネットワーク内の該ジョブ要求を処理するためのサービスに対応するノードにより、前記サーバノードネットワーク内の対応するサービスのノードに向けて該ジョブ要求を送信する手段とを備えることを特徴とする通信システム。
【請求項８】
前記ジョブ要求が前記クライアントノードネットワーク内の該ジョブ要求を処理するためのサービスに対応するノードから前記サーバノードネットワーク内の対応するサービスのノードに向けて送信される際は、前記クライアントルートノードと前記サーバルートノードとを介して送信されることを特徴とする請求項７に記載の通信システム。
【請求項９】
前記クライアントルートノードと前記サーバルートノードとの間の通信は、オペレーティングシステムを通して行なわれることを特徴とする請求項７又は８に記載の通信システム。
【請求項１０】
更に、前記ジョブ要求を管理するジョブ管理キューを生成する手段を有することを特徴とする請求項７に記載の通信システム。
【請求項１１】
前記ジョブ管理キューは、直ちに実行されるべきジョブを管理するレディーキューと、将来において実行されるべきジョブを管理するタイマキューとを含むことを特徴とする請求項１０に記載の通信システム。
【請求項１２】
更に、前記ジョブ要求の状態情報を保持するためのシステムキューを生成する手段を備え、
前記状態情報は、前記ジョブ要求をモニタできるように前記クライアントからアクセス可能であることを特徴とする請求項７に記載の通信システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は自己発生型のノード式のネットワークを用いたクライアント／サーバシステムにおける通信を管理するための通信方法及びシステムに関する。更に詳しくは、本発明は、ネットワーク内のサーバデバイスへのアクセスをクライアントに提供するノード型ネットワークを形成するべく発生され接続された特定のネットワークノードタイプの集成に関する。
【０００２】
【従来の技術】
今日のコンピュータ装置において実行されるアプリケーションプログラムが、そのアプリケーションプログラムが１つのタスクを完全に実行するのに要求されるすべての機能を所有することは希である。即ち、大部分のアプリケーションプログラムは、機能を実行するべく周辺装置へアクセスするためのパラメータを提供するのに他のライブラリに頼っている。例えば、ユーザがアプリケーションプログラムより印刷処理を要求すると、そのアプリケーションプログラムがその要求を完全に実行するためには、ユーザと、印刷パラメータ及びタスク情報を格納する少なくとも一つのライブラリにアクセスしなければならない。一般的に、アプリケーションプログラムの初期化において、ユーザはそのシステムに用いられる各周辺装置の所定のパラメータを入力するように促される。この情報は個々の周辺装置のための別々のファイルに格納される。加えて、一度ユーザがアプリケーションプログラムにより実行されるサービスを要求すると、ユーザはいつそのタスクを実行するかのスケジュールを指定するばかりでなく、機能の実行のためにサーバ（周辺装置）を指定しなければならない。こうして、ユーザによりアプリケーションプログラムが周辺装置を用いた機能の実行を要求されたとき、アプリケーションプログラムは、第１にタスクの指定先及びスケジュールをユーザより獲得し、そして第２に、外部のライブラリやファイルよりタスク及び周辺装置に関する付加的なパラメータ情報にアクセスしなければならない。
【０００３】
【発明が解決しようとする課題】
以上のように、アプリケーションプログラムが、要求されたタスクを実行するために更なる情報にアクセスする必要なく、単純にタスクを実行するというこは可能となっていない。従って、一般のアプリケーションプログラムは、周辺装置にアクセスするための異なるインターフェース処理等の複合部分を有する。加えて、アプリケーションプログラムは外部のライブラリよりの付加的な情報にアクセスしなければならず、またある場合には要求されたタスクを実行するためにユーザにアクセスしなければならない。
【０００４】
本発明は上記の問題点に鑑みてなされたものであり、ノードネットワークを用いたクライアント／サーバ通信システムにおいて、アプリケーションプログラム等クライアント側におけるサーバとのインターフェースを簡素化することが可能な通信方法及びシステムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記の目的を達成するための本発明による通信方法は、
サーバとクライアントとを有するネットワークにおいて、ノードネットワークを構築して通信を行なう通信方法であって、
サーバルートノードと、前記ネットワーク内のサーバが提供するサービスについてのノードとを含むサーバノードネットワークを生成する工程と、
クライアントルートノードと、前記サーバノードネットワーク内で提供されるサービスに対応するノードとを含むクライアントノードネットワークを生成する工程とを有し、
前記サーバノードネットワークにおいて、前記サービスについてのノードは、対応するサービスの情報を前記サーバルートノードに提供し、前記サーバルートノードは、前記クライアントノードネットワークからのサービスに関する問い合わせに応じて当該サーバルートノードに提供されたサービスの情報を返送し、
前記クライアントノードネットワークを生成する工程において、前記クライアントルートノードは、前記サーバノードネットワーク内で提供されるサービスに関する情報を前記サーバルートノードに対して問い合わせ、該問い合わせに応じて前記サーバルートノードから返送されてくる前記サービスの情報を受信することにより、前記サーバノードネットワーク内で提供されるサービスに対応するノードを特定のサーバと提携させて生成し、
更に、前記クライアントノードネットワークにおいて、アプリケーションからのジョブ要求を当該ジョブ要求を処理するためのサービスに対応するノードに送信し、該クライアントノードネットワーク内の該ジョブ要求を処理するためのサービスに対応するノードにより、前記サーバノードネットワーク内の対応するサービスのノードに向けて該ジョブ要求を送信する工程とを備える。
【０００６】
また、上記の目的を達成する本発明の他の形態による通信システムは、
サーバとクライアントとを有するネットワークにおいて、ノードネットワークを構築して通信を行なう通信システムであって、
サーバルートノードと、前記ネットワーク内のサーバが提供するサービスについてのノードとを含むサーバノードネットワークを生成する手段と、
クライアントルートノードと、前記サーバノードネットワーク内で提供されるサービスに対応するノードとを含むクライアントノードネットワークを生成する手段とを有し、
前記サーバノードネットワークにおいて、前記サービスについてのノードは、対応するサービスの情報を前記サーバルートノードに提供し、前記サーバルートノードは、前記クライアントノードネットワークからのサービスに関する問い合わせに応じて当該サーバルートノードに提供されたサービスの情報を返送し、
前記クライアントノードネットワークを生成する手段において、前記クライアントルートノードは、前記サーバノードネットワーク内で提供されるサービスに関する情報を前記サーバルートノードに対して問い合わせ、該問い合わせに応じて前記サーバルートノードから返送されてくる前記サービスの情報を受信することにより、前記サーバノードネットワーク内で提供されるサービスに対応するノードを特定のサーバと提携させて生成し、
更に、前記クライアントノードネットワークにおいて、アプリケーションからのジョブ要求を当該ジョブ要求を処理するためのサービスに対応するノードに送信し、該クライアントノードネットワーク内の該ジョブ要求を処理するためのサービスに対応するノードにより、前記サーバノードネットワーク内の対応するサービスのノードに向けて該ジョブ要求を送信する手段工程とを備える。
【００１１】
上述の構成によれば、本発明のノードネットワークは、タスクを遂行するためにクライアントが要求を発行した後にその要求されたタスクを実行するべくインターフェースを管理するので、クライアント側における周辺装置とのインターフェースが簡素化される。
【００１２】
【実施例】
以下に添付の図面を参照して本発明の好適な実施例について説明する。
【００１３】
まず、本実施例のクライアント／サーバシステムにおける自己発生型のノードネットワークを構築する方法の概要を説明する。本方法は、サーバノードネットワークツリーの生成工程を有しており、該生成工程はサーバルートノードを発生する工程を有する。サーバルートノードはオペレーティングシステム及びサービスノードに通信するための処理工程と、クライアント／サーバシステム内のサーバに対応するサービスノードを生成するための処理工程とを有する。ここで、各サービスノードは、サーバルートノードへサービスを告知する処理工程とトピックノードを構築する処理工程とを有しており、更に該トピックノードはサーバにアクセスする処理工程とジョブ要求を格納するためのジョブノードを構築する処理工程とを有する。更に、本方法は、クライアントノードネットワークツリーを生成する工程を含み、該生成工程はクライアントルートノードを発生する工程を有する。該クライアントルートノードは、オペレーティングシステム及びクライアントサービスノードと通信する処理工程と、サーバノードネットワークツリーの各サービスノードに対応するクライアントサービスノードを構築する処理工程とを有する。ここで、各クライアントサービスノードは、アプリケーションプログラムと通信する機能と、該アプリケーションプログラムにより指定されたジョブ要求に基づいてジョブ要求を生成する機能とを有する。ここで、クライアントサービスノードはアプリケーションプログラムよりジョブ要求を受信し、その要求を遂行するために、該要求をクライアントノードネットワークツリーを通してサーバノードネットワークへ伝達する。以下に本実施例を詳細に説明する。
【００１４】
図１は、本実施例によるローカルエリアネットワーク（ＬＡＮ）１０の代表的な構成例を表わす図である。図１に示すように、ＬＡＮ１０はイーサネットのようなＬＡＮ通信バス１１を有し、このＬＡＮ通信バス１１は接続されているネットワークデバイスの間においてＬＡＮ通信データを運ぶ。ファイルサーバ１２はＬＡＮ通信バス１１に接続され、ＬＡＮデバイス間におけるファイルの受信，格納，キューイング，キャッシング，及び転送を管理するためのファイルマネージャとして機能する。ファイルサーバ１２は、その管理機能を遂行するために、典型的には大容量メモリ格納装置、例えば１０ギガバイトのハードディスク等を備える。ファイルサーバ１２は、ＮｅｔＷａｒｅ（商標）のようなネットワークオペレーティングシステムの下で動作する。
【００１５】
更に、ワークステーション１４，１５，１６，１７，１８及び１９がＬＡＮバス１１に接続されている。本例ではこれらのワークステーションは、例えばＩＢＭ−ＰＣやＰＣ互換コンピュータのようなパーソナルコンピュータとして示されている。ワークステーション１４乃至１６は、ネットワークユーザ用のワークステーションである。これらは、種々のアプリケーションプログラムを備えている。アプリケーションプログラムとしては例えば、ワードプロセッシングアプリケーションプログラム、スプレッドシートアプリケーションプログラム、光学文字認識アプリケーションプログラム、及びその他の情報処理及びデータ処理プログラムが挙げられる。これらのプログラムは物理的にワークステーション１４〜１６に格納されてもよいし、ファイルサーバ１２より実行の際にこれらのワークステーション上へ取り出されてもよい。尚、本例では、ワークステーション１４をネットワーク管理装置として用いている。
【００１６】
ワークステーション１７〜１９は周辺サーバ用のワークステーションであり、それぞれが接続されている周辺装置のためのネットワークサービスを提供するのに主として用いられる。ワークステーション１７はプリンタサーバ用のワークステーションであり、プリンタ２１にネットワークサービスを提供する。同様に、ワークステーション１８はスキャナ２２にネットワークサービスを提供するスキャナサーバワークステーションであり、１９はファクシミリ２３にネットワークサービスを提供するファクシミリサーバワークステーションである。他の周辺装置も本ネットワークに接続可能であり、また１つのワークステーションが１つ以上の周辺装置にサービスを行うことも可能である。例えば、ワークステーション１７が１台以上のプリンタにサービスを行うことが可能であり、また、適切な装置により、１台のワークステーションが異なるタイプの複数の装置にサービスするようなことも可能である。
【００１７】
一般には、１台もしくはそれ以上の周辺装置にサービスを行うのに１台のワークステーションが占有されるが、これが不要である場合もある。例えば、プリンタ２５はネットワーク拡張ボード２６を介してＬＡＮバス１１に直接に接続されている。このネットワーク拡張ボード２６は必要なプリントサーバ機能を提供し、これらのプリンタサービスによって１台のワークステーションを占有させることを不要としている。
【００１８】
その他の装置がＬＡＮ１０に接続可能であり、実際ＬＡＮ１０は広域エリアネットワーク（ＷＡＮ）の一部として、種々のバックボーンやトランスポンダへ接続されうる。これらの構成は当業者には公知であり、詳細な説明は省略する。
【００１９】
図２は、本実施例による情報交換を示す機能ブロック図である。図２において、図１に示されたワークステーションの１つ（ここではワークステーション１６）により実行されるアプリケーションプログラムのような第１コンピュータプロセスと、ワークステーション１７上で実行されるプリンタサーバの如き第２コンピュータプロセスとの間の情報交換が示されている。図２に示されているコンピュータプロセスは代表的な一例を表わすものであり、図１に示されるいかなるデバイス間においても情報交換を行うことが可能であることはいうまでもない。例えば、ワークステーション１５と１６との間や、スキャナワークステーション１８やファクシミリワークステーション１９のいずれかとの間での情報交換も可能である。更に、図２には、１つのローカルエリアネットワーク上の異なるワークステーション間での情報交換が示されており、ここでは、柔軟なタスク操作の必要性が最重大課題である。しかしながら、本実施例によるタスク操作は同じワークステーション内の異なるコンピュータプロセス間でも発生し得る。例えば、数値データをインポートするワードプロセッシングアプリケーションプログラムと、数値データを提供するスプレッドシートアプリケーションプログラムとの間である。
【００２０】
アプリケーションプログラムの実行の過程において、周辺装置のサービスが要求される。アプリケーションプログラムは、プリンタドライバ，スキャナドライバやファクシミリドライバのような単一のデバイスドライバ３１を介してこれらのサービスを獲得する。デバイスドライバは、順番に、デバイスとして動作し、アプリケーションプログラムと周辺サーバとの間の通信を行う。
【００２１】
総括的に、本実施例は、リアルタイムで周辺デバイス２１，２２，２３及び２５のためのタスクの実行をスケジュールする能力を提供する。本実施例は動的に初期化ファイルを介して自身の構築を行い、追加された周辺デバイスのサポートを行う。従って、アプリケーションプログラムが周辺装置の１つにアクセスする必要があるとき、プログラムは本実施例のノードネットワークを介してアクセスを要求する。
【００２２】
サーバルート及びクライアントルートの機能、能力の詳細な説明は図３、４及び５に関連してなされる。また、本実施例に基づいて構成される代表的な自己発生ノードネットワークに関しては、図５を参照して説明する。
【００２３】
図３は本実施例によるクライアント／サーバ通信システムの代表的な全体構成例を表す図である。図３に示されるように、サーバルートノード１０２はプロセスを有するノードであるが、また、サーバノードネットワーク１０１内に含まれるノードのリストを含んでいる。サーバルートノード１０２の処理面をみると、サービスノード１０３を構築する処理工程を有する。加えて、サーバルートノード１０２には、オペレーティングシステム１１０への通信のための通信能力が提供される。
【００２４】
サーバルートノード１０２は、オペレーティングシステムよりの通信情報をサービスノード１０３へ、もしくは、サービスノード１０３よりのオペレーティングシステムへの通信情報を通過させることにより、オペレーティングシステムとのインターフェースを行う（尚、１つのサーバノードネットワーク上のサービスノードの数は有効なシステム資源によって決定されるものであり、ここでは説明を簡単にするために１つのサービスノードにつてい述べる）。サービスノード１０３は特定のサーバをネットワーク上のクライアントへオペレーティングシステム１１０を通して告知する。例えば、サービスノード１０３は、スキャナ、プリンタもしくはファクシミリ装置のいずれであってもよい。サービスノード１０３は、オペレーティングシステム１１０を通して通信を行うサーバルートノード１０２を通して送信を行う。。サービスノード１０３はサーバルートノードにサービス情報を提供する。サーバルートノード１０２は、何のサービスが有効であるかに関する問い合わせをクライアントより受信する。これを受けてサーバルートノード１０２は、サーバノードネットワークツリー１０１におけるすべてのサービスノードよりのサービスの告知を返送する。
【００２５】
サービスノード１０３は、そのサーバタイプと共に特有の機能を告知する。サービスノード１０３は、サーバトピックノード１０４よりサービス情報を受信する。サーバトピックノード１０４は、サーバヘルプのタイプに関する情報、即ちインターフェース情報等を有する。例えば、サーバトピックノード１０４は、プリンタのタイプ（即ち、プリンタの製造者）、適切なパラメータ（インターフェース言語）のような、装置にアクセスするのに要求される情報を有する。
【００２６】
サーバトピックノード１０４は、また、各タスクを管理するためにサーバジョブノード１０５を生成する。サーバジョブノード１０５は、クライアントより要求されたタスク内の各アイテムのためのサーバアイテムノード１０６を生成する。サーバアイテムノード１０６は、要求されたタスクに特有の情報の１アイテムを有する。例えば、ファクシミリメッセージを送信する場合、サーバアイテムノード１０６は以下の内より唯一の情報を含む。即ち、ファクシミリメッセージを獲得するためのデータベースファイル名、発送手順の情報、高さ，幅もしくは行間というような印刷情報のためのパラメータである。従って、サーバジョブノード１０５は、１つのタスクに対してパラメータアイテムの数だけサーバアイテムノード１０６を生成する。
【００２７】
本実施例のプログラムの初期化に際して、クライアント／サーバ通信システムの自己発生サーバノードネットワーク部が構築される。まず初めに、サーバノードネットワークツリー１０１がルートノードより生成される。サーバルートノード１０２はオペレーティングシステム１１０と直接にインターフェースする。サーバルートノード１０２は、通信機能とポインタタグのリストとして生成される。このポインタタグは、サーバツリー内のサーバノードを指定する。即ち、サーバルートノード１０２はこれらのポインタタグを用いて、初期化ファイル１１１（不図示）より、サーバツリーの１部である各周辺装置のための処理プログラムを得る。
【００２８】
サーバルートノード１０２は一度にただ１つのツリーのサーバブランチを構築する。ツリーの各サーバブランチは、ネットワーク内の周辺装置の各々の動作機能を表わす。各サーバブランチがその最後のノードを構築した後、サーバルートノード１０２は次のサーバブランチを成長させる。このような処理をツリーがそのネットワークのためのサーバブランチで完全に満たされるまで行う。
【００２９】
サーバツリーの第１のブランチを構築するためにサーバルートノード１０２は、初期化ファイル１１１よりサービスノード１０３を得るためにそのリストに提供されているポインタタグの１つを活用する。サービスノード１０３は、主としてプロセスであるが、ノードリストも含んでおり、このノードリストよりブランチにおける次のノードを獲得し構築する。サービスノード１０３の処理面においては、サーバルートノード１０２へ特定のサーバを告知する処理工程のみならず、付加的なノードを構築する処理工程が含まれる。即ち、サービスノード１０３は、サーバのタイプ及び機能を、サーバルートノード１０２に対して告知する能力を有する。サービスノード１０３は更に、親ノードすなわちサーバルートノード１０２と通信するための通信機能を備える。サービスノード１０３はオペレーティングシステム１１０と直接に通信する機能を有していないので、サービスノード１０３は親ノードの通信機能へそのサービスを渡すことが必要となる。サーバルートノード１０２は親ノードであり、これがオペレーティングシステムと１１０と通信可能であるため、サービスノード１０３よりの告知は、クライアントノードネットワークツリー上にサーバの告知を渡すために、オペレーティングシステム１１０に渡される。本実施例においては、クライアントが問い合わせをサーバノードネットワーク上に送信し、有効なサービスのタイプを要求する。これを受けて、サーバルートノード１０２は、ネットワーク上の各サービスノードより告知されたサービスをクライアントへ返送する。
【００３０】
サービスノード１０３は、初期化ファイル１１１よりサーバトピックノード１０４を得ることにより、ノードネットワークツリー上の一部分を構築する。サーバトピック１０４は主としてプロセスであるが、ノードネットワークにおける次のノードの位置、即ちサーバジョブノード１０５を示すポインタタグも含む。加えて、サーバトピックノード１０４は、サービスノード１０３に対してサーバ機能のタイプの情報を提供するプロセスを含む。サーバトピック１０４の処理面においては、親ノードと通信する工程とともに、周辺装置の特有のパラメータを提供する工程が含まれる。
【００３１】
サーバトピックノード１０４は、初期化ファイル１１１よりサーバジョブ１０５を得ることによりノードネットワークの部分を構築する。サーバジョブ１０５は、付加的なノードを構築する処理工程と、周辺装置を操作するのに必要な実際の処理及び属性でもって周辺装置にアクセスする。サーバジョブノード１０５の処理面をみると、親ノード、即ちトピックノード１０４との通信を行う処理工程が含まれる。サーバジョブノード１０５は、クライアントとの対話を管理し、クライアントが周辺装置を制御することを可能としている。
【００３２】
サーバツリー１０１のブランチの構築を完成するに際して、サーバトピックノード１０４はサービスノード１０３に制御を返送する。ブランチ終了を表わす信号を受信したサービスノード１０３は、サーバルートノード１０２に制御を返送する。上述の処理は、サーバノードネットワークにおける各サーバに対して、全てのサーバツリーが完成するまで実行される。サーバルートノード１０２が最終のブランチ終了表示を受信すると、サーバノードネットワーク１０２は、サーバノードネットワークが完成した旨の信号をオペレーティングシステムに対して発生する。この完了信号に応答して、オペレーティングシステム１１０よりサーバルートノード１０２にコマンドが発行され、サーバツリー内のサーバにたいするタスク要求の受信を開始する。
【００３３】
サーバノードネットワークツリー１０１が生成され、サーバノードネットワークツリー１０１が完成したことを表わす信号が出力されると、クライアントサーバノードネットワークツリー１２０が上述のサーバノードネットワークツリー１０１と同様の方法で生成される。しかしながら、クライアントノードネットワークツリー１２０の生成は、サーバノードネットワークツリー１０１の生成と同時もしくはそれよりも前になされてもよい。クライアントノードネットワークツリー１２０の生成過程について、図３を参照して以下に説明する。
【００３４】
サーバノードネットワークツリー１０１より完了信号を受信すると、本実施例のプログラムアプリケーションはクライアントルートノード１２２を生成する。クライアントルートノード１２２は主として、オペレーティングシステム１１０と通信する通信機能とクライアントトピックノード１２４を生成するための処理工程とを有するプロセスで構成される。
【００３５】
クライアントトピックノード１２４は、アプリケーションプログラム１３０より直接にジョブを要求する処理工程を有する。各クライアントトピックノード１２４は、特定のサーバと提携する。この点で、各クライアントトピックノード１２４は、サーバノードネットワークツリー１０１上に対応するサーバトピック１０４を有する。例えば、プリンタサーバがネットワーク上に存在する場合、クライアントトピックノード１２４とともにサーバトピックノード１０４が存在し、これらは特定のサーバにたいして要求を送信するために協動する。更に、クライアントトピックノード１２４はクライアントアイテムノード１２６を生成する工程を有する。クライアントアイテムノード１２６は特定のジョブを実行するために関連する情報を含む。例えば、クライアントアイテムノード１２６は、印刷するべきページ数、フォントタイプ、用紙サイズ等に関する情報を含む。この点で、クライアントトピックノード１２４は、アプリケーションプログラムよりのジョブ要求を、要求されたタスクを実行するための特定の情報とともに受信する。
【００３６】
クライアントトピックノード１２４は更に、親ノードであるクライアントルートノード１２２と通信する通信機能を有している。クライアントトピックノード１２４は直接にはオペレーティングシステム１１０と通信できないので、クライアントトピックノード１２４がクライアントアイテムノード１２６よりのクライアント要求をクライアントルートノード１２２に渡し、それがオペレーティングシステム１１０へ伝達されるという過程が必要となっている。
【００３７】
前述のクライアントノードネットワークツリー１２０は、クライアントルートノード１２２、クライアントトピックノード１２４及びクライアントアイテムノード１２６を有するものとして記載されている。しかしながら、クライアントノードネットワークツリー１２０は、例えばサーバノードツリー内の各サーバノードに直接的に対応するような異なる構成形態をとってもよい。又、サーバノードネットワークにおける各サーバにたいして、対応するクライアントトピック１２４が存在することも理解され得る。上述の１つのクライアントトピックノードに関する上述の記載は説明の簡潔化のために提供されているものである。
【００３８】
本アプリケーションプログラムはスケジュールキューを提供することによりタスクをスケジュールする機能を有する。図４に示されるように、サーバルートノード１０２は２つのキュー、即ちレディーキュー１４０とタイマキュー１４２とに接続されており、これらのキューはそれぞれスケジューリングとタイマコールバックサービスを扱う。これらのキューはサーバジョブ１０５の如きサーバジョブを指すポインタを有する。レディーキュー１４０とタイマキュー１４２はそれ自身ではサーバジョブノードを含まず、そのサーバジョブノードを指定するポインタを含んでいる。ポインタは、それぞれのサーバジョブのアドレスへ、レディーキュー１４０の場合はレディーイベントコマンドを発行するために用いられ、又、タイマキュー１４２の場合はタイマイベントコマンドを発行するために用いられる。
【００３９】
レディーキュー１４０は各サーバジョブノードの実行をスケジュールする能力を有する。これらの各サーバジョブノードはラウンド−ロビン方式で直ちに実行されるようにスケジュールされる。例えば、サーバジョブノード１０５が要求タスクをセットアップした後、サーバジョブノード１０５はサーバルートノード１０２を通してクライアントルートへ信号を返送する。そして、このサーバジョブノードはクライアントトピックノード１２４に発送され、そのタスクが実行可能状態にあることを表示する。クライアントトピックノード１２４は、クライアントノードネットワーク１２０を通してサーバルートノード１０２に実行コマンドを発行する。サーバルートノード１０２は直接サーバジョブノード１０５に対してコマンドを送信する。サーバジョブノード１０５は実行のためにそのコマンドを調べ、そのコマンドがタスクの即時実行のためのものか、遅延実行のためのものかを判定する。この判定に従ってサーバジョブノード１０５の識別情報がレディーキュー１４０もしくはタイマキュー１４２のいずれかもしくは両方に登録される。
【００４０】
即時実行のタスクはレディーキュー１４０に登録される。即ち、サーバジョブノード１０５の識別情報はレディーキュー１４０に登録される。各サーバを監視しながら、レディーキュー１４０はファーストイン・ファーストアウト方式で各タスクを監視する。特にレディーキュー１４０は要求されたサーバの動作状態を監視し、タスク実行の可否を判断する。又、サーバがタスクを実行することが可能であると判断されると、レディーキュー１４０はレディーイベント信号をサーバジョブ１０５に発行する。この信号の発行は、サーバを実行するためにレディーキュー１４０に格納された識別情報に基づいて行われる。ひとたびレディーキュー１４０よりコマンドが発行されると、レディーキュー１４０よりサーバジョブ識別情報は消去される。
【００４１】
タイマキュー１４２は、スケジュールされた時間に基づいてサーバジョブノードの実行をスケジュールする。このスケジュールされた時間は、サーバジョブノード識別情報に登録される。タイマキュー１４２はコールバック方法を採用し、この方法により、実行時刻に達したときにサーバアイテムノードを呼び出すことが可能となる。例えば、図４に示されるように、タイマキュー１４２はサーバルートノード１０２に接続されており、実行されるべきタスクの管理を行っている。タイマキュー１４２は、将来の指定された時刻にタスクを実行するためのタスクマネージャである。サーバトピックノード１０４がサーバジョブノード１０５に格納されたタスクを実行するためのコマンドを受信した場合、サーバジョブノード１０５はタイマキュー１４２にジョブ識別情報を登録する。タイマキュー１４２は、ジョブが実行される時刻とともに、実行されるべき各ジョブをその識別情報に基づいて追跡する。本例では、サーバジョブノード１０５はタイマキュー１４２に登録された識別情報を有し、その実行時刻に達したときに、タイマキュー１４２はタイマ−イベント信号をサーバルートノード１０２を通してサーバジョブノード１０５へ送信し、そのスケジュールされた実行を表示する。次にサーバジョブノード１０５は、各サーバアイテム１０６に格納された情報を、実行のために周辺装置へ転送する。
【００４２】
サーバジョブノードのキューイングはサーバトピックノード１０４に関するジョブの配置に影響を及ぼさない。前述したように、各サーバジョブノード１０５は親ノードに対する子ノードとして物理的に残り、そのポインタがレディーキュー１４０及びタイマキュー１４２のいずれかもしくは両方に登録される。例えば、図４において、サーバトピックノード１０４ａは２つのサーバジョブであるジョブＡ１及びジョブＡ２を有する。これらのジョブはレディーキュー１４０に登録される。サーバトピックノード１０４ｂは、レディーキュー１４０及びタイマキュー１４２に登録されたジョブを有していない。又、図４に示されるように、サーバトピックノード１０４ｃは３つのジョブを有する。ジョブＣ１はレディーキュー１４０に登録されており、ジョブＣ２及びジョブＣ３はタイマキュー１４２に登録されている。図示のように、各サーバトピックノード下の各サーバジョブは各親トピックノードの子リスト中の子ノードとして残る。なぜならば、キューにはジョブの識別情報が登録されているからである。レディーキュー１４０もしくはタイマキュー１４２よりジョブが呼び出された場合は、その遂行の完了に際してキューより除去され、又これに対応して親ノード下の子リストより除去される。
【００４３】
レディーキュー１４０及びタイマキュー１４２に加えて、システムはシステムキューノード１５２を含む。システムキューノード１５２は、現在レディーキュー１４０及びタイマキュー１４２にリストされた全てのジョブの状態に関する情報を含む。
【００４４】
図４に示されるように、サーバノードネットワークツリー１０１はサービスシステムノード１５０を含む。このサービスシステムノード１５０は、レディーキュー１４０及びタイマキュー１４２よりキューされた全てのジョブのリストを受信する。レディーキュー１４０及びタイマキュー１４２よりのジョブのリストは、ジョブが生成されたときのみならず、ジョブが完了したときにも更新される。これらのリストは、サービスシステムノード１５０により生成されるシステムキュー１５２に発送される。
【００４５】
サーバノードネットワークツリー１０１内の全てのサーバの状態が中央のシステムキューに格納されるので、クライアントはシステムの各サーバにより実行されるジョブをリアルタイムに監視することができる。例えば、スキャナ２２の状態情報に対する要求はサーバルートノード１０２により受信され、サービスシステムノード１５０に発送される。次に、このサービスシステムノード１５０はその要求をシステムキューノード１５２に送信する。システムキュー１５２はその要求に応答して、レディーキュー１４０及びタイマキュー１４２双方よりのスキャナ２２に関する現在の全リストを送信する。この情報はサービスシステムノード１５０を通して返信される。このサービスシステムノード１５０は要求された情報をサーバルートノード１０２を介してクライアントへ送り返す。このようにして、サーバノードネットワーク内の特定のサーバの状態情報を要求したり、ノードネットワークツリー内の全てのサーバの状態情報を要求することにより、システム全体の状態を監視することが可能となる。
【００４６】
クライアント／サーバ通信システムのためのノードネットワークの自己生成の動作について、図５を参照して更に詳しく説明する。
【００４７】
図５は、自己生成型ノードネットワーク５００を示す図であり、図３により示され、説明されているのと同様に、サーバルートノード、クライアントルートノード、トピックノード及びジョブノードを有する。図５に示されたノードネットワーク５００において、ネットワークは、スキャナ、ファクシミリ装置及びプリンタを含むものとし、これらの装置は図１に示された周辺装置に対応する。説明を容易にするために、以下に記載される本実施例の動作の説明は、システムのファクシミリ装置についてのみ行う。
【００４８】
動作において、アプリケーションプログラム１３０はファクシミリ動作タスクの実行を要求する。アプリケーションプログラム１３０はファックスクライアントトピックノード３０１に直接に要求を送信する。ファックスクライアントトピックノード３０１はファックスクライアントジョブノード３０３を、その特定のファックスジョブのために生成する。本例において、ファックスクライアントジョブノード３０３はジョブＡとする。ジョブＡは、与えられたファックスジョブを要求するための必要な情報を含む。又、ジョブＡは、要求された情報を伝えるために、ファックスクライアントトピックノード３０１と直接通信するための情報を有する。要求及び通信情報を受信するに際して、ファックスクライアントトピックノード３０１はその要求をクライアントルートノード１２２に通信する。クライアントルートノード１２２は、オペレーティングシステム１１０を通してその要求を送信する通信能力を含む。
【００４９】
オペレーティングシステム１１０は、ファックスジョブの要求を全ての適切なルーチン情報とともにサーバルートノード１０２に送信する。サーバルートノード１０２は、適切なルーチン情報とともにその要求を受信し、ファックスサービスノード２１０に直接に要求を発送する。本例の場合、ファックスサービスノード２１０は、既に、ファクシミリ装置としてサーバルートノード１０２に対してそのサービスを告知している。更に詳しくいうと、要求されたファックスの送信に用いるために要求されたファクシミリ装置のタイプとなる特定の製造者のファクシミリ装置であることを告知する。
【００５０】
要求を受信すると、ファックスサービスノード２１０はサーバトピックノード２１１にそのジョブ要求を受け渡す。サーバトピックノード２１１は、その要求を管理し、クライアントに対して周辺装置へのアクセスを提供するためにジョブノード２１２を生成する。即ち、ジョブノード２１２は、周辺装置及びデータファイルへアクセスするための適切なアクセス情報を有する。次に、ジョブノード２１２は、要求されたタスク内の各アイテムのためにジョブアイテム２１２Ａ、２１２Ｂ及び２１２Ｃを生成する。
【００５１】
更に詳しく説明すると、ファックスクライアントトピックノード３０１はその要求をクライアントルート１２２に送信し、オペレーティングシステム１１０を通して送信される。要求の受信において、サーバルートノード１０２は指定された装置にその要求を発送する。本例においては、ファックスサーバ２１０が機能を遂行すべく指定されたサービスである。ファクスサーバ２１０は、サーバルート１０２よりのタスクを実行するために、要求と、ファイル識別番号やページブレーク等のパラメータとを受信する。ファックスサービスノード２１０は、サーバトピックノード２１１に要求やパラメータを受け渡す。サーバトピックノード２１１は、ファックスサーバジョブ２１２を生成してファックスジョブアイテム２１２ａ〜ｃを生成する機能を遂行する。これらのファックスジョブアイテム２１２ａ〜ｃは、データファイル（ファックス送信先の電話番号とともにファックスメッセージを格納する）よりのデータ獲得のための情報と、メッセージを準備するために必要な他のパラメータを含む。加えて、ファックスサーバジョブ２１２は、周辺装置と直接にインターフェースするための全ての必要な情報を有している。
【００５２】
ファックスジョブアイテム２１２ａ〜ｃが生成されると、ファックスサーバジョブ２１２は、サーバルートノードに対して直接にタスク生成信号を送り返す。そして、このタスク生成信号は、オペレーティングシステム１１０を通してファックスクライアントトピックノード３０１に送り変えされる。タスクが生成されたことを示す信号を受信すると、ファックスクライアントトピックノード３０１は実行コマンドを返す。この実行コマンドは、オペレーティングシステム１１０を通してサーバルートノード１０２へ送られ、これはファックスサーバジョブ２１２に向けられる。ファックスサーバジョブ２１２はコマンドノードを調べ、そのファックスサーバアイテムを、レディキュー１４０及びタイマキュー１４２のどちらに格納するか、もしくは両方に格納することを決定する。この決定に基づいて、ファックスサーバアイテム２１２ａ〜ｃは、実行のためにレディーキュー１４０もしくはタイマキュー１４２に登録される。各アイテムが実行された後に、実行完了信号がサーバルートノード１０２を通してファックスクライアントトピックノード３１０に送られ、完了したタスクが表示される。
【００５３】
上述したノードネットワークシステムを利用して要求されたタスクを実行することが可能であるが、周辺装置の状態を決定することも可能である。図５に示されているように、スキャンサービスノード２０３は、子ノード、即ちシステムトピック２０４を有する。システムトピック２０４は、スキャナ２２の動作に関する状態情報を提供する。例えば、アプリケーションプログラムはスキャナ２２の現在の状態の情報を要求することができるし、過去の動作状態を要求することもできる。これらの状態情報としては例えば、過去１週間に実行されたスキャン回数や、当日予定されているスキャンの回数等が挙げられる。この状態情報はクライアントルートノード１０２に、スキャントピックノード３１０から要求された情報として発送することができる。
【００５４】
加えて、各サービスノードには、スキャンサービス２０３に関して示されているようにヘルプトピックノード２０６が提供され得る。ヘルプトピックノード２０６はスキャナ２２の使用に関する情報を提供する。例えば、ヘルプトピックノード２０６は、ドット密度（ｄｏｔｓ−ｐｅｒ−ｉｎｃｈ  ）やスキャンライン数等のスキャナ２２の動作能力のみならず、スキャナ２２のインターフェース指示に関する情報をも提供する。更に、上述の実施例は、ノードネットワークにおいて生成されるノードの単なる一例であり、他のタスクを遂行する他のノードも提供されて存在するものである。また、更なる機能を提供するためにノードの追加がなされてもよいし、所望によりノードが消去されてもよい。
【００５６】
以上のように上記実施形態の通信方法によれば、自己発生型のサーバルートノード、サービスノード、トピックノードを備えるサーバノードネットワークツリーが構築されるとともに、自己発生型のクライアントルートノード及びクライアントサービスノードを備えるクライアントネットワークツリーが構築される。そして、アプリケーションプログラムよりのジョブ要求はクライアントサービスノード、クライアントサービスノード、オペレーティングシステムを介してサーバノードネットワークツリーへ伝達される。そして、このジョブ要求は、サーバルートノード、サービスノードを介してトピックノードに格納される。このような通信方法を適用することにより、アプリケーションプログラムのジョブ要求は常にクライアントサービスに対して行えばよいので、サーバに対するインターフェースが簡素化される。
【００５７】
又、上記実施形態に示される通信装置によれば、メモリに格納された処理を実行することで、自己発生型のサーバルートノード、サービスノード、トピックノードを備えるサーバノードネットワークツリーが構築されるとともに、自己発生型のクライアントルートノード及びクライアントサービスノードを備えるクライアントネットワークツリーが構築される。ここで、入力手段によりクライアント要求が入力されると、該ジョブ要求はクライアントサービスノード、クライアントサービスノード、オペレーティングシステムを介してサーバノードネットワークツリーへ伝達される。そして、このクライアント要求は、サーバルートノード、サービスノードを介してトピックノードに格納される。このように、アプリケーションプログラムと周辺装置（サーバ）間にジョブ要求を伝達するためのネットワークが自動的に構築され、アプリケーションプログラムは、常にクライアントサービスノードに対してジョブ要求を行えばよいので、本発明の通信装置におけるアプリケーションプログラムは、サーバへのインターフェースを簡素化することができる。
【００５８】
【発明の効果】
以上説明したように本発明によれば、ノードネットワークを用いたクライアント／サーバ通信システムにおいて、アプリケーションプログラム等クライアント側におけるサーバとのインターフェースを簡素化することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施例によるローカルエリアネットワークの代表的な構成例を表わす図である。
【図２】本実施において、第１ネットワークステーションにおいてアプリケーションプログラムを実行する処理を有する第１コンピュータプロセスと、第２ネットワークステーションにおいてプリントサーバを実行する処理を有する第２コンピュータプロセスとのネットワーク通信処理の機能構成を表わすブロック図である。
【図３】本発明の一実施例によるクライアント／サーバ通信システムの全体的な構成を表わす図である。
【図４】レディーキュー及びタイマキューが供給されるサーバノードネットワークツリーの代表的な構成例を表わす図である。
【図５】ネットワークされたシステムにおいて機能する、本発明の一実施例による自己発生ノードネットワークを表わす図である。
【符号の説明】
１０１  サーバノードネットワークツリー
１０２  サーバルートノード
１０３  サービスノード
１０４  サーバトピックノード
１０５  サーバジョブノード
１０６  サーバアイテムノード
１１０  オペレーティングシステム
１２０  クライアントノードネットワークツリー
１２２  クライアントノード
１２４  クライアントトピックノード
１２６  クライアントアイテムノード
【図１】
0003554007.tif 000002
【図２】
0003554007.tif 000003
【図３】
0003554007.tif 000004
【図４】
0003554007.tif 000005
【図５】
0003554007.tif 000006