(57)【特許請求の範囲】
【請求項１】
ネットワーク・デバイスを模倣するための方法であって、前記方法は、第１および第２のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行され、前記第１のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第２のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、
前記外部ネットワーク上に存在するクライアント・ネットワーク・デバイスから、前記ローカル・ネットワーク上に存在するレガシー・ネットワーク・デバイスに宛てられた入力メッセージを受信するステップと、
前記入力メッセージが、前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断するステップと、
前記入力メッセージが、前記アプリケーション・モジュールによって提供された機能を必要とする場合、前記入力メッセージを前記アプリケーション・モジュールにリダイレクトするステップと、ここで前記アプリケーション・モジュールは前記必要とされた機能を前記入力メッセージに応答して実行するものであり、
前記入力メッセージが、前記アプリケーション・モジュールによって提供された機能を必要としない場合、前記入力メッセージを、前記ローカル・ネットワークを介して、前記ローカル・ネットワーク上に存在する前記レガシー・ネットワーク・デバイスに渡すステップとを備えることを特徴とする方法。
【請求項２】
前記リダイレクトするステップにおいて、前記アプリケーション・モジュールによる前記必要とされた機能の実行は、応答メッセージを前記アプリケーション・モジュールから前記外部ネットワークを介して前記クライアント・ネットワーク・デバイスへ送信するステップを含み、前記応答メッセージは、前記レガシー・ネットワーク・デバイスのソース識別アドレスに等しいソース識別アドレスを有することを特徴とする請求項１に記載の方法。
【請求項３】
前記リダイレクトするステップにおいて、前記アプリケーション・モジュールによる前記必要とされた機能の実行は、ローカル・メッセージを、前記アプリケーション・モジュールから前記ローカル・ネットワークを介して前記レガシー・ネットワーク・デバイスへ送信するステップを含み、前記レガシー・ネットワーク・デバイスが前記ローカル・メッセージに応答して機能を実行することを特徴とする請求項１に記載の方法。
【請求項４】
前記判断するステップにおいて、前記入力メッセージが前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断するために、入力用の規則テーブルが使用されることを特徴とする請求項１に記載の方法。
【請求項５】
前記入力用の規則テーブルが複数の規則を含み、各規則は前記ローカル・ネットワーク上の複数のレガシー・ネットワーク・デバイスのうち１つに対応することを特徴とする請求項４に記載の方法。
【請求項６】
前記ローカル・ネットワーク上の前記複数の各レガシー・ネットワーク・デバイスを発見するステップをさらに含み、該ステップは、前記ローカル・ネットワークを前記レガシー・ネットワーク・デバイスからのメッセージについてリスニングし、発見された各レガシー・ネットワーク・デバイスに対応する目標ディスクリプタ・エントリを目標ディスクリプタ・テーブルにおいて生成し、および、各目標ディスクリプタ・エントリに対応する規則を前記入力用の規則テーブルにおいて生成することを特徴とする請求項５に記載の方法。
【請求項７】
前記入力用の規則テーブルは、前記対応するレガシー・ネットワーク・デバイスの要求された機能が前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを示す少なくとも１つの規則を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記判断するステップにおいて、前記入力メッセージが前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断するために、前記入力メッセージが前記入力用の規則テーブルにおける前記複数の規則に適用されることを特徴とする請求項７に記載の方法。
【請求項９】
各規則は、対応するレガシー・ネットワーク・デバイスの要求された機能が前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを示すために、前記規則に対応するレガシー・ネットワーク・デバイスのＩＰアドレスを含むことを特徴とする請求項７に記載の方法。
【請求項１０】
各規則は、対応する前記レガシー・ネットワーク・デバイスの要求された機能が、前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを示すために、ポート識別子を含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記発見するステップが、発見メッセージを、発見された各レガシー・ネットワーク・デバイスに送信するステップと、前記発見メッセージに応答する前記対応するレガシー・ネットワーク・デバイスからの発見情報を受信するステップとを含み、前記発見情報は、前記対応するレガシー・ネットワーク・デバイスのための前記目標ディスクリプタ・エントリに配置されることを特徴とする請求項６に記載の方法。
【請求項１２】
発見された各レガシー・ネットワーク・デバイスに対して発見メッセージを定期的に送信し、かつ前記発見メッセージに応答して、発見情報を前記対応するレガシー・ネットワーク・デバイスから受信する、ポーリング・ステップをさらに含み、前記目標ディスクリプタ・エントリは、前記新たに受信された発見情報により更新されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記発見されたレガシー・ネットワーク・デバイスのうち、前記発見メッセージに応答して送信されるべき発見情報が受信されないものがある場合、そのレガシー・ネットワーク・デバイスに対応する前記目標ディスクリプタ・エントリが削除されることを特徴とする請求項１２に記載の方法。
【請求項１４】
発見された各レガシー・ネットワーク・デバイスについての通知を前記アプリケーション・モジュールへ送信するステップをさらに備え、前記通知は、前記対応するレガシー・ネットワーク・デバイスのための前記目標ディスクリプタ・エントリに関係する情報を含むことを特徴とする請求項６に記載の方法。
【請求項１５】
各目標ディスクリプタ・エントリを前記アプリケーション・モジュールに発行するステップをさらに備えることを特徴とする請求項６に記載の方法。
【請求項１６】
前記第２のネットワーク・インターフェイス・カードにあらかじめ設定されるＩＰアドレスが割り当てられ、前記ローカル・メッセージが前記あらかじめ設定されたＩＰアドレスに等しいソースＩＰアドレスを含むことを特徴とする請求項３に記載の方法。
【請求項１７】
前記ローカル・メッセージが、前記クライアント・ネットワーク・デバイスのソースＩＰアドレスに等しいソースＩＰアドレスを含むことを特徴とする請求項３に記載の方法。
【請求項１８】
前記ローカル・メッセージが、前記第２のネットワーク・インターフェイス・カードのソースＩＰアドレスに等しいソースＩＰアドレスを含むことを特徴とする請求項３に記載の方法。
【請求項１９】
前記リダイレクトするステップにおいて、前記アプリケーション・モジュールによる前記必要とされた機能の実行は、出力用のメッセージを前記外部ネットワークおよび前記ローカル・ネットワークのうちの一方の指定されたデバイスに送達するために準備することを含み、前記外部ネットワークおよび前記ローカル・ネットワークのうちどちらが前記出力用のメッセージを前記指定されたデバイスへ送信するために使用されるかを判断するためにルーティング・テーブルが使用されることを特徴とする請求項１に記載の方法。
【請求項２０】
前記ルーティング・テーブルは、前記外部ネットワークおよび前記ローカル・ネットワークのうちどちらが前記出力用のメッセージを前記指定されたデバイスへ送信するために使用されるべきかを示すために、各レガシー・ネットワーク・デバイスのための相互参照標識を含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記第２のネットワーク・インターフェイス・カードのあらかじめ設定されたＩＰアドレスが前記出力用のメッセージにおけるソースＩＰアドレスとして使用されるか、前記クライアント・ネットワーク・デバイスのソースＩＰアドレスが前記出力用のメッセージにおけるソースＩＰアドレスとして使用されるかを判断するために、前記ルーティング・テーブルが使用されることを特徴とする請求項１９に記載の方法。
【請求項２２】
前記アプリケーション・モジュールによって開かれたポートのポート識別子を追跡し、前記入力用の規則テーブルにおいて前記ポート識別子に対応する規則を生成するステップをさらに備え、前記判断するステップにおいて、メッセージが前記規則に対応する前記ポート識別子を含む場合、前記規則が使用されて、前記メッセージが前記外部ネットワークから前記アプリケーション・モジュールへリダイレクトされる、請求項７に記載の方法。
【請求項２３】
レガシー・ネットワーク・デバイスによって開かれたポートの最初のレガシー・ポート識別子を追跡するステップと、前記最初のレガシー・ポート識別子を新しいレガシー・ポート識別子にマップするステップと、前記最初のレガシー・ポート識別子を前記新しいレガシー・ポート識別子へマップする、前記レガシー・ネットワーク・デバイスに対応する第１のマップ規則を前記入力用の規則テーブルにおいて生成するステップと、前記新しいレガシー・ポート識別子を前記最初のレガシー・ポート識別子にマップする、前記レガシー・ネットワーク・デバイスに対応する第２のマップ規則を出力用の規則テーブルにおいて生成するステップとをさらに備えることを特徴とする請求項２２に記載の方法。
【請求項２４】
前記ローカル・ネットワークはＵＳＢネットワークであり、前記レガシー・ネットワーク・デバイスはプリンタであり、前記入力用の規則テーブルは、前記判断するステップにおいて前記プリンタについての入力メッセージを前記外部ネットワークから前記アプリケーション・モジュールにリダイレクトするために使用される規則を含み、前記アプリケーション・モジュールはＵＳＢメッセージを、前記入力メッセージに応答して、前記ローカル・ネットワークを介して前記プリンタに送信することを特徴とする請求項４に記載の方法。
【請求項２５】
前記ローカル・ネットワークはＵＳＢネットワークであり、前記レガシー・ネットワーク・デバイスはデジタル・カメラであり、デジタル・イメージを前記アプリケーション・モジュールへ前記デジタル・カメラから、前記ローカル・ネットワークを介してダウンロードするステップと、前記デジタル・イメージを前記外部ネットワーク上のサーバに送信するステップとをさらに備えることを特徴とする請求項４に記載の方法。
【請求項２６】
前記入力用の規則テーブルは、前記判断するステップにおいて入力メッセージを前記外部ネットワークから前記ローカル・ネットワーク上のネットワーク・デバイスにルーティングするために使用される規則を含むことを特徴とする請求項４に記載の方法。
【請求項２７】
前記入力用の規則テーブルは、前記判断するステップにおいて入力メッセージを前記外部ネットワークから取り込むために使用される規則を含み、前記ローカル・ネットワーク上での前記入力メッセージの伝送を防止するステップをさらに備えることを特徴とする請求項４に記載の方法。
【請求項２８】
前記入力用の規則テーブルは、前記判断するステップにおいて前記外部ネットワークからのすべての入力メッセージが前記アプリケーション・モジュールによって提供された機能を必要としないことを判断するために使用される規則を含み、それにより、前記外部ネットワークからのすべての入力メッセージは前記ローカル・ネットワークを介して渡されることを特徴とする請求項４に記載の方法。
【請求項２９】
前記アプリケーション・モジュールは、少なくとも１つのファイルを前記ローカル・ネットワークを介して前記レガシー・ネットワーク・デバイスへ、および少なくとも１つのファイルを前記外部ネットワークを介して前記クライアント・ネットワーク・デバイスへ送信するファイル・サーバであることを特徴とする請求項４に記載の方法。
【請求項３０】
前記入力用の規則テーブルは、指定された入力メッセージのセットが指定された入力メッセージのセットのそれぞれを記録するアプリケーション・モジュールにコピーされるかどうかを判断するために、前記判断するステップにおいて使用される規則を含むことを特徴とする請求項４に記載の方法。
【請求項３１】
前記入力用の規則テーブルは、前記判断するステップにおいて、前記入力メッセージが望ましくないメッセージであるかどうかを検出するために使用される規則を含み、前記入力メッセージが望ましくないメッセージである場合に、前記入力メッセージは前記アプリケーション・モジュールによって提供された機能を必要とするものと判断し、それにより前記入力メッセージが前記アプリケーション・モジュールにリダイレクトされることを特徴とする請求項４に記載の方法。
【請求項３２】
複数の望ましくないメッセージを前記アプリケーション・モジュールから、前記外部ネットワークおよび前記ローカル・ネットワークのうち１つを介して伝送するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３３】
ネットワーク・デバイスを模倣するための方法であって、前記方法は、第１および第２のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行され、前記第１のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第２のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、
前記ローカル・ネットワーク上の複数のレガシー・ネットワーク・プリンタを、前記ローカル・ネットワーク上で前記複数の各レガシー・ネットワーク・プリンタからのメッセージを検出することによって発見するステップと、
前記発見された各レガシー・ネットワーク・プリンタのために規則テーブルにおいて規則を生成するステップと、ここで各規則は前記対応するレガシー・ネットワーク・プリンタの前記ＩＰアドレスを含み、前記コンピューティング・デバイスにおけるアプリケーション・モジュールが、前記対応するレガシー・ネットワーク・プリンタに代わって機能を実行するかどうかを示し、
前記外部ネットワーク上に存在するクライアント・ネットワーク・デバイスからの入力メッセージを受信するステップと、ここで該入力メッセージは、前記複数のレガシー・ネットワーク・プリンタのうち指定されたもののＩＰアドレスに宛てられており、
前記指定されたレガシー・ネットワーク・プリンタに対応する規則に基づいて、前記入力メッセージが、前記アプリケーション・モジュールによって実行される機能を必要とするかどうかを判断するステップと、
前記入力メッセージが前記アプリケーション・モジュールからのサポートを必要とする場合、前記入力メッセージを前記アプリケーション・モジュールにリダイレクトするステップと、ここで前記アプリケーション・モジュールは前記必要とされた機能を前記入力メッセージに応答して実行し、
前記入力メッセージが、前記アプリケーション・モジュールによって提供された機能を必要としない場合、前記入力メッセージを、前記ローカル・ネットワークを介して、前記指定されたレガシー・ネットワーク・プリンタに渡すステップとを備えることを特徴とする方法。
【請求項３４】
ネットワーク・デバイスを模倣するためのコンピューティング・デバイスであって、前記コンピューティング・デバイスは第１および第２のネットワーク・インターフェイス・カードを有し、前記第１のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第２のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、
請求項１乃至３３のいずれかに記載の方法を実行するように実行可能であるプロセス・ステップを格納するためのプログラム・メモリと、
前記プログラム・メモリに格納された前記プロセス・ステップを実行するためのプロセッサとを備えることを特徴とするコンピューティング・デバイス。
【請求項３５】
コンピュータ可読媒体上に格納されたコンピュータ実行可能プロセス・ステップであって、前記コンピュータ実行可能プロセス・ステップは、ネットワーク・デバイスを模倣するためのものであり、かつ、第１および第２のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行されるものであり、ここで前記第１のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第２のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、前記コンピュータ実行可能プロセス・ステップが、請求項１乃至３３のいずれかに記載の方法を実行するように実行可能であるプロセス・ステップを含むことを特徴とするコンピュータ実行可能プロセス・ステップ。
【請求項３６】
コンピュータ実行可能プロセス・ステップを格納するコンピュータ可読媒体であって、前記コンピュータ実行可能プロセス・ステップは、ネットワーク・デバイスを模倣するためのものであり、かつ、第１および第２のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行されるものであり、ここで前記第１のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第２のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、前記コンピュータ実行可能プロセス・ステップが、請求項１乃至３３のいずれかに記載の方法を実行するように実行可能であるプロセス・ステップを含むことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、レガシー・ネットワーク・デバイスの機能能力を拡張するための、レガシー・ネットワーク・デバイスの模倣（mimicking）に関する。具体的には、本発明は、１つまたは複数のレガシー・ネットワーク・デバイスを外部ネットワークから切り離し、これらレガシー・ネットワーク・デバイスに代わってそれらが本来サポートしない機能要求に関して透過的に動作することによって、これらレガシー・ネットワーク・デバイスを代理するための利用に関するものである。
【０００２】
【関連技術の説明】
ビジネス・オフィス環境をサポートするためのネットワークなどの大規模ネットワーク環境においては、しばしば、ネットワーク・プリンタなど、異なる機能能力を有する、異なるタイプおよび世代の多数のネットワーク・デバイスが含まれることがある。新しい技術が出現し、改善された機能性が新しいモデルまたは世代のネットワーク・デバイスにおいて実施されるにつれて、ネットワーク内で使用可能な機能は、どのネットワーク・デバイスが利用されているかに応じて大幅に変化する可能性がある。たとえば、ネットワーク環境におけるいくつかのより新しいプリンタはセキュア・プリンティングをサポートすることができるのに対して、そのネットワーク環境に存在するより古いプリンタはセキュア・プリンティングをサポートしていないという状態が生じ得る。
【０００３】
新しい技術および改良をネットワーク環境全体に渡って実施し、それにより同じ機能能力のセットを、すべてのネットワーク・ユーザがすべてのネットワーク・デバイスについて使用可能にすることが、一般には望ましい。さもないと、一部のネットワーク・ユーザに割り当てられたネットワーク・デバイスが他のより新しいネットワーク・デバイスによってサポートされた新しい機能性をサポートしないような場合には、そのネットワーク・ユーザはセキュア・プリンティングおよび電子メール印刷などの新しい有用な機能を利用できなくなるであろう。
【０００４】
この問題に対する１つの問題解決手法は、単純にすべてのレガシー・ネットワーク・デバイスを、所望の新しい機能能力を有する新しいネットワーク・デバイスで置き換えることである。しかしながら、この問題解決手法を実施する場合の労力および費用は多大であり、新しい機能能力を必要とする新しいエンタープライズ・アプリケーションが頻繁に実施されるような場合には現実的な方法ではない。
【０００５】
上記問題に対するもう１つの問題解決手法は、新しいファームウェアを各レガシー・ネットワーク・デバイスにダウンロードすることによってレガシー・ネットワーク・デバイスを修正することである。しかし、この問題解決手法においても、ネットワーク・アドミニストレータまたはサービス担当者が物理的に各レガシー・ネットワーク・デバイスにアクセスし、次いで適切なバージョンのファームウェアをダウンロードして、そのレガシー・デバイスが他のネットワーク・デバイスと整合の取れた機能性をサポートするようにすることが必要であり、著しい労力が要求されてしまう。また、多くの場合、レガシー・デバイスにハードウェアおよびデザイン上の制限があるため、新しい機能性を実施するために新しいバージョンのファームウェアをレガシー・デバイスにダウンロードすることは可能ではない。
【０００６】
この問題に対するさらにもう１つの問題解決手法は、対応するレガシー・ネットワーク・デバイスのための所望の追加機能性をサポートするために、サポート・デバイスをネットワーク上の、各レガシー・ネットワーク・デバイスの付近に配置することである。しかしながら、この問題解決手法においては、レガシー・ネットワーク・デバイスのユーザに透過的でないという欠点がある。この非透過性のゆえに、サポート・デバイスによって提供された追加的な機能を利用するために、所与のレガシー・ネットワーク・デバイスに対応するサポート・デバイスのためのＩＰアドレスをネットワーク・ユーザに知らせることが必要となる。
【０００７】
【発明の要約】
本発明は、前述の問題について、プリンタなどのレガシー・ネットワーク・デバイスを模倣して、レガシー・ネットワーク・デバイスのための追加機能能力を提供することによって上記課題に対処する。詳細には、本発明は、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスを発見し、外部ネットワーク上でレガシー・ネットワーク・デバイスに宛られたネットワーク・メッセージに応答する。なお、本明細書において使用される「レガシー・ネットワーク・デバイス」という用語は、電子メール印刷などの所望のエンタープライズ機能性（enterprise functionality）をサポートするための能力が不足している、より古いネットワーク・デバイスおよびより新しいネットワーク・デバイスを含む。したがって、本発明は、外部ネットワーク上のクライアント・デバイスに対して透過的な状態で、追加の機能をレガシー・ネットワーク・デバイスに代わって実行する。電子メール・ミミック・デバイス（e-mail mimic device）の存在も、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスに対して透過的にすることができる。
【０００８】
したがって、本発明の一態様は、第１および第２のネットワーク・インターフェイス・カードを有し、ネットワーク・デバイスを模倣するコンピューティング・デバイスに関する。ここで、第１のネットワーク・インターフェイス・カードはコンピューティング・デバイスを外部ネットワークに接続し、第２のネットワーク・インターフェイス・カードはコンピューティング・デバイスをローカル・ネットワークに接続する。本発明は、外部ネットワーク上に存在するクライアント・ネットワーク・デバイスからの、ローカル・ネットワーク上に存在するレガシー・ネットワーク・デバイスに宛られた入力メッセージを受信すること、及び、入力メッセージが、当該コンピューティング・デバイスに存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断することを含む。ここで、その入力メッセージが、アプリケーション・モジュールによって提供される機能を必要とすると判断された場合、入力メッセージがアプリケーション・モジュールにリダイレクトされ、必要とされた機能を入力メッセージに応答して実行する。一方、入力メッセージがアプリケーション・モジュールによって提供された機能を必要としない場合には、その入力メッセージはローカル・ネットワークを通してローカル・ネットワーク上に存在するレガシー・ネットワーク・デバイスに渡される。
【０００９】
ここで、好ましくは、アプリケーション・モジュールはローカル・メッセージをローカル・ネットワーク上へ送信して対応するレガシー・ネットワーク・デバイスと通信し、このような各ローカル・メッセージは第２のネットワーク・カードのあらかじめ設定されたＩＰアドレスをソースＩＰアドレスとして使用する。また、必要であれば、アプリケーション・モジュールからのローカル・メッセージは、当該メッセージのソースＩＰアドレスとして、クライアント・ネットワーク・デバイスのＩＰアドレスを使用することができる。アプリケーション・モジュールはまた、対応するレガシー・ネットワーク・デバイスのＩＰアドレスをクライアント・ネットワーク・デバイスへのメッセージにおけるソースＩＰアドレスとして使用して、当該メッセージをクライアント・ネットワーク・デバイスに送信することができる。加えて、ローカル・ネットワーク上のトラフィックをリスニングしてレガシー・ネットワーク・デバイスを検出し、検出されたレガシー・ネットワーク・デバイスに発見要求（discovery request）を送信してそのデバイスに関係する情報を得ることによって、ローカル・ネットワーク上のすべてのレガシー・ネットワーク・デバイスが発見される。次いで、ミミック・デバイスが定期的に、それら発見されたレガシー・ネットワーク・デバイスをポーリングして、それらの現在の状態を判断する。更に、その判断ステップにおいて所定の規則セットが使用され、入力メッセージがアプリケーション・モジュールにリダイレクトされるべきであるか、ローカル・ネットワークを通して対応するレガシー・ネットワーク・デバイスに渡されるべきであるかが判断される。規則は、各レガシー・ネットワーク・デバイスについての発見情報（discovery information）に基づいて作成される。また、規則は、アプリケーション・モジュールおよびレガシー・ネットワーク・デバイスによって開始されたポートに基づいて動的に作成される。また、好ましくは、本発明はレガシー・ネットワーク・デバイスおよびアプリケーション・モジュールが同じポート識別子を使用することを防止するように構成される。
【００１０】
上記の構成によれば、レガシー・ネットワーク・デバイスの機能能力を、外部ネットワーク上の他のデバイスに対して透過的な様態で拡張するための効率的な方法を提供することができる。したがって、新しいネットワーク・デバイスの購入、または、ネットワーク環境におけるすべてのレガシー・ネットワーク・デバイスにおけるファームウェアのアップグレードに関連する費用および時間が回避され得る。また、ミミック・デバイスは、レガシー・ネットワーク・デバイスがサポートしない機能性のためにレガシー・ネットワーク・デバイスに代わって動作することにより透過的であるので、ネットワーク・アドミニストレータはそのミミック・デバイスの存在をすべての他のネットワーク・ユーザに公表する必要はない。
【００１１】
本発明のもう１つの態様では、本発明は、第１および第２のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスを通じてネットワーク・デバイスを模倣することに関する。ここで第１のネットワーク・インターフェイス・カードはコンピューティング・デバイスを外部ネットワークに接続し、第２のネットワーク・インターフェイス・カードはコンピューティング・デバイスをローカル・ネットワークに接続する。また、本発明は、ローカル・ネットワーク上で複数の各レガシー・ネットワーク・プリンタからのメッセージを検出することによってローカル・ネットワーク上の複数のレガシー・ネットワーク・プリンタを発見すること、および、発見された各レガシー・ネットワーク・プリンタのための規則テーブルにおいて規則を作成することを含む。ここで、各規則は、対応するレガシー・ネットワーク・プリンタのＩＰアドレスを含み、コンピューティング・デバイスにおけるアプリケーション・モジュールが対応するレガシー・ネットワーク・プリンタに代わって機能を実行するかどうかを示す。本発明はさらに、複数のレガシー・ネットワーク・プリンタのうちの指定されたレガシー・ネットワーク・プリンタのＩＰアドレスを宛て先とする入力メッセージを、外部ネットワーク上に存在するクライアント・ネットワーク・デバイスから受信し、指定されたレガシー・ネットワーク・プリンタに対応する規則に基づいて、その入力メッセージがアプリケーション・モジュールによって実行されるべき機能を必要とするかどうかを判断することを含む。さらに、入力メッセージが、アプリケーション・モジュールからのサポートを必要とする場合、必要とされた機能を入力メッセージに応答して実行するアプリケーション・モジュールに入力メッセージがリダイレクトされる。一方、入力メッセージが、アプリケーション・モジュールによって提供された機能を必要としない場合、入力メッセージがローカル・ネットワークを通して、指定されたレガシー・ネットワーク・プリンタに渡される。
【００１２】
好ましくは、対応するレガシー・ネットワーク・プリンタと通信するために、アプリケーション・モジュールはローカル・メッセージをローカル・ネットワーク上に送信する。ここで、そのようなローカル・メッセージの各々は第２のネットワーク・カードのあらかじめ設定されたＩＰアドレスをソースＩＰアドレスとして使用する。必要であれば、アプリケーション・モジュールからレガシー・ネットワーク・プリンタへのローカル・メッセージは、クライアント・ネットワーク・デバイスのＩＰアドレスをメッセージにおけるソースＩＰアドレスとして使用することができる。アプリケーション・モジュールはまた、メッセージをクライアント・ネットワーク・デバイスに送信することができる。ここで、クライアント・ネットワーク・デバイスへのメッセージにおけるソースＩＰアドレスとして、対応するレガシー・ネットワーク・プリンタのＩＰアドレスを使用する。加えて、各レガシー・ネットワーク・プリンタの発見は、検出された各レガシー・ネットワーク・プリンタに発見要求を送信して、そのプリンタに関係する情報を得ることを含む。また、アプリケーション・モジュールおよびレガシー・ネットワーク・プリンタによって開始されるポートに基づいて規則が動的に作成される。好ましくは、本発明において、レガシー・ネットワーク・プリンタおよびアプリケーション・モジュールが同じポート識別子を使用することが防止される。なお、ミミック・デバイスは、レガシー・ネットワーク・デバイスの１つに代わってメッセージを取り込み且つそれに応答するべきであるかどうかを判断するために、メッセージにおけるＩＰアドレスに加えて１つまたは複数のディスクリミネータを使用することが可能である。
【００１３】
上記構成により、本発明は、レガシー・ネットワーク・プリンタの機能能力を、外部ネットワーク上の他のデバイスに透過的である様態において拡張するための効率的な方法を提供する。したがって、新しいネットワーク・プリンタの購入、または、ネットワーク環境におけるすべてのレガシー・ネットワーク・プリンタにおけるファームウェアのアップグレードに関連する費用および時間が回避される。また、ミミック・デバイスは、レガシー・ネットワーク・プリンタに代わって当該レガシー・ネットワーク・プリンタがサポートしないであろう機能性のために動作することによって透過的であるため、ネットワーク・アドミニストレータは、ミミック・デバイスの存在をすべての他のネットワーク・ユーザに公表する必要はない。
【００１４】
上述した簡単な概要は、本発明の性質を迅速に理解できるように提供されたものである。従って、本発明のより完全な理解は、以下のその好ましい実施形態の詳細な説明を添付の図面と共に参照することによって得ることができる。
【００１５】
【発明の実施の形態】
本発明は、一般的なネットワーク環境において、既存のネットワーク・デバイスの機能性を増強するために使用するためのミミック・デバイスを対象とする。より詳細には、本発明のミミック・デバイスは２つの別々のネットワーク・インターフェイス・カードを利用する。これにより、ミミック・デバイスは、第１のネットワーク・インターフェイス・カードに接続される汎用ネットワークと、第２のネットワーク・インターフェイス・カードに接続されるローカル・ネットワークのとの間を仲介する装置として動作することができる。この様態において、ネットワーク・プリンタなど、ローカル・ネットワーク上のいくつかの既存のレガシー・ネットワーク・デバイスを、ミミック・デバイスの後ろで、一般的な外部ネットワークから切り離すことができる。そして、ミミック・デバイスは、まず初期状態において、外部ネットワークからのすべてのネットワーク・トラフィックを第１のネットワーク・インターフェイス・カードから第２のネットワーク・インターフェイス・カードへ通し、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスへ渡すことができる。また、ミミック・デバイスはローカル・ネットワークをリスニングし、そのローカルネットワーク上にある全てのレガシー・ネットワーク・デバイスを発見する。そして、その後、ミミック・デバイスは、ミミック・デバイス内のアプリケーションを利用して、発見された各レガシー・ネットワーク・デバイスの機能能力を増強することができる。
【００１６】
レガシー・ネットワーク・デバイスを増強するミミック・デバイスには、レガシー・ネットワーク・デバイスに代わって機能能力を追加するためのアプリケーションが提供される。たとえば、ローカル・ネットワーク上でミミック・デバイスの後ろのネットワーク・プリンタが電子メール印刷能力を有していない場合、ミミック・デバイスは電子メール印刷アプリケーションを含むことができる。そして、この電子メール印刷アプリケーションにより、ミミック・デバイスは、外部ネットワーク上のクライアントからの電子メール印刷のための要求をローカル・ネットワーク上のネットワーク・プリンタからインターセプトし、次いで、クライアントからの要求に応じてレンダリングされた印刷ジョブをネットワーク・プリンタへ送信することによって電子メール印刷機能を当該ネットワーク・プリンタに代わって実行する。この実施形態では、ミミック・デバイスの存在がクライアントに対して透過的であるようにするために、ミック・デバイスは外部ネットワーク上のクライアントにネットワーク・プリンタのＩＰアドレスを使用して応答する。加えて、ミミック・デバイスは、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスによって開始される、外部ネットワーク上のクライアントへの接続をサポートすることができる。たとえば、レガシー・ネットワーク・デバイスは、外部ネットワーク上のＮＴＰサーバに宛てられたネットワーク・タイム・プロトコル（ＮＴＰ）要求を送信することができる。ミミック・デバイスはレガシー・ネットワーク・デバイスからのＮＴＰ要求をインターセプトし、当該レガシー・ネットワーク・デバイスに代わってミミック・デバイス自身のＮＴＰ要求をＮＴＰサーバへ送信することができる。次いで、ミミック・デバイスが、現在時間などを含むＮＴＰサーバからの応答を受信し、次いでこの応答をレガシー・ネットワーク・デバイスへ転送する。この際、ミミック・デバイスのＩＰアドレスまたはＮＴＰサーバのＩＰアドレスがソースＩＰアドレスとして使用される。したがって、本実施形態のミミック・デバイスは、レガシー・ネットワーク・デバイスの機能能力を、外部ネットワーク上のネットワーク・ユーザに対して透過的な状態で増強するための、効率的かつ費用のかからない方法を提供するものである。
【００１７】
図１は、本発明を実施することができるネットワーク環境を示す。図１に示されるように、外部ネットワーク１０は典型的なネットワークであり、ＴＣＰ／ＩＰおよび他の共通ネットワーク・プロトコルによってサポートされることが好ましい。これらについては本明細書でさらに後述する。外部ネットワーク１０に接続されるものは、典型的なネットワーク・サーバであるサーバ１１、およびワークステーション１２である。ワークステーション１２は典型的なコンピューティング・ワークステーションであり、ＣＰＵ、固定ディスクおよびＲＡＭを備えたホスト・プロセッサ、およびホスト・プロセッサと対話するためのディスプレイ、キーボードおよびマウスを有する。サーバ１１は典型的なサーバでありホストプロセッサを有する。このホストプロセッサは、ＣＰＵ、ＲＡＭ、ＲＯＭ、および、外部ネットワーク１０におけるユーザによってアクセスかつ共有することができるファイルおよび／またはアプリケーションを含むための大型固定ディスクを含む。
【００１８】
図１に示されるように、ミミック・デバイス２０は外部ネットワーク・インターフェイス・カード２２およびローカル・ネットワーク・インターフェイス・カード２１を有する。上述のように、これらネットワーク・インターフェイス・カードにより、ミミック・デバイス２０は、外部ネットワーク１０とローカル・ネットワーク１４の間のコントロールされたブリッジとして動作することができる。外部ネットワーク・インターフェイス・カード２２はミミック・デバイス２０を外部ネットワーク１０に接続し、ローカル・ネットワーク・インターフェイス・カード２１はミミック・デバイス２０をローカル・ネットワーク１４に接続する。ミミック・デバイス２０との通信のために、複数のネットワーク・デバイスがローカル・ネットワーク１４上に存在させることができる。図１に示した実施例では、レガシー・ネットワーク・プリンタ１５および１６がローカル・ネットワーク１４上に設けられており、ローカル・ネットワーク・インターフェイス・カード２１を介してミミック・デバイス２０と接続されている。更に、非インターネット対応ネットワーク・デバイスを外部ネットワーク１０に接続するためのブリッジとしてミミック・デバイスを使用することもできることが理解されよう。たとえば、ローカル・ネットワーク１４をＵＳＢネットワークにすることができ、レガシー・ネットワーク・プリンタ１５および１６を非ネットワーク対応プリンタにすることができる。したがって、ミミック・デバイス２０は、ローカル・ネットワーク１４のＵＳＢ接続を介して、プリンタ１５および１６と、外部ネットワーク１０との間のブリッジとして動作する。
【００１９】
各レガシー・ネットワーク・プリンタ１５および１６は、ネットワーク・インターフェイス・カード（図示せず）を、ローカル・ネットワーク１４への接続のために有する。レガシー・ネットワーク・プリンタ１５および１６としては、レーザ・ジェット・プリンタまたはインク・ジェット・プリンタなどの典型的なネットワーク・プリンタを用いることができ、これらはネットワーク印刷アプリケーションをサポートするためのある限定された機能能力を有する。本実施形態の説明のために、レガシー・ネットワーク・プリンタ１５および１６は、セキュア・プリンティング、電子メール印刷、または他のいくつかのプリンタ機能性などのエンタープライズ印刷機能能力が不足していると仮定する。このため、レガシー・ネットワーク・プリンタ１５および１６はローカル・ネットワーク１４上に配置されることによって外部ネットワーク１０から切り離され、ミミック・デバイス２０が追加のエンタープライズ印刷機能能力をレガシー・ネットワーク・プリンタ１５および１６に代わって提供できるようにする。ミミック・デバイス２０を利用して、ローカル・ネットワーク１４上のいかなるネットワーク・デバイスの機能能力をも増強することができ、これがネットワーク・プリンタのみによる使用に限定されないことを理解されたい。
【００２０】
図２Ａは、ミミック・デバイス２０の内部アーキテクチャを説明するためのブロック図である。図２Ａに示されるように、ミミック・デバイス２０は本質的に、サーバまたは他の類似のコンピューティング・デバイスの構成を有する。ただし、ミミック・デバイス２０は２つのネットワーク・インターフェイス・カードを含む。また、ミミック・デバイス２０は、システム・バス２０、ＣＰＵ３４、ＲＡＭ３５、ＲＯＭ３６、外部ネットワーク・インターフェイス・カード２２、ローカル・ネットワーク・インターフェイス・カード２１および固定ディスク６０を含む。
【００２１】
中央処理装置（ＣＰＵ）３４は、バス３０とインターフェイスをとるように構成されたプログラマブルなマイクロプロセッサである。ランダム・アクセス・メモリ（ＲＡＭ）３５は、ＣＰＵ３４に記憶装置へのアクセスを提供するためにバス３０とインターフェイスをとるように構成され、それによりＣＰＵ３４のためのメインのランタイム・メモリ（run-time memory）として動作する。より詳細には、格納されたプログラム命令シーケンスを実行するとき、ＣＰＵ３４が命令シーケンスを固定ディスク６０（または他の接続されたメモリ媒体）からＲＡＭ３５にロードし、次いでこれらの格納されたプログラム命令シーケンスをＲＡＭ３５から実行する。標準のディスクスワップ技術により、メモリのセグメントをＲＡＭ３５および固定ディスク６０の間でスワップできることも理解されたい。
【００２２】
読取り専用メモリ（ＲＯＭ）３６は不変命令シーケンスを格納する。不変命令シーケンスとしては、ＣＰＵ３４のための起動命令シーケンス、またはミミック・デバイス２０（図示せず）に接続することのできる周辺デバイスのオペレーションのための基本入出力オペレーティング・システム（「ＢＩＯＳ」）シーケンスなどが挙げられる。外部ネットワーク・インターフェイス・カード２２およびローカル・ネットワーク・インターフェイス・カード２１は、２つの分離した、別個のネットワーク・インターフェイスである。これにより、ミミック・デバイス２０が、外部ネットワーク・インターフェイス・カード２２を介して外部ネットワーク１０に接続できるようにし、またローカル・ネットワーク・インターフェイス・カード２１を介してローカル・ネットワーク１４に接続できるようにする。図２に示されるように、外部ネットワーク・インターフェイス・カード２２およびローカル・ネットワーク・インターフェイス・カード２１は共に、外部ネットワーク１０およびローカル・ネットワーク１４をそれぞれミミック・デバイス２０にインターフェイスするための類似のプロトコル・スタックを含む。但し、ローカル・ネットワーク・インターフェイス・カード２１および外部ネットワーク・インターフェイス・カード２２におけるプロトコル・スタックが類似のものであることは必ずしも必要ではないことに留意されたい。たとえば、ローカル・ネットワーク１４は、トークン・リング・プロトコルなど、外部ネットワーク１０とは異なるプロトコルを使用することができる。この場合、ローカル・ネットワーク・インターフェイス・カード２１におけるプロトコル・スタックがＩＰプロトコル環境の代わりにトークン・リング・プロトコル環境をサポートするためのプロトコル・レイヤを含むことになる。
【００２３】
たとえば、外部ネットワーク・インターフェイス・カード２２は、直接外部ネットワーク１０とインターフェイスをとる低レベルのプロトコル・レイヤであるネットワーク・インターフェイス・レイヤ４１を含む。また、ＴＣＰ／ＩＰプロトコルを介した外部ネットワーク１０との通信をサポートするための、ＴＣＰ／ＩＰレイヤ４２がネットワーク・インターフェイス・レイヤ４１の上に設けられる。この様態において、ミミック・デバイス２０は、しばしば「フレーム」と呼ばれるＴＣＰ／ＩＰメッセージを外部ネットワーク１０を介して送受信することができる。類似の方法において、ＨＴＴＰレイヤ４３、ＳＮＭＰレイヤ４４、ＬＤＡＰレイヤ４５および他のレイヤ４６がＴＣＰ／ＩＰレイヤ４２の上に設けられ、それぞれＨＴＴＰ、ＳＮＭＰ、ＬＤＡＰおよび他の知られているネットワーキング・プロトコルを使用した外部ネットワーク１０における通信をサポートする。なお、本実施形態ではローカル・ネットワーク・インターフェイス・カード２１において示したプロトコル・スタックは、上述のプロトコル・スタックのものと同様であり、したがって詳細な説明は省略する。
【００２４】
固定ディスク６０は、ＣＰＵ３４によって実行可能なプログラム命令シーケンスを格納するコンピュータ可読媒体の一実施例である。ここでプログラム命令シーケンスは、ＣＰＵ３４によって実行されて、オペレーティング・システム６１、外部ネットワーク・インターフェイス・ドライバ６２、ローカル・ネットワーク・インターフェイス・ドライバ６３、他のドライバ６８、モジュール５８、デバイス能力テーブル７３、ルーティング・テーブル７４、規則テーブル７５、目標ディスクリプタ・テーブル７６、ソケット・ライブラリ７７および他のファイル７９を構成する。
【００２５】
オペレーティング・システム６１は、ＤＯＳ（登録商標）またはＵＮＩＸ（登録商標）などの基本オペレーティング・システム、あるいは、Ｗｉｎｄｏｗｓ  ＮＴ（登録商標）などの共通ウィンドウ・オペレーティング・システム、または別の知られているオペレーティング・システムとすることができる。外部ネットワーク・インターフェイス・ドライバ６２は、ミミック・デバイス２０を外部ネットワーク１０にインターフェイスするための外部ネットワーク・インターフェイス・カード２２を駆動するのに用いられる。同様に、ローカル・ネットワーク・インターフェイス・ドライバ６３は、ミミック・デバイス２０をローカル・ネットワーク１４にインターフェイスするローカル・ネットワーク・インターフェイス・カード２１を駆動するのに用いられる。他のドライバ６８は、ミミック・デバイス２０（図示せず）に接続することができる他のデバイスを駆動するのに用いられる。ここで他のデバイスとは、ユーザがミミック・デバイス２０を構成かつ操作することができるようにするためのフロント・パネル・インターフェイス、または、同じ目的を達成するための表示モニタ、キー・パッドおよびマウス（図示せず）などである。モジュール５８は本発明の機能性を実施するのに利用され、これについては以下でより完全に記載する。
【００２６】
デバイス能力テーブル７３には、ローカル・ネットワーク１４上に設けることができるネットワーク・デバイスの機能能力の範囲に関する情報が格納され、以下でさらに論じられるように、本発明を実施するのに利用される。ルーティング・テーブル７４は１つまたは複数のルーティング・テーブルを含む。これらのルーティング・テーブルは、外部ネットワーク・インターフェイス・カード２２あるいはローカル・ネットワーク・インターフェイス・カード２１を介してミミック・デバイス２０出て行く通信をルーティングするのに用いられる。この点についても以下でより詳細に記載する。規則テーブル７５は、本発明の機能性を実施するのに利用される。この点についても以下により詳細に記載する。目標ディスクリプタ・テーブル７６は、ミミック・デバイス２０によって発見されたローカル・ネットワーク１４上のレガシー・ネットワーク・デバイスに対応する複数の目標ディスクリプタ・エントリを含むのに利用される。この点についても以下でさらに論ずる。ソケット・ライブラリ７７は、本発明によるミミック・デバイス内のアプリケーションによって開かれたソケットを追跡するために、本発明において使用されるライブラリである。最後に、他のファイル７９は、ミミック・デバイス２０を操作するため、かつ追加機能性をミミック・デバイス２０に提供するために必要な他のファイルおよび／またはプログラムを含む。
【００２７】
図２Ｂは、モジュール５８における各モジュールを示すブロック図である。図２Ｂに示されているように、モジュール５８は、ネットワーク・デバイス・マネージャ（ＮＤＭ:Netword Device Manager）モジュール６４、ネットワーク・トラフィック・コントローラ（ＮＴＣ:Network Traffic Controller）モジュール６５、受動目標検出（ＰＴＤ:Passive Target Detector）モジュール６６、動的ポート・レジスタ（ＤＰＲ: Dynamic Port Register）モジュール６７、トランスポート・アドレス変換（ＴＡＴ:Transport Address Translator）モジュール６９、セキュア・プリンティング・アプリケーション・モジュール７０、電子メール印刷アプリケーション・モジュール７１、他のアプリケーション・モジュール７２およびアプリケーション・マネージャ・モジュール７８を含む。上述のすべてのモジュールは本発明の実施態様に特有のものであり、ここでは図２Ｂを参照して概略を記載し、以下でより詳細に他の図面を参照して説明する。
【００２８】
ネットワーク・デバイス・マネージャ・モジュール６４は、本発明を実施するために利用された低レベルのモジュールであり、これは、フレームとして知られるメッセージを外部ネットワーク・インターフェイス・カード２２とローカル・ネットワーク・インターフェイス・カード２１のそれぞれにおいて送受信するためのものである。ネットワーク・トラフィック・コントローラ・モジュール６５は、本発明の実施のために利用されるものであり、これは規則テーブル７５からの規則と関連して、あるメッセージが、ローカル・ネットワーク１４上のレガシー・ネットワーク・デバイスのうち１つに代わってミミック・デバイス２０によって処理されるべきであるか、単にローカル・ネットワーク１４上の対応するレガシー・ネットワーク・デバイスに渡されるべきであるかを判断する。受動目標検出モジュール６６は、本発明の実施のために利用されるものであり、これは本質的には、発見された各レガシー・ネットワーク・デバイスに関するネットワーク関係および他の機能情報を得ることによって、ローカル・ネットワーク１４上に存在するレガシー・ネットワーク・デバイスを発見する。受動目標検出（ＰＴＤ）モジュール６６も、発見された各レガシー・ネットワーク・デバイスの状態を確認するために定期的ポーリングを実行する。
【００２９】
動的ポート・レジスタ・モジュール６７は、ミミック・デバイス２０内のアプリケーションによって開かれたポートを監視することによって本発明を実施するのに利用される。また、動的ポート・レジスタ・モジュール６７は、アプリケーションがローカル・ネットワーク１４上の１つまたは複数のレガシー・ネットワーク・デバイスに代わって動作することができるように、必要に応じてメッセージ（フレーム）を対応するアプリケーションにリダイレクトするための規則を作成するのに利用される。トランスポート・アドレス変換モジュール６９は、ローカル・ネットワーク１４上のレガシー・ネットワーク・デバイスによって開かれたソケットを監視することによって本発明を実施するのに利用される。また、トランスポート・アドレス変換モジュール６９は、ソケット識別子がミミック・デバイス２０におけるアプリケーションによって開かれたソケットと競合することを回避するために、対応するソケット識別子を新たに作成されたソケット識別子にマップする。
【００３０】
セキュア・プリンティング・アプリケーション・モジュール７０および電子メール印刷アプリケーション・モジュール７１は、ミミック・デバイス２０において、ローカル・ネットワーク１４上のレガシー・ネットワーク・プリンタ１５および１６、または他のレガシー・ネットワーク・デバイスの機能能力を増強するために提供することができる、アプリケーション・モジュールの例である。たとえば、レガシー・ネットワーク・プリンタ１５が、電子メール印刷をサポートするための機能能力は有するがセキュア・プリンティングをサポートするための機能能力は有していないという可能性がある。このような場合、ミミック・デバイス２０はセキュア・プリンティング・アプリケーション・モジュール７０を利用して、外部ネットワーク１０から受信された、レガシー・ネットワーク・プリンタ１５からのセキュア・プリンティング・サービスを要求するフレームに応答する。同様にして、レガシー・ネットワーク・プリンタ１６が電子メール印刷をサポートしていない場合、ミミック・デバイス２０が電子メール印刷アプリケーション・モジュール７１を利用して、レガシー・ネットワーク・プリンタ１６に代わって、レガシー・ネットワーク・プリンタ１６からの電子メール印刷サービスのための外部ネットワーク１０からの入力要求のために動作する。このような様態においては、実際にはミミック・デバイス２０がこのような追加機能能力をプリンタに代わって透過的な方法において提供しているのであるが、ワークステーション１２などの外部ネットワーク１０上のクライアントには各レガシー・ネットワーク・プリンタ１５および１６がセキュア・プリンティングおよび電子メール印刷をサポートするための能力を有しているように見える。他のアプリケーション・モジュール７２は、ローカル・ネットワーク１４上に存在するレガシー・ネットワーク・デバイスの機能能力を増強する他の追加のアプリケーションをサポートするのに用いられる。最後に、アプリケーション・マネージャ・モジュール７８は、各レガシー・ネットワーク・デバイスの機能能力を増強するために１つまたは複数の前述のアプリケーションを必要に応じて開始するべく、本発明によって利用される。これらのモジュールを以下で、残りの図面に関連してより詳細に論ずる。
【００３１】
図３は、ミミック・デバイス２０の機能モジュールを示す図である。ＮＤＭ６４が、外部ネットワーク・インターフェイス・ドライバ６２、ローカル・ネットワーク・インターフェイス・ドライバ６３のようなミミック・デバイス２０によって利用されるデバイス・ドライバや、ローカル・ネットワーク１４に接続され、ミミック・デバイス２０によってサポートされるデバイスに関連したドライバを管理する。外部ネットワーク・インターフェイス・ドライバ６２は、パケットを外部ネットワーク１０との間で送受信することを行う。また、ローカル・ネットワーク・インターフェイス・ドライバ６３は、パケットをローカル・ネットワーク１４との間で送受信することを行う。加えて、ＮＤＭ６４はルーティング・テーブル７４を維持する。このルーティング・テーブル７４は、ミミック・デバイス２０によって送信されるパケットをルーティングするためにＮＤＭ６４により利用される。
【００３２】
ＮＴＣ６５は、ＮＤＭ６４によって外部ネットワーク１０またはローカル・ネットワーク１４のいずれかから受信されたフレーム、ならびに、ミミック・デバイス２０上で内部的に動作するアプリケーションによって送信されるフレームを処理する。ＮＴＣ６５は、一連の規則を各フレームに適用することによって、フレームを処理する。その規則は、ＮＴＣ６５によって管理される規則テーブル７５に含まれている。ＰＴＤ６６はローカル・ネットワーク１４上のデバイスを検出し、監視する。ＰＴＤ６６は目標ディスクリプタ・テーブル７６を維持する。この目標ディスクリプタ・テーブル７６は、プリンタ１５およびプリンタ１６などの、検出されたデバイスを定義するパラメータを含む。加えて、ＰＴＤ６６は、ミミック・デバイス２０内の他のモジュールに、目標ディスクリプタ・テーブル７６において定義されている検出されたデバイスへのいかなる変更をも通知する。
【００３３】
ＤＰＲ６７は、ミミック・デバイス２０上で動作するアプリケーションによるソケットの開閉を監視し、ＮＴＣ６５と対話して、ＮＴＣ６５によって処理されたフレームが正しくチャネリングされることを保証する。ソケットの監視において、ＤＰＲ６７はソケット・ライブラリ７７を参照する。このソケット・ライブラリ７７には、ミミック・デバイス２０上で動作するアプリケーションによって開かれたソケットを定義するソケット・ディスクリプタが含まれる。ＴＡＴ６９は、ローカル・ネットワーク１４上のデバイスによるポート番号の割当てを監視し、必要なときには、これらのデバイスとミミック・デバイス２０上で動作するアプリケーションの間の競合を防止する。
【００３４】
アプリケーション・マネージャ・モジュール７８は、ミミック・デバイス２０上で実行されるアプリケーションを管理する。新しいデバイスがＰＴＤ６６によって通知されると、アプリケーション・マネージャ・モジュール７８は、新たに検出されたデバイスの能力を増強するために、どのアプリケーションを開始させるべきかを判断する。適用可能なアプリケーション・モジュールとしては、セキュア・プリンティング・アプリケーション・モジュール７０を含み、これがセキュア・プリンティング・サービスを、外部ネットワーク１０上のホストと、プリンタ１５またはプリンタ１６などのローカル・ネットワーク１４上のデバイスとの間に提供する。加えて、適用可能なアプリケーションモジュールとして、電子メール印刷アプリケーション・モジュール７１が含まれており、外部ネットワーク１０上のホストからの電子メール印刷機能性を、ローカル・ネットワーク１４上のデバイスへ提供する。また、必要とされたサービスを提供するための他のアプリケーションを含むことによって、更なる機能性をミミック・デバイス２０に追加することができる。この更なるアプリケーションは、図３において、他の印刷アプリケーション・モジュール７２によって表現されている。
【００３５】
以上の記載は、各機能モジュールの目的を簡単に紹介するために提供されたものである。以下、これらのモジュールの機能および相互作用のより詳細な説明を行う。
【００３６】
図４は、目標ディスクリプタ・テーブル７６を示す図である。目標ディスクリプタ・テーブル７６における各エントリは、いくつかのパラメータによって定義される。目標１００は、ローカル・ネットワーク１４上で検出されたデバイスに対応する識別子である。イーサネット・アドレス１０１は、検出されたデバイスのイーサネット・アドレスを提供する。ＩＰアドレス１０２は、検出されたデバイスのＩＰアドレスを提供する。ＩＰネットワーク・マスク１０４は、検出されたデバイスに関連付けられたネットマスクを提供する。デフォルト・ルータ１０５は、検出されたデバイスに関連付けられたデフォルト・ルータのアドレスを提供する。ＳＮＭＰオブジェクト識別子１０６は、検出されたデバイスに割り当てられたＳＮＭＰオブジェクト識別子を提供する。これらのエントリの作成および維持はＰＴＤ６６によって実行されるが、これについては以下でより詳細に記載する。
【００３７】
図５は、ミミック・デバイス２０が、ローカル・ネットワーク１４上のレガシー・ネットワーク・プリンタ１５および１６などのレガシー・ネットワーク・デバイスを発見するための発見プロセスを記載するフローチャートである。図５に示されるように、ステップＳ５０１で、ＮＤＭ６４は、ローカル・ネットワーク・インターフェイス・カード２１を介して、ローカル・ネットワーク１４上のレガシー・ネットワーク・プリンタ１５および１６などのレガシー・ネットワーク・デバイスからの、ローカル・ネットワーク１４上のネットワーク・メッセージをリスニングする。具体的には、ＴＣＰ／ＩＰをサポートするイーサネット環境では、ＮＤＭ６４がローカル・ネットワーク１４上のいずれかのデバイスからのフレームについてリスニングする。この様態において、ローカル・ネットワーク１４上のネットワーク・プリンタがそのソースＩＰアドレスを含むＴＣＰ／ＩＰフレームを送信すると、ＮＤＭ６４がそのフレームを取り込む。ＮＤＭ６４はこの機能において無差別的であり、単に、外部ネットワーク１０およびローカル・ネットワーク１４上で検出したすべてのネットワーク・メッセージに対応するフレームをＮＴＣ６５に渡すものであることを、理解されたい。詳細には、ＮＤＭ６４が外部ネットワーク・インターフェイス・ドライバ６２およびローカル・ネットワーク・インターフェイス・ドライバ６３とインターフェイスをとり、それによってフレームを外部ネットワーク１０およびローカル・ネットワーク１４のそれぞれから受信する。
【００３８】
ＮＤＭ６４がフレームをローカル・ネットワーク１４上で検出した後、ステップＳ５０２で、このフレームをＮＴＣ６５に渡す。好ましくは、ＰＴＤ６６が初期化されたとき、規則テーブル７５に配置される汎用取り込み規則を作成する。この汎用取り込み規則は、所与の所定の範囲内のソースＩＰアドレスを有するレガシー・ネットワーク・デバイスからローカル・ネットワーク１４上に送信され、ＮＤＭ６４に渡されたすべてのフレームを取り込むように、ＮＴＣ６５に命令するためのものである。したがって、ステップＳ５０３で、ＮＴＣ６５が、ＮＤＭ６４から渡されたフレームを検査して、当該フレームがその広範な取り込み規則におけるＩＰアドレス範囲内のソースＩＰアドレスを含むかどうかを判断する。そうであった場合、ＮＴＣ６５はそのフレームを取り込み、ソースＩＰアドレスとローカル・ネットワーク１４に対応するイーサネット・アドレスとからなるアドレスのペアを当該フレームから得て、ＰＴＤ６６に送信する（ステップＳ５０３）。
【００３９】
続いて、ステップＳ５０４において、ＰＴＤ６６は目標ディスクリプタ・テーブル７６を検査して、ＮＴＣ６５から渡されたアドレスのペアが含むソースＩＰアドレスが、目標ディスクリプタ・テーブル７６内に目標ディスクリプタとしてエントリされていないかどうかを判断する。そのようなエントリが存在しなかった場合、ＰＴＤ６６は、そのアドレス・ペアからのソースＩＰアドレスを、新たに発見されたレガシー・ネットワーク・プリンタに対応するものとして識別する（ステップＳ５０４）。ステップＳ５０５において、ＰＴＤ６６は、そのアドレス・ペアのソースＩＰアドレスが新たに発見されたレガシー・ネットワーク・プリンタに対応すると判断されたかどうかを照会し、そうでなかった場合、処理はステップＳ５１２に進む。一方、そのアドレス・ペアにおけるソースＩＰアドレスが新たに発見されたレガシー・ネットワーク・プリンタに対応すると判断された場合は、ステップＳ５０６へ進む。ステップＳ５０６では、ローカル・ネットワーク１４上の、そのアドレス・ペアからのソースＩＰアドレスに対応する、新たに発見されたレガシー・ネットワーク・プリンタに対して、ＰＴＤ６６がＳＮＭＰ発見要求を送信する。なお、このＳＮＭＰは、ミミック・デバイス２０からローカル・ネットワーク１４上のレガシー・ネットワーク・デバイスに送信される発見メッセージをサポートするためのプロトコルの一例に過ぎないことに留意されたい。たとえば、ライト・ディレクトリ・アクセス・プロトコル（ＬＤＡＰ）など、他の知られているプロトコルを発見メッセージのために使用することができるし、あるいはメーカ独自のプロトコルを使用することもできる。ＰＴＤ６６もこの時点で、アドレス・ペアからのソースＩＰアドレスおよびイーサネット・アドレスを含む基本目標ディスクリプタ・エントリを目標ディスクリプタ・テーブル７６への入力のために準備しておくことが好ましい。
【００４０】
上記で図３に関連して説明したように、ＰＴＤ６６から送信されたＳＮＭＰ発見要求はＮＤＭ６４に渡される。ＮＤＭ６４は、そのＳＮＭＰ発見要求メッセージが、ローカル・ネットワーク・インターフェイス・カード２１とローカル・ネットワーク１４を介して、対応する新たに発見されたレガシー・ネットワーク・プリンタに送信されるべきであることをルーティング・テーブル７４から判断する。
【００４１】
ステップＳ５０７において、ＰＴＤ６６は、新たに発見されたレガシー・ネットワーク・プリンタからのＳＮＭＰ発見情報を、ＮＤＭ６４およびＮＴＣ６５を介して受信する。新たに発見されたレガシー・ネットワーク・プリンタからのＳＮＭＰ発見情報が、ＩＰネットワーク・マスク、デフォルト・ルータおよびＳＮＭＰデバイスＩＤを含むことが好ましい。対応する新たに発見されたレガシー・ネットワーク・プリンタのためのＳＮＭＰデバイスＩＤにより、ミミック・デバイス２０が、新たに発見されたレガシー・ネットワーク・プリンタの構成およびモデル、および既存の機能能力を判断することができる。この理由のため、デバイス能力テーブル７３は、所与のＳＮＭＰデバイスＩＤと、そのＳＮＭＰデバイスＩＤに対応するネットワーク・プリンタの構成、モデル、機能情報および他の関係情報との間の相互参照を提供する。
【００４２】
ステップＳ５０８で、ＰＴＤ６６は、新たに発見されたレガシー・ネットワーク・プリンタから受信されたＳＮＭＰ発見情報に基づいて、新しい目標ディスクリプタ・エントリを目標ディスクリプタ・テーブル７６に作成する。前述したように、この時点で、すでにＰＴＤ６６は、新たに発見されたレガシー・ネットワーク・プリンタのＩＰアドレスおよびイーサネット・アドレスを含む基本目標ディスクリプタ・エントリをセットアップしておくことが好ましい。そして、ＰＴＤ６６は、その新たに発見されたレガシー・ネットワーク・プリンタに対応する基本目標ディスクリプタ・エントリの残りのフィールドを、受信されたＳＮＭＰ発見情報により満たす。この様にして、ローカル・ネットワーク１４上のレガシー・ネットワーク・プリンタ１５および１６などのような、発見された各レガシー・ネットワーク・デバイスに対応する目標ディスクリプタ・エントリが目標ディスクリプタ・テーブル７６に存在することになる。目標ディスクリプタ・エントリは、発見された各レガシー・ネットワーク・デバイスに到達するために必要なアドレス情報を含むとともに、ＳＮＭＰデバイスＩＤも含む。このＳＮＭＰデバイスＩＤにより、当該レガシー・ネットワーク・デバイスの識別および機能能力に関係した情報を導出することが可能となる。
【００４３】
ステップＳ５０９において、ＰＴＤ６６はミミック・デバイス２０における他のモジュールに、新しい目標ディスクリプタ・エントリが目標ディスクリプタ・テーブル７６に加入されたことを通知する。ＰＴＤ６６によるこの通知は、予めこのようなイベントが通知されるようにＰＴＤ６６にサブスクライブしているミミック・デバイス２０内の全てのモジュールに対して、新しい目標ディスクリプタ・エントリを発行することによって実行するのが好ましい。たとえば、アプリケーション・マネージャ・モジュール７８が、その初期化においてＰＴＤ６６をサブスクライブし、目標ディスクリプタ・テーブル７６において生成かつ加入された各目標ディスクリプタ・エントリを受信するようにする。このようにして、アプリケーション・マネージャ・モジュール７８は、ローカル・ネットワーク１４上の新たに発見されたレガシー・ネットワーク・デバイスの通知を受けることが可能となり、これによって新たに発見されたレガシー・ネットワーク・デバイスの機能能力を増強するために必要なアプリケーションを開始させることができる。たとえば、ＰＴＤ６６が、レガシー・ネットワーク・プリンタ１５が新たに発見されたデバイスであると判断した場合、ＰＴＤ６６が新しい目標ディスクリプタ・エントリを、前述のＳＮＭＰ発見を実行した後に生成する。そして、アプリケーション・マネージャ・モジュール７８に、レガシー・ネットワーク・プリンタ１５に対応する新しい目標ディスクリプタ・エントリを通知する。この例では、次いでアプリケーション・マネージャ・モジュール７８が、デバイス能力テーブル７３を参照してレガシー・ネットワーク・プリンタ１５の機能能力を増強するために必要であるアプリケーションを選択し、開始する。例えば、レガシー・ネットワーク・プリンタ１５が本来的に電子メール印刷能力をサポートしない場合、アプリケーション・マネージャ・モジュール７８が電子メール印刷アプリケーション・モジュール７１に、このサービスをレガシー・ネットワーク・プリンタ１５に代わって実行するように命令する（ステップＳ５１０）。好ましくは、所与のレガシー・ネットワーク・デバイスに代わって動作するミミック・デバイス２０内の各アプリケーションが、そのデバイスに代わってフレームを受信するためのソケットを開く。本発明のこの態様の詳細については、他の図面を参照してさらに後述する。
【００４４】
次に、ステップＳ５１１で、ＮＤＭ６４は、新たに発見されたレガシー・ネットワーク・プリンタのＩＰアドレスおよびイーサネット・アドレスからなるアドレス・ペアに基づいて、新しいエントリをルーティング・テーブル７４に作成する。この後、発見されたレガシー・ネットワーク・プリンタのＩＰアドレスに対応する宛先アドレスを含む出力フレームをＮＤＭ６４が受信すると、ＮＤＭ６４はルーティング・テーブル７４に基づいて、そのフレームをローカル・ネットワーク・インターフェイス・カード２１とローカル・ネットワーク１４を介して、ＩＰアドレスに対応する当該発見されたレガシー・ネットワーク・プリンタに送信されるべきであると判断するようになる。ステップＳ５１２では、発見された各レガシー・ネットワーク・プリンタの現在の状態を検証するために、ＰＴＤ６６が定期的ポール発見メッセージを、目標ディスクリプタ・テーブル７６内に目標ディスクリプタ・エントリを有する各レガシー・ネットワーク・プリンタへ送信する。このステップの詳細については、図６を参照してさらに論ずる。その後、処理ははステップＳ５１３へ進み、ステップＳ５１３がら戻る。
【００４５】
図６は、図５に示したフローチャートのステップＳ５１２において実行される定期的ポーリング発見を説明するためのフローチャートである。最初に、ステップＳ５１２で、ＰＴＤ６６は、レガシー・ネットワーク・プリンタ１５および１６などの、目標ディスクリプタ・エントリを目標ディスクリプタ・テーブル７６に有する各レガシー・ネットワーク・デバイスへ、定期的ＳＮＭＰ発見要求を送信する。このＳＮＭＰ発見要求は、ローカル・ネットワーク１４上の各レガシー・ネットワーク・デバイスの最初の発見に関して上述したものと同じである。次に、ステップＳ６０１において、ＰＴＤ６６は、レガシー・ネットワーク・プリンタ１５および１６などの、定期的発見要求に応答する各レガシー・ネットワーク・デバイスからＳＮＭＰ発見情報を受信する（ステップＳ６０１）。ステップＳ６０２で、ＰＴＤ６６が、定期的ＳＮＭＰ発見要求が送信されているレガシー・ネットワーク・デバイスのいずれかにおいて非応答状態があったかどうかを判断する。非応答状態があった場合、応答しなかったレガシー・ネットワーク・デバイスに対応する目標ディスクリプタ・エントリが、目標ディスクリプタ・テーブル７６から除去される（ステップＳ６０３）。対応する目標ディスクリプタ・エントリが、定期的発見ポーリングの結果として作成あるいは検証されたときに、ＰＴＤ６６が目標ディスクリプタ・テーブル７６における各目標ディスクリプタ・エントリに対応する満了タイマを設定するように構成することが好ましい。
【００４６】
非応答状態が発生した場合、ＰＴＤ６６は、単純に、応答しないレガシー・ネットワーク・デバイスのための目標ディスクリプタ・エントリに対応する満了タイマを更新しないだけである。そして、サービスが定期的に、満了タイマが満了しているすべての目標ディスクリプタ・エントリの目標ディスクリプタ・テーブル７６を一掃する。この方法において、レガシー・ネットワーク・デバイスが定期的発見ポーリングに応答することができなかったときに、目標ディスクリプタ・テーブル７６内のそれらデバイスに対応する目標ディスクリプタ・エントリが除去される。次に、ステップＳ６０４で、定期的発見要求に応答して応答する各レガシー・ネットワーク・デバイスから受信されたＳＮＭＰ発見情報が、目標ディスクリプタ・テーブル７６において対応する各目標ディスクリプタ・エントリにおけるデータと比較される。ステップＳ６０５において、応答する各レガシー・ネットワーク・デバイスに関して、対応する目標ディスクリプタ・エントリのデータが変更されているかどうかを、定期的ＳＮＭＰ発見要求に応答して受信されたＳＮＭＰ発見情報に基づいて判断する。情報が変更されていた場合、処理はステップＳ６０６へ進み、対応するレガシー・ネットワーク・デバイスのための目標ディスクリプタ・エントリが、定期的ＳＮＭＰ発見要求に応答してレガシー・ネットワーク・デバイスから発行され、当該ミミック・デバイスに受信されたＳＮＭＰ発見情報における新しい情報で修正される。ステップＳ６０７で、ＰＴＤ６６はミミック・デバイス２０内の他のモジュールに、修正かつ削除された各目標ディスクリプタ・エントリを通知する。この通知は上述したように実行される。すなわち、予めこのような通知を受信するようにＰＴＤ６６をサブスクライブしているミミック・デバイス２０内の各モジュールに対して、上述の変更された目標ディスクリプタ・エントリが発行される。次いで、流れが進み、ステップＳ６０８で戻る。
【００４７】
図７は、規則テーブル７５を示す図である。規則テーブル７５は、ミミック・デバイス２０によって受信されたフレーム及び送信されたフレームの処理において、ＮＴＣ６５によって利用されるいくつかの規則のテーブルを含む。この実施形態では、４つの規則テーブルが規則テーブル７５において定義されるが、追加の規則テーブルを存在させることもできる。ＩＮテーブル１１０は、フレームがミミック・デバイス２０によって受信されるとき、ＮＴＣ６５によってそのフレームに適用される規則を含む。ＯＵＴテーブル１１１は、ミミック・デバイス２０から送信されるべきフレームをＮＤＭ６４に送信する前に、ＮＴＣ６５によってそのフレームに適用される規則を含む。マップ・ローカル・テーブル（MAP LOCAL TABLE）１１２は、ＩＮテーブル１１０内に含まれたサブテーブルであり、ＴＡＴ６９によるポート割り当て管理のために利用される。マップ外部テーブル（MAP EXTERNAL TABLE）１１４はＯＵＴテーブル１１１内に含まれたサブテーブルであり、これもＴＡＴ６９によるポート割り当て管理のために利用される。
【００４８】
図８Ａは、ＩＮテーブル１１０を３つのテーブル・エントリのサンプルと共に示した図である。各エントリは、フレームの処理においてＮＴＣ６５によって使用されるいくつかのパラメータに基づいて規則を定義する。パラメータ・テーブル１２０は、その規則が見い出されるテーブルを識別する。可能なテーブルは、ＩＮテーブル１１０およびＯＵＴテーブル１１１、ならびに、マップ・ローカル・テーブル１１２などのいかなるサブテーブルをも含む。タイムアウト１２１のパラメータは、持続時間を提供することができ、その満了により当該規則はテーブルから除去される。別の方法では、タイムアウト１２１のパラメータをＳＴＡＴＩＣとして設定することができる。この場合、その特定の規則は、機能モジュールがその除去を要求するまでテーブル上に残る。
【００４９】
各規則は、ディスクリミネータのセット（ソースＩＰ１２２、宛先ＩＰ１２４、ソース・ポート１２５および宛先ポート１２６）、およびアクション１２８によって定義される。ＮＴＣ６５がフレームをディスクリミネータに対して比較し、合致が起こった場合、指定されたアクション１２８が実行される。この実施形態では、ソースＩＰ１２２、宛先ＩＰ１２４、ソース・ポート１２５および宛先ポート１２６の４つのディスクリミネータが定義されている。ソースＩＰ１２２およびソース・ポート１２５は、フレームのソースのＩＰアドレスおよびポート番号を含むことができる。宛先ＩＰ１２４および宛先ポート１２６は、フレームのための宛先のＩＰアドレスおよびポート番号を含むことができる。ディスクリミネータのためのエントリとして、特定の値またはドレス（ＩＰアドレスまたはポート番号）、すべての可能な値と合致するワイルドカード（アスタリスク）、または特定の範囲の可能な値と合致するマクロ（たとえば、［Ｌ０ＣＡＬ］は、ローカル・ネットワーク１４上で検出されたいずれかのアドレスとの合致を発見する）のいずれかを用いることができる。なお、この実施形態では４つのディスクリミネータを利用するが、フレームのプロトコルおよびソース・インターフェイスなど、追加のディスクリミネータも使用することができる。
【００５０】
フレームと規則のディスクリミネータの間で合致を発見すると、指定されたアクション１２８が実行される。たとえば、アクション１２８がＣＡＰＴＵＲＥであった場合は、フレームが取り込まれ、更なる処理のために、ＰＴＤ６６などの機能モジュールの１つに提供される。また、ＢＲＡＮＣＨであった場合は、フレームが、ＢＲＡＮＣＨアクションにおいて指定されたサブテーブルを使用して処理される。また、ＲＥＤＩＲＥＣＴであった場合は、フレームが、ミミック・デバイス２０内のアプリケーション・モジュールのうちの１つに送信される。さらに、アクション１２８がＡＣＣＥＰＴであった場合は、ミミック・デバイス２０による更なる処理なしに、フレームはミミック・デバイス２０を通過させられる。なお、上記以外のアクションについても、ミミック・デバイス２０内で受信されたフレームを処理するために定義かつ利用することができる。
【００５１】
図８ＢはＯＵＴテーブル１１１を示し、これはＩＮテーブル１１０と同じ方法においてセットアップされる。各規則エントリを定義するパラメータは、図８Ａに関連して上述したものと同じであり、したがってこれらには同じ参照番号が付されている。ＯＵＴテーブル１１１はＩＮテーブル１１０と同じ方法において構成されるので、ＯＵＴテーブル１１１の詳細な構成の説明は省略する。
【００５２】
図９は、ＮＴＣ６５によって、ミミック・デバイス２０によって受信されたフレームにおいて実行される処理の概要を示すフローチャートである。ステップＳ９０１で、フレームが、外部ネットワーク・インターフェイス３２またはローカル・ネットワーク・インターフェイス３１などのネットワーク・インターフェイスのうちの１つによって受信される。メッセージを受信すると、ＮＤＭ６４がＮＴＣ６５に、フレームを処理するための準備ができたことを通知する。ステップＳ９０４では、受信されたフレームがＮＴＣ６５によって、ＩＮテーブル１１０内に含まれた規則を使用して処理される。ここで、ＩＮテーブル１１０の適用において、当該フレームがＮＴＣ６５によってドロップあるいはリダイレクトされなかった場合、ステップＳ９０５で、ＮＴＣ６５によるフレームの処理はシフトされ、ステップＳ９０６で、ＯＵＴテーブル１１１に含まれた規則を使用して実行される。そうでない場合、ステップＳ９０５で、ＮＴＣ６５による処理が停止され、ステップＳ９０８で、ＮＴＣ６５は次のフレームを待機する。また、ステップＳ９０２では、セキュア・プリンティング・アプリケーション・モジュール７０などのアプリケーション・モジュールからのフレームがＮＴＣ６５によって受信される。次いで、ステップＳ９０６において、ＮＴＣ６５は、ＯＵＴテーブル１１１内に含まれた規則を使用してフレームの処理を進行する。ステップＳ９０６の処理が完了すると、ステップＳ９０８で、ＮＴＣ６５が再度次のフレームを待機する。
【００５３】
図９の記載においては、ＮＴＣ６５がＩＮテーブル１１０などの規則テーブルをフレームの処理において適用することを簡単に記載した。図１０は、受信されたフレームを、特定の規則テーブル内に含まれた規則を使用して処理するプロセスをより詳細に示すフローチャートである。ステップＳ１００１で、ＮＴＣ６５は受信されたフレームの処理を開始する。通常、この開始は、図９に示したような全体的な処理において、ＮＴＣ６５が、受信されたフレームを特定の規則テーブルを使用して処理する段階に到達したときに起こる。ステップＳ１００２で、ＮＴＣ６５は、フレームが規則テーブルの第１の規則内に含まれたディスクリミネータに合致するかどうかを判断する。これらのディスクリミネータがフレームと合致しなかった場合、ステップＳ１００４で、ＮＴＣ６５で規則テーブルを使用した処理が完了したかどうかが判断される。処理が完了していなかった場合、ステップＳ１００５において、ＮＴＣ６５は規則テーブルにおいて次の規則へ継続し、ステップＳ１００２へ戻り、フレームがその規則のディスクリミネータに合致するかどうかを判断する。一方、ＮＴＣ６５で規則テーブルを使用した処理が完了した場合は、ステップＳ１０１０で、処理が、図９において示した全体的な処理に戻される。
【００５４】
ステップＳ１００２において、規則において定義されたディスクリミネータに当該フレームが合致するとＮＴＣ６５が判断した場合、ステップＳ１００６で、その規則に関連付けられたアクションが実行される。ステップＳ１００６で、その規則に関連付けられたアクションが実行された後、ステップＳ１００８で、規則テーブルを使用した処理が完了されたかどうかが判断される。規則テーブルを使用した処理が完了していなかった場合は、ステップＳ１００９において、ＮＴＣ６５が規則テーブルにおける次の規則へ進行する。そして、ステップＳ１００２へ戻り、その規則のディスクリミネータをフレームと比較する。一方、規則テーブルを使用した処理が完了した場合、ステップＳ１０１０で、ＮＴＣ６５は再度全体の処理に戻る。ＮＴＣ６５が、特定の規則テーブルを使用してフレームを処理するために呼び出されるときは、ＮＴＣ６５が関連する規則テーブルを、上述のように探索（トラバース）する。
【００５５】
図１１は、ＮＤＭ６４によって、どのネットワーク・インターフェイスによってフレームを伝送するかを判断するのに利用される、ルーティング・テーブル７４を示す。ルーティング・テーブル７４における各エントリは、宛先１４０、ネットマスク１４１、ゲートウェイ１４２、デバイス１４４および注記１４５などのいくつかのパラメータを使用して定義される。これらのパラメータはテーブルにおいて特定のエントリを記述するものである。各パラメータの詳細な定義および機能は当業者には周知であり、したがって本明細書では説明を省略する。
【００５６】
図１２は、ＤＰＲ６７によって実行される処理を示すフローチャートである。ステップＳ１２０１において、ＤＰＲ６７は、ミミック・デバイス２０におけるアプリケーション・モジュールを初期化し、ソケットについて動作を開始するまで待機する。ステップＳ１２０２では、電子メール印刷アプリケーション・モジュール７１などのアプリケーションが実行を開始し、ネットワークを介した通信のためにソケットを生成する。アプリケーションが、ネットワークを介した通信のためのソケットを開く際に、このソケットを開くための機能が呼び出される。これらの機能のうち１つが呼び出されるとき、ステップＳ１２０４で、ＤＰＲ６７にソケット生成が通知される。
【００５７】
アプリケーションが通信のためのソケットを開くとき、アプリケーションによって開かれたソケットを定義するためのエントリが、ソケット・ディスクリプタを含むソケット・ライブラリ７７に対して行われる。ステップＳ１２０５で、ＤＰＲ６７はソケット・ディスクリプタをソケット・ライブラリ７７から読み取り、新しいソケットのパラメータを決定する。ステップＳ１２０８において、ＤＰＲ６７は、新しいソケットに対応するソケット・ディスクリプタに基づいてＮＴＣ６５におけるリダイレクト規則を構築する。このリダイレクト規則を利用して、ＮＴＣ６５は、ミミック・デバイス２０によって受信されたフレームを、このフレームをローカル・ネットワーク１４上のデバイスへ渡すのではなく、ミミック・デバイス２０上で動作するアプリケーションへリダイレクトする。
【００５８】
ステップＳ１２０９において、ＤＰＲ６７は、ソケットが閉じられるまで待機する。ＤＰＲ６７は、ソケットを閉じる機能が呼び出されるまで待機するようにしてもよいし、あるいは、ＤＰＲ６７が、ソケットが開かれたときから計測される指定された時間の期間を待機するようにしてもよい。ソケットが閉じられた後、ステップＳ１２１０において、ＤＰＲ６７は、閉じられたソケットに対応するリダイレクト規則をＮＴＣ６５から除去する。上述の方法によれば、ＤＰＲ６７は、ミミック・デバイス２０がローカル・ネットワーク１４上のデバイスの能力を増強させている場合において、外部ネットワーク１０から受信されたあらゆるトラフィックがミミック・デバイス２０上で動作するアプリケーション・モジュールに宛てられることを保証することができる。
【００５９】
図１３は、ＴＡＴ６９によって実行される処理を示すフローチャートである。ステップＳ１３０１において、ＴＡＴ６９は処理のために初期化をし、準備をする。ステップＳ１３０２において、ＴＡＴ６９はブランチおよび取り込み規則をＮＴＣ６５に構築する。ＴＡＴ６９は、特定の受信されたフレームをマップ・ローカル・テーブル１１２にダイレクトさせるために、ブランチ規則をＩＮテーブル１１０に構築する。加えて、ＴＡＴ６９は、特定のフレームをマップ外部テーブル１１４へダイレクトさせるために、ブランチ規則をＯＵＴテーブル１１１に構築する。加えて、ＴＡＴ６９は、特定のフレームを取り込むために、取り込み規則をマップ・ローカル・テーブル１１２内に構築する。マップ・ローカル・テーブル１１２において構築されたこの取り込み規則は、ローカル・ネットワーク１４上のデバイスから受信されたすべてのフレームを、動的ポート・アドレスを使用して取り込む。
【００６０】
ステップＳ１３０４において、ＮＴＣ６５は処理のためのフレームをＮＤＭ６４から受信する。ステップＳ１３０５では、その受信されたフレームがローカル・ネットワークからのものであるか、および、それが動的ポート・アドレスを含んでいるかどうかが判断される。そのフレームがローカル・ネットワークからのものであり、かつ動的ポート・アドレスを含んでいる場合、ステップＳ１３０８において、ＴＡＴ６９によって生成されたブランチ規則により、フレーム処理をマップ・ローカル・テーブル１１２に分岐させる。一方、受信されたフレームがローカル・ネットワークからのものでなく、かつ／または動的ポート・アドレスを含んでいない場合は、ステップＳ１３０６で、ＮＴＣ６５が通常のフレーム処理を遂行する。そして、ステップＳ１３１４に進んで、ＴＡＴ６９は待機状態に戻る。
【００６１】
上述したように、ステップＳ１３０８で、受信されたフレームがローカル・ネットワークからのものであり、かつ動的ポート・アドレスを有すると判断された場合、ＮＴＣ６５がマップ・ローカル・テーブル１１２に分岐する。そして、ステップＳ１３０９において、ＮＴＣ６５はマップ・ローカル・テーブル１１２をトラバースし、当該フレームが、そのテーブル内の既存のマップ規則のディスクリミネータに合致するかどうかを判断する（ならびに、マップ・ローカル・テーブル１１２内に含まれた他のいずれかの規則との合致があるかどうかを判断し、合致した規則に関する規則のアクションを実行する）。ディスクリミネータの合致があった場合、ステップＳ１３１０で、マップ規則が実行され、ステップＳ１３１４で、ＴＡＴ６９が次のフレームのための待機状態に戻る。これに対して、フレームのディスクリミネータに対応する既存のマップ規則がなかった場合は、ステップＳ１３１１へ進み、ＴＡＴ６９がそのフレームのための新しい動的アドレスを割り当てる。
【００６２】
新しい動的アドレスをフレームに割り当てることにおいて、ＴＡＴ６９は自分自身の、未使用のポート番号の内部リストを利用することができる。また、別法では、ＴＡＴ６９がダミー・ソケットを生成し、ミミック・デバイス２０のネットワーク・スタックによって割り振られた新しいポート番号を受信し、その新しい動的アドレスを処理されているフレームのために利用することができる。ステップＳ１３１２において、ＴＡＴ６９は、新たに割り当てられた動的アドレスに対応するマップ規則を構築する。ＴＡＴ６９は、元のポート番号を含むフレームが処理されるときに、マップ・ローカル・テーブル１１２に、フレームの既存のポート・アドレスを新たに割り振られたポート・アドレスにマップするマップ規則を構築する。また、ＴＡＴ６９は、マップ外部テーブル１１４において、新しい動的アドレスを含むフレームを外部ネットワークから受信した場合に、新たに割り振られた動的アドレスを、元の動的ポート・アドレスに戻すようにマップするマップ規則を構築する。マップ規則の構築が完了すると、ステップＳ１３１０において、新たに作成されたマップ規則が、処理中の現在のフレームについて実行され、ステップＳ１３１４で、ＴＡＴ６９が次のフレームのための待機状態に戻る。
【００６３】
マップ・ローカル・テーブル１１２およびマップ外部テーブル１１４内に含まれた規則は、ＮＴＣ６５によって利用されるものであり、端末アクションを含まないことが好ましい。したがって、ＴＡＴ６９はフレームを処理し、次いで処理をＮＴＣ６５に戻す。それにより、ＮＴＣ６５によって実行される汎用処理を干渉することなく、動的ポート・アドレスを利用して、フレームにおけるアドレス変換を透過的に実行する。なお、他のサブテーブルを、これらを必要とするいかなるアプリケーションによっても生成することができることに留意されたい。これらのサブテーブルは、ＴＡＴ６９によって使用されたサブテーブルとは異なり、端末アクションを含むことができる。
【００６４】
図１４は、ミミック・デバイス２０がフレームを外部ネットワーク１０から受信するとことによって着手するプロセスを示すフローチャートである。ステップＳ１４０１で、ＮＤＭ６４がフレームを外部ネットワーク１０から受信し、ＮＴＣ６５に、フレームが処理のために使用可能であることを通知する。受信されたフレームの通知を受信すると、ステップＳ１４０２において、ＮＴＣ６５はフレームの処理を開始する。これは、図９を使用して記載したように、規則テーブル７５内の規則テーブルにそのフレームを適用することによって行われる。ステップＳ１４０４において、フレームを規則テーブル７５に適用する場合、処理中にどの規則がＮＴＣ６５によってフレームに適用されるかに応じて、フレームを通過あるいはリダイレクトさせることができる。フレームがリダイレクトされない場合、ステップＳ１４０５において、ＮＴＣ６５はフレームをＮＤＭ６４へ戻す。そしてステップＳ１４０６において、ＮＤＭ６４は、フレームによって指示されている通りに、そのフレームをローカル・ネットワーク上のデバイスへ、ローカル・ネットワーク・インターフェイス３１を介して渡す。フレームがＮＤＭ６４によって渡された後、ステップＳ１４１０で、処理が待機状態に戻される。
【００６５】
他方、ステップＳ１４０４で、ＮＴＣ６５によって適用された規則がフレームをリダイレクトするものであった場合は、ＮＴＣ６５がフレームを、ミミック・デバイス２０上で動作する適切なアプリケーション・モジュールへ、規則のアクションによって指示されたとおりに転送する。ステップＳ１４０９では、ミミック・デバイス２０上のフレームを受信したアプリケーション・モジュールが、そのフレームを処理する。アプリケーション・モジュールによる処理が完了された後、ステップＳ１４１０で、処理が待機状態に戻される。
【００６６】
図１５は、ミミック・デバイス２０におけるアプリケーションが、外部ネットワーク１０またはローカル・ネットワーク１４のいずれかにおけるデバイスと通信する方法を説明するフローチャートである。たとえば、電子メール印刷アプリケーション・モジュール７１が電子メール印刷機能をレガシー・ネットワーク・プリンタ１５に代わってサポートしている場合、電子メール印刷アプリケーション・モジュール７１は、外部ネットワーク１０におけるワークステーション１２などの要求側クライアントと通信する必要がある可能性があり、また、印刷ジョブをレガシー・ネットワーク・プリンタ１５にスプールするためにローカル・ネットワーク１４上のレガシー・ネットワーク・プリンタ１５と通信する必要もある可能性がある。したがって、電子メール印刷アプリケーション・モジュール７１によって準備されたネットワーク・メッセージを、適切なネットワーク上の所望のデバイスへ適切にアドレス指定する必要があり、出力メッセージにおけるソースＩＰアドレスも、所望の透過性の効果を達成するために設定されなければならない。図１５のフローチャートにおいて示した例は、セキュア・プリンティング・アプリケーション・モジュール７０からの出力メッセージについてのものである。
【００６７】
ステップＳ１５０１において、セキュア・プリンティング・アプリケーション・モジュール７０は、ワークステーション１２など、外部ネットワーク１０上の要求側クライアント・デバイスへの応答メッセージ、あるいは、レガシー・ネットワーク・プリンタ１５への印刷スプール・メッセージとする出力用メッセージを準備することができる。ステップＳ１５０２において、セキュア・プリンティング・アプリケーション・モジュール７０は、出力メッセージをＮＴＣ６５に送信する。次いで、ＮＴＣ６５は、出力メッセージがどのようにアドレス指定されるべきであるかを判断するために、当該出力メッセージを規則テーブル７５のｏｕｔ規則テーブルに適用する（ステップＳ１５０３）。ステップＳ１５０４では、その出力メッセージが要求側クライアント・ネットワーク・デバイスにダイレクトされるものかどうかが、ｏｕｔ規則テーブルに基づいて判断される。そうであった場合、処理はステップＳ１５０５へ進み、セキュア・プリンティング・アプリケーション・モジュール７０は、代行動作している対象のレガシー・ネットワーク・プリンタのＩＰアドレスを、その出力メッセージにおけるソースＩＰアドレスとして使用する。このようにすることで、要求側クライアント・ネットワーク・デバイスによって受信された応答メッセージにおけるソースＩＰアドレスは要求された印刷機能を実行中であるレガシー・ネットワーク・プリンタのソースＩＰアドレスを含むことになり、このため、ミミック・デバイス２０の存在は要求側クライアント・ネットワーク・デバイスに対しては透過的となる。次に、ステップＳ１５０５の後、出力メッセージはＮＤＭ６４に送信される。ＮＤＭ６４は、ルーティング・テーブル７４を利用して、その出力メッセージが、外部ネットワーク・インターフェイス・カード２２及び外部ネットワーク１０を介して、ワークステーション１２など、要求側クライアント・ネットワーク・デバイスに送信されなければならないことを判断する（ステップＳ１５０６）。次いで、流れが進み、ステップＳ１５１５で戻る。
【００６８】
ステップＳ１５０４で、セキュア・プリンティング・アプリケーション・モジュール７０からの出力メッセージが要求側クライアント・ネットワーク・デバイスにダイレクトされないと判断された場合、処理はステップＳ１５０７へ進み、その出力メッセージが、レガシー・ネットワーク・プリンタ１５など、セキュア・プリンティング・アプリケーション・モジュール７０が代行動作の対象としているレガシー・ネットワーク・デバイスにダイレクトされるかどうかが判断される。ステップＳ１５０７において、出力メッセージが対応するレガシー・ネットワーク・デバイスにダイレクトされると判断された場合、処理はステップＳ１５０８へ進み、出力メッセージをレガシー・ネットワーク・デバイスに対して透過的にする必要があるかどうかが判断される。すなわち、出力メッセージにおけるソースＩＰアドレスに要求側クライアント・ネットワーク・デバイスのＩＰアドレスを含ませて、ローカル・ネットワーク１４上のレガシー・ネットワーク・デバイスが、メッセージをミミック・デバイス２０からではなく直接要求側クライアント・ネットワーク・デバイスから受信中であると信じるようにさせるべきであるかどうかが判断される。ステップＳ１５０８で、出力メッセージがレガシー・ネットワーク・デバイスに対して透過的であるべきであると判断された場合、処理はステップＳ１５０９へ進み、要求側クライアント・ネットワーク・デバイスのＩＰアドレスが、レガシー・ネットワーク・デバイスへの出力メッセージにおけるソースＩＰアドレスとして使用される。この場合、次いで処理がステップＳ１５１１へ進み、出力メッセージがＮＤＭ６４へ送信される。ＮＤＭ６４は、ルーティング・テーブル７４を利用して、出力メッセージがローカル・ネットワーク・インターフェイス・カード２１とローカル・ネットワーク１４を介して、対応するレガシー・ネットワーク・デバイスへ送信されるべきであることを判断する。そして、処理が進み、ステップＳ１５１５で戻る。
【００６９】
ステップＳ１５０８で、出力メッセージをレガシー・ネットワーク・デバイスに対して透過的にすることが必要でないと判断された場合、処理はステップＳ１５１０へ進み、ローカル・ネットワーク・インターフェイス・カード２１のＩＰアドレスが、出力メッセージにおけるソースＩＰアドレスとして使用される。この場合、上述のように、ローカル・ネットワーク・インターフェイス・カード２１に、あらかじめ登録されたＩＰアドレスが割り当てられることが好ましい。これは、ローカル・ネットワーク１４または外部ネットワーク１０のいずれかにおけるいずれかの他のデバイスとの競合を回避するためである。なお、複数のミミック・デバイスが外部ネットワーク１０上に存在する場合に、各ミミック・デバイスが、あらかじめ設定された同じＩＰアドレスを、それぞれのローカル・ネットワークを介しての通信のために使用することができることに留意されたい。これは各ローカル・ネットワークが外部ネットワーク１０から切り離されており、したがってＩＰアドレス競合が回避されるからであ。この方法において、各ミミック・デバイスは、別々のＩＰアドレスがネットワーク・アドミニストレータによってそれに割り当てられることを必要とせず、それにより、外部ネットワーク１０上の他のデバイスのための貴重なＩＰアドレスが節約される。ステップＳ１５１０の後、処理はステップＳ１５１１へ進み、出力メッセージがＮＤＭ６４に送信される。ＮＤＭ６４は、ルーティング・テーブル７４を利用し、出力メッセージを、ローカル・ネットワーク・インターフェイス・カード２１とローカル・ネットワーク１４を介して、レガシー・ネットワーク・プリンタ１５など、対応するレガシー・ネットワーク・デバイスに送信する。次いで、処理が進み、ステップＳ１５１５で戻る。
【００７０】
ステップＳ１５０７で、出力メッセージが対応するレガシー・ネットワーク・デバイスにダイレクトされないと判断された場合、処理はステップＳ１５１２へ進み、出力メッセージがミミック・デバイス７０において存在する別のアプリケーションへダイレクトされるかどうかが判断される。たとえば、ワークステーション１２など、外部ネットワーク１０上のクライアント・ネットワーク・デバイスからの要求が、レガシー・ネットワーク・プリンタ１５上のセキュア印刷ジョブの電子メール印刷のための要求である可能性がある。このような場合、印刷ジョブは、電子メール印刷アプリケーション・モジュール７１およびセキュア・プリンティング・アプリケーション・モジュール７０のサービスを必要とする。したがって、電子メール印刷アプリケーション・モジュール７１は、レガシー・ネットワーク・プリンタ１５へ印刷のために送信する前に、セキュア・プリンティング・アプリケーション・モジュール７０と通信して解読された電子メール印刷ジョブを完了させることが必要となる。したがって、前述のアプリケーションのうちの１つによって出力メッセージが準備され、次いでミミック・デバイス２０内で処理されて、それが他の所望のアプリケーションへ処理のために送信され戻されるようになる。具体的には、出力メッセージがミミック・デバイス２０における別のアプリケーションにダイレクトされると判断された場合、処理はステップＳ１５１３へ進み、出力メッセージの宛先ＩＰアドレスが外部ネットワーク・インターフェイス・カード２２のＩＰアドレスに設定され、出力メッセージのソースＩＰアドレスが要求側クライアント・ネットワーク・デバイスのＩＰアドレスに設定される。この方法において、外部ネットワーク・インターフェイス・カード２２に対応する値を有する宛先ＩＰアドレスは、ルーティング・テーブル７４と関連して、当該出力メッセージがミミック・デバイス２０内に保たれるべきであることを通知する。加えて、要求側クライアント・ネットワーク・デバイスの値を有する出力メッセージにおけるソースＩＰアドレスにより、出力メッセージが透過性を有することができ、電子メール印刷アプリケーション・モジュール７１など、ミミック・デバイス２０内の受信側アプリケーションは、それがメッセージを要求側クライアント・ネットワーク・デバイスから直接受信したものと認識するようになる。
【００７１】
ステップＳ１５１３の後、処理はステップＳ１５１４へ進み、出力メッセージがＮＤＭ６４に送信される。ＮＤＭ６４は、ルーティング・テーブル７４を調べ、次いで、外部ネットワーク・インターフェイス・カード２２の値を有する出力メッセージにおける宛先ＩＰアドレスに基づいて、出力メッセージをＮＴＣ６５へ戻すようにループさせる。そして、ＮＴＣ６５は、今度は、出力メッセージを、電子メール印刷アプリケーション・モジュール７１など、所望のアプリケーションへダイレクトする。このことに関して、ＮＴＣ６５が出力メッセージをミミック・デバイス２０における所望のアプリケーションへダイレクトすることができるように、その出力メッセージが所望の宛先アプリケーションに対応するポート識別子を含むことについて、さらに説明する。たとえば、出力メッセージは電子メール印刷のサービスを要求することができ、したがって、その出力メッセージは電子メール印刷アプリケーション・モジュール７１に対応するポート識別子をその中に有するようになる。したがって、出力メッセージが上述のようにＮＤＭ６４からＮＴＣ６５へ戻るようにループされるとき、ＮＴＣ６５は、出力メッセージが電子メール印刷アプリケーション・モジュール７１へダイレクトされることを知る。ステップＳ１５１４の後、処理が進み、ステップＳ１５１５で戻る。
【００７２】
上の考察および添付の図面に基づいて、本発明が、既存のレガシー・ネットワーク・デバイスの機能能力を透過的な様式において増強するための、汎用の効率的な方法を提供することが理解されよう。したがって、本発明は、ネットワーク・プリンタなどのレガシー・ネットワーク・デバイスを、新しいエンタープライズ機能のためのサポートを提供するために、より新しいバージョンと置き換えるための必要性を低減させる。加えて、レガシー・ネットワーク・デバイスにアドレス指定されたネットワーク・メッセージに応答することによって、ミミック・デバイスがレガシー・ネットワーク・デバイスに代わって動作するので、最小限の構成の労力しかシステム・アドミニストレータの側においては必要とされない。
【００７３】
また、上述のミミック・デバイスは、レガシー・ネットワーク・プリンタの機能能力を増強することに限定されるものではなく、ネットワーク・コピー機、ネットワーク・スキャナ、ネットワーク・ワークステーションおよび他のネットワーク・デバイスにも適用することが可能であることを理解されたい。加えて、上述のミミック・デバイスは、ネットワーク・デバイスの機能増強に限定されず、これを容易に、他の機能を実行するように構成することもできる。上述の規則テーブルに含まれた規則を、アプリケーション・マネージャおよびミミック・デバイスにおいて存在するアプリケーションによって容易に構成して、ミミック・デバイスが様々な異なる機能を実行できるようにすることができる。
【００７４】
特定の一実施形態では、ミミック・デバイスを使用することにより、ネットワーク接続機能を本来的に有していないデバイスに、ネットワーク接続性を提供することができる。この実施形態では、ローカル・ネットワーク１４がユニバーサル・シリアル・バス（ＵＳＢ）ネットワークまたは別のタイプのシリアル・ネットワークとなり、ローカル・ネットワーク・インターフェイス・カード２１がＵＳＢ接続性をサポートする。この場合、規則は、ＵＳＢローカル・ネットワーク１４上のプリンタに割り当てられたＩＰアドレスにダイレクトされる、外部ネットワーク１０からのネットワーク・メッセージに代わって、ミミック・デバイス２０を動作させるように構成される。次いで、他のアプリケーション・モジュール７２のうち１つが、外部ネットワーク１０上のＩＰメッセージとローカル・ネットワーク１４上のＵＳＢメッセージの間の変換器として動作する。
【００７５】
類似の様式において、ミミック・デバイス２０を、ドッキング・ステーションとして使用することもできる。例えば、ＵＳＢとして動作するローカル・ネットワーク１４を介して、あるいはローカル・ネットワーク・インターフェイス・カード２１の代わりに別のシリアル・インターフェイスを通じて、デジタル・カメラなどのデバイスに接続することを可能とする。たとえば、デジタル・カメラがミミック・デバイス２０上のシリアル・ポートに接続し、次いでデジタル・イメージをデジタル・カメラからミミック・デバイスにダウンロードし、デジタル・イメージを、外部ネットワーク１０を介してサーバ１１へ格納のために渡す。この場合も、単に上述の規則の再構成が必要とされるだけであり、アプリケーション・マネージャ・モジュール７８および／またはミミック・デバイス２０における他のアプリケーションによって実行され得る。
【００７６】
ミミック・デバイス２０はまた、その２つの独立したネットワーク・インターフェイス・カードを利用して、ユニバーサル・ネットワーキング・デバイスとして動作することもできる。たとえば、ミミック・デバイス２０がルータ、ファイアウォール、ＮＡＴ、サーバまたは他のネットワーク・デバイスとして動作するように命令するように規則を構成することができる。これは単に、ミミック・デバイス２０におけるアプリケーションのうち１つを有して、外部ネットワーク１０およびローカル・ネットワーク１４上で検出されたフレームの所望の処理を実行するようにＮＴＣ６５に命令するための規則を構成することである。このことに関して、ミミック・デバイス２０における規則を、単に外部ネットワーク１０およびローカル・ネットワーク１４のうち１つまたは両方におけるネットワーク・トラフィックを監視するように構成することもでき、これはネットワーク・トラフィックの一部またはすべてを取り込み、そして記録することを含むことができる。最後に、ミミック・デバイス２０の規則は、防護的モードにおいて望ましくないネットワーク・トラフィックの伝送を検出してインターセプトするように、あるいは、望ましくないネットワーク・トラフィックを攻撃的な敵対モードとして送信するように構成することができる。
【００７７】
本発明を特定の例示的実施形態により記載した。本発明が上述の実施形態に限定されるものでなく、また、様々な変更および修正を、本発明の精神および範囲から逸脱することなく、当業者によって行うことができることを理解されたい。
【図面の簡単な説明】
【図１】本発明を実施することができるネットワーク環境の図である。
【図２Ａ】本発明の一実施形態による、ミミック・デバイスの内部アーキテクチャを例示するブロック図である。
【図２Ｂ】本発明の一実施形態による、図２Ａに示したミミック・デバイスの固定ディスクに含まれたモジュールを例示するブロック図である。
【図３】本発明の一実施形態による、ミミック・デバイスの機能コンポーネントを示すブロック図である。
【図４】本発明の一実施形態による、目標ディスクリプタ・テーブルを示すテーブル図である。
【図５】本発明の一実施形態による、発見プロセスを説明するためのフローチャートである。
【図６】本発明の一実施形態による、定期的ポーリング発見プロセスを説明するためのフローチャートである。
【図７】本発明の一実施形態による、規則テーブルを示すブロック図である。
【図８Ａ】本発明の一実施形態による、ＩＮ規則テーブルを示すブロック図である。
【図８Ｂ】本発明の一実施形態による、ＯＵＴ規則テーブルを示すブロック図である。
【図９】本発明の一実施形態による、図８Ａおよび図８Ｂに示したＩＮおよびＯＵＴ規則テーブルへのフレームの適用を説明するためのフローチャートである。
【図１０】本発明の一実施形態による、フレームの処理を説明するためのフローチャートである。
【図１１】本発明の一実施形態による、ルーティング・テーブルを示すブロック図である。
【図１２】本発明の一実施形態による、動的ポート登録を説明するためのフローチャートである。
【図１３】本発明の一実施形態による、ポート識別子のマッピングを説明するためのフローチャートである。
【図１４】本発明の一実施形態による、入力フレームのルーティングを説明するためのフローチャートである。
【図１５】本発明の一実施形態による、出力フレームのルーティングを説明するためのフローチャートである。
【図１】
0004024589.tif 000002
【図２Ａ】
0004024589.tif 000003
【図２Ｂ】
0004024589.tif 000004
【図３】
0004024589.tif 000005
【図４】
0004024589.tif 000006
【図５】
0004024589.tif 000007
【図６】
0004024589.tif 000008
【図７】
0004024589.tif 000009
【図８Ａ】
0004024589.tif 000010
【図８Ｂ】
0004024589.tif 000011
【図９】
0004024589.tif 000012
【図１０】
0004024589.tif 000013
【図１１】
0004024589.tif 000014
【図１２】
0004024589.tif 000015
【図１３】
0004024589.tif 000016
【図１４】
0004024589.tif 000017
【図１５】
0004024589.tif 000018