(57)【要約】【課題】アプリケーションと非ネットワーク型Ｉ／Ｏデバイスとの間の通信を容易にするソケットＡＰＩコール・エミュレーションの方法およびシステムを提供する。【解決手段】本発明に係るソケットＡＰＩコール・エミュレーションの方法およびシステムは、アプリケーションから非ネットワーク型Ｉ／Ｏデバイスまでの途中で、ＩＰ対応のソケットＡＰＩコールを補足し、修正する。そのため、このようなＩＰ対応のソケットＡＰＩコールは、ＩＰ非対応のＩ／Ｏアクセスコールとして非ネットワーク型Ｉ／Ｏデバイスに受け取られる。本発明によれば、アプリケーションはソケットＡＰＩコールを用いて全てのタイプのエンティティと通信することができる。したがって、本発明によれば、アプリケーション開発者の負荷を軽減することができる。【選択図】図２
2010049676.tif 000002
【特許請求の範囲】
【請求項１】
非ネットワーク型Ｉ／Ｏデバイスを利用するアプリケーションを実行するアプリケーション実行部と、
上記アプリケーション実行部と接続可能なソケットＡＰＩを実行するソケット実行部と、
上記ソケット実行部と接続可能であり、上記非ネットワーク型Ｉ／Ｏデバイスに対応する非ネットワーク型Ｉ／Ｏデバイスドライバを実行するドライバ実行部とを含み、
上記ソケット実行部は、上記アプリケーション実行部からソケットＡＰＩコールを受け取ると、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づき、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであるか否かを判定し、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであると判定した場合、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ドライバ実行部に配送することを特徴とするコンピュータデバイス。
【請求項２】
上記ＩＰアドレスがループバックアドレスである場合、上記ソケット実行部は、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであると判定することを特徴とする請求項１に記載のコンピュータデバイス。
【請求項３】
上記ソケット実行部は、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていると判定した場合、上記ＩＰ非対応のＩ／Ｏアクセスコールを、上記ドライバ実行部に配送することを特徴とする請求項１に記載のコンピュータデバイス。
【請求項４】
上記ソケット実行部と接続可能なＴＣＰ／ＩＰプロトコルスタックを実行するプロトコル実行部を含み、
上記ソケット実行部は、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていないと判定した場合、上記ソケットＡＰＩコールを上記プロトコル実行部に配送することを特徴とする請求項１または３に記載のコンピュータデバイス。
【請求項５】
上記非ネットワーク型Ｉ／Ｏデバイスドライバは、ＣＯＭ（ＲＳ−２３２）、ＵＳＢ、パラレルポート、またはＦｉｒｅＷｉｒｅ（登録商標）のデバイスドライバであることを特徴とする請求項１から４のいずれか一項に記載のコンピュータデバイス。
【請求項６】
上記ソケット実行部は、上記ソケットＡＰＩコールに含まれるＴＣＰポート番号および上記ＩＰアドレスに基づき、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであるか否かを判定することを特徴とする請求項１に記載のコンピュータデバイス。
【請求項７】
非ネットワーク型Ｉ／Ｏデバイスを利用するアプリケーションを実行するアプリケーション実行部と、上記アプリケーション実行部と接続可能なソケットＡＰＩを実行するソケット実行部と、上記ソケット実行部と接続可能であり上記非ネットワーク型Ｉ／Ｏデバイスに対応する非ネットワーク型Ｉ／Ｏデバイスドライバを実行するドライバ実行部とを含むコンピュータデバイスにおけるソケットＡＰＩコール・エミュレーションの方法であって、
上記ソケット実行部が、上記アプリケーション実行部からソケットＡＰＩコールを受け取る受領ステップと、
上記ソケット実行部が、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づき、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであるか否かを判定する判定ステップと、
上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであると判定した場合、上記ソケット実行部が、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ドライバ実行部に配送する配送ステップとを含むことを特徴とするソケットＡＰＩコール・エミュレーションの方法。
【請求項８】
上記判定ステップにおいては、上記ＩＰアドレスがループバックアドレスである場合、上記ソケット実行部は、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであると判定することを特徴とする請求項７に記載のソケットＡＰＩコール・エミュレーションの方法。
【請求項９】
上記配送ステップにおいては、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていると判定した場合、上記ＩＰ非対応のＩ／Ｏアクセスコールを、上記ドライバ実行部に配送することを特徴とする請求項７に記載のソケットＡＰＩコール・エミュレーションの方法。
【請求項１０】
上記コンピュータデバイスは、上記ソケット実行部と接続可能なＴＣＰ／ＩＰプロトコルスタックを実行するプロトコル実行部を含み、
上記配送ステップにおいては、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていないと判定した場合、上記ソケット実行部は、上記ソケットＡＰＩコールを上記プロトコル実行部に配送することを特徴とする請求項７または８に記載のソケットＡＰＩコール・エミュレーションの方法。
【請求項１１】
上記非ネットワーク型Ｉ／Ｏデバイスドライバは、ＣＯＭ（ＲＳ−２３２）、ＵＳＢ、パラレルポート、またはＦｉｒｅＷｉｒｅ（登録商標）のデバイスドライバであることを特徴とする請求項７から１０のいずれか一項に記載のソケットＡＰＩコール・エミュレーションの方法。
【請求項１２】
上記判定ステップにおいては、上記ソケット実行部は、上記ソケットＡＰＩコールに含まれるＴＣＰポート番号および上記ＩＰアドレスに基づき、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであるか否かを判定することを特徴とする請求項７に記載のソケットＡＰＩコール・エミュレーションの方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションと非ネットワーク型のＩ／Ｏ（入出力：input/output）デバイスに関し、特に、コンピュータデバイス上で実行されるアプリケーションと当該コンピュータデバイスに直接接続される非ネットワーク型のＩ／Ｏデバイスとの間の通信を円滑に行うために、ソケットアプリケーションプログラミングインターフェース（ソケットＡＰＩ）をエミュレートする方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータデバイス上で実行されるアプリケーションは、他のエンティティと通信するために、アプリケーションプログラミングインターフェース（ＡＰＩ：application programming interface）コールを利用する。ＡＰＩコールは、宛先の機器（エンティティ）に依存する種々の伝送機構を利用して処理される。発信元のアプリケーションがあるコンピュータデバイスが到達可能なネットワーク接続されたＩ／Ｏデバイス上のアプリケーションを宛先とするＡＰＩコールは、ＩＰ（インターネットプロトコル）対応の伝送機構（例えばＩＰパケット）を利用して処理されるソケットＡＰＩコールでありうる。これに対し、発信元のアプリケーションがあるコンピュータデバイスに直接接続される非ネットワーク型のＩ／Ｏデバイス上のアプリケーションを宛先とするＡＰＩコールは、非ネットワーク型のＩ／ＯデバイスによってサポートされるＩＰ非対応の伝送機構を利用して処理されうる。非ネットワーク型のＩ／Ｏデバイスには、例えば、ＲＳ−２３２（ＣＯＭ）、ユニバーサルシリアルバス（ＵＳＢ）、ＩＥＥＥ標準規格１２８４（パラレルポート）、および／または、ＩＥＥＥ標準規格１３９４（ＦｉｒｅＷｉｒｅ（登録商標））のＩ／Ｏデバイス等がある。ここで、ソケットＡＰＩは、一般的にはアプリケーションがネットワークで接続された他のコンピュータデバイスで動作するアプリケーションと通信するために、アプリケーションによってコールされる、ＯＳ等が用意しているソフトウェアである。また、ＴＣＰ／ＩＰプロトコルスタックは、ネットワーク接続されたコンピュータ間においてＴＣＰ／ＩＰプロトコルに従ってデータの送受信を行うソフトウェアである。
【０００３】
特許文献１には、通信手段のテスト装置内の通信制御プログラムの構造を、ＡＰＩ制御部、プロトコル制御部、ドライバの３つの階層に明確に分離したものが開示されている。これによれば、プロトコル制御部を介してデータ転送が行われる本番用パスに加え、プロトコル制御部を介さずにＡＰＩとドライバ間でそのままデータ転送が行われるテスト用パスを設けて、本番用パスとテスト用パスを折り返し接続する構成としている。これによって、専用のテスト装置を準備することなくこのテスト装置だけでプロトコルのテストを行うことが可能となり、テストの簡便化および低コスト化を図ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−３０２２３４号公報（１９９５年１１月１４日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の構成では、下記の問題を生じる。
【０００６】
種々の伝送機構間の違いのせいで、アプリケーション開発者は慣習的に、アプリケーションが通信するエンティティの各タイプ毎に、個別のコードおよび付属文書を開発し、かつ保守しなければならなかった。このように個別のコードおよび付属文書が要求されることは、ソフトウェア開発において費やされる時間および費用が増大することに繋がり、またコードの複雑さを増大させる。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、アプリケーションと非ネットワーク型Ｉ／Ｏデバイスとの間の通信を容易にするソケットＡＰＩコール・エミュレーションの方法およびシステムを提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る一態様において、コンピュータデバイスは、非ネットワーク型Ｉ／Ｏデバイスを利用するアプリケーションを実行するアプリケーション実行部と、上記アプリケーション実行部と接続可能なソケットＡＰＩを実行するソケット実行部と、上記ソケット実行部と接続可能であり、上記非ネットワーク型Ｉ／Ｏデバイスに対応する非ネットワーク型Ｉ／Ｏデバイスドライバを実行するドライバ実行部とを含み、上記ソケット実行部は、上記アプリケーション実行部からソケットＡＰＩコールを受け取ると、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づき、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであるか否かを判定し、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであると判定した場合、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ドライバ実行部に配送することを特徴としている。
【０００９】
本発明に係る他の態様において、コンピュータデバイスは、アプリケーションと、上記アプリケーションと接続可能なソケットＡＰＩと、上記ソケットＡＰＩと接続可能な非ネットワーク型Ｉ／Ｏデバイスドライバとを含み、上記ソケットＡＰＩは、上記アプリケーションからソケットＡＰＩコールを受け取り、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づいた上記非ネットワーク型Ｉ／Ｏデバイスドライバに、選択的に配送することを特徴としている。
【００１０】
また、上記ＩＰアドレスは、ループバックアドレスであってもよい。
【００１１】
また、上記ソケットＡＰＩは、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていると判定した場合、上記ＩＰ非対応のＩ／Ｏアクセスコールを、上記非ネットワーク型Ｉ／Ｏデバイスドライバに配送してもよい。
【００１２】
また、上記ソケットＡＰＩは、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていないと判定した場合、上記ソケットＡＰＩコールを、ＴＣＰ／ＩＰプロトコルスタックに配送してもよい。
【００１３】
また、上記非ネットワーク型Ｉ／Ｏデバイスドライバは、ＣＯＭ（ＲＳ−２３２）、ＵＳＢ、パラレルポート、またはＦｉｒｅＷｉｒｅ（登録商標）のデバイスドライバであってもよい。
【００１４】
また、上記ソケットＡＰＩは、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ソケットＡＰＩコールに含まれるＴＣＰポート番号および上記ＩＰアドレスに基づいた上記非ネットワーク型Ｉ／Ｏデバイスドライバに、選択的に配送してもよい。
【００１５】
また、上記ソケットＡＰＩはエミュレーションモジュールを含み、上記エミュレーションモジュールは、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ソケットＡＰＩコールに含まれる上記ＩＰアドレスに基づいた上記非ネットワーク型Ｉ／Ｏデバイスドライバに、選択的に配送してもよい。
【００１６】
本発明に係るさらに他の態様において、非ネットワーク型Ｉ／Ｏデバイスを利用するアプリケーションを実行するアプリケーション実行部と、上記アプリケーション実行部と接続可能なソケットＡＰＩを実行するソケット実行部と、上記ソケット実行部と接続可能であり上記非ネットワーク型Ｉ／Ｏデバイスに対応する非ネットワーク型Ｉ／Ｏデバイスドライバを実行するドライバ実行部とを含むコンピュータデバイスにおけるソケットＡＰＩコール・エミュレーションの方法は、上記ソケット実行部が、上記アプリケーション実行部からソケットＡＰＩコールを受け取る受領ステップと、上記ソケット実行部が、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づき、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであるか否かを判定する判定ステップと、上記ソケットＡＰＩコールの宛先が上記非ネットワーク型Ｉ／Ｏデバイスであると判定した場合、上記ソケット実行部が、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ドライバ実行部に配送する配送ステップとを含むことを特徴としている。
【００１７】
本発明に係るさらに他の態様において、ソケットＡＰＩコール・エミュレーションの方法は、アプリケーションからソケットＡＰＩコールを受け取る受領ステップと、上記ソケットＡＰＩコールに含まれるＩＰアドレスを調べる調査ステップと、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ＩＰアドレスに基づいた非ネットワーク型Ｉ／Ｏデバイスドライバに、選択的に配送する配送ステップとを含むことを特徴としている。
【００１８】
また、上記ＩＰアドレスは、ループバックアドレスであってもよい。
【００１９】
また、上記配送ステップにおいては、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていると判定した場合、上記ＩＰ非対応のＩ／Ｏアクセスコールを、上記非ネットワーク型Ｉ／Ｏデバイスドライバに配送してもよい。
【００２０】
また、上記配送ステップにおいては、上記ＩＰアドレスが上記非ネットワーク型Ｉ／Ｏデバイスドライバに関連する非ネットワーク型Ｉ／Ｏデバイスポートに割り振られていないと判定した場合、上記ソケットＡＰＩコールを、ＴＣＰ／ＩＰプロトコルスタックに配送してもよい。
【００２１】
また、上記非ネットワーク型Ｉ／Ｏデバイスドライバは、ＣＯＭ（ＲＳ−２３２）、ＵＳＢ、パラレルポート、またはＦｉｒｅＷｉｒｅ（登録商標）のデバイスドライバであってもよい。
【００２２】
また、上記調査ステップは、上記ソケットＡＰＩコールに含まれるＴＣＰポート番号を調べるステップをさらに含み、上記配送ステップは、上記ＩＰ非対応のＩ／Ｏアクセスコールを、上記ＩＰアドレスおよび上記ＴＣＰポート番号に基づいた上記非ネットワーク型Ｉ／Ｏデバイスドライバに、選択的に配送してもよい。
【００２３】
本発明に係るさらに他の態様において、コンピュータデバイスは、アプリケーションと、上記アプリケーションと接続可能なソケットＡＰＩとを含み、上記ソケットＡＰＩは、上記アプリケーションからソケットＡＰＩコールを受け取り、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づいて上記ソケットＡＰＩコールの宛先として非ネットワーク型Ｉ／Ｏデバイスポートを特定することを特徴としている。
【００２４】
また、上記ＩＰアドレスは、ループバックアドレスであってもよい。
【００２５】
また、上記非ネットワーク型Ｉ／Ｏデバイスポートは、ＣＯＭ（ＲＳ−２３２）ポートであってもよい。
【００２６】
また、上記非ネットワーク型Ｉ／Ｏデバイスポートは、ＵＳＢポートであってもよい。
【００２７】
また、上記非ネットワーク型Ｉ／Ｏデバイスポートは、パラレルポートであってもよい。
【００２８】
また、上記非ネットワーク型Ｉ／Ｏデバイスポートは、ＦｉｒｅＷｉｒｅ（登録商標）ポートであってもよい。
【発明の効果】
【００２９】
本発明に係るコンピュータデバイスは、アプリケーションと、上記アプリケーションと接続可能なソケットＡＰＩと、上記ソケットＡＰＩと接続可能な非ネットワーク型Ｉ／Ｏデバイスドライバとを含み、上記ソケットＡＰＩは、上記アプリケーションからソケットＡＰＩコールを受け取り、上記ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを、上記ソケットＡＰＩコールに含まれるＩＰアドレスに基づいた上記非ネットワーク型Ｉ／Ｏデバイスドライバに、選択的に配送することを特徴としている。そのため、アプリケーションはＩＰ対応のソケットＡＰＩコールを使用することにより、非ネットワーク型Ｉ／Ｏデバイスと通信を行うことができる。このように、非ネットワーク型Ｉ／ＯデバイスへのソケットＡＰＩコールをエミュレートすることにより、非ネットワーク型Ｉ／Ｏデバイスおよびネットワーク接続型Ｉ／Ｏデバイスとの通信機能に関わるアプリケーションのコードの一部を共通にすることができ、アプリケーション開発の負荷を軽減することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態のコンピュータデバイスを示すブロック図である。
【図２】本発明の実施形態のコンピュータデバイス上で実行可能なソフトウェアを示すブロック図である。
【図３】本発明の実施形態における、アプリケーションによって発信されたソケットＡＰＩコールをコンピュータデバイス上でエミュレーションする方法を示すフロー図である。
【図４】コンピュータデバイス上のソケットＡＰＩコール・エミュレーションと連携して実行可能なアプリケーションの仮のコードを示す図である。
【図５】コンピュータデバイス上のソケットＡＰＩコール・エミュレーションと連携して実行可能なアプリケーションの仮のコードを示す図である。
【図６】コンピュータデバイス上のソケットＡＰＩコール・エミュレーションと連携して実行可能なアプリケーションの仮のコードを示す図である。
【発明を実施するための形態】
【００３１】
本発明の上述したまたは他の態様については、以下の詳細な記述と上述の図面とを参照することによってよりよく理解できるだろう。もちろん、本発明は特許請求の範囲の記載によって規定される。
【００３２】
本発明は、基本的な特徴において、アプリケーションと非ネットワーク型Ｉ／Ｏデバイスとの間の通信を容易にするソケットＡＰＩコール・エミュレーションの方法およびシステムを提供する。本発明によれば、アプリケーションから発信されたＩＰ対応のソケットＡＰＩコールが非ネットワーク型Ｉ／Ｏデバイスに到達するまでの間で、ＩＰ対応のソケットＡＰＩコールが補足され、ＩＰ非対応のＩ／Ｏアクセスコールに修正される。そのため、このようなＩＰ対応のソケットＡＰＩコールは、ＩＰ非対応のＩ／Ｏアクセスコールとして非ネットワーク型Ｉ／Ｏデバイスに受け取られる。本発明によれば、アプリケーションはソケットＡＰＩコールを用いて全てのタイプのエンティティと通信することができる。したがって、本発明によれば、アプリケーションが通信する非ネットワーク型Ｉ／Ｏデバイスのタイプ毎に、個別のコードおよび説明文書を記述、デバッグ、および編集するアプリケーション開発者の負荷を軽減することができる。ある実施形態では、アプリケーションと非ネットワーク型Ｉ／Ｏデバイスに関連するデバイスドライバと接続可能なソケットＡＰＩの中のエミュレーションモジュールによって、ソケットＡＰＩコール・エミュレーションが実行される。
【００３３】
＜コンピュータデバイスの構成＞
図１は、本発明に係る一実施形態におけるコンピュータデバイス１００を示すブロック図である。コンピュータデバイス１００は、演算装置１４０、ユーザインターフェース１１０、非ネットワーク型Ｉ／Ｏデバイスポート１２０、ネットワーク接続型Ｉ／Ｏデバイスポート１３０、および記憶装置１５０を備える。演算装置１４０は、ユーザインターフェース１１０、非ネットワーク型Ｉ／Ｏデバイスポート１２０、ネットワーク接続型Ｉ／Ｏデバイスポート１３０、および記憶装置１５０と通信可能に接続されている。コンピュータデバイス１００は、例えば、パーソナルコンピュータ、パーソナルデータアシスタント（ＰＤＡ）、携帯電話、または複合機（多機能周辺装置：ＭＦＰ）であってもよい。
【００３４】
ユーザインターフェース１１０は、１つ以上の入力装置を介してコンピュータデバイス１００のユーザからの入力を受け付けて、１つ以上の出力装置を介してユーザに対して出力を表示する。出力装置は、液晶ディスプレイ（ＬＣＤ）または有機発光ダイオード（ＯＬＥＤ）のような表示装置を含む。入力装置は、例えば、指あるいはスタイラスペンで操作可能なタッチスクリーン、スクロールホイールあるいはスクロールボール、キーパッド、および／または、音声指示入力モジュールを含む。
【００３５】
非ネットワーク型Ｉ／Ｏデバイスポート１２０は、有線で接続された非ネットワーク型Ｉ／Ｏデバイス１２２へ情報を送信し、非ネットワーク型Ｉ／Ｏデバイス１２２から情報を受信する有線の通信インターフェースである。非ネットワーク型Ｉ／Ｏデバイス１２２は、例えば、パーソナルコンピュータ、ＰＤＡ、携帯電話、複合機、サーバ装置、またはデータ記憶装置であってもよい。非ネットワーク型Ｉ／Ｏデバイスポート１２０は、例えば、ＣＯＭ、ＵＳＢ、パラレルポート、またはＦｉｒｅＷｉｒｅ（登録商標）インターフェースのような、シリアルまたはパラレルのインターフェースであってもよい。ある実施形態では、コンピュータデバイス１００は、複数の非ネットワーク型Ｉ／Ｏデバイスのそれぞれへ情報を送信し、各非ネットワーク型Ｉ／Ｏデバイスから情報を受信するために種々のタイプの複数の非ネットワーク型Ｉ／Ｏデバイスポートを有する。
【００３６】
ネットワーク接続型Ｉ／Ｏデバイスポート１３０は、ネットワーク１３４の向こうにあるネットワーク接続されたＩ／Ｏデバイス（例えば符号１３２）に情報を送信し、該Ｉ／Ｏデバイスから情報を受信する有線または無線の通信インターフェースである。ネットワーク１３４は、有線または無線の通信回線と、ルータ、スイッチおよび／またはブリッジのような接続デバイスとを有する。ネットワーク接続されたＩ／Ｏデバイス１３２は、例えば、パーソナルコンピュータ、ＰＤＡ、携帯電話、複合機、サーバ装置、またはデータ記憶装置であってもよい。ネットワーク接続型Ｉ／Ｏデバイスポート１３０は、例えば、有線のイーサネット（登録商標）インターフェース、無線のイーサネット（登録商標）インターフェース（例えばＷｉＦｉ（登録商標）のインターフェース）、携帯電話のネットワークインターフェース、または、ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）インターフェースであってもよい。
【００３７】
演算装置１４０は、コンピュータデバイス１００によって動作がサポートされるソフトウェアを実行する。図２は、本発明の一実施形態のコンピュータデバイス上で実行可能なソフトウェアを示す図である。演算装置１４０によって実行可能なコンピュータデバイス１００のソフトウェア２００は、アプリケーション２１０、ソケットＡＰＩ２２０、ＴＣＰ／ＩＰプロトコルスタック２３０、非ネットワーク型Ｉ／Ｏデバイスドライバ２４０、およびネットワーク接続型Ｉ／Ｏデバイスドライバ２５０を含む。ソケットＡＰＩ２２０は、エミュレーション・モジュール２２５およびデータ記憶部２２６とを含む。データ記憶部２２６は、非ネットワーク型Ｉ／Ｏデバイスポート１２０に割り当てられたＩＰアドレスを記憶する。演算装置１４０によって実行可能な上記ソフトウェアの各要素は、記憶装置１５０に保存される。記憶装置１５０は、１つ以上のランダムアクセスメモリ（ＲＡＭ）、および１つ以上のリードオンリーメモリ（ＲＯＭ）を含んでもよい。ある実施形態においては、ソケットＡＰＩ２２０、ＴＣＰ／ＩＰプロトコルスタック２３０、非ネットワーク型Ｉ／Ｏデバイスドライバ２４０、およびネットワーク接続型Ｉ／Ｏデバイスドライバ２５０は、オペレーティングシステムの一部として組み込まれている。なお、図２の各ブロックは、対応するソフトウェアの各要素を実行する実行部（すなわち、アプリケーションを実行するアプリケーション実行部２１０、ソケットＡＰＩを実行するソケット実行部２２０、エミュレーションモジュールを実行するエミュレーション実行部２２５、ＴＣＰ／ＩＰプロトコルスタックを実行するプロトコル実行部２３０、非ネットワーク型Ｉ／Ｏデバイスドライバを実行する第１ドライバ実行部２４０、およびネットワーク接続型Ｉ／Ｏデバイスドライバを実行する第２ドライバ実行部２５０）として表現することもできる。
【００３８】
アプリケーション２１０は、ソケットＡＰＩコールを生成し、ソケットＡＰＩコールをソケットＡＰＩ２２０に送信する。これによって、アプリケーション２１０は、非ネットワーク型Ｉ／Ｏデバイスドライバ２４０および非ネットワーク型Ｉ／Ｏデバイスポート１２０を介して、非ネットワーク型Ｉ／Ｏデバイス１２２と通信する。同様にソケットＡＰＩコールによって、アプリケーション２１０は、ＴＣＰ／ＩＰプロトコルスタック２３０、ネットワーク接続型Ｉ／Ｏデバイスドライバ２５０、およびネットワーク接続型Ｉ／Ｏデバイスポート１３０を介して、ネットワーク接続されたＩ／Ｏデバイス１３２と通信する。ソケットＡＰＩコールは、ＩＰ対応（IP-aware：宛先をＩＰを用いて認識する）のコールであり、コールの宛先を特定するためにＩＰアドレス指定を用いる。
【００３９】
ソケットＡＰＩ２２０は、アプリケーション２１０と非ネットワーク型Ｉ／Ｏデバイス１２２との間の通信を可能にするために、アプリケーション２１０にインターフェースで接続し、かつエミュレーションモジュール２２５を介して非ネットワーク型Ｉ／Ｏデバイスドライバ２４０にインターフェースで接続する。ソケットＡＰＩ２２０はまた、アプリケーション２１０とネットワーク接続されたＩ／Ｏデバイス１３２上のアプリケーションとの間の通信を可能にするために、ＴＣＰ／ＩＰプロトコルスタック２３０にインターフェースで接続する。ソケットＡＰＩ２２０は、アプリケーション２１０から受け取ったソケットＡＰＩコールを処理する。該処理において、ソケットＡＰＩ２２０は、データセッションのためのエンドポイントを与えるソケットを生成し、Ｉ／Ｏエンティティ（機器）に割り当てられた宛先のＩＰアドレスにソケットを結合させる。また、ソケットＡＰＩ２２０は、それらのソケットが不要になると、ソケットの結合を解除してソケットをクローズする。このようなソケットとして、非ネットワーク型Ｉ／Ｏデバイスポート１２０に割り当てられたＩＰアドレスに結合されたソケット、およびネットワーク接続型Ｉ／Ｏデバイスポート１３０に割り当てられたＩＰアドレスに結合されたソケットが含まれる。
【００４０】
エミュレーションモジュール２２５は、ソケットＡＰＩ２２０のソフトウェアによるサブシステムである。エミュレーションモジュール２２５は、アプリケーション２１０と非ネットワーク型Ｉ／Ｏデバイス１２２とが途切れることなく通信することを可能にするために、ソケットＡＰＩコール・エミュレーションを実行する。ソケットＡＰＩ２２０がアプリケーション２１０からソケットＡＰＩコールを受け取ると、エミュレーションモジュール２２５は、当該ソケットＡＰＩコールを調べ、ＩＰ対応の当該ソケットＡＰＩコールに含まれる宛先ＩＰアドレスがデータ記憶部２２６に記憶されているかどうかを判定する。当該ソケットＡＰＩコールに含まれる宛先ＩＰアドレスがデータ記憶部２２６に記憶されている場合、当該ソケットＡＰＩコールは非ネットワーク型Ｉ／Ｏデバイス１２２のためのものであることを意味し、さらなる処理のために、ソケットＡＰＩ２２０は、当該ソケットＡＰＩコールに対応したＩＰ非対応（宛先をＩＰで認識しない）のＩ／Ｏアクセスコールを非ネットワーク型Ｉ／Ｏデバイスドライバ２４０に配送する。他方、当該ソケットＡＰＩコールに含まれる宛先ＩＰアドレスがデータ記憶部２２６に記憶されていない場合、さらなる処理のために、ソケットＡＰＩ２２０は、当該ソケットＡＰＩコールをＴＣＰ／ＩＰプロトコルスタック２３０に配送する。
【００４１】
ある実施形態では、非ネットワーク型Ｉ／Ｏデバイスポート１２０に割り当てられたＩＰアドレスはループバックアドレスである。ＩＰバージョン４（ＩＰｖ４）における１２７．０．０．０から１２７．２５５．２５５．２５５までの範囲のアドレスは、内部のループバック機能のために予約されており、ネットワーク接続されたどのＩ／Ｏデバイスにも転送されない。非ネットワーク型Ｉ／Ｏデバイスポート１２０にループバックアドレスを割り当てることにより、非ネットワーク型Ｉ／Ｏデバイスポート１２０に割り当てられたＩＰアドレスが、ネットワーク接続されたＩ／Ｏデバイスに割り当てられたアドレスと衝突することがなく、さらに、ネットワーク接続されたＩ／Ｏデバイスに割り当てることができるＩＰアドレスを節約することができる。コンピュータデバイス１００が複数の非ネットワーク型Ｉ／Ｏデバイスポートを有している場合、非ネットワーク型Ｉ／Ｏデバイスポートのそれぞれには、別個のループバックアドレス（例えば、ＣＯＭポート＝１２７．０．１．１、パラレルポート＝１２７．０．２．１、等）が割り当てられている。そして、それら割り当てられたループバックアドレスの全てがデータ記憶部２２６に記憶されているので、エミュレーションモジュール２２５（およびアプリケーション２１０）は、複数の非ネットワーク型Ｉ／Ｏデバイスポートについて区別し、個別にアドレス指定することができ、それらの非ネットワーク型Ｉ／Ｏデバイスのそれぞれと通信することができる。
【００４２】
ある実施形態では、ループバックアドレスのある範囲が非ネットワーク型Ｉ／Ｏデバイスポートのタイプに割り当てられている。例えば、ＣＯＭポートには、１２７．０．１．１から１２７．０．１．２５５の範囲のループバックアドレスが割り当てられ、パラレルポートには、１２７．０．２．１から１２７．０．２．２５５の範囲のループバックアドレスが割り当てられ、ＵＳＢポートには、１２７．０．３．１から１２７．０．３．２５５の範囲のループバックアドレスが割り当てられる。
【００４３】
ＴＣＰ／ＩＰプロトコルスタック２３０は、ソケットＡＰＩ２２０とネットワーク接続型Ｉ／Ｏデバイスドライバ２５０とを結びつけるプロトコルスタックである。ＴＣＰ／ＩＰプロトコルスタック２３０は、プロトコルを実装するソフトウェアからなっている。ＴＣＰ／ＩＰプロトコルスタック２３０は、従来のＴＣＰ接続を介してアプリケーション２１０がネットワーク接続されたＩ／Ｏデバイス１３２上のアプリケーションと通信できるようにする。ＴＣＰ／ＩＰプロトコルスタック２３０は、ソケットＡＰＩ２２０とネットワーク接続型Ｉ／Ｏデバイスドライバ２５０との間でソケットＡＰＩコールを処理し、ＴＣＰセッションおよびＩＰデータグラムサービスを提供し、エラー処理およびデータバッファリングを行う。
【００４４】
非ネットワーク型Ｉ／Ｏデバイスドライバ２４０は、エミュレーションモジュール２２５と非ネットワーク型Ｉ／Ｏデバイスポート１２０とを結びつけるソフトウェアである。非ネットワーク型Ｉ／Ｏデバイスドライバ２４０は、アプリケーション２１０が非ネットワーク型Ｉ／Ｏデバイス１２２と通信できるようにする。非ネットワーク型Ｉ／Ｏデバイスドライバ２４０は、エミュレーションモジュール２２５からＩＰ非対応のＩ／Ｏアクセスコールを受け取り、当該コールを処理する。非ネットワーク型Ｉ／Ｏデバイスドライバ２４０は、例えば、ＣＯＭ、ＵＳＢ、パラレルポート、またはＦｉｒｅＷｉｒｅ（登録商標）のデバイスドライバであってもよい。
【００４５】
ネットワーク接続型Ｉ／Ｏデバイスドライバ２５０は、ＴＣＰ／ＩＰプロトコルスタック２３０とネットワーク接続型Ｉ／Ｏデバイスポート１３０とを結びつけるソフトウェアである。ネットワーク接続型Ｉ／Ｏデバイスドライバ２５０は、従来のＴＣＰ接続を介してアプリケーション２１０がネットワーク接続されたＩ／Ｏデバイス１３２と通信できるようにする。ある実施形態では、ネットワーク接続型Ｉ／Ｏデバイスドライバ２５０は、メディアアクセスコントロール（ＭＡＣ）および論理リンク制御（ＬＬＣ）サービスを提供する。
【００４６】
＜ソケットＡＰＩコール・エミュレーションの方法＞
図３は、本発明に係る一実施形態のコンピュータデバイス１００上で、アプリケーション２１０から発信されたソケットＡＰＩコール・エミュレーションの方法を示す図である。ソケットＡＰＩ２２０はアプリケーション２１０からソケットＡＰＩコールを受け取る（Ｓ３１０）。エミュレーションモジュール２２５は、ソケットＡＰＩコールに含まれる宛先ＩＰアドレスを調べ、データ記憶部２２６に保存されたデータを参考にして、当該ソケットＡＰＩコールが非ネットワーク型Ｉ／Ｏデバイスポート１２０に宛てられたものか否かを判定する（Ｓ３２０）。ここで、非ネットワーク型Ｉ／Ｏデバイスポート１２０は、データ記憶部２２６に保存されたマッチのためのアドレスによって示される。当該ソケットＡＰＩコールが非ネットワーク型Ｉ／Ｏデバイスポート１２０に宛てられたものである場合、エミュレーションモジュール２２５は、非ネットワーク型Ｉ／Ｏデバイスポート１２０に関連する非ネットワーク型Ｉ／Ｏデバイスドライバ２４０へのソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを生成する。そして、さらなる処理が行われ、最終的にＩＰ非対応のＩ／Ｏアクセスコールが非ネットワーク型Ｉ／Ｏデバイス１２２に配送される（Ｓ３３０）。ＩＰ非対応のＩ／Ｏアクセスコールは、該ソケットＡＰＩコールと同じファンクション（機能）をアドレス指定するが、ＩＰによるアドレス指定またはＩＰによる伝送機構は使用しない。当該ソケットＡＰＩコールが非ネットワーク型Ｉ／Ｏデバイスポート１２０に宛てられたものではない場合、ソケットＡＰＩ２２０は、さらなる処理のために、ＩＰ対応のソケットＡＰＩコールをＴＣＰ／ＩＰプロトコルスタック２３０に配送する（Ｓ３４０）。
【００４７】
ある実施形態では、非ネットワーク型Ｉ／Ｏデバイスポート１２０のＩＰアドレスを記憶するデータ記憶部２２６は、非ネットワーク型Ｉ／Ｏデバイスポート１２０に対応するＩＰアドレスおよびＴＣＰポート番号の両方を含む。この実施形態では、ソケットＡＰＩ２２０がアプリケーション２１０からのソケットＡＰＩコールを受け取ると、エミュレーションモジュール２２５は、ソケットＡＰＩコールに含まれる宛先ＩＰアドレスおよびＴＣＰポート番号を調べ、データ記憶部２２６に保存されたデータを参考にして、当該ソケットＡＰＩコールが非ネットワーク型Ｉ／Ｏデバイスポート１２０に宛てられたものか否かを判定する。ここで、非ネットワーク型Ｉ／Ｏデバイスポート１２０は、データ記憶部２２６に保存されたマッチのためのアドレスおよびポート番号によって示される。当該ソケットＡＰＩコールが非ネットワーク型Ｉ／Ｏデバイスポート１２０に宛てられたものである場合、エミュレーションモジュール２２５は、非ネットワーク型Ｉ／Ｏデバイスポート１２０に関連する非ネットワーク型Ｉ／Ｏデバイスドライバ２４０へのソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールをを生成する。そして、さらなる処理が行われ、最終的にＩＰ非対応のＩ／Ｏアクセスコールが非ネットワーク型Ｉ／Ｏデバイス１２２に配送される。
【００４８】
上述したように、本発明の実施形態のコンピュータデバイス１００は、例えば、複合機（多機能周辺装置：ＭＦＰ）などに適用される。本願出願人の提唱するシステム（Ｓｈａｒｐ  ＯＳＡ（登録商標））では、ＳＯＡＰ（Simple Object Access Protocol）をベースとして、ＰＣ（パーソナルコンピュータ）上で動作するアプリケーションと複合機の機能とを連携し、複合機がトータルアプリケーションシステムの一部となって動作することができる。これにより、複合機の機能とＰＣの機能とを適宜組み合わせた柔軟性のあるサービスの構築を容易に行うことができる（シャープ株式会社、[online]、[平成２１年５月１２日検索]、インターネット〈URL：http://www.sharp.co.jp/print/osa/index.html〉 参照）。本実施形態のコンピュータデバイス１００は、このような複合機に適用することができる。
【００４９】
具体的には、ＰＣ上で動作するアプリケーションと複合機の機能とを連携させた上記のシステムでは、複合機に内部実装されたアプリケーション（ＯＳＡ（オープンシステムアーキテクチャー）アプリ）は、ソケットＡＰＩによる機能呼び出し（ファンクションコール）を行なう。ここで、ファンクションコールとしては、複合機にＵＳＢ等でローカル接続された機器（非ネットワーク型Ｉ／Ｏデバイス）の機能を呼び出すもの、および、複合機にＩＰ対応のネットワークで接続されたＰＣ等の機器（ネットワーク接続型Ｉ／Ｏデバイス）の機能を呼び出すものが存在する。そこで、本発明の実施形態のコンピュータデバイス１００を適用することで、ソケットＡＰＩ２２０は、ＩＰ対応のソケットＡＰＩコールの宛先が、非ネットワーク型Ｉ／Ｏデバイス１２２であるか、ネットワーク接続型Ｉ／Ｏデバイス１３２であるかを判定することができる。そして、非ネットワーク型Ｉ／Ｏデバイス１２２宛てである場合は、当該ソケットＡＰＩコールに対応するＩＰ非対応のＩ／Ｏアクセスコールを使用して非ネットワーク型Ｉ／Ｏデバイスの機能をコールし、ネットワーク接続型Ｉ／Ｏデバイス１３２当てである場合は、当該ソケットＡＰＩコールを使用してネットワーク接続型Ｉ／Ｏデバイスの機能をコールする。これにより、複合機に内部実装されたアプリケーションは、ＩＰ対応のソケットＡＰＩコールを用いて種々のタイプのローカル接続された機器と通信することができる。そのため、通信機能に関してローカル接続のタイプ毎に個別のコードを作成する必要がなく、アプリケーション開発が容易になる。
【００５０】
また本発明によれば、複合機に内部実装されたアプリケーションからファンクションコールを行い、当該複合機にローカル接続された機器（非ネットワーク型Ｉ／Ｏデバイス）を動作させる場合でも、ローカル接続された機器のデバイスドライバ（非ネットワーク型Ｉ／Ｏデバイスドライバ）として、当該複合機とネットワーク接続された上記ＰＣ上で動作するアプリケーションからファンクションコールを行って当該複合機にローカル接続された機器を動作させる場合と同じデバイスドライバを使用することができる。そのため、複合機に内部実装されたアプリケーションに対して新たにデバイスドライバを開発する必要がなく、アプリケーション開発が容易になる。
【００５１】
図４〜６は、コンピュータデバイス上のソケットＡＰＩコール・エミュレーションと連携して実行可能なアプリケーションの仮のコードを示す図である。上記仮のコードは、ソケットＡＰＩがソケットＡＰＩコール・エミュレーションの機能をサポートする場合に、どのようにアプリケーション上のソケットＡＰＩインターフェースのコードが単純化されるかの具体例を説明するものである。この具体例では、コンピュータデバイスは複合機である。上記仮のコードは、複数のＩ／Ｏデバイスポートから複合機へ入力される印刷用データを処理するためのイベントリスナー（イベント監視）のコードである。上記複数のＩ／Ｏデバイスポートは、ネットワーク接続型Ｉ／Ｏデバイスポート（イーサネット（登録商標））、および２つの非ネットワーク型Ｉ／Ｏデバイスポート（ＣＯＭおよびＬＰＴ）を含む。ＬＰＴは、ラインプリントターミナル（Line Print Terminal）の略であり、パラレルポートである。ＴＣＰ／ＩＰに基づくソケットＡＰＩコールに関する共通のセットが、複数のＩ／Ｏデバイスポートから入力される印刷用データを読み取ることに利用されるために、コーディング効率が向上する。上述したいくつかの実施形態のように、非ネットワーク型Ｉ／Ｏデバイスポートに関連する非ネットワーク型Ｉ／Ｏデバイスドライバとアプリケーションとの間で動作可能なように結合されたソケットＡＰＩ上のエミュレーションモジュールが、ソケットＡＰＩコール・エミュレーションを実行するので、共通のセットを使用することが可能になる。
【００５２】
最初に図４を参照する。複数のＩ／Ｏデバイスポートに対応して、ＴＣＰ／ＩＰに基づくソケットが、socket()コールを用いて生成され、それぞれの宛先にbind()コールを用いて結びつけられる。ＣＯＭポートは、ループバックＩＰアドレス１２７．０．１．１およびＴＣＰポート番号９１０１に割り当てられる。ＬＰＴポートは、ループバックＩＰアドレス１２７．０．２．１およびＴＣＰポート番号９１０２に割り当てられる。
【００５３】
次に図５を参照する。上記ＴＣＰ／ＩＰに基づくソケットは、listen()コールを用いて監視ポートにされ、上記ＴＣＰ／ＩＰに基づくソケットは、複数のＩ／Ｏデバイスポートに入力される接続要求を待つ。接続要求は、例えばソケットＡＰＩconnect()コール等である。複数のＩ／Ｏデバイスポートの一つが外部からの接続要求を受け取ると、accept()コールによって接続が受け入れられる。
【００５４】
最後に図６を参照する。入力された印刷用データは、受け入れられた接続において、recv()コールを用いて読み取られ、処理される。その後、当該接続はclose()コールを用いてクローズされる。
【００５５】
ここに記載した本発明の精神または本質的特徴から逸脱すること無しに、本発明を他の具体的形式で実施することができることは、当業者であれば理解できるであろう。それゆえ、上述の説明は、制限するためではなく説明するためになされたものである。本発明の範囲は請求項によって示されており、それらと同等の手段および同等の範囲による変更の全ての結果も、本発明の範囲に包含される。
【００５６】
最後に、ソケットＡＰＩ２２０を含むソフトウェア２００の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【００５７】
すなわち、コンピュータデバイス１００は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェア２００のプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記コンピュータデバイス１００に供給し、そのコンピュータデバイス１００（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【００５８】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【００５９】
また、コンピュータデバイス１００に、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【００６０】
本発明は、ネットワーク接続可能なパーソナルコンピュータ、パーソナルデータアシスタント（ＰＤＡ）、サーバ装置、携帯電話、または複合機に利用することができる。
【符号の説明】
【００６１】
１００    コンピュータデバイス
１１０    ユーザインターフェース
１２０    非ネットワーク型Ｉ／Ｏデバイスポート
１２２    非ネットワーク型Ｉ／Ｏデバイス
１３０    ネットワーク接続型Ｉ／Ｏデバイスポート
１３２    ネットワーク接続されたＩ／Ｏデバイス
１３４    ネットワーク
１４０    演算装置
１５０    記憶装置
２００    ソフトウェア
２１０    アプリケーション
２２０    ソケットＡＰＩ
２２５    エミュレーションモジュール
２２６    データ記憶部
２３０    ＴＣＰ／ＩＰプロトコルスタック
２４０    非ネットワーク型Ｉ／Ｏデバイスドライバ
２５０    ネットワーク接続型Ｉ／Ｏデバイスドライバ
【図１】
2010049676.tif 000003
【図２】
2010049676.tif 000004
【図３】
2010049676.tif 000005
【図４】
2010049676.tif 000006
【図５】
2010049676.tif 000007
【図６】
2010049676.tif 000008