JPWO2019203221A1 - 機器制御装置、機器制御方法、及び機器制御システム - Google Patents

機器制御装置、機器制御方法、及び機器制御システム Download PDF

Info

Publication number
JPWO2019203221A1
JPWO2019203221A1 JP2020514389A JP2020514389A JPWO2019203221A1 JP WO2019203221 A1 JPWO2019203221 A1 JP WO2019203221A1 JP 2020514389 A JP2020514389 A JP 2020514389A JP 2020514389 A JP2020514389 A JP 2020514389A JP WO2019203221 A1 JPWO2019203221 A1 JP WO2019203221A1
Authority
JP
Japan
Prior art keywords
application
control
control authority
controlled devices
applications
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.)
Granted
Application number
JP2020514389A
Other languages
English (en)
Other versions
JP7056731B2 (ja
Inventor
知之 藤野
知之 藤野
啓一郎 柏木
啓一郎 柏木
久治 石井
久治 石井
由唯 齋藤
由唯 齋藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019203221A1 publication Critical patent/JPWO2019203221A1/ja
Application granted granted Critical
Publication of JP7056731B2 publication Critical patent/JP7056731B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Selective Calling Equipment (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

複数アプリケーションから同一の機器に対し同時に送信されるRPCの競合を防止し、協調する一連の処理の未完了を許容できない多対多接続のIoTシステムの機器制御に対しRPCを適用可能な機器制御装置、機器制御方法、及び機器制御システムを提供する。機器制御装置は、機器(30)とこの機器(30)の識別子に関する情報が記憶された記憶部(13h)と、アプリ(20)毎の機器(30)の権限を記憶した記憶部(13i)とを備える。そして、装置、方法、及びシステムは、例えばアプリ(20a)からの申請信号に従ってアプリ(20a)が制御の対象となる複数の機器(30)全てに制御権限を有していれば、制御権をアプリ(20a)に与え、また機器(30)に対する他のアプリ(20b、20c)からの制御権を排除した上で、アプリ(20a)からの遠隔制御信号を制御対象の機器(30a、30b)に送信する。

Description

本発明は、機器制御装置、機器制御方法、及び機器制御システムに関する。
近年、様々なセンサまたはアクチュエータを搭載した機器をネットワークに接続し、前記機器からのデータを収集・活用するIoT(Internet Of Things)システムがある。
このIoTシステムに複数のアプリケーション(装置、ソフトウェアまたはプロセス)を接続し、当該複数のアプリケーションが、前記機器に制御信号を送信することで当該機器の動作を制御する場合がある。
前記制御信号を用いた具体的な制御手法として、遠隔関数呼び出し(Remote Procedure Call、以下「RPC」と呼ぶ)が利用されている(非特許文献1を参照。)。
加藤聰彦 and 藤長昌彦. "分散処理システムの相互接続のためのRPCプロトコル変換." 全国大会講演論文集 ネットワーク (1991): 125-126.
単一のアプリケーションであれば、前記RPCを用いて機器を問題なく動作させることができる。
しかし、複数のアプリケーションを備えたIoTシステムにおいて、例えば一方のアプリケーションが他方のアプリケーションと協調(連携)せずに同一の機器を制御すると、前記同一の機器側では複数のアプリケーションからの複数のRPCを同時或いは連続的に受信してしまう。この結果、複数の制御が競合してしまう場合がある。
ここで、競合とは、同一の機器の動作を制御する権利を複数のアプリケーションが有することを指す。
このような場合、まず一方のアプリケーションからのRPCにより一連の処理を実行した後、次いで他方のアプリケーションからのRPCにより一連の処理を実行することで、全体の処理を達成すべきところ、前記競合が原因で、例えば機器の一部が異なる処理を行ってしまい、全体として所望する一連の処理を達成できないという問題が発生する。
因みに、遠隔制御の対象となる機器がデータ処理を行う機器であってそのデータ処理に不具合が生じた場合には、データ処理の結果得られたデータを一度取り消して初期状態に戻せばよい。
例えば、データベースにおける複数のデータの更新処理などは、一連の処理をトランザクションとして扱い、途中で処理が失敗した場合には、ロールバック処理を行うことで初期状態に戻すことができる。
しかし、例えば工業用途の制御機器の制御を失敗した場合には、前記ロールバック処理のように、一度実行した処理を取り消して再度実行することが不可能な状況(例えば、不可逆的な処理)が存在する。
具体的には、機器により素材の変形・変質等を伴う加工を行う場合である。この場合、一連の途中で処理が失敗すると初期状態に戻すことができない。
このため、ロールバックが不可能な一連の処理を達成するには、複数のアプリケーションが複数の機器に対してネットワークを通じた遠隔制御を行っても、その遠隔制御が競合せず、各アプリケーションが指定した一連の処理をそれぞれ確実に完了させる仕組みが必要となる。
また、前記ネットワークを介した機器の制御において、IoTシステムが想定しない不正なRPCを送信するアプリケーションがある場合、当該機器が不正に操作される可能性がある。
機器が不正に制御されると、この不正に制御された機器を制御する他のアプリケーションの処理が滞る可能性や、機器の破損等が発生する危険性がある。
そこで、不正なRPCが機器に送信されないようにする仕組みが必要である。
本発明は、前記課題に鑑みてなされたものであり、複数アプリケーションから同一の機器に対し同時に送信されるRPCの競合を防止し、これにより協調する一連の処理の未完了を許容できない多対多接続のIoTシステムの機器制御に対しRPCを適用できるようにする機器制御装置、機器制御方法、及び機器制御システムを提供することを目的とする。
本発明に係る機器制御装置は、複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶するアプリケーション別制御権限情報記憶部と、前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する制御権限判定手段と、前記制御権限判定手段により、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与する制御権限付与手段と、前記制御権限付与手段により前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する制御権限禁止手段と、前記制御権限が付与された前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する転送手段と、を備える。
本発明によれば、複数アプリケーションから同一の機器に対し同時に送信されるRPCの競合を防止し、これにより協調する一連の処理の未完了を許容できない多対多接続のIoTシステムの機器制御に対しRPCを適用可能になる。
図1は、実施形態のRPCゲートウェイ10を備えた機器制御システム1の構成を示すブロック図である。 図2は、前記機器制御システム1が備えるRPCゲートウェイ10の回路構成を示すブロック図である。 図3は、前記RPCゲートウェイ10の記憶装置13内における機器識別子対応情報記憶部13hに記憶された被制御機器30(30a〜30e)毎の識別子を示す図である。 図4Aは、前記RPCゲートウェイ10の記憶装置13内に設けられる制御権限管理記憶部13iの概念図である。 図4Bは、前記RPCゲートウェイ10の記憶装置13内における制御権限管理記憶部13iに記憶された被制御機器30毎のアプリケーション20による制御権限取得状況を示す図である。 図4Cは、前記RPCゲートウェイ10に接続された被制御機器30cに対するアプリケーション20bからの制御権限の取得の申請を拒否する様子を示す図である。 図4Dは、前記RPCゲートウェイ10に接続された被制御機器30を遠隔制御可能なアプリケーション20を示した図である。 図5Aは、前記RPCゲートウェイ10による機器制御処理(制御権限申請受付処理)を示すフローチャートである。 図5Bは、前記RPCゲートウェイ10による機器制御処理(RPC実行要求受付処理)を示すフローチャートである。 図5Cは、前記RPCゲートウェイ10による機器制御処理(制御権限解放受付処理)を示すフローチャートである。 図6Aは、前記RPCゲートウェイ10による更新処理(1)を示すフローチャートである。 図6Bは、前記RPCゲートウェイ10による更新処理(2)を示すフローチャートである。 図7Aは、前記RPCゲートウェイ10による前記更新処理(2)を用いた被制御機器一覧提供処理を示すフローチャートである。 図7Bは、前記RPCゲートウェイ10による前記更新処理(2)を用いたリアルタイム制御機器提供処理を示すフローチャートである。 図8は、前記RPCゲートウェイ10による新規関数情報登録通知処理を示すフローチャートである。 図9は、前記RPCゲートウェイ10による関数情報一致確認処理を示すフローチャートである。 図10は、前記RPCゲートウェイ10によるフォーマット確認処理を示すフローチャートである。 図11は、前記RPCゲートウェイ10によるログ記憶処理を示すフローチャートである。
以下、本発明の実施形態に係る機器制御装置、機器制御方法、及び機器制御システムについて図面を参照して説明する。
図1は、実施形態に係る機器制御装置としてのRPCゲートウェイ10を備えた機器制御システム1の構成を示したブロック図である。
機器制御システム1は、RPCゲートウェイ10、アプリケーション20(20a〜20c)、及び被制御機器30(30a〜30e)を備える。
アプリケーション20(20a〜20c)は、CPUを備えるデバイスが、記憶媒体に記憶されたプログラムを実行することによって実現される。以下、図にブロックで示したアプリケーション20(20a〜20c)は、各アプリケーション20(20a〜20c)を実行可能なデバイスを指すものとして説明する。ただし、図は単なる一例であって、各アプリケーション20が別個のデバイスに配置される必要はなく、複数のアプリケーションが単一のデバイス上に配置され単一のデバイスによって実行されてもよい。図1において、アプリケーション(を実行可能なデバイス)20(20a〜20c)は、アプリケーション接続部14を介してRPCゲートウェイ10と接続される。
被制御機器30(30a〜30e)は、被制御機器接続部15を介してRPCゲートウェイ10と接続される。
尚、アプリケーション20a〜20cを区別しない場合には、単にアプリケーション20と呼び、同様に被制御機器30a〜30eを区別しない場合には、単に被制御機器30と呼ぶ。
アプリケーション20は、RPCゲートウェイ10へRPC信号を送信する。
RPC信号には、RPC申請信号、RPC実行要求(遠隔制御)信号、及びRPC制御権限解放要求信号がある。
RPC申請信号は、被制御機器30の動作を独占して制御する権限(以下、制御権限)を取得(ゲット)するための信号である。
RPC実行要求信号は、前記制御権限を付与されたアプリケーション20から送信される信号であって、複数の被制御機器30(30a〜30e)の動作を遠隔制御するための信号である。
RPC制御権限解放要求信号は、それまで取得していた制御権限を解放(リリース)するための信号である。このRPC制御権限解放要求信号は、被制御機器30による遠隔制御が実行された後にアプリケーション20からRPCゲートウェイ10へ送信される。
上記のように、各アプリケーション20または各アプリケーションを実行可能なデバイス20は、被制御機器30(30a〜30e)に対する制御権限の取得を申請するRPC申請信号をRPCゲートウェイ10に出力する申請手段(申請部)と、当該申請手段により被制御機器30の制御権限を取得した場合に当該被制御機器30を遠隔制御するRPC実行要求信号(遠隔制御信号)をRPCゲートウェイ10に送信する手段(送信部)と、RPC制御権限解放要求信号をRPCゲートウェイ10に送信する手段(送信部)とを備える。また、アプリケーション20は、RPCゲートウェイ10から、RPC遠隔制御信号に基づいて動作した被制御機器30の実行結果(図1中、RPCゲートウェイ10から各アプリケーション20に向かう矢印)を受信する。
RPC申請信号及びRPC制御権限解放要求信号のフォーマットとして、自身(アプリケーション20)のアドレス又は識別子、送信先(制御対象とする被制御機器30(30a〜30e)の識別子、が記述されている。
RPC実行要求信号のフォーマットとして、自身(アプリケーション20)のアドレス又は識別子、送信先(制御対象とする被制御機器30(30a〜30e)の識別子の他、被制御機器30に対する制御内容(動作を制御する関数情報([関数名]及び引数[データ含む]))、が記述されている。
RPCゲートウェイ10は、アプリケーション20による被制御機器30への遠隔制御が競合しないよう中継する機能を有する。
具体的には、RPCゲートウェイ10は、
(1)所定の条件(他のアプリケーション20と競合がないこと)を満足した場合に当該アプリケーション20に被制御機器30を遠隔制御する制御権限を付与し、また制御権限が付与されたアプリケーション20から受信したRPC遠隔制御信号を、自身(RPCゲートウェイ10)を中継して被制御機器30(30a〜30e)へ送信する機能、
(2)RPCゲートウェイ10に接続されているアプリケーション20及び被制御機器30をリアルタイムに把握する更新機能、
(3)アプリケーション20からの問合せに応じて、いずれのアプリケーション20からも制御権限の取得がなされていない被制御機器30の一覧を提供する被制御機器一覧提供機能、
(4)アプリケーション20からの問合せに応じて、当該アプリケーション20が現時刻において制御権限取得している被制御機器30の一覧を提供するリアルタイム被制御機器一覧提供機能、
(5)RPCゲートウェイ10に、新たな関数情報(関数名、及び引数[データ含む])に基づいて動作する被制御機器30が接続された際に、当該被制御機器30とこの被制御機器30の制御に際し必要となる関数情報とを登録し、これをアプリケーション20に通知する新規関数情報登録通知機能、
(6)アプリケーション20からのRPC遠隔制御信号に記述された前記関数情報に誤りがないか否か、またこのRPC遠隔制御信号に従い動作した被制御機器30からの結果に誤りがないか否かをチェックする関数情報一致機能/結果確認機能、及び
(7)RPCゲートウェイ10の全体動作をログに記録するログ記録機能、
を有する。
被制御機器30は、プロセッサと当該プロセッサに接続されたメモリとを備え、前記プロセッサが、前記メモリに記憶された命令を受けて、RPCゲートウェイ10によって中継された前記RPC遠隔制御信号を受信し、当該RPC遠隔制御信号に従った所定の制御を実行すると、これを実行結果(例えば、成功:True、失敗:False、結果の内容を示す“データ列”のいずれかの情報)としてRPCゲートウェイ10へ送信する機能を有する。
図2は、前記機器制御システム1が備えるRPCゲートウェイ10の回路構成を示したブロック図である。
図3は、前記RPCゲートウェイの記憶装置13内における機器識別子対応情報記憶部13hに記憶された被制御機器30(30a〜30e)毎の識別子を示した図である。
図4A〜図4Dは、前記RPCゲートウェイ10の記憶装置13内に設けられる、アプリケーション別制御権限情報記憶部および被制御機器情報記憶部としての制御権限管理記憶部13iの概念図と、この制御権限管理記憶部13iに記憶され、時間毎に変化する被制御機器30(30a〜30e)に対するアプリケーション20(20a〜20c)の制御権限の取得状況を示した図である。
RPCゲートウェイ10は、制御部としてのCPU11を備えている。
CPU11は、システムバス16を介して、メモリ12、記憶装置13、アプリケーション接続部14、及び被制御機器接続部15に接続される。
メモリ12は、作業エリア12aを備える。
記憶装置13は、ハードディスクや、フラッシュメモリ等から構成され、機器制御処理プログラム13a、更新処理プログラム13b、被制御機器一覧提供プログラム13c、リアルタイム制御機器一覧提供プログラム13d、新規関数情報登録通知処理プログラム13e、確認処理プログラム13f及びログ記憶処理プログラム13gを記憶する。また記憶装置13は、機器識別子対応情報記憶部13h、制御権限管理記憶部13i、関数情報記憶部13j及びログ記憶部13kを備える。
機器制御処理プログラム13a〜ログ記憶処理プログラム13gのそれぞれは、前記CPU11により作業エリア12aを用いて起動・実行され、当該機器制御処理プログラム13a〜ログ記憶処理プログラム13gに基づいたCPU11からの制御信号に従って、回路各部の動作を制御することで後述する機器制御処理、更新処理(1)、更新処理(2)、被制御機器一覧提供処理、リアルタイム被制御機器一覧提供処理、新規関数情報登録通知処理、確認処理、及びログ記憶処理を実現する。
機器識別子対応情報記憶部13hは、被制御機器30(30a〜30e)と、それら被制御機器30(30a〜30e)に対応する識別子とを記憶する。
図3に示すように、被制御機器30aの識別子を“device001”、被制御機器30bの識別子を“device002”、被制御機器30cの識別子を“device003”、被制御機器30dの識別子を“device004”、被制御機器30eの識別子を“device005”とする。
アプリケーション別制御権限情報記憶部および被制御機器情報記憶部としての制御権限管理記憶部13iは、アプリケーション別制御権限情報および被制御機器の接続情報として、被制御機器30(30a〜30e)に対するアプリケーション20(20a〜20c)別の制御権限の取得状況を記憶する(図4A〜図4Dを参照。)。
まず、図4Aに示すように、制御権限管理記憶部13iには被制御機器30(30a〜30e)と、この被制御機器30に対して制御権限を有するアプリケーション20(20a〜20c)と、が対応して記憶される。
図4Aは初期状態を示すため、被制御機器30(30a〜30e)に対していずれのアプリケーション20(20a〜20c)も制御権限を取得していない状態である。
図4Bは、アプリケーション20aが被制御機器30(30a〜30c)に対して制御権限を取得した様子を一例として示した図である。
ここでは、アプリケーション20bにより被制御機器30dに対する制御権限が取得されているものとする。
つまり、被制御機器30(30a〜30c)に対しては、いずれのアプリケーション20も制御権限を取得していないことから、アプリケーション20aは被制御機器30(30a〜30c)に対して制御権限を取得することができる。
しかし、図4Cに示すように、アプリケーション20aによって被制御機器30(30a〜30c)に対する制御権限が取得されている場合では、例えばアプリケーション20bからの被制御機器30cに対する制御権限の取得の申請は否認される。すなわち、矢印で示した箇所にアプリケーション20bを追加することはできない。
したがって、アプリケーション20bは被制御機器30cの他、他の被制御機器30d、及び30eについても制御権限を取得できない。
このように、制御権限管理記憶部13iを参照することで所定の時刻(例えば、被制御機器30を遠隔制御したい時刻)における、被制御機器30(30a〜30e)毎のアプリケーション20による制御権限の取得状況を把握することができ、また制御権限の取得の可否は、他のアプリケーション20との関係で随時変化するものである。
例えば、所定の時刻において図4Dに示すような制御権限の取得状況を得た場合を考える。
図示するように、所定の時刻ではアプリケーション20aが被制御機器30(30a〜30c)に対する制御権限を取得し、アプリケーション20bが被制御機器30dに対する制御権限を取得している。
つまり、図4Dの内容に従えば、制御権限を解放するまでアプリケーション20aは被制御機器30(30a〜30c)の動作を遠隔制御可能とし、またアプリケーション20bは被制御機器30dの動作を遠隔制御可能となる。
しかし、RPCゲートウェイ10は、これ以外の組み合わせについては遠隔制御信号を送信したアプリケーション20へエラーを返すものとする。
なお、制御権限管理記憶部13iは、現時点でRPCゲートウェイ10に接続されているアプリケーション20情報を記憶してもよい。
関数情報記憶部13jは、被制御機器30毎の関数情報を記憶する。
関数情報には、[被制御機器30の動作内容を示す関数名(例えば、move処理)、引数[データ含む](例えば、x、y、z:”1”,”1”,”1”)]、及び受信すべき被制御機器30による実行結果のデータ型(成功:True、失敗:False、データ列など)が記憶される。
前記アプリケーション接続部14は、前記制御信号に従いアプリケーション20(20a〜20c)とRPC信号及び実行結果(True、False、或いはデータ列)の授受を行う。
前記被制御機器接続部15は、前記制御信号に従い被制御機器30(30a〜30e)とRPC信号及び実行結果(True、False、或いはデータ列)の授受を行う。
このように構成されたRPCゲートウェイ10は、前記CPU11が機器制御処理プログラム13a〜ログ記録処理プログラム13gに記述された命令に従い回路各部の動作を制御し、ソフトウェアとハードウェアとが協働して動作することにより、以下の動作説明にて述べるような処理を実現する。次に、前記構成の機器制御システム1の動作を説明する。
[機器制御処理]
図5A、図5B、及び図5Cは、前記RPCゲートウェイ10による機器制御処理を示すフローチャートである。以下の機器制御処理は、大きく分けて(1)制御権限申請受付処理、(2)RPC遠隔信号受付処理、及び(3)制御権限解放処理に分類される。
なお、以下の処理では、理解を容易にするため、一例としてアプリケーション20aによる機器制御処理(制御権限申請受付処理(図5A)、RPC遠隔信号受付処理(図5B)、及び制御権限解放受付処理(図5C))に着目する。
まず、図5Aを用いて(1)制御権限申請受付処理について説明する。
(1)制御権限申請受付処理
アプリケーション20に被制御機器30の動作を独占的に制御する制御権限を付与する際、RPCゲートウェイ10を駆動して機器制御処理プログラム13aを起動させる。すると、RPCゲートウェイ10のCPU11は、アプリケーション接続部14を介してアプリケーション20からRPC申請信号を受信したか否かを判定する(ステップS1)。
例えば、アプリケーション20aからRPC申請信号を受信したと判定すると(ステップS1、YES)、RPCゲートウェイ10は、次いで要求元であるアプリケーション20aからのRPC申請信号のフォーマットが正しいか否かをチェックする(ステップS2)。RPC申請信号が正しいフォーマットであれば(ステップS2、YES)、RPCゲートウェイ10は、次いで他のアプリケーション20(20b、20c)からのRPC申請信号に基づいた制御権限管理記憶部13iの書き換え処理(図中、参照・更新処理)が行われていないか判定する(ステップS4)。つまり、RPCゲートウェイ10は、他のアプリケーション20(20b、20c)からのRPC申請信号による制御権限の書き換え処理の有無を判定する(ステップS4)。
制御権限の参照・更新処理が行われていないと判定すると(ステップS4、YES)、RPCゲートウェイ10は、アプリケーション20aからのRPC申請信号に基づき、以下の制御権限の申請処理を開始する(ステップS5)。
まず、RPCゲートウェイ10は、RPC申請信号内に含まれる制御対象としての被制御機器30のうち、1つ目の被制御機器30(例えば、30a)を選択する(ステップS6)。
具体的には、RPCゲートウェイ10は、まず作業エリア12aを用いてnに“1”を設定する。ここで、nはRPC申請信号に記述された制御対象とする被制御機器30の数を示す。
例えば、アプリケーション20aが被制御機器30(30a、30b、30c)を遠隔制御の対象機器としていればn=3となる。
次いで、RPCゲートウェイ10は、CPU11を制御権限判定手段(接続確認手段および権限付与判定手段)として用いて、制御権限管理記憶部13iに基づいて、アプリケーション20aが指定した被制御機器30aに対して他のアプリケーション20(20b、20c)が制御権限を有しているか否か、言い換えれば、例えば図4Aの被制御機器30aに対応するアプリケーション20の欄に他のアプリケーション20(20b、20cのいずれかのアプリケーション20)が記憶されていないか否かについて確認する(ステップS7)。
被制御機器30aに対する制御権限が他のアプリケーション20(20b、20c)により取得されていなければ(ステップS7、YES、図4B左側を参照。)、RPCゲートウェイ10は、次いで、RPC申請信号に含まれる被制御機器(30a、30b、30c)の全てに対してステップS7の処理を実行したか否かを確認する(ステップS10)。
また、制御対象となる全ての被制御機器30(30a、30b、及び30c)についてステップS7の処理が終了していない場合には(ステップS10(NO))、RPCゲートウェイ10は、nに“n+1”を代入して、2つ目に指定した被制御機器30bを選択した後、ステップS7の処理を実行する(ステップS10(NO)→ステップS6→ステップS7)。
CPU11は、3つ目に指定した被制御機器30cについても同様の処理を実行する(ステップS10(NO)→ステップS6→ステップS7)。
制御対象となる全ての被制御機器30(30a、30b、及び30c)に対してステップS7の処理が完了した結果、いずれのアプリケーション20(20b、20c)も制御権限を取得しておらず(図4B左側を参照。)、全ての被制御機器30(30a、30b、及び30c)に対する制御権限を取得可能であると判定すると(ステップS10、YES)、RPCゲートウェイ10は、CPU11を制御権限付与手段として用いて、被制御機器30(30a、30b、及び30c)を制御するアプリケーション20として、申請元であるアプリケーション20aに関する情報(例えば、識別子など)を制御権限管理記憶部13iに書き込み、記憶させる(ステップS11、図4B右側を参照。)。
その後、RPCゲートウェイ10は、被制御機器30(30a、30b、及び30c)の動作を遠隔制御する制御権限を付与した旨を申請元のアプリケーション20aに返答し(ステップS12)、且つCPU11を制御権限禁止手段として用いて、他のアプリケーション20(20b、20c)による被制御機器30(30a、30b、30c)への制御権限を排除(exclude)(または制御権限の付与を禁止(forbid))した上で(すなわち、他のアプリケーション20(20b、20c)の被制御機器30(30a、30b、30c)への制御権限取得要求を遮断した上で)、制御権限管理記憶部13iの更新処理を終了し(ステップS13)、次の(2)RPC実行要求受付処理に移行する。
なお、RPCゲートウェイ10は、ステップS1にてRPC申請信号を受信していなければ(ステップS1、NO)、当該RPC申請信号を受信するまで待機する。またRPCゲートウェイ10は、RPC申請信号が正しいフォーマットで送信されていない場合には(ステップS2、NO)、申請元のアプリケーション20aに対して制御権限の取得を失敗した旨を返答し(ステップS3)、新たなRPC申請信号の受信処理に移行する(ステップS1)。RPCゲートウェイ10は、さらにRPC申請信号を受信した際に、他のアプリケーション20による制御権限の申請処理が行われている場合には(ステップS4、NO)、この制御権限の申請処理が終了するまで待機する。そしてRPCゲートウェイ10は、アプリケーション20aが指定した被制御機器30(30a、30b、及び30c)のうちいずれかの被制御機器30に対して他のアプリケーション20による制御権限が取得されている場合には(ステップS7、NO、一例として図4Cを参照。)、CPU11をエラー処理手段として用いて、アプリケーション20aが指定した被制御機器30を独占して制御することができないため申請元のアプリケーション20aに対して制御権限の取得を失敗した旨を返答しつつ(ステップS8)、本処理(制御権限申請処理)を終了し(ステップS9)、新たなRPC申請信号の受信処理に移行する(ステップS1)。
(2)RPC実行要求受付処理
図5Bに示すように、RPCゲートウェイ10は、制御権限を付与したアプリケーション20aからRPC実行要求信号を受信すると(ステップP1、YES)、次いで要求元のアプリケーション20aからのRPC実行要求信号のフォーマットが正しいか否かをチェックする(ステップP2)。正しいフォーマットであれば(ステップP2、YES)、次いで制御権限管理記憶部13iの書き換え処理(図中、参照・更新処理)が行われていないか判定する(ステップP3)。
制御権限の参照・更新処理が行われていないと判定すると(ステップP3、YES)、RPCゲートウェイ10は、以下の制御権限参照処理を開始する(ステップP4)。
まず、RPCゲートウェイ10は、RPC実行要求信号にて指定された被制御機器30(30a、30b、30c)の制御権限をアプリケーション20aが有しているか否かを判定する(ステップP5)。
アプリケーション20aが指定した被制御機器30(30a、30b、30c)の制御権限を有していると判定すれば(ステップP5、YES)、RPCゲートウェイ10は、ステップP4で開始した制御権限参照処理を終了し(ステップP8)、CPU11を転送手段として用いて、アプリケーション20aからのRPC実行要求信号、具体的には当該RPC実行要求信号に記述された[関数名]と[引数(データ含む)]とを被制御機器30(30a、30b、30c)へと転送(中継)する(ステップP9)。
その後、RPCゲートウェイ10は、遠隔制御した被制御機器30からRPC実行結果について受信処理を実行し(ステップP10)、当該受信処理に基づきRPC実行結果が正しいフォーマットに従っているか否かを判定する(ステップP11)。
正しいフォーマットに従っていれば(ステップP11、YES)、RPCゲートウェイ10は、被制御機器30による実行結果を要求元のアプリケーション20aへ送信し(ステップP12)、後述する(3)制御権限解放処理に移行する。
なお、RPCゲートウェイ10は、ステップP2にてRPC実行要求信号が正しいフォーマットに従っていなければ(ステップP2、NO)、再度の受信処理に移行し(ステップP2→P1)、またRPC実行要求信号を受信した際に制御権限管理記憶部13iの参照・申請処理が行われている場合には(ステップP3、NO)、この参照・申請処理が終了するまで待機し、さらにRPC実行要求信号にて指定した被制御機器30に対する制御権限を有していない場合には(ステップP5、NO)、ステップP4における制御権限参照処理を終了した後に、RPC実行要求信号による遠隔制御を実行できない旨を要求元のアプリケーション20aへ返信し、RPC実行要求受付処理を終了する(ステップP6→P7→終了)。
また更に、RPCゲートウェイ10は、遠隔制御した被制御機器30の実行結果を受信せず(ステップP10、NO)、そして被制御機器30の実行結果を受信した場合であっても(ステップP10、YES)、被制御機器30の実行結果が正しいフォーマットに従っていなければ(ステップP11、NO)、RPC実行要求信号による遠隔制御を実行できない旨を要求元のアプリケーション20aへ返信し、RPC実行要求受付処理を終了する(ステップP7→終了)。
(3)制御権限解放受付処理
図5Cに示すようにRPCゲートウェイ10が実行結果を受信したアプリケーション20aからそれまで遠隔制御していた被制御機器30(30a、30b、30c)を解放(解除)したい旨を示す制御権限解放要求信号を受信すると(ステップQ1、YES)、RPCゲートウェイ10は、次いで要求元のアプリケーション20aからの制御権限解放要求信号のフォーマットが正しいか否かをチェックする(ステップQ2)。正しいフォーマットであれば(ステップQ2、YES)、RPCゲートウェイ10は、次いで制御権限管理記憶部13iの書き換え処理(図中、参照・更新処理)が行われていないか判定する(ステップQ4)。
制御権限の参照・更新処理が行われていないと判定すると(ステップQ4、YES)、RPCゲートウェイ10は、アプリケーション20aからの制御権限解放要求信号に基づき、以下の制御権限更新処理を開始する(ステップQ5)。
すなわち、RPCゲートウェイ10は、被制御機器30(30a、30b、30c)に対して制御権限を有する要求元アプリケーション20aに関する情報を制御権限管理記憶部13iから削除し(ステップQ6)、制御権限解放要求信号を送信した要求元のアプリケーション20aへ制御権限を解放した旨の返答をした後に(ステップQ7)、制御権限更新処理を終了する(ステップQ8)。
なお、RPCゲートウェイ10は、制御権限解放要求信号を受信しない場合には、受信するまで待機し(ステップQ1、NO)、制御権限解放要求信号が正しいフォーマットに従っていなければ(ステップQ2、NO)、フォーマットが違っているため制御権限を解放できない旨の結果を、要求元のアプリケーション20aに返答し(ステップQ3)、また制御権限解放要求信号を受信した際に制御権限管理記憶部13iの参照・申請処理が行われている場合には(ステップQ4、NO)、この参照・申請処理が終了するまで待機する。
したがって、上述した構成のRPCゲートウェイ10によれば、当該RPCゲートウェイ10に、複数のアプリケーション20(20a〜20c)と複数の被制御機器30(30a〜30e)とを接続し、被制御機器30と当該被制御機器30に対応する識別子と対応付けて記憶された機器識別子対応情報記憶部13hと、アプリケーション20毎(20a〜20c)の被制御機器30(30a〜30e)に対する制御権限を記憶した制御権限管理記憶部13iとを備える。そして、例えばアプリケーション20aが遠隔制御の対象として指定した複数の被制御機器30(30a、30b、30c)の全てがいずれのアプリケーション20からも制御権限の取得がなされていなければ(図4B左側を参照。)、アプリケーション20aからのRPC申請信号に従い被制御機器30(30a、30b、30c)の動作を遠隔制御する制御権限をアプリケーション20aに与え、当該被制御機器30(30a、30b、30c)に対する他のアプリケーション20(20b、20c)の動作を制御する制御権を排除(制御権限の付与を禁止)した上で(すなわち、他のアプリケーション20(20b、20c)による被制御機器30(30a、30b、30c)への制御権限取得要求を遮断した上で)、アプリケーション20aからのRPC実行要求信号を前記遠隔制御の対象とした複数の被制御機器30(30a、30b、30c)に送信する。
これによれば、RPCゲートウェイ10は、例えばアプリケーション20aへ被制御機器30(30a、30b、30c)に対するグループ単位の排他的(exclusive)な制御権限を付与し、他のアプリケーション20(20b、20c)からの被制御機器30(30a、30b、30c)に対する制御権を排除(exclude)することで、被制御機器30(30a、30b、30c)が複数のRPC実行要求信号を同時に、又は連続的に受信してしまうことを防止することができる。その結果、例えばアプリケーション20aからのRPC実行要求信号により被制御機器30(30a、30b、30c)に一連の処理を実行させ、制御権限を解放した後、次いで例えばアプリケーション20bからのRPC申請信号及びRPC実行要求信号により被制御機器30(30a、30b、30c)に異なる一連の処理を実行させることで、全体の処理を達成することができる。このように、複数の動作が競合してしまうといった誤動作を防止することができる。
また前記構成のRPCゲートウェイ10によれば、RPCゲートウェイ10は、アプリケーション20から受信したRPC申請信号に含まれる被制御機器30に対する制御権限の取得の有無を制御権限管理記憶部13iに基づいて判断する。
これによれば、RPC実行要求信号を送信したアプリケーション20が指定した被制御機器30に対して当該アプリケーション20が制御権限を有していない場合には、RPCゲートウェイ10は、これを不正アクセスとして判断し、当該アプリケーション20からのアクセスを遮断することができる。
さらに、上述した構成のRPCゲートウェイ10によれば、RPCゲートウェイ10は、ステップS4における制御権限更新処理開始前にアプリケーション20からのRPC申請信号のフォーマットが適合しているのかの確認を行う。
これによれば、アプリケーション20からのRPC申請信号のフォーマットが適合していない場合には、これを不正アクセスとして判断し、当該アプリケーション20からのアクセスを遮断することができる。
[更新処理(1)、更新処理(2)/被制御機器一覧提供処理、リアルタイム制御機器一覧提供処理]
以下、図6A、図6B、図7A、及び図7Bを用いて説明する。
RPCゲートウェイ10は、当該RPCゲートウェイ10に接続されているアプリケーション20、及び被制御機器30に基づいて機器識別子対応情報記憶部13h及び制御権限管理記憶部13iに記憶された情報を更新する機能を有する。当該更新機能により、RPCゲートウェイ10はまた、CPU11をリスト出力手段として用いて、いずれのアプリケーション20にも制御権限が取得されていない被制御機器30のリストを一覧出力する機能を有する。さらにRPCゲートウェイ10は、CPU11をリスト出力手段として用いて、上述した制御権限申請受付処理の結果、現時刻において制御権限を有する被制御機器30のリストをアプリケーション20毎に一覧出力する機能を有する。
図6Aは、アプリケーション20(20a〜20c)とは異なる新たなアプリケーション20がアプリケーション接続部14に接続され、またこの新たに接続されたアプリケーション20を含む全てのアプリケーション20からアプリケーション20が取り外された際の前記RPCゲートウェイ10による更新処理(1)を示したフローチャートである。なお、このフローチャートでは、新たなアプリケーション20の接続、取外しとして、1又は複数のいずれの場合を想定している。以下、図6Bに示す被制御機器30の場合も同様で新たな被制御機器30の接続、取外しとして、1又は複数のいずれの場合を想定している。
図6Bは、被制御機器30(30a〜30e)とは異なる新たな被制御機器30が被制御機器接続部15に接続され、またこの新たに接続された被制御機器30を含む全ての被制御機器30から被制御機器30が取り外された際の前記RPCゲートウェイ10による更新処理(2)を示したフローチャートである。
RPCゲートウェイ10を駆動し、更新処理プログラム13bを起動させると、RPCゲートウェイ10は、前記アプリケーション接続部14に新たなアプリケーション20が接続されか否かを判定する(ステップT1)。
新たなアプリケーション20の接続があったと判定すると(ステップT1、YES)、制御権限管理記憶部13iに新たなアプリケーション20を追加・記憶させる(ステップT2)。
その後、アプリケーション20がRPCゲートウェイ10から外されたか否かを判定する(ステップT3)。また、ステップT1にて新たなアプリケーション20が接続されていないと判定した場合も(ステップT1、NO)、このステップT3の動作に移行する(ステップT1、(NO)→ステップT3)。
そして、アプリケーション20がRPCゲートウェイ10から外されたことを判定すると(ステップT3、YES)、当該外されたアプリケーション20に関する情報を制御権限管理記憶部13iから削除する(ステップT4)。
これにより、常時制御権限管理記憶部13iの情報を最新の状態とする。
次に、図6Bを用いてRPCゲートウェイ10による更新処理(2)について説明する。
RPCゲートウェイ10は、前記被制御機器接続部15に新たな被制御機器30が接続されたか否かを判定する(ステップT10)。
新たな被制御機器30の接続があったと判定すると(ステップT10、YES)、まず、機器識別子対応情報記憶部13hに新たな被制御機器30とこれに対応する識別子とを追加・記憶する(ステップT11)。次いで、今回新たに追加した被制御機器30の識別子を制御権限管理記憶部13iに追加・記憶する(ステップT12)。
その後、RPCゲートウェイ10から外された被制御機器30があるか否かについて判定する(ステップT13)。また、ステップT10にて新たな被制御機器30が接続されていないと判定した場合も(ステップT10、NO)、このステップT13の動作に移行する(ステップT10、(NO)→ステップT13)。
外された被制御機器30があると判定すると(ステップT13、YES)、当該外された被制御機器30について機器識別子対応情報記憶部13hから削除すると共に、機器識別子対応情報記憶部13hから削除した被制御機器30に関する情報を前記制御権限管理記憶部13iから削除する(ステップT14)。
この更新処理(2)を実行することで、機器識別子対応情報記憶部13hの他、制御権限管理記憶部13iについても最新の状態を保持することができる。
なお、前記更新処理(1)、(2)は、RPCゲートウェイ10が起動している最中であればどのタイミングで実行してもよく、またアプリケーション20及び/又は被制御機器30が接続、取外しされた際に実行してもよいし、更に、例えば下記図7A、及び図7Bを用いて説明するようなリアルタイムでの被制御機器30の接続状況、及び制御権限取得状況を把握したいといった要求に応じて実行してもよい。
次に、図7Aを用いてRPCゲートウェイ10による被制御機器一覧提供処理について説明する。
図7Aは、前記更新処理(2)を用いて被制御機器一覧提供処理を実行する前記RPCゲートウェイ10による動作を示すフローチャートである。
RPCゲートウェイ10を駆動し、被制御機器一覧提供処理プログラム13cを起動させる。RPCゲートウェイ10は、制御権限を取得可能な被制御機器30の情報を要求する問い合わせ(以下、制御権限確認信号)をアプリケーション20から受信すると(ステップU1、YES)、まず前記更新処理(2)を実行する。
すなわち、RPCゲートウェイ10に接続された被制御機器30の最新状況を得るべく、ステップT11〜T14までの動作を実行することで機器識別子対応情報記憶部13h内の被制御機器30に関する情報の追加/削除を実行する(ステップU2)。
その後、RPCゲートウェイ10は、CPU11をリスト出力手段として用いて、当該機器識別子対応情報記憶部13hに記憶されている識別子及びこれに対応する被制御機器30の情報、並びに制御権限管理記憶部13iに記憶され、いずれのアプリケーション20からも制御権限を取得されていない被制御機器30に関する情報(リスト)を、前記制御権限確認信号を受けたアプリケーション20に送信する(ステップU3)。
次に、図7Bを用いてRPCゲートウェイ10によるリアルタイム制御機器一覧提供処理について説明する。
図7Bは、前記更新処理(2)を用いてリアルタイム制御機器一覧提供処理を実行する前記RPCゲートウェイ10による動作を示すフローチャートである。
RPCゲートウェイ10を駆動し、リアルタイム制御機器提供処理プログラム13dを起動させる。RPCゲートウェイ10は、現在、制御権限を取得している被制御機器30ついてその情報を要求する問い合わせ(以下、制御権限取得信号)を受信すると(ステップU10、YES)、同様に更新処理(2)を実行する(ステップU11)。
その後、RPCゲートウェイ10は、現在時刻における制御権限を取得している被制御機器30を提供すべく制御権限管理記憶部13iを参照する(ステップU12)。その後、RPCゲートウェイ10は、CPU11をリスト出力手段として用いて、制御権限管理記憶部13iに記憶された情報に基づいて制御権限取得信号を受けたアプリケーション20に対して、現在時刻にて制御権限を取得している被制御機器30の一覧情報(リスト)を送信する(ステップU13)。
したがって、上述した構成のRPCゲートウェイ10によれば、アプリケーション20から問い合わせとして制御権限確認信号や制御権限取得信号を受信すると、更新処理(2)を実行し、制御権限管理記憶部13iを参照して現在RPCゲートウェイ10に接続された被制御機器30のうち、いずれのアプリケーション20からも制御権限を取得されていない被制御機器30の一覧リストを提供する他、現時点で制御権限を取得している被制御機器30の一覧をリアルタイムで一覧提供する。
これによれば、アプリケーション20を操作するユーザは、現在RPCゲートウェイ10に接続されている被制御機器30であって制御権限を取得可能な被制御機器30の一覧(リスト)や、現時点で被制御機器30を制御可能か、すなわちどの被制御機器30に対して制御権限を有しているのかをリアルタイムで認識することができる。
[新規関数情報登録通知処理/関数情報一致確認処理、及び結果確認処理]
以下、図8、図9及び図10を用いて説明する。
図8は、前記RPCゲートウェイによる新規関数情報登録通知処理を示すフローチャートである。
RPCゲートウェイ10を駆動し、新規関数情報登録通知処理プログラム13eを起動させる。すると、RPCゲートウェイ10は新規関数情報登録通知処理プログラム13eを起動して以下図8に示す処理を実行する。
まず、RPCゲートウェイ10は被制御機器接続部15に新たな被制御機器30が接続されたか否かを判定し(ステップJ1)、接続がない場合には(ステップJ1、NO)、新たな被制御機器30の接続があるまで待機する。
そして、RPCゲートウェイ10は、新たな被制御機器30が接続されたと判定すると(ステップJ1、YES)、関数情報記憶部13jを参照し(ステップJ2)、新たに接続された被制御機器30によって実行可能な関数情報が関数情報記憶部13jに既に記憶(登録)されているか否かを確認する(ステップJ3)。
ステップJ3の結果、新たに接続された被制御機器30によって実行可能な関数情報が関数情報記憶部13jに記憶(登録)されていないと判定すると(ステップJ3、NO)、RPCゲートウェイ10は、その新たな関数情報を関数情報記憶部13jに記憶(登録)し(ステップJ4)、現在RPCゲートウェイ10に接続されている全てのアプリケーション20に対して関数情報記憶部13jに新たな制御関数情報が記憶(登録)されたことを通知する(ステップJ5)。
なお、ステップJ3の結果、新たに接続された被制御機器30によって実行可能な関数情報が関数情報記憶部13jに記憶(登録)されているのであれば(ステップJ3、YES)、RPCゲートウェイ10は処理を終了する。
これにより、上記ステップP2におけるフォーマット確認処理を、以下のような処理(P2−1)に置き換えて実行することもできる。
図9は、RPCゲートウェイ10がフォーマット確認処理(ステップP2)の代わりに実行する関数情報一致確認処理(P2−1)を示したフローチャートである。
関数情報一致確認処理は、前記アプリケーション20aが送信したRPC実行要求信号に記述された関数情報(関数名、引数[データを含む])の内容に誤りが無く、関数情報記憶部13jに記憶された関数情報(関数名、引数[データを含む])と一致するか否か、すなわち制御対象となる被制御機器30にRPC実行要求信号のフォーマットが対応しているかについて確認する処理である。
まず、RPCゲートウェイ10により、ステップP1においてアプリケーション20aからRPC実行要求信号受信した後、当該RPC実行要求信号内の関数情報に基づいて関数情報記憶部13jを参照する処理が実行される(ステップK1)。
そして、RPCゲートウェイ10は、CPU11を関数情報判定手段として用いて、アプリケーション20からのRPC実行要求信号内に含まれる関数情報(関数名、引数[データを含む])が、当該関数情報記憶部13jに記憶された内容の一部(関数名、引数[データを含む])と一致するか否かを判定する(ステップK2)。
一致していれば(ステップK2、YES)、RPCゲートウェイ10は、ステップP3の処理へ移行し、制御権限管理記憶部13iの書き換え処理(図中、参照・更新処理)が行われていないか判定する。
なお、RPC遠隔制御信号内に含まれる関数情報(関数名、引数[データを含む])が、当該関数情報記憶部13jに記憶された内容と一致していなければ(ステップK2、NO)、RPCゲートウェイ10は、アプリケーション20aにエラーを返して(ステップK3)、終了する。
また、RPCゲートウェイ10は、新規関数情報登録通知処理(J1〜J5)により得られた関数情報記憶部13jを用いることで下記に示すように被制御機器30による実行結果に誤りがあるか否かについてチェックする処理を追加実行できる。
図10は、上記ステップP11の代わりにRPCゲートウェイ10が実行するフォーマット確認処理(P11−1)を示したフローチャートである。
まず、RPCゲートウェイ10を駆動して確認処理プログラム13fを起動させる。するとステップP10において、遠隔制御させた被制御機器30によって得られた実行結果を受信した場合(ステップP10、YES)、RPCゲートウェイ10は、CPU11を制御結果判定手段として用いて、当該実行結果が関数情報記憶部13jに記憶された情報(受信すべき被制御機器30による実行結果のデータ型)と一致するか否かを確認する(ステップP11−1)。具体的には、実行結果の内容が“True”、“False”、データ列であるか、または文字列ではないか等のチェックが行われる。
ここで、実行結果の内容が“True”、“False”やデータ列であれば一致し、それ以外であれば、不一致とする。
実行結果の内容が関数情報記憶部13jに記憶された前記データ型と一致するのであれば(P11−1、YES)、RPCゲートウェイ10は、ステップP12へ移行し、被制御機器30からの実行結果を遠隔制御したアプリケーション20へ転送する。
これに対して、実行結果の内容が関数情報記憶部13jに記憶されたデータ型と一致しなければ(P11−1、NO)、RPCゲートウェイ10は、アプリケーション20aへエラーを返して終了する(P7)。
したがって、上記構成のRPCゲートウェイ10によれば、被制御機器30の動作を制御するために必要な関数情報(関数名、引数[データを含む]、受信すべき被制御機器30による実行結果のデータ型)を記憶する関数情報記憶部13jを備える。そしてRPCゲートウェイ10に新たな被制御機器30が追加され、追加された当該被制御機器30が、それまで接続されていた被制御機器30とは異なる新たな関数で動作する場合には、当該新たな関数を関数情報記憶部13jに追加・記憶させる。この新たに関数情報記憶部13jに追加・記憶された関数を、アプリケーション20へ通知する。
これによれば、RPCゲートウェイ10の被制御機器接続部15に新たに被制御機器30を接続するだけで新たな関数で動作する被制御機器30を容易に制御することが可能となる。
更に、上述した構成のRPCゲートウェイ10であれば、アプリケーション20からのRPC遠隔制御信号の内容、及び被制御機器30からの結果を、関数情報記憶部13jに記憶された内容と一致するかについてチェックする。
これによれば、新たに接続された被制御機器30によって実行可能な関数情報が関数情報記憶部13jに記憶された内容と一致していない場合には、例えばアプリケーション20側にバグが発生していることや、被制御機器30が旧バージョンであること等を突き止めることができる。
[ログ記憶処理]
次に、図11を用いて説明する。
図11は、前記RPCゲートウェイ10によるログ記憶処理を示すフローチャートである。
以下に説明するログ記憶処理は、例えば機器制御処理(ステップS1〜S11)を実行している最中に処理され、処理された内容はログ記憶部13kに随時記憶される。
すなわち、ログ記憶処理によって申請信号を出力したアプリケーション20や、被制御機器30を遠隔制御させる関数情報、その実行結果、などがログ記憶部13kに記憶されることになる。
RPCゲートウェイ10を駆動してログ記憶処理プログラム13gを起動させる。すると、RPCゲートウェイ10は、前記ステップS1にてアプリケーション20から受信したRPC遠隔制御信号に基づき、当該「RPC遠隔制御信号を送信したアプリケーション20の情報」、「制御対象とした被制御機器30の情報」、「被制御機器30に指示した関数情報」、「被制御機器30が前記関数を実行した時刻情報」、及び「関数を実行したことで得られた結果情報」などをログ記憶部13kに記憶する(ステップM1)。
その後、RPCゲートウェイ10は、アプリケーション20からログ記憶部13kに記憶したログ情報を提供する旨の要求を受信すると(ステップM2、YES)、当該ログ記憶部13kに記憶・蓄積したログ記憶を当該アプリケーション20に出力する(ステップM4)。
更に、アプリケーション20からログを提供する旨の要求がなかったとしても(ステップM2、NO)、一定期間Tが経過すると、RPCゲートウェイ10は、前記ログ記憶部13kに記憶・蓄積したログ記憶を当該アプリケーション20に出力する(ステップM4)。
したがって、前記構成のRPCゲートウェイ10によれば、随時ログ記憶処理を実行することで、ログ記憶部13kに「RPC遠隔制御信号を送信したアプリケーション20の情報」、「制御対象とした被制御機器30の情報」、「被制御機器30に指示した関数情報」、「被制御機器30が前記関数を実行した時刻情報」、及び「関数を実行したことで得られた結果情報」などが記憶される。
これによれば、仮に遠隔制御をした結果、制御対象である被制御機器30からエラーが返ってきた場合であっても、そのエラーがどのアプリケーション20からの指示だったのか、どんな関数によってエラーが発生したのか等、機器制御システム1に不具合が発生した際の有効な証拠となる。
なお、前記機器制御システム1では、通常HTTP(Hyper Text Transfer Protocol)を用いてアプリケーション20をRPCゲートウェイ10に接続する。この場合、例えばアプリケーション20をAPI(ApplicationProgramming Interface)経由でRPCゲートウェイ10と接続させる。
これに対して、被制御機器30を、例えばMQTT(MQ Telemetry Transport)を用いてRPCゲートウェイ10と接続させることもできる。
このように、RPCゲートウェイ10ではアプリケーション20と被制御機器30とで使用する通信プロトコルが異なることから、自身(RPCゲートウェイ10)にプロトコル変換機能を有するプログラム(以下、プロトコル変換機能プログラムと呼ぶ)を備えていても良い。
この場合、プロトコル変換機能プログラムは、記憶装置13内に記憶されることになる。
なお、MQTTを用いた接続である場合、RPCゲートウェイ10は、どのアプリケーション20からの遠隔制御によって被制御機器30によりなされた結果なのかを把握できない。このため、被制御機器30は、結果の他、送信先のアプリケーション20(20a〜20c)の識別子等を送信する必要がある。
またなお、RPCゲートウェイ10がアプリケーション20から受信し、被制御機器30に中継して送信するRPC遠隔制御信号のフォーマットは、例えばJSON(JavaScriptObject Notation)(登録商標)形式で記述された構造であってもよいし、被制御機器30が認識できるプログラムファイルや設定ファイル、バイナリデータであってもよい。
この場合、アプリケーション20から送信されるプログラムファイルや設定ファイル、バイナリデータは、被制御機器30毎に異なってもよい。
また、例えば被制御機器30にてカメラ機能を備えていた場合、RPCゲートウェイ10は、当該被制御機器30からのカメラ画像や動画などをアプリケーション20へ送信する構成であってもよい。
本発明の装置は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体(または記憶媒体)に記録することも、ネットワークを通して提供することも可能である。
また、以上の各装置及びそれらの装置部分は、それぞれハードウェア構成、またはハードウェア資源とソフトウェアとの組み合せ構成のいずれでも実施可能となっている。組み合せ構成のソフトウェアとしては、予めネットワークまたはコンピュータ読み取り可能な記録媒体(または記憶媒体)からコンピュータにインストールされ、当該コンピュータのプロセッサに実行されることにより、各装置の機能を当該コンピュータに実現させるためのプログラムが用いられる。
本発明は、上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
(付記)
上記各実施形態の一部または全部は、特許請求の範囲のほか以下の付記に示すように記載することも可能であるが、これに限られない。
[C1]
複数の被制御機器(30)の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器(30)のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶するアプリケーション別制御権限情報記憶部(13)と、
前記複数の被制御機器(30)の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する制御権限判定手段(11)と、
前記制御権限判定手段により、前記第1アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与する制御権限付与手段(11)と、
前記制御権限付与手段により前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する制御権限禁止手段(11)と、
前記制御権限が付与された前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する転送手段(11)と、
を備える機器制御装置(10)。
[C2]
前記制御権限判定手段(11)により、前記第1アプリケーションが指定する前記被制御機器に対する制御権限が前記第1アプリケーションを除いた前記複数のアプリケーションにより取得された結果、前記第1アプリケーションが前記被制御機器に対する遠隔制御の制御権限を取得できないと判定された場合に、エラー処理を行うエラー処理手段(11)、
を更に備える[C1]に記載の機器制御装置。
[C3]
前記被制御機器の接続情報を記憶する被制御機器情報記憶部(13)を、更に備え、
前記制御権限判定手段(11)は、
前記被制御機器情報記憶部(13)に記憶された被制御機器の接続情報に基づいて、前記第1アプリケーションからの前記申請信号により制御権限が申請された複数の被制御機器が接続されていることを確認する接続確認手段(11)と、
前記第1アプリケーションからの前記申請信号により申請された複数の被制御機器に対する制御権限が、前記第1アプリケーションを除いた前記複数のアプリケーションに付与されているか否かを判定する権限付与判定手段(11)と、
を有し、
前記接続確認手段(11)により、前記複数の被制御機器の接続が確認され、かつ前記権限付与判定手段により申請された複数の被制御機器に対する制御権限が前記第1アプリケーションを除いた前記複数のアプリケーションに付与されていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与する、[C1]又は[C2]に記載の機器制御装置。
[C4]
アプリケーション別に制御権限を取得可能な被制御機器のリストを出力する第1のリスト出力手段(11)を、更に備え、
前記第1のリスト出力手段は、
前記複数のアプリケーションのうち少なくとも1つのアプリケーションから、当該アプリケーションが前記制御権限を取得可能な前記複数の被制御機器のリストの出力を要求する第1のリスト要求信号が送信された場合に、当該第1のリスト要求信号を受信する手段と、
前記第1のリスト要求信号が受信された場合に、前記アプリケーション別制御権限情報記憶部(13)に記憶されたアプリケーション別制御権限情報に基づいて、前記制御権限の取得がなされていない前記被制御機器のリストを、前記第1のリスト要求信号の送信元となるアプリケーションに出力するリスト出力手段
を有する[C1]乃至[C3]いずれかの一項に記載の機器制御装置。
[C5]
現時点でのアプリケーション別に制御権限を取得している被制御機器のリストを出力する第2のリスト出力手段を、さらに備え、
前記第2のリスト出力手段は、
前記複数のアプリケーションのうち少なくとも1つのアプリケーションから、当該アプリケーションが現時点で前記制御権限を取得している前記複数の被制御機器のリストの出力を要求する第2のリスト要求信号が送信された場合に、当該第2のリスト要求信号を受信する手段と、
前記第2のリスト要求信号が受信された場合に、前記アプリケーション別制御権限情報記憶部(13)に記憶された情報に基づき、前記第2のリスト要求信号の送信元となるアプリケーションが現時点で制御権限を取得している前記複数の被制御機器のリストを出力する手段と
を有する[C1]乃至[C3]いずれかの一項に記載の機器制御装置。
[C6]
前記複数の被制御機器の各々を遠隔制御対象として実行可能な関数、この関数に必要な引数、及び前記関数により遠隔制御を実行した結果のデータ型を記憶した関数情報記憶部(13)と、
前記遠隔制御信号に関数、及びこの関数に必要な引数が含まれている場合に、当該関数および引数が前記関数情報記憶部(13)に記憶された内容と一致するか否かを判定する関数情報判定手段と、
前記遠隔制御信号に基づき前記複数の被制御機器に対する遠隔制御を実行して得た前記結果のデータ型が、前記関数情報記憶部(13)に記憶された前記データ型と一致するか否かを判定する制御結果判定手段と、
を更に備える、[C1]乃至[C5]いずれかの一項に記載の機器制御装置。
[C7]
制御部(11)を備えた機器制御装置(10)が実行する機器制御方法であって、
前記制御部(11)により
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶し、
前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
前記第1アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与し、
前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
前記制御権限が付与された前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する、機器制御方法。
[C8]
複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションからの遠隔制御信号を、前記遠隔制御の対象とする前記複数の被制御機器へ中継する機器制御装置(10)を備えた機器制御システム(1)であって、
前記複数のアプリケーションのそれぞれは、
前記複数の被制御機器に対する制御権限の取得を申請する申請手段と、
前記申請手段により前記複数の被制御機器の制御権限を取得した場合、前記複数の被制御機器を遠隔制御する遠隔制御信号を送信する送信手段と、
を備え、
前記機器制御装置(10)は、
前記複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を記憶するアプリケーション別制御権限情報記憶部(13)と、
前記申請手段により前記制御権限を取得する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する制御権限判定手段(11)と、
前記制御権限判定手段により、前記第1アプリケーションを除いた前記複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与する制御権限付与手段(11)と、
前記制御権限付与手段により前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する制御権限禁止手段(11)と、
前記第1アプリケーションに前記制御権限が付与され、その後前記送信手段により前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する転送手段(11)と、
を備え、
前記被制御機器(30)は、
前記機器制御装置から受信した前記遠隔制御信号に基づいて動作する機器制御システム(1)。
[C9]
上記[C1]乃至[C6]の何れかに記載の装置の各手段による処理をコンピュータに実行させるプログラム。
1…機器制御システム、10…RPCゲートウェイ、11…CPU、12…メモリ、
12a…作業エリア、13…記憶装置、13a…機器制御処理プログラム、
13b…更新処理プログラム、13c…被制御機器一覧提供プログラム、
13d…リアルタイム制御機器一覧提供プログラム、
13e…新規関数情報登録通知処理プログラム、13f…確認処理プログラム、
13g…ログ記録処理プログラム、13h…機器識別子対応情報記憶部、
13i…制御権限管理記憶部、13j…関数情報記憶部
13k…ログ記憶部、14…アプリケーション接続部、
15…被制御機器接続部、16…システムバス、
20、20a〜20c…アプリケーション、
30、30a〜30e…被制御機器。

Claims (9)

  1. プロセッサと、当該プロセッサに接続されたメモリとを備える、機器制御装置であって、
    前記プロセッサが、
    複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
    前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
    前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与し、
    前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
    前記制御権限が付与された前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する、
    ように構成された、機器制御装置。
  2. 前記プロセッサがさらに、前記第1アプリケーションが指定する前記被制御機器に対する制御権限が前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかにより取得された結果、前記第1アプリケーションが前記被制御機器に対する遠隔制御の制御権限を取得できないと判定された場合に、前記第1アプリケーションに対して制御権限の取得を失敗した旨を返答するように構成された、
    請求項1に記載の機器制御装置。
  3. 前記プロセッサがさらに、
    前記被制御機器の接続情報を前記メモリに記憶させ、
    前記メモリに記憶された被制御機器の接続情報に基づいて、前記第1アプリケーションからの前記申請信号により制御権限が申請された複数の被制御機器が接続されていることを確認し、
    前記第1アプリケーションからの前記申請信号により申請された複数の被制御機器に対する制御権限が、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかに付与されているか否かを判定し、
    前記複数の被制御機器の接続が確認され、かつ前記申請信号により申請された複数の被制御機器に対する制御権限が前記第1アプリケーションを除いた前記複数のアプリケーションのいずれにも付与されていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与するように構成された、請求項1に記載の機器制御装置。
  4. 前記プロセッサがさらに、
    前記複数のアプリケーションのうち少なくとも1つのアプリケーションから、当該アプリケーションが前記制御権限を取得可能な前記複数の被制御機器のリストの出力を要求する第1のリスト要求信号が送信された場合に、当該第1のリスト要求信号を受信し、
    前記第1のリスト要求信号が受信された場合に、前記メモリに記憶されたアプリケーション別制御権限情報に基づいて、前記制御権限の取得がなされていない前記被制御機器のリストを、前記第1のリスト要求信号の送信元となるアプリケーションに出力する
    ように構成された、請求項1に記載の機器制御装置。
  5. 前記プロセッサがさらに、
    前記複数のアプリケーションのうち少なくとも1つのアプリケーションから、当該アプリケーションが現時点で前記制御権限を取得している前記複数の被制御機器のリストの出力を要求する第2のリスト要求信号が送信された場合に、当該第2のリスト要求信号を受信し、
    前記第2のリスト要求信号が受信された場合に、前記メモリに記憶された情報に基づき、前記第2のリスト要求信号の送信元となるアプリケーションが現時点で制御権限を取得している前記複数の被制御機器のリストを出力する
    ように構成された、請求項1に記載の機器制御装置。
  6. 前記プロセッサがさらに、
    前記複数の被制御機器の各々を遠隔制御対象として実行可能な関数、この関数に必要な引数、及び前記関数により遠隔制御を実行した結果のデータ型を前記メモリに記憶させ、
    前記遠隔制御信号に関数、及びこの関数に必要な引数が含まれている場合に、当該関数および引数が前記メモリに記憶された内容と一致するか否かを判定し、
    前記遠隔制御信号に基づき前記複数の被制御機器に対する遠隔制御を実行して得た前記結果のデータ型が、前記メモリに記憶された前記データ型と一致するか否かを判定する、
    ように構成された、請求項1に記載の機器制御装置。
  7. プロセッサと当該プロセッサに接続されたメモリとを備える機器制御装置が実行する機器制御方法であって、
    前記プロセッサが、複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させる過程と、
    前記プロセッサが、前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定する過程と、
    前記プロセッサが、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与する過程と、
    前記プロセッサが、前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止する過程と、
    前記プロセッサが、前記制御権限が付与された前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する過程と
    を備える、機器制御方法。
  8. 複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションを実行可能な少なくとも1つのデバイスからの遠隔制御信号を、前記遠隔制御の対象とする前記複数の被制御機器へ中継する機器制御装置を備えた機器制御システムであって、
    前記複数のアプリケーションのそれぞれは、前記少なくとも1つのデバイスが備えるプロセッサにより、
    前記複数の被制御機器に対する制御権限の取得を申請し、
    前記複数の被制御機器の制御権限を取得した場合、前記複数の被制御機器を遠隔制御する遠隔制御信号を送信する
    ように構成され、
    前記機器制御装置は、プロセッサと当該プロセッサに接続されたメモリとを備え、
    前記機器制御装置が備えるプロセッサは、
    前記複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報を前記メモリに記憶させ、
    前記制御権限を取得する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定し、
    前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与し、
    前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止し、
    前記第1アプリケーションに前記制御権限が付与され、その後前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送する
    ように構成され、
    前記複数の被制御機器のそれぞれは、各々が備えるプロセッサにより、
    前記機器制御装置から受信した前記遠隔制御信号に基づいて動作するように構成された、
    機器制御システム。
  9. 複数の被制御機器の動作をグループで遠隔制御する複数のアプリケーションと、当該複数のアプリケーションによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の有無と、を対応付けたアプリケーション別制御権限情報をメモリに記憶させることと、
    前記複数の被制御機器の制御権限を申請する申請信号を前記複数のアプリケーションに含まれる第1アプリケーションから受信した場合、前記アプリケーション別制御権限情報に基づき、前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する遠隔制御の制御権限の取得の有無を判定することと、
    前記第1アプリケーションを除いた前記複数のアプリケーションのいずれかによる前記複数の被制御機器のそれぞれに対する前記遠隔制御の制御権限の取得がなされていないと判定された場合に、前記第1アプリケーションに対し前記複数の被制御機器の制御権限を付与することと、
    前記第1アプリケーションに対し前記制御権限が付与された場合に、前記第1アプリケーションを除いた前記複数のアプリケーションへの前記複数の被制御機器の制御権限の付与を禁止することと、
    前記制御権限が付与された前記第1アプリケーションから前記複数の被制御機器に対する遠隔制御信号が送信された場合に、当該遠隔制御信号を前記複数の被制御機器のそれぞれへ転送することと
    をプロセッサに実行させるための命令を記憶した非一時的な有形のコンピュータ可読記憶媒体。
JP2020514389A 2018-04-17 2019-04-16 機器制御装置、機器制御方法、及び機器制御システム Active JP7056731B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018079174 2018-04-17
JP2018079174 2018-04-17
PCT/JP2019/016291 WO2019203221A1 (ja) 2018-04-17 2019-04-16 機器制御装置、機器制御方法、及び機器制御システム

Publications (2)

Publication Number Publication Date
JPWO2019203221A1 true JPWO2019203221A1 (ja) 2020-12-10
JP7056731B2 JP7056731B2 (ja) 2022-04-19

Family

ID=68239162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020514389A Active JP7056731B2 (ja) 2018-04-17 2019-04-16 機器制御装置、機器制御方法、及び機器制御システム

Country Status (5)

Country Link
US (1) US11269701B2 (ja)
EP (1) EP3783497B1 (ja)
JP (1) JP7056731B2 (ja)
CN (1) CN112055851B (ja)
WO (1) WO2019203221A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049799B (zh) * 2019-11-13 2022-01-21 华为终端有限公司 控制方法、装置和系统
US11537705B2 (en) * 2020-10-27 2022-12-27 Dell Products L.P. Device access control system
CN113454969B (zh) * 2020-12-31 2023-09-19 商汤国际私人有限公司 信息交互方法和装置、设备、系统及存储介质
WO2022144609A1 (en) * 2020-12-31 2022-07-07 Sensetime International Pte. Ltd. Information interaction methods, apparatuses, devices, and systems and storage media

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003023676A (ja) * 2001-07-10 2003-01-24 Hitachi Ltd 遠隔操作システム
JP2003116181A (ja) * 2001-10-05 2003-04-18 Nec Corp 遠隔制御システム、制御サーバ、遠隔制御プログラム
JP2014041591A (ja) * 2012-07-25 2014-03-06 Ricoh Co Ltd 機器管理装置、機器管理システムおよびプログラム
JP2016134757A (ja) * 2015-01-19 2016-07-25 シャープ株式会社 制御装置、制御装置の制御方法、制御システム、および制御プログラム
WO2017169144A1 (ja) * 2016-03-31 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2017216641A (ja) * 2016-06-01 2017-12-07 Kddi株式会社 制御指示判定装置及び制御指示判定プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250852A (ja) * 1999-03-03 2000-09-14 Fuji Xerox Co Ltd バス調停装置、バスシステムおよびバス調停方法
US20010042139A1 (en) * 2000-03-31 2001-11-15 Aprisma Management Technologies Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state
EP2579608B1 (en) * 2011-10-07 2019-06-19 Nokia Solutions and Networks Oy Conflict processing accessing a personal TV functionality by a plurality of users
KR20140012505A (ko) * 2012-07-20 2014-02-03 삼성전자주식회사 콘텐트를 공유하는 디바이스 및 방법
GB2518256A (en) * 2013-09-13 2015-03-18 Vodafone Ip Licensing Ltd Communicating with a machine to machine device
CN106462694A (zh) * 2014-05-29 2017-02-22 三菱电机株式会社 仪器控制系统、仪器控制装置、仪器控制方法以及程序
CN105025027A (zh) * 2015-07-27 2015-11-04 浪潮(北京)电子信息产业有限公司 一种多控存储系统的rpc安全认证方法
JP6277494B2 (ja) * 2015-07-29 2018-02-14 パナソニックIpマネジメント株式会社 アプリケーション制御システム及びアプリケーション制御方法
CN105243318B (zh) * 2015-08-28 2020-07-31 小米科技有限责任公司 确定用户设备控制权限的方法、装置及终端设备
CN106648440B (zh) * 2015-10-28 2020-07-24 华为技术有限公司 操作存储设备的控制方法和存储设备
WO2018015785A1 (en) * 2016-07-18 2018-01-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for network gateway disaggregation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003023676A (ja) * 2001-07-10 2003-01-24 Hitachi Ltd 遠隔操作システム
JP2003116181A (ja) * 2001-10-05 2003-04-18 Nec Corp 遠隔制御システム、制御サーバ、遠隔制御プログラム
JP2014041591A (ja) * 2012-07-25 2014-03-06 Ricoh Co Ltd 機器管理装置、機器管理システムおよびプログラム
JP2016134757A (ja) * 2015-01-19 2016-07-25 シャープ株式会社 制御装置、制御装置の制御方法、制御システム、および制御プログラム
WO2017169144A1 (ja) * 2016-03-31 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP2017216641A (ja) * 2016-06-01 2017-12-07 Kddi株式会社 制御指示判定装置及び制御指示判定プログラム

Also Published As

Publication number Publication date
CN112055851B (zh) 2024-05-07
CN112055851A (zh) 2020-12-08
EP3783497B1 (en) 2023-05-24
EP3783497A1 (en) 2021-02-24
EP3783497A4 (en) 2022-01-05
JP7056731B2 (ja) 2022-04-19
US20210165701A1 (en) 2021-06-03
US11269701B2 (en) 2022-03-08
WO2019203221A1 (ja) 2019-10-24

Similar Documents

Publication Publication Date Title
JP7056731B2 (ja) 機器制御装置、機器制御方法、及び機器制御システム
US9146731B2 (en) Information processing apparatus, relay server, information relay method, non-transitory computer-readable medium storing information relay program, and communication system
US20100036913A1 (en) Network setting method and network setting apparatus
US20180184472A1 (en) Communication apparatus, communication system, and communication control method
EP2075975B1 (en) Relay server and relay communication system
CN110532077A (zh) 任务处理方法、装置及存储介质
JP2019144901A (ja) 書き換え装置、書き換えシステム、書き換え方法及び制御プログラム
KR20140047230A (ko) 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
JP2022175989A (ja) ジョブ実行システム及びジョブ実行方法
JP2009230476A (ja) メッセージを処理する装置、方法およびプログラム
JP6302313B2 (ja) 画像通信装置とその制御方法、及びプログラム
JP6766501B2 (ja) 情報移行システム、情報処理装置、および、プログラム
JP5312776B2 (ja) ネットワークシステム及び更新情報の共有方法
JP6631343B2 (ja) ファームウェア更新システム、クラウドシステム、および情報処理装置
JP6942578B2 (ja) 管理システム、及び制御方法
US8443061B2 (en) Data transmission method and communication control apparatus
JP6415155B2 (ja) サーバシステム、方法、およびそのプログラム
JP2008301457A (ja) 中継サーバ及び中継通信システム
JP6565662B2 (ja) 権限管理装置及びプログラム
KR101668098B1 (ko) 플러그인이 불필요한 원격 지점 접근방법
WO2022168192A1 (ja) データ移行装置、データ移行方法、及び、データ移行プログラム
JP2002073394A (ja) 遠隔復旧機能付データ転送システム
JP2007072654A (ja) サービス検索装置及びサービス検索システム
JP5857603B2 (ja) 中継サーバ
JP2017068415A (ja) システム、及び、システムの制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211028

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220121

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: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220321

R150 Certificate of patent or registration of utility model

Ref document number: 7056731

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150