(57)【要約】データベースを利用してＩｏＴデバイスにアクセスすることを可能にし、統合デバイスインターフェースが提供するアクセス手段に対応するプログラミング環境・実行環境にかかわらずアプリケーションソフトウェアからデバイスにアクセスできる環境を提供する。本技術は、例えば、デバイスを制御するシステムであって、デバイスに対する制御をデータベースに対するリクエストとしてサーバに送信するクライアントと、クライアントから受信したデータベースに対するリクエストをデバイスの種類に応じてデバイスが解釈可能な命令に変換するサーバを含む、デバイス制御システムを含む。
2019130476.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを制御するシステムであって、
デバイスに対する制御をデータベースに対するリクエストとしてサーバに送信するように構成されたクライアントと、
前記クライアントから受信したデータベースに対するリクエストを前記デバイスの種類に応じて前記デバイスが解釈可能な命令に変換するように構成されたサーバを含む、
デバイス制御システム。
【請求項２】
前記サーバが前記デバイスに対して前記変換された命令を送信し、前記デバイスから前記命令の実行結果を受信するように構成された、
請求項１のデバイス制御システム。
【請求項３】
前記サーバが、前記デバイスから受信した実行結果を前記データベースが解釈可能な形式に変換するように構成された、
請求項２のデバイス制御システム。
【請求項４】
さらに、前記クライアントがデバイスに対するイベントデータ取得要求をデータベースに対するリクエストとしてサーバに送信するように構成され、
前記サーバが、前記デバイスで発生したイベントデータを蓄積するメモリを含み、
前記サーバが前記クライアントから受信したイベントデータ取得要求に応答して前記蓄積されたイベントデータをクライアントに送信するように構成された、
請求項３のデバイス制御システム。
【請求項５】
デバイスを制御する方法であって、
デバイスに対する制御をデータベースに対するリクエストとして受信することと、
前記受信したリクエストを前記デバイスの種類に応じて前記デバイスが解釈可能な命令に変換することとを含む、
デバイス制御方法。
【請求項６】
デバイスに対する制御をデータベースに対するリクエストとして受信することと、
前記受信したリクエストを前記デバイスの種類に応じて前記デバイスが解釈可能な命令に変換することと、
を実行させるためのプログラムを記録した、コンピュータ読取り可能な記録媒体。
【請求項７】
デバイスに対する制御をデータベースに対するリクエストとして受信することと、
前記受信したリクエストを前記デバイスの種類に応じて前記デバイスが解釈可能な命令に変換することと、
をコンピュータに実行させるためのプログラム。
【請求項８】
前記データベースに対するリクエストがＳＱＬで記述され、
前記変換することがデータベースにおける拡張関数として記述された、
請求項７のプログラム。
【請求項９】
前記拡張関数が、
前記データベースに対するリクエストを統合インターフェース対応デバイスが解釈可能な命令に変換するアドインと、
前記データベースに対するリクエストを統合インターフェース非対応デバイスが解釈可能な命令に変換するアドインとを含む、
請求項８のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データベースを利用したデバイスの制御に関する。
【背景技術】
【０００２】
生産管理システムにおいては、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）を活用して工場の多様な在庫や複雑な工程を「見える化」をすることが求められている。【０００３】
生産管理のアプリケーションソフトウェアとロボットやセンサ等のデバイスを接続してデータや命令のやり取りをするためには、プログラミング言語により専用のソフトウェアを開発する必要がある。アプリケーションソフトウェアから、異メーカ・新旧のロボット、PLC、NC工作機械などの制御装置の情報を共通的な方法でアクセスするための統合デバイスインターフェースとして、標準仕様であるＯＲｉＮ（Ｏｐｅｎ  Ｒｅｓｏｕｒｃｅ  ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ｔｈｅ  Ｎｅｔｗｏｒｋ）が提供されている。【０００４】
しかし、ソフトウェア開発においては、統合デバイスインターフェースが提供するアクセス手段が、使用するプログラミング環境・実行環境に対応している必要がある。
また、統合デバイスインターフェースが利用環境に対応していない場合や統合デバイスインターフェースに非対応のデバイスについては、デバイス独自のアクセス手段を用いて個々にアクセスする必要があるところ、アクセス手段はプログラミング環境によって利用可否が制限される場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−６９１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
統合デバイスインターフェースが提供するアクセス手段に対応するプログラミング環境・実行環境にかかわらずアプリケーションソフトウェアからデバイスにアクセスできる環境が望まれる。【０００７】
また、デバイスが統合デバイスインターフェースに対応しているか否かにかかわらず共通してアクセスできる環境が望まれる。【０００８】
さらに、デバイス毎に異なるアクセス手段を有するのにかかわらず共通してアクセスできる環境が望まれる。【０００９】
さらに、アプリケーションソフトウェアの開発環境を統合化することが望まれる。【００１０】
さらに、より汎用的なソフトウェアをアプリケーションソフトウェアの開発に利用できることが望まれる。【００１１】
さらに、アプリケーションソフトウェアの開発をより容易にすることが望まれる。【００１２】
さらに、ＩｏＴ機器から得られた情報をデータベースに適時にかつ容易にデータベースに格納することが望まれる。
【課題を解決するための手段】
【００１３】
本技術は、例えば、デバイスを制御するシステムであって、デバイスに対する制御をデータベースに対するリクエストとしてサーバに送信するクライアントと、クライアントから受信したデータベースに対するリクエストをデバイスの種類に応じてデバイスが解釈可能な命令に変換するサーバを含む、デバイス制御システムを含む。
【図面の簡単な説明】
【００１４】
【図１】本技術の実施例によるデバイス制御システムを示す図である。
【図２】本技術の実施例によるデバイス制御システムのリクエスト処理動作を示すシーケンス図である。
【図３】本技術の実施例によるデバイス制御システムのイベント処理動作を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
図１に本技術の実施例によるデバイス制御システム１００を示す。
【００１６】
デバイス制御システム１００は、プロセッサ及びメモリを含むクライアント１１０、プロセッサ及びメモリを含むサーバ１２０を含み、これらはインターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークを介して又は直接、通信可能に接続されている。なお、本出願において「メモリ」とは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の半導体記憶装置の他、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）等の補助記憶装置も含む。
【００１７】
デバイス制御システム１００は、さらにロボット１３０、デバイスコントローラ１４０、センサ１５０、統合インターフェース非対応デバイス１６０を含み、これらはネットワークを介して又は直接、サーバ１２０に通信可能に接続されている。本出願において、ロボット１３０、デバイスコントローラ１４０、センサ１５０、統合インターフェース非対応デバイス１６０をＩｏＴデバイスと総称することがある。
【００１８】
クライアント１１０は、アプリケーションソフトウェア１１２及びデータベースミドルウェア１１４をメモリに格納し、これらはプロセッサ上で実行可能である。アプリケーションソフトウェア１１２は、ＩｏＴデバイスへのリクエストを発行したりＩｏＴデバイスからのイベントを処理したりする機能を有するプログラムであり、例えば、Ｈｙｂｒｉｄ  Ｄｅｎｎｏ（商標）等の生産管理システム、ＧＲＡＮＤＩＴ（商標）等のＥＲＰ（Eｎｔｅｒｐｒｉｓｅ Ｒｅｓｏｕｒｃｅ Ｐｌａｎｎｎｉｎｇ）システム、その他の業務システムソフトウェア、ＭＳ  Ｅｘｃｅｌ、ＭＳ  Ａｃｃｅｓｓ、ＢＩ（Ｂｕｓｉｎｅｓｓ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）ツール、ＥＴＬ（Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ）ツール等のデータベースへの接続が可能な一般的なアプリケーションソフトウェア、パッケージソフトウェアを用いて開発されたものであってよい。アプリケーションソフトウェア１１２は、ＯＤＢＣ（Ｏｐｅｎ Ｄａｔａｂａｓｅ Ｃｏｎｎｅｃｔｉｖｉｔｙ）、ＪＤＢＣ（Ｊａｖａ（商標）  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）、ＯＬＥ  ＤＢ（Ｏｂｊｅｃｔ  Ｌｉｎｋｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｉｎｇ  ＤａｔａＢａｓｅ）等のデータベース接続手段を用いてデータベースに接続され得る。
【００１９】
データベースミドルウェア１１４は、アプリケーションソフトウェア１１２からのリクエストをデータベース１２２及び／又はＩｏＴゲートウェイサービス１２４へのリクエストに変換し、また、データベース１２２及び／又はＩｏＴゲートウェイサービス１２４からのレスポンスをアプリケーションソフトウェア１１２へのレスポンスに変換する機能を有する。データベースミドルウェア１１４は、例えば、Ｏｒａｃｌｅ（商標）、ＳＱＬ  Ｓｅｒｖｅｒ、ＭｙＳＱＬ、ＤＢ２等の汎用のデータベース管理ソフトウェアであってよい。
【００２０】
サーバ１２０は、データベース１２２、ＩｏＴゲートウェイサービス１２４、統合デバイスインターフェース接続アドイン１２６、デバイス別接続アドイン１２８、統合デバイスインターフェース１２９をメモリに格納し、これらはプロセッサ上で実行可能である。
【００２１】
データベース１２２はデータベースミドルウェア１１４とともに、アプリケーションソフトウェア１１２からのリクエスト及び／又はＩｏＴゲートウェイサービス１２４からのレスポンスやイベントデータをメモリに格納する。なお、本明細書においてデータベースミドルウェア１１４及びデータベース１２２をデータベースサーバと総称することがある。
【００２２】
ＩｏＴゲートウェイサービス１２４はデータベース１２２とＩｏＴデバイスを接続するソフトウェアであり、統合デバイスインターフェース接続アドイン１２６及び／又はデバイス別接続アドイン１２８とともに、データベースサーバからのリクエストをＩｏＴデバイスに応じた命令に変換したり、ＩｏＴデバイスからのレスポンスやイベントデータをデータベースが読み取り可能な形式に変換したりする。
【００２３】
統合デバイスインターフェース接続アドイン１２６は、ＩｏＴゲートウェイサービス１２４からのリクエストを、ＯＲｉＮ等の統合デバイスインターフェース１２９に対応した命令に変換し、統合デバイスインターフェース１２９を通じてロボット１３０、デバイスコントローラ１４０、センサ１５０等のＩｏＴデバイスに送る。デバイス別接続アドイン１２８は、ＩｏＴゲートウェイサービス１２４からの命令を、統合デバイスインターフェース非対応デバイス１６０に対応した命令に変換して送る。デバイス別接続アドイン１２８は、デバイスの種類に応じて用意され実行される。
【００２４】
図２に本技術の実施例によるデバイス制御システムのリクエスト処理動作２００を示す。
【００２５】
まず、リクエスト処理対象のＩｏＴデバイスが統合インターフェース対応デバイスの場合について説明する。
【００２６】
アプリケーションソフトウェア２１０の実行が開始され（２１２）、統合インターフェース対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるリクエストが実行されると、ＯＤＢＣ（Ｏｐｅｎ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）等によりデータベースサーバ２２０に接続し、ＩｏＴゲートウェイサービス用拡張ＳＱＬ関数を呼び出す（２１４）。
【００２７】
データベースサーバ２２０においてＩｏＴゲートウェイサービス用拡張ＳＱＬ関数の実行が開始すると（２２２）、拡張関数ＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）により、ＩｏＴゲートウェイサービス２３０と接続し、統合インターフェース対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるためのＩｏＴゲートウェイサービス２３０のサービスプロセスを呼び出し（２２４）、処理結果を待つ（２２３）。
【００２８】
ＩｏＴゲートウェイサービス用拡張ＳＱＬ関数からの呼び出しに応答してＩｏＴゲートウェイサービス２３０においてサービスプロセスの実行が開始すると（２３２）、統合デバイスインターフェース２４０と接続し、統合インターフェース対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるための、統合デバイスインターフェースにおいて用意された関数（ＯＲｉＮの場合はＯＲｉＮ２ＳＤＫライブラリ）を呼び出し（２３４）、処理結果を待つ（２３３）。
【００２９】
統合デバイスインターフェース２４０において用意された関数の実行が開始すると（２４２）、統合インターフェース対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるための、それぞれのデバイスについて用意された命令を実行し（２４４）、統合インターフェース対応デバイス２５０において要求された処理が行われ、即ちＩｏＴデバイス側の特定の値が取得され又はＩｏＴデバイス側の特定のプログラムが実行される（２５２）。
【００３０】
統合インターフェース対応デバイス２５０において要求された処理が終了すると、処理結果２４５が統合デバイスインターフェース２４０において用意された関数に返され、統合インターフェース対応デバイス２５０での処理２５２が終了する。
【００３１】
統合デバイスインターフェース２４０において、統合インターフェース対応デバイス２５０からの処理結果２４５を受け取ると、処理結果２４５はＩｏＴゲートウェイサービス２３０に解釈可能な形式に変換される。変換後の処理結果２３５がＩｏＴゲートウェイサービス２３０におけるサービスプロセスに返され、統合デバイスインターフェース２４０において用意された関数２４２の実行が終了する。
【００３２】
ＩｏＴゲートウェイサービス２３０において、統合デバイスインターフェース２４０からの処理結果２３５を受け取ると、統合デバイスインターフェース２４０との接続を解除する（２３３）。サービスプロセスは、受け取った処理結果２３５をデータベースサーバ２２０に解釈可能な形式に変換する。変換後の処理結果２２５がデータベースサーバ２２０におけるサービスプロセスに返され、ＩｏＴゲートウェイサービス２３０におけるサービスプロセス２３２の実行が終了する。
【００３３】
データベースサーバ２２０において、ＩｏＴゲートウェイサービス２３０からの処理結果２２５を受け取ると、ＩｏＴゲートウェイサービス２３０との接続を解除し（２２３）、処理結果２２５がアプリケーションソフトウェア２１０に解釈可能な形式に変換される。変換後の処理結果２１５がアプリケーションソフトウェア２１０に返され、ＩｏＴゲートウェイサービス用拡張ＳＱＬ関数の実行が終了する（２２２）。
【００３４】
アプリケーションソフトウェア２１０は、リクエストの処理結果を受け取り、実行が終了する。
【００３５】
次に、リクエスト処理対象のＩｏＴデバイスが統合インターフェース非対応デバイスの場合について説明する。
【００３６】
アプリケーションソフトウェア２１０の実行が開始され（２１６）、統合インターフェース非対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるリクエストが実行されると、ＯＤＢＣ（Ｏｐｅｎ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）等によりデータベースサーバ２２０に接続し、ＩｏＴゲートウェイサービス用拡張ＳＱＬ関数を呼び出す（２１８）。
【００３７】
データベースサーバ２２０においてＩｏＴゲートウェイサービス用拡張ＳＱＬ関数の実行が開始すると（２２６）、拡張関数ＤＬＬにより、ＩｏＴゲートウェイサービス２３０と接続し、統合インターフェース対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるためのＩｏＴゲートウェイサービス２３０のサービスプロセスを呼び出し（２２８）、処理結果を待つ（２２７）。
【００３８】
ＩｏＴゲートウェイサービス用拡張ＳＱＬ関数からの呼び出しに応答してＩｏＴゲートウェイサービス２３０においてサービスプロセスの実行が開始すると（２３６）、統合インターフェース非対応デバイス２６０と接続し、それぞれのデバイスについて用意された命令を実行し（２３８）、統合インターフェース非対応デバイス２６０において要求された処理が行われ、即ちＩｏＴデバイス側の特定の値が取得され又はＩｏＴデバイス側の特定のプログラムが実行される（２６２）。
【００３９】
統合インターフェース非対応デバイス２６０において要求された処理が終了すると、処理結果２３９がＩｏＴゲートウェイサービス２３０に返され、統合インターフェース非対応デバイス２６０での処理２６２が終了する。
【００４０】
ＩｏＴゲートウェイサービス２３０において、統合インターフェース非対応デバイス２６０からの処理結果２３９を受け取ると、統合インターフェース非対応デバイス２６０との接続を解除する（２３７）。サービスプロセスは、受け取った処理結果２３９をデータベースサーバ２２０に解釈可能な形式に変換する。変換後の処理結果２２９がデータベースサーバ２２０におけるサービスプロセスに返され、ＩｏＴゲートウェイサービス２３０におけるサービスプロセス２３６の実行が終了する。
【００４１】
データベースサーバ２２０において、ＩｏＴゲートウェイサービス２３０からの処理結果２２９を受け取ると、ＩｏＴゲートウェイサービス２３０との接続を解除し（２２７）、処理結果２２９がアプリケーションソフトウェア２１０に解釈可能な形式に変換される。変換後の処理結果２１９がアプリケーションソフトウェア２１０に返され、ＩｏＴゲートウェイサービス用拡張ＳＱＬ関数の実行が終了する（２２６）。
【００４２】
図３に本技術の実施例によるデバイス制御システムのイベント処理動作３００を示す。
【００４３】
まず、イベント処理対象のＩｏＴデバイスが統合インターフェース対応デバイスの場合について説明する。
【００４４】
ＩｏＴゲートウェイサービス３３０においてサービスプロセスの実行が開始すると（３３２）、統合デバイスインターフェース３４０と接続し、統合インターフェース対応のＩｏＴデバイス側の特定の値を取得する又はＩｏＴデバイス側の特定のプログラムを実行させるための、統合デバイスインターフェースにおいて用意された関数（ＯＲｉＮの場合はＯＲｉＮ２ＳＤＫライブラリ）を呼び出し（３３４）、処理結果を待つ（３３３）。
【００４５】
統合デバイスインターフェース３４０において用意された関数の実行が開始すると（３４２）、デバイスに対するイベント待機通知を行う（３４２）。
【００４６】
統合デバイスインターフェース３４０において、処理結果３３５がＩｏＴゲートウェイサービス３３０におけるサービスプロセスに返され、統合デバイスインターフェース３４０において用意された関数３４２の実行が終了する。
【００４７】
ＩｏＴゲートウェイサービス３３０において、統合デバイスインターフェース３４０からの処理結果３３５を受け取ると、統合デバイスインターフェース３４０との接続を解除する（３３３）。
【００４８】
統合デバイスインターフェース３４０においてイベント待機通知（３４２）を受けて、統合インターフェース対応デバイス３５０の監視を開始し（３４４）、ＩｏＴデバイスそれぞれで用意された呼び出し手順で統合インターフェース対応デバイス３５０を呼び出す（３４６）。
【００４９】
統合インターフェース対応デバイス３５０は呼び出された時点で既に起動しており（３５２）、デバイスの状態変化等、イベント要因が発生するとその内容を統合デバイスインターフェース３４０に通知する（３４７）。
【００５０】
統合デバイスインターフェース３４０は、イベント要因の発生が通知されると、その内容をＩｏＴゲートウェイサービス３３０に解釈可能な形式に変換し、イベントの内容及び発生時刻を含むイベント通知３４８としてＩｏＴゲートウェイサービス３３０に送る（３４８）。
【００５１】
ＩｏＴゲートウェイサービス３３０は、イベント通知３４８を受け取ると、イベント処理関数３３６の実行を開始し、イベントデータをメモリ３８０に記憶・蓄積させて（３３７）、イベント処理関数の実行を終了させる（３３６）。
【００５２】
以後、統合インターフェース対応デバイス３５０においてイベント要因が発生する度に又は一定時間毎に、上述した統合デバイスインターフェース３４０への通知（３４７）、ＩｏＴゲートウェイサービス３３０へのイベント通知３４８、イベント処理関数３３６の実行開始、メモリ３８０への記憶・蓄積（３３７）、イベント処理関数の終了（３３６）が繰り返される。
【００５３】
一方、アプリケーションソフトウェア３１０の実行が開始され（３１２）、統合インターフェース対応のＩｏＴデバイスのイベントデータ取得プログラムが実行されると（３１２）、ＯＤＢＣ等によりデータベースサーバ３２０に接続し、イベントデータ取得のためのＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数を呼び出す（３１４）。
【００５４】
データベースサーバ３２０においてＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数の実行が開始すると（３２２）、ＩｏＴゲートウェイサービス３３０と接続し、イベントデータ取得のためのＩｏＴゲートウェイサービス３３０のサービスプロセスを呼び出し（３２４）、処理結果を待つ（３２３）。
【００５５】
ＩｏＴゲートウェイサービス３３０において、既に起動しているサービスプロセスが呼び出されると、メモリ３８０からのイベントデータ呼び出し関数の実行が開始し（３３８）、メモリ３８０に蓄積されたイベントデータの取り出しを要求する（３３９）。
【００５６】
メモリ３８０からイベントデータが取り出されＩｏＴゲートウェイサービス３３０に送られると（３３１）、イベントデータ呼び出し関数の実行が終了する（３３８）。メモリ３８０にイベントデータが蓄積されていない場合は、空（ｎｕｌｌ）である旨の結果がＩｏＴゲートウェイサービス３３０に送られる（３３１）。
【００５７】
ＩｏＴゲートウェイサービス３３０において、メモリ３８０から取り出したイベントデータを受け取ると、イベントデータがデータベースサーバ３２０に解釈可能な形式に変換される。変換後のイベントデータ（空の場合を含む）がデータベースサーバ３２０におけるサービスプロセスに返される（３２５）。
【００５８】
データベースサーバ３２０において、ＩｏＴゲートウェイサービス３３０からのイベントデータを受け取ると、ＩｏＴゲートウェイサービス３３０との接続を解除し（３２３）、イベントデータがアプリケーションソフトウェア３１０に解釈可能な形式に変換される。変換後のイベントデータ（空の場合を含む）がアプリケーションソフトウェア３１０に返され（３１５）、ＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数の実行が終了する（３２２）。
【００５９】
アプリケーションソフトウェア３１０は、リクエストの処理結果を受け取り、実行が終了する（３１２）。
【００６０】
以後、アプリケーションソフトウェア３１０のイベントデータ取得プログラムの実行３１２、ＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数の呼び出し３１４及び起動３２２、ＩｏＴゲートウェイサービス３３０との接続３２３、ＩｏＴゲートウェイサービス３３０のサービスプロセスの呼び出し３２４、メモリ３８０に蓄積されたイベントデータの取り出し（３３８、３３９、３３１）、変換後のイベントデータのサービスプロセスへの応答３２５、イベントデータ取得プログラムへの応答３１５が繰り返される。
【００６１】
次に、イベント処理対象のＩｏＴデバイスが統合インターフェース非対応デバイスの場合について説明する。
【００６２】
ＩｏＴゲートウェイサービス３３０においてサービスプロセスの実行が開始すると（３７２）、統合インターフェース非対応デバイス３６０と接続し（３７３）、それぞれのデバイスについて用意された命令を実行し（３７４）、統合インターフェース非対応デバイス３６０において要求された処理が行われ、即ち統合インターフェース非対応デバイス３６０の監視を開始する（３７３）。
【００６３】
統合インターフェース非対応デバイス３６０において監視プログラムの実行が開始し（３６２）、デバイスの状態変化等、イベント要因が発生するとその内容をＩｏＴゲートウェイサービス３３０に通知する（３６４）。
【００６４】
ＩｏＴゲートウェイサービス３３０は、イベント通知３６４を受け取ると、イベント処理関数３７５の実行を開始し、イベントデータをメモリ３９０に記憶・蓄積させて（３７６）、イベント処理関数の実行を終了させる（３７５）。
【００６５】
以後、統合インターフェース非対応デバイス３６０においてイベント要因が発生する度に又は一定時間毎に、上述したＩｏＴゲートウェイサービス３３０へのイベント通知３６４、イベント処理関数３７５の起動、メモリ３９０への記憶・蓄積（３７６）、イベント処理関数の終了（３７５）が繰り返される。
【００６６】
一方、アプリケーションソフトウェア３１０の実行が開始され（３１６）、統合インターフェース非対応のＩｏＴデバイスのイベントデータ取得プログラムが実行されると（３１６）、ＯＤＢＣ等によりデータベースサーバ３２０に接続し、イベントデータ取得のためのＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数を呼び出す（３１８）。
【００６７】
データベースサーバ３２０においてＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数の実行が開始すると（３２６）、ＩｏＴゲートウェイサービス３３０と接続し、イベントデータ取得のためのＩｏＴゲートウェイサービス３３０のサービスプロセスを呼び出し（３２８）、処理結果を待つ（３２７）。
【００６８】
ＩｏＴゲートウェイサービス３３０において、既に起動しているサービスプロセスが呼び出されると、メモリ３９０からのイベントデータ呼び出し関数の実行が開始し（３７７）、メモリ３９０に蓄積されたイベントデータの取り出しを要求する（３７８）。
【００６９】
メモリ３９０からイベントデータが取り出されＩｏＴゲートウェイサービス３３０に送られると（３７９）、イベントデータ呼び出し関数の実行が終了する（３７７）。メモリ３９０にイベントデータが蓄積されていない場合は、空（ｎｕｌｌ）である旨の結果がＩｏＴゲートウェイサービス３３０に送られる（３７９）。
【００７０】
ＩｏＴゲートウェイサービス３３０において、メモリ３９０に蓄積されたイベントデータを受け取ると、イベントデータがデータベースサーバ３２０に解釈可能な形式に変換される。変換後のイベントデータ（空の場合を含む）がデータベースサーバ３２０におけるサービスプロセスに返される（３２９）。
【００７１】
データベースサーバ３２０において、ＩｏＴゲートウェイサービス３３０からのイベントデータを受け取ると、ＩｏＴゲートウェイサービス３３０との接続を解除し（３２７）、イベントデータがアプリケーションソフトウェア３１０に解釈可能な形式に変換される。変換後のイベントデータ（空の場合を含む）がアプリケーションソフトウェア３１０に返され（３１９）、ＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数が終了する（３２６）。
【００７２】
アプリケーションソフトウェア３１０は、リクエストの処理結果を受け取り、実行が終了する（３１６）。
【００７３】
以後、アプリケーションソフトウェア３１０のイベントデータ取得プログラムの実行３１６、ＩｏＴゲートウェイサービス３３０用拡張ＳＱＬ関数の呼び出し３１８及び起動３２６、ＩｏＴゲートウェイサービス３３０との接続３２７、ＩｏＴゲートウェイサービス３３０のサービスプロセスの呼び出し３２８、メモリ３９０に蓄積されたイベントデータの取り出し（３７７、３７８、３７９）、変換後のイベントデータのサービスプロセスへの応答３２９、イベントデータ取得プログラムへの応答３１９が繰り返される。
【産業上の利用可能性】
【００７４】
本技術は、例えば  統合デバイスインターフェースが提供するアクセス手段に対応するプログラミング環境・実行環境にかかわらず幅広いアプリケーションソフトウェアからデバイスにアクセスすることを可能にする。
【符号の説明】
【００７５】
１００    デバイス制御システム
１１０    クライアント
１２０    サーバ
１３０    ロボット
１４０    デバイスコントローラ
１５０    センサ
１６０    統合インターフェース非対応デバイス
【図１】
2019130476.tif 000003
【図２】
2019130476.tif 000004
【図３】
2019130476.tif 000005
【国際調査報告】
2019130476.tif 000006
2019130476.tif 000007