(57)【特許請求の範囲】
【請求項１】
プロトコルに対応してパケットデータを処理する複数のプロトコルスタック手段と、
アプリケーションと複数のプロトコルスタック手段の間を結ぶ第１マルチプレクサ手段と、
インタフェースデバイスごとに用意された複数のインタフェース制御ドライバ手段と、
複数のプロトコルスタック手段と複数のインタフェース制御ドライバ手段との間を結ぶ第２マルチプレクサ手段と、
第２のマルチプレクサ手段の出力側から第１のマルチプレクサ手段の入力側に信号を直接に送るバイパス手段と、
構成情報に基いて第１と第２のマルチプレクサ手段とバイパス手段とを制御して、プロトコルスタック手段を縦列に構成可能なチャンネル構成手段と
からなり、コンピュータにより実行可能なプログラム。
【請求項２】
前記構成情報は、チャンネル作成順を示す情報であることを特徴とする請求項１に記載されたプログラム。
【請求項３】
前記チャンネル構成手段は、パケットの種類に応じて動的にチャンネルを構成することを特徴とする請求項１に記載されたプログラム。
【請求項４】
前記のプロトコルスタック手段は、信号をそのまま通すスルー処理手段を含むことを特徴とする請求項１に記載されたプログラム。
【請求項５】
請求項１〜４のいずれかに記載されたプログラムを記録した、コンピュータ読み出し可能な記録媒体。
【請求項６】
プロトコルに対応してパケットデータを処理する複数のプロトコルスタック手段と、
アプリケーションと複数のプロトコルスタック手段の間を結ぶ第１マルチプレクサ手段と、
外部のネットワークを介して信号を伝送する複数のインタフェースハードウェアと、
インタフェースデバイスごとに用意された複数のインタフェース制御ドライバ手段と、
複数のプロトコルスタック手段と複数のインタフェース制御ドライバ手段との間を結ぶ第２マルチプレクサ手段と、
第２のマルチプレクサ手段の出力側から第１のマルチプレクサ手段の入力側に信号を直接に送るバイパス手段と、
構成情報に基いて第１と第２のマルチプレクサ手段とバイパス手段とを制御して、プロトコルスタック手段を縦列に構成可能なチャンネル構成手段と
構成情報に基いて第１と第２のマルチプレクサ手段を制御して、アプリケーション、プロトコルスタック手段、インタフェース制御ドライバ手段を含む論理チャンネルを構成するチャンネル構成手段と
を備えるインタフェース処理装置。
【請求項７】
前記構成情報は、チャンネル作成順を示す情報であることを特徴とする請求項６に記載されたインタフェース処理装置。
【請求項８】
前記チャンネル構成手段は、パケットの種類に応じて動的にチャンネルを構成することを特徴とする請求項６に記載されたインタフェース処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ、その周辺機器などのネットワーク機器に実装されるインタフェース処理機構に関する。
【０００２】
【従来の技術】
コンピュータ、その周辺機器などのネットワーク機器は、通信に多様なプロトコル（たとえばＴＣＰ／ＩＰ）を使用する。そこで、他の装置との通信に使用するプロトコルに対応したインタフェースのハードウェア（インタフェースデバイス）を備え、そのためのインタフェース制御ドライバを備える。プロトコル処理を行うプロトコルスタック（ソフトウェアプログラム）は、アプリケーションとインタフェース制御ドライバの間で、１つのプロトコルに基いてパケットデータを送受信する。
【０００３】
インタフェース処理機構の分野では、通信に使用される多様なプロトコルに対応してインタフェースを再構築する必要がある。このため、ネットワーク機器では、それぞれのプロトコルに対応できる複数のプロトコルスタック、インタフェースデバイス及びインタフェース制御ドライバを用意しておき、構成データに対応してプロトコルスタック、インタフェースデバイス及びインタフェース制御ドライバを連結した論理的なチャンネルを構成する。たとえば特開平９−１８１７６４号公報に示される装置は、ＬＡＮインタフェースを前提として、複数のプロトコルスタックを用意しておき、それに用いられる１つのプロトコルを選択する。ここで、プロトコルを選択するための特殊なパケットに従って、動的にプロトコルスタックを構成する。
【０００４】
【発明が解決しようとする問題点】
ところが、前述の従来のインタフェース処理機構では、ＬＡＮ以外のインタフェースの選択が考慮されていず、たとえばＬＡＮに用いられるＩＰパケットをＵＳＢインタフェースに転送するなどの、プロトコルとインタフェースとの自由な組み合わせが容易でなかった。また、同じプロトコル処理でも、接続するインタフェースデバイスが異なれば、重複してプロトコル処理のソフトウェアを実装していた。また、あらかじめ縦列に接続した形でプロトコル処理のソフトウェア実装をしていたため、実装容量が無用に増大していた。また、多重プロトコル処理を実現することが容易でなかった。また、プロトコル処理を利用するアプリケーションソフトから見たアクセス形態の統一性をとることが容易でなかった。
【０００５】
この発明の目的は、プロトコルスタックとインタフェース制御ドライバを自由に組み合わせたりプロトコルスタックを縦列に構成したりできるインタフェース処理を可能にすることである。
【０００６】
【課題を解決するための手段】
本発明に係るコンピュータにより実行可能なプログラムは、プロトコルに対応してパケットデータを処理する複数のプロトコルスタック手段と、アプリケーションと複数のプロトコルスタック手段の間を結ぶ第１マルチプレクサ手段と、インタフェースデバイスごとに用意された複数のインタフェース制御ドライバ手段と、複数のプロトコルスタック手段と複数のインタフェース制御ドライバ手段との間を結ぶ第２マルチプレクサ手段と、第２のマルチプレクサ手段の出力側から第１のマルチプレクサ手段の入力側に信号を直接に送るバイパス手段と、構成情報に基いて第１と第２のマルチプレクサ手段とバイパス手段とを制御して、プロトコルスタック手段を縦列に構成可能なチャンネル構成手段ととからなる。これにより、プロトコル処理とインタフェースデバイスを自由に組み合わせて、多様化する通信処理に対して柔軟に対処できる。チャンネル生成過程において、バイパス手段は、第１と第２のマルチプレクサ手段を循環するバイパス経路を提供する。このバイパス経路を経由して、ふたたび第１のマルチプレクサから他のプロトコルスタックを連結すると、複数の異なるプロトコルスタックを縦列に連結接続できる。
【０００７】
前記のプログラムにおいて、好ましくは、前記構成情報は、チャンネル作成順を示す情報である。または、好ましくは、前記チャンネル構成手段は、パケットの種類に応じて動的にチャンネルを構成する。
【０００８】
前記のプログラムにおいて、好ましくは、前記のプロトコルスタック手段は、信号をそのまま通すスルー処理手段を含む。
【０００９】
本発明に係るコンピュータ読み出し可能な記録媒体は、前記のいずれかに記載されたプログラムを記録する。
【００１０】
本発明に係るインタフェース処理装置は、プロトコルに対応してパケットデータを処理する複数のプロトコルスタック手段と、アプリケーションと複数のプロトコルスタック手段の間を結ぶ第１マルチプレクサ手段と、外部のネットワークを介して信号を伝送する複数のインタフェースデバイスと、インタフェースデバイスごとに用意された複数のインタフェース制御ドライバ手段と、複数のプロトコルスタック手段と複数のインタフェース制御ドライバ手段との間を結ぶ第２マルチプレクサ手段と、第２のマルチプレクサ手段の出力側から第１のマルチプレクサ手段の入力側に信号を直接に送るバイパス手段と、構成情報に基いて第１と第２のマルチプレクサ手段とバイパス手段とを制御して、プロトコルスタック手段を縦列に構成可能なチャンネル構成手段と、構成情報に基いて第１と第２のマルチプレクサ手段を制御して、アプリケーション、プロトコルスタック手段、インタフェース制御ドライバ手段を含む論理チャンネルを構成するチャンネル構成手段とを備える。好ましくは、前記構成情報は、チャンネル作成順を示す情報である。また、好ましくは、前記チャンネル構成手段は、パケットの種類に応じて動的にチャンネルを構成する。
【００１１】
【発明の実施の形態】
以下、添付の図面を参照して本発明の実施の形態を説明する。なお、図面において、同じ参照記号は同一または同等のものを示す。
図１に示すシステムでは、プロトコル処理を実装したインタフェース処理装置を備えたネットワークプリンタ３０は、ネットワーク３２を介して、コンピュータ３４，３６、ネットワークスキャナ３８などに接続されている。プリンタ３０は、プリントコントローラと画像形成部（図示しない）を備える。プリントコントローラは、入力された印刷データをラスターデータに変換し、画像形成部で印刷させる。プリントコントローラは、ＣＰＵ３００を中心に構成され、プログラム、データなどを記憶するＲＯＭ３０２、ワークエリアとしてのＲＡＭ３０４、ハードディスク装置３０６、表示部３０８、操作パネル３１０及び通信装置３１２がＣＰＵに接続される。この構成は、インタフェース処理を除いて通常のプリントコントローラと同様である。通信装置３１２は、後で説明する各種のインタフェースデバイスを含む。
【００１２】
図２は、プロトコル処理を実装したインタフェース処理装置を図式的に示す。一般的にこのような処理装置では、機能の中核を実現するアプリケーション１０と、複数のプロトコルスタック（処理ブロック）１４と、複数のインタフェース制御ドライバ１８と、複数のインタフェースデバイス２０を含む。アプリケーション１０は、ここでは、プリントコントローラ（ラスター描画処理プログラムを含む）である。プロトコルスタック（処理ブロック）１４は、プロトコルに基いてパケットを処理するためにプロトコルごとに用意され、プロトコルに従って送信データをパケットにしたり受信したパケットから受信データを抽出する。インタフェース制御ドライバ１８は、インタフェースデバイス２０ごとに用意され、インタフェースデバイス２０へのデータ設定やインタフェースデバイス２０からのデータ取得を行う。インタフェースデバイス２０は、論理的なデータを通信媒体の規格に準じた物理値に変換したり、また、この逆変換を行う。上側マルチプレクサ１２は、アプリケーション１０と複数のプロトコルスタック１４の間に配置され、プロトコルスタック１４を任意に選択することを可能にする。また、下側マルチプレクサ１６は、複数のプロトコルスタック１４と複数のインタフェース制御ドライバ１８の間に配置され、両者を任意に組み合わせることを可能にする。さらに、下側のマルチプレクサ１６から上側のマルチプレクサ１２に向かうバイパス手段（バイパス経路）２２を設ける。この構成において、上側のマルチプレクサ１２でプロトコルスタック１４の選択が可能であり、かつ、下側のマルチプレクサ１６でインタフェース制御ドライバ１８が選択可能である。これにより、プロトコル処理と転送するインタフェースの組合せを自由に選択できる。
【００１３】
こうして構成されたインタフェース処理装置において、たとえば起動時に、構成情報、たとえばチャンネル作成データのテーブル（図３）に基いて２つのマルチプレクサ１２、１６を制御して論理チャンネルを生成する。このチャンネル生成により、第１マルチプレクサ１２から、１つのプロトコルスタック１４、第２マルチプレクサ１６、１つのインタフェース制御ドライバ１８までを連結した論理的なチャンネルを構成する。また、さらに、上下のマルチプレクサを循環するバイパス経路（ソフトウェア）２２を設けている。バイパス経路２２は、第２のマルチプレクサの出力側から第１のマルチプレクサの入力側に信号を直接に送る。これを利用することにより、複数のプロトコルの縦列接続構成が可能となる。すなわち、下側のマルチプレクサ１６でインタフェース制御ドライバ１８を選択せずに、上側のマルチプレクサ１２へのバイパス経路２２を選択すると、チャンネル生成過程において、バイパス経路２２を経由して、ふたたび上側のマルチプレクサ１２から複数のプロトコルスタック１４の中の他の１つを連結できる。これにより、異なるプロトコルスタック１４を縦列に連結できる。たとえばＩＰパケットのためのプロトコル処理とＩＥＥＥ１３９４のような多重プロトコル処理も容易である。
【００１４】
より具体的に説明すると、プロトコルスタック１４として、ＬＡＮに用いられるＴＣＰ／ＩＰプロトコルスタック１４０と、ＩＥＥＥ１３９４によるデータ転送に用いられるＳＢＰ−２プロトコルスタック１４２と、ブルートゥース（BlueTooth）による無線通信を処理するプロトコルスタック１４４とを実装している。コンピュータと直接接続されるＵＳＢなどのインタフェースはプロトコル処理が不要である。そこで、上下のマルチプレクサの間を無処理で転送するスルー処理手段（スルー経路）１４６も設けている。スルー処理手段はソフトウェアである。また、この例では、インタフェース制御ドライバ１８の実装例として、無線ＬＡＮコントローラ２００を制御するＬＡＮドライバ１８０と、ＩＥＥＥ１３９４コントローラ２０２を制御するドライバ１８２と、BlueToothの無線通信コントローラ２０４を制御するドライバ１８４と、ＵＳＢコントローラ２０６を制御するドライバ１８６を備える。
【００１５】
図中の上側マルチプレクサ１２は、アプリケーション１０または下側マルチプレクサ１６からのバイパス経路１４６と、任意のプロトコルスタック１４または無処理のスルー経路１４６の組合せを可能とする。また、下側のマルチプレクサ１６は、プロトコルスタック１４またはスルー経路１４６とインタエース制御ドライバ１８または上側マルチプレクサ１２への循環を任意に組み合わせることを可能にする。また、両マルチプレクサ１２、１６は、プロトコルスタックの間のアクセス関数の違いや、ドライバ間のアクセス関数の違いなどを吸収して、制約なく組合せられるものとする。
【００１６】
なお、図２では、各ブロックの間の相関的な関係を示しているのみであり、実際に機能するためには、次に述べるように、起動時に各ブロックを適宜連結して、論理チャンネルを作成する。論理チャンネル作成のためには、図３に示すようなチャンネル作成データのテーブル（構成情報）をあらかじめ用意しておく。図３において、Ｐはプロトコルスタック１４を表わし、Ｄはインターフェース制御ドライバ１８を示す。起動時にこのデータテーブルが読みこまれ、この内容に従った論理チャンネルが構成される。図３では３つの論理チャンネル作成のためのデータの例を示す。第１チャンネルについては、ＴＣＰ／ＩＰプロトコルスタック１４０とＬＡＮドライバ１８０を連結する。第２チャンネルについては、ＴＣＰ／ＩＰ及びＳＢＰ−２の２つのプロトコルスタック１４０、１４２をこの順で連結し、その後にＩＥＥＥ１３９４ドライバ１８２を連結する。第３チャンネルについては、プロトコル処理のないスルー処理１４６とＵＳＢドライバ１８６を連結する。
【００１７】
なお、図３の例では、論理チャンネルを構成するプロトコルスタック１４を順に記述している。しかし、各プロトコルスタック１４に対してその前後に連結されるプロトコルスタック１２やドライバ１８を記述してもよい。論理チャンネル、プロトコルスタック及びドライバの連結形態が一意に決定できれば、このデータの記述方法のいかんを問わず、所望の論理チャンネルを構成できる。
【００１８】
図４は、上述のチャンネル作成データをもとに、論理チャンネルを構成するＣＰＵ３００の処理を示す。この処理は、原則として、機器の起動時に１回実行されるのみであるが、適切な時点でチャンネル作成データを変更し、その時点で図４の処理を実行して、論理チャンネルの構成を変更できる。また、パケットの種類を動的に判別して論理チャンネルを作成することも可能である。
【００１９】
図４の論理チャンネル作成において、まず、未構成のチャンネル作成データ（構成情報）があるか否か判断する（Ｓ１００）。なければ、処理を終了する（Ｓ１０２）。
次に、当該チャンネルとＰ１で指定されたプロトコルスタック１４を連結するように上側マルチプレクサ１２を設定する（Ｓ１０４）。次に、チャンネルを表わす変数ｉを１に初期化する（Ｓ１０６）。
次に、Ｐｉ＋１に指定されたプロトコルスタック１４があるか否か判断する（Ｓ１０８）。指定されたプロトコルスタック１４があれば、ｉ番目のプロトコルスタック１４（Ｐｉ）で指定されたプロトコルスタック１４とバイパス経路２２を連結するように下側マルチプレクサ１６を設定し（Ｓ１１２）、さらに、バイパス経路２２とＰｉ＋１で指定されたプロトコルスタック１４とバイパス経路２２を連結するように上側マルチプレクサ１２を設定する（Ｓ１１４）。最後にｉを１つ増加して（Ｓ１１６）、ステップＳ１０８に戻り、次のプロトコルスタックの処理を行う。一方、ステップＳ１０８で指定されたプロトコルスタック１４がないと判定されると、Ｐｉで指定されたプロトコルスタック１４とでインターフェース制御ドライバ１８で指定されたドライバを連結するように下側マルチプレクサ１６を連結して（Ｓ１１０）、ステップＳ１００に戻り、次の未構成チャンネルを処理する。
【００２０】
図５〜図７は、図３の３つの構成情報に従って作成した論理チャンネルにおけるデータフローをチャンネルごとに示している。図５、図６、図７は、それぞれ、第１チャンネル、第２チャンネル、第３チャンネルを示す。各図において、上下のマルチプレクサ内の太線が各論理チャンネルについて設定されたデータフローを示している。アプリケーション１０から見た場合、プロトコルスタック１４ごとのアクセス関数の違いが吸収されているので、アプリケーション１０からは論理チャンネルを選択するだけで所望のプロトコル処理によるデータ転送が可能となる。
【００２１】
なお、以上では、ネットワークプリンタ３０に設けたインタフェース処理機構について説明した。これにより、種々のプロトコルで受信されるデータ入力を可能にする。さらに、他の画像処理装置においても、同様なインタフェース処理機構を設けることができる。たとえば、ネットワークスキャナでは、スキャナで読み取った画像データの種々のプロトコルでのデータ出力処理に対処できる。
【００２２】
【発明の効果】
単純な構成で、プロトコル処理とインタフェースデバイスを自由に組み合わせて、多様化する通信処理に対して柔軟に対処できる。
１つのプロトコルスタックと他のプロトコルスタックを縦列に構成できるので、プロトコル処理の縦列処理についても柔軟な対応ができる。
【図面の簡単な説明】
【図１】  プロトコル処理を実装した機器の構成の図式的な図
【図２】  インタフェース処理装置のブロック図
【図３】  構成する論理チャンネルを定義したデータの図
【図４】  チャンネル作成データから論理チャンネルを構成するためのフローチャート
【図５】  構成された論理チャンネルのデータフローの１例の図
【図６】  構成された論理チャンネルのデータフローの他の１例の図
【図７】  構成された論理チャンネルのデータフローの他の１例の図
【符号の説明】
１０  アプリケーション、    １２  第１のマルチプレクサ手段、    １４  複数のプロトコルスタック、    １６  第２のマルチプレクサ手段、    １８  複数のインタフェース制御ドライバ、    ２０  複数のインタフェースデバイス２０、    ２２  バイパス経路、    １４６  スルー経路。
【図１】
0003982265.tif 000002
【図２】
0003982265.tif 000003
【図３】
0003982265.tif 000004
【図４】
0003982265.tif 000005
【図５】
0003982265.tif 000006
【図６】
0003982265.tif 000007
【図７】
0003982265.tif 000008