(57)【要約】【課題】  アプリケーションに実装されている機器搭載機能の識別子に関わりなく機器搭載機能を使用することが可能なネットワーク機器を実現する。【解決手段】  分散アプリケーション環境を構成するネットワーク機器において、ネットワークを介して通信を行う通信手段と、記憶手段と、この記憶手段からオペレーティングシステムを読み出して稼動させると共に記憶手段からアプリケーションを読み出してオペレーティングシステムの上で動作させる演算制御手段とを備え、オペレーティングシステムの上で動作する抽象化機能が、生成したオブジェクトを介して取得したアプリケーションからの機器搭載機能への機器操作要求に基づき実装識別子を機器識別子に変換し、機器操作要求の許可、若しくは、拒否を判断させ、オペレーティングシステム経由で機器搭載機能に対する操作を行う。【選択図】                    図１
2008090821.tif 000002
【特許請求の範囲】
【請求項１】
分散アプリケーション環境を構成するネットワーク機器において、
ネットワークを介して通信を行う通信手段と、
記憶手段と、
この記憶手段からオペレーティングシステムを読み出して稼動させると共に前記記憶手段からアプリケーションを読み出して前記オペレーティングシステムの上で動作させる演算制御手段とを備え、
前記オペレーティングシステムの上で動作する抽象化機能が、生成したオブジェクトを介して取得した前記アプリケーションからの機器搭載機能への機器操作要求に基づき実装識別子を機器識別子に変換し、前記機器操作要求の許可、もしくは、拒否を判断させ、前記オペレーティングシステム経由で前記機器搭載機能に対する操作を行うことを特徴とするネットワーク機器。
【請求項２】
前記アプリケーションが、
前記抽象化機能に対して前記実装識別子を付与して前記オブジェクトの生成を依頼し、
前記オブジェクトが生成されるまで待機し、
生成された前記オブジェクトに対して前記機器搭載機能の操作要求を行うことを特徴とする請求項１記載のネットワーク機器。
【請求項３】
前記オブジェクトが、
前記アプリケーションから前記機器搭載機能の前記操作要求を受領した場合に、前記機器搭載機能の前記操作要求に基づき前記機能操作要求を生成し、生成した前記機能操作要求を前記抽象化機能に渡すことを特徴とする請求項２記載のネットワーク機器。
【請求項４】
前記抽象化機能が、
前記アプリケーションからの前記オブジェクトの生成依頼があったと判断した場合に、付与された前記実装識別子に基づき前記オブジェクトを生成することを特徴とする請求項１記載のネットワーク機器。
【請求項５】
前記抽象化機能が、
前記オブジェクトから前記機器操作要求があったと判断した場合に、前記アプリケーションが有する前記実装識別子に適したバインディング機能を選択して前記実装識別子を前記機器識別子に変換させ、
アクセス制御機能に機器操作要求の許可、もしくは、拒否を判断させ、
前記アクセス制御機能が許可と判断した場合に前記機器操作要求に基づき駆動機能に前記機器搭載機能を操作させることを特徴とする請求項１記載のネットワーク機器。
【請求項６】
前記バインディング機能が、
前記アプリケーションが有する前記実装識別子とインストールされているネットワーク機器が有する前記機器識別子とを対応付けたバインディング情報を管理して前記実装識別子から前記機器識別子への変換を行うことを特徴とする請求項５記載のネットワーク機器。
【請求項７】
前記アクセス制御機能が、
前記アプリケーションの前記機器搭載機能に対する操作のアクセス制御情報を管理して前記機器操作要求の許可、もしくは、拒否を判断することを特徴とする請求項５記載のネットワーク機器。
【請求項８】
前記駆動機能が、
前記機器操作要求に基づき前記機器搭載機能の操作に必要なドライバを選択して前記機器搭載機能の操作を行うことを特徴とする請求項５記載のネットワーク機器。
【請求項９】
前記機器搭載機能が、
外部接続機器の搭載機能であることを特徴とする請求項１乃至請求項８のいずれかに記載のネットワーク機器。
【請求項１０】
前記オブジェクトが、前記アプリケーションからの前記操作要求に基づき前記機器搭載機能の呼び出し方法に適合した前記機器操作要求を生成し、生成した前記機器操作要求を前記抽象化機能に渡すことを特徴とする請求項１乃至請求項８のいずれかに記載のネットワーク機器。
【請求項１１】
前記抽象化機能は、さらに、
ローカル機器およびリモート機器を含む複数の機器搭載機能へのアクセス要求に対する応答を同期させる機能と、
各リモート機器へのアクセス要求に対するネットワークのスループット情報に基づき各リモート機器へのアクセス要求の優先度を制御する機能、
を有することを特徴とする請求項１記載のネットワーク機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散アプリケーション環境を構成するネットワーク機器に関し、特にアプリケーションに実装されている機器搭載機能の識別子に関わりなく機器搭載機能を使用することが可能なネットワーク機器に関する。
【背景技術】
【０００２】
従来のネットワークで相互に接続された複数のネットワーク機器の資源を利用してアプリケーションを分散して稼動させることにより全体としてアプリケーションが実行される分散アプリケーション環境に関連する先行技術文献としては次のようなものがある。
【０００３】
【特許文献１】特開平０９−１１４７９１号公報
【特許文献２】特開平１０−０４０２２９号公報
【０００４】
図１１はこのような従来の分散アプリケーション環境の一例を示す構成ブロック図である。図１１において１，２，３および４はアプリケーションが分散して稼動するネットワーク機器、１００はＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などの汎用のネットワークである。
【０００５】
ネットワーク機器１，２，３およびネットワーク機器４はネットワーク１００にそれぞれ相互に接続される。
【０００６】
図１２はネットワーク機器の詳細を示す構成ブロック図である。図１２において５はネットワーク１００を介して通信を行う通信手段、６はＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などの演算制御手段、７はハードディスク、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリなどの記憶手段である。
【０００７】
通信手段５の一方の入出力はネットワーク（図示せず。）に相互に接続され、他方の入出力は演算制御手段６に相互に接続される。また、記憶手段７の入出力もまた演算制御手段６に相互に接続される。これら５，６および７は、ネットワーク機器５０を構成している。
【０００８】
図１２に示すネットワーク機器の動作を図１３、図１４、図１５、図１６および図１７を用いて詳細に説明する。図１３および図１４はネットワーク機器にインストールされたアプリケーションとネットワーク機器の資源などとの関係を示す説明図、図１５はアプリケーションの実装識別子の一例を示す説明図、図１６および図１７はアプリケーションによる機器搭載機能の使用を説明する説明図である。
【０００９】
図１３に示すネットワーク機器ＮＤ０１において、インストールされたアプリケーションＡＰ０１は、ハードウェアＨＷ０１上で稼動するＯＳ（Operating System：オペレーティングシステム）０１の上で動作する。
【００１０】
インストールされたアプリケーションＡＰ０１の中には、インストールされたネットワーク機器の搭載されているディジタル入出力（ＤＩ／ＤＯ）などの機器搭載機能を使用するものもある。
【００１１】
図１４においてＮＤ１１はネットワーク機器、ＡＰ１１は機器搭載機能を使用するアプリケーション、ＯＳ１１はオペレーティングシステム、ＨＷ１１はハードウェアである。
【００１２】
ＦＣ１１は機器搭載機能であるディジタル入力機能（ＤＩ）、ＦＣ１２は機器搭載機能であるディジタル出力機能（ＤＯ）である。そして、ＬＴ１１はアプリケーションに実装されている機器搭載機能を呼び出すための識別子（以下、実装識別子という）が記載されたリストである。
【００１３】
たとえば、図１５に示す実装識別子のリストＬＴ２１では、図１４に示すアプリケーションＡＰ１１が使用するディジタル入力機能（ＤＩ）およびディジタル出力機能（ＤＯ）の識別子はそれぞれＳｗｉｔｃｈ１およびＳｗｉｔｃｈ２である。
【００１４】
図１６に示すアプリケーションＡＰ１１が機器搭載機能を使用する場合、実装識別子に基づきディジタル入出力（ＤＩ／ＤＯ）などの機器搭載機能に対して入力操作や出力操作を行うことになる。
【００１５】
たとえば、図１６に示すアプリケーションＡＰ１１がディジタル入力機能（ＤＩ）を操作してネットワーク機器外部からの情報を取得する場合、ＬＴ２１リストを参照して、使用可能なディジタル入力機能（ＤＩ）の実装識別子Ｓｗｉｔｃｈ１を取得する。
【００１６】
そして、実装識別子に基づきオペレーティングシステムＯＳ１１経由でハードウェアＨＷ１１の一部である機器搭載機能ＦＣ１１としてのディジタル入力機能（ＤＩ）を操作する。
【００１７】
ただし、ディジタル入力機能（ＤＩ）のネットワーク機器内での識別子（以下、機器識別子という）ＦＣ１１は、アプリケーションＥＩ３１に実装されている実装識別子と同一のＳｗｉｔｃｈ１とする。
【００１８】
同様に、たとえば、アプリケーションＡＰ１１がディジタル出力機能（ＤＯ）を操作してネットワーク機器外部へ情報を出力する場合、リストＬＴ２１を参照して、使用可能なディジタル出力機能（ＤＯ）の実装識別子Ｓｗｉｔｃｈ２を取得する。
【００１９】
そして、実装識別子に基づきオペレーティングシステムＯＳ１１経由でハードウェアＨＷ１１の一部である機器搭載機能ＦＣ１２としてのディジタル出力機能（ＤＯ）を操作する。
【００２０】
ただし、ディジタル出力機能（ＤＯ）のネットワーク機器内での識別子（以下、機器識別子という）ＦＣ１２は、アプリケーションＥＩ３２に実装されている実装識別子と同一のＳｗｉｔｃｈ２とする。
【００２１】
このようにネットワーク機器で動作するアプリケーションに機器搭載機能を呼び出すための実装識別子が記載されたリストを備えることにより、インストールされたネットワーク機器の搭載されているディジタル入出力（ＤＩ／ＤＯ）などの機器搭載機能を使用することが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
しかし、分散アプリケーション環境を構成するネットワーク機器では、機器毎に使用可能な機器搭載機能が同一の機能（たとえば、ディジタル入力機能（ＤＩ）など）であっても、機器毎に設定されている機器識別子は同一である保証はなく、アプリケーションによっては同一の機能（たとえば、ディジタル入力機能（ＤＩ）など）であるにもかかわらず、異なる機器識別子が設定されているネットワーク機器の機器搭載機能を使用することができないという問題点があった。
【００２３】
たとえば、図１６に示すアプリケーションＡＰ１１が図１７に示す異なるネットワーク機器ＮＤ４１にインストールされた場合を想定する。ただし、図１７に示す機器搭載機能ＦＣ４１およびＦＣ４２であるディジタル入力機能（ＤＩ）およびディジタル出力機能（ＤＯ）の機器識別子は、アプリケーションＥＩ４１およびＥＩ４２に示すようにＤＩ−３２およびＤＯ−３３であるとする。
【００２４】
このような状況下で、たとえば、アプリケーションＡＰ１１がディジタル入力機能（ＤＩ）を操作してネットワーク機器外部からの情報を取得する場合、リストＬＴ２１を参照して、使用可能なディジタル入力機能（ＤＩ）の実装識別子Ｓｗｉｔｃｈ１を取得する。
【００２５】
そして、実装識別子に基づきオペレーティングシステムＯＳ４１経由でハードウェアＨＷ４１の一部である機器搭載機能ＦＣ４１に示すディジタル入力機能（ＤＩ）を操作しようとしても、実装識別子Ｓｗｉｔｃｈ１と機器識別子ＤＩ−３２とが一致しないため、機器搭載機能ＦＣ４１に示すディジタル入力機能（ＤＩ）を操作することはできない。
【００２６】
同様に、たとえば、アプリケーションＡＰ１１がディジタル出力機能（ＤＯ）を操作してネットワーク機器外部へ情報を出力する場合、リストＬＴ２１を参照して、使用可能なディジタル出力機能（ＤＯ）の実装識別子Ｓｗｉｔｃｈ２を取得する。
【００２７】
そして、実装識別子に基づきオペレーティングシステムＯＳ４１経由でハードウェアＨＷ４１の一部である機器搭載機能ＦＣ４２に示すディジタル出力機能（ＤＯ）を操作しようとしても、実装識別子Ｓｗｉｔｃｈ２と機器識別子ＤＯ−３３とが一致しないため、機器搭載機能ＦＣ４２に示すディジタル出力機能（ＤＯ）を操作することはできない。
【００２８】
すなわち、分散アプリケーション環境を構成する全てのネットワーク機器の機器搭載機能をアプリケーションで使用するためには、アプリケーションの実装識別子をネットワーク機器毎に修正してインストールしなければならないという問題点があった。
【００２９】
また、ネットワーク機器にインストールされたアプリケーションに、機器搭載機能に対して無条件に操作を許可した場合には、対応する外部接続された機器などに悪影響を及ぼす危険性があるという問題点があった。
【００３０】
したがって、本発明が解決しようとする課題は、アプリケーションに実装されている機器搭載機能の識別子に関わりなく機器搭載機能を使用することが可能なネットワーク機器を実現することにある。
【００３１】
また、複数の機器搭載機能にアクセス可能な一つの機器搭載機能オブジェクトを利用してアクセスするのにあたり、機器自身（以下、ローカル機器という）に搭載されている機能に対する操作要求のレスポンスと、ネットワーク経由で他の機器（以下、リモート機器という）に搭載されている機能に対する操作要求のレスポンスとの間には、ネットワークの影響により時間的な差分が生じる。このため、アプリケーションとして次処理に移れるタイミングがいつなのかを、アプリケーションプログラム内で把握しなくてはならない。  
【００３２】
ところが、このような同期ロジックをアプリケーションプログラムに実装することを前提としてしまうと、本アプリケーションシステムの特徴であるべき機器に依存しない再利用可能なアプリケーションプログラムが実現されないことになる。
【００３３】
したがって、本発明が解決しようとする他の課題は、リモート機器搭載機能へのアクセスにより生じるネットワークの影響による時間的な差分の問題を、抽象化機能内で解決することにある。
【００３４】
さらに、本発明が解決しようとする他の課題は、ネットワークの影響による時間的な差分をできる限り小さくすることにある。
【課題を解決するための手段】
【００３５】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
分散アプリケーション環境を構成するネットワーク機器において、
ネットワークを介して通信を行う通信手段と、記憶手段と、この記憶手段からオペレーティングシステムを読み出して稼動させると共に前記記憶手段からアプリケーションを読み出して前記オペレーティングシステムの上で動作させる演算制御手段とを備え、前記オペレーティングシステムの上で動作する抽象化機能が、生成したオブジェクトを介して取得した前記アプリケーションからの機器搭載機能への機器操作要求に基づき実装識別子を機器識別子に変換し、前記機器操作要求の許可、もしくは、拒否を判断させ、前記オペレーティングシステム経由で前記機器搭載機能に対する操作を行うことを特徴とする。
【００３６】
請求項２記載の発明は、請求項１記載のネットワーク機器において、
前記アプリケーションが、前記抽象化機能に対して前記実装識別子を付与して前記オブジェクトの生成を依頼し、前記オブジェクトが生成されるまで待機し、生成された前記オブジェクトに対して前記機器搭載機能の操作要求を行うことを特徴とする。
【００３７】
請求項３記載の発明は、請求項２記載のネットワーク機器において、
前記オブジェクトが、前記アプリケーションから前記機器搭載機能の前記操作要求を受領した場合に、前記機器搭載機能の前記操作要求に基づき前記機能操作要求を生成し、生成した前記機能操作要求を前記抽象化機能に渡すことを特徴とする。
【００３８】
請求項４記載の発明は、請求項１記載のネットワーク機器において、
前記抽象化機能が、
前記アプリケーションからの前記オブジェクトの生成依頼があったと判断した場合に、付与された前記実装識別子に基づき前記オブジェクトを生成することを特徴とする。
【００３９】
請求項５記載の発明は、請求項１記載のネットワーク機器において、
前記抽象化機能が、
前記オブジェクトから前記機器操作要求があったと判断した場合に、前記アプリケーションが有する前記実装識別子に適したバインディング機能を選択して前記実装識別子を前記機器識別子に変換させ、
アクセス制御機能に機器操作要求の許可もしくは拒否を判断させ、前記アクセス制御機能が許可と判断した場合に前記機器操作要求に基づき駆動機能に前記機器搭載機能を操作させることを特徴とする。
【００４０】
請求項６記載の発明は、請求項５記載のネットワーク機器において、
前記バインディング機能が、
前記アプリケーションが有する前記実装識別子とインストールされているネットワーク
機器が有する前記機器識別子とを対応付けたバインディング情報を管理して前記実装識別
子から前記機器識別子への変換を行うことを特徴とする。
【００４１】
請求項７記載の発明は、請求項５記載のネットワーク機器において、
前記アクセス制御機能が、
前記アプリケーションの前記機器搭載機能に対する操作のアクセス制御情報を管理して
前記機器操作要求の許可、もしくは、拒否を判断することを特徴とする。
【００４２】
請求項８記載の発明は、請求項５記載のネットワーク機器において、
前記駆動機能が、
前記機器操作要求に基づき前記機器搭載機能の操作に必要なドライバを選択して前記機
器搭載機能の操作を行うことを特徴とする。
を特徴とする。
【００４３】
請求項９記載の発明は、請求項１から請求項８のいずれかに記載のネットワーク機器において、
前記機器搭載機能が、
外部接続機器の搭載機能であることを特徴とする。
【００４４】
請求項１０記載の発明は、請求項１から請求項８のいずれかに記載のネットワーク機器において、
前記オブジェクトが、
前記アプリケーションからの前記操作要求に基づき前記機器搭載機能の呼び出し方法に適合した前記機器操作要求を生成し、生成した前記機器操作要求を前記抽象化機能に渡すことを特徴とする。
【００４５】
請求項１１記載の発明は、請求項１記載のネットワーク機器において、
前記抽象化機能は、さらに、
ローカル機器およびリモート機器を含む複数の機器搭載機能へのアクセス要求に対する応答を同期させる機能と、
各リモート機器へのアクセス要求に対するネットワークのスループット情報に基づき各リモート機器へのアクセス要求の優先度を制御する機能、
を有することを特徴とする。
【発明の効果】
【００４６】
本発明によれば、抽象化機能が、オジェクトを介して取得したアプリケーションからの機器搭載機能への機器操作要求に基づき実装識別子を機器識別子に変換し、機器操作要求の許可もしくは拒否を判断させ、オペレーティングシステム経由で機器搭載機能に対する操作を行うことにより、アプリケーションに実装されている機器搭載機能の識別子に関わりなく機器搭載機能を使用できる。
【００４７】
また、機器搭載機能が外部接続機器の搭載機能であることで、外部接続機器の搭載機能もアプリケーションに実装されている機器搭載機能の識別子に関わりなく使用できる。
【００４８】
また、オブジェクトが、アプリケーションからの操作要求に基づき機器搭載機能の呼び出し方法に適合した機器操作要求を生成し、生成した機器操作要求を抽象化機能に渡すことにより、ネットワーク機器毎に異なる機器搭載機能の呼び出し方法を意識することなくネットワーク機器の機器搭載機能を使用できる。
【００４９】
そして、複数のリモート機器搭載機能への操作リクエストのレスポンスを同期化し、処理実行結果を機器搭載機能抽象化フレームワーク機能で保証することで、アプリケーションプログラム内で同期させる処理を行う必要が無くなり、機器に依存しないアプリケーションプログラムとして再利用できる。
【００５０】
さらに、複数のリモート機器搭載機能について実行順番の優先度を設けることで、全体としての処理速度を上げることができ、ネットワークの影響による時間的な差分を小さくできる。
【発明を実施するための最良の形態】
【００５１】
以下本発明について、図面を用いて詳細に説明する。図１は本発明に係るネットワーク機器の一実施例を示す構成ブロック図である。
【００５２】
図１において８はネットワーク（図示せず）を介して通信を行う通信手段、９はＣＰＵやＭＰＵなどの演算制御手段、１０はハードディスク、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの記憶手段である。また、８，９および１０はネットワーク機器５１を構成している。
【００５３】
通信手段８の一方の入出力はネットワーク（図示せず）に相互に接続され、他方の入
出力は演算制御手段９に相互に接続される。また、記憶手段１０の入出力もまた演算制御
手段９に相互に接続される。
【００５４】
図１に示すネットワーク機器５１において、演算制御手段９は、記憶手段１０に格納されているオペレーティングシステムを読み出して稼動させると共に記憶手段１０に格納されているアプリケーションを読み出してオペレーティングシステムの上で動作させる。また、演算制御手段９は通信手段８を制御してネットワーク（図示せず。）を介して他のネットワーク機器との間で通信を行う。
【００５５】
図２はネットワーク機器にインストールされたアプリケーションとネットワーク機器の資源などとの関係を示す説明図、図３、図５、図６および図７は演算制御手段９の動作を説明するフロー図、図４および図８はアプリケーションによる機器搭載機能の使用説明図である。
【００５６】
図２において、ＮＤ５１はネットワーク機器、ＡＰ５１およびＡＰ５２は機器搭載機能を使用するアプリケーション、ＯＳ５１はオペレーティングシステム、ＨＷ５１は演算制御手段９や記憶手段１０などのハードウェア（資源）である。
【００５７】
また、ＦＣ５１はネットワーク機器ＮＤ５１の機器搭載機能であるディジタル入力機能（ＤＩ）もしくはネットワーク機器ＮＤ５１の機器搭載機能であるディジタル出力機能（ＤＯ）である。
【００５８】
さらに、ＦＷ５１はオペレーティングシステムＯＳ５１の上で動作する抽象化機能であり、抽象化機能ＦＷ５１内にはバインディング機能ＢＦ５１とＢＦ５２、アクセス制御機能ＡＣ５１、駆動機能ＤＲ５１をそれぞれ有している。これらの機能を説明する。
【００５９】
バインディング機能ＢＦ５１とＢＦ５２は、アプリケーションが有する実装識別子とインストールされているネットワーク機器が有する機器識別子とを対応付けたバインディング情報を管理して必要に応じて実装識別子から機器識別子への変換を行う機能であり、インストールされるアプリケーションの数だけ抽象化機能ＦＷ５１に用意される。
【００６０】
アクセス制御機能ＡＣ５１は、アプリケーション毎の機器搭載機能に対する操作の可否情報（アクセス制御情報）を管理してアプリケーションからの操作要求（実際は、機器操作要求）の許可もしくは拒否を判断する。
【００６１】
駆動機能ＤＲ５１は、アプリケーションからの操作要求（実際は、機器操作要求）に基づき機器搭載機能の操作に必要なドライバなどを選択して機器搭載機能の操作を行う。
【００６２】
ネットワーク機器ＮＤ５１にインストールされたアプリケーションＡＰ５１（またはＡＰ５２）は、ハードウェアＨＷ５１上で稼動するオペレーティングシステムＯＳ５１の上で動作する。
【００６３】
このような状況下で、アプリケーションＡＰ５１は、抽象化機能ＦＷ５１を介してインストールされたネットワーク機器ＮＤ５１に搭載されているディジタル入出力（ＤＩ／ＤＯ）などの機器搭載機能ＦＣ５１を使用する。
【００６４】
図３はアプリケーションＡＰ５１の動作を説明するフロー図である。アプリケーションＡＰ５１は、ステップＳ００１において、抽象化機能ＦＷ５１に対して実装識別子を付与してオブジェクトの生成を依頼する。ステップＳ００２において、当該オブジェクトが生成されるまで待機する。ステップＳ００３において、生成されたオブジェクトに対して機器搭載機能の操作要求を行う。
【００６５】
アプリケーションＡＰ５１は、たとえば図４に示すように、抽象化機能ＦＷ５１に対して、ＲＱ６１によりオブジェクトの生成を依頼する。
【００６６】
アプリケーションＡＰ５１は、ＭＫ６１により生成されたオブジェクトＯＢ６１に対して、機器搭載機能の操作要求ＲＱ６２を行う。
【００６７】
図５は抽象化機能ＦＷ５１のオブジェクト生成動作を説明するフロー図である。抽象化機能ＦＷ５１は、ステップＳ１０１において、アプリケーションＡＰ５１からのオブジェクト生成依頼の有無を判断する。オブジェクト生成依頼があったと判断した場合には、ステップＳ１０２において、付与された実装識別子に基づきオブジェクトを生成する。
【００６８】
図４に示す抽象化機能ＦＷ５１は、アプリケーションＡＰ５１からオブジェクトの生成要求ＲＱ６１があった場合、ＭＫ６１に示すようにオブジェクトＯＢ６１を生成する。
【００６９】
図６はオブジェクトＯＢ６１の動作を説明するフロー図である。オブジェクトＯＢ６１はステップＳ２０１において生成され、アプリケーションＡＰ５１から機器搭載機能の操作要求ＲＱ６２を受領するまで待機する。ステップＳ２０２において機器搭載機能の操作要求ＲＱ６２に基づき機能操作要求を生成し、生成した機能操作要求をステップＳ２０３において抽象化機能ＦＷ５１に渡す。
【００７０】
図７は抽象化機能ＦＷ５１の機器操作要求処理動作を説明するフロー図である。抽象化機能ＦＷ５１は、ステップＳ３０１において、オブジェクトＯＢ６１からの機器操作要求の有無を判断する。機器操作要求があったと判断した場合には、ステップＳ３０２において、アプリケーションＡＰ５１が有する実装識別子に適したバインディング機能を選択して実装識別子を機器識別子に変換する。
【００７１】
たとえば、図４に示すアプリケーションＡＰ５１が機器搭載機能ＦＣ５１の実装識別子としてＳｗｉｔｃｈを有しており、バインディング機能ＢＦ５１が実装識別子Ｓｗｉｔｃｈを機器識別子ＩＤｘｘに変換するバインディング情報を有している場合、抽象化機能ＦＷ５１は、バインディング機能ＢＦ５１を選択して、実装識別子Ｓｗｉｔｃｈを機器識別子ＩＤｘｘに変換する。
【００７２】
図７のステップＳ３０３において、抽象化機能ＦＷ５１は、アクセス制御機能に機器操作要求の許可もしくは拒否を判断させる。ステップＳ３０４において、アクセス制御機能が許可と判断した場合には、ステップＳ３０５において、機器操作要求に基づき駆動機能に機器搭載機能を操作させる。
【００７３】
図４において、抽象化機能ＦＷ５１はアクセス制御機能ＡＣ５１に機器操作要求の許可もしくは拒否を判断させ、駆動機能ＤＲ５１を用いてオペレーティングシステムＯＳ５１経由で機器搭載機能ＦＣ５１に対する操作を行う。
【００７４】
次に、アプリケーションＡＰ５２が機器搭載機能を使用する場合について、図８を用いて説明する。
【００７５】
アプリケーションＡＰ５２は、抽象化機能ＦＷ５１に対して、ＲＱ７１によりオブジェクトの生成を依頼する。
【００７６】
抽象化機能ＦＷ５１は、アプリケーションＡＰ５２からオブジェクトの生成要求ＲＱ７１があった場合、ＭＫ７１に示すようにオブジェクトＯＢ７１を生成する。
【００７７】
アプリケーションＡＰ５２は、ＭＫ７１により生成されたオブジェクトＯＢ７１に対して、機器搭載機能の操作要求ＲＱ７２を行う。
【００７８】
アプリケーションＡＰ５２が機器搭載機能ＦＣ５１の実装識別子として０ｘ０１９９を有しており、バインディング機能ＢＦ５２が実装識別子０ｘ０１９９を機器識別子ＩＤｘｘに変換するバインディング情報を有している場合、抽象化機能ＦＷ５１は、バインディング機能ＢＦ５２を選択して実装識別子０ｘ０１９９を機器識別子ＩＤｘｘに変換する。
【００７９】
抽象化機能ＦＷ５１は、アクセス制御機能ＡＣ５１に機器操作要求の許可もしくは拒否を判断させ、駆動機能ＤＲ５１を用いてオペレーティングシステムＯＳ５１経由で機器搭載機能ＦＣ５１に対する操作を行う。
【００８０】
この結果、抽象化機能が、オブジェクトを介して取得したアプリケーションからの機器搭載機能への機器操作要求に基づき実装識別子を機器識別子に変換し、機器操作要求の許可もしくは拒否を判断させ、オペレーティングシステム経由で機器搭載機能に対する操作を行うことにより、アプリケーションに実装されている機器搭載機能の識別子に関わりなく機器搭載機能を使用することが可能になる。
【００８１】
また、アクセス制御機能が、機器搭載機能のアクセス制御を行うことにより、機器搭載機能に対応する外部接続された機器などに悪影響を及ぼす危険性を防止できる。
【００８２】
なお、図１に示す実施例の説明に際しては、アプリケーションがインストールされたネットワーク機器に搭載された機能を使用する場合について説明しているが、抽象化機能を介して機能を使用することにより、外部接続機器の搭載機能もアプリケーションに実装されている機器搭載機能の識別子に関わりなく使用することが可能になる。
【００８３】
また、図１に示す実施例の説明に際しては、抽象化機能による実装識別子と機器毎に異なる機器識別子との間の変換に関して記載しているが、アプリケーションからのネットワーク機器毎の機器搭載機能の呼び出し方法もまたネットワーク機器毎に異なる場合が存在する。
【００８４】
すなわち、抽象化機能により実装識別子から機器識別子に変換されたとしても、当該機器識別子が示す機器搭載機能の呼び出し方法が異なっている場合には、アプリケーションによっては同一の機能（たとえば、ディジタル入力機能（ＤＩ）など）であるにもかかわらず、異なる呼び出し方法が設定されているネットワーク機器の機器搭載機能を使用することができないことになる。
【００８５】
この場合、抽象化機能により生成されるオブジェクトが、アプリケーションからの操作要求に基づきネットワーク機器毎に異なる機器搭載機能の呼び出し方法に適合した機器操作要求を生成して抽象化機能に渡すことにより解決される。
【００８６】
このような機能をオブジェクトに持たせることにより、アプリケーション側では、ネットワーク機器毎に異なる機器搭載機能の呼び出し方法を意識することなく、オブジェクトに対して機器搭載機能の操作要求を行うだけでネットワーク機器の機器搭載機能を使用することが可能になる。
【００８７】
この結果、抽象化機能により生成されるオブジェクトが、アプリケーションからの操作要求に基づき機器搭載機能の呼び出し方法に適合した機器操作要求を生成して抽象化機能に渡すことにより、ネットワーク機器毎に異なる機器搭載機能の呼び出し方法を意識することなくネットワーク機器の機器搭載機能を使用することが可能になる。
【００８８】
なお、抽象化機能により生成されるオブジェクトを用いて機器搭載機能にアクセスするのにあたり、ローカル機器搭載機能からの操作要求のレスポンスとネットワーク経由のリモート機器搭載機能からの操作要求のレスポンスには、ネットワークの影響により時間的な差分が生じることがある。この場合、アプリケーションは、次の処理に移るタイミングを把握しなくてはならない。
【００８９】
また、ネットワークの影響による時間的な差分は、できる限り小さくすることが望ましい。
【００９０】
図９は、これらの課題を解決する本発明の他の実施例を示す説明図であり、図２と共通する部分には同一の符号を付けている。図９において、抽象化機能ＦＷ５１内には、図２のバインディング機能ＢＦ５１とＢＦ５２、アクセス制御機能ＡＣ５１、駆動機能ＤＲ５１に加えて、レスポンス同期機能ＲＳ５１とネットワークスループット測定機能ＮＴＭ５１を設けている。
【００９１】
レスポンス同期機能ＲＳ５１は、抽象化機能により生成されるオブジェクトを用いて機器搭載機能にアクセスする場合にネットワークの影響により発生するローカル機器搭載機能からの操作要求のレスポンスとネットワーク経由のリモート機器搭載機能からの操作要求のレスポンスとの時間的な差分に基づき、パフォーマンスの悪いリモート機器から優先して操作要求に対する処理を実行するようにディスパッチを行う。
【００９２】
これにより、ローカル機器搭載機能からの操作要求のレスポンスとリモート機器搭載機能からの操作要求のレスポンスとの時間的な差分を可能な限り小さくでき、システム全体の処理速度を上げることができるとともに、アプリケーションは次の処理に移るタイミングを容易に把握できる。なお、レスポンスの同期は、オブジェクトからの操作要求の結果が全て揃うことで確認できる。
【００９３】
ネットワークスループット測定機能ＮＴＭ５１は、たとえばレスポンス同期機能ＲＳ５１からスループット情報を取得して、各リモート機器搭載機能のネットワークスループットを測定する。スループット測定は、個々の機器搭載機能にアクセスする際に行い、過去に何回かのアクセスをしている中で平均的なスループットの値を算出する。レスポンス同期機能ＲＳ５１のリクエストに応じて、ある機器搭載機能へのネットワーク・スループット情報を提供する。なお、スループット測定手段としては、たとえばＴＴＣＰ（ＴｅｓｔＴＣＰ）のようなプログラムを用いる。
【００９４】
図１０は図９の動作説明図である。図１０において、アプリケーションＡＰ５１は、オブジェクト取得要求を実行する（Ｓ４０１）。抽象化機能ＦＷ５１は、オブジェクト取得要求に合致するオブジェクトを選択してアプリケーションＡＰ５１に渡す（Ｓ４０２）。アプリケーションＡＰ５１は、オブジェクトを取得すると（Ｓ４０３）、そのオブジェクトを用いて所望の機器搭載機能操作要求を実行する（Ｓ４０４）。
【００９５】
抽象化機能ＦＷ５１は、操作要求を受け付けて（Ｓ４０５）、アプリケーションＡＰ５１が有する実装識別子に適したバインディング機能を選択して実装識別子を機器識別子に変換する指定機器搭載機能ＩＤのバインディング処理を実行する（Ｓ４０６）。その後、ネットワークスループット測定機能ＮＴＭ５１から転送速度情報を取得し（Ｓ４０７）、レスポンス同期機能ＲＳ５１より操作要求をローカル機器ＮＤ５１、リモート機器ＮＤ５２およびＮＤ５３にそれぞれディスパッチする（Ｓ４０８）。
【００９６】
ディスパッチにあたり、レスポンス同期機能ＲＳ５１は、ローカル機器搭載機能からの操作要求のレスポンスとリモート機器搭載機能からの操作要求のレスポンスとの時間的な差分に基づき、パフォーマンスの悪いリモート機器から操作要求に対する処理を実行するように優先順位をつける。
【００９７】
ローカル機器ＮＤ５１は操作要求に基づいて機器搭載処理機能を実行して実行結果を抽象化機能ＦＷ５１に出力し（Ｓ４０９）、リモート機器ＮＤ５３も操作要求に基づいて機器搭載処理機能を実行して実行結果を抽象化機能ＦＷ５１に出力し（Ｓ４１０）、リモート機器ＮＤ５２も操作要求に基づいて機器搭載処理機能を実行して実行結果を抽象化機能ＦＷ５１に出力する（Ｓ４１１）。
【００９８】
抽象化機能ＦＷ５１は、これら各機器ＮＤ５１〜ＮＤ５３から入力された実行結果に基づいてディスパッチした操作要求の実行結果を確認し（Ｓ４１２）、その結果をアプリケーションＡＰ５１に報告する。
【００９９】
アプリケーションＡＰ５１がこの報告を受領確認することで、一連の機器搭載機能操作を終了する（Ｓ４１３）。
【０１００】
図９の構成によれば、パフォーマンスの悪いリモート機器から操作要求に対する処理を実行するように優先順位をつけてディスパッチを行うので、システム全体の処理速度を上げることができ、アプリケーションは次の処理に移るタイミングを容易に把握できる。
【０１０１】
なお、本発明におけるネットワークは、ＬＡＮやＷＡＮやシリアルバスを含むものとする。
【０１０２】
また、上記実施例では、ネットワーク経由でリモート機器搭載機能にアクセスする場合の課題として説明したが、機器搭載機能へのアクセス方法が変わっても利用できる仕組みであり、たとえば、ローカル接続のローカル機器搭載機能がネットワーク経由のリモート機器搭載機能に接続変更されたり、リモート機器搭載機能へのアクセスがＬＡＮやＷＡＮ経由からシリアルバス経由に接続変更された場合であっても、さらには、ネットワーク以外のアクセス方法に接続変更された場合であっても、アプリケーションプログラムを更新することなく再利用できる。
【図面の簡単な説明】
【０１０３】
【図１】本発明に係るネットワーク機器の一実施例を示す構成ブロック図である。
【図２】ネットワーク機器にインストールされたアプリケーションとネットワーク機器の資源などとの具体的な関係を示す説明図である。
【図３】演算制御手段の動作を説明するフロー図である。
【図４】アプリケーションによる機器搭載機能の使用を説明する説明図である。
【図５】演算制御手段の動作を説明するフロー図である。
【図６】演算制御手段の動作を説明するフロー図である。
【図７】演算制御手段の動作を説明するフロー図である。
【図８】アプリケーションによる機器搭載機能の使用を説明する説明図である。
【図９】ネットワーク機器にインストールされたアプリケーションとネットワーク機器の資源などとの他の具体的な関係を示す説明図である。
【図１０】図９の動作説明図である。
【図１１】従来の分散アプリケーション環境の一例を示す構成ブロック図である。
【図１２】ネットワーク機器の詳細を示す構成ブロック図である。
【図１３】ネットワーク機器にインストールされたアプリケーションとネットワーク機器の資源などとの関係を示す説明図である。
【図１４】ネットワーク機器にインストールされたアプリケーションとネットワーク機器の資源などとの関係を示す説明図である。
【図１５】アプリケーションの実装識別子の一例を示す説明図である。
【図１６】アプリケーションによる機器搭載機能の使用を説明する説明図である。
【図１７】アプリケーションによる機器搭載機能の使用を説明する説明図である。
【符号の説明】
【０１０４】
１，２，３，４，５０，５１  ネットワーク機器
５，８  通信手段
６，９  演算制御手段
７，１０  記憶手段
１００  ネットワーク
【図１】
2008090821.tif 000003
【図２】
2008090821.tif 000004
【図３】
2008090821.tif 000005
【図４】
2008090821.tif 000006
【図５】
2008090821.tif 000007
【図６】
2008090821.tif 000008
【図７】
2008090821.tif 000009
【図８】
2008090821.tif 000010
【図９】
2008090821.tif 000011
【図１０】
2008090821.tif 000012
【図１１】
2008090821.tif 000013
【図１２】
2008090821.tif 000014
【図１３】
2008090821.tif 000015
【図１４】
2008090821.tif 000016
【図１５】
2008090821.tif 000017
【図１６】
2008090821.tif 000018
【図１７】
2008090821.tif 000019