JP4024589B2 - ネットワーク・デバイスのミミック・サポート - Google Patents
ネットワーク・デバイスのミミック・サポート Download PDFInfo
- Publication number
- JP4024589B2 JP4024589B2 JP2002138484A JP2002138484A JP4024589B2 JP 4024589 B2 JP4024589 B2 JP 4024589B2 JP 2002138484 A JP2002138484 A JP 2002138484A JP 2002138484 A JP2002138484 A JP 2002138484A JP 4024589 B2 JP4024589 B2 JP 4024589B2
- Authority
- JP
- Japan
- Prior art keywords
- network
- legacy
- message
- application module
- local
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2871—Implementation details of single intermediate entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Information Transfer Between Computers (AREA)
Description
【発明の属する技術分野】
本発明は、レガシー・ネットワーク・デバイスの機能能力を拡張するための、レガシー・ネットワーク・デバイスの模倣(mimicking)に関する。具体的には、本発明は、1つまたは複数のレガシー・ネットワーク・デバイスを外部ネットワークから切り離し、これらレガシー・ネットワーク・デバイスに代わってそれらが本来サポートしない機能要求に関して透過的に動作することによって、これらレガシー・ネットワーク・デバイスを代理するための利用に関するものである。
【0002】
【関連技術の説明】
ビジネス・オフィス環境をサポートするためのネットワークなどの大規模ネットワーク環境においては、しばしば、ネットワーク・プリンタなど、異なる機能能力を有する、異なるタイプおよび世代の多数のネットワーク・デバイスが含まれることがある。新しい技術が出現し、改善された機能性が新しいモデルまたは世代のネットワーク・デバイスにおいて実施されるにつれて、ネットワーク内で使用可能な機能は、どのネットワーク・デバイスが利用されているかに応じて大幅に変化する可能性がある。たとえば、ネットワーク環境におけるいくつかのより新しいプリンタはセキュア・プリンティングをサポートすることができるのに対して、そのネットワーク環境に存在するより古いプリンタはセキュア・プリンティングをサポートしていないという状態が生じ得る。
【0003】
新しい技術および改良をネットワーク環境全体に渡って実施し、それにより同じ機能能力のセットを、すべてのネットワーク・ユーザがすべてのネットワーク・デバイスについて使用可能にすることが、一般には望ましい。さもないと、一部のネットワーク・ユーザに割り当てられたネットワーク・デバイスが他のより新しいネットワーク・デバイスによってサポートされた新しい機能性をサポートしないような場合には、そのネットワーク・ユーザはセキュア・プリンティングおよび電子メール印刷などの新しい有用な機能を利用できなくなるであろう。
【0004】
この問題に対する1つの問題解決手法は、単純にすべてのレガシー・ネットワーク・デバイスを、所望の新しい機能能力を有する新しいネットワーク・デバイスで置き換えることである。しかしながら、この問題解決手法を実施する場合の労力および費用は多大であり、新しい機能能力を必要とする新しいエンタープライズ・アプリケーションが頻繁に実施されるような場合には現実的な方法ではない。
【0005】
上記問題に対するもう1つの問題解決手法は、新しいファームウェアを各レガシー・ネットワーク・デバイスにダウンロードすることによってレガシー・ネットワーク・デバイスを修正することである。しかし、この問題解決手法においても、ネットワーク・アドミニストレータまたはサービス担当者が物理的に各レガシー・ネットワーク・デバイスにアクセスし、次いで適切なバージョンのファームウェアをダウンロードして、そのレガシー・デバイスが他のネットワーク・デバイスと整合の取れた機能性をサポートするようにすることが必要であり、著しい労力が要求されてしまう。また、多くの場合、レガシー・デバイスにハードウェアおよびデザイン上の制限があるため、新しい機能性を実施するために新しいバージョンのファームウェアをレガシー・デバイスにダウンロードすることは可能ではない。
【0006】
この問題に対するさらにもう1つの問題解決手法は、対応するレガシー・ネットワーク・デバイスのための所望の追加機能性をサポートするために、サポート・デバイスをネットワーク上の、各レガシー・ネットワーク・デバイスの付近に配置することである。しかしながら、この問題解決手法においては、レガシー・ネットワーク・デバイスのユーザに透過的でないという欠点がある。この非透過性のゆえに、サポート・デバイスによって提供された追加的な機能を利用するために、所与のレガシー・ネットワーク・デバイスに対応するサポート・デバイスのためのIPアドレスをネットワーク・ユーザに知らせることが必要となる。
【0007】
【発明の要約】
本発明は、前述の問題について、プリンタなどのレガシー・ネットワーク・デバイスを模倣して、レガシー・ネットワーク・デバイスのための追加機能能力を提供することによって上記課題に対処する。詳細には、本発明は、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスを発見し、外部ネットワーク上でレガシー・ネットワーク・デバイスに宛られたネットワーク・メッセージに応答する。なお、本明細書において使用される「レガシー・ネットワーク・デバイス」という用語は、電子メール印刷などの所望のエンタープライズ機能性(enterprise functionality)をサポートするための能力が不足している、より古いネットワーク・デバイスおよびより新しいネットワーク・デバイスを含む。したがって、本発明は、外部ネットワーク上のクライアント・デバイスに対して透過的な状態で、追加の機能をレガシー・ネットワーク・デバイスに代わって実行する。電子メール・ミミック・デバイス(e-mail mimic device)の存在も、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスに対して透過的にすることができる。
【0008】
したがって、本発明の一態様は、第1および第2のネットワーク・インターフェイス・カードを有し、ネットワーク・デバイスを模倣するコンピューティング・デバイスに関する。ここで、第1のネットワーク・インターフェイス・カードはコンピューティング・デバイスを外部ネットワークに接続し、第2のネットワーク・インターフェイス・カードはコンピューティング・デバイスをローカル・ネットワークに接続する。本発明は、外部ネットワーク上に存在するクライアント・ネットワーク・デバイスからの、ローカル・ネットワーク上に存在するレガシー・ネットワーク・デバイスに宛られた入力メッセージを受信すること、及び、入力メッセージが、当該コンピューティング・デバイスに存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断することを含む。ここで、その入力メッセージが、アプリケーション・モジュールによって提供される機能を必要とすると判断された場合、入力メッセージがアプリケーション・モジュールにリダイレクトされ、必要とされた機能を入力メッセージに応答して実行する。一方、入力メッセージがアプリケーション・モジュールによって提供された機能を必要としない場合には、その入力メッセージはローカル・ネットワークを通してローカル・ネットワーク上に存在するレガシー・ネットワーク・デバイスに渡される。
【0009】
ここで、好ましくは、アプリケーション・モジュールはローカル・メッセージをローカル・ネットワーク上へ送信して対応するレガシー・ネットワーク・デバイスと通信し、このような各ローカル・メッセージは第2のネットワーク・カードのあらかじめ設定されたIPアドレスをソースIPアドレスとして使用する。また、必要であれば、アプリケーション・モジュールからのローカル・メッセージは、当該メッセージのソースIPアドレスとして、クライアント・ネットワーク・デバイスのIPアドレスを使用することができる。アプリケーション・モジュールはまた、対応するレガシー・ネットワーク・デバイスのIPアドレスをクライアント・ネットワーク・デバイスへのメッセージにおけるソースIPアドレスとして使用して、当該メッセージをクライアント・ネットワーク・デバイスに送信することができる。加えて、ローカル・ネットワーク上のトラフィックをリスニングしてレガシー・ネットワーク・デバイスを検出し、検出されたレガシー・ネットワーク・デバイスに発見要求(discovery request)を送信してそのデバイスに関係する情報を得ることによって、ローカル・ネットワーク上のすべてのレガシー・ネットワーク・デバイスが発見される。次いで、ミミック・デバイスが定期的に、それら発見されたレガシー・ネットワーク・デバイスをポーリングして、それらの現在の状態を判断する。更に、その判断ステップにおいて所定の規則セットが使用され、入力メッセージがアプリケーション・モジュールにリダイレクトされるべきであるか、ローカル・ネットワークを通して対応するレガシー・ネットワーク・デバイスに渡されるべきであるかが判断される。規則は、各レガシー・ネットワーク・デバイスについての発見情報(discovery information)に基づいて作成される。また、規則は、アプリケーション・モジュールおよびレガシー・ネットワーク・デバイスによって開始されたポートに基づいて動的に作成される。また、好ましくは、本発明はレガシー・ネットワーク・デバイスおよびアプリケーション・モジュールが同じポート識別子を使用することを防止するように構成される。
【0010】
上記の構成によれば、レガシー・ネットワーク・デバイスの機能能力を、外部ネットワーク上の他のデバイスに対して透過的な様態で拡張するための効率的な方法を提供することができる。したがって、新しいネットワーク・デバイスの購入、または、ネットワーク環境におけるすべてのレガシー・ネットワーク・デバイスにおけるファームウェアのアップグレードに関連する費用および時間が回避され得る。また、ミミック・デバイスは、レガシー・ネットワーク・デバイスがサポートしない機能性のためにレガシー・ネットワーク・デバイスに代わって動作することにより透過的であるので、ネットワーク・アドミニストレータはそのミミック・デバイスの存在をすべての他のネットワーク・ユーザに公表する必要はない。
【0011】
本発明のもう1つの態様では、本発明は、第1および第2のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスを通じてネットワーク・デバイスを模倣することに関する。ここで第1のネットワーク・インターフェイス・カードはコンピューティング・デバイスを外部ネットワークに接続し、第2のネットワーク・インターフェイス・カードはコンピューティング・デバイスをローカル・ネットワークに接続する。また、本発明は、ローカル・ネットワーク上で複数の各レガシー・ネットワーク・プリンタからのメッセージを検出することによってローカル・ネットワーク上の複数のレガシー・ネットワーク・プリンタを発見すること、および、発見された各レガシー・ネットワーク・プリンタのための規則テーブルにおいて規則を作成することを含む。ここで、各規則は、対応するレガシー・ネットワーク・プリンタのIPアドレスを含み、コンピューティング・デバイスにおけるアプリケーション・モジュールが対応するレガシー・ネットワーク・プリンタに代わって機能を実行するかどうかを示す。本発明はさらに、複数のレガシー・ネットワーク・プリンタのうちの指定されたレガシー・ネットワーク・プリンタのIPアドレスを宛て先とする入力メッセージを、外部ネットワーク上に存在するクライアント・ネットワーク・デバイスから受信し、指定されたレガシー・ネットワーク・プリンタに対応する規則に基づいて、その入力メッセージがアプリケーション・モジュールによって実行されるべき機能を必要とするかどうかを判断することを含む。さらに、入力メッセージが、アプリケーション・モジュールからのサポートを必要とする場合、必要とされた機能を入力メッセージに応答して実行するアプリケーション・モジュールに入力メッセージがリダイレクトされる。一方、入力メッセージが、アプリケーション・モジュールによって提供された機能を必要としない場合、入力メッセージがローカル・ネットワークを通して、指定されたレガシー・ネットワーク・プリンタに渡される。
【0012】
好ましくは、対応するレガシー・ネットワーク・プリンタと通信するために、アプリケーション・モジュールはローカル・メッセージをローカル・ネットワーク上に送信する。ここで、そのようなローカル・メッセージの各々は第2のネットワーク・カードのあらかじめ設定されたIPアドレスをソースIPアドレスとして使用する。必要であれば、アプリケーション・モジュールからレガシー・ネットワーク・プリンタへのローカル・メッセージは、クライアント・ネットワーク・デバイスのIPアドレスをメッセージにおけるソースIPアドレスとして使用することができる。アプリケーション・モジュールはまた、メッセージをクライアント・ネットワーク・デバイスに送信することができる。ここで、クライアント・ネットワーク・デバイスへのメッセージにおけるソースIPアドレスとして、対応するレガシー・ネットワーク・プリンタのIPアドレスを使用する。加えて、各レガシー・ネットワーク・プリンタの発見は、検出された各レガシー・ネットワーク・プリンタに発見要求を送信して、そのプリンタに関係する情報を得ることを含む。また、アプリケーション・モジュールおよびレガシー・ネットワーク・プリンタによって開始されるポートに基づいて規則が動的に作成される。好ましくは、本発明において、レガシー・ネットワーク・プリンタおよびアプリケーション・モジュールが同じポート識別子を使用することが防止される。なお、ミミック・デバイスは、レガシー・ネットワーク・デバイスの1つに代わってメッセージを取り込み且つそれに応答するべきであるかどうかを判断するために、メッセージにおけるIPアドレスに加えて1つまたは複数のディスクリミネータを使用することが可能である。
【0013】
上記構成により、本発明は、レガシー・ネットワーク・プリンタの機能能力を、外部ネットワーク上の他のデバイスに透過的である様態において拡張するための効率的な方法を提供する。したがって、新しいネットワーク・プリンタの購入、または、ネットワーク環境におけるすべてのレガシー・ネットワーク・プリンタにおけるファームウェアのアップグレードに関連する費用および時間が回避される。また、ミミック・デバイスは、レガシー・ネットワーク・プリンタに代わって当該レガシー・ネットワーク・プリンタがサポートしないであろう機能性のために動作することによって透過的であるため、ネットワーク・アドミニストレータは、ミミック・デバイスの存在をすべての他のネットワーク・ユーザに公表する必要はない。
【0014】
上述した簡単な概要は、本発明の性質を迅速に理解できるように提供されたものである。従って、本発明のより完全な理解は、以下のその好ましい実施形態の詳細な説明を添付の図面と共に参照することによって得ることができる。
【0015】
【発明の実施の形態】
本発明は、一般的なネットワーク環境において、既存のネットワーク・デバイスの機能性を増強するために使用するためのミミック・デバイスを対象とする。より詳細には、本発明のミミック・デバイスは2つの別々のネットワーク・インターフェイス・カードを利用する。これにより、ミミック・デバイスは、第1のネットワーク・インターフェイス・カードに接続される汎用ネットワークと、第2のネットワーク・インターフェイス・カードに接続されるローカル・ネットワークのとの間を仲介する装置として動作することができる。この様態において、ネットワーク・プリンタなど、ローカル・ネットワーク上のいくつかの既存のレガシー・ネットワーク・デバイスを、ミミック・デバイスの後ろで、一般的な外部ネットワークから切り離すことができる。そして、ミミック・デバイスは、まず初期状態において、外部ネットワークからのすべてのネットワーク・トラフィックを第1のネットワーク・インターフェイス・カードから第2のネットワーク・インターフェイス・カードへ通し、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスへ渡すことができる。また、ミミック・デバイスはローカル・ネットワークをリスニングし、そのローカルネットワーク上にある全てのレガシー・ネットワーク・デバイスを発見する。そして、その後、ミミック・デバイスは、ミミック・デバイス内のアプリケーションを利用して、発見された各レガシー・ネットワーク・デバイスの機能能力を増強することができる。
【0016】
レガシー・ネットワーク・デバイスを増強するミミック・デバイスには、レガシー・ネットワーク・デバイスに代わって機能能力を追加するためのアプリケーションが提供される。たとえば、ローカル・ネットワーク上でミミック・デバイスの後ろのネットワーク・プリンタが電子メール印刷能力を有していない場合、ミミック・デバイスは電子メール印刷アプリケーションを含むことができる。そして、この電子メール印刷アプリケーションにより、ミミック・デバイスは、外部ネットワーク上のクライアントからの電子メール印刷のための要求をローカル・ネットワーク上のネットワーク・プリンタからインターセプトし、次いで、クライアントからの要求に応じてレンダリングされた印刷ジョブをネットワーク・プリンタへ送信することによって電子メール印刷機能を当該ネットワーク・プリンタに代わって実行する。この実施形態では、ミミック・デバイスの存在がクライアントに対して透過的であるようにするために、ミック・デバイスは外部ネットワーク上のクライアントにネットワーク・プリンタのIPアドレスを使用して応答する。加えて、ミミック・デバイスは、ローカル・ネットワーク上のレガシー・ネットワーク・デバイスによって開始される、外部ネットワーク上のクライアントへの接続をサポートすることができる。たとえば、レガシー・ネットワーク・デバイスは、外部ネットワーク上のNTPサーバに宛てられたネットワーク・タイム・プロトコル(NTP)要求を送信することができる。ミミック・デバイスはレガシー・ネットワーク・デバイスからのNTP要求をインターセプトし、当該レガシー・ネットワーク・デバイスに代わってミミック・デバイス自身のNTP要求をNTPサーバへ送信することができる。次いで、ミミック・デバイスが、現在時間などを含むNTPサーバからの応答を受信し、次いでこの応答をレガシー・ネットワーク・デバイスへ転送する。この際、ミミック・デバイスのIPアドレスまたはNTPサーバのIPアドレスがソースIPアドレスとして使用される。したがって、本実施形態のミミック・デバイスは、レガシー・ネットワーク・デバイスの機能能力を、外部ネットワーク上のネットワーク・ユーザに対して透過的な状態で増強するための、効率的かつ費用のかからない方法を提供するものである。
【0017】
図1は、本発明を実施することができるネットワーク環境を示す。図1に示されるように、外部ネットワーク10は典型的なネットワークであり、TCP/IPおよび他の共通ネットワーク・プロトコルによってサポートされることが好ましい。これらについては本明細書でさらに後述する。外部ネットワーク10に接続されるものは、典型的なネットワーク・サーバであるサーバ11、およびワークステーション12である。ワークステーション12は典型的なコンピューティング・ワークステーションであり、CPU、固定ディスクおよびRAMを備えたホスト・プロセッサ、およびホスト・プロセッサと対話するためのディスプレイ、キーボードおよびマウスを有する。サーバ11は典型的なサーバでありホストプロセッサを有する。このホストプロセッサは、CPU、RAM、ROM、および、外部ネットワーク10におけるユーザによってアクセスかつ共有することができるファイルおよび/またはアプリケーションを含むための大型固定ディスクを含む。
【0018】
図1に示されるように、ミミック・デバイス20は外部ネットワーク・インターフェイス・カード22およびローカル・ネットワーク・インターフェイス・カード21を有する。上述のように、これらネットワーク・インターフェイス・カードにより、ミミック・デバイス20は、外部ネットワーク10とローカル・ネットワーク14の間のコントロールされたブリッジとして動作することができる。外部ネットワーク・インターフェイス・カード22はミミック・デバイス20を外部ネットワーク10に接続し、ローカル・ネットワーク・インターフェイス・カード21はミミック・デバイス20をローカル・ネットワーク14に接続する。ミミック・デバイス20との通信のために、複数のネットワーク・デバイスがローカル・ネットワーク14上に存在させることができる。図1に示した実施例では、レガシー・ネットワーク・プリンタ15および16がローカル・ネットワーク14上に設けられており、ローカル・ネットワーク・インターフェイス・カード21を介してミミック・デバイス20と接続されている。更に、非インターネット対応ネットワーク・デバイスを外部ネットワーク10に接続するためのブリッジとしてミミック・デバイスを使用することもできることが理解されよう。たとえば、ローカル・ネットワーク14をUSBネットワークにすることができ、レガシー・ネットワーク・プリンタ15および16を非ネットワーク対応プリンタにすることができる。したがって、ミミック・デバイス20は、ローカル・ネットワーク14のUSB接続を介して、プリンタ15および16と、外部ネットワーク10との間のブリッジとして動作する。
【0019】
各レガシー・ネットワーク・プリンタ15および16は、ネットワーク・インターフェイス・カード(図示せず)を、ローカル・ネットワーク14への接続のために有する。レガシー・ネットワーク・プリンタ15および16としては、レーザ・ジェット・プリンタまたはインク・ジェット・プリンタなどの典型的なネットワーク・プリンタを用いることができ、これらはネットワーク印刷アプリケーションをサポートするためのある限定された機能能力を有する。本実施形態の説明のために、レガシー・ネットワーク・プリンタ15および16は、セキュア・プリンティング、電子メール印刷、または他のいくつかのプリンタ機能性などのエンタープライズ印刷機能能力が不足していると仮定する。このため、レガシー・ネットワーク・プリンタ15および16はローカル・ネットワーク14上に配置されることによって外部ネットワーク10から切り離され、ミミック・デバイス20が追加のエンタープライズ印刷機能能力をレガシー・ネットワーク・プリンタ15および16に代わって提供できるようにする。ミミック・デバイス20を利用して、ローカル・ネットワーク14上のいかなるネットワーク・デバイスの機能能力をも増強することができ、これがネットワーク・プリンタのみによる使用に限定されないことを理解されたい。
【0020】
図2Aは、ミミック・デバイス20の内部アーキテクチャを説明するためのブロック図である。図2Aに示されるように、ミミック・デバイス20は本質的に、サーバまたは他の類似のコンピューティング・デバイスの構成を有する。ただし、ミミック・デバイス20は2つのネットワーク・インターフェイス・カードを含む。また、ミミック・デバイス20は、システム・バス20、CPU34、RAM35、ROM36、外部ネットワーク・インターフェイス・カード22、ローカル・ネットワーク・インターフェイス・カード21および固定ディスク60を含む。
【0021】
中央処理装置(CPU)34は、バス30とインターフェイスをとるように構成されたプログラマブルなマイクロプロセッサである。ランダム・アクセス・メモリ(RAM)35は、CPU34に記憶装置へのアクセスを提供するためにバス30とインターフェイスをとるように構成され、それによりCPU34のためのメインのランタイム・メモリ(run-time memory)として動作する。より詳細には、格納されたプログラム命令シーケンスを実行するとき、CPU34が命令シーケンスを固定ディスク60(または他の接続されたメモリ媒体)からRAM35にロードし、次いでこれらの格納されたプログラム命令シーケンスをRAM35から実行する。標準のディスクスワップ技術により、メモリのセグメントをRAM35および固定ディスク60の間でスワップできることも理解されたい。
【0022】
読取り専用メモリ(ROM)36は不変命令シーケンスを格納する。不変命令シーケンスとしては、CPU34のための起動命令シーケンス、またはミミック・デバイス20(図示せず)に接続することのできる周辺デバイスのオペレーションのための基本入出力オペレーティング・システム(「BIOS」)シーケンスなどが挙げられる。外部ネットワーク・インターフェイス・カード22およびローカル・ネットワーク・インターフェイス・カード21は、2つの分離した、別個のネットワーク・インターフェイスである。これにより、ミミック・デバイス20が、外部ネットワーク・インターフェイス・カード22を介して外部ネットワーク10に接続できるようにし、またローカル・ネットワーク・インターフェイス・カード21を介してローカル・ネットワーク14に接続できるようにする。図2に示されるように、外部ネットワーク・インターフェイス・カード22およびローカル・ネットワーク・インターフェイス・カード21は共に、外部ネットワーク10およびローカル・ネットワーク14をそれぞれミミック・デバイス20にインターフェイスするための類似のプロトコル・スタックを含む。但し、ローカル・ネットワーク・インターフェイス・カード21および外部ネットワーク・インターフェイス・カード22におけるプロトコル・スタックが類似のものであることは必ずしも必要ではないことに留意されたい。たとえば、ローカル・ネットワーク14は、トークン・リング・プロトコルなど、外部ネットワーク10とは異なるプロトコルを使用することができる。この場合、ローカル・ネットワーク・インターフェイス・カード21におけるプロトコル・スタックがIPプロトコル環境の代わりにトークン・リング・プロトコル環境をサポートするためのプロトコル・レイヤを含むことになる。
【0023】
たとえば、外部ネットワーク・インターフェイス・カード22は、直接外部ネットワーク10とインターフェイスをとる低レベルのプロトコル・レイヤであるネットワーク・インターフェイス・レイヤ41を含む。また、TCP/IPプロトコルを介した外部ネットワーク10との通信をサポートするための、TCP/IPレイヤ42がネットワーク・インターフェイス・レイヤ41の上に設けられる。この様態において、ミミック・デバイス20は、しばしば「フレーム」と呼ばれるTCP/IPメッセージを外部ネットワーク10を介して送受信することができる。類似の方法において、HTTPレイヤ43、SNMPレイヤ44、LDAPレイヤ45および他のレイヤ46がTCP/IPレイヤ42の上に設けられ、それぞれHTTP、SNMP、LDAPおよび他の知られているネットワーキング・プロトコルを使用した外部ネットワーク10における通信をサポートする。なお、本実施形態ではローカル・ネットワーク・インターフェイス・カード21において示したプロトコル・スタックは、上述のプロトコル・スタックのものと同様であり、したがって詳細な説明は省略する。
【0024】
固定ディスク60は、CPU34によって実行可能なプログラム命令シーケンスを格納するコンピュータ可読媒体の一実施例である。ここでプログラム命令シーケンスは、CPU34によって実行されて、オペレーティング・システム61、外部ネットワーク・インターフェイス・ドライバ62、ローカル・ネットワーク・インターフェイス・ドライバ63、他のドライバ68、モジュール58、デバイス能力テーブル73、ルーティング・テーブル74、規則テーブル75、目標ディスクリプタ・テーブル76、ソケット・ライブラリ77および他のファイル79を構成する。
【0025】
オペレーティング・システム61は、DOS(登録商標)またはUNIX(登録商標)などの基本オペレーティング・システム、あるいは、Windows NT(登録商標)などの共通ウィンドウ・オペレーティング・システム、または別の知られているオペレーティング・システムとすることができる。外部ネットワーク・インターフェイス・ドライバ62は、ミミック・デバイス20を外部ネットワーク10にインターフェイスするための外部ネットワーク・インターフェイス・カード22を駆動するのに用いられる。同様に、ローカル・ネットワーク・インターフェイス・ドライバ63は、ミミック・デバイス20をローカル・ネットワーク14にインターフェイスするローカル・ネットワーク・インターフェイス・カード21を駆動するのに用いられる。他のドライバ68は、ミミック・デバイス20(図示せず)に接続することができる他のデバイスを駆動するのに用いられる。ここで他のデバイスとは、ユーザがミミック・デバイス20を構成かつ操作することができるようにするためのフロント・パネル・インターフェイス、または、同じ目的を達成するための表示モニタ、キー・パッドおよびマウス(図示せず)などである。モジュール58は本発明の機能性を実施するのに利用され、これについては以下でより完全に記載する。
【0026】
デバイス能力テーブル73には、ローカル・ネットワーク14上に設けることができるネットワーク・デバイスの機能能力の範囲に関する情報が格納され、以下でさらに論じられるように、本発明を実施するのに利用される。ルーティング・テーブル74は1つまたは複数のルーティング・テーブルを含む。これらのルーティング・テーブルは、外部ネットワーク・インターフェイス・カード22あるいはローカル・ネットワーク・インターフェイス・カード21を介してミミック・デバイス20出て行く通信をルーティングするのに用いられる。この点についても以下でより詳細に記載する。規則テーブル75は、本発明の機能性を実施するのに利用される。この点についても以下により詳細に記載する。目標ディスクリプタ・テーブル76は、ミミック・デバイス20によって発見されたローカル・ネットワーク14上のレガシー・ネットワーク・デバイスに対応する複数の目標ディスクリプタ・エントリを含むのに利用される。この点についても以下でさらに論ずる。ソケット・ライブラリ77は、本発明によるミミック・デバイス内のアプリケーションによって開かれたソケットを追跡するために、本発明において使用されるライブラリである。最後に、他のファイル79は、ミミック・デバイス20を操作するため、かつ追加機能性をミミック・デバイス20に提供するために必要な他のファイルおよび/またはプログラムを含む。
【0027】
図2Bは、モジュール58における各モジュールを示すブロック図である。図2Bに示されているように、モジュール58は、ネットワーク・デバイス・マネージャ(NDM:Netword Device Manager)モジュール64、ネットワーク・トラフィック・コントローラ(NTC:Network Traffic Controller)モジュール65、受動目標検出(PTD:Passive Target Detector)モジュール66、動的ポート・レジスタ(DPR: Dynamic Port Register)モジュール67、トランスポート・アドレス変換(TAT:Transport Address Translator)モジュール69、セキュア・プリンティング・アプリケーション・モジュール70、電子メール印刷アプリケーション・モジュール71、他のアプリケーション・モジュール72およびアプリケーション・マネージャ・モジュール78を含む。上述のすべてのモジュールは本発明の実施態様に特有のものであり、ここでは図2Bを参照して概略を記載し、以下でより詳細に他の図面を参照して説明する。
【0028】
ネットワーク・デバイス・マネージャ・モジュール64は、本発明を実施するために利用された低レベルのモジュールであり、これは、フレームとして知られるメッセージを外部ネットワーク・インターフェイス・カード22とローカル・ネットワーク・インターフェイス・カード21のそれぞれにおいて送受信するためのものである。ネットワーク・トラフィック・コントローラ・モジュール65は、本発明の実施のために利用されるものであり、これは規則テーブル75からの規則と関連して、あるメッセージが、ローカル・ネットワーク14上のレガシー・ネットワーク・デバイスのうち1つに代わってミミック・デバイス20によって処理されるべきであるか、単にローカル・ネットワーク14上の対応するレガシー・ネットワーク・デバイスに渡されるべきであるかを判断する。受動目標検出モジュール66は、本発明の実施のために利用されるものであり、これは本質的には、発見された各レガシー・ネットワーク・デバイスに関するネットワーク関係および他の機能情報を得ることによって、ローカル・ネットワーク14上に存在するレガシー・ネットワーク・デバイスを発見する。受動目標検出(PTD)モジュール66も、発見された各レガシー・ネットワーク・デバイスの状態を確認するために定期的ポーリングを実行する。
【0029】
動的ポート・レジスタ・モジュール67は、ミミック・デバイス20内のアプリケーションによって開かれたポートを監視することによって本発明を実施するのに利用される。また、動的ポート・レジスタ・モジュール67は、アプリケーションがローカル・ネットワーク14上の1つまたは複数のレガシー・ネットワーク・デバイスに代わって動作することができるように、必要に応じてメッセージ(フレーム)を対応するアプリケーションにリダイレクトするための規則を作成するのに利用される。トランスポート・アドレス変換モジュール69は、ローカル・ネットワーク14上のレガシー・ネットワーク・デバイスによって開かれたソケットを監視することによって本発明を実施するのに利用される。また、トランスポート・アドレス変換モジュール69は、ソケット識別子がミミック・デバイス20におけるアプリケーションによって開かれたソケットと競合することを回避するために、対応するソケット識別子を新たに作成されたソケット識別子にマップする。
【0030】
セキュア・プリンティング・アプリケーション・モジュール70および電子メール印刷アプリケーション・モジュール71は、ミミック・デバイス20において、ローカル・ネットワーク14上のレガシー・ネットワーク・プリンタ15および16、または他のレガシー・ネットワーク・デバイスの機能能力を増強するために提供することができる、アプリケーション・モジュールの例である。たとえば、レガシー・ネットワーク・プリンタ15が、電子メール印刷をサポートするための機能能力は有するがセキュア・プリンティングをサポートするための機能能力は有していないという可能性がある。このような場合、ミミック・デバイス20はセキュア・プリンティング・アプリケーション・モジュール70を利用して、外部ネットワーク10から受信された、レガシー・ネットワーク・プリンタ15からのセキュア・プリンティング・サービスを要求するフレームに応答する。同様にして、レガシー・ネットワーク・プリンタ16が電子メール印刷をサポートしていない場合、ミミック・デバイス20が電子メール印刷アプリケーション・モジュール71を利用して、レガシー・ネットワーク・プリンタ16に代わって、レガシー・ネットワーク・プリンタ16からの電子メール印刷サービスのための外部ネットワーク10からの入力要求のために動作する。このような様態においては、実際にはミミック・デバイス20がこのような追加機能能力をプリンタに代わって透過的な方法において提供しているのであるが、ワークステーション12などの外部ネットワーク10上のクライアントには各レガシー・ネットワーク・プリンタ15および16がセキュア・プリンティングおよび電子メール印刷をサポートするための能力を有しているように見える。他のアプリケーション・モジュール72は、ローカル・ネットワーク14上に存在するレガシー・ネットワーク・デバイスの機能能力を増強する他の追加のアプリケーションをサポートするのに用いられる。最後に、アプリケーション・マネージャ・モジュール78は、各レガシー・ネットワーク・デバイスの機能能力を増強するために1つまたは複数の前述のアプリケーションを必要に応じて開始するべく、本発明によって利用される。これらのモジュールを以下で、残りの図面に関連してより詳細に論ずる。
【0031】
図3は、ミミック・デバイス20の機能モジュールを示す図である。NDM64が、外部ネットワーク・インターフェイス・ドライバ62、ローカル・ネットワーク・インターフェイス・ドライバ63のようなミミック・デバイス20によって利用されるデバイス・ドライバや、ローカル・ネットワーク14に接続され、ミミック・デバイス20によってサポートされるデバイスに関連したドライバを管理する。外部ネットワーク・インターフェイス・ドライバ62は、パケットを外部ネットワーク10との間で送受信することを行う。また、ローカル・ネットワーク・インターフェイス・ドライバ63は、パケットをローカル・ネットワーク14との間で送受信することを行う。加えて、NDM64はルーティング・テーブル74を維持する。このルーティング・テーブル74は、ミミック・デバイス20によって送信されるパケットをルーティングするためにNDM64により利用される。
【0032】
NTC65は、NDM64によって外部ネットワーク10またはローカル・ネットワーク14のいずれかから受信されたフレーム、ならびに、ミミック・デバイス20上で内部的に動作するアプリケーションによって送信されるフレームを処理する。NTC65は、一連の規則を各フレームに適用することによって、フレームを処理する。その規則は、NTC65によって管理される規則テーブル75に含まれている。PTD66はローカル・ネットワーク14上のデバイスを検出し、監視する。PTD66は目標ディスクリプタ・テーブル76を維持する。この目標ディスクリプタ・テーブル76は、プリンタ15およびプリンタ16などの、検出されたデバイスを定義するパラメータを含む。加えて、PTD66は、ミミック・デバイス20内の他のモジュールに、目標ディスクリプタ・テーブル76において定義されている検出されたデバイスへのいかなる変更をも通知する。
【0033】
DPR67は、ミミック・デバイス20上で動作するアプリケーションによるソケットの開閉を監視し、NTC65と対話して、NTC65によって処理されたフレームが正しくチャネリングされることを保証する。ソケットの監視において、DPR67はソケット・ライブラリ77を参照する。このソケット・ライブラリ77には、ミミック・デバイス20上で動作するアプリケーションによって開かれたソケットを定義するソケット・ディスクリプタが含まれる。TAT69は、ローカル・ネットワーク14上のデバイスによるポート番号の割当てを監視し、必要なときには、これらのデバイスとミミック・デバイス20上で動作するアプリケーションの間の競合を防止する。
【0034】
アプリケーション・マネージャ・モジュール78は、ミミック・デバイス20上で実行されるアプリケーションを管理する。新しいデバイスがPTD66によって通知されると、アプリケーション・マネージャ・モジュール78は、新たに検出されたデバイスの能力を増強するために、どのアプリケーションを開始させるべきかを判断する。適用可能なアプリケーション・モジュールとしては、セキュア・プリンティング・アプリケーション・モジュール70を含み、これがセキュア・プリンティング・サービスを、外部ネットワーク10上のホストと、プリンタ15またはプリンタ16などのローカル・ネットワーク14上のデバイスとの間に提供する。加えて、適用可能なアプリケーションモジュールとして、電子メール印刷アプリケーション・モジュール71が含まれており、外部ネットワーク10上のホストからの電子メール印刷機能性を、ローカル・ネットワーク14上のデバイスへ提供する。また、必要とされたサービスを提供するための他のアプリケーションを含むことによって、更なる機能性をミミック・デバイス20に追加することができる。この更なるアプリケーションは、図3において、他の印刷アプリケーション・モジュール72によって表現されている。
【0035】
以上の記載は、各機能モジュールの目的を簡単に紹介するために提供されたものである。以下、これらのモジュールの機能および相互作用のより詳細な説明を行う。
【0036】
図4は、目標ディスクリプタ・テーブル76を示す図である。目標ディスクリプタ・テーブル76における各エントリは、いくつかのパラメータによって定義される。目標100は、ローカル・ネットワーク14上で検出されたデバイスに対応する識別子である。イーサネット・アドレス101は、検出されたデバイスのイーサネット・アドレスを提供する。IPアドレス102は、検出されたデバイスのIPアドレスを提供する。IPネットワーク・マスク104は、検出されたデバイスに関連付けられたネットマスクを提供する。デフォルト・ルータ105は、検出されたデバイスに関連付けられたデフォルト・ルータのアドレスを提供する。SNMPオブジェクト識別子106は、検出されたデバイスに割り当てられたSNMPオブジェクト識別子を提供する。これらのエントリの作成および維持はPTD66によって実行されるが、これについては以下でより詳細に記載する。
【0037】
図5は、ミミック・デバイス20が、ローカル・ネットワーク14上のレガシー・ネットワーク・プリンタ15および16などのレガシー・ネットワーク・デバイスを発見するための発見プロセスを記載するフローチャートである。図5に示されるように、ステップS501で、NDM64は、ローカル・ネットワーク・インターフェイス・カード21を介して、ローカル・ネットワーク14上のレガシー・ネットワーク・プリンタ15および16などのレガシー・ネットワーク・デバイスからの、ローカル・ネットワーク14上のネットワーク・メッセージをリスニングする。具体的には、TCP/IPをサポートするイーサネット環境では、NDM64がローカル・ネットワーク14上のいずれかのデバイスからのフレームについてリスニングする。この様態において、ローカル・ネットワーク14上のネットワーク・プリンタがそのソースIPアドレスを含むTCP/IPフレームを送信すると、NDM64がそのフレームを取り込む。NDM64はこの機能において無差別的であり、単に、外部ネットワーク10およびローカル・ネットワーク14上で検出したすべてのネットワーク・メッセージに対応するフレームをNTC65に渡すものであることを、理解されたい。詳細には、NDM64が外部ネットワーク・インターフェイス・ドライバ62およびローカル・ネットワーク・インターフェイス・ドライバ63とインターフェイスをとり、それによってフレームを外部ネットワーク10およびローカル・ネットワーク14のそれぞれから受信する。
【0038】
NDM64がフレームをローカル・ネットワーク14上で検出した後、ステップS502で、このフレームをNTC65に渡す。好ましくは、PTD66が初期化されたとき、規則テーブル75に配置される汎用取り込み規則を作成する。この汎用取り込み規則は、所与の所定の範囲内のソースIPアドレスを有するレガシー・ネットワーク・デバイスからローカル・ネットワーク14上に送信され、NDM64に渡されたすべてのフレームを取り込むように、NTC65に命令するためのものである。したがって、ステップS503で、NTC65が、NDM64から渡されたフレームを検査して、当該フレームがその広範な取り込み規則におけるIPアドレス範囲内のソースIPアドレスを含むかどうかを判断する。そうであった場合、NTC65はそのフレームを取り込み、ソースIPアドレスとローカル・ネットワーク14に対応するイーサネット・アドレスとからなるアドレスのペアを当該フレームから得て、PTD66に送信する(ステップS503)。
【0039】
続いて、ステップS504において、PTD66は目標ディスクリプタ・テーブル76を検査して、NTC65から渡されたアドレスのペアが含むソースIPアドレスが、目標ディスクリプタ・テーブル76内に目標ディスクリプタとしてエントリされていないかどうかを判断する。そのようなエントリが存在しなかった場合、PTD66は、そのアドレス・ペアからのソースIPアドレスを、新たに発見されたレガシー・ネットワーク・プリンタに対応するものとして識別する(ステップS504)。ステップS505において、PTD66は、そのアドレス・ペアのソースIPアドレスが新たに発見されたレガシー・ネットワーク・プリンタに対応すると判断されたかどうかを照会し、そうでなかった場合、処理はステップS512に進む。一方、そのアドレス・ペアにおけるソースIPアドレスが新たに発見されたレガシー・ネットワーク・プリンタに対応すると判断された場合は、ステップS506へ進む。ステップS506では、ローカル・ネットワーク14上の、そのアドレス・ペアからのソースIPアドレスに対応する、新たに発見されたレガシー・ネットワーク・プリンタに対して、PTD66がSNMP発見要求を送信する。なお、このSNMPは、ミミック・デバイス20からローカル・ネットワーク14上のレガシー・ネットワーク・デバイスに送信される発見メッセージをサポートするためのプロトコルの一例に過ぎないことに留意されたい。たとえば、ライト・ディレクトリ・アクセス・プロトコル(LDAP)など、他の知られているプロトコルを発見メッセージのために使用することができるし、あるいはメーカ独自のプロトコルを使用することもできる。PTD66もこの時点で、アドレス・ペアからのソースIPアドレスおよびイーサネット・アドレスを含む基本目標ディスクリプタ・エントリを目標ディスクリプタ・テーブル76への入力のために準備しておくことが好ましい。
【0040】
上記で図3に関連して説明したように、PTD66から送信されたSNMP発見要求はNDM64に渡される。NDM64は、そのSNMP発見要求メッセージが、ローカル・ネットワーク・インターフェイス・カード21とローカル・ネットワーク14を介して、対応する新たに発見されたレガシー・ネットワーク・プリンタに送信されるべきであることをルーティング・テーブル74から判断する。
【0041】
ステップS507において、PTD66は、新たに発見されたレガシー・ネットワーク・プリンタからのSNMP発見情報を、NDM64およびNTC65を介して受信する。新たに発見されたレガシー・ネットワーク・プリンタからのSNMP発見情報が、IPネットワーク・マスク、デフォルト・ルータおよびSNMPデバイスIDを含むことが好ましい。対応する新たに発見されたレガシー・ネットワーク・プリンタのためのSNMPデバイスIDにより、ミミック・デバイス20が、新たに発見されたレガシー・ネットワーク・プリンタの構成およびモデル、および既存の機能能力を判断することができる。この理由のため、デバイス能力テーブル73は、所与のSNMPデバイスIDと、そのSNMPデバイスIDに対応するネットワーク・プリンタの構成、モデル、機能情報および他の関係情報との間の相互参照を提供する。
【0042】
ステップS508で、PTD66は、新たに発見されたレガシー・ネットワーク・プリンタから受信されたSNMP発見情報に基づいて、新しい目標ディスクリプタ・エントリを目標ディスクリプタ・テーブル76に作成する。前述したように、この時点で、すでにPTD66は、新たに発見されたレガシー・ネットワーク・プリンタのIPアドレスおよびイーサネット・アドレスを含む基本目標ディスクリプタ・エントリをセットアップしておくことが好ましい。そして、PTD66は、その新たに発見されたレガシー・ネットワーク・プリンタに対応する基本目標ディスクリプタ・エントリの残りのフィールドを、受信されたSNMP発見情報により満たす。この様にして、ローカル・ネットワーク14上のレガシー・ネットワーク・プリンタ15および16などのような、発見された各レガシー・ネットワーク・デバイスに対応する目標ディスクリプタ・エントリが目標ディスクリプタ・テーブル76に存在することになる。目標ディスクリプタ・エントリは、発見された各レガシー・ネットワーク・デバイスに到達するために必要なアドレス情報を含むとともに、SNMPデバイスIDも含む。このSNMPデバイスIDにより、当該レガシー・ネットワーク・デバイスの識別および機能能力に関係した情報を導出することが可能となる。
【0043】
ステップS509において、PTD66はミミック・デバイス20における他のモジュールに、新しい目標ディスクリプタ・エントリが目標ディスクリプタ・テーブル76に加入されたことを通知する。PTD66によるこの通知は、予めこのようなイベントが通知されるようにPTD66にサブスクライブしているミミック・デバイス20内の全てのモジュールに対して、新しい目標ディスクリプタ・エントリを発行することによって実行するのが好ましい。たとえば、アプリケーション・マネージャ・モジュール78が、その初期化においてPTD66をサブスクライブし、目標ディスクリプタ・テーブル76において生成かつ加入された各目標ディスクリプタ・エントリを受信するようにする。このようにして、アプリケーション・マネージャ・モジュール78は、ローカル・ネットワーク14上の新たに発見されたレガシー・ネットワーク・デバイスの通知を受けることが可能となり、これによって新たに発見されたレガシー・ネットワーク・デバイスの機能能力を増強するために必要なアプリケーションを開始させることができる。たとえば、PTD66が、レガシー・ネットワーク・プリンタ15が新たに発見されたデバイスであると判断した場合、PTD66が新しい目標ディスクリプタ・エントリを、前述のSNMP発見を実行した後に生成する。そして、アプリケーション・マネージャ・モジュール78に、レガシー・ネットワーク・プリンタ15に対応する新しい目標ディスクリプタ・エントリを通知する。この例では、次いでアプリケーション・マネージャ・モジュール78が、デバイス能力テーブル73を参照してレガシー・ネットワーク・プリンタ15の機能能力を増強するために必要であるアプリケーションを選択し、開始する。例えば、レガシー・ネットワーク・プリンタ15が本来的に電子メール印刷能力をサポートしない場合、アプリケーション・マネージャ・モジュール78が電子メール印刷アプリケーション・モジュール71に、このサービスをレガシー・ネットワーク・プリンタ15に代わって実行するように命令する(ステップS510)。好ましくは、所与のレガシー・ネットワーク・デバイスに代わって動作するミミック・デバイス20内の各アプリケーションが、そのデバイスに代わってフレームを受信するためのソケットを開く。本発明のこの態様の詳細については、他の図面を参照してさらに後述する。
【0044】
次に、ステップS511で、NDM64は、新たに発見されたレガシー・ネットワーク・プリンタのIPアドレスおよびイーサネット・アドレスからなるアドレス・ペアに基づいて、新しいエントリをルーティング・テーブル74に作成する。この後、発見されたレガシー・ネットワーク・プリンタのIPアドレスに対応する宛先アドレスを含む出力フレームをNDM64が受信すると、NDM64はルーティング・テーブル74に基づいて、そのフレームをローカル・ネットワーク・インターフェイス・カード21とローカル・ネットワーク14を介して、IPアドレスに対応する当該発見されたレガシー・ネットワーク・プリンタに送信されるべきであると判断するようになる。ステップS512では、発見された各レガシー・ネットワーク・プリンタの現在の状態を検証するために、PTD66が定期的ポール発見メッセージを、目標ディスクリプタ・テーブル76内に目標ディスクリプタ・エントリを有する各レガシー・ネットワーク・プリンタへ送信する。このステップの詳細については、図6を参照してさらに論ずる。その後、処理ははステップS513へ進み、ステップS513がら戻る。
【0045】
図6は、図5に示したフローチャートのステップS512において実行される定期的ポーリング発見を説明するためのフローチャートである。最初に、ステップS512で、PTD66は、レガシー・ネットワーク・プリンタ15および16などの、目標ディスクリプタ・エントリを目標ディスクリプタ・テーブル76に有する各レガシー・ネットワーク・デバイスへ、定期的SNMP発見要求を送信する。このSNMP発見要求は、ローカル・ネットワーク14上の各レガシー・ネットワーク・デバイスの最初の発見に関して上述したものと同じである。次に、ステップS601において、PTD66は、レガシー・ネットワーク・プリンタ15および16などの、定期的発見要求に応答する各レガシー・ネットワーク・デバイスからSNMP発見情報を受信する(ステップS601)。ステップS602で、PTD66が、定期的SNMP発見要求が送信されているレガシー・ネットワーク・デバイスのいずれかにおいて非応答状態があったかどうかを判断する。非応答状態があった場合、応答しなかったレガシー・ネットワーク・デバイスに対応する目標ディスクリプタ・エントリが、目標ディスクリプタ・テーブル76から除去される(ステップS603)。対応する目標ディスクリプタ・エントリが、定期的発見ポーリングの結果として作成あるいは検証されたときに、PTD66が目標ディスクリプタ・テーブル76における各目標ディスクリプタ・エントリに対応する満了タイマを設定するように構成することが好ましい。
【0046】
非応答状態が発生した場合、PTD66は、単純に、応答しないレガシー・ネットワーク・デバイスのための目標ディスクリプタ・エントリに対応する満了タイマを更新しないだけである。そして、サービスが定期的に、満了タイマが満了しているすべての目標ディスクリプタ・エントリの目標ディスクリプタ・テーブル76を一掃する。この方法において、レガシー・ネットワーク・デバイスが定期的発見ポーリングに応答することができなかったときに、目標ディスクリプタ・テーブル76内のそれらデバイスに対応する目標ディスクリプタ・エントリが除去される。次に、ステップS604で、定期的発見要求に応答して応答する各レガシー・ネットワーク・デバイスから受信されたSNMP発見情報が、目標ディスクリプタ・テーブル76において対応する各目標ディスクリプタ・エントリにおけるデータと比較される。ステップS605において、応答する各レガシー・ネットワーク・デバイスに関して、対応する目標ディスクリプタ・エントリのデータが変更されているかどうかを、定期的SNMP発見要求に応答して受信されたSNMP発見情報に基づいて判断する。情報が変更されていた場合、処理はステップS606へ進み、対応するレガシー・ネットワーク・デバイスのための目標ディスクリプタ・エントリが、定期的SNMP発見要求に応答してレガシー・ネットワーク・デバイスから発行され、当該ミミック・デバイスに受信されたSNMP発見情報における新しい情報で修正される。ステップS607で、PTD66はミミック・デバイス20内の他のモジュールに、修正かつ削除された各目標ディスクリプタ・エントリを通知する。この通知は上述したように実行される。すなわち、予めこのような通知を受信するようにPTD66をサブスクライブしているミミック・デバイス20内の各モジュールに対して、上述の変更された目標ディスクリプタ・エントリが発行される。次いで、流れが進み、ステップS608で戻る。
【0047】
図7は、規則テーブル75を示す図である。規則テーブル75は、ミミック・デバイス20によって受信されたフレーム及び送信されたフレームの処理において、NTC65によって利用されるいくつかの規則のテーブルを含む。この実施形態では、4つの規則テーブルが規則テーブル75において定義されるが、追加の規則テーブルを存在させることもできる。INテーブル110は、フレームがミミック・デバイス20によって受信されるとき、NTC65によってそのフレームに適用される規則を含む。OUTテーブル111は、ミミック・デバイス20から送信されるべきフレームをNDM64に送信する前に、NTC65によってそのフレームに適用される規則を含む。マップ・ローカル・テーブル(MAP LOCAL TABLE)112は、INテーブル110内に含まれたサブテーブルであり、TAT69によるポート割り当て管理のために利用される。マップ外部テーブル(MAP EXTERNAL TABLE)114はOUTテーブル111内に含まれたサブテーブルであり、これもTAT69によるポート割り当て管理のために利用される。
【0048】
図8Aは、INテーブル110を3つのテーブル・エントリのサンプルと共に示した図である。各エントリは、フレームの処理においてNTC65によって使用されるいくつかのパラメータに基づいて規則を定義する。パラメータ・テーブル120は、その規則が見い出されるテーブルを識別する。可能なテーブルは、INテーブル110およびOUTテーブル111、ならびに、マップ・ローカル・テーブル112などのいかなるサブテーブルをも含む。タイムアウト121のパラメータは、持続時間を提供することができ、その満了により当該規則はテーブルから除去される。別の方法では、タイムアウト121のパラメータをSTATICとして設定することができる。この場合、その特定の規則は、機能モジュールがその除去を要求するまでテーブル上に残る。
【0049】
各規則は、ディスクリミネータのセット(ソースIP122、宛先IP124、ソース・ポート125および宛先ポート126)、およびアクション128によって定義される。NTC65がフレームをディスクリミネータに対して比較し、合致が起こった場合、指定されたアクション128が実行される。この実施形態では、ソースIP122、宛先IP124、ソース・ポート125および宛先ポート126の4つのディスクリミネータが定義されている。ソースIP122およびソース・ポート125は、フレームのソースのIPアドレスおよびポート番号を含むことができる。宛先IP124および宛先ポート126は、フレームのための宛先のIPアドレスおよびポート番号を含むことができる。ディスクリミネータのためのエントリとして、特定の値またはドレス(IPアドレスまたはポート番号)、すべての可能な値と合致するワイルドカード(アスタリスク)、または特定の範囲の可能な値と合致するマクロ(たとえば、[L0CAL]は、ローカル・ネットワーク14上で検出されたいずれかのアドレスとの合致を発見する)のいずれかを用いることができる。なお、この実施形態では4つのディスクリミネータを利用するが、フレームのプロトコルおよびソース・インターフェイスなど、追加のディスクリミネータも使用することができる。
【0050】
フレームと規則のディスクリミネータの間で合致を発見すると、指定されたアクション128が実行される。たとえば、アクション128がCAPTUREであった場合は、フレームが取り込まれ、更なる処理のために、PTD66などの機能モジュールの1つに提供される。また、BRANCHであった場合は、フレームが、BRANCHアクションにおいて指定されたサブテーブルを使用して処理される。また、REDIRECTであった場合は、フレームが、ミミック・デバイス20内のアプリケーション・モジュールのうちの1つに送信される。さらに、アクション128がACCEPTであった場合は、ミミック・デバイス20による更なる処理なしに、フレームはミミック・デバイス20を通過させられる。なお、上記以外のアクションについても、ミミック・デバイス20内で受信されたフレームを処理するために定義かつ利用することができる。
【0051】
図8BはOUTテーブル111を示し、これはINテーブル110と同じ方法においてセットアップされる。各規則エントリを定義するパラメータは、図8Aに関連して上述したものと同じであり、したがってこれらには同じ参照番号が付されている。OUTテーブル111はINテーブル110と同じ方法において構成されるので、OUTテーブル111の詳細な構成の説明は省略する。
【0052】
図9は、NTC65によって、ミミック・デバイス20によって受信されたフレームにおいて実行される処理の概要を示すフローチャートである。ステップS901で、フレームが、外部ネットワーク・インターフェイス32またはローカル・ネットワーク・インターフェイス31などのネットワーク・インターフェイスのうちの1つによって受信される。メッセージを受信すると、NDM64がNTC65に、フレームを処理するための準備ができたことを通知する。ステップS904では、受信されたフレームがNTC65によって、INテーブル110内に含まれた規則を使用して処理される。ここで、INテーブル110の適用において、当該フレームがNTC65によってドロップあるいはリダイレクトされなかった場合、ステップS905で、NTC65によるフレームの処理はシフトされ、ステップS906で、OUTテーブル111に含まれた規則を使用して実行される。そうでない場合、ステップS905で、NTC65による処理が停止され、ステップS908で、NTC65は次のフレームを待機する。また、ステップS902では、セキュア・プリンティング・アプリケーション・モジュール70などのアプリケーション・モジュールからのフレームがNTC65によって受信される。次いで、ステップS906において、NTC65は、OUTテーブル111内に含まれた規則を使用してフレームの処理を進行する。ステップS906の処理が完了すると、ステップS908で、NTC65が再度次のフレームを待機する。
【0053】
図9の記載においては、NTC65がINテーブル110などの規則テーブルをフレームの処理において適用することを簡単に記載した。図10は、受信されたフレームを、特定の規則テーブル内に含まれた規則を使用して処理するプロセスをより詳細に示すフローチャートである。ステップS1001で、NTC65は受信されたフレームの処理を開始する。通常、この開始は、図9に示したような全体的な処理において、NTC65が、受信されたフレームを特定の規則テーブルを使用して処理する段階に到達したときに起こる。ステップS1002で、NTC65は、フレームが規則テーブルの第1の規則内に含まれたディスクリミネータに合致するかどうかを判断する。これらのディスクリミネータがフレームと合致しなかった場合、ステップS1004で、NTC65で規則テーブルを使用した処理が完了したかどうかが判断される。処理が完了していなかった場合、ステップS1005において、NTC65は規則テーブルにおいて次の規則へ継続し、ステップS1002へ戻り、フレームがその規則のディスクリミネータに合致するかどうかを判断する。一方、NTC65で規則テーブルを使用した処理が完了した場合は、ステップS1010で、処理が、図9において示した全体的な処理に戻される。
【0054】
ステップS1002において、規則において定義されたディスクリミネータに当該フレームが合致するとNTC65が判断した場合、ステップS1006で、その規則に関連付けられたアクションが実行される。ステップS1006で、その規則に関連付けられたアクションが実行された後、ステップS1008で、規則テーブルを使用した処理が完了されたかどうかが判断される。規則テーブルを使用した処理が完了していなかった場合は、ステップS1009において、NTC65が規則テーブルにおける次の規則へ進行する。そして、ステップS1002へ戻り、その規則のディスクリミネータをフレームと比較する。一方、規則テーブルを使用した処理が完了した場合、ステップS1010で、NTC65は再度全体の処理に戻る。NTC65が、特定の規則テーブルを使用してフレームを処理するために呼び出されるときは、NTC65が関連する規則テーブルを、上述のように探索(トラバース)する。
【0055】
図11は、NDM64によって、どのネットワーク・インターフェイスによってフレームを伝送するかを判断するのに利用される、ルーティング・テーブル74を示す。ルーティング・テーブル74における各エントリは、宛先140、ネットマスク141、ゲートウェイ142、デバイス144および注記145などのいくつかのパラメータを使用して定義される。これらのパラメータはテーブルにおいて特定のエントリを記述するものである。各パラメータの詳細な定義および機能は当業者には周知であり、したがって本明細書では説明を省略する。
【0056】
図12は、DPR67によって実行される処理を示すフローチャートである。ステップS1201において、DPR67は、ミミック・デバイス20におけるアプリケーション・モジュールを初期化し、ソケットについて動作を開始するまで待機する。ステップS1202では、電子メール印刷アプリケーション・モジュール71などのアプリケーションが実行を開始し、ネットワークを介した通信のためにソケットを生成する。アプリケーションが、ネットワークを介した通信のためのソケットを開く際に、このソケットを開くための機能が呼び出される。これらの機能のうち1つが呼び出されるとき、ステップS1204で、DPR67にソケット生成が通知される。
【0057】
アプリケーションが通信のためのソケットを開くとき、アプリケーションによって開かれたソケットを定義するためのエントリが、ソケット・ディスクリプタを含むソケット・ライブラリ77に対して行われる。ステップS1205で、DPR67はソケット・ディスクリプタをソケット・ライブラリ77から読み取り、新しいソケットのパラメータを決定する。ステップS1208において、DPR67は、新しいソケットに対応するソケット・ディスクリプタに基づいてNTC65におけるリダイレクト規則を構築する。このリダイレクト規則を利用して、NTC65は、ミミック・デバイス20によって受信されたフレームを、このフレームをローカル・ネットワーク14上のデバイスへ渡すのではなく、ミミック・デバイス20上で動作するアプリケーションへリダイレクトする。
【0058】
ステップS1209において、DPR67は、ソケットが閉じられるまで待機する。DPR67は、ソケットを閉じる機能が呼び出されるまで待機するようにしてもよいし、あるいは、DPR67が、ソケットが開かれたときから計測される指定された時間の期間を待機するようにしてもよい。ソケットが閉じられた後、ステップS1210において、DPR67は、閉じられたソケットに対応するリダイレクト規則をNTC65から除去する。上述の方法によれば、DPR67は、ミミック・デバイス20がローカル・ネットワーク14上のデバイスの能力を増強させている場合において、外部ネットワーク10から受信されたあらゆるトラフィックがミミック・デバイス20上で動作するアプリケーション・モジュールに宛てられることを保証することができる。
【0059】
図13は、TAT69によって実行される処理を示すフローチャートである。ステップS1301において、TAT69は処理のために初期化をし、準備をする。ステップS1302において、TAT69はブランチおよび取り込み規則をNTC65に構築する。TAT69は、特定の受信されたフレームをマップ・ローカル・テーブル112にダイレクトさせるために、ブランチ規則をINテーブル110に構築する。加えて、TAT69は、特定のフレームをマップ外部テーブル114へダイレクトさせるために、ブランチ規則をOUTテーブル111に構築する。加えて、TAT69は、特定のフレームを取り込むために、取り込み規則をマップ・ローカル・テーブル112内に構築する。マップ・ローカル・テーブル112において構築されたこの取り込み規則は、ローカル・ネットワーク14上のデバイスから受信されたすべてのフレームを、動的ポート・アドレスを使用して取り込む。
【0060】
ステップS1304において、NTC65は処理のためのフレームをNDM64から受信する。ステップS1305では、その受信されたフレームがローカル・ネットワークからのものであるか、および、それが動的ポート・アドレスを含んでいるかどうかが判断される。そのフレームがローカル・ネットワークからのものであり、かつ動的ポート・アドレスを含んでいる場合、ステップS1308において、TAT69によって生成されたブランチ規則により、フレーム処理をマップ・ローカル・テーブル112に分岐させる。一方、受信されたフレームがローカル・ネットワークからのものでなく、かつ/または動的ポート・アドレスを含んでいない場合は、ステップS1306で、NTC65が通常のフレーム処理を遂行する。そして、ステップS1314に進んで、TAT69は待機状態に戻る。
【0061】
上述したように、ステップS1308で、受信されたフレームがローカル・ネットワークからのものであり、かつ動的ポート・アドレスを有すると判断された場合、NTC65がマップ・ローカル・テーブル112に分岐する。そして、ステップS1309において、NTC65はマップ・ローカル・テーブル112をトラバースし、当該フレームが、そのテーブル内の既存のマップ規則のディスクリミネータに合致するかどうかを判断する(ならびに、マップ・ローカル・テーブル112内に含まれた他のいずれかの規則との合致があるかどうかを判断し、合致した規則に関する規則のアクションを実行する)。ディスクリミネータの合致があった場合、ステップS1310で、マップ規則が実行され、ステップS1314で、TAT69が次のフレームのための待機状態に戻る。これに対して、フレームのディスクリミネータに対応する既存のマップ規則がなかった場合は、ステップS1311へ進み、TAT69がそのフレームのための新しい動的アドレスを割り当てる。
【0062】
新しい動的アドレスをフレームに割り当てることにおいて、TAT69は自分自身の、未使用のポート番号の内部リストを利用することができる。また、別法では、TAT69がダミー・ソケットを生成し、ミミック・デバイス20のネットワーク・スタックによって割り振られた新しいポート番号を受信し、その新しい動的アドレスを処理されているフレームのために利用することができる。ステップS1312において、TAT69は、新たに割り当てられた動的アドレスに対応するマップ規則を構築する。TAT69は、元のポート番号を含むフレームが処理されるときに、マップ・ローカル・テーブル112に、フレームの既存のポート・アドレスを新たに割り振られたポート・アドレスにマップするマップ規則を構築する。また、TAT69は、マップ外部テーブル114において、新しい動的アドレスを含むフレームを外部ネットワークから受信した場合に、新たに割り振られた動的アドレスを、元の動的ポート・アドレスに戻すようにマップするマップ規則を構築する。マップ規則の構築が完了すると、ステップS1310において、新たに作成されたマップ規則が、処理中の現在のフレームについて実行され、ステップS1314で、TAT69が次のフレームのための待機状態に戻る。
【0063】
マップ・ローカル・テーブル112およびマップ外部テーブル114内に含まれた規則は、NTC65によって利用されるものであり、端末アクションを含まないことが好ましい。したがって、TAT69はフレームを処理し、次いで処理をNTC65に戻す。それにより、NTC65によって実行される汎用処理を干渉することなく、動的ポート・アドレスを利用して、フレームにおけるアドレス変換を透過的に実行する。なお、他のサブテーブルを、これらを必要とするいかなるアプリケーションによっても生成することができることに留意されたい。これらのサブテーブルは、TAT69によって使用されたサブテーブルとは異なり、端末アクションを含むことができる。
【0064】
図14は、ミミック・デバイス20がフレームを外部ネットワーク10から受信するとことによって着手するプロセスを示すフローチャートである。ステップS1401で、NDM64がフレームを外部ネットワーク10から受信し、NTC65に、フレームが処理のために使用可能であることを通知する。受信されたフレームの通知を受信すると、ステップS1402において、NTC65はフレームの処理を開始する。これは、図9を使用して記載したように、規則テーブル75内の規則テーブルにそのフレームを適用することによって行われる。ステップS1404において、フレームを規則テーブル75に適用する場合、処理中にどの規則がNTC65によってフレームに適用されるかに応じて、フレームを通過あるいはリダイレクトさせることができる。フレームがリダイレクトされない場合、ステップS1405において、NTC65はフレームをNDM64へ戻す。そしてステップS1406において、NDM64は、フレームによって指示されている通りに、そのフレームをローカル・ネットワーク上のデバイスへ、ローカル・ネットワーク・インターフェイス31を介して渡す。フレームがNDM64によって渡された後、ステップS1410で、処理が待機状態に戻される。
【0065】
他方、ステップS1404で、NTC65によって適用された規則がフレームをリダイレクトするものであった場合は、NTC65がフレームを、ミミック・デバイス20上で動作する適切なアプリケーション・モジュールへ、規則のアクションによって指示されたとおりに転送する。ステップS1409では、ミミック・デバイス20上のフレームを受信したアプリケーション・モジュールが、そのフレームを処理する。アプリケーション・モジュールによる処理が完了された後、ステップS1410で、処理が待機状態に戻される。
【0066】
図15は、ミミック・デバイス20におけるアプリケーションが、外部ネットワーク10またはローカル・ネットワーク14のいずれかにおけるデバイスと通信する方法を説明するフローチャートである。たとえば、電子メール印刷アプリケーション・モジュール71が電子メール印刷機能をレガシー・ネットワーク・プリンタ15に代わってサポートしている場合、電子メール印刷アプリケーション・モジュール71は、外部ネットワーク10におけるワークステーション12などの要求側クライアントと通信する必要がある可能性があり、また、印刷ジョブをレガシー・ネットワーク・プリンタ15にスプールするためにローカル・ネットワーク14上のレガシー・ネットワーク・プリンタ15と通信する必要もある可能性がある。したがって、電子メール印刷アプリケーション・モジュール71によって準備されたネットワーク・メッセージを、適切なネットワーク上の所望のデバイスへ適切にアドレス指定する必要があり、出力メッセージにおけるソースIPアドレスも、所望の透過性の効果を達成するために設定されなければならない。図15のフローチャートにおいて示した例は、セキュア・プリンティング・アプリケーション・モジュール70からの出力メッセージについてのものである。
【0067】
ステップS1501において、セキュア・プリンティング・アプリケーション・モジュール70は、ワークステーション12など、外部ネットワーク10上の要求側クライアント・デバイスへの応答メッセージ、あるいは、レガシー・ネットワーク・プリンタ15への印刷スプール・メッセージとする出力用メッセージを準備することができる。ステップS1502において、セキュア・プリンティング・アプリケーション・モジュール70は、出力メッセージをNTC65に送信する。次いで、NTC65は、出力メッセージがどのようにアドレス指定されるべきであるかを判断するために、当該出力メッセージを規則テーブル75のout規則テーブルに適用する(ステップS1503)。ステップS1504では、その出力メッセージが要求側クライアント・ネットワーク・デバイスにダイレクトされるものかどうかが、out規則テーブルに基づいて判断される。そうであった場合、処理はステップS1505へ進み、セキュア・プリンティング・アプリケーション・モジュール70は、代行動作している対象のレガシー・ネットワーク・プリンタのIPアドレスを、その出力メッセージにおけるソースIPアドレスとして使用する。このようにすることで、要求側クライアント・ネットワーク・デバイスによって受信された応答メッセージにおけるソースIPアドレスは要求された印刷機能を実行中であるレガシー・ネットワーク・プリンタのソースIPアドレスを含むことになり、このため、ミミック・デバイス20の存在は要求側クライアント・ネットワーク・デバイスに対しては透過的となる。次に、ステップS1505の後、出力メッセージはNDM64に送信される。NDM64は、ルーティング・テーブル74を利用して、その出力メッセージが、外部ネットワーク・インターフェイス・カード22及び外部ネットワーク10を介して、ワークステーション12など、要求側クライアント・ネットワーク・デバイスに送信されなければならないことを判断する(ステップS1506)。次いで、流れが進み、ステップS1515で戻る。
【0068】
ステップS1504で、セキュア・プリンティング・アプリケーション・モジュール70からの出力メッセージが要求側クライアント・ネットワーク・デバイスにダイレクトされないと判断された場合、処理はステップS1507へ進み、その出力メッセージが、レガシー・ネットワーク・プリンタ15など、セキュア・プリンティング・アプリケーション・モジュール70が代行動作の対象としているレガシー・ネットワーク・デバイスにダイレクトされるかどうかが判断される。ステップS1507において、出力メッセージが対応するレガシー・ネットワーク・デバイスにダイレクトされると判断された場合、処理はステップS1508へ進み、出力メッセージをレガシー・ネットワーク・デバイスに対して透過的にする必要があるかどうかが判断される。すなわち、出力メッセージにおけるソースIPアドレスに要求側クライアント・ネットワーク・デバイスのIPアドレスを含ませて、ローカル・ネットワーク14上のレガシー・ネットワーク・デバイスが、メッセージをミミック・デバイス20からではなく直接要求側クライアント・ネットワーク・デバイスから受信中であると信じるようにさせるべきであるかどうかが判断される。ステップS1508で、出力メッセージがレガシー・ネットワーク・デバイスに対して透過的であるべきであると判断された場合、処理はステップS1509へ進み、要求側クライアント・ネットワーク・デバイスのIPアドレスが、レガシー・ネットワーク・デバイスへの出力メッセージにおけるソースIPアドレスとして使用される。この場合、次いで処理がステップS1511へ進み、出力メッセージがNDM64へ送信される。NDM64は、ルーティング・テーブル74を利用して、出力メッセージがローカル・ネットワーク・インターフェイス・カード21とローカル・ネットワーク14を介して、対応するレガシー・ネットワーク・デバイスへ送信されるべきであることを判断する。そして、処理が進み、ステップS1515で戻る。
【0069】
ステップS1508で、出力メッセージをレガシー・ネットワーク・デバイスに対して透過的にすることが必要でないと判断された場合、処理はステップS1510へ進み、ローカル・ネットワーク・インターフェイス・カード21のIPアドレスが、出力メッセージにおけるソースIPアドレスとして使用される。この場合、上述のように、ローカル・ネットワーク・インターフェイス・カード21に、あらかじめ登録されたIPアドレスが割り当てられることが好ましい。これは、ローカル・ネットワーク14または外部ネットワーク10のいずれかにおけるいずれかの他のデバイスとの競合を回避するためである。なお、複数のミミック・デバイスが外部ネットワーク10上に存在する場合に、各ミミック・デバイスが、あらかじめ設定された同じIPアドレスを、それぞれのローカル・ネットワークを介しての通信のために使用することができることに留意されたい。これは各ローカル・ネットワークが外部ネットワーク10から切り離されており、したがってIPアドレス競合が回避されるからであ。この方法において、各ミミック・デバイスは、別々のIPアドレスがネットワーク・アドミニストレータによってそれに割り当てられることを必要とせず、それにより、外部ネットワーク10上の他のデバイスのための貴重なIPアドレスが節約される。ステップS1510の後、処理はステップS1511へ進み、出力メッセージがNDM64に送信される。NDM64は、ルーティング・テーブル74を利用し、出力メッセージを、ローカル・ネットワーク・インターフェイス・カード21とローカル・ネットワーク14を介して、レガシー・ネットワーク・プリンタ15など、対応するレガシー・ネットワーク・デバイスに送信する。次いで、処理が進み、ステップS1515で戻る。
【0070】
ステップS1507で、出力メッセージが対応するレガシー・ネットワーク・デバイスにダイレクトされないと判断された場合、処理はステップS1512へ進み、出力メッセージがミミック・デバイス70において存在する別のアプリケーションへダイレクトされるかどうかが判断される。たとえば、ワークステーション12など、外部ネットワーク10上のクライアント・ネットワーク・デバイスからの要求が、レガシー・ネットワーク・プリンタ15上のセキュア印刷ジョブの電子メール印刷のための要求である可能性がある。このような場合、印刷ジョブは、電子メール印刷アプリケーション・モジュール71およびセキュア・プリンティング・アプリケーション・モジュール70のサービスを必要とする。したがって、電子メール印刷アプリケーション・モジュール71は、レガシー・ネットワーク・プリンタ15へ印刷のために送信する前に、セキュア・プリンティング・アプリケーション・モジュール70と通信して解読された電子メール印刷ジョブを完了させることが必要となる。したがって、前述のアプリケーションのうちの1つによって出力メッセージが準備され、次いでミミック・デバイス20内で処理されて、それが他の所望のアプリケーションへ処理のために送信され戻されるようになる。具体的には、出力メッセージがミミック・デバイス20における別のアプリケーションにダイレクトされると判断された場合、処理はステップS1513へ進み、出力メッセージの宛先IPアドレスが外部ネットワーク・インターフェイス・カード22のIPアドレスに設定され、出力メッセージのソースIPアドレスが要求側クライアント・ネットワーク・デバイスのIPアドレスに設定される。この方法において、外部ネットワーク・インターフェイス・カード22に対応する値を有する宛先IPアドレスは、ルーティング・テーブル74と関連して、当該出力メッセージがミミック・デバイス20内に保たれるべきであることを通知する。加えて、要求側クライアント・ネットワーク・デバイスの値を有する出力メッセージにおけるソースIPアドレスにより、出力メッセージが透過性を有することができ、電子メール印刷アプリケーション・モジュール71など、ミミック・デバイス20内の受信側アプリケーションは、それがメッセージを要求側クライアント・ネットワーク・デバイスから直接受信したものと認識するようになる。
【0071】
ステップS1513の後、処理はステップS1514へ進み、出力メッセージがNDM64に送信される。NDM64は、ルーティング・テーブル74を調べ、次いで、外部ネットワーク・インターフェイス・カード22の値を有する出力メッセージにおける宛先IPアドレスに基づいて、出力メッセージをNTC65へ戻すようにループさせる。そして、NTC65は、今度は、出力メッセージを、電子メール印刷アプリケーション・モジュール71など、所望のアプリケーションへダイレクトする。このことに関して、NTC65が出力メッセージをミミック・デバイス20における所望のアプリケーションへダイレクトすることができるように、その出力メッセージが所望の宛先アプリケーションに対応するポート識別子を含むことについて、さらに説明する。たとえば、出力メッセージは電子メール印刷のサービスを要求することができ、したがって、その出力メッセージは電子メール印刷アプリケーション・モジュール71に対応するポート識別子をその中に有するようになる。したがって、出力メッセージが上述のようにNDM64からNTC65へ戻るようにループされるとき、NTC65は、出力メッセージが電子メール印刷アプリケーション・モジュール71へダイレクトされることを知る。ステップS1514の後、処理が進み、ステップS1515で戻る。
【0072】
上の考察および添付の図面に基づいて、本発明が、既存のレガシー・ネットワーク・デバイスの機能能力を透過的な様式において増強するための、汎用の効率的な方法を提供することが理解されよう。したがって、本発明は、ネットワーク・プリンタなどのレガシー・ネットワーク・デバイスを、新しいエンタープライズ機能のためのサポートを提供するために、より新しいバージョンと置き換えるための必要性を低減させる。加えて、レガシー・ネットワーク・デバイスにアドレス指定されたネットワーク・メッセージに応答することによって、ミミック・デバイスがレガシー・ネットワーク・デバイスに代わって動作するので、最小限の構成の労力しかシステム・アドミニストレータの側においては必要とされない。
【0073】
また、上述のミミック・デバイスは、レガシー・ネットワーク・プリンタの機能能力を増強することに限定されるものではなく、ネットワーク・コピー機、ネットワーク・スキャナ、ネットワーク・ワークステーションおよび他のネットワーク・デバイスにも適用することが可能であることを理解されたい。加えて、上述のミミック・デバイスは、ネットワーク・デバイスの機能増強に限定されず、これを容易に、他の機能を実行するように構成することもできる。上述の規則テーブルに含まれた規則を、アプリケーション・マネージャおよびミミック・デバイスにおいて存在するアプリケーションによって容易に構成して、ミミック・デバイスが様々な異なる機能を実行できるようにすることができる。
【0074】
特定の一実施形態では、ミミック・デバイスを使用することにより、ネットワーク接続機能を本来的に有していないデバイスに、ネットワーク接続性を提供することができる。この実施形態では、ローカル・ネットワーク14がユニバーサル・シリアル・バス(USB)ネットワークまたは別のタイプのシリアル・ネットワークとなり、ローカル・ネットワーク・インターフェイス・カード21がUSB接続性をサポートする。この場合、規則は、USBローカル・ネットワーク14上のプリンタに割り当てられたIPアドレスにダイレクトされる、外部ネットワーク10からのネットワーク・メッセージに代わって、ミミック・デバイス20を動作させるように構成される。次いで、他のアプリケーション・モジュール72のうち1つが、外部ネットワーク10上のIPメッセージとローカル・ネットワーク14上のUSBメッセージの間の変換器として動作する。
【0075】
類似の様式において、ミミック・デバイス20を、ドッキング・ステーションとして使用することもできる。例えば、USBとして動作するローカル・ネットワーク14を介して、あるいはローカル・ネットワーク・インターフェイス・カード21の代わりに別のシリアル・インターフェイスを通じて、デジタル・カメラなどのデバイスに接続することを可能とする。たとえば、デジタル・カメラがミミック・デバイス20上のシリアル・ポートに接続し、次いでデジタル・イメージをデジタル・カメラからミミック・デバイスにダウンロードし、デジタル・イメージを、外部ネットワーク10を介してサーバ11へ格納のために渡す。この場合も、単に上述の規則の再構成が必要とされるだけであり、アプリケーション・マネージャ・モジュール78および/またはミミック・デバイス20における他のアプリケーションによって実行され得る。
【0076】
ミミック・デバイス20はまた、その2つの独立したネットワーク・インターフェイス・カードを利用して、ユニバーサル・ネットワーキング・デバイスとして動作することもできる。たとえば、ミミック・デバイス20がルータ、ファイアウォール、NAT、サーバまたは他のネットワーク・デバイスとして動作するように命令するように規則を構成することができる。これは単に、ミミック・デバイス20におけるアプリケーションのうち1つを有して、外部ネットワーク10およびローカル・ネットワーク14上で検出されたフレームの所望の処理を実行するようにNTC65に命令するための規則を構成することである。このことに関して、ミミック・デバイス20における規則を、単に外部ネットワーク10およびローカル・ネットワーク14のうち1つまたは両方におけるネットワーク・トラフィックを監視するように構成することもでき、これはネットワーク・トラフィックの一部またはすべてを取り込み、そして記録することを含むことができる。最後に、ミミック・デバイス20の規則は、防護的モードにおいて望ましくないネットワーク・トラフィックの伝送を検出してインターセプトするように、あるいは、望ましくないネットワーク・トラフィックを攻撃的な敵対モードとして送信するように構成することができる。
【0077】
本発明を特定の例示的実施形態により記載した。本発明が上述の実施形態に限定されるものでなく、また、様々な変更および修正を、本発明の精神および範囲から逸脱することなく、当業者によって行うことができることを理解されたい。
【図面の簡単な説明】
【図1】本発明を実施することができるネットワーク環境の図である。
【図2A】本発明の一実施形態による、ミミック・デバイスの内部アーキテクチャを例示するブロック図である。
【図2B】本発明の一実施形態による、図2Aに示したミミック・デバイスの固定ディスクに含まれたモジュールを例示するブロック図である。
【図3】本発明の一実施形態による、ミミック・デバイスの機能コンポーネントを示すブロック図である。
【図4】本発明の一実施形態による、目標ディスクリプタ・テーブルを示すテーブル図である。
【図5】本発明の一実施形態による、発見プロセスを説明するためのフローチャートである。
【図6】本発明の一実施形態による、定期的ポーリング発見プロセスを説明するためのフローチャートである。
【図7】本発明の一実施形態による、規則テーブルを示すブロック図である。
【図8A】本発明の一実施形態による、IN規則テーブルを示すブロック図である。
【図8B】本発明の一実施形態による、OUT規則テーブルを示すブロック図である。
【図9】本発明の一実施形態による、図8Aおよび図8Bに示したINおよびOUT規則テーブルへのフレームの適用を説明するためのフローチャートである。
【図10】本発明の一実施形態による、フレームの処理を説明するためのフローチャートである。
【図11】本発明の一実施形態による、ルーティング・テーブルを示すブロック図である。
【図12】本発明の一実施形態による、動的ポート登録を説明するためのフローチャートである。
【図13】本発明の一実施形態による、ポート識別子のマッピングを説明するためのフローチャートである。
【図14】本発明の一実施形態による、入力フレームのルーティングを説明するためのフローチャートである。
【図15】本発明の一実施形態による、出力フレームのルーティングを説明するためのフローチャートである。
Claims (36)
- ネットワーク・デバイスを模倣するための方法であって、前記方法は、第1および第2のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行され、前記第1のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第2のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、
前記外部ネットワーク上に存在するクライアント・ネットワーク・デバイスから、前記ローカル・ネットワーク上に存在するレガシー・ネットワーク・デバイスに宛てられた入力メッセージを受信するステップと、
前記入力メッセージが、前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断するステップと、
前記入力メッセージが、前記アプリケーション・モジュールによって提供された機能を必要とする場合、前記入力メッセージを前記アプリケーション・モジュールにリダイレクトするステップと、ここで前記アプリケーション・モジュールは前記必要とされた機能を前記入力メッセージに応答して実行するものであり、
前記入力メッセージが、前記アプリケーション・モジュールによって提供された機能を必要としない場合、前記入力メッセージを、前記ローカル・ネットワークを介して、前記ローカル・ネットワーク上に存在する前記レガシー・ネットワーク・デバイスに渡すステップとを備えることを特徴とする方法。 - 前記リダイレクトするステップにおいて、前記アプリケーション・モジュールによる前記必要とされた機能の実行は、応答メッセージを前記アプリケーション・モジュールから前記外部ネットワークを介して前記クライアント・ネットワーク・デバイスへ送信するステップを含み、前記応答メッセージは、前記レガシー・ネットワーク・デバイスのソース識別アドレスに等しいソース識別アドレスを有することを特徴とする請求項1に記載の方法。
- 前記リダイレクトするステップにおいて、前記アプリケーション・モジュールによる前記必要とされた機能の実行は、ローカル・メッセージを、前記アプリケーション・モジュールから前記ローカル・ネットワークを介して前記レガシー・ネットワーク・デバイスへ送信するステップを含み、前記レガシー・ネットワーク・デバイスが前記ローカル・メッセージに応答して機能を実行することを特徴とする請求項1に記載の方法。
- 前記判断するステップにおいて、前記入力メッセージが前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断するために、入力用の規則テーブルが使用されることを特徴とする請求項1に記載の方法。
- 前記入力用の規則テーブルが複数の規則を含み、各規則は前記ローカル・ネットワーク上の複数のレガシー・ネットワーク・デバイスのうち1つに対応することを特徴とする請求項4に記載の方法。
- 前記ローカル・ネットワーク上の前記複数の各レガシー・ネットワーク・デバイスを発見するステップをさらに含み、該ステップは、前記ローカル・ネットワークを前記レガシー・ネットワーク・デバイスからのメッセージについてリスニングし、発見された各レガシー・ネットワーク・デバイスに対応する目標ディスクリプタ・エントリを目標ディスクリプタ・テーブルにおいて生成し、および、各目標ディスクリプタ・エントリに対応する規則を前記入力用の規則テーブルにおいて生成することを特徴とする請求項5に記載の方法。
- 前記入力用の規則テーブルは、前記対応するレガシー・ネットワーク・デバイスの要求された機能が前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを示す少なくとも1つの規則を含むことを特徴とする請求項6に記載の方法。
- 前記判断するステップにおいて、前記入力メッセージが前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを判断するために、前記入力メッセージが前記入力用の規則テーブルにおける前記複数の規則に適用されることを特徴とする請求項7に記載の方法。
- 各規則は、対応するレガシー・ネットワーク・デバイスの要求された機能が前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを示すために、前記規則に対応するレガシー・ネットワーク・デバイスのIPアドレスを含むことを特徴とする請求項7に記載の方法。
- 各規則は、対応する前記レガシー・ネットワーク・デバイスの要求された機能が、前記コンピューティング・デバイスにおいて存在するアプリケーション・モジュールによって提供された機能を必要とするかどうかを示すために、ポート識別子を含むことを特徴とする請求項7に記載の方法。
- 前記発見するステップが、発見メッセージを、発見された各レガシー・ネットワーク・デバイスに送信するステップと、前記発見メッセージに応答する前記対応するレガシー・ネットワーク・デバイスからの発見情報を受信するステップとを含み、前記発見情報は、前記対応するレガシー・ネットワーク・デバイスのための前記目標ディスクリプタ・エントリに配置されることを特徴とする請求項6に記載の方法。
- 発見された各レガシー・ネットワーク・デバイスに対して発見メッセージを定期的に送信し、かつ前記発見メッセージに応答して、発見情報を前記対応するレガシー・ネットワーク・デバイスから受信する、ポーリング・ステップをさらに含み、前記目標ディスクリプタ・エントリは、前記新たに受信された発見情報により更新されることを特徴とする請求項11に記載の方法。
- 前記発見されたレガシー・ネットワーク・デバイスのうち、前記発見メッセージに応答して送信されるべき発見情報が受信されないものがある場合、そのレガシー・ネットワーク・デバイスに対応する前記目標ディスクリプタ・エントリが削除されることを特徴とする請求項12に記載の方法。
- 発見された各レガシー・ネットワーク・デバイスについての通知を前記アプリケーション・モジュールへ送信するステップをさらに備え、前記通知は、前記対応するレガシー・ネットワーク・デバイスのための前記目標ディスクリプタ・エントリに関係する情報を含むことを特徴とする請求項6に記載の方法。
- 各目標ディスクリプタ・エントリを前記アプリケーション・モジュールに発行するステップをさらに備えることを特徴とする請求項6に記載の方法。
- 前記第2のネットワーク・インターフェイス・カードにあらかじめ設定されるIPアドレスが割り当てられ、前記ローカル・メッセージが前記あらかじめ設定されたIPアドレスに等しいソースIPアドレスを含むことを特徴とする請求項3に記載の方法。
- 前記ローカル・メッセージが、前記クライアント・ネットワーク・デバイスのソースIPアドレスに等しいソースIPアドレスを含むことを特徴とする請求項3に記載の方法。
- 前記ローカル・メッセージが、前記第2のネットワーク・インターフェイス・カードのソースIPアドレスに等しいソースIPアドレスを含むことを特徴とする請求項3に記載の方法。
- 前記リダイレクトするステップにおいて、前記アプリケーション・モジュールによる前記必要とされた機能の実行は、出力用のメッセージを前記外部ネットワークおよび前記ローカル・ネットワークのうちの一方の指定されたデバイスに送達するために準備することを含み、前記外部ネットワークおよび前記ローカル・ネットワークのうちどちらが前記出力用のメッセージを前記指定されたデバイスへ送信するために使用されるかを判断するためにルーティング・テーブルが使用されることを特徴とする請求項1に記載の方法。
- 前記ルーティング・テーブルは、前記外部ネットワークおよび前記ローカル・ネットワークのうちどちらが前記出力用のメッセージを前記指定されたデバイスへ送信するために使用されるべきかを示すために、各レガシー・ネットワーク・デバイスのための相互参照標識を含むことを特徴とする請求項19に記載の方法。
- 前記第2のネットワーク・インターフェイス・カードのあらかじめ設定されたIPアドレスが前記出力用のメッセージにおけるソースIPアドレスとして使用されるか、前記クライアント・ネットワーク・デバイスのソースIPアドレスが前記出力用のメッセージにおけるソースIPアドレスとして使用されるかを判断するために、前記ルーティング・テーブルが使用されることを特徴とする請求項19に記載の方法。
- 前記アプリケーション・モジュールによって開かれたポートのポート識別子を追跡し、前記入力用の規則テーブルにおいて前記ポート識別子に対応する規則を生成するステップをさらに備え、前記判断するステップにおいて、メッセージが前記規則に対応する前記ポート識別子を含む場合、前記規則が使用されて、前記メッセージが前記外部ネットワークから前記アプリケーション・モジュールへリダイレクトされる、請求項7に記載の方法。
- レガシー・ネットワーク・デバイスによって開かれたポートの最初のレガシー・ポート識別子を追跡するステップと、前記最初のレガシー・ポート識別子を新しいレガシー・ポート識別子にマップするステップと、前記最初のレガシー・ポート識別子を前記新しいレガシー・ポート識別子へマップする、前記レガシー・ネットワーク・デバイスに対応する第1のマップ規則を前記入力用の規則テーブルにおいて生成するステップと、前記新しいレガシー・ポート識別子を前記最初のレガシー・ポート識別子にマップする、前記レガシー・ネットワーク・デバイスに対応する第2のマップ規則を出力用の規則テーブルにおいて生成するステップとをさらに備えることを特徴とする請求項22に記載の方法。
- 前記ローカル・ネットワークはUSBネットワークであり、前記レガシー・ネットワーク・デバイスはプリンタであり、前記入力用の規則テーブルは、前記判断するステップにおいて前記プリンタについての入力メッセージを前記外部ネットワークから前記アプリケーション・モジュールにリダイレクトするために使用される規則を含み、前記アプリケーション・モジュールはUSBメッセージを、前記入力メッセージに応答して、前記ローカル・ネットワークを介して前記プリンタに送信することを特徴とする請求項4に記載の方法。
- 前記ローカル・ネットワークはUSBネットワークであり、前記レガシー・ネットワーク・デバイスはデジタル・カメラであり、デジタル・イメージを前記アプリケーション・モジュールへ前記デジタル・カメラから、前記ローカル・ネットワークを介してダウンロードするステップと、前記デジタル・イメージを前記外部ネットワーク上のサーバに送信するステップとをさらに備えることを特徴とする請求項4に記載の方法。
- 前記入力用の規則テーブルは、前記判断するステップにおいて入力メッセージを前記外部ネットワークから前記ローカル・ネットワーク上のネットワーク・デバイスにルーティングするために使用される規則を含むことを特徴とする請求項4に記載の方法。
- 前記入力用の規則テーブルは、前記判断するステップにおいて入力メッセージを前記外部ネットワークから取り込むために使用される規則を含み、前記ローカル・ネットワーク上での前記入力メッセージの伝送を防止するステップをさらに備えることを特徴とする請求項4に記載の方法。
- 前記入力用の規則テーブルは、前記判断するステップにおいて前記外部ネットワークからのすべての入力メッセージが前記アプリケーション・モジュールによって提供された機能を必要としないことを判断するために使用される規則を含み、それにより、前記外部ネットワークからのすべての入力メッセージは前記ローカル・ネットワークを介して渡されることを特徴とする請求項4に記載の方法。
- 前記アプリケーション・モジュールは、少なくとも1つのファイルを前記ローカル・ネットワークを介して前記レガシー・ネットワーク・デバイスへ、および少なくとも1つのファイルを前記外部ネットワークを介して前記クライアント・ネットワーク・デバイスへ送信するファイル・サーバであることを特徴とする請求項4に記載の方法。
- 前記入力用の規則テーブルは、指定された入力メッセージのセットが指定された入力メッセージのセットのそれぞれを記録するアプリケーション・モジュールにコピーされるかどうかを判断するために、前記判断するステップにおいて使用される規則を含むことを特徴とする請求項4に記載の方法。
- 前記入力用の規則テーブルは、前記判断するステップにおいて、前記入力メッセージが望ましくないメッセージであるかどうかを検出するために使用される規則を含み、前記入力メッセージが望ましくないメッセージである場合に、前記入力メッセージは前記アプリケーション・モジュールによって提供された機能を必要とするものと判断し、それにより前記入力メッセージが前記アプリケーション・モジュールにリダイレクトされることを特徴とする請求項4に記載の方法。
- 複数の望ましくないメッセージを前記アプリケーション・モジュールから、前記外部ネットワークおよび前記ローカル・ネットワークのうち1つを介して伝送するステップをさらに備えることを特徴とする請求項1に記載の方法。
- ネットワーク・デバイスを模倣するための方法であって、前記方法は、第1および第2のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行され、前記第1のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第2のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、
前記ローカル・ネットワーク上の複数のレガシー・ネットワーク・プリンタを、前記ローカル・ネットワーク上で前記複数の各レガシー・ネットワーク・プリンタからのメッセージを検出することによって発見するステップと、
前記発見された各レガシー・ネットワーク・プリンタのために規則テーブルにおいて規則を生成するステップと、ここで各規則は前記対応するレガシー・ネットワーク・プリンタの前記IPアドレスを含み、前記コンピューティング・デバイスにおけるアプリケーション・モジュールが、前記対応するレガシー・ネットワーク・プリンタに代わって機能を実行するかどうかを示し、
前記外部ネットワーク上に存在するクライアント・ネットワーク・デバイスからの入力メッセージを受信するステップと、ここで該入力メッセージは、前記複数のレガシー・ネットワーク・プリンタのうち指定されたもののIPアドレスに宛てられており、
前記指定されたレガシー・ネットワーク・プリンタに対応する規則に基づいて、前記入力メッセージが、前記アプリケーション・モジュールによって実行される機能を必要とするかどうかを判断するステップと、
前記入力メッセージが前記アプリケーション・モジュールからのサポートを必要とする場合、前記入力メッセージを前記アプリケーション・モジュールにリダイレクトするステップと、ここで前記アプリケーション・モジュールは前記必要とされた機能を前記入力メッセージに応答して実行し、
前記入力メッセージが、前記アプリケーション・モジュールによって提供された機能を必要としない場合、前記入力メッセージを、前記ローカル・ネットワークを介して、前記指定されたレガシー・ネットワーク・プリンタに渡すステップとを備えることを特徴とする方法。 - ネットワーク・デバイスを模倣するためのコンピューティング・デバイスであって、前記コンピューティング・デバイスは第1および第2のネットワーク・インターフェイス・カードを有し、前記第1のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第2のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、
請求項1乃至33のいずれかに記載の方法を実行するように実行可能であるプロセス・ステップを格納するためのプログラム・メモリと、
前記プログラム・メモリに格納された前記プロセス・ステップを実行するためのプロセッサとを備えることを特徴とするコンピューティング・デバイス。 - コンピュータ可読媒体上に格納されたコンピュータ実行可能プロセス・ステップであって、前記コンピュータ実行可能プロセス・ステップは、ネットワーク・デバイスを模倣するためのものであり、かつ、第1および第2のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行されるものであり、ここで前記第1のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第2のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、前記コンピュータ実行可能プロセス・ステップが、請求項1乃至33のいずれかに記載の方法を実行するように実行可能であるプロセス・ステップを含むことを特徴とするコンピュータ実行可能プロセス・ステップ。
- コンピュータ実行可能プロセス・ステップを格納するコンピュータ可読媒体であって、前記コンピュータ実行可能プロセス・ステップは、ネットワーク・デバイスを模倣するためのものであり、かつ、第1および第2のネットワーク・インターフェイス・カードを有するコンピューティング・デバイスにおいて実行されるものであり、ここで前記第1のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスを外部ネットワークに接続し、前記第2のネットワーク・インターフェイス・カードは前記コンピューティング・デバイスをローカル・ネットワークに接続し、前記コンピュータ実行可能プロセス・ステップが、請求項1乃至33のいずれかに記載の方法を実行するように実行可能であるプロセス・ステップを含むことを特徴とするコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/853,767 US7552239B2 (en) | 2001-05-14 | 2001-05-14 | Network device mimic support |
US09/853767 | 2001-05-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003099230A JP2003099230A (ja) | 2003-04-04 |
JP4024589B2 true JP4024589B2 (ja) | 2007-12-19 |
Family
ID=25316837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002138484A Expired - Fee Related JP4024589B2 (ja) | 2001-05-14 | 2002-05-14 | ネットワーク・デバイスのミミック・サポート |
Country Status (3)
Country | Link |
---|---|
US (1) | US7552239B2 (ja) |
EP (1) | EP1259029B1 (ja) |
JP (1) | JP4024589B2 (ja) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3888452B2 (ja) * | 2001-07-02 | 2007-03-07 | セイコーエプソン株式会社 | ネットワークを介した印刷方法 |
US7515546B2 (en) * | 2001-12-19 | 2009-04-07 | Alcatel-Lucent Canada Inc. | Method and apparatus for automatic discovery of network devices with data forwarding capabilities |
US8040869B2 (en) * | 2001-12-19 | 2011-10-18 | Alcatel Lucent | Method and apparatus for automatic discovery of logical links between network devices |
US7856599B2 (en) * | 2001-12-19 | 2010-12-21 | Alcatel-Lucent Canada Inc. | Method and system for IP link management |
US6963932B2 (en) * | 2002-01-30 | 2005-11-08 | Intel Corporation | Intermediate driver having a fail-over function for a virtual network interface card in a system utilizing Infiniband architecture |
US7082460B2 (en) * | 2002-04-19 | 2006-07-25 | Axeda Corporation | Configuring a network gateway |
US7606882B2 (en) * | 2002-05-13 | 2009-10-20 | Ricoh Co., Ltd. | Method for obtaining an identifier of a monitored device |
US7756956B2 (en) | 2002-11-14 | 2010-07-13 | Canon Development Americas, Inc. | Mimic support address resolution |
US20050071493A1 (en) * | 2003-09-30 | 2005-03-31 | Sheng Lee | SNMP packet filtering for printing devices |
JP2005135173A (ja) * | 2003-10-30 | 2005-05-26 | Canon Inc | 情報処理方法、情報処理システム、プログラム及び記憶媒体 |
US8122280B2 (en) | 2004-08-26 | 2012-02-21 | Open Invention Network, Llc | Method and system for providing high availability to computer applications |
GB0505300D0 (en) * | 2005-03-15 | 2005-04-20 | Level 5 Networks Ltd | Transmitting data |
US8195722B1 (en) | 2008-12-15 | 2012-06-05 | Open Invention Network, Llc | Method and system for providing storage checkpointing to a group of independent computer applications |
US8078910B1 (en) | 2008-12-15 | 2011-12-13 | Open Invention Network, Llc | Method and system for providing coordinated checkpointing to a group of independent computer applications |
US8752049B1 (en) | 2008-12-15 | 2014-06-10 | Open Invention Network, Llc | Method and computer readable medium for providing checkpointing to windows application groups |
US8082468B1 (en) | 2008-12-15 | 2011-12-20 | Open Invention Networks, Llc | Method and system for providing coordinated checkpointing to a group of independent computer applications |
US7606225B2 (en) | 2006-02-06 | 2009-10-20 | Fortinet, Inc. | Integrated security switch |
US8040895B2 (en) | 2006-03-22 | 2011-10-18 | Cisco Technology, Inc. | Method and system for removing dead access control entries (ACEs) |
US7735116B1 (en) * | 2006-03-24 | 2010-06-08 | Symantec Corporation | System and method for unified threat management with a relational rules methodology |
JP4618804B2 (ja) | 2006-03-24 | 2011-01-26 | キヤノン株式会社 | 情報処理装置及び情報処理方法とコンピュータプログラム |
WO2008011253A2 (en) * | 2006-07-17 | 2008-01-24 | Bigfoot Networks, Inc. | Host posing network device and method thereof |
JP2008035272A (ja) | 2006-07-28 | 2008-02-14 | Canon Inc | 情報処理システム及び当該システムにおけるデータ通信方法 |
US7738457B2 (en) * | 2006-12-20 | 2010-06-15 | Oracle America, Inc. | Method and system for virtual routing using containers |
US7633864B2 (en) * | 2006-12-20 | 2009-12-15 | Sun Microsystems, Inc. | Method and system for creating a demilitarized zone using network stack instances |
US20080165381A1 (en) * | 2007-01-05 | 2008-07-10 | Andrew Rodney Ferlitsch | Methods and Systems for Controlling an Imaging Device |
WO2009137762A1 (en) * | 2008-05-08 | 2009-11-12 | Pharos Systems Interational, Inc. | Printer control device with printer configuration control features and related methods |
US20090285207A1 (en) * | 2008-05-15 | 2009-11-19 | Cohen Yochai | System and method for routing packets using tags |
US8909775B2 (en) * | 2008-06-25 | 2014-12-09 | Xerox Corporation | Method and apparatus for including a security feature within a document |
US8352623B2 (en) * | 2008-09-17 | 2013-01-08 | International Business Machines Corporation | System for energy efficient computer management environment via tightly integrated target status and directed work sessions |
JP5199827B2 (ja) * | 2008-10-28 | 2013-05-15 | 理想科学工業株式会社 | 画像形成装置、印刷システム |
US8539488B1 (en) | 2009-04-10 | 2013-09-17 | Open Invention Network, Llc | System and method for application isolation with live migration |
US8464256B1 (en) | 2009-04-10 | 2013-06-11 | Open Invention Network, Llc | System and method for hierarchical interception with isolated environments |
US8341631B2 (en) * | 2009-04-10 | 2012-12-25 | Open Invention Network Llc | System and method for application isolation |
US8826070B1 (en) | 2008-12-15 | 2014-09-02 | Open Invention Network, Llc | Method and system for providing storage checkpointing to a group of independent computer applications |
US8745442B1 (en) | 2011-04-28 | 2014-06-03 | Open Invention Network, Llc | System and method for hybrid kernel- and user-space checkpointing |
US10019327B1 (en) | 2008-12-15 | 2018-07-10 | Open Invention Network Llc | System and method for hybrid kernel- and user-space incremental and full checkpointing |
US8880473B1 (en) | 2008-12-15 | 2014-11-04 | Open Invention Network, Llc | Method and system for providing storage checkpointing to a group of independent computer applications |
US8782670B2 (en) * | 2009-04-10 | 2014-07-15 | Open Invention Network, Llc | System and method for application isolation |
US8752048B1 (en) | 2008-12-15 | 2014-06-10 | Open Invention Network, Llc | Method and system for providing checkpointing to windows application groups |
US8904004B2 (en) * | 2009-04-10 | 2014-12-02 | Open Invention Network, Llc | System and method for maintaining mappings between application resources inside and outside isolated environments |
US9354977B1 (en) * | 2008-12-15 | 2016-05-31 | Open Invention Network Llc | System and method for hybrid kernel- and user-space incremental and full checkpointing |
US8281317B1 (en) | 2008-12-15 | 2012-10-02 | Open Invention Network Llc | Method and computer readable medium for providing checkpointing to windows application groups |
US9256496B1 (en) * | 2008-12-15 | 2016-02-09 | Open Invention Network, Llc | System and method for hybrid kernel—and user-space incremental and full checkpointing |
US9577893B1 (en) | 2009-04-10 | 2017-02-21 | Open Invention Network Llc | System and method for cached streaming application isolation |
US8555360B1 (en) | 2009-04-10 | 2013-10-08 | Open Invention Network Llc | System and method for on-line and off-line streaming application isolation |
US11538078B1 (en) | 2009-04-10 | 2022-12-27 | International Business Machines Corporation | System and method for usage billing of hosted applications |
US8401941B1 (en) | 2009-04-10 | 2013-03-19 | Open Invention Network Llc | System and method for usage billing of hosted applications |
US9058599B1 (en) | 2009-04-10 | 2015-06-16 | Open Invention Network, Llc | System and method for usage billing of hosted applications |
US10419504B1 (en) | 2009-04-10 | 2019-09-17 | Open Invention Network Llc | System and method for streaming application isolation |
US8401940B1 (en) | 2009-04-10 | 2013-03-19 | Open Invention Network Llc | System and method for usage billing of hosted applications |
US8418236B1 (en) | 2009-04-10 | 2013-04-09 | Open Invention Network Llc | System and method for streaming application isolation |
US8667574B2 (en) | 2010-05-10 | 2014-03-04 | Canon Kabushiki Kaisha | Assigning a network address for a virtual device to virtually extend the functionality of a network device |
JP5703756B2 (ja) * | 2011-01-05 | 2015-04-22 | 株式会社リコー | 画像処理装置 |
US11625307B1 (en) | 2011-04-28 | 2023-04-11 | International Business Machines Corporation | System and method for hybrid kernel- and user-space incremental and full checkpointing |
US11307941B1 (en) | 2011-04-28 | 2022-04-19 | Open Invention Network Llc | System and method for hybrid kernel- and user-space incremental and full checkpointing |
US9467480B2 (en) * | 2013-09-16 | 2016-10-11 | Qualcomm Incorporated | Selectively multiplexing incoming WebRTC traffic and/or de-multiplexing outgoing WebRTC traffic by a client-based WebRTC proxy on behalf of a WebRTC multimedia client application |
CA3020328A1 (en) * | 2016-04-06 | 2017-10-12 | Emerge Print Management, Llc | Apparatus and method for metering and monitoring printer related data on non-networked printers |
US11243722B2 (en) * | 2019-02-11 | 2022-02-08 | Cisco Technology, Inc. | System and method of providing universal mobile internet proxy printing |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497463A (en) * | 1992-09-25 | 1996-03-05 | Bull Hn Information Systems Inc. | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system |
US5568612A (en) * | 1992-11-18 | 1996-10-22 | Canon Kabushiki Kaisha | Method and apparatus for advertising services of two network servers from a single network node |
US5657452A (en) * | 1995-09-08 | 1997-08-12 | U.S. Robotics Corp. | Transparent support of protocol and data compression features for data communication |
US6058429A (en) * | 1995-12-08 | 2000-05-02 | Nortel Networks Corporation | Method and apparatus for forwarding traffic between locality attached networks using level 3 addressing information |
US5898830A (en) * | 1996-10-17 | 1999-04-27 | Network Engineering Software | Firewall providing enhanced network security and user transparency |
US6088120A (en) * | 1996-03-27 | 2000-07-11 | Fuji Xerox Co., Ltd. | Printer managing apparatus, printer system and printer setting method |
US6205416B1 (en) * | 1996-04-01 | 2001-03-20 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with direct OS/390 host interface |
US6032208A (en) * | 1996-04-12 | 2000-02-29 | Fisher-Rosemount Systems, Inc. | Process control system for versatile control of multiple process devices of various device types |
US6098116A (en) * | 1996-04-12 | 2000-08-01 | Fisher-Rosemont Systems, Inc. | Process control system including a method and apparatus for automatically sensing the connection of devices to a network |
US6163383A (en) * | 1996-04-17 | 2000-12-19 | Fuji Xerox Co., Ltd. | Method for providing print output security in a multinetwork environment |
US6020973A (en) * | 1997-04-15 | 2000-02-01 | Xerox Corporation | Centralized print server for interfacing one or more network clients with a plurality of printing devices |
US6073266A (en) * | 1997-04-16 | 2000-06-06 | Ericsson, Inc. | Cebus data link layer proxy |
US5935224A (en) * | 1997-04-24 | 1999-08-10 | Microsoft Corporation | Method and apparatus for adaptively coupling an external peripheral device to either a universal serial bus port on a computer or hub or a game port on a computer |
US5832191A (en) * | 1997-04-30 | 1998-11-03 | Hewlett-Packard Company | Method and apparatus for automatically enabling communication with a network printer |
US5949779A (en) * | 1997-05-08 | 1999-09-07 | Ericsson, Inc. | Multiprotocol adaptor for communication between CEBus devices and remote controllers over an ATM-based broadband access network |
US6163806A (en) * | 1997-06-30 | 2000-12-19 | Sun Microsystems, Inc. | System and method for transparent, global access to physical devices on a computer cluster |
US6170012B1 (en) | 1997-09-12 | 2001-01-02 | Lucent Technologies Inc. | Methods and apparatus for a computer network firewall with cache query processing |
US6240456B1 (en) * | 1997-09-18 | 2001-05-29 | Microsoft Corporation | System and method for collecting printer administration information |
JPH11122301A (ja) * | 1997-10-20 | 1999-04-30 | Fujitsu Ltd | アドレス変換接続装置 |
US6157950A (en) * | 1997-12-05 | 2000-12-05 | Encanto Networks, Inc. | Methods and apparatus for interfacing a computer or small network to a wide area network such as the internet |
US6237049B1 (en) | 1998-01-06 | 2001-05-22 | Sony Corporation Of Japan | Method and system for defining and discovering proxy functionality on a distributed audio video network |
US6131163A (en) * | 1998-02-17 | 2000-10-10 | Cisco Technology, Inc. | Network gateway mechanism having a protocol stack proxy |
JPH11305967A (ja) * | 1998-04-21 | 1999-11-05 | Ricoh Co Ltd | 遠隔印刷システム |
US6757280B1 (en) * | 1998-10-02 | 2004-06-29 | Canon Kabushiki Kaisha | Assigning unique SNMP identifiers |
JP2000172466A (ja) * | 1998-12-02 | 2000-06-23 | Canon Inc | 情報処理システムおよび情報処理方法 |
US6816270B1 (en) * | 1999-03-25 | 2004-11-09 | International Business Machines Corporation | Method and apparatus for supporting application and device independent print support |
FR2798795B1 (fr) | 1999-09-16 | 2002-05-10 | Bull Sa | Relais d'acces a un reseau serveur, transparent sur un reseau client |
US6742039B1 (en) * | 1999-12-20 | 2004-05-25 | Intel Corporation | System and method for connecting to a device on a protected network |
US6611863B1 (en) * | 2000-06-05 | 2003-08-26 | Intel Corporation | Automatic device assignment through programmable device discovery for policy based network management |
JP2002182866A (ja) * | 2000-12-13 | 2002-06-28 | Fujitsu Ltd | ネットワーク環境における印刷制御方法、プリントサーバ、クライアント、および記録媒体 |
-
2001
- 2001-05-14 US US09/853,767 patent/US7552239B2/en not_active Expired - Fee Related
-
2002
- 2002-04-30 EP EP02253065A patent/EP1259029B1/en not_active Expired - Lifetime
- 2002-05-14 JP JP2002138484A patent/JP4024589B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1259029B1 (en) | 2013-02-27 |
US7552239B2 (en) | 2009-06-23 |
JP2003099230A (ja) | 2003-04-04 |
US20020169884A1 (en) | 2002-11-14 |
EP1259029A2 (en) | 2002-11-20 |
EP1259029A3 (en) | 2004-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4024589B2 (ja) | ネットワーク・デバイスのミミック・サポート | |
US10541877B2 (en) | Dynamic reservation protocol for 5G network slicing | |
EP2780818B1 (en) | Virtual network interface objects | |
US8166538B2 (en) | Unified architecture for remote network access | |
US20100106804A1 (en) | System and method for processing local files using remote applications | |
EP1271302A2 (en) | Print queue manager | |
US20050180326A1 (en) | Method and system for remotely booting a computer device using a peer device | |
WO2017167186A1 (zh) | 实现网络功能通信的架构、方法及装置 | |
Cisco | TN3270 Server Commands | |
Cisco | TN3270 Server Commands | |
Cisco | TN3270 Server Commands | |
Cisco | TN3270 Server Commands | |
Cisco | TN3270 Server Commands | |
Cisco | TN3270 Server Commands | |
Cisco | TN3270 Server Commands | |
Cisco | Configuring IBM Channel Attach | |
Cisco | Configuring IBM Channel Attach | |
Cisco | Configuring IBM Channel Attach | |
Cisco | Release Note and Document Update for Cisco IOS Release 11.0 BT | |
Cisco | Configuring the TN3270 Server | |
Cisco | Configuring IBM Channel Attach | |
Cisco | Configuring IBM Channel Attach | |
Cisco | Configuring IBM Channel Attach | |
CN115766687B (zh) | 一种家庭网关ipv6文件系统及其交互方法 | |
Janovic | Integrating ACI with Virtualization and Container Platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070827 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071003 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4024589 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101012 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101012 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111012 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121012 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131012 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |