JP2012063826A - プログラム生成装置、方法及びプログラム並びに遠隔管理システム - Google Patents

プログラム生成装置、方法及びプログラム並びに遠隔管理システム Download PDF

Info

Publication number
JP2012063826A
JP2012063826A JP2010205344A JP2010205344A JP2012063826A JP 2012063826 A JP2012063826 A JP 2012063826A JP 2010205344 A JP2010205344 A JP 2010205344A JP 2010205344 A JP2010205344 A JP 2010205344A JP 2012063826 A JP2012063826 A JP 2012063826A
Authority
JP
Japan
Prior art keywords
node
information
program
processors
configuration information
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
JP2010205344A
Other languages
English (en)
Other versions
JP5605109B2 (ja
Inventor
Kentaro Sasagawa
賢太郎 笹川
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2010205344A priority Critical patent/JP5605109B2/ja
Publication of JP2012063826A publication Critical patent/JP2012063826A/ja
Application granted granted Critical
Publication of JP5605109B2 publication Critical patent/JP5605109B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】複数のプロセッサを備え、所定の機能を実現する組み込み機器で実行されるプログラムを容易に生成すること。
【解決手段】複数のプロセッサ間の通信処理が実装された通信処理情報を予め記憶する記憶手段と、組み込み機器における所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、アクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、構成情報に基づいて、複数のプロセッサごとに対応した複数のプログラムを、記憶手段に記憶された通信処理情報と、変換したプログラムコードとを含めて生成するプログラム生成手段と、を備えるプログラム生成装置。
【選択図】図1

Description

本発明は、プログラム生成装置、方法及びプログラム並びに遠隔管理システムに関し、特に、複数のプロセッサを備え、所定の機能を実現する組み込み機器で実行可能なプログラムを生成するためのプログラム生成装置、方法及びプログラム並びに遠隔管理システムに関する。
近年、自動車には、複数の制御系ECU(Electronic Control Unit)ばかりでなく、情報系ECUが搭載されている。ここで、制御系ECUとは、エンジン制御系、ボディー系などの自動車本体を制御するための電子制御装置を指す。自動車には、通常、数十〜百個の制御系ECUが搭載されている。また、情報系ECUとは、カーナビやAV(Audio Visual)システムなどのマルチメディア機能等の機能を制御するための電子制御装置を指す。そして、情報系ECUは、内部のプロセッサによりプログラムを実行することにより制御系ECUに比べて柔軟な制御が可能である。そのため、情報系ECUが複数の制御系ECUをプログラムにより制御する場合もある。
このようなことから、自動車の開発は、複数の開発チームやサプライヤにより行われることが一般的である。そして、今後、自動車には制御系ECUだけでなく、情報系ECUについても複数の構成となることが予想される。また、大手メーカでは、開発部門と保守部門が分かれており、開発と保守はそれぞれ別のエンジニアが行う場合が多い。
ここで、自動車等の各種機能をデバイスという単位で管理するためのデバイスの構成を定義するための技術としてDMT(Device Management Tree)がある。DMTは、デバイス管理を行うために使用される木構造データである。各ノードの名前は、URI(Uniform Resource Identifier)として表すことができる。そのため、ネットワーク上デバイス管理サーバや組み込み機器内のデバイス管理アプリは、URIを指定することでDMT内の任意のノードに対して読み書きや実行命令の発行を行うことができる。また、DMTにノードを動的に追加することも可能である。
また、DMTベースのデバイス管理技術としてOMA−DM(Open Mobile Alliance−Device Management)がある。OMA−DMは、3G携帯電話やWIMAX(Worldwide Interoperability for Microwave Access)で運用されている遠隔デバイス管理プロトコルの規格である。規格化団体は、OMA(Open Mobile Alliance)である。OMA−DMは、DMTに相当するMO(Management Object)という単位でデバイスの管理を行う。OMA−DMが提供する標準MOは、FUMO(遠隔ファームウエア更新)、SCOMO(遠隔SW更新)、DiagMon(遠隔診断)、LAWMO(遠隔セキュリティーロック)などがある。例えば、特許文献1には、モバイル・デバイスを管理するための技術が開示されている。
また、現状の車載機の診断における状況としては、次のとおりである。まず、制御系ECUに関しては、サービスエンジニアがOBD2とよばれるコネクタに診断テスタを接続して診断や制御を行っている。また、情報系ECUに関しては、サービスセンタに持ち込み後、情報系ECUに接続されるストレージからログ情報を取得するやり方が現在主流である。
そして、最近では、自動車の各種機能を管理するために、OMA−DMなどのDMTをサポートした遠隔デバイス管理プロトコルなどを使用した遠隔診断プログラムを情報系ECUに予め埋め込むか、製品出荷後に、新たに診断プログラムを情報系ECUに送り込むなどの手法が考えられている。後者は、出荷後に不具合に可能性があることがわかった特定の自動車に対して、特殊な診断プログラムを送り込む際に使用する。
尚、特許文献2には、車両診断プログラムの作成や修正を行うための車両診断プログラム作成装置及び車両診断装置に関する技術が開示されている。特許文献3には、通信を行うためのプログラムの作成を行い、間違いがあった場合に、その原因の特定を行うためのツール装置に関する技術が開示されている。
特表2009−504041号公報 特開2000−131194号公報 特開2009−020716号公報
このように、複数の情報系ECUに対応する遠隔診断プログラムを作成するためには、広範な専門知識が必要となり、保守作業を行うサービスエンジニアが単独で行うには難易度が高いという問題点があった。その理由は、上述した診断プログラムは、現状、各々のECUに詳しい開発部門のエンジニアがプログラミングにより作成しなければならないからである。そのため、保守部門又はサービスセンタのサービスエンジニアが作成するには敷居が高い。
ここで、複数の情報系ECUに対応する遠隔診断プログラムを作成するには、次のような知識が必要となる。まず、各情報系ECUで使われているプログラム言語やOS(Operating System)のシステムコール及びシステム固有の設計思想に関する知識が必要となる。例えば、第1の情報系ECUには、Linux(登録商標)及びC++言語の知識が必要となり、第2の情報系ECUには、T−kernel及びC言語の知識が必要となるといった具合である。さらに、OMA−DMプロトコル及び各情報系ECU間のDMT共有方法や制御系ECU向けの車載診断プロトコルや他ECUからのイベント取得方法などの知識も必要となる。
尚、特許文献1乃至3にかかる技術では、複数の制御系ECUと複数の情報系ECUを備えた組み込み機器において、情報系ECU間の通信処理等を個別に実装しなければならず、上述した問題を解決することはできない。
本発明は、このような問題点を解決するためになされたものであり、複数のプロセッサを備え、所定の機能を実現する組み込み機器における広範な専門知識が必要とせずに、当該組み込み機器で実行されるプログラムを容易に生成するためのプログラム生成装置、方法及びプログラム並びに遠隔管理システムを提供することを目的とする。
本発明の第1の態様にかかるプログラム生成装置は、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、を備える。
本発明の第2の態様にかかるプログラム生成方法は、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成を複数のノードにより定義した構成情報を生成し、前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成し、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報と、前記変換したプログラムコードとを含めて生成する。
本発明の第3の態様にかかるプログラム生成プログラムは、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成の複数のノードによる定義を受け付け、当該受け付けた定義に基づき構成情報を生成し、前記構成情報に含まれる複数のノードのいずれかの指定を受け付け、当該指定されたノードにおけるノードの状態と当該状態におけるノードの振る舞いであるアクション情報との定義を受け付け、当該受け付けた前記ノードの状態と前記アクション情報途に基づきノード状態情報を生成し、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、予め記憶部に格納された前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を取得し、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記取得した通信処理情報と、前記変換したプログラムコードとを含めて生成する処理をコンピュータに実行させるプログラムである。
本発明の第4の態様にかかる組み込み機器の遠隔管理システムは、外部と無線通信可能なプロセッサを含む複数のプロセッサを備え、所定の機能を実現する組み込み機器と、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、無線通信により前記組み込み機器に対して制御を行う遠隔制御手段と、を備える遠隔管理装置と、を備え、前記遠隔制御手段は、前記生成した複数のプログラムを前記組み込み機器へ送信し、前記組み込み機器は、前記遠隔管理装置から受信した複数のプログラムのそれぞれを、前記複数のプロセッサのうち対応するプロセッサにおいて実行させ、前記複数のプロセッサは、各プロセッサが実行するプログラムに含まれる前記変換したプログラムコードに基づく処理を行い、当該プログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う。
本発明により、複数のプロセッサを備え、所定の機能を実現する組み込み機器における広範な専門知識が必要とせずに、当該組み込み機器で実行されるプログラムを容易に生成するためのプログラム生成装置、方法及びプログラム並びに遠隔管理システムを提供することができる。
本発明の実施の形態1にかかるプログラム生成装置の構成を示すブロック図である。 本発明の実施の形態1にかかるプログラム生成方法の処理の流れを示すフローチャートである。 本発明の実施の形態2にかかる遠隔管理システムの構成を示すブロック図である。 本発明の実施の形態2にかかる遠隔管理方法の処理の流れを示すシーケンス図である。 本発明の実施の形態3にかかる遠隔車載診断システムの構成を示すブロック図である。 本発明の実施の形態3にかかるプログラム生成装置のハードウェア構成を示すブロック図である。 本発明の実施の形態3にかかる車載組み込み機器の構成を示すブロック図である。 本発明の実施の形態3にかかる生成される車載診断プログラムの概念を示す図である。 本発明の実施の形態3にかかるDMTアクセス管理の例を示す図である。 本発明の実施の形態3にかかるGUI開発ツールの概念を示す図である。 本発明の実施の形態3にかかる状態モデル図及びアクション記述言語の例を示す図である。 本発明の実施の形態3にかかる情報系ECU33用の車載診断プログラムの処理の流れを示すシーケンス図である。 本発明の実施の形態3にかかる情報系ECU32用の車載診断プログラムの処理の流れを示すシーケンス図である。 本発明の実施の形態3にかかる状態モデル図の例を示す図である。 関連技術により設計した場合のクラス図の例を示す図である。 関連技術により設計した場合のUMLモデリングの例を示す図である。 本発明の実施の形態3にかかるDMTを用いたデバイス管理の概念を示す図である。 関連技術を用いた場合のプログラム作成手順の概念を示す図である。 本発明の実施の形態3にかかるプログラム生成方法の概念を示す図である。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかるプログラム生成装置1の構成を示すブロック図である。プログラム生成装置1は、複数のプロセッサが搭載され、所定の機能を実現する組み込み機器(不図示)において実行可能なプログラムを生成するコンピュータシステムである。特に、プログラム生成装置1は、複数のプロセッサのそれぞれに対応した複数のプログラムを生成する。ここで、生成される複数のプログラムは、それぞれ、対応するプロセッサにおいて実行可能な機械語プログラム又は当該機械語プログラムにコンパイル可能なソースプログラムである。また、生成される複数のプログラムは、組み込み機器の所定の機能を実現するためのプログラムであるか、当該機能を検査又は診断等するための補助的な機能を実現するためのプログラムである。そして、生成される複数のプログラムは、既存の有線通信又は無線通信の手段を用いてプログラム生成装置1から組み込み機器へ転送されることにより、対応する各プロセッサ上で実行される。また、生成される複数のプログラムは、各プロセッサで実行される際に、プロセッサ間の通信を行うことができるものである。
プログラム生成装置1は、記憶部11と、構成情報生成部12と、ノード状態情報生成部13と、変換部14と、プログラム生成部15とを備える。記憶部11は、複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報111を予め記憶する記憶装置である。構成情報生成部12は、組み込み機器における所定の機能の構成を複数のノードにより定義した構成情報を生成する。構成情報には、組み込み機器を物理的な構成要素に限らず、機能レベルの抽象的な構成要素も含まれる。例えば、機能名、部品名、属性、パラメータ値、計量値等をノードとして表現し、ノード間の関係を定義した情報である。ノード状態情報生成部13は、構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成する。変換部14は、ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する。プログラム生成部15は、構成情報に基づいて、複数のプロセッサごとに対応した複数のプログラムを、記憶部11に記憶された通信処理情報111と、変換したプログラムコードとを含めて生成する。尚、構成情報生成部12と、ノード状態情報生成部13と、変換部14と、プログラム生成部15とは、これらの機能を実装したプログラム生成プログラムをCPU(Central Processing Unit)等の制御部により実行することにより実現することが可能である。尚、本発明の実施の形態1では、定義されたノードとプロセッサとの関連付けは、予め定義されているものとする。
図2は、本発明の実施の形態1にかかるプログラム生成方法の処理の流れを示すフローチャートである。まず、構成情報生成部12は、構成情報を生成する(S11)。このとき、構成情報生成部12は、機能の構成に関する情報や複数のノードの指定を外部から受け付けるようにしてもよい。次に、ノード状態情報生成部13は、構成情報を参照し、複数のノードのそれぞれに対応した複数のノード状態情報を生成する(S12)。このとき、ノード状態情報生成部13は、ノードの状態とアクション情報とを外部から受け付けるようにしてもよい。
そして、変換部14は、ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する(S13)。変換されるプログラムコードは、機械語のコードでなくとも、少なくともソースコードであればよい。但し、変換部14は、アクション情報をノードに予め関連付けられたプロセッサに対応するプログラムコードに変換するものとする。また、変換部14は、複数のノード状態情報のそれぞれに定義されたアクション情報ごとに異なるプログラムコードへ変換する。
その後、プログラム生成部15は、構成情報に基づいて、複数のプロセッサごとに対応した複数のプログラムを生成する(S14)。つまり、プログラム生成装置1は、組み込み機器に対する一つの構成情報から複数のプログラムを生成する。その際、プログラム生成部15は、記憶部11から通信処理情報111を読み出して、各プログラムに含める。つまり、生成されたプログラムは、他のプロセッサとの通信処理が実装されたこととなる。また、プログラム生成部15は、ステップS13により変換したプログラムコードを、ノードに対応するプログラムに含める。つまり、アクション情報として定義することにより、プロセッサに応じたプログラムコードが実装されたこととなる。
このように、本発明の実施の形態1により、構成情報やノード状態情報といった組み込み機器の所定の機能を表現する情報を用いて、複数のプロセッサのそれぞれで実行可能な複数のプログラムを生成することができる。一方、サービスエンジニア等は、所定の機能についての専門知識があるが、複数のプロセッサで実行可能なプログラミングについての広範な専門知識を備えていないことが一般的である。そのため、本発明の実施の形態1により、サービスエンジニア等であっても、複数のプロセッサを備え、所定の機能を実現する組み込み機器で実行されるプログラムを容易に生成することができる。
<発明の実施の形態2>
図3は、本発明の実施の形態2にかかる遠隔管理システム10の構成を示すブロック図である。尚、本発明の実施の形態2は、上述した発明の実施の形態1にかかるプログラム生成装置1を用いて実現した例について説明する。尚、発明の実施の形態1と同一の構成要素について、同一の符号を付し、詳細な説明を省略する。
遠隔管理システム10は、遠隔管理装置1aと組み込み機器2とを備える。遠隔管理システム10は、遠隔管理装置1aを用いて、組み込み機器2の各種機能を遠隔管理するための仕組である。遠隔管理装置1aは、プログラム生成装置1の構成要素に加え、遠隔制御部16をさらに備える。遠隔制御部16は、無線通信により組み込み機器に対して制御を行う。具体的には、遠隔制御部16は、プログラム生成部15により生成された複数のプログラムを無線通信により組み込み機器2へ転送する。また、遠隔制御部16は、組み込み機器2内の各プログラムに対して各種制御の指示を行う。これにより、遠隔管理装置1aは、組み込み機器2を遠隔管理する。
組み込み機器2は、プロセッサ21a、21b、・・・及び21nを備える。また、組み込み機器2は、プロセッサ21a、21b、・・・及び21nの少なくとも一部を用いて所定の機能を実現する。また、プロセッサ21aは、外部との無線通信機能を有する。プロセッサ21aは、少なくとも遠隔制御部16との無線通信が可能である。
図4は、本発明の実施の形態2にかかる遠隔管理方法の処理の流れを示すシーケンス図である。まず、遠隔管理装置1aは、図2のステップS11〜S14と同等の処理により、プロセッサごとの複数のプログラムを生成する。すなわち、遠隔管理装置1aは、プロセッサ21a、21b、・・・及び21nのそれぞれに対応する機械語プログラムを生成する。
次に、遠隔制御部16は、組み込み機器2のプロセッサ21aに対して、複数のプログラムを送信する(S15)。そして、プロセッサ21aは、遠隔管理装置1aから受信した複数のプログラムのそれぞれを、対応するプロセッサに送信する(S16)。つまり、プロセッサ21aは、プロセッサ21bにはプロセッサ21b上で実行可能なプログラムを、プロセッサ21nにはプロセッサ21n上で実行可能なプログラムを、それぞれ送信する。
そして、プロセッサ21a、21b、・・・及び21nは、受信した各プログラムを実行する(S17)。プロセッサ21a、21b、・・・及び21nは、各プロセッサが実行するプログラムに含まれるプログラムコードに基づく処理を行う。ここで、プログラムコードは、ステップS13によりアクション情報に基づいてプロセッサごとに変換されたものである。そのため、各プロセッサは、ノードの状態におけるノードの振る舞いに相当する処理を実行することができる。
また、プロセッサ21a、21b、・・・及び21nは、各プロセッサが実行するプログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う(S18)。例えば、プロセッサ21aと21bとは、プロセッサ間で相互のノードに対してイベントを発生させ、また、イベントに対する応答を行う。
このように、本発明の実施の形態2により、発明の実施の形態1と同様の効果を奏することができる。
<発明の実施の形態3>
複数の情報系ECUに対応する遠隔診断プログラムを作成するために、MDA(登録商標)(Model Driven Architecture)を用いて、遠隔診断の仕様から診断プログラムを自動生成する手法が考えられる。なぜなら、MDAを導入することにより、プログラム設計やコーディング技術などの専門知識の敷居を下げることが可能であるからである。
ここで、MDAとは、モデルとして表現される構造的仕様のガイドラインを提供するソフトウェア開発手法である。MDAを用いると、GUI開発ツールを用いて記述されたモデルから、機械語プログラムを自動生成することが可能となる。MDAを用いた開発ツールとしては、例えば、BridgePointやRhapsodyなどがあり、組み込み系ソフトウェア開発に用いられている。また、MDAには、SQLの構文を一部取り入れたアクション記述言語をサポートしたExecutable UML(Unified Modeling Language)という手法がある。
図18は、MDAを用いた場合のプログラム作成手順の概念を示す図である。まず、オブジェクト指向分析(Object−Oriented Analysis)(以下、OOAと呼ぶ)に相当する作業として、診断仕様に基づくUMLのモデリングを行う(S91)。次に、オブジェクト指向設計(Object−Oriented Design)(以下、OODと呼ぶ)に相当する作業として、情報系ECUごとに必要な機能についてのUMLのモデリングを行う(S92及びS93)。その後、各情報系ECUに対応したモデルコンパイラにより、各モデルからソースコードSC1及びSC2を生成する(S94及びS95)。
しかしながら、複数の情報系ECUに対応する遠隔診断プログラムを作成するために、単純に、MDAを用いるだけでは、下記に示すような問題があり、サービスエンジニアが単独で行うには難易度が高いという問題は、解消しない。
(1)関連する情報系ECUの数だけ、UML等で記述されたモデルを生成し、各々のモデルコンパイラでコンパイルする必要がある。つまり、ステップS91(OOA相当)後、OOD相当のフェーズで、クラスライブラリと各情報系ECUに割り当てられた機能を考慮したモデルに、作り直さなければならない。また、情報系ECU毎に分割されたモデル間の連携方法や管理センタ(例えば、図3の遠隔管理装置1a)との通信方法も、別途考える必要がある。
(2)オブジェクトのライフサイクルの管理(オブジェクトやイベント生成、削除など)は、モデル作成者が記述しなければならない。これは、MDAのようなオブジェクト指向設計手法を、強引にデバイス管理に持ち込んだ場合に発生する矛盾である。
(3)情報系ECU間の通信処理に関しては自動生成できず、従来の手書きによる処理を実装しなければならない。
(4)さらに、情報系ECU間の連携を考えた場合、モデル作成時のアクション記述が複雑になってしまい、結局、MDAを導入する利点がなくなってしまう。つまり、管理センタと無線通信するECUの割り当てを定義しなければならない。また、管理センタから受信したイベントを基に他の情報系ECUに割り振るしくみや、他の情報系ECUからのアクションを管理センタにフィードバックするしくみを考えなければならない。
そこで、本発明の実施の形態3では、図19に示すようなプログラム生成方法の概念について説明する。図19では、まず、OOAと呼ぶに相当する作業として、設計対象の組み込み機器に関するDMTに基づくモデリングを行う(S41)。そのため、サービスエンジニアは、DMT構成と、制御系ECUや各センサーと情報系ECUの割り当てを把握していれば、プログラムを生成することができる。
次に、DMTのノード構成及び各ノードの振る舞いを基に、組み込み装置内に搭載される複数のECUごとのソースコードSC1及びSC2を生成する(S42)。このとき、ノードと情報系ECUとの割り当てを基に、自動的にモデルが分割される。その後、各々の情報系ECUに対応したモデルコンパイラで別々にビルドされる。
これにより、ソースコードSC1及びSC2をコンパイルすることにより、組み込み装置内の各ECUで実行される機械語プログラムを生成する。ここで、生成される機械語プログラムには、管理センタのサーバと組み込み装置間の通信処理及び組み込み装置内に搭載される複数のECUの連携処理が含まれる。また、本発明の実施の形態3には、自動生成された機械語プログラムの構成方法、並びに、これらに対応したGUI開発ツール及びモデルコンパイラも含まれる。このように、本発明の実施の形態3により、サービスエンジニアが情報系ECU間の連携や管理センタとの通信に関するロジックを記述する必要がなくなる。
本発明の実施の形態3は、上述した発明の実施の形態1にかかるプログラム生成装置1に改良を加えることでも実現することができる。その場合、以下のような構成を有することとなる。構成情報生成部12は、各ノードに複数のプロセッサのいずれかを割り当てた割当情報を含めて構成情報を生成し、プログラム生成部15は、構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、生成された複数の分類後構成情報から複数のプログラムを生成する。
また、複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラをさらに備え、プログラム生成部15は、分類後構成情報から対応するプロセッサを特定し、特定したプロセッサに対応するモデルコンパイラを選択して、選択したモデルコンパイラを用いて分類後構成情報から当該特定したプロセッサで実行可能なプログラムを生成することが望ましい。
さらに、プログラム生成部15は、複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることが望ましい。また、構成情報生成部12は、構成情報としてDMTを用いることが望ましい。さらに、ノード状態情報生成部13は、ノード状態情報に、複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けるとよい。また、ノード状態情報生成部13は、ノード状態情報に、組み込み機器に搭載され、かつ、複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けるとよい。
図5は、本発明の実施の形態3にかかる遠隔車載診断システム100の構成を示すブロック図である。遠隔車載診断システム100は、開発用PC101と、管理センタの管理サーバ102と、車載組み込み機器103とを備える。遠隔車載診断システム100は、車載組み込み機器103における各種機能を遠隔に診断するための仕組みである。尚、遠隔車載診断システム100は、主に、車載組み込み機器をターゲットとした遠隔デバイス管理システムの一部であるが、本発明の実施の形態3はこれに限定されない。
開発用PC101は、GUI開発ツールを用いて、車載診断プログラムを作成する(S51)。車載診断プログラムは、車載組み込み機器103に搭載された複数のプロセッサに対応する複数の機械語プログラムである。具体的には、開発用PC101は、ユーザからDMTのノードの構成、状態及びアクション情報等を受け付けて、車載組み込み機器103における一つのDMTのモデル情報を生成する。そして、開発用PC101は、DMTベースのモデル情報に加え、ログフィルタリングルール言語や制御系ECU向け車載診断言語などの複数の抽象度の高いスクリプト言語を生成する。
開発用PC101は、生成したDMTのモデル情報及びスクリプト言語に基づき、各ECUに対応したモデルコンパイラを使用して、ECU毎に対応したソースプログラムを生成する。つまり、開発用PC101は、一つのDMTから車載組み込み機器103に搭載された複数のプロセッサに対応する複数のソースプログラムを生成する。その後、開発用PC101は、生成した複数のソースプログラムをバイナリ形式の複数の機械語プログラムに変換する。このようにして、開発用PC101は、複数の車載診断プログラムを作成する。
そして、開発用PC101は、複数の車載診断プログラムを管理サーバ102へアップロードする(S52)。管理サーバ102は、アップロードされた複数の車載診断プログラムを、OMA−DMなどの無線を使用した遠隔デバイス管理プロトコルを使用して、無線通信網(不図示)を介して車載組み込み機器103へ送信する(S53)。
車載組み込み機器103は、受信した複数の車載診断プログラムを、対応するプロセッサ上で実行する。各プロセッサは、車載診断プログラムの実行により取得される診断情報を基に、管理サーバ102や車載組み込み機器103自身に対してアクションを行う(S54)。また、管理サーバ102は、車載診断プログラムから取得される情報を基に、車載診断プログラムへの指示を行うことで、車載組み込み機器103の遠隔診断を行う。
図6は、本発明の実施の形態3にかかるプログラム生成装置の一例である開発用PC101のハードウェア構成を示すブロック図である。開発用PC101は、CPU(Central Processing Unit)110と、RAM(Random Access Memory)120と、ROM(Read Only Memory)130と、IF部140と、ハードディスク150とを備える。
また、ハードディスク150は、不揮発性記憶装置である。ハードディスク150は、OS151、GUI開発ツール152、DMT管理部153、ライブラリ154、フィルタリングルール155、変換ルール156、モデルコンパイラ157a〜157c、ソースプログラム158a〜158c及び機械語プログラム159a〜159cを格納する。
GUI開発ツール152は、発明の実施の形態1にかかるプログラム生成プログラムを含み、GUIによりDMTによる構成情報、ノード状態情報の設計を支援するためのソフトウェアである。DMT管理部153は、通信処理情報111を含むプログラムモジュールであり、例えば、オブジェクト指向言語におけるクラス等である。ライブラリ154は、車載診断プログラムに用いられる各種ライブラリ関数、クラスライブラリ、API(Application Programing Interface)等である。フィルタリングルール155は、ログをフィルタリングするためのルールを定義した情報である。変換ルール156は、制御系ECUとの通信に用いられる車載診断プロトコルとの変換に関するルールを定義した情報である。モデルコンパイラ157a〜157cは、それぞれ、DMTのモデル情報又は分割されたモデル情報から所定のプロセッサに対応するソースコードを生成するためのコンパイラである。尚、モデルコンパイラ157a〜157cは、後述する車載組み込み機器103が備える3つの情報系ECUのそれぞれに対応するものである。ソースプログラム158a〜158cは、それぞれ、モデルコンパイラ157a〜157cにより生成されたソースプログラムである。機械語プログラム159a〜159cは、それぞれ、ソースプログラム158a〜158cからコンパイルされたバイナリ形式のプログラムである。
CPU110は、開発用PC101における各種処理、RAM120、ROM130、IF部140及びハードディスク150へのアクセス等を制御する。IF部140は、管理サーバ102との通信を行う。
開発用PC101は、CPU110が、RAM120、ROM130又はハードディスク150に格納されたOS151、GUI開発ツール152等を読み込み、実行する。これにより、開発用PC101は、構成情報生成部12、ノード状態情報生成部13、変換部14及びプログラム生成部15として機能し、車載診断プログラムを生成することができる。
尚、管理サーバ102のハードウェア構成は、車載組み込み機器103との無線通信機能を有するものであればよく、公知技術により実現可能であるため、図示及び説明を省略する。
図7は、本発明の実施の形態3にかかる車載組み込み機器103の構成を示すブロック図である。まず、車載組み込み機器103の概要について説明する。車載組み込み機器103は、無線通信モジュール34を搭載している。そのため、管理サーバ102は、無線通信ネットワーク(不図示)を経由して、車載組み込み機器103の遠隔診断や遠隔操作が可能である。管理サーバ102は、車載組み込み機器103を単一のデバイスとして認識する。よって、車載組み込み機器103のデバイス管理には、単一のDMTを用いることができる。
車載組み込み機器103は、複数の情報系ECU31〜33及び複数の制御系ECU37及び38を備える。そのため、車載診断プログラムは、単一のDMTで表現可能であるが、複数のECUにまたがる処理を行う必要がある。
制御系ECU37及び38は、管理サーバ102からの制御及び管理対象である。制御系ECU37及び38は、管理サーバ102と直接通信できない情報系ECU33に接続されている。
情報系ECU31は、無線通信機能があり、車載診断プログラムには、車載LANn1を介した情報系ECU間通信の実装が必要となる。
情報系ECU33と制御系ECU37及び38は、CAN(Controller Area Network)などの非IP(Internet Protocol)系の車載LANBに接続されており、管理サーバ102からのDMTアクセスは、制御系ECU専用の通信プロトコルに変換する必要がある。
管理サーバ102から制御及び管理する車載センサー35及び36(GPS(Global Positioning System)、ジャイロセンサなど)やアプリケーションは、複数の情報系ECU上に分散している。
続いて、車載組み込み機器103の詳細な構成について説明する。車載組み込み機器103は、情報系ECU31〜33、無線通信モジュール34、センサー35及び36、制御系ECU37及び38、車載LANn1及びn2を備える。情報系ECU31〜33は、車載LANn1を介して相互に接続されている。ここで、車載LANn1は、MOST(Media Oriented Systems Transport)などのマルチメディア系の情報系ECU向けLANである。また、MOSTには、MAMAC(MOST Asynchronous Medium Access Control)というTCP/IP通信をサポートした仕様もある。ここでは、車載LANn1は、MAMACによるTCP/IP通信を可能とする。
情報系ECU31は、無線通信モジュール34及びセンサー35を制御する。情報系ECU31は、無線通信モジュール34経由で管理サーバ102と通信を行うことが可能である。無線通信モジュール34は、例えば、通信方式としてW−CDMA 3G携帯電話、デバイス管理用の通信プロトコルとしてOMA DMを使用することができる。
また、情報系ECU31には、デバイス管理プロトコルアダプタ411、DMTアクセスIF412、アプリケーション413、DMT管理アプリ416、アプリケーション417及び418が予めインストールされている。そして、情報系ECU31は、管理サーバ102から無線通信モジュール34を介してDMTアクセスIF414及び車載診断プログラム415を受信して実行する。尚、DMTアクセスIF414は、開発用PC101又は管理サーバ102により付加されるものとする。
情報系ECU32は、アプリケーション421、DMTアクセスIF422及びアプリケーション423が予めインストールされている。そして、情報系ECU32は、情報系ECU31からDMTアクセスIF424及び車載診断プログラム425を受信して実行する。
情報系ECU33は、センサー36を制御する。また、情報系ECU33は、車載LANn2を介して制御系ECU37及び38を制御する。車載LANn2は、CANなどの制御系ECU向けのLANである。情報系ECU33は、CANなどの制御系ECU向けLANやKWP2000などの診断プロトコルを使用して制御系ECU37及び38にアクセスすることが可能である。そして、情報系ECU32は、情報系ECU31からDMTアクセスIF431及び車載診断プログラム432を受信して実行する。
車載診断プログラム415、425及び432は、開発用PC101により生成され、管理サーバ102から配信されたアプリケーションである。
情報系ECU31内のDMT管理アプリ416は、車載のDMTを管理するアプリケーションであり、管理サーバ102又は他の情報系ECU(32又は33)からのDMTへのアクセスを可能にする。
DMTアクセスIF412、414、422、424及び431は、情報系ECU上で動作するアプリケーションから、DMT管理アプリ416内のDMTにアクセスするためのAPIである。
情報系ECU32及び33内のDMTアクセスIF422、424又は431とリンクされたアプリケーション423、車載診断プログラム425又は432は、TCP/IPのソケット通信などを用いて、情報系ECU31内のDMT管理アプリ416と通信を行う。
一方、DMTアクセスIF412、414、422、424又は431とリンクされないアプリケーション417、418及び421は、ログ出力という形で車載診断プログラム415、425及び432にイベントを通知することができる。
情報系ECU31上のデバイス管理プロトコルアダプタ411は、OMA DMなどのデバイス管理プロトコルが実装され、管理サーバ102とDMT管理アプリ416間のインタフェースをとる。
ここで、本発明の実施の形態3の特徴を以下の(1)〜(3)の3つに分けて説明する。
(1)本発明の実施の形態3は、DMTのノード構成及び各ノードの振る舞いを基に、組み込み装置内の複数のプロセッサ上で実行される機械語プログラムを、自動生成する仕組みということができる。
(1−1)DMTの任意のノードに独自の状態を持たせることが可能であり、ノード自体の状態及び当該状態におけるノードの振る舞いを状態モデル図として記述可能となる。尚、状態モデル図については、図11を用いて後述する。状態モデル図上に記載されたノードの状態は、ノードの振る舞いを記述するための特別な状態である。そのため、OMA−DMなどのデバイス管理プロトコルで定義されるノードの状態とは異なる。すなわち、各ノードに対して同時に複数の状態を持たせることができる。
また、MDAでは、UML図を基にコード生成をしていた。しかし、本発明の実施の形態3では、DMTのモデル(DMTの構成図および、ノード単位の状態モデル図)を基にコード生成を行う。MDAとの差異は、GUI開発ツールやDMT管理部で吸収する。それは、本発明の実施の形態3がDMTを使用した遠隔デバイス管理に対象を絞り、それらに特化した構造であるためである。
MDAでは、クラス図毎にアクション記述可能な状態モデル図が作成される。しかし、本発明の実施の形態3では、DMTのノード単位に状態モデル図が作成される。仮に、UMLに強引に対応させた場合、各ノードは、ノードクラスのサブクラスにも相当し(図15)、また、インスタンスにも相当する。すなわち、モデル設計時のノードの定義と同時に、クラス及びインスタンス相当のものが同時に生成されることになる。また、各ノードは、状態モデル図の振る舞いとなるアクション記述言語上では、自らクラスとしてもインスタンスとしても扱うことが可能となり、一般的なUMLやMDAの考え方と大きく異なる。
DMTベースのモデル導入により、MDAとの決定的な違いが生じる。それは、インスタンス生成、削除などオブジェクト指向のライフサイクル管理に相当するロジックをモデル上で各ノードに対して表記する必要がなくなることである。
本発明の実施の形態3では、モデル設計時のノード定義と同時に、開発ツールがノードアクセス(OMA−DMのGet、Replace、Execなど)に対応する非同期イベントを、定義されたノードに対して、自動的に割り当てることを可能とする。
さらに、本発明の実施の形態3により、管理サーバからのノード追加コマンド(OMA−DMのAddなど)受信により、ノードの実体(インスタンス)を実機上で、自動的に生成/活性状態にすることを可能とする。
(1−2)複数のプロセッサを備える車載組み込み機器103の場合、DMT内の任意のノードを特定の情報系ECUに割り当てることが可能である。この情報を基に、異なるプロセッサ向け診断プログラムのアクション記述部のソースコードを同時に生成する。これにより、単一のDMTから複数の情報系ECUのコードを自動生成することが可能となる。
モデルコンパイラのモデル分割機能が、ノードとプロセッサの割り当て情報を考慮し、モデルを複数に分割する。分割されたモデルは、それぞれのプロセッサに対応したモデルコンパイラのソースコード変換機能によって、モデルからソースコードに変換される。これにより、プロセッサ間の通信を意識することなく、診断プログラムを作成することが可能となる。
また、プロセッサ間通信に関する処理は、後述する図8の「DMT管理部」および「DMTアクセスI/F」内で隠蔽される。よって、情報系ECU31のアクション記述部は、情報系ECU32に割り当てられたノードにアクセス(=読み書き)するだけで、ECU間の通信を行うことが可能となる。
(1−3)DMTベースの状態モデル図上で、アクション記述言語によるノードの振る舞いを記述することが可能となる。さらに、車載診断記述言語(ASAM−MCD2 ODXなど)で記載されたスクリプト内で定義されたパラメータと対応するイベント及びDMTへのアクセスイベント(同期または非同期)を生成可能となる。
(2)本発明の実施の形態3は、自動生成された機械語プログラムの構成方法ということができる。
(2−1)生成される機械語プログラムは、「DMT管理部」「アクション記述部」から構成され、車載組み込み機器103上で実行されるバイナリプログラムである。このバイナリプログラムには、追加機能として「制御系ECU車載診断プロトコル変換部」「ログフィルタリング処理部」を含めることができる。
図8は、本発明の実施の形態3にかかる生成される車載診断プログラムの概念を示す図である。DMTd5は、開発用PC101において生成された診断対象の車載組み込み機器103をデバイス管理するための木構データである。そして、開発用PC101は、DMTd5内の各ノード処理を異なる情報系ECUに割り当てることができる。ここでは、DMTd5内の各ノードのうち、情報系ECU33に割り当てられたノード群を分割DMTd51、情報系ECU32に割り当てられたノード群を分割DMTd52とする。開発用PC101は、GUI開発ツールにより、DMTd5から分割DMTd51と分割DMTd52とに分割する。
DMTアクセスIF521及びアプリケーション522は、分割DMTd52に対応する情報系ECU32のアプリケーションである。情報系ECU32のアプリケーションは、管理サーバ102又は他の情報系ECUからの通知を、DMTイベントとしてDMTアクセスI/F経由で受信することが可能である。尚、DMTアクセスIF521は、プラグインI/Fであってもよい。
車載診断プログラム51は、分割DMTd51に対応する情報系ECU33用の車載診断プログラムである。車載診断プログラム51は、DMTアクセスIF511、DMT管理部512、アクション記述部513、ログフィルタリング処理部514、フィルタリングルール515、変換ルール516及び制御系ECU車載診断プロトコル変換部517を備える。
アクション記述部513は、状態モデル図に定義されたアクション情報に基づいて生成されるプログラムコードに相当する部分である。アクション記述部513は、DMTのモデル情報から自動生成された機械語で構成される機能部である。ここでは、DMT管理部512やログフィルタリング処理部514などで発生したイベントに対するアクションが記述される。アクション記述部513から、同一プロセッサ内で動作する動的リンク可能なライブラリ関数53を関数呼び出しすることができる。
アクション記述部513からDMTのノードにアクセスすることにより、無線ネットワーク上の管理センタや情報系ECU上で動作する他のアプリケーションに対するフィードバックを行うことが可能となる。フィードバック処理対象のアプリケーションは、例えば、DMTアクセスIF511がリンクされたものである。
DMT管理部512、制御系ECU車載診断プロトコル変換部517及びログフィルタリング処理部514は、ライブラリとして提供されたものである。これにより、車載組み込み機器103特有のロジックが隠蔽される。そのため、サービスエンジニアが記述するのは、アクション記述部513を生成する元となるアクション情報のみとなる。そして、各機能部は、互いにリンクされ一つのバイナリとなる。
DMT管理部512は、分割DMTd51とアクション記述部513とのインタフェースをとる機能部である。そして、DMT管理部512は、アクション記述部513に対し、イベントを発生させることが可能である。また、DMT管理部512において、DMTへのアクセス方法の違いを吸収することも可能である。
ここで、DMTへのアクセス方法には、下記の2つの方法があり、本発明の実施の形態3により、1つのスクリプトで複数のDMTアクセス手段を表現することが可能となった。
(方法1)管理サーバ102又は情報系ECU内のローカルのプログラムによるDMTアクセス後、直ぐにDMT自体にアクセス内容が反映される。これにより、高いリアルタイム性が必要な車載診断などで使用することができる。
(方法2)管理サーバ102又は情報系ECU内ローカルのプログラムによるDMTアクセス後、直ぐにはDMTにアクセス内容が反映されず、アクセス内容は、コミット命令で反映される。また、ロールバック命令にも対応する。例えば、1つの診断機能が、関連する複数のノードから構成される場合、ノード間の同期をとる場合に使用することができる。
これは、OMA−DMなどのプロトコルをサポートしたデバイス管理システムからのDMTのノードに対するアクセス(GETやREPLACE命令あるいは、COMMITやROLLBACK命令)を基に、DMT管理部512がノードアクセスとは異なるタイミングでアクション記述部513に対する非同期イベントを生成するからである。
図9は、本発明の実施の形態3にかかる方法2におけるDMTアクセス管理の例を示す図である。ここでは、DMT管理アプリ416から車載診断プログラム51へのDMTアクセスを例として挙げる。車載診断プログラム51には、少なくともDMT管理部512、ノードデータ管理部512a及びアクション記述部513が含まれるものとする。
まず、DMT管理アプリ416は、DMT管理部512へノードAに対するREPLACE命令を送信する(S301)。そして、DMT管理部512は、ノードデータ管理部512aへその旨を通知する(S302)。次に、DMT管理アプリ416は、DMT管理部512へノードBに対するREPLACE命令を送信する(S303)。そして、DMT管理部512は、ノードデータ管理部512aへその旨を通知する(S304)。但し、この時点で、DMT管理部512は、アクション記述部513へイベント通知を行っていない。
そして、DMT管理アプリ416は、DMT管理部512へCOMMIT命令を送信する(S305)。これに伴い、ノードデータ管理部512aは、アクション記述部513へノードAに対するREPLACE命令を送信する(S306)。続いて、ノードデータ管理部512aは、アクション記述部513へノードBに対するREPLACE命令を送信する(S307)。つまり、アクション記述部513は、COMMIT命令をトリガにノードA及びBを新しいデータに更新する。尚、更新前のデータは、DMT管理部512内でバックアップされる。
その後、DMT管理アプリ416は、DMT管理部512へROLLBACK命令を送信する(S308)。これに伴い、ノードデータ管理部512aは、アクション記述部513へノードAに対するREPLACE命令を送信する(S309)。続いて、ノードデータ管理部512aは、アクション記述部513へノードBに対するREPLACE命令を送信する(S310)。つまり、アクション記述部513は、ROLLBACK命令をトリガにノードA及びBを更新前のデータに戻す。
図8に戻って説明する。DMT管理部512を用いることにより、サービスエンジニアが、管理センタや他の情報系ECUとの通信処理を一切記述する必要がなくなった。
制御系ECU車載診断プロトコル変換部517は、生成されたイベントを、車載診断記述言語で記載された変換ルール516を基に、KWP2000などの制御系ECU向けの車載診断プロトコルを用いたシーケンス処理に変換する機能部である。制御系ECU車載診断プロトコル変換部517は、D−PDU API541を介してMVCI Protocol Stack & 車載LANドライバ542と接続されている。そして、D−PDU API541は、CAN等の車載LANにより制御系ECU551〜553と接続されている。
ログ収集機能56は、複数の情報系ECU上で動作するアプリケーションのログを収集する。ログフィルタリング処理部514は、複数のプロセッサからログ収集機能56により収集されたログを、フィルタリングルール515を用いて解析し、アクション記述部513に対するイベントを発生させる機能部である。尚、ログをフィルタリングする技術については、公知なものであるため、詳細な説明を省略する。
(3)本発明の実施の形態3は、上記手段に対応したGUI開発ツール及びモデルコンパイラということができる。
(3−1)GUI開発ツール上の開発ツール上での簡単な作業(ドラッグ&ドロップなど)から、DMTベースのモデルを作成することができる。さらに、ログフィルタリングのルールや制御系ECU向けの車載診断プロトコルの変換ルールとDMTベースのモデルとを連携させることができる。
(3−2)単一のDMTベースのモデルから、C言語やC++言語などのソースコードに変換するモデルコンパイラをGUI開発ツールで用いることができる。ここで定義するモデルコンパイラは、下記の3つの機能を含むものである。
(3−2−1)単一のDMTモデルから、自動生成可能な複数の(UMLなどの)モデルに、プロセッサ単位で分割できる機能。
(3−2−2)分割された(UMLなどの)モデルから、各プロセッサのシステム構成(システムコールやメモリマップなど)に特化したソースコードを自動生成できる機能。
(3−2−3)DMTモデル上でのノードへのアクセスを、DMT管理部512内のクラスライブラリへのアクセスに自動変換する機能。
続いて、図10を用いて、本発明の実施の形態3にかかるGUI開発ツールの概念を説明する。まず、開発用PC101は、ユーザから診断対象の車載組み込み機器103における機能の構成をノードにより表現した場合の位置及びノード間の階層の関係をドラッグ&ドロップ等で受け付ける。そして、開発用PC101は、受け付けたノードに関する位置及び階層の関係から階層構造で表したDMTのモデル情報を生成する(S31)。尚、開発用PC101は、既存のDMTのモデル情報をインポートにより受け付けても構わない。
次に、開発用PC101は、ユーザから任意のノードに対して、情報系ECUの割り当てを受け付ける。そして、開発用PC101は、受け付けた情報系ECUを当該ノードにおける割り当て情報すなわちプロパティ値として設定する(S32)。尚、このとき、開発用PC101は、別ウィンドウによりプロパティ値を受け付けてもよい。
続いて、開発用PC101は、ユーザから任意のノードの選択をマウスクリック等により受け付ける。このとき、開発用PC101は、状態モデル図の作成画面を別ウィンドウにより表示する(S33)。ここで、開発用PC101は、選択したノードの状態と当該状態におけるノードの振る舞いであるアクション情報とをユーザから受け付ける。そして、開発用PC101は、受け付けた状態とアクション情報とから状態モデル図を表示し、ノード状態情報とする。
さらに、開発用PC101は、当該ノードにおいて、ログからアクション記述部513で理解可能なイベントを作成することができる(S34)。ログは、複数のプロセッサ上で動作するアプリケーションの処理結果の一例である。そして、ログを加工するルールを当該ノードに関連付けることができる。
また、開発用PC101は、当該ノードにおいて、アクション記述部513が発行するイベントと車載診断プロトコルの対応付けを記述することができる(S35)。車載診断プロトコルは、組み込み機器に搭載され、かつ、複数のプロセッサにより制御される制御装置との通信を行うためのルールの一例である。そして、車載診断プロトコルの変換ルールを当該ノードに関連付けることができる。また、開発用PC101は、ODXなどの車載診断言語のインポート及びエクスポートに対応することができる。
さらに、開発用PC101は、提供ライブラリ(車載診断のライブラリを含む)やイベント一覧から、マウスでの選択などで状態モデル図内に取り込むことができる(S36)。また、開発用PC101は、当該ノードで用いる一部のユーザ定義ライブラリを作成することができる(S37)。これにより、MDAで作成されたノードのモデルと連携可能となる。
図11は、本発明の実施の形態3にかかる状態モデル図及びアクション記述言語の例を示す図である。尚、図11内で使用されているアクション記述言語は、Executable UML向けのものに改良を加えたものである。但し、本発明の実施の形態3にかかるアクション記述言語は、Executable UMLを基礎としなくても構わない。
また、図11内DMTセッションとは、情報系ECU上のアプリケーションと車載組み込み機器103内のDMT管理アプリ416との間で1対1に張られる、仮想的な接続の単位を指す。例えば、開発用PC101により生成された車載診断プログラムとDMT管理アプリ416との間で、ルートノードが"./Device"であるDMTセッションが確立されると、配下のノード("./Device/NodeA"など)へのDMTイベントの発生が許可される。
図11は、DMTのノード"./OMADM/DiagMon/Battery/Level"に対する振る舞いを記述した例であり、処理の流れは下記のようになる。
(1)"./OMADM/DiagMon/Battery"をルートノードとするDMTセッションがオープンされたら、"./OMADM/DiagMon/Battery/Cycle"に記述された値の定周期タイマを起動する。
(2)定周期タイマの割り込み処理で、バッテリ残量の読み出しを行う。
(3)DMTセッションオープン中に、管理センタから、"./OMADM/DiagMon/Battery/Level"に対するGET命令が発行されたら、バッテリ残量の値を管理センタに返す。
次に、図11中に記載されているアクション記述言語、すなわち、アクション情報について簡単に説明する。まず、「Select Cycle from Node where selected.URL="./OMADM/DiagMon/Baterry/Cycle"」とは、ノードクラスから、URLが"./OMADM/DiagMon/Baterry/Cycle"であるノード"Cycle"を選択することを示す。また、「TIM:TimerStart(Cycle.NodeValue,タイマ割り込み処理中);」とは、定周期タイマを起動することを示す。そして、「generate "DMTセッションオープン状態移行通知"」とは、非同期イベント"DMTセッションオープン状態移行通知"を発行することを示す。
続いて、情報系ECU32内の車載診断プログラム425上で動作するノードBが、情報系ECU33内の車載診断プログラム432上で動作するノードAに対してReplaceイベント(=ノードの値を書き換える)を発行する例について、図12及び図13のシーケンス図を用いて説明する。
図12は、本発明の実施の形態3にかかる情報系ECU33用の車載診断プログラムの処理の流れを示すシーケンス図である。ここでは、情報系ECU31内のDMT管理アプリ416と情報系ECU33内の車載診断プログラム432との間のプロセッサ間通信を含む処理を示す。自動追加部分61は、クラス定義やインスタンス生成、DMT管理部へのノードの登録に関する処理である。UMLベースのMDAでは、自動追加部分61についてもユーザが記述する必要があった。しかし、本発明の実施の形態3では、実装部分62の処理のみをアクション情報にて記述するだけでよい。
図13は、本発明の実施の形態3にかかる情報系ECU32用の車載診断プログラムの処理の流れを示すシーケンス図である。ここでは、情報系ECU31内のDMT管理アプリ416と情報系ECU32内の車載診断プログラム425との間のプロセッサ間通信を含む処理を示す。自動追加部分63は、クラス定義やインスタンス生成、DMT管理部へのノードの登録に関する処理である。UMLベースのMDAでは、自動追加部分63についてもユーザが記述する必要があった。しかし、本発明の実施の形態3では、実装部分64の処理のみをアクション情報にて記述するだけでよい。
また、通常のMDAでは、情報系ECU33内の車載診断プログラム432と情報系ECU32内上の車載診断プログラム425のそれぞれに対して、UMLのモデルを作成しなければならない。しかし、本発明の実施の形態3では、複数の情報系ECU上での動作を1個のDMT上で表現することが可能となる。
尚、本発明の実施の形態3では、下記の2つのソフトウェア開発手法を用いて、ほぼ同じ構成のソースコードおよびバイナリが生成されるものと仮定する。
(1)MDAを用いたコード自動生成(実施の形態3では、UMLのモデルから、オブジェクト指向言語であるC++言語のソースコードに変換されるものとする。)
(2)本発明を用いたコード自動生成(実施の形態3では、DMTベースのモデルから、オブジェクト指向言語であるC++言語のソースコードに変換されるものとする。)
図14は、本発明の実施の形態3にかかる状態モデル図の例を示す図である。ここでは、あるノードの状態として、「初期状態」及び「Replaceイベント処理中」の2つを定義し、それぞれに「ノードAに値Xを設定する」とのアクション情報を定義していることを示す。尚、Replaceイベントを受信した場合に、「Replaceイベント処理中」に遷移する。つまり、本発明の実施の形態3により図14に示すようなわずかな量の記述のみで、複雑なシーケンスを伴ったソフトウェアを記述できることを示す。
図15は、関連技術により設計した場合のクラス図の例を示す図である。図15のクラス図は、ノードクラス及びノードA及びノードBとの関係を表したクラス図である。しかし、このクラス図は、MDAにDMTベースの自動生成を強引に持ち込んだ場合のもので、UMLのモデリングとしてはあまり望ましくない形となってしまう。
尚、UMLのモデリング例としては、本来、図16のように記述するのが望ましいと考えられる。図16は、関連技術により設計した場合のUMLモデリングの例を示す図である。この場合、そもそもノードA及びノードBはクラスとして抽出されない。しかし、図16から自動コード生成可能な振る舞いを記述するには、オブジェクト指向のかなり高度な技術が必要となり、本発明が対象とする課題を解決することができない。
図17は、本発明の実施の形態3にかかるDMTを用いたデバイス管理の概念を示す図である。まず、プロトコルアダプタアプリケーション571及びDMT制御アプリケーション572により、管理サーバ102から無線通信モジュール34を介して車載組み込み機器103内のDMTの各ノードへのアクセスが可能である。また、指定したノードにアクセスがあった場合、イベント通知を受け取ることが可能である。
また、プラグインアプリケーション573は、ノード"./Device/Battery"に割り当てられているバッテリ残量検出アプリケーションである。プラグインアプリケーション573は、ノードへのアクセスがあると、イベントが通知される。そのため、管理サーバ102や車載組み込み機器103内のローカルのアプリケーションは、各ノードに対してAdd/Get/Replace/Execを行うことが可能となる。
以上のことから、本発明の実施の形態3の効果は、以下のとおりである。まず、開発者ではないサービスエンジニアでも、複数の情報系ECUや制御系ECUを扱った診断プログラムを簡単に作成することが可能となる。本発明により車載組み込み機器向けにアレンジされた自動コード生成手法を取り入れることにより、各ECUのシステム依存部分(プログラミング言語、OSなど)の習得が不要となる。また、コーディング工程が省略できる。また、OMA DMや車載診断などの車載固有技術に関する制御I/Fが、「アクション記述部」と連携可能なライブラリとして提供されるため、プログラミングのために、各技術や関連するミドルウエアの仕様を習得する時間を短縮することができる。
さらに、DMTのノードの構成及びノードへのアクセスに対する動作のみ知っていればよく、OMA DMの通信シーケンスなどの詳細を知る必要がなくなる。1つのDMTツリーから複数の情報系ECUのコードを自動生成できるため、情報系ECU間の通信を設計及びコーディングする必要がなくなる。また、ノードと情報系ECUの対応付け、つまり割り当てのみ指定すればよい。
そして、複数のアプリケーションから異なるアクセス方法で、DMTの各ノードへのアクセスが行われるような場合においても、1つの手順のみで対応可能となる。DMTのアクセス方法の違いは、「DMT管理部」で吸収できるためである。また、アクション記述部で、ロールバック処理を全く意識する必要がなくなるという利点もある。
このように、本発明の実施の形態3により、複数のプロセッサを備え、所定の機能を実現する組み込み機器における広範な専門知識が必要とせずに、当該組み込み機器で実行されるプログラムを容易に生成することができる。
<その他の発明の実施の形態>
DMT Adminは、OSGi R4 mobileやJSR232で定義された、OSGiに対応したJava(登録商標)アプリケーションから、DMTにアクセスするためのパッケージの仕様である。DMT Adminにより、複数のJavaアプリケーションから同一のノードを共有することが可能である。但し、DMT Adminは、高機能ではあるが、かなり複雑なAPIである。
ISO(International Organization for Standardization)化された制御系ECU向けのXML(Extensible Markup Language)ベースの車載診断言語として、ASAM−MCD2 ODXがある。ASAM−MCD2 ODXは、あるコマンドからKWP2000などの車載診断プロトコルに変換するルールなどが記載されている。
本発明により生成されたプログラムを無線経由で組み込み機器内の情報系ECUへ転送する技術及びログや診断情報を管理センタに送信する技術については、任意の無線通信技術を用いることが可能である。尚、車載向け無線通信サービスとしてG−BOOK(登録商標)等がある。但し、G−BOOK等では、本発明により生成されたプログラムを無線経由で組み込み機器内の情報系ECUへ転送することはできない。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。
非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、コンピュータプログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
を備えるプログラム生成装置。
(付記2)前記構成情報生成手段は、各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
前記プログラム生成手段は、前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする付記1に記載のプログラム生成装置。
(付記3)前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラをさらに備え、
前記プログラム生成手段は、前記分類後構成情報から対応するプロセッサを特定し、特定したプロセッサに対応するモデルコンパイラを選択して、選択したモデルコンパイラを用いて前記分類後構成情報から当該特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする付記2に記載のプログラム生成装置。
(付記4)前記プログラム生成手段は、前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする付記1乃至3のいずれか1項に記載のプログラム生成装置。
(付記5)前記構成情報生成手段は、前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする付記1乃至4のいずれか1項に記載のプログラム生成装置。
(付記6)前記ノード状態情報生成手段は、前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする付記1乃至5のいずれか1項に記載のプログラム生成装置。
(付記7)前記ノード状態情報生成手段は、前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする付記1乃至6のいずれか1項に記載のプログラム生成装置。
(付記8)複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成を複数のノードにより定義した構成情報を生成し、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成し、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報と、前記変換したプログラムコードとを含めて生成する、
プログラム生成方法。
(付記9)各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする付記8に記載のプログラム生成方法。
(付記10)前記分類後構成情報から対応するプロセッサを特定し、
前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラの中から、前記特定したプロセッサに対応するモデルコンパイラを選択し、
前記選択したモデルコンパイラを用いて前記分類後構成情報から前記特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする付記9に記載のプログラム生成方法。
(付記11)前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする付記8乃至10のいずれか1項に記載のプログラム生成方法。
(付記12)前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする付記8乃至11のいずれか1項に記載のプログラム生成方法。
(付記13)前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする付記8乃至12のいずれか1項に記載のプログラム生成方法。
(付記14)前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする付記8乃至13のいずれか1項に記載のプログラム生成方法。
(付記15)複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成の複数のノードによる定義を受け付け、
当該受け付けた定義に基づき構成情報を生成し、
前記構成情報に含まれる複数のノードのいずれかの指定を受け付け、
当該指定されたノードにおけるノードの状態と当該状態におけるノードの振る舞いであるアクション情報との定義を受け付け、
当該受け付けた前記ノードの状態と前記アクション情報途に基づきノード状態情報を生成し、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
予め記憶部に格納された前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を取得し、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記取得した通信処理情報と、前記変換したプログラムコードとを含めて生成する、
処理をコンピュータに実行させるプログラム生成プログラム。
(付記16)各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
ことを特徴とする付記15に記載のプログラム生成プログラム。
(付記17)前記分類後構成情報から対応するプロセッサを特定し、
前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラの中から、前記特定したプロセッサに対応するモデルコンパイラを選択し、
前記選択したモデルコンパイラを用いて前記分類後構成情報から前記特定したプロセッサで実行可能なプログラムを生成する
ことを特徴とする付記16に記載のプログラム生成プログラム。
(付記18)前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする付記15乃至17のいずれか1項に記載のプログラム生成プログラム。
(付記19)前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする付記15乃至18のいずれか1項に記載のプログラム生成プログラム。
(付記20)前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする付記15乃至19のいずれか1項に記載のプログラム生成プログラム。
(付記21)前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする付記15乃至20のいずれか1項に記載のプログラム生成プログラム。
(付記22)外部と無線通信可能なプロセッサを含む複数のプロセッサを備え、所定の機能を実現する組み込み機器と、
前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
無線通信により前記組み込み機器に対して制御を行う遠隔制御手段と、
を備える遠隔管理装置と、を備え、
前記遠隔制御手段は、前記生成した複数のプログラムを前記組み込み機器へ送信し、
前記組み込み機器は、前記遠隔管理装置から受信した複数のプログラムのそれぞれを、前記複数のプロセッサのうち対応するプロセッサにおいて実行させ、
前記複数のプロセッサは、各プロセッサが実行するプログラムに含まれる前記変換したプログラムコードに基づく処理を行い、当該プログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う
ことを特徴とする組み込み機器の遠隔管理システム。
1 プログラム生成装置
11 記憶部
111 通信処理情報
12 構成情報生成部
13 ノード状態情報生成部
14 変換部
15 プログラム生成部
10 遠隔管理システム
1a 遠隔管理装置
16 遠隔制御部
2 組み込み機器
21a プロセッサ
21b プロセッサ
21n プロセッサ
100 遠隔車載診断システム
101 開発用PC
110 CPU
120 RAM
130 ROM
140 IF部
150 ハードディスク
151 OS
152 GUI開発ツール
153 DMT管理部
154 ライブラリ
155 フィルタリングルール
156 変換ルール
157a モデルコンパイラ
157b モデルコンパイラ
157c モデルコンパイラ
158a ソースプログラム
158b ソースプログラム
158c ソースプログラム
159a 機械語プログラム
159b 機械語プログラム
159c 機械語プログラム
102 管理サーバ
103 車載組み込み機器
31 情報系ECU
32 情報系ECU
33 情報系ECU
34 無線通信モジュール
35 センサー
36 センサー
37 制御系ECU
38 制御系ECU
n1 車載LAN
n2 車載LAN
411 デバイス管理プロトコルアダプタ
412 DMTアクセスIF
413 アプリケーション
414 DMTアクセスIF
415 車載診断プログラム
416 DMT管理アプリ
417 アプリケーション
418 アプリケーション
421 アプリケーション
422 DMTアクセスIF
423 アプリケーション
424 DMTアクセスIF
425 車載診断プログラム
431 DMTアクセスIF
432 車載診断プログラム
d5 DMT
d51 分割DMT
d52 分割DMT
51 車載診断プログラム
511 DMTアクセスIF
512 DMT管理部
512a ノードデータ管理部
513 アクション記述部
514 ログフィルタリング処理部
515 フィルタリングルール
516 変換ルール
517 制御系ECU車載診断プロトコル変換部
521 DMTアクセスIF
522 アプリケーション
53 ライブラリ関数
541 D−PDU API
542 MVCI Protocol Stack & 車載LANドライバ
551 制御系ECU
552 制御系ECU
553 制御系ECU
56 ログ収集機能
571 プロトコルアダプタアプリケーション
572 DMT制御アプリケーション
573 プラグインアプリケーション
61 自動追加部分
62 実装部分
63 自動追加部分
64 実装部分
SC1 ソースコード
SC2 ソースコード

Claims (10)

  1. 複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
    前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
    前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
    前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
    前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
    を備えるプログラム生成装置。
  2. 前記構成情報生成手段は、各ノードに前記複数のプロセッサのいずれかを割り当てた割当情報を含めて前記構成情報を生成し、
    前記プログラム生成手段は、前記構成情報に含まれる割当情報に基づいて、各ノードを割り当てられた前記複数のプロセッサのいずれかに分類して複数の分類後構成情報を生成し、前記生成された複数の分類後構成情報から前記複数のプログラムを生成する
    ことを特徴とする請求項1に記載のプログラム生成装置。
  3. 前記複数のプロセッサのそれぞれに対応したプログラムを生成する複数のモデルコンパイラをさらに備え、
    前記プログラム生成手段は、前記分類後構成情報から対応するプロセッサを特定し、特定したプロセッサに対応するモデルコンパイラを選択して、選択したモデルコンパイラを用いて前記分類後構成情報から当該特定したプロセッサで実行可能なプログラムを生成する
    ことを特徴とする請求項2に記載のプログラム生成装置。
  4. 前記プログラム生成手段は、前記複数のプログラムを生成する際に、ノードアクセスに対応する非同期イベントをさらに含めることを特徴とする請求項1乃至3のいずれか1項に記載のプログラム生成装置。
  5. 前記構成情報生成手段は、前記構成情報としてDMT(Device Management Tree)を用いることを特徴とする請求項1乃至4のいずれか1項に記載のプログラム生成装置。
  6. 前記ノード状態情報生成手段は、前記ノード状態情報に、前記複数のプロセッサ上で動作するアプリケーションの処理結果を加工するルールを関連付けることを特徴とする請求項1乃至5のいずれか1項に記載のプログラム生成装置。
  7. 前記ノード状態情報生成手段は、前記ノード状態情報に、前記組み込み機器に搭載され、かつ、前記複数のプロセッサにより制御される制御装置との通信を行うためのルールを関連付けることを特徴とする請求項1乃至6のいずれか1項に記載のプログラム生成装置。
  8. 複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成を複数のノードにより定義した構成情報を生成し、
    前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成し、
    前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
    前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報と、前記変換したプログラムコードとを含めて生成する、
    プログラム生成方法。
  9. 複数のプロセッサが搭載され、所定の機能を実現する組み込み機器における当該所定の機能の構成の複数のノードによる定義を受け付け、
    当該受け付けた定義に基づき構成情報を生成し、
    前記構成情報に含まれる複数のノードのいずれかの指定を受け付け、
    当該指定されたノードにおけるノードの状態と当該状態におけるノードの振る舞いであるアクション情報との定義を受け付け、
    当該受け付けた前記ノードの状態と前記アクション情報途に基づきノード状態情報を生成し、
    前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換し、
    予め記憶部に格納された前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を取得し、
    前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記取得した通信処理情報と、前記変換したプログラムコードとを含めて生成する、
    処理をコンピュータに実行させるプログラム生成プログラム。
  10. 外部と無線通信可能なプロセッサを含む複数のプロセッサを備え、所定の機能を実現する組み込み機器と、
    前記複数のプロセッサ間の通信処理が実装されたプログラムモジュールである通信処理情報を予め記憶する記憶手段と、
    前記組み込み機器における前記所定の機能の構成を複数のノードにより定義した構成情報を生成する構成情報生成手段と、
    前記構成情報に定義された複数のノードごとに、ノードの状態と当該状態におけるノードの振る舞いであるアクション情報とを定義したノード状態情報を生成するノード状態情報生成手段と、
    前記ノード状態情報に定義されたアクション情報から、当該ノードの状態におけるノードの振る舞いに対応する処理を実現するプログラムコードへ変換する変換手段と、
    前記構成情報に基づいて、前記複数のプロセッサごとに対応した複数のプログラムを、前記記憶手段に記憶された前記通信処理情報と、前記変換したプログラムコードとを含めて生成するプログラム生成手段と、
    無線通信により前記組み込み機器に対して制御を行う遠隔制御手段と、
    を備える遠隔管理装置と、を備え、
    前記遠隔制御手段は、前記生成した複数のプログラムを前記組み込み機器へ送信し、
    前記組み込み機器は、前記遠隔管理装置から受信した複数のプログラムのそれぞれを、前記複数のプロセッサのうち対応するプロセッサにおいて実行させ、
    前記複数のプロセッサは、各プロセッサが実行するプログラムに含まれる前記変換したプログラムコードに基づく処理を行い、当該プログラムに含まれる通信処理に基づいて、プロセッサ間の通信を行う
    ことを特徴とする組み込み機器の遠隔管理システム。
JP2010205344A 2010-09-14 2010-09-14 プログラム生成装置、方法及びプログラム並びに遠隔管理システム Expired - Fee Related JP5605109B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010205344A JP5605109B2 (ja) 2010-09-14 2010-09-14 プログラム生成装置、方法及びプログラム並びに遠隔管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010205344A JP5605109B2 (ja) 2010-09-14 2010-09-14 プログラム生成装置、方法及びプログラム並びに遠隔管理システム

Publications (2)

Publication Number Publication Date
JP2012063826A true JP2012063826A (ja) 2012-03-29
JP5605109B2 JP5605109B2 (ja) 2014-10-15

Family

ID=46059511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010205344A Expired - Fee Related JP5605109B2 (ja) 2010-09-14 2010-09-14 プログラム生成装置、方法及びプログラム並びに遠隔管理システム

Country Status (1)

Country Link
JP (1) JP5605109B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015080105A (ja) * 2013-10-17 2015-04-23 日本電気株式会社 通信中継装置、通信中継システム、中継定義情報の更新方法及び更新プログラム
JP2015080106A (ja) * 2013-10-17 2015-04-23 日本電気株式会社 管理装置、管理装置の制御方法及びプログラム
JP2019516145A (ja) * 2017-04-07 2019-06-13 深▲せん▼市元征科技股▲ふん▼有限公司 自動車の遠隔診断の方法及び装置
JP2019533854A (ja) * 2016-09-15 2019-11-21 オラクル・インターナショナル・コーポレイション 分散イベント処理システムのためのグラフ生成
JP2020535548A (ja) * 2017-09-28 2020-12-03 オラクル・インターナショナル・コーポレイション 状態管理永続性
CN112445491A (zh) * 2020-11-19 2021-03-05 深圳市元征科技股份有限公司 文件序列处理方法、装置、终端设备及存储介质
US11394769B2 (en) 2017-03-17 2022-07-19 Oracle International Corporation Framework for the deployment of event-based applications
US11503107B2 (en) 2017-03-17 2022-11-15 Oracle International Corporation Integrating logic in micro batch based event processing systems
US11615088B2 (en) 2016-09-15 2023-03-28 Oracle International Corporation Complex event processing for micro-batch streaming

Citations (4)

* 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システムの制御装置と方法、制御プログラム生成方法
JP2000131194A (ja) * 1998-10-28 2000-05-12 Honda Motor Co Ltd 車両診断プログラム作成装置及び車両診断装置
JP2008198143A (ja) * 2007-02-15 2008-08-28 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
US20090112567A1 (en) * 2007-10-30 2009-04-30 International Business Machines Corporation Preliminary data representations of a deployment activity model

Patent Citations (4)

* 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システムの制御装置と方法、制御プログラム生成方法
JP2000131194A (ja) * 1998-10-28 2000-05-12 Honda Motor Co Ltd 車両診断プログラム作成装置及び車両診断装置
JP2008198143A (ja) * 2007-02-15 2008-08-28 Fuji Electric Fa Components & Systems Co Ltd プログラマブルコントローラ用プログラム作成支援装置およびプログラム作成支援方法
US20090112567A1 (en) * 2007-10-30 2009-04-30 International Business Machines Corporation Preliminary data representations of a deployment activity model

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015080105A (ja) * 2013-10-17 2015-04-23 日本電気株式会社 通信中継装置、通信中継システム、中継定義情報の更新方法及び更新プログラム
JP2015080106A (ja) * 2013-10-17 2015-04-23 日本電気株式会社 管理装置、管理装置の制御方法及びプログラム
US11977549B2 (en) 2016-09-15 2024-05-07 Oracle International Corporation Clustering event processing engines
JP2019533854A (ja) * 2016-09-15 2019-11-21 オラクル・インターナショナル・コーポレイション 分散イベント処理システムのためのグラフ生成
US11657056B2 (en) 2016-09-15 2023-05-23 Oracle International Corporation Data serialization in a distributed event processing system
US11615088B2 (en) 2016-09-15 2023-03-28 Oracle International Corporation Complex event processing for micro-batch streaming
JP7009456B2 (ja) 2016-09-15 2022-01-25 オラクル・インターナショナル・コーポレイション 分散イベント処理システムのためのグラフ生成
US11573965B2 (en) 2016-09-15 2023-02-07 Oracle International Corporation Data partitioning and parallelism in a distributed event processing system
US11394769B2 (en) 2017-03-17 2022-07-19 Oracle International Corporation Framework for the deployment of event-based applications
US11503107B2 (en) 2017-03-17 2022-11-15 Oracle International Corporation Integrating logic in micro batch based event processing systems
JP2019516145A (ja) * 2017-04-07 2019-06-13 深▲せん▼市元征科技股▲ふん▼有限公司 自動車の遠隔診断の方法及び装置
JP2022130612A (ja) * 2017-09-28 2022-09-06 オラクル・インターナショナル・コーポレイション 状態管理永続性
JP7098721B2 (ja) 2017-09-28 2022-07-11 オラクル・インターナショナル・コーポレイション 状態管理永続性
JP2020535548A (ja) * 2017-09-28 2020-12-03 オラクル・インターナショナル・コーポレイション 状態管理永続性
JP7434431B2 (ja) 2017-09-28 2024-02-20 オラクル・インターナショナル・コーポレイション 状態管理永続性
CN112445491A (zh) * 2020-11-19 2021-03-05 深圳市元征科技股份有限公司 文件序列处理方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
JP5605109B2 (ja) 2014-10-15

Similar Documents

Publication Publication Date Title
JP5605109B2 (ja) プログラム生成装置、方法及びプログラム並びに遠隔管理システム
US10509718B2 (en) System and method for automatically generating software testing scripts from test cases
US8732658B2 (en) Layered interface in an industrial environment
Szvetits et al. Systematic literature review of the objectives, techniques, kinds, and architectures of models at runtime
US8745577B2 (en) End to end automation of application deployment
KR101087439B1 (ko) 소프트웨어 컴포넌트화
US9632771B2 (en) Association of metadata with source code and applications and services premised thereon
US8250521B2 (en) Method and apparatus for the design and development of service-oriented architecture (SOA) solutions
US8527985B2 (en) Techniques for rapid deployment of service artifacts
Hallerbach et al. Context-based configuration of process variants
US20100280863A1 (en) Automated Model Generation For Computer Based Business Process
CN104335170A (zh) 云应用部署
WO2008113718A1 (en) Method, system and computer program for distributing customized software products
Prehofer et al. From internet of things mashups to model-based development
US8271934B2 (en) Developing software applications with increased modularity
US20120109708A1 (en) Evaluating pattern-based constraints on business process models
CN114115838A (zh) 一种基于分布式组件和云平台的数据交互方法及***
CN103026337A (zh) 配给组件的提取和重构
EP4365731A1 (en) Device deployment method for ai model, system, and storage medium
CN112947896B (zh) 一种基于有向图的组件依赖分析方法
Mei et al. Internetware: A New Software Paradigm for Internet Computing
US10958514B2 (en) Generating application-server provisioning configurations
CN113485894A (zh) 一种数据采集方法、装置、设备及可读存储介质
WO2008015110A2 (en) Methods, apparatus and computer programs for modelling computer programs
US12015528B2 (en) Multi-functional integrated network modal management system and management method for user-defined network modal

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140710

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140811

R150 Certificate of patent or registration of utility model

Ref document number: 5605109

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees