JP2007199869A - デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構 - Google Patents

デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構 Download PDF

Info

Publication number
JP2007199869A
JP2007199869A JP2006015675A JP2006015675A JP2007199869A JP 2007199869 A JP2007199869 A JP 2007199869A JP 2006015675 A JP2006015675 A JP 2006015675A JP 2006015675 A JP2006015675 A JP 2006015675A JP 2007199869 A JP2007199869 A JP 2007199869A
Authority
JP
Japan
Prior art keywords
program
automatic
devices
cooperation mechanism
communication
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.)
Pending
Application number
JP2006015675A
Other languages
English (en)
Inventor
Nobuo Kawaguchi
信夫 河口
Yohei Iwasaki
陽平 岩崎
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.)
Nagoya University NUC
Original Assignee
Nagoya University NUC
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 Nagoya University NUC filed Critical Nagoya University NUC
Priority to JP2006015675A priority Critical patent/JP2007199869A/ja
Publication of JP2007199869A publication Critical patent/JP2007199869A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】複数のデバイスが協働して動作するデバイス連携機構における各デバイスごとのプログラムを自動分散化して作成するプログラムまたはその装置を提供する。
【解決手段】デバイス連携機構12に対する一連のプログラムは、解析され、複数のデバイス30、32、34のいずれかが実行可能な機能ごとに分割され、分割されたプログラムは、分割された動作を実行可能な機能を有するデバイス30、32、34に割り当てられる。そして、各デバイス30、32、34間にデータの送受信が必要かどうかが判定され、必要な場合はそのデバイス30、32、34間の通信を実行させるための通信手順が決定される。以上の結果に基づいて、各デバイス30、32、34が動作するためのデバイスプログラムが生成されので、前記一連のプログラムから、各デバイス30、32、34が動作するためのデバイスプログラムを自動的に生成することができる。
【選択図】図2

Description

本発明は、複数のデバイスが通信回線を通して接続されたネットワーク環境下において、前記複数のデバイスの協働で成り立つ一連の動作を実行させるための一連のプログラムを各デバイスに連携して実行させるために分割する、コンピュータが実行可能なデバイス連携機構の自動分散化プログラムおよび装置に関するものである。更には、当該自動分散化プログラム装置を備えたり、または当該自動分散化プログラムを用いることができるデバイス連携機構に関する。
通信機能を搭載した低コストな端末が開発されつつあり、それらを搭載したセンサ、家電機器、文房具等のさまざまな小型機器が通信回線に参加することが期待されている(たとえば特許文献1参照)。
このように複数の端末が通信回線を通して協働して一連の動作を行う場合、前記複数の端末が協働するために、制御ノードと呼ばれる機器がこれらの端末を制御することにより端末間の連携動作を可能とする遠隔メソッド呼び出し(RPC)型と呼ばれる方式が提案されている。
この方式においては、各端末は端末固有の機能を実行し、その結果をすべて制御ノードに渡せばよく、端末間の連携動作に必要となる情報については、制御ノードが適宜各端末から受け取った情報から取捨選択を行って、当該情報を必要とする端末に渡すことで実現される。すなわち、前記遠隔メソッド呼び出し型においては、すべての端末は制御ノードによって動作が制御されており、各端末間の通信も直接端末間で行うことはできず、制御ノードを介して行わなければならなかった。したがって、各端末が動作をする間は常に制御ノードが存在していなければならないという問題が生じていた。
これに対し、上記の問題を解決する方法として、各端末間が直接通信を行う方式であるピアツーピア型と呼ばれる方式が提案されている。この方式においては、各端末に、その端末固有の機能に加え、予め定められた端末間の連携のための機能をもたせることにより、端末間の直接通信による連携動作が可能となる。この方式によれば、各端末が他の端末と直接通信を行うため、連携動作時には制御ノードが不要となり前述の遠隔メソッド呼び出し型における問題が解消され、また、前記通信は各端末間で必要となる内容の通信のみを行えばよいため、必要最小限の通信手順による通信で済むという利点がある。
しかしながら、前記ピアツーピア方式においては、一の連携動作に関するプログラムがその連携動作を実行するすべての端末に分散して存在するため、連携機構の保守や開発は各端末ごとにプログラムを保守・開発しなければならず、手順が煩雑となる。また、一旦動作を開始した連携機構に対し、その動作中に新たな連携機構を追加・変更すること、いわゆる動的な追加・変更を行うことは困難である。
特開2005−20522号公報
本発明は、以上の事情を背景として為されたものであり、その目的とするところは、複数のデバイスが通信回線を通して接続されたネットワーク環境下において、前記複数のデバイスの協働で成り立つ一連の動作を実行させるための一連のプログラムを各デバイスに連携して実行させるために分割する、コンピュータが実行可能なデバイス連携機構の自動分散化プログラムおよび装置を提供するところにある。更には、当該自動分散化プログラム装置を備えたり、または当該自動分散化プログラムを用いることができるデバイス連携機構を提供することにある。
かかる目的を達成するために、請求項1に係る発明の要旨とするところは、複数のデバイスがネットワークで接続された環境下において、前記複数のデバイスの協働で成り立つ一連の動作を実行させるために記述された一連のプログラムを、各デバイスが持つ機能に関する情報を用いて、該デバイス間が連携できるよう、各デバイス上で実行可能なプログラムに自動的に分割可能な、デバイス連携機構の自動分散化プログラムであって、(a)前記一連のプログラムを解析し、データの処理や各デバイスの制御について分割可能なプログラム機能毎に、一連のプログラムを分割するプログラム分割手段と、(b)前記分割されたプログラムを、各デバイスが持つデバイス機能に関する情報を用いて、各デバイス毎に実行可能な分割されたプログラムを割り当てるプログラム割り当て手段と、(c)前記プログラム分割手段の結果に基づき、前記分割されたプログラムが実行されるデバイス間で、どのようなデータの送受信が必要かを解析し、該デバイス間の通信を実行するための通信手順を決定する通信手順決定手段と、(d)前記プログラム分割手段による一連のプログラムの分割、前記プログラム割り当て手段によるプログラムの各デバイス毎の割り当て、及び前記通信手順決定手段による通信手順の決定の結果に基づいて、各デバイスを連携動作させるためのデバイスプログラムを生成するデバイスプログラム生成手段を含むことを特徴とするものである。
また、請求項2に係る発明は、複数のデバイスがネットワークで接続された環境下において、前記複数のデバイスの協働で成り立つ一連の動作を実行させるために記述された一連のプログラムを、各デバイスが持つ機能に関する情報を用いて、該デバイス間が連携できるよう、各デバイス上で実行可能なプログラムに自動的に分割可能な、デバイス連携機構の自動分散化装置であって、(a)前記一連のプログラムを解析し、データの処理や各デバイスの制御について分割可能なプログラム機能毎に、一連のプログラムを分割するプログラム分割手段と、(b)前記分割されたプログラムを、各デバイスが持つデバイス機能に関する情報を用いて、各デバイス毎に実行可能な分割されたプログラムを割り当てるプログラム割り当て手段と、(c)前記プログラム分割手段の結果に基づき、前記分割されたプログラムが実行されるデバイス間で、どのようなデータの送受信が必要かを解析し、該デバイス間の通信を実行するための通信手順を決定する通信手順決定手段と、(d)前記プログラム分割手段による一連のプログラムの分割、前記プログラム割り当て手段によるプログラムの各デバイス毎の割り当て、及び前記通信手順決定手段による通信手順の決定の結果に基づいて、各デバイスを連携動作させるためのデバイスプログラムを生成するデバイスプログラム生成手段
を含むことを特徴とするデバイス連携機構の自動分散化装置。
また、好適には、前記デバイス連携機構の自動分散化プログラムまたは前記デバイス連携機構のプログラム自動分散化装置は、前記デバイスが動作中においては、前記デバイスプログラム生成手段が生成したデバイスプログラムに対して前記デバイスの実行状態を反映させる実行状態反映手段を含むことを特徴とする。
また、好適には、前記プログラム分割手段は、指定された指標に応じて行う最適化の結果に基づいて、すなわち、該指標を最適化することを目的としつつプログラムを分割することを特徴とする。
また、好適には、前記通信手段決定手段は、デバイス連携機構を構成する各デバイス間における通信において、デバイスの認証やデータの暗号化によるセキュリティを考慮して通信手段を決定することを特徴とする。
また、好適には、前記デバイス連携機構の自動分散化プログラムまたは前記デバイス連携機構のプログラム自動分散化装置は、前記デバイスプログラム生成手段または実行状態反映手段が生成したプログラムを前記デバイスに対し書き込み可能とするデバイスプログラム更新手段を含むことを特徴とする。
また、好適には、前記デバイスプログラム更新手段は、前記デバイスが動作中であっても、前記デバイスプログラム生成手段が生成したプログラムを前記デバイスに対して書き込み可能であることを特徴とする。
また、好適には、前記デバイス連携機構の自動分散化プログラムまたは前記デバイス連携機構のプログラム自動分散化装置は、前記デバイスプログラム更新手段により前記デバイスに前記デバイスプログラムが書き込まれた後は、新たなデバイスの連携が設定されるまで用いられないことを特徴とする。
また、請求項15に係る発明は、請求項1、3、5、7、9、11または13に記載のデバイス連携機構の自動分散化プログラム、または請求項2、4、6、8、10、12または14に記載のプログラム自動分散化装置が用いられるデバイス連携機構である。
請求項1に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項2に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記一連のプログラムは、解析され、データの処理や各デバイスの制御について分割可能なプログラム機能毎に分割され、各デバイスが持つデバイス機能に関する情報を用いて、各デバイス毎に実行可能な分割され、また、前記分割されたプログラムが実行されるデバイス間で、どのようなデータの送受信が必要かを解析し、該デバイス間の通信を実行するための通信手順が決定される。そして、前記プログラムの分割、前記プログラムの各デバイス毎の割り当て、及び前記通信手順決定手段による通信手順の決定の結果に基づいて、各デバイスを連携動作させるためのデバイスプログラムが生成される。
請求項3に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項4に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記デバイスが動作中においては、前記デバイスプログラム生成手段の実行直前の前記デバイスの実行状態を反映したデバイスプログラムを生成することができるので、前記デバイスの実行中であっても、好適に、前記一連のプログラムから、各デバイスが動作するためのデバイスプログラムを生成することができ、連携構成を変更する直前のデバイスの状態を反映した連携構成の変更が可能となる。
請求項5に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項6に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記プログラム分割手段は、指定されたパラメータに応じて行う最適化の結果に基づいてプログラムを分割することから、前記一連のプログラム中、前記プログラム必須割り当て手段で割り当てられなかったプログラム部分、を前記指定されたパラメータに関して最適となるようにに分割し、各デバイスに実行させることができる。
請求項7に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項8に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記通信手順決定手段はデバイス間の認証やデータの暗号化によるセキュリティを考慮して通信手段を決定することから、各デバイス間の通信を安全に行うことができる。
請求項9に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項10に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記デバイスプログラム生成手段が生成したデバイスプログラムを前記デバイスに対し書き込むこと、すなわちインストールができるので、生成された各デバイスが動作するためのデバイスプログラムを対応するデバイスに書き込むことができ、好適に連携構成を変更することができる。
請求項11に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項12に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記デバイスが動作中であっても、前記デバイスプログラム生成手段が生成したデバイスプログラムを前記デバイスに対して書き込み可能であるので、前記デバイスが動作中であっても、生成された各デバイスが動作するためのデバイスプログラムを対応するデバイスに書き込むことができ、好適に連携構成を変更することができる。
請求項13に係る発明のデバイス連携機構の自動分散化プログラム、あるいは請求項14に係る発明のデバイス連携機構のプログラム自動分散化装置によれば、前記自動分散化プログラムあるいは前記プログラムの自動分散化装置は、前記デバイスプログラム更新手段により前記デバイスに前記デバイスプログラムが書き込まれた後は、新たなデバイスの連携が設定されるまで用いられないので、前記デバイス連携機構の自動分散化プログラムが実行されるコンピュータあるいは前記デバイス連携機構のプログラム分散化装置は前記デバイスの動作中は必要とされず、各デバイスは単独で動作を行うことができる。
請求項15に係る発明のデバイス連携機構によれば、前記デバイス連携機構においては、デバイス連携機構の自動分散化プログラムまたはプログラムの自動分散化装置が適用されているので、一連の動作を実行させるために記述された一連のプログラムを分散させ、各デバイスに連携して実行させることができる。
以下、本発明の好適な実施の形態について図面を参照しつつ詳細に説明する。
図1(a)は、本発明の一実施例のデバイス連携機構の自動分散化プログラム(以下、「自動分散化プログラム」と称する。)50を実行するコンピュータ10とデバイス30、32、34から成る機器の構成の一例を表す図である。なお、このコンピュータ10はプログラムの自動分散化装置に対応する。デバイス30、32、及び34は本実施例におけるデバイス連携機構12を構成するものであり、デバイス30は光・温度センサとして機能し、デバイス32はスピーカとして機能し、デバイス34は液晶表示器として機能する。また、コンピュータ10では自動分散化プログラム50が実行される。本図の様な、センサの情報に基づき他の機器が連動することを目的としてセンサおよび他の機器が配設されたネットワークは、センサネットワークと呼ばれる、一種のピアツーピア型のネットワークである。
図1(b)は、デバイス30、32および34の構成の例を表した図である。デバイス30、32、および34は、たとえば無線通信機能を有する8ビットマイコン24と各デバイス固有の機能を実現するための装置22からなる。ここで、デバイス固有の機能を実現するための装置とは、デバイス30では光センサおよび温度センサであり、デバイス32ではスピーカであり、デバイス34では液晶表示器である。また、これらのデバイスは電池などを用いて駆動することが可能であり、携帯性や取付が簡易であるという特徴を有する。
前記無線通信機能とは、たとえばマイコン24に内蔵された無線通信部14によって実現され、各デバイス30、32、および34が連携動作を行うために必要となる各デバイス間の通信や、自動分散化プログラム50が実行されるコンピュータ10により各デバイス30、32、および34に搭載されたマイコン24の動作のためのデバイスプログラムが書き込まれる際の通信に用いられるものである。この無線通信は、たとえば特定小電力無線のような簡易な方法により行われる。
また、各デバイスに搭載されたマイコン24は、たとえば8ビットのCPU18及び4キロバイトのメモリ20を使用した、いわゆる低レベルのコンピュータであり、これらのマイコンにOS(Operating Sytem)は搭載されていなくてもよい。
また、各デバイス30、32および34に搭載されたマイコン24には、メモリ20に、上記無線通信機能によりデバイスの外部から供給されたデータを書き加えたり、あるいはそのデータに書き換えたりする機能が含まれており、また、メモリ20の内容を上記無線通信機能により外部に提供する機能が含まれている。
コンピュータ10では、自動分散化プログラム50が実行されており、上述のような、各デバイス30、32、34に搭載されたマイコン24の動作のためのデバイスプログラムが書き込まれる際の各デバイス30、32、および、34との通信に用いられる通信を行うための無線通信装置10aを有している。
自動分散化プログラム50を実行させるにあたり、自動分散化プログラム50は、対象となるデバイス連携機構12の構成、すなわち、デバイス連携機構12がどのようなデバイスによって構成されているかや、前記デバイス連携機構12を構成する各デバイスがどのような機能を有しているかすなわち、これら各デバイスが単独でどのような動作をなし得るかについての情報を事前情報として有している。また、前記デバイス連携機構12を構成する各デバイスの有する機能を組み合わせて実行することによって実現できる機能や、その機能はどのデバイスとどのデバイスが連携することによって実現されるかについての情報(「デバイス連携情報」と称する。)も有している。
図2は、コンピュータ10およびそれによって実行される自動分散化プログラム50の機能を表した機能ブロック線図である。本図において、トランスレータ62は、ユーザによって作成され自動分散化プログラム50に入力された、デバイス連携機構12に行わせる一連の動作を記述したソース・コードを、自動分散化プログラム50がその内部で後述する処理を行う上で便宜上適した表現である内部表現に変換する。ここで、内部表現とは、たとえば、自動分散化プログラム50の内部で処理される独自のプログラム言語であったり、フローチャートであったりする。
プログラム分割手段52は、トランスレータによって変換されたソース・コードの内部表現によって表現されたデバイス連携機構12に行わせる一連の動作を、複数の動作に分割する。この分割は、自動分散化プログラム50が有する、デバイス連携機構12を構成する各デバイス30、32および34が単独でどのような動作をなし得るかについての予め記憶された情報や上記デバイス連携情報に基づいて、前記一連の動作を構成するデータの処理や各デバイス30、32および34の制御について分割可能なプログラム機能ごとに行われる。また、分割の過程において、複数のデバイスの連携によりなされる動作が生じた場合には、上記デバイス連携情報により、その連携によりなされる動作を各デバイスが単独でなし得る動作となるまで分割する。この結果、上記一連の動作を、各デバイス30、32および34が単独でなし得る動作ごとに分割する。
このとき、前記プログラム分割手段52においては、指定された指標に応じた最適化を行うことを特徴としたプログラムの分割を行うことができる。前記指定された指標には例えば、プログラムサイズや、データ通信量、通信速度、実行速度などが該当する。これら様々な指標を最適化するような、分割手法の最適化が可能になる。
プログラム割り当て手段54は、プログラム分割手段52によって分割された各動作を、デバイス連携機構12を構成するいずれのデバイスによって実行させるかを予め記憶された各デバイスが有するデバイス機能に関する情報に基づいて決定する。たとえば、プログラム分割手段52は、デバイス連携機構12を構成する各デバイスが単独でなし得る動作ごとに分割していることから、その分割された動作は、その動作をなし得る単独のデバイスに割り当てることが可能である。なお、分割された一の動作について、それを実行し得る複数のデバイスが存在する場合、それをいずれのデバイスに割り当てることも可能であるが、たとえば、直前の命令と同じ端末で行うようにすればよい。
通信手順決定手段56は、プログラム分割手段52によって分割された一連の動作がプログラム割り当て手段54によってデバイス連携機構12を構成する各デバイスに割り当てられた結果に基づいて、各デバイス間に通信の必要があるか否かを判断する。また、通信の必要があると判断されたデバイス間については、どのような通信手順(「プロトコル」ともいう。)により通信が行われるかを決定する。このとき、通信の必要があるか否かは、たとえば上記分割された一連の動作を順次実行するにあたり、実行するデバイスが切り替わるごとに当該切り替わる前後のデバイス間において通信の必要があると判断される。また、使用される通信手順の決定には、通信の行われるデバイス間で、どのようなデータが(すなわちデータの内容、量等)、どれくらいの頻度で通信されるのか等が検討され、通信手順が決定される。このとき、デバイス間で通信の対象となるデータは、たとえば、切り替わった後のデバイスがその後使用する可能性のある変数とすることができ、また、通信手順の決定は、たとえば、事前に準備された複数の通信方式の中から上記デバイス間で行われる通信に最も適した通信手順が選択されることによって決定される。
また、上記通信手順決定手段56における通信手順の決定では、デバイス間相互の認証や、通信内容の暗号化など、セキュリティを考慮した通信手段を採用することもできる。例えば、生成されるデバイスプログラム間で共通の暗号化手法に基づく通信手順が決定されることで、低コストで高度なセキュリティを実現できる。
デバイスプログラム生成手段58は、デバイス連携機構12を構成する各デバイスについて、プログラム割り当て手段54によって割り当てられた動作と、通信手順決定手段56によって決定された通信内容および通信手段についての情報に基づいて、各デバイスが実行すべき動作を表すデバイスプログラムを自動分散化プログラム50の内部表現として生成する。たとえば、プログラム割り当て手段54によって割り当てられた動作を表わす内部表現に、通信手順決定手段56によって決定された送信あるいは受信のための内部表現を加えることで生成される。
コンパイラ66は、デバイスプログラム生成手段58によって自動分散化プログラム50の内部表現として生成された、各デバイスが実行すべき動作を表すデバイスプログラムを、その各デバイスに搭載されたマイコン24が実行することのできるバイナリ・コード(「メモリ・イメージ」とも称する)に変換する。
メモリ読み出し手段64は、各デバイス30、32および34のマイコン24中のメモリ20の内容を無線通信機能を通して提供する機能により、各デバイスにそのメモリ20の内容、すなわち各デバイスの実行状態を提供させ、各デバイス30、32および34及びコンピュータ10の有する無線通信機能によりその内容を取り込む。
実行状態反映手段68は、コンパイラ66によって変換されたバイナリ・コードに、メモリ読み出し手段64によりコンピュータ10に取得された各デバイス30、32および34の実行状態を反映させることにより、新たなバイナリ・コードを作成する。コンパイラ66により生成されたバイナリ・コードによれば、これを各デバイス30、32および34において実行する場合、初期状態から開始することとなる一方、この実行状態反映手段86により作成されたバイナリ・コードによれば、メモリ読み出し手段64により読み出された各デバイスの実行状態がバイナリ・コードに反映されており、その状態から開始できる。
デバイスプログラム更新手段60は、コンパイラ66によって変換されたデバイスプログラムのバイナリ・コード又は実行状態反映手段68により作成されたデバイスの実行状態が反映された新たなバイナリ・コードを自動分散化プログラム50の動作するコンピュータ10及び各デバイス30、32および34の有する無線通信機能により各デバイスに送信し、各デバイスの有する、マイコン24中のメモリ20に上記無線通信機能を介してデバイスの外部から供給されたデータを書き加えたりあるいはそのデータに書き換えたりする機能により、各デバイスのマイコン中のメモリの内容をそのバイナリ・コードに書き換える。
図3は、本発明の一実施例の自動分散化プログラム50およびそれが実行されるコンピュータ10の動作を表すフローチャートである。本図において、トランスレータ62に対応するステップ(以下「ステップ」を省略する。)SA1では、まず、ユーザによって作成された複数のデバイスの協働で成り立つ一連の動作を実行させるための一連のプログラムのソース・コードが、トランスレータ62によりそのプログラムにおける内部表現に置き換えて表現される。
本実施例においては、たとえば、図1で表されるデバイス連携機構12に対し、一連の動作として、「表示器に温度を表示し、センサの電源電圧が低くなっていれば表示器に「low battery」と表示する」という動作を行わせる場合を考える。この一連の動作は図4のフローチャートで表される。まずSA1においては、この動作を実行するためのプログラムのソース・コードが、トランスレータにより自動分散化プログラム50において扱うことができる内部表現に置き換えられる。
続いて、プログラム分割手段52に対応するSA2においては、SA1において自動分散化プログラム50の内部表現に置き換えて表現されたソース・コードの内容が、デバイス連携機構を構成するデバイスの有する機能および各デバイスの有する機能を組み合わせて実行可能な機能についての情報を参照しつつ解析される。
すなわち、上記一連の動作が、どのような動作によって構成されているかが解析され分割される。このとき、デバイス30、32、34の有する機能についての情報、すなわちデバイス30は明度および温度を計測する機能を有し、デバイス32は音を鳴らす機能を有し、デバイス34は文字を表示する機能を有するという予め記憶された情報に加え、これらの機能の組み合わせによって実現される機能ついての情報を参照しつつ解析を行う。このとき、たとえば、上記一連の動作が、予め記憶されたプログラムに従って、図4のフローチャートの各ステップの一つ一つに分解するようにして解析される。その結果、上記一連の動作である「表示器に温度を表示し、続いて、センサの電源電圧が低くなっていれば表示器に「low battery」と表示する」という動作は、図4における各ステップからなると解析される。すなわち、SB1は、「温度センサより温度を取得し変数temperatureに代入する」という動作であり、SB2は「表示器に変数temperatureの値を表示する」という動作であり、SB3は「センサの電池より電池電圧を取得し変数batteryVoltageに代入する」という動作であり、SB4は「変数batteryVoltageと事前に定められたしきい値との大小を判定する」という動作であり、SB5はSB4の判断が肯定された場合に「画面に「low battery」と表示する」という動作である。
プログラム割り当て手段54に対応するSA3においては、SA2において分割された各動作が、いずれのデバイス30、32または34によって実行されるかが決定される。すなわち、ソース・コードに含まれる各動作が、デバイス連携機構を構成する各デバイスに割り当てられる。
たとえば、一連の動作に含まれる各動作のうち、「温度センサより温度を取得し変数temperatureに代入する」という動作であるSB1は光・温度センサであるデバイス30に割り当てられ、「表示器に変数temperatureの値を表示する」という動作であるSB2は表示器であるデバイス34に割り当てられ、「センサの電池より電池電圧を取得し変数batteryVoltageに代入する」という動作であるSB3は光・温度センサであるデバイス30に割り当てられ、SB4の判断が肯定された場合に実行される「画面に「low battery」と表示する」という動作であるSB5は、表示器であるデバイス34に割り当てられる。それぞれ、デバイス30及びデバイス34に特有の機能によって実行される動作だからである。一方、「変数batteryVoltageと事前に定められたしきい値との大小を判定する」という動作であるSB4は、光・温度センサであるデバイス30と表示器であるデバイス34のいずれによっても実行し得るが、本実施例においては、このような複数のデバイスが実行可能な動作をどのデバイスが実行するかを決定するにあたっては、直前の動作と同じデバイスで行うことと定めることにより、この動作は、SB4に相当する動作は光・温度センサであるデバイス30に割り当てられることとなる。そして、スピーカであるデバイス32は使用しないことが決定される。
通信手順決定手段56に対応するSA4においては、SA3において各デバイスに各動作が割り当てられた結果に基づいて、各デバイス間に通信の必要があるか否かが判断される。また、通信の必要があると判断されたデバイス間については、どのような通信手順により通信が行われるのかが決定される。
本実施例においては、「温度センサより温度を取得し変数temperatureに代入する」という動作であるSB1から「表示器に変数temperatureの値を表示する」という動作であるSB2へ変数temperatureの値が渡される必要があり、また、SB4は「変数batteryVoltageと事前に定められたしきい値との大小を判定する」という動作の結果、当該判定が肯定された場合にはその結果が、「画面に「low battery」と表示する」という動作であるSB5に渡される必要がある。また、SB2とSB3はそれぞれデバイス34とデバイス30の異なるデバイスによって実行されるが、SB2に続いてSB3が行われるために、SB2が終了した旨がSB3に渡される必要がある。このように、本実施例においては、一連の動作がデバイス30とデバイス34の二つのデバイスに連携して動作される場合、上記の3回の通信が行われる必要がある。また、これらの通信はいずれも1回の通信がデバイス間で行われるのみであるから、このデバイス間の通信手順として、たとえば、単純な通信手順である、単に一のメッセージを受け渡すことのみからなる通信手順を用いることが決定される。
デバイスプログラム作成手段58に対応するSA5においては、デバイス連携機構を構成する各デバイスについて、SA3で割り当てられた動作と、SA4で決定された通信内容および通信手段についての情報に基づいて、各デバイスが実行すべき動作が自動分散化プログラム50の内部表現として表現される。
本実施例においては、光・温度センサであるデバイス30の実行すべき動作は、SB1に相当する「センサより温度を取得し、変数temperatureに代入する」「その変数の内容をデバイス34に送信する」という動作、および、SB3およびSB4に相当する「デバイス34よりSB2が終了した旨を受信し、その後センサの電池電圧を取得し、変数batteryVoltageに代入する。変数batteryVoltageが予め定められたしきい値よりも小さいか判定し、小さい場合はデバイス34にその旨を送信する」という動作となる。また、液晶表示器であるデバイス34の実行すべき動作は、SB2に相当する、「デバイス30より受信したデータを表示器に表示し、その後デバイス30に対し表示が終了した旨を送信する」という動作、および、SB5に相当する「デバイス30より変数batteryVoltageが予め定められたしきい値よりも小さい旨を受信した場合は、表示器に「low battery」と表示する」という動作となる。これらを意味する内部表現を作成する。
図5は、SA5により作成される各デバイスの実行すべき動作の内部表現に相当するフローチャートである。図5左側はデバイス30の動作を表すフローチャート、右側はデバイス34の動作を表すフローチャートである。デバイス30の実行すべき動作は、SC11において、SB1に相当する「センサより温度を取得し、変数temperatureに代入」し、続くSC12において、「その変数の内容をデバイス34に送信」し、一旦終了する。ここで、動作するデバイスがデバイス30からデバイス34に切り替わる。デバイス34の実行すべき動作は、SD11において、「デバイス30より値を受信」し、続くSD12においては、「SD11において受信した値をデバイス34におけるプログラム中の変数temperatureに代入」する。SD13においては、SB2に相当する「変数temperatureの値を表示器に表示」し、SD14において「デバイス30に対し表示が終了した旨を送信する」という動作を行って一旦終了する。再び動作するデバイスはデバイス34からデバイス30に切り替わる。デバイス30は、SC21において、「デバイス34よりSB2が終了した旨を受信」し、SC22において、SB3に相当する「センサの電池電圧を取得し、変数batteryVoltageに代入」する。そして、SC23において、SB4に相当する「変数batteryVoltageが予め定められたしきい値よりも小さいか判定」を行い、小さいと判定された場合は、SC24において、「デバイス34にその旨を送信する」という動作を行い終了する。その後さらに動作するデバイスがデバイス30からデバイス34に切り替わり、デバイス34は、SD21において、「デバイス30からその旨を受信」し、SD22において、「画面に「low battery」と表示し、どの動作を終了する。なお、SC23において、変数batteryVoltageが予め定められたしきい値よりも大きいと判定された場合には、デバイス30の動作はそのまま終了する。従って、デバイス34はSD21〜SD22が実行されることがなく、SD14が実行され一旦終了した後、そのまま終了する。
コンパイラ66に対応するSA6においては、SA5で作成された各デバイス毎の動作を表す内部表現を、各デバイスのマイコンが実行可能な形式であるバイナリ・コードに変換、すなわちコンパイルする。
メモリ読み出し手段64及び実行状態反映手段68に対応するSA7においては、デバイス連携機構12を構成する各デバイスのうち、使用するデバイス30および34のメモリ20の内容を、無線通信機能を通してコンピュータ10に取り込む。そして、そのメモリの内容、すなわちデバイス30およびデバイス34の実行状態を、コンパイラ66によって変換されたバイナリ・コードに反映させることにより新たなバイナリ・コードを作成する。
デバイスプログラム更新手段60に対応するSA8においては、SA7において作成されたデバイスの実行状態が反映されたバイナリ・コードを、無線通信機能により各デバイスに送信し、メモリ20の内容をそのバイナリ・コードに書き換える。以上でフローチャートが終了する。
なお、本発明のプロトタイプとして、無線通信機能を内蔵したワンチップマイコンであるNordic Semiconductor社製nRF24E1 上で、マイコン上のメモリ内容を無線経由で読み書きできるコアプロトコルが既に実現されている。これにより、マイコン上のプログラムコードを無線経由で動的に書き換えることができる。本マイコンを利用した実施例として、センサノード(光センサ、温度センサ)、スピーカノード、液晶パネルノードを製作し、前述の連携動作を実証した。
以上のように、本実施例の自動分散化プログラム50、あるいはプログラムの自動分散化装置として機能するコンピュータ10によれば、デバイス連携機構12に実行させる一連のプログラムは、プログラム分割手段52により解析され、各デバイス30、32または34のいずれかが実行可能な機能に基づいて、データの処理や各デバイスの制御について分割可能なプログラム機能毎に分割され、前記分割されたプログラムは、プログラム割り当て手段54によりデバイス連携機構12を構成するデバイスのうちの分割されたプログラムに相当する動作を実行可能な機能を有するデバイスに割り当てられ、通信手順決定手段56により分割されたプログラムが割り当てられた各デバイス間にデータの送受信が必要かどうかが判定され、必要な場合はそのデバイス間の通信を実行させるための通信手順が決定され、デバイスプログラム生成手段58により前記プログラム分割手段によるプログラムの分割、前記プログラム割り当て手段54によるデバイスの割り当て、及び前記通信手段決定手段56による通信手順の決定の結果に基づいて、各デバイスが動作するためのデバイスプログラムが生成されるので、前記一連のプログラムから、各デバイスが動作するためのデバイスプログラムを生成することができる。このようにすれば、デバイス連携機構12に一連の動作を実行させるためのプログラムをデバイス単位ではなく、複数デバイスをまたがった連携機能単位で記述することができるため、連携動作の開発・保守が容易になる。また、一連の動作を実行させるためのプログラムの分割は、全て静的に行われるため、最適化によりコンパクトなコードを生成できるため、低レベルな実行環境に適している
また、本実施例の自動分散化プログラム50、あるいはプログラムの自動分散化装置として機能するコンピュータ10によれば、各デバイスが動作中においては、前記デバイスプログラム生成手段58の実行直前の前記デバイスの実行状態を反映したデバイスプログラムを生成することができるので、前記デバイスの実行中であっても、好適に、前記一連のプログラムから、各デバイスが動作するためのデバイスプログラムを生成することができ、連携構成を変更する直前のデバイスの状態を反映した連携構成の変更が可能となる。
また、本実施例のプログラム分割手段52によれば、指定された指標に応じて行う最適化の結果に基づいて、すなわち、該指標を最適化することを目的としつつプログラムを分割することができる。例えば、前記指標をデータ通信量とすれば、該データ通信量の最適化によって、携帯電話などのデータ通信料が高価なデバイスを利用する際にも、本発明が利用できる。また、広域に分散したデバイス間で、遅延なく連携を行う場合には、データの通信速度が重要となり、該データの通信速度を最適化するようなプログラムの分割を行うことができる。高速な実行が必要な連携の場合には、実行速度による最適化を目的としたプログラムの分割を行うことができる。このように、様々な目的に応じ、指標を選択することで分割手法が最適化されることができる。
また、本実施例の通信手段決定手段56によれば、デバイス連携機構を構成する各デバイス間の認証やデータの暗号化によるセキュリティを考慮して通信手段を決定することができる。このようにすれば、低コストで高度なセキュリティが実現できる。
また、本実施例の自動分散化プログラム50、あるいはプログラムの自動分散化装置として機能するコンピュータ10によれば、デバイスプログラム更新手段60は、前記デバイスプログラム生成手段58が生成したデバイスプログラムを前記デバイスに対し書き込むこと、すなわちインストールができるので、生成された各デバイスが動作するためのデバイスプログラムを対応するデバイスに書き込むことができ、好適に連携構成を変更することができる。
また、本実施例の自動分散化プログラム50、あるいはプログラムの自動分散化装置として機能するコンピュータ10によれば、デバイスプログラム更新手段60は、前記デバイスが動作中であっても、前記デバイスプログラム生成手段58が生成したデバイスプログラムを前記デバイスに対して書き込み可能であるので、前記デバイスが動作中であっても、生成された各デバイスが動作するためのデバイスプログラムを対応するデバイスに書き込むことができ、好適に連携構成を変更することができる。
また、本実施例の自動分散化プログラム50、あるいはプログラムの自動分散化装置として機能するコンピュータ10によれば、前記デバイスプログラム更新手段60により前記デバイスに前記デバイスプログラムが書き込まれた後は、新たなデバイスの連携が設定されるまで用いられないので、前記自動分散化プログラム50が実行されるコンピュータ10あるいは前記デバイス連携機構のプログラム分散化装置は前記デバイスの動作中は必要とされず、各デバイスは単独で動作を行うことができる。
また、本実施例のデバイス連携機構12は、本実施例の自動分散化プログラム50、あるいはプログラムの自動分散化装置として機能するコンピュータ10が適用されることができる。これにより、デバイス連携機構12が、低レベル実行環境である場合であっても、ピアーツーピア型の連携を動的に構成できる。
以上、本発明の実施例を図面に基づいて詳細に説明したが、本発明はその他の態様においても適用される。
本実施例においては、各デバイス30、32および34は光・温度センサ、スピーカ、液晶表示器であったが、これに限られず、さまざまな機能を持ったデバイスが用いられても良く、デバイスの数もこれに限られない。また、各デバイスは、いわゆる低レベルのCPUを使用したマイコンが使用されOSが搭載されていなかったが、これに限られず、OSが搭載されたコンピュータであってもよい。また、本実施例においては、自動分散化プログラム50を実行するのにコンピュータ10を用いたが、コンピュータに限られず、PDA(携帯情報端末)や携帯電話などを用いても良い。
本実施例においては、自動分散化プログラム50は、事前情報として、デバイス連携情報、すなわち、デバイス連携機構12を構成する各デバイスの有する機能を組み合わせて実行することによって実現できる機能や、その機能はどのデバイスとどのデバイスが連携することによって実現されるかについての情報を有していたが、これは、デバイス連携機構12を構成する各デバイスの情報から適宜作り出すことによって得ても良い。
なお、本実施例においては、自動分散化プログラム50を実行するコンピュータ10およびデバイス連携機構を構成する各デバイス30、32および34は無線通信回線にて接続されていたが、必ずしも無線に限られず、有線通信回線によって接続されていても良い。
SA7において、SA6でコンパイルされたバイナリ・コードに対してデバイスの実行状態を反映させて新たなバイナリ・コードを作成したが、SA5において各デバイスごとの動作を表す内部表現が作成された後、SA6でコンパイルがされる前に前記内部表現にデバイスの実行状態を反映させた後にコンパイルを行っても良い。
SA3において、プログラム分割手段52によって分割された各動作をデバイス連携機構12を構成するいずれのデバイスによって実行させるかを決定する際において、分割された一の動作について、それを実行し得る複数のデバイスが存在する場合、直前の命令と同じ端末で行うようにしたが、これに限られず、たとえば、いくつかの選択肢を準備し最適な結果を選択することもできる。
SA4において、通信手順が決定されるのに際し、デバイス間で通信の対象となるデータを、切り替わった後のデバイスがその後使用する可能性のある変数としたが、プログラム内で使用する全ての変数を渡しても良く、現在の値がデバイス連携機構12全体を通じてその後使用される可能性のある変数のみを渡しても良く、デバイスにおいて動作が一旦終了した後に再度動作が再開される場合において、以前の値から更新された可能性のある変数のみを渡しても良い。また、これらの方法を複数組み合わせることによっても良い。
また、SA4において各デバイス間で行われる通信の通信手順を決定する際、予め準備されたいくつかの通信手順から最適なものを選択することにより決定されたが、その都度適当な通信手順を作成しても良い。
本実施例においては、SA5において各デバイスプログラムを作成する際には、単にSA1で作成された内部表現の順番どおりに各デバイスの動作を決定したが、この場合において、各デバイス、あるいはデバイス連携機構12全体の実行の結果が改善する(たとえば実行に要する時間を短縮する)ように、例えば命令の実行順序の制約を解析し、同一の端末上での処理がまとまるように命令の順序を並び替えるなどの内部表現の最適化をしてもよい。また、命令間の依存関係を解析し、互いに依存関係のない命令を,各端末間で並行して実行させてもよい。
自動分散化プログラム50がバイナリ・コードを各デバイスに書き込みを終了した後は、新たなデバイスの連携が設定されるまで、たとえば、デバイス連携機構12に新たなデバイスが構成要素として加わるときや、デバイス連携機構12に実行させる一連の動作を変更するときまでは自動分散化プログラム50は用いられる必要がなく、従って自動分散化プログラム50が動作するコンピュータと各デバイスの間の通信はその間なされる必要がない。図1(a)における破線は自動分散化プログラム50が動作中のデバイス連携機構12における通信の行われる向きを示しており、一点鎖線はデバイス連携機構12を構成する各デバイスが動作を開始した後の通信の行われる向きを示している。したがって、自動分散化プログラム50が動作するコンピュータ10がバイナリ・コードを各デバイス30、34に書き込みを終了した後は、たとえばデバイス32のような新しいデバイスがデバイス連携機構12に加わったり、あるいは、デバイス30又は34にそれまで行っていた動作と異なる動作を行わせるまではコンピュータ10は用いられる必要がなく、従ってコンピュータ10と各デバイス30、32、34の間の通信はその間なされる必要がない。
上述の実施例においては、SA2からSA5までのステップを実行するにあたり、自動分散化プログラム50が容易に取り扱うことができるため、SA1においてソース・コードを内部表現に変換し、SA6において内部表現をバイナリ・コードに変換したが、ソース・コードを内部表現として自動分散化プログラム50に与えSA1を省略することも可能であり、逆に、内部表現を用いず、自動分散化プログラム50にソース・コードのままSA2〜SA5のステップを実行させることによりSA1を省略することも可能である。
上述の実施例においては、自動分散化プログラム50は、デバイス連携機構12を構成するデバイスについての情報、すなわち、どのような機能を有するデバイスがデバイス連携機構12を構成しているかについての情報を予め有しており、これに基づいてプログラム分割手段52およびプログラム割り当て手段54を実行したが、これに限られず、たとえば、各デバイスおよびプログラムの自動分散化装置であるコンピュータ10の有する無線通信機能により、デバイス連携機構12を構成するデバイスについての情報を常時監視することにより、その情報を取得し、また随時自動的に更新してもよい。このようにすれば、デバイス連携機構12にを構成する新たなデバイスが加わった場合において、自動分散化プログラム50を自動的に再実行することにより、新たなデバイスが加わったデバイス連携機構12についてのプログラムの自動分散化が実行され、新たなデバイスが加わったデバイス連携機構12を構成する各デバイスが好適に作動することが可能となる。
上述の実施例において、メモリ読み出し手段64やデバイスプログラム更新手段60は、デバイス連携機構12を構成する各デバイス30、32および34との間で認証を行い、認証が行われたデバイスのみがメモリ読み出し手段64やデバイスプログラム更新手段60の対象となるようにしてもよい。すなわち、メモリ読み出し手段64は認証が行われた、すなわち権限のあるデバイスからのみデバイスのメモリ20の内容を読み出すことができ、また、デバイスプログラム更新手段60は権限のあるデバイスに対してのみデバイスのプログラム書き換えをすることができるようにしてもよい。このようにすれば、安全に機器のプログラムを更新する仕組みが実現できる。
本発明は、例えば情報家電を相互に接続して操作するためのセンサーネットワーク技術においても、実施することができ、例えば異なるメーカ間の技術仕様の共通化等を図ることで、利用者の利便性を向上させることができる。センサーネットワーク技術は、センサーとしてのデバイスの情報に基づき、例えば表示機能その他の機能を有するデバイスを連動させる技術をいい、例えば住居内の温度調整等の他に、火災予防・盗難防止等も可能となって、快適な生活環境をもたらすことができ、本発明は極めて有用なものといえる。
その他、一々例示はしないが、本発明はその趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
本発明のデバイス連携機構の自動分散化プログラムが適用されるコンピュータとデバイス連携機構の概要を表した図、およびデバイス連携機構を構成するデバイスの概略を表した図である。 本発明のデバイス連携機構の自動分散化プログラムの機能を説明するブロック線図である。 本発明のデバイス連携機構の自動分散化プログラムの動作を表すフローチャートである。 図1(a)で示されるデバイス連携機構に実行させる一連の動作を示すフローチャートである。 本発明のデバイス連携機構の自動分散化プログラムにより各デバイス毎に分散された結果、各デバイス毎の動作を示すフローチャートである。
符号の説明
10:コンピュータ
12:デバイス連携機構
50:自動分散化プログラム
52:プログラム分割手段
54:プログラム割り当て手段
56:通信手順決定手段
58:デバイスプログラム生成手段
60:デバイスプログラム更新手段
62:トランスレータ
64:メモリ読み出し手段
66:コンパイラ
68:実行状態反映手段

Claims (15)

  1. 複数のデバイスがネットワークで接続された環境下において、前記複数のデバイスの協働で成り立つ一連の動作を実行させるために記述された一連のプログラムを、各デバイスが持つ機能に関する情報を用いて、該デバイス間が連携できるよう、各デバイス上で実行可能なプログラムに自動的に分割可能な、デバイス連携機構の自動分散化プログラムであって、
    前記一連のプログラムを解析し、データの処理や各デバイスの制御について分割可能なプログラム機能毎に、一連のプログラムを分割するプログラム分割手段と、
    前記分割されたプログラムを、各デバイスが持つデバイス機能に関する情報を用いて、各デバイス毎に実行可能な分割されたプログラムを割り当てるプログラム割り当て手段と、
    前記プログラム分割手段の結果に基づき、前記分割されたプログラムが実行されるデバイス間で、どのようなデータの送受信が必要かを解析し、該デバイス間の通信を実行するための通信手順を決定する通信手順決定手段と、
    前記プログラム分割手段による一連のプログラムの分割、前記プログラム割り当て手段によるプログラムの各デバイス毎の割り当て、及び前記通信手順決定手段による通信手順の決定の結果に基づいて、各デバイスを連携動作させるためのデバイスプログラムを生成するデバイスプログラム生成手段
    を含むことを特徴とするデバイス連携機構の自動分散化プログラム。
  2. 複数のデバイスがネットワークで接続された環境下において、前記複数のデバイスの協働で成り立つ一連の動作を実行させるために記述された一連のプログラムを、各デバイスが持つ機能に関する情報を用いて、該デバイス間が連携できるよう、各デバイス上で実行可能なプログラムに自動的に分割可能な、デバイス連携機構の自動分散化装置であって、
    前記一連のプログラムを解析し、データの処理や各デバイスの制御について分割可能なプログラム機能毎に、一連のプログラムを分割するプログラム分割手段と、
    前記分割されたプログラムを、各デバイスが持つデバイス機能に関する情報を用いて、各デバイス毎に実行可能な分割されたプログラムを割り当てるプログラム割り当て手段と、
    前記プログラム分割手段の結果に基づき、前記分割されたプログラムが実行されるデバイス間で、どのようなデータの送受信が必要かを解析し、該デバイス間の通信を実行するための通信手順を決定する通信手順決定手段と、
    前記プログラム分割手段による一連のプログラムの分割、前記プログラム割り当て手段によるプログラムの各デバイス毎の割り当て、及び前記通信手順決定手段による通信手順の決定の結果に基づいて、各デバイスを連携動作させるためのデバイスプログラムを生成するデバイスプログラム生成手段
    を含むことを特徴とするデバイス連携機構の自動分散化装置。
  3. 請求項1に記載のデバイス連携機構の自動分散化プログラムであって、
    前記デバイスが動作中においては、前記デバイスプログラム生成手段が生成したデバイスプログラムに対して前記デバイスの実行状態を反映させる実行状態反映手段を含む
    ことを特徴とするデバイス連携機構の自動分散化プログラム。
  4. 請求項2に記載のデバイス連携機構のプログラム自動分散化装置であって、
    前記デバイスが動作中においては、前記デバイスプログラム生成手段が生成したデバイスプログラムに対して前記デバイスの実行状態を反映させる実行状態反映手段を含む
    ことを特徴とするデバイス連携機構のプログラム自動分散化装置。
  5. 請求項1または3に記載のデバイス連携機構の自動分散化プログラムであって、
    前記プログラム分割手段は、指定された指標に応じて行う最適化の結果に基づいてプログラムを分割する
    ことを特徴とするデバイス連携機構の自動分散化プログラム。
  6. 請求項2または4に記載のデバイス連携機構のプログラム自動分散化装置であって、
    前記プログラム分割手段は、指定された指標に応じて行う最適化の結果に基づいてプログラムを分割する
    ことを特徴とするデバイス連携機構のプログラム自動分散化装置。
  7. 請求項1、3または5に記載のデバイス連携機構の自動分散化プログラムであって、
    前記通信手順決定手段は、デバイス間の通信におけるセキュリティを考慮して通信手段を決定する
    ことを特徴とするデバイス連携機構の自動分散化プログラム。
  8. 請求項2、4または6に記載のデバイス連携機構のプログラム自動分散化装置であって、
    前記通信手順決定手段は、デバイス間の通信におけるセキュリティを考慮して通信手段を決定する
    ことを特徴とするデバイス連携機構のプログラム自動分散化装置。
  9. 請求項1、3、5または7に記載のデバイス連携機構の自動分散化プログラムであって、
    前記デバイスプログラム生成手段または実行状態反映手段が生成したプログラムを、前記デバイスに対し書き込み可能とするデバイスプログラム更新手段を含む
    ことを特徴とするデバイス連携機構の自動分散化プログラム。
  10. 請求項2、4、6または8に記載のデバイス連携機構のプログラム自動分散化装置であって、
    前記デバイスプログラム生成手段または実行状態反映手段が生成したプログラムを前記デバイスに対し書き込み可能とするデバイスプログラム更新手段を含む
    ことを特徴とするデバイス連携機構のプログラム自動分散化装置。
  11. 請求項9に記載のデバイス連携機構の自動分散化プログラムであって、
    前記デバイスプログラム更新手段は、前記デバイスが動作中であっても、前記デバイスプログラム生成手段が生成したプログラムを前記デバイスに対して書き込み可能である
    ことを特徴とするデバイス連携機構の自動分散化プログラム。
  12. 請求項10に記載のデバイス連携機構のプログラム自動分散化装置であって、
    前記デバイスプログラム更新手段は、前記デバイスが動作中であっても、前記デバイスプログラム生成手段が生成したプログラムを前記デバイスに対して書き込み可能である
    ことを特徴とするデバイス連携機構のプログラム自動分散化装置。
  13. 請求項9または11に記載のデバイス連携機構の自動分散化プログラムであって、
    前記自動分散化プログラムは、前記デバイスプログラム更新手段により前記デバイスに前記デバイスプログラムが書き込まれた後は、新たなデバイスの連携が設定されるまで用いられない
    ことを特徴とするデバイス連携機構の自動分散化プログラム。
  14. 請求項10または12に記載のデバイス連携機構のプログラム自動分散化装置であって、
    前記プログラム自動分散化装置は、前記デバイスプログラム更新手段により前記デバイスに前記デバイスプログラムが書き込まれた後は、新たなデバイスの連携が設定されるまで用いられない
    ことを特徴とするデバイス連携機構のプログラム自動分散化装置。
  15. 請求項1、3、5、7、9、11または13に記載のデバイス連携機構の自動分散化プログラム、または請求項2、4、6、8、10、12または14に記載のプログラム自動分散化装置が用いられるデバイス連携機構。
JP2006015675A 2006-01-24 2006-01-24 デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構 Pending JP2007199869A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006015675A JP2007199869A (ja) 2006-01-24 2006-01-24 デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006015675A JP2007199869A (ja) 2006-01-24 2006-01-24 デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構

Publications (1)

Publication Number Publication Date
JP2007199869A true JP2007199869A (ja) 2007-08-09

Family

ID=38454454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006015675A Pending JP2007199869A (ja) 2006-01-24 2006-01-24 デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構

Country Status (1)

Country Link
JP (1) JP2007199869A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245362A (ja) * 2008-03-31 2009-10-22 Nec Corp 自動分散化システム及び自動分散化方法
EP2568380A2 (en) 2011-09-12 2013-03-13 Sony Corporation Information processing apparatus, information processing method, recording medium and information processing system
WO2014163168A1 (ja) * 2013-03-30 2014-10-09 日本電気株式会社 アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム
JP2018535480A (ja) * 2015-11-29 2018-11-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のデプロイメントロケーションにわたるアプリケーションのセキュア・デプロイメント
WO2019160008A1 (ja) * 2018-02-16 2019-08-22 日本電信電話株式会社 アプリケーション分割装置、方法およびプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171405A (ja) * 1995-12-20 1997-06-30 Hitachi Ltd Faシステムの制御装置と方法、制御プログラム生成方法
JP2000259589A (ja) * 1999-03-10 2000-09-22 Hitachi Ltd 分散制御システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171405A (ja) * 1995-12-20 1997-06-30 Hitachi Ltd Faシステムの制御装置と方法、制御プログラム生成方法
JP2000259589A (ja) * 1999-03-10 2000-09-22 Hitachi Ltd 分散制御システム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245362A (ja) * 2008-03-31 2009-10-22 Nec Corp 自動分散化システム及び自動分散化方法
EP2568380A2 (en) 2011-09-12 2013-03-13 Sony Corporation Information processing apparatus, information processing method, recording medium and information processing system
US8973005B2 (en) 2011-09-12 2015-03-03 Sony Corporation Information processing apparatus, information processing method, recording medium and information processing system
US9626217B2 (en) 2011-09-12 2017-04-18 Sony Corporation Information processing apparatus, information processing method, recording medium and information processing system
WO2014163168A1 (ja) * 2013-03-30 2014-10-09 日本電気株式会社 アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム
JPWO2014163168A1 (ja) * 2013-03-30 2017-02-16 日本電気株式会社 アプリケーション特化仮想マシン生成システム、装置、方法およびプログラム
JP2018535480A (ja) * 2015-11-29 2018-11-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のデプロイメントロケーションにわたるアプリケーションのセキュア・デプロイメント
WO2019160008A1 (ja) * 2018-02-16 2019-08-22 日本電信電話株式会社 アプリケーション分割装置、方法およびプログラム

Similar Documents

Publication Publication Date Title
CN110941426B (zh) 一种面向NB-IoT终端的图形化编程系统
JP6493126B2 (ja) 動的デバイスドライバのための方法及び非一時的なコンピュータ可読媒体
CN102378965A (zh) 用于经由进程间通信共享资源的方法、装置和计算机程序产品
Andersen et al. Enabling synergy in iot: Platform to service and beyond
JP6464162B2 (ja) ファームウェア仮想化のための方法および装置
JP2007199869A (ja) デバイス連携機構の自動分散化プログラム、装置およびデバイス連携機構
JP2011107752A (ja) 情報処理装置、通信システムおよびプログラム
CN111459539A (zh) 基于镜像分层的持续集成流水线运行方法及装置
JP2020071833A (ja) エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
CN112533242A (zh) 一种led设备组网方法、装置及设备
JP5808922B2 (ja) 空調機制御インターフェース装置、空気調和機および空調機制御システム
JP4161219B2 (ja) 通信アダプタ、ホームネットワークシステム
JP2009157533A (ja) プログラマブルコントローラシステム
KR100750407B1 (ko) 사용자 인터페이스를 이용한 원격 조종 로봇 시스템 및 그방법
JP4713927B2 (ja) アプリケーションプログラムの配信方法、およびこれに用いるサーバ装置
JP4561331B2 (ja) 家電機器アダプタおよびソフトウェア開発装置
US20200293333A1 (en) Electronic device, application execution system, and control method therefor
JP2007122691A (ja) 情報処理装置、情報処理方法及びプログラム
KR20190071987A (ko) 블록 프로그램을 이용한 단말 제어 장치 및 방법
US11429357B2 (en) Support device and non-transient computer-readable recording medium recording support program
CN113204381A (zh) 指令文件生成方法、装置、机器设备和存储介质
JP4544422B2 (ja) プログラマブル・コントローラ
KR100873198B1 (ko) 휴대용 정보 단말기를 위한 통합 소프트웨어 관리 방법 및시스템
TWI581185B (zh) 應用程式安裝方法及系統
WO2015083234A1 (ja) 関数呼び出しテーブル生成装置、プログラム実行装置および実行プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101008

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110621