(57)【要約】  第１の処理装置（１１０）が第２の処理装置（１２０）に接続された第２の機器（１２１）を制御する機器間制御システムであって、第１の処理装置（１１０）は、第２の処理装置（１２０）に接続され、第２の処理装置（１２０）が制御する第２の機器（１２１）の制御情報を取得する。第１の処理装置（１１０）は、第２の処理装置（１２０）に接続された第２の機器（１２１）に対する所定の制御時には、第１の処理装置（１１０）内のインタフェース同様の形式を有し、第１の処理装置（１１０）以外の識別子を付与した所定のコマンドを実行し、第２の処理装置（１２０）からの応答を、実行したコマンドに対する結果として用いる。
2015063959.tif 000002
【特許請求の範囲】
【請求項１】
自処理装置が自処理装置に接続された第１の機器、または第２の処理装置に接続された第２の機器を制御する機器間制御方法であって、
自処理装置のコンピュータが、
制御対象の前記第１の機器または前記第２の機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成し、
予め設定されたネットワーク情報に含まれる前記第１の機器または前記第２の機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、
前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択して、前記パケットを引き渡し、
前記パケットを該当する自処理装置に接続された前記第１の機器、または前記第２の機器が接続された前記第２の処理装置に送信する、
ことを特徴とする機器間制御方法。
【請求項２】
前記第２の処理装置は、
受信した前記パケットから前記オブジェクト名、関数名、引数情報を復元し、制御処理を実行し、
実行結果の戻り値を所定のパケットに変換して、第１の処理装置に送信し、
前記第１の処理装置は、
前記第２の処理装置が送信した前記戻り値を受信する、
ことを特徴とする請求項１に記載の機器間制御方法。
【請求項３】
前記自処理装置と、第２の処理装置との間にサーバを設け、
前記自処理装置、または第２の処理装置は、オブジェクトのネットワーク上の位置情報を前記サーバに登録し、
前記オブジェクトにアクセスする前記自処理装置、または前記第２の処理装置は、アクセス先の処理装置のネットワーク上の位置情報を前記サーバに問い合わせ、
前記問い合わせにより得たネットワーク上の位置情報に基づき、所望する処理装置のオブジェクトに対し、前記ネットワーク上の位置情報を用いてアクセスする、
ことを特徴とする請求項１または２に記載の機器間制御方法。
【請求項４】
自処理装置が第２の処理装置に接続された第２の機器を制御する機器間制御方法であって、
自処理装置のコンピュータが、
前記第２の処理装置に接続され、当該第２の処理装置が制御する前記第２の機器の制御情報を取得する処理、
前記第２の処理装置に接続された前記第２の機器に対する所定の制御時には、自処理装置内のインタフェース同様の形式を有し、自処理装置以外の識別子を付与した所定のコマンドを実行するとともに、
前記制御情報を参照して前記所定のコマンドに対応する要求を前記第２の処理装置に送信する処理、
前記第２の処理装置からの応答を、前記実行したコマンドに対する結果として用いる処理、
を実行することを特徴とする機器間制御方法。
【請求項５】
自処理装置に接続された第１の機器の制御は、自処理装置の接続ポートを指定し、
前記第２の処理装置に接続された前記第２の機器の制御は、当該制御に対応する所定のコマンドのポートを自処理装置以外として設定する、
ことを特徴とする請求項４に記載の機器間制御方法。
【請求項６】
前記制御情報には、前記第２の機器の機能と、機能別の識別子を含み、
自処理装置は、前記制御情報を参照し、所望する機能の制御に対応した識別子の情報を前記第２の処理装置に送信する、
ことを特徴とする請求項４または５に記載の機器間制御方法。
【請求項７】
自処理装置は、前記第２の機器の制御情報を予め取得し、格納保持しておくことを特徴とする請求項４〜６のいずれか一つに記載の機器間制御方法。
【請求項８】
自処理装置は、前記第２の機器の制御情報を前記第２の処理装置から取得することを特徴とする請求項４〜７のいずれか一つに記載の機器間制御方法。
【請求項９】
前記第２の機器の制御情報を前記第２の処理装置が接続されたサーバが収集し、
自処理装置は、前記サーバから前記第２の機器の制御情報を取得することを特徴とする請求項４〜８のいずれか一つに記載の機器間制御方法。
【請求項１０】
前記第２の処理装置は、前記自処理装置からの要求時に、前記第２の機器の制御情報に基づき、前記第２の機器が接続された接続ポートを指定し、前記第２の機器を制御することを特徴とする請求項４〜９のいずれか一つに記載の機器間制御方法。
【請求項１１】
自処理装置が自処理装置に接続された第１の機器、または第２の処理装置に接続された第２の機器を制御する機器間制御プログラムであって、
自処理装置のコンピュータに、
制御対象の前記第１の機器または前記第２の機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成する処理、
予め設定されたネットワーク情報に含まれる前記第１の機器または前記第２の機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得る処理、
前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択して、前記パケットを引き渡す処理、
前記パケットを該当する自処理装置に接続された前記第１の機器、または前記第２の機器が接続された前記第２の処理装置に送信する処理、
を実行させることを特徴とする機器間制御プログラム。
【請求項１２】
自処理装置が自処理装置に接続された第１の機器、または第２の処理装置に接続された第２の機器を制御する機器間制御システムであって、
自処理装置は、
制御対象の前記第１の機器または前記第２の機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成するオブジェクト生成部と、
予め設定されたネットワーク情報に含まれる前記第１の機器または前記第２の機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得る通信処理部と、
前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択して、前記パケットを引き渡すパケット処理部と、
前記パケットを該当する自処理装置に接続された前記第１の機器、または前記第２の機器が接続された前記第２の処理装置に送信する通信部と、
を有することを特徴とする機器間制御システム。
【請求項１３】
自処理装置が第２の処理装置に接続された第２の機器を制御する機器間制御プログラムであって、
自処理装置のコンピュータに、
前記第２の処理装置に接続され、当該第２の処理装置が制御する前記第２の機器の制御情報を取得する処理、
前記第２の処理装置に接続された前記第２の機器に対する所定の制御時には、自処理装置内のインタフェース同様の形式を有し、自処理装置以外の識別子を付与した所定のコマンドを実行させ、
前記制御情報を参照して前記所定のコマンドに対応する要求を前記第２の処理装置に送信する処理、
前記第２の処理装置からの応答を、前記実行したコマンドに対する結果として用いる処理、
を実行させることを特徴とする機器間制御プログラム。
【請求項１４】
自処理装置が第２の処理装置に接続された第２の機器を制御する機器間制御システムであって、
自処理装置は、
前記第２の処理装置に接続され、当該第２の処理装置が制御する前記第２の機器の制御情報を取得する取得部と、
前記第２の処理装置に接続された前記第２の機器に対する所定の制御時には、自処理装置内のインタフェース同様の形式を有し、自処理装置以外の識別子を付与した所定のコマンドを実行し、
前記制御情報を参照して前記所定のコマンドに対応する要求を前記第２の処理装置に送信し、
前記第２の処理装置からの応答を、前記実行したコマンドに対する結果として用いる実行部と、
前記要求を送信し、前記要求の返答を受信する通信部と、
を有することを特徴とする機器間制御システム。
【請求項１５】
自処理装置と前記第２の処理装置とがネットワーク接続されたことを特徴とする請求項１４に記載の機器間制御システム。
【請求項１６】
自処理装置と前記第２の処理装置は、同一機器内のＣＰＵ間接続であることを特徴とする請求項１４に記載の機器間制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワーク等に接続された各機器の相互制御を行う機器間制御方法、機器間制御プログラムおよび機器間制御システムに関する。
【背景技術】
【０００２】
従来、ネットワーク等を介して接続された機器が相互に制御可能な技術が提案されている（例えば、下記特許文献１，２等参照。）。特許文献１は、ＥＣＨＯＮＥＴ（Ｅｎｅｒｇｙ  Ｃｏｎｓｅｒｖａｔｉｏｎ  ａｎｄ  ＨＯｍｅｃａｒｅ  ＮＥＴｗｏｒｋ）規格にしたがい、家電機器等を外部の通信網から家電制御プロトコルを用いて制御する技術である。特許文献２は、車載用の組み込みシステム向けに標準化されたＡＵＴＯＳＡＲ（ＡＵＴｏｍｏｔｉｖｅ  Ｏｐｅｎ  Ｓｙｓｔｅｍ  ＡＲｃｈｉｔｅｃｔｕｒｅ）に準拠した制御プログラムにより、要求される機能を完全に停止させることなく、プログラムの一部を動的に書き換えることができる技術である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１５２３４３号公報
【特許文献２】特開２０１２−１５５６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ある第１の処理装置に接続された第１の機器の制御方法と、ネットワーク上の他の第２の処理装置に接続された第２の機器の制御方法とは異なっている。第１の処理装置は、第１の機器に直接アクセスする方法でプログラミング可能である。これに対し、第１の処理装置には、第２の機器を制御するために、間に介在するネットワークの通信プログラムを追加しなければ実現できない。【０００５】
特許文献１の技術は専用プロトコルを用いるため、ネットワーク間通信に専用のＩ／Ｆが必要となる。また、特許文献２の技術においても、車載の各機器間の通信には、専用のＩ／Ｆおよび専用プロトコルが必要となる。【０００６】
このように、第１の処理装置は第１の機器に対する制御を行うクローズドシステムであり、同様に第２の処理装置は第２の機器に対する制御を行うクローズドシステムであり、これらクローズドシステム間を跨いでの機器制御はネットワークの通信を間に介在させねばならず、通信処理のプログラムを別途必要とする。したがって、従来、自身の第１の処理装置がネットワーク上の第２の機器を制御するためには、プログラミングのステップ数が大幅に増えるという問題を生じた。【０００７】
また、制御対象の機器を自身の第１の処理装置に接続されている第１の機器からネットワーク上の第２の機器に変更する場合、プログラムの変更工数が増大するという問題が生じた。【０００８】
例えば、第１，第２の処理装置がそれぞれＣＰＵを備えた制御機器であり、互いにネットワーク接続されているとする。第１の処理装置は、第１の機器として監視カメラを制御する。第２の処理装置は、第２の機器として侵入検知器を制御する。そして、第１の処理装置によって、第２の機器（侵入検知器）を制御しようとする場合、この第２の機器は、第２の処理装置に固有のプログラムによって制御されているため、ネットワークの通信プログラムを追加し、かつ、第２の処理装置のプログラムにしたがったプログラム調整を行わなければならず、手間がかかった。【０００９】
図１４は、従来のネットワーク接続された他の機器の制御処理プログラム例を示す図である。図１４の（ａ）に示すように、第１の処理装置Ａに接続された第１の機器Ｘへのアクセス（オープン、クローズ）については、通信にかかる処理を考慮せずに、少ない行数でプログラミングできる。【００１０】
しかしながら、図１４の（ｂ）に示すように、第１の処理装置Ａが第２の機器Ｙへアクセス（オープン、クローズ）する場合には、第１の処理装置Ａと第２の処理装置Ｂとの間のネットワークの通信にかかる通信プログラムに追加行１００１ａ〜１００１ｃ、および修正行１００２が必要となり、作業工数が増えてしまう。【００１１】
上述の説明では、第１の処理装置と第２の処理装置がネットワークを介して接続されることを前提に説明したが、これら第１，第２の処理装置がそれぞれ分散・マルチコアのＣＰＵ，共有メモリ等を備えた構成においても、ＣＰＵ間の通信において同様の問題を生じる。【００１２】
本発明は、上記課題に鑑み、処理装置間の通信を意識せずに他の処理装置に接続された機器を簡単に制御できることを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明の機器間制御方法は、自処理装置が自処理装置に接続された第１の機器、または第２の処理装置に接続された第２の機器を制御する機器間制御方法であって、自処理装置のコンピュータが、制御対象の前記第１の機器または前記第２の機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成し、予め設定されたネットワーク情報に含まれる前記第１の機器または前記第２の機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得て、前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択して、前記パケットを引き渡し、前記パケットを該当する自処理装置に接続された前記第１の機器、または前記第２の機器が接続された前記第２の処理装置に送信する、ことを特徴とする。【００１４】
また、前記第２の処理装置は、受信した前記パケットから前記オブジェクト名、関数名、引数情報を復元し、制御処理を実行し、実行結果の戻り値を所定のパケットに変換して、第１の処理装置に送信し、前記第１の処理装置は、前記第２の処理装置が送信した前記戻り値を受信する、ことを特徴とする。【００１５】
また、前記自処理装置と、第２の処理装置との間にサーバを設け、前記自処理装置、または第２の処理装置は、オブジェクトのネットワーク上の位置情報を前記サーバに登録し、前記オブジェクトにアクセスする前記自処理装置、または前記第２の処理装置は、アクセス先の処理装置のネットワーク上の位置情報を前記サーバに問い合わせ、前記問い合わせにより得たネットワーク上の位置情報に基づき、所望する処理装置のオブジェクトに対し、前記ネットワーク上の位置情報を用いてアクセスする、ことを特徴とする。【００１６】
また、本発明の機器間制御方法は、自処理装置が第２の処理装置に接続された第２の機器を制御する機器間制御方法であって、自処理装置のコンピュータが、前記第２の処理装置に接続され、当該第２の処理装置が制御する前記第２の機器の制御情報を取得する処理、前記第２の処理装置に接続された前記第２の機器に対する所定の制御時には、自処理装置内のインタフェース同様の形式を有し、自処理装置以外の識別子を付与した所定のコマンドを実行するとともに、前記制御情報を参照して前記所定のコマンドに対応する要求を前記第２の処理装置に送信する処理、前記第２の処理装置からの応答を、前記実行したコマンドに対する結果として用いる処理、を実行することを特徴とする。【００１７】
また、自処理装置に接続された第１の機器の制御は、自処理装置の接続ポートを指定し、前記第２の処理装置に接続された前記第２の機器の制御は、当該制御に対応する所定のコマンドのポートを自処理装置以外として設定する、ことを特徴とする。【００１８】
また、前記制御情報には、前記第２の機器の機能と、機能別の識別子を含み、自処理装置は、前記制御情報を参照し、所望する機能の制御に対応した識別子の情報を前記第２の処理装置に送信する、ことを特徴とする。【００１９】
また、自処理装置は、前記第２の機器の制御情報を予め取得し、格納保持しておくことを特徴とする。【００２０】
また、自処理装置は、前記第２の機器の制御情報を前記第２の処理装置から取得することを特徴とする。【００２１】
また、前記第２の機器の制御情報を前記第２の処理装置が接続されたサーバが収集し、自処理装置は、前記サーバから前記第２の機器の制御情報を取得することを特徴とする。【００２２】
また、前記第２の処理装置は、前記自処理装置からの要求時に、前記第２の機器の制御情報に基づき、前記第２の機器が接続された接続ポートを指定し、前記第２の機器を制御することを特徴とする。【００２３】
また、本発明の機器間制御プログラムは、自処理装置が自処理装置に接続された第１の機器、または第２の処理装置に接続された第２の機器を制御する機器間制御プログラムであって、自処理装置のコンピュータに、制御対象の前記第１の機器または前記第２の機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成する処理、予め設定されたネットワーク情報に含まれる前記第１の機器または前記第２の機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得る処理、前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択して、前記パケットを引き渡す処理、前記パケットを該当する自処理装置に接続された前記第１の機器、または前記第２の機器が接続された前記第２の処理装置に送信する処理、を実行させることを特徴とする。【００２４】
また、本発明の機器間制御システムは、自処理装置が自処理装置に接続された第１の機器、または第２の処理装置に接続された第２の機器を制御する機器間制御システムであって、自処理装置は、制御対象の前記第１の機器または前記第２の機器を制御するための名前と、関数名と引数情報からなるオブジェクトを生成するオブジェクト生成部と、予め設定されたネットワーク情報に含まれる前記第１の機器または前記第２の機器の通信方式、および通信パラメータを参照して、前記オブジェクトにアクセスする情報を得る通信処理部と、前記オブジェクト名、関数名、および引数情報を所定のパケットに変換し、前記通信方式に対応するポートを選択して、前記パケットを引き渡すパケット処理部と、前記パケットを該当する自処理装置に接続された前記第１の機器、または前記第２の機器が接続された前記第２の処理装置に送信する通信部と、を有することを特徴とする。【００２５】
また、本発明の機器間制御プログラムは、自処理装置が第２の処理装置に接続された第２の機器を制御する機器間制御プログラムであって、自処理装置のコンピュータに、前記第２の処理装置に接続され、当該第２の処理装置が制御する前記第２の機器の制御情報を取得する処理、前記第２の処理装置に接続された前記第２の機器に対する所定の制御時には、自処理装置内のインタフェース同様の形式を有し、自処理装置以外の識別子を付与した所定のコマンドを実行させ、前記制御情報を参照して前記所定のコマンドに対応する要求を前記第２の処理装置に送信する処理、前記第２の処理装置からの応答を、前記実行したコマンドに対する結果として用いる処理、を実行させることを特徴とする。【００２６】
また、本発明の機器間制御システムは、自処理装置が第２の処理装置に接続された第２の機器を制御する機器間制御システムであって、自処理装置は、前記第２の処理装置に接続され、当該第２の処理装置が制御する前記第２の機器の制御情報を取得する取得部と、前記第２の処理装置に接続された前記第２の機器に対する所定の制御時には、自処理装置内のインタフェース同様の形式を有し、自処理装置以外の識別子を付与した所定のコマンドを実行し、前記制御情報を参照して前記所定のコマンドに対応する要求を前記第２の処理装置に送信し、前記第２の処理装置からの応答を、前記実行したコマンドに対する結果として用いる実行部と、前記要求を送信し、前記要求の返答を受信する通信部と、を有することを特徴とする。【００２７】
また、機器間制御システムの自処理装置と前記第２の処理装置とがネットワーク接続されたことを特徴とする。【００２８】
また、機器間制御システムの自処理装置と前記第２の処理装置は、同一機器内のＣＰＵ間接続であることを特徴とする。【００２９】
上記構成によれば、自処理装置は、第２の処理装置に接続された第２の機器を直接制御できる。第２の機器は、第２の処理装置に固有のプログラムによって制御されているが、自処理装置は、ネットワークの通信プログラム等を追加せずとも第２の処理装置に接続された第２の機器を制御できる。
【発明の効果】
【００３０】
本発明によれば、処理装置間の通信を意識せずに他の処理装置に接続された機器を簡単に制御できるという効果を奏する。
【図面の簡単な説明】
【００３１】
【図１】図１は、実施の形態にかかる機器間制御システムの全体構成を示す図である。
【図２】図２は、実施の形態にかかる第１の処理装置のハードウェア構成例を示すブロック図である。
【図３】図３は、実施の形態にかかる第１の処理装置から第２の機器へのアクセスの概要を説明する図である。
【図４】図４は、実施の形態にかかる制御プログラム例を示す図である。
【図５】図５は、実施の形態にかかる第１の処理装置によって第２の機器にアクセスするための具体例を説明する図である。
【図６】図６は、組み込み機器におけるプログラムの作成例を示す図である。
【図７】図７は、異なる処理装置に接続された機器に対するアクセスの具体例を示す図である。
【図８】図８は、他装置のオブジェクト読み出しの一連の流れを説明する図である。
【図９】図９は、ＣＰＵＡ，ＣＰＵＢが共有メモリによってデータを送受する構成例を示す図である。
【図１０】図１０は、アプリケーションの公開インタフェースの呼び出しを説明する図である。
【図１１】図１１は、リモート呼び出し可能な公開インタフェースの定義例を示す図表である。
【図１２】図１２は、アプリケーションの公開インタフェースの呼び出しの他の例を説明する図である。
【図１３】図１３は、装置Ａ，Ｂ間のＮＡＴ越えの構成例を示す図である。
【図１４】図１４は、従来のネットワーク接続された他の機器の制御処理プログラム例を示す図である。
【発明を実施するための形態】
【００３２】
（実施の形態）
以下に添付図面を参照して、この発明にかかる機器間制御方法、機器間制御プログラムおよび機器間制御システムの好適な実施の形態を詳細に説明する。
【００３３】
図１は、実施の形態にかかる機器間制御システムの全体構成を示す図である。機器間制御システム１００は、第１の処理装置１１０と第２の処理装置１２０とがネットワーク１３０を介して接続されている。
【００３４】
第１の処理装置１１０には、第１の機器１１１が接続され、第１の処理装置１１０は、第１の機器１１１を制御する。第２の処理装置１２０には、第２の機器１２１が接続され、第２の処理装置１２０は、第２の機器１２１を制御する。
【００３５】
図１に記載したように、第２の処理装置１２０は、ネットワーク１３０を介して複数接続することができる。また、第２の処理装置１２０には、異なる（機能等の）第２の機器１２１を複数接続することができる。これら第２の処理装置１２０と第２の機器１２１は、固有のＩＤにより識別できる。
【００３６】
実施の形態では、第１の処理装置１１０は、ネットワーク１３０を介して第２の処理装置１２０に接続された第２の機器１２１を直接制御しようとするものである。第１の処理装置１１０、および第２の処理装置１２０は、ネットワーク１３０に接続可能な汎用の通信Ｉ／Ｆと通信プログラムを備えているものとする。
【００３７】
図２は、実施の形態にかかる第１の処理装置のハードウェア構成例を示すブロック図である。図２において、第１の処理装置１１０は、制御部（ＣＰＵ）２０１と、Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）２０２と、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）２０３と、半導体メモリやディスクドライブ等の記憶部２０４と、通信インタフェース（Ｉ／Ｆ）２０５と、を含む。これらＣＰＵ２０１〜通信インタフェース２０５は、バス２０６によってそれぞれ接続されている。
【００３８】
また、この第１の処理装置１１０には、被制御機器である第１の機器１１１がバス２０６を介して接続される。第１の機器１１１は、通信インタフェース（Ｉ／Ｆ）２０５等を介して接続される構成としてもよい。さらに、この第１の処理装置１１０は、ディスプレイ２０８、キーボード２１０、マウス２１１、スキャナ２１２、プリンタ２１３がバス２０６等を介して接続された構成とすることができる。
【００３９】
ＣＰＵ２０１は、第１の処理装置１１０の全体の制御を司る演算処理装置である。ＲＯＭ２０２は、第１の処理装置１１０のプログラム等を記憶する不揮発性メモリである。ＲＡＭ２０３は、ＣＰＵ２０１によるプログラムの演算処理実行時のワークエリアとして使用される揮発性メモリである。
【００４０】
通信インタフェース２０５は、ネットワーク１３０と内部のインタフェースを司り、第２の処理装置１２０との間のデータの入出力を制御する。具体的に、通信インタフェース２０５は、通信回線を通じてネットワーク１３０となるＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）、インターネットなどに接続され、ネットワーク１３０を介して第２の処理装置１２０に接続される。通信インタフェース２０５には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４１】
ディスプレイ２０８は、ＣＰＵ２０１のプログラム実行による被制御機器（第１の機器１１１，第２の機器１２１）の制御情報を表示する装置である。ディスプレイ２０８には、例えば、Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ（ＴＦＴ）液晶ディスプレイ、プラズマディスプレイ、有機ＥＬディスプレイなどを採用することができる。
【００４２】
第２の処理装置１２０についても、第１の処理装置１１０同様に図２に記載のハードウェアにより構成することができる。
【００４３】
図３は、実施の形態にかかる第１の処理装置から第２の機器へのアクセスの概要を説明する図である。第２の機器１２１（Ｙ）が所定の監視エリアの人などの侵入を監視する侵入検知器の例で説明する。
【００４４】
はじめに、第１の処理装置（Ａ）１１０は、ＣＰＵ２０１がアプリケーション等のプログラム３０１を実行し、このプログラム３０１は、第２の機器１２１の監視情報の取得にかかる処理（図示の例ではＲｅａｄ関数をｃａｌｌ）を行い（ステップＳ３０１）、Ｒｅａｄコマンドを発行する（ステップＳ３０２）。
【００４５】
次に、プログラム３０１の下位層は、第２の機器１２１に対するコマンドを解釈し、第２の機器１２１の制御情報が示された処理テーブル３０２を参照し、第２の機器１２１の監視情報を取得するコマンドを発行する（ステップＳ３０３）。処理テーブル３０２は、第２の機器１２１が接続された第２の処理装置１２０に予め用意されるものであり、図２に示したＲＡＭ２０３上に作成され、記憶部２０４に保持できる。
【００４６】
ステップＳ３０３では、第１の処理装置１１０は、処理テーブル３０２を第２の処理装置１２０等から取得したものを参照する。また、第１の処理装置１１０は、ステップＳ３０３により発行されたコマンドを、汎用の通信Ｉ／Ｆを介して処理テーブル３０２に該当する第２の処理装置１２０に送信する。ここで、第１の処理装置１１０は、第２の機器１２１を制御するコマンドそのものを送信するのではなく、処理テーブル３０２の参照により、コマンドを解釈してこのコマンドに対応する制御の要求を送信する。第２の処理装置１２０は、処理テーブル３０２を有しており、処理テーブル３０２の参照により、第１の処理装置１１０から送信された要求に対応する制御を行うことができる。
【００４７】
第２の処理装置（Ｂ）１２０では、第１の処理装置１１０からのＲｅａｄコマンドを受け取り、Ｒｅａｄコマンドに対応して、第２の機器１２１から監視情報を取得し（ステップＳ３０４）、第１の処理装置１１０に対して監視情報を送付する（ステップＳ３０５）。
【００４８】
図４は、実施の形態にかかる制御プログラム例を示す図である。図４の（ａ）は、第１の処理装置１１０に接続されている第１の機器（Ｘ）１１１の制御プログラム例である。また、図４の（ｂ）は、第２の処理装置１２０に接続されている第２の機器（Ｙ）１２１の制御プログラム例である。
【００４９】
図４の（ａ），（ｂ）のプログラムが示す制御内容は同じものとなる。このように、被制御対象（第１の機器１１１、第２の機器１２１）が自身（第１の処理装置１１０）に接続されている／いないにかかわらず、プログラム内容は同じとなる。したがって、プログラマは、第１の処理装置１１０のプログラムを作成する際に、第１の機器１１１、および第２の機器１２１について、第１の処理装置１１０と第２の処理装置１２０間の通信にかかる処理を意識することなく、プログラムを作成することができるようになる。
【００５０】
また、第１の処理装置１１０、第２の処理装置１２０に接続される第１の機器１１１、第２の機器１２１の故障や機能変更等によるハードウェアの変更が生じても、処理テーブル３０２を変更するだけで、図４に示したプログラム（アプリケーション層のソフトウェア）の変更は発生しない。
【００５１】
図５は、実施の形態にかかる第１の処理装置によって第２の機器にアクセスするための具体例を説明する図である。この例では、第２の機器１２１が接続された第２の処理装置１２０は、起動時にプログラム５０１が上記の処理テーブル３０２として関数呼び出しテーブル５０２を作成する。なお、関数呼び出しテーブル５０２は、プログラム５０１の起動時に限らず、任意のタイミングで作成してもよく、手作業で作成したものを外部から入力する構成としてもよい。
【００５２】
このプログラム５０１には、起動時に関数呼び出しテーブル５０２を作成する処理と、第２の機器１２１の監視情報を取得する処理（ｒｅａｄＰｏｒｔ）と、読み出した監視情報に対して所定の関数演算等の処理と、が記述（設定）されている。
【００５３】
関数呼び出しテーブル５０２は、第２の機器１２１のＩＤ（ＩＤ１）と、この第２の機器１２１が接続された第２の処理装置１２０のポートのアドレスからなる。この例では、ＩＤ１には、第２の機器１２１から監視情報を読み出すためのｒｅａｄＰｏｒｔのアドレスが設定されている。このほか、図３に示したように、ＩＤ別に書き込み（Ｗｒｉｔｅ）、起動（Ｓｔａｒｔ）、停止（Ｓｔｏｐ）等の制御機能をそれぞれ設定しておくことができる。
【００５４】
関数呼び出しテーブル５０２の設定は、図５に示したように「ｒｅａｄＰｏｒｔ」のような文字列に限らず、ポートを読む旨を示す「１００１」のような数値列としてもよい。
【００５５】
通信処理タスク５０３は、ネットワーク１３０に対する（第１の処理装置１１０との間の）通信処理（受信および送信）を実行し、第１の処理装置１１０から第２の機器１２１に対する要求時には、該当するＩＤを用いた関数呼び出しテーブル５０２を検索し、要求に対応したプログラム５０１の関数演算を実行する。
【００５６】
以下、実施の形態にかかる第１の処理装置から第２の機器へのアクセスを行うための手順を順に説明する。はじめに、第２の処理装置１２０のプログラム５０１が起動すると、関数呼び出しテーブル５０２を作成する（ステップＳ５０１）。
【００５７】
この際、プログラム５０１は、第２の処理装置１２０に接続されている第２の機器１２１の接続ポートを検出し、監視情報を読み出す機能のＩＤにｒｅａｄＰｏｒｔのアドレスを関連付けた設定を関数呼び出しテーブル５０２に作成する。同様に、第２の処理装置１２０が実行可能な制御（関数演算等）の機能について、所定のＩＤ（図示の例ではＩＤ２）を関数呼び出しテーブル５０２に設定する。
【００５８】
そして、第１の処理装置１１０は、第２の処理装置１２０が作成した関数呼び出しテーブル５０２を任意のタイミングで取得する。関数呼び出しテーブル５０２の取得タイミングは、第２の機器１２１の機能、およびこの第２の機器１２１が接続されている第２の処理装置１２０の所在等を把握している場合には、第１の処理装置１１０が直接、第２の処理装置１２０にアクセスして取得する。
【００５９】
これに限らず、第２の処理装置１２０がネットワーク１３０上に関数呼び出しテーブル５０２を公開している場合には、この公開された関数呼び出しテーブル５０２を参照した第１の処理装置１１０のうち、第２の機器１２１の制御を所望する（監視情報を取得要求する）第１の処理装置１１０が第２の処理装置１２０にアクセスして取得する構成とすることもできる。
【００６０】
この後、第１の処理装置１１０が第２の処理装置１２０に対して、第２の機器１２１の監視情報を取得する制御を行ったとする（ステップＳ５０２）。例えば、第１の処理装置１１０のプログラム３０１が第２の機器１２１の監視情報の取得にかかる処理（ＯｂｊＹ．ｒｅａｄＤａｔａ（））を実行する。
【００６１】
この場合、第１の処理装置１１０のプログラム３０１は、第２の機器１２１に対するｒｅａｄコマンド（ｒｅａｄＤａｔａ（））を発行する（ステップＳ５０３）。そして、プログラム３０１の下位層は、第２の機器１２１に対するコマンドを解釈し、第２の処理装置１２０から取得しておいた関数呼び出しテーブル５０２を参照し、第２の機器１２１の監視情報の取得に該当する識別子ＩＤ１を指定して、第２の機器１２１の監視情報を取得するコマンド（ｒｅａｄＰｏｒｔ（他））に対応する要求ＩＤ１を第２の処理装置１２０に送信する（ステップＳ５０４）。他とは、他の処理装置のポートを示す。
【００６２】
ここで、第１の処理装置１１０は、第２の処理装置１２０に対して第２の機器１２１の制御のコマンドそのものを送信するのではなく、関数呼び出しテーブル５０２の参照により、制御内容を含む識別子ＩＤだけを送信すればよいため、送信するデータ量を削減できる。
【００６３】
図６は、組み込み機器におけるプログラムの作成例を示す図である。実施の形態の第１の処理装置１１０および第２の処理装置１２０は、組み込み機器、例えば、上記の監視カメラや侵入検知器、リモコンやデジカメ、ＩＣレコーダ、車載装置、医療機器等、用途（動作）が限定された特定用途の機器の処理部として機能する。
【００６４】
図６に示すプログラム６００は、クラスの定義６０１に基づき、第１の処理装置１１０の制御ソフト１のオブジェクト６０２と、コマンド６０３が定義される。オブジェクト６０２の機器Ａ（第１の機器１１１）は、自コンピュータ（第１の処理装置１１０）上にあることを示し、ＯｂｊＡは、内部のフラグ（ｆｌｇ）に自コンピュータの情報をセットする。オブジェクト６０２の機器Ｙ（第２の機器１２１）は、他コンピュータ（第２の処理装置１２０）上にあることを示し、ＯｂｊＹは、内部のフラグ（ｆｌｇ）に他コンピュータの情報をセットする。
【００６５】
そして、プログラム３０１は、読み出し（ｒｅａｄＤａｔａ）のコマンド６０３について、自コンピュータ（第１の処理装置１１０）に対するものであれば、指定の自インタフェース（Ｉ／Ｏポート）からデータをｒｅａｄしてその値をリターンする。また、他コンピュータ（第２の処理装置１２０）に対するものであれば、該当する第２の処理装置１２０と会話して、返された値をリターンする。
【００６６】
図５に戻り説明すると、第２の処理装置１２０は、通信処理タスク５０３が第１の処理装置１１０からの要求ＩＤ１を受信する（ステップＳ５０５）。通信処理タスク５０３は、関数呼び出しテーブル５０２を参照し（ステップＳ５０６）、プログラム５０１に識別子ＩＤ１に対応する関数（ｒｅａｄＰｏｒｔ）を実行させる（ステップＳ５０７）。
【００６７】
この後、第２の処理装置１２０は、プログラム５０１がＩＤ１に対応して、Ｉ／Ｏポート読出処理を行い、該当する第２の機器１２１の監視情報を読み出し（ｒｅａｄＰｏｒｔ）、通信処理タスク５０３に返す（ステップＳ５０８）。
【００６８】
そして、第２の処理装置１２０は、通信処理タスク５０３がｒｅａｄＰｏｒｔの結果、読み出した第２の機器１２１の監視情報を第１の処理装置１１０に送信する（ステップＳ５０９）。
【００６９】
第１の処理装置１１０は、プログラム３０１が発行したｒｅａｄＰｏｒｔ（他）の返答として第２の機器１２１から送信された監視情報をｒｅａｄＤａｔａ（）に変換し（ステップＳ５１０）、第２の機器１２１の監視情報の取得にかかる処理（ＯｂｊＹ．ｒｅａｄＤａｔａ（））の結果として、対応する第２の機器１２１の監視情報を取得する（ステップＳ５１１）。
【００７０】
上記処理によれば、第１の処理装置１１０は、自装置内の処理であるか第２の処理装置１２０の処理であるかを、プログラム３０１が指定する引数（アクセス対象名）によって切り分ける。この際、外部（第２の処理装置１２０）へのアクセスについては、予め取得した関数呼び出しテーブル５０２を参照し、該当する第２の処理装置１２０にアクセスする。
【００７１】
また、第２の処理装置１２０の通信処理タスク５０３と関数呼び出しテーブル５０２は、ソフトウェア実行に限らず、ハードウェアチップを用いて構成することもできる。
【００７２】
また、上記の関数呼び出しテーブル５０２は、上述したように、第１の処理装置１１０が取得するに限らず、第２の処理装置１２０がネットワーク１３０上に公開する構成とすることもできる。そして、関数呼び出しテーブル５０２が示す、第２の機器１２１の機能（Ｒｅａｄ，Ｗｒｉｔｅ，Ｓｔａｒｔ，Ｓｔｏｐ）は、ネットワーク１３０上の任意の第１の処理装置１１０によって取得し、制御（使用）できるようになる。
【００７３】
すなわち、第１の処理装置１１０は、関数呼び出しテーブル５０２を取得することにより、第２の処理装置１２０に接続された第２の機器１２１の機能を知ることができ、第１の処理装置１１０は、ネットワーク１３０の通信方式（手順）を隠蔽して第２の処理装置１２０に接続された第２の機器１２１を制御できるようになる。
【００７４】
これにより、第１の処理装置１１０（第１の機器１１１）に対して、第２の処理装置１２０（第２の機器１２１）が同一の部屋内や異なる場所に設置された場合においても、この設置場所に限定されず、第２の機器１２１を制御できるようになる。
【００７５】
例えば、同一の部屋内に設けた異なる機能の第１の機器１１１（例えば監視カメラ）と、第２の機器１２１（例えば人体検知器）の異なる監視機能を第１の処理装置１１０により制御できるようになる。一方、第１の処理装置１１０で処理できない演算を第１の処理装置１１０の制御によって遠隔地の第２の処理装置１２０により演算処理できるようになる。
【００７６】
さらに、関数呼び出しテーブル５０２は、ネットワーク１３０上のサーバに保持しておくこともでき、複数の第２の処理装置１２０毎の関数呼び出しテーブル５０２として保持できる。これにより、所定の機能を要求する第１の処理装置１１０は、サーバへのアクセスによって該当する機能（第２の機器１２１）を容易に検索することができ、また、第２の機器１２１が接続された第２の処理装置１２０へのアクセスを容易に行えるようになる。
【００７７】
上記実施の形態によれば、第１の処理装置および第２の処理装置のＣＰＵやＯＳに依存せず、互いに自処理装置あるいは他処理装置に接続されている第１の機器および第２の機器をネットワーク接続の有無に関係なく簡単に制御できるようになる。また、自処理装置にないメモリのリード／ライトや、関数実行についても同様に行えるようになる。したがって、第１の処理装置と第２の処理装置は、ネットワーク接続されたものに限らず、同一機器内での異なるＣＰＵ間通信についても同様に適用することができる。
【００７８】
これにより、第１の処理装置は、自処理装置に接続された第１の機器に対するクローズド制御に限らず、ネットワーク等を介して第２の処理装置に接続された第２の機器についても、通信（プロトコル）を意識せずに制御でき、プログラム作成についても通信を意識せずに作成できるため、プログラム作成を容易に行えるようになる。すなわち、第１の処理装置は、間に介在するネットワークの通信プログラムや専用Ｉ／Ｆを追加せずとも第２の機器を制御できるようになる。
【００７９】
関数呼び出しテーブルは、第２の処理装置に接続された第２の機器が故障や仕様変更などでの交換や、追加の場合に更新される。これにより、第２の機器の機能が変更された場合であっても、第１の処理装置は、関数呼び出しテーブルを参照するだけで、所望する第２の機器の制御を行える。加えて、第２の機器が交換等されてもプログラム変更を不要にできる。
【００８０】
そして、特定用途の機能を有する組み込み機器においても、他の機器に対する制御を行って機能拡張が行えるようになる。また、汎用の情報処理装置においても所望する機能の機器に対する制御を容易に行えるようになる。具体的には、ＥＣＨＯＮＥＴやＡＵＴＯＳＡＲ等の規格に縛られず、専用Ｉ／Ｆや専用の通信プログラムを設けなくても、任意の他の機器に対する制御が可能となる。
【００８１】
（物理的位置に依存しないシームレスな機器アクセスの具体例）
図７は、異なる処理装置に接続された機器に対するアクセスの具体例を示す図である。第１の処理装置（装置Ａ）と７０１と、第２の処理装置（装置Ｂ）７０２は、それぞれ、アプリケーションプログラム７０３と、コア層７０４と、外部と通信を行う通信機器や、装置内のボードとのアクセス処理の実装部７０５と、プラットフォーム（ハードウェア、ＯＳ、ドライバ）７０６と、を有する。
【００８２】
装置Ａの通信層１（７０５ａ）は、装置に直接接続される機器７１１にアクセスする他、ネットワーク７１０を介して装置Ｂの機器７２１にアクセス可能である。通信層２（７０５ｂ）は、装置内のボード７１２等にアクセス可能である。同様に、装置Ｂの通信層１（７０５ａ）は、装置に直接接続される機器７２１にアクセスする他、ネットワーク７１０を介して装置Ａの機器７１１にアクセス可能である。通信層２（７０５ｂ）は、装置内のボード７２２等にアクセス可能である。
【００８３】
コア層７０４は、Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１と、処理部Ｘ７３２と、通信方式抽象化層１（７３３）と、通信方式抽象化層２（７３４）と、プラットフォーム抽象化層１（７３５）と、プラットフォーム抽象化層２（７３６）とを有する。Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１は、複数のオブジェクト、例えばＩ／Ｏ処理、リアルタイムモニタ、イベント監視、以上監視、データ収集、一括設定等の各種オブジェクトを管理する。
【００８４】
処理部Ｘ７３２は、Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１からコールされるオブジェクト関連の処理に対応して、下記のタイプ１〜３の処理を行う。
１．アプリケーションプログラムが、オブジェクトに対して要求する処理について、オブジェクトがアプリ内部に存在するのか、ＬＡＮ上に存在するのか、さらにＷＡＮ上に存在するのかを確認する。
２．アプリケーションプログラムからＢａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１経由で呼び出される各処理要求の中で指定されたＮａｍｅ（名前）の実態を取り出す処理を行う。この名前の実態は、ネットワーク設定で予め設定されている。
３．オブジェクトがＬＡＮ／ＷＡＮ上に存在する場合には、そのオブジェクトに対する通信経路を確保し、リクエストを送受信する。
【００８５】
通信方式抽象化層１（７３３）は、処理部Ｘ７３２からコールされる通信処理を抽象化するためのＩ／Ｆである。通信方式抽象化層１（７３３）の各関数は、各アクセス対象への個別の通信処理を実装した通信層１（７０５ａ）の関数をコールする。
【００８６】
プラットフォーム抽象化層１（７３５）は、Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１からコールされるプラットフォーム依存処理を抽象化するためのＩ／Ｆである。プラットフォーム抽象化層１（７３５）の各関数の中からは、各アクセス対象への個別のアクセス処理やＯＳが提供する機能を適合させて実現するＲＴＯＳ処理等を実装した通信層２（７０５ｂ）の関数をコールする。
【００８７】
通信層１（７０５ａ）は、通信方式抽象化層２（７３４）からコールされる各アクセス対象への個別の通信処理の実装部である。処理部Ｘ７３２→ＶＣＬ７３３→通信方式抽象化層２（７３４）経由で渡される引数（ｈａｎｄｌｅ）によってアクセス対象を特定して、対応する実装処理を行う。
【００８８】
通信層２（７０５ｂ）は、プラットフォーム抽象化層２（７３６）からコールされる各アクセス対象への個別のアクセス処理やＯＳが提供する機能を適合させて実現するＲＴＯＳ処理などを作成する実装部である。処理部Ｘ７３２→プラットフォーム抽象化層１（７３５）→プラットフォーム抽象化層２（７３６）経由で渡される引数（ｈａｎｄｌｅ）によってアクセス対象を特定して、対応する実装処理を行う。
【００８９】
（装置Ａから装置Ａおよび装置Ｂの機器の制御例）
図８は、他装置のオブジェクト読み出しの一連の流れを説明する図である。以下、処理の流れ順に説明する。
【００９０】
１．装置Ａでは、はじめに、アプリケーションプログラム７０３により名前を指定してオブジェクトを生成し、オブジェクトがもつ関数を呼び出す。
２．次に、処理部Ｘ７３２により、Ｎｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００の内容に基づき、オブジェクト名によりオブジェクトにアクセスするための通信方式、通信パラメータ（位置情報）を解決する。
３．４．そして、処理部Ｘ７３２により、オブジェクト名や関数名、および、引数情報をパケットに変換し、抽象化層７３３〜７３６を介して、２．で解決した通信方式を実装するポートにこれを引き渡す。この際、装置Ａの外部に出て行くパケットは所定の暗号化を施す。
【００９１】
５．装置Ｂでは、処理部Ｘ７３２でパケットを受信し、暗号化されたパケットを復号する。さらに、バイトデータからオブジェクト名、関数名、引数情報を復元し、印字処理の実態を呼び出す。
６．印字処理の実態は、プラットフォーム抽象化層１（７３５）／プラットフォーム抽象化層２（７３６）を介して実際の印字を行う。
７．プラットフォーム抽象化層１（７３５）／プラットフォーム抽象化層２（７３６）は、印字処理の結果である戻り値を受け取る。
８．通信方式抽象化層１（７３３）／通信方式抽象化層２（７３４）は、戻り値をパケットに変換し、暗号化して呼び出し元（装置Ａ）に送信する。
９．装置Ａの処理部Ｘ７３２は、戻り値を含むパケットを受信し、暗号化されたパケットを復号する。
１０．Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１は、戻り値を呼び出し元（アプリケーションプログラム７０３）に返却する。
【００９２】
上記処理において、装置Ａのアプリケーションプログラム７０３が自装置Ａに接続されたプリンタＸにアクセスし印字処理させる場合には、１．２．３．４．７．１０の処理が実行される。この際、処理部Ｘ７３２では、名前の実態をＮｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００により、装置Ａに接続されたプリンタＸのシリアルポートの情報に基づき接続先を解決する。
【００９３】
また、装置Ａのアプリケーションプログラム７０３が他装置Ｂに接続されたプリンタＹにアクセスし印字処理させる場合には、１．〜１０．の処理が順次実行される。この際、処理部Ｘ７３２では、名前の実態をＮｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００により、装置Ｂへの接続方法（外部通信、アドレス等の位置情報に基づき接続先を解決する。
【００９４】
（ＣＰＵＡＢ間の通信の制御例）
上記説明では、異なる装置Ａ，Ｂに接続された機器の制御例を説明したが、これに限らず、ＣＰＵＡ，Ｂ間の通信の制御にも同様に適用することができる。
【００９５】
図９は、ＣＰＵＡ，ＣＰＵＢが共有メモリによってデータを送受する構成例を示す図である。このような共有メモリ９００を介した同一装置内のＣＰＵＡ，Ｂ間での機能呼び出しも可能になる。具体的には、ＣＰＵＡのアプリケーションプログラム７０３が他装置Ｂに接続されたプリンタＹにアクセスし印字処理させる場合には、共有メモリ９００を介して１．〜１０．の処理が順次実行される。処理部Ｘ７３２では、名前の実態をＮｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００により、装置Ｂへの接続方法（外部通信、ＣＰＵＢ、の情報に基づき接続先を解決する。
【００９６】
この場合、通信方式抽象化層１（７３３）と、通信方式抽象化層２（７３４）を、共有メモリ９００を介して実装するポーティング層に差し替えるだけで対応可能になる。装置Ａのアプリケーションプログラム７０３は、図８に示したネットワークを介する場合の例と全く変わらずシームレスに処理を実行できる。
【００９７】
（アプリケーションの公開インタフェース呼び出しの例１）
図１０は、アプリケーションの公開インタフェースの呼び出しを説明する図である。アプリケーションプログラム７０３と、Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１との間にＵｓｅｒ  Ｅｘｔｅｎｄｅｄ  Ｃｌａｓｓｅｓ１００１を設ける。Ｕｓｅｒ  Ｅｘｔｅｎｄｅｄ  Ｃｌａｓｓｅｓ１００１では、Ｂａｓｉｃ  Ｃｌａｓｓ  Ｌｉｂｒａｒｙ７３１のクラスを継承して、独自のクラスを定義し、その機能を装置Ａの外部から呼び出せる形で公開する。図１０の例では、Ｕｓｅｒ  Ｅｘｔｅｎｄｅｄ  Ｃｌａｓｓｅｓ１００１がプリンタークラスを継承したＵｓｅｒ  Ｐｒｉｎｔｅｒクラスを定義し、装置Ａ，Ｂ間でこの機能を呼び出した際の流れを示している。
【００９８】
図１０に示すように、装置Ａのアプリケーションプログラム７０３が自装置Ａに接続されたプリンタＸにアクセスし印字処理させる場合には、１．２．３．４．７．１０の処理が実行される。この際、処理部Ｘ７３２では、名前の実態をＮｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａにより、装置Ａに接続されたプリンタＸのシリアルポートの情報に基づき接続先を解決する。
【００９９】
また、装置Ａのアプリケーションプログラム７０３が他装置Ｂに接続されたプリンタＹにアクセスし印字処理させる場合には、１．〜１０．の処理が順次実行される。この際、処理部Ｘ７３２では、名前の実態をＮｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００により、装置Ｂへの接続方法（外部通信、アドレス等の位置情報に基づき接続先を解決する。
【０１００】
そして、Ｕｓｅｒ  Ｅｘｔｅｎｄｅｄ  Ｃｌａｓｓｅｓ１００１では、１０．プリンタークラスを継承したＵｓｅｒ  Ｐｒｉｎｔｅｒクラスを定義し、例えばネットワーク上に公開する。これにより、他の装置Ｂ，Ｃ，…が公開されたＵｓｅｒ  Ｐｒｉｎｔｅｒクラスに基づき、該当する装置（機器）へのアクセスが可能となる。
【０１０１】
図１１は、リモート呼び出し可能な公開インタフェースの定義例を示す図表である。図１１に示す例では、Ｃ言語で表現される構造により、インタフェースを定義し、他の装置から名前によるリモート呼び出しを行う例である。
【０１０２】
図示のように、引数リストや返却値リストには、型のサイズや型のデータをパケット化、およびパケットから復元する関数へのポインタをもつ。これらをインタフェース名と、それを実装する関数へのポインタとともに、公開インタフェースのリストとして登録することで、外部の他の装置からの呼び出しを可能とする。
【０１０３】
さらに、この情報と、Ｎｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００から得られる位置情報をネットワークにブロードキャストし、各ノード（装置Ａ，Ｂ，Ｃ，…）がこれらの情報を保持することにより、各装置は互いに公開しているインタフェース情報を共有することができる。
【０１０４】
（アプリケーションの公開インタフェース呼び出しの例２）
図１２は、アプリケーションの公開インタフェースの呼び出しの他の例を説明する図である。図１２に示すように、アプリケーションのオブジェクト自身に、複数のオブジェクトの機能を機能群Ｘとして定義し、機能群Ｘを使用するためのインタフェースを公開する構成とすることもできる。
【０１０５】
図１２の例では、装置Ａが装置Ｂの機器にアクセスする際に、上記１．〜１０．同様の手順でアクセスし、その課程において装置Ｂは、集計した結果を６．７．データベースクラスと、プリンタークラスを作成し、データベースクラスをデータベース１２００に登録する。また、集計結果をプリンタＹからレポート出力する。
【０１０６】
装置Ｂのアプリケーションプログラム７０３は、機能群Ｘを装置Ｂに接続された外部インファーフェースとして外部に公開する。また、装置Ａの機能群についてデータベース１２００に登録する。
【０１０７】
（ＮＡＴ越えについて）
装置Ａ，Ｂ間のネットワーク接続において、例えば、相手側のＮＡＴ機器を用いたプライベートネットワークに属するホストを直接指定できない（ＮＡＴ通過できない）問題について、ＮＡＴ越えのための情報を登録しておくことで解決できる。
【０１０８】
図１３は、装置Ａ，Ｂ間のＮＡＴ越えの構成例を示す図である。ＮＡＴを越えてオブジェクトにアクセスする場合は、装置Ａ，Ｂ間のロケーションサーバ１３００によりオブジェクトの位置情報を管理する。図１３の例では、装置Ｂの起動時に、オブジェクトは、自身の位置情報をロケーションサーバ１３００に登録する（ステップＳ１３０１）。
【０１０９】
この装置Ｂにアクセスする装置Ａの処理部Ｘ７３２は、通信に先立って、アクセス先のオブジェクトの位置情報をロケーションサーバ１３００に問い合わせる（ステップＳ１３０２）。装置Ａは、問い合わせた結果得られる位置情報（Ｎｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｄａｔａ８００の装置Ｂのゲートウェイアドレス）を使用して、装置Ｂのリモートオブジェクトにアクセス可能となる。なお、一度解決した位置情報は、装置Ａのメモリ等にキャッシュし、次回の呼び出し時にはロケーションサーバ１３００に問い合わせることなく、高速に呼び出すことができる。
【産業上の利用可能性】
【０１１０】
以上のように、本発明は、自処理装置に接続された機器以外の他の機器を制御する各種処理装置、例えば、特定用途の機能を有する組み込み機器や汎用の情報処理装置、およびこれらのソフトウェア開発に有用である。
【符号の説明】
【０１１１】
１００  機器間制御システム
１１０  第１の処理装置
１１１  第１の機器
１２０  第２の処理装置
１２１  第２の機器
１３０  ネットワーク
２０１  制御部（ＣＰＵ）
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  記憶部
２０５  通信インタフェース
２０６  バス
３０１  プログラム
３０２  処理テーブル
５０１  プログラム
５０２  関数呼び出しテーブル
５０３  通信処理タスク
【図１】
2015063959.tif 000003
【図２】
2015063959.tif 000004
【図３】
2015063959.tif 000005
【図４】
2015063959.tif 000006
【図５】
2015063959.tif 000007
【図６】
2015063959.tif 000008
【図７】
2015063959.tif 000009
【図８】
2015063959.tif 000010
【図９】
2015063959.tif 000011
【図１０】
2015063959.tif 000012
【図１１】
2015063959.tif 000013
【図１２】
2015063959.tif 000014
【図１３】
2015063959.tif 000015
【図１４】
2015063959.tif 000016
【国際調査報告】
2015063959.tif 000017
2015063959.tif 000018
2015063959.tif 000019
2015063959.tif 000020