(57)【要約】【課題】  記憶媒体の設計変更がなされた場合も、アプリケーションやデータへの影響を最小限に留めることができるオブジェクト指向型車両用制御システムを提供する。【解決手段】  記憶媒体への保存処理にかかるメソッドを、記憶媒体に個別に対応する個別媒体管理クラス１０３Ｃ，１０４Ｃに組み込み、他方、データを、その保存形態である永続化対応データに変換するメソッドを永続化対応データ変換処理クラス１０１Ｃに組み込んで、該永続化対応データ変換処理クラス１０１Ｃにアプリからのデータ保存依頼を受け付けるようにする。変換された永続化対応データは、永続化管理クラス１０２Ｃにより、永続化対応データに付与された媒体特定参照情報を参照して、対応する記憶媒体の個別媒体管理クラス１０３Ｃ，１０４Ｃに受け渡される。アプリから見てデータ保存先となる記憶媒体を、永続化対応データ変換処理クラス１０１Ｃにより隠蔽することができる。【選択図】    図２
2008077220.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを含んで構成され、車載用電子機器を前記ＣＰＵにより、オブジェクト指向のプログラム処理により動作制御する制御主体を有した車両用制御装置であって、前記プログラムが、
前記動作制御に関与するアプリケーションクラスからの保存要求対象となるデータを自身のインスタンスとし、該自身のインスタンスを永続化保存するための保存要求を前記アプリケーションクラスから受け付ける永続化インターフェースを実装し、前記保存要求を受けることにより、保存先となる記憶媒体を特定するために参照すべき情報である媒体特定参照情報を付与した形で、前記自身のインスタンスを保存用データに変換する永続化対応データクラスと、
前記保存用データの保存先候補となる記憶媒体又は記憶媒体群に個別に対応する形で設けられ、保存要求を受けた前記保存用データを対応する記憶媒体に保存する個別媒体管理クラスと、
前記永続化対応データクラスから受け渡される前記保存用データを、これに付与された前記媒体特定参照情報を参照することにより、データ保存先となる記憶媒体に対応する前記個別媒体管理クラスを選択し、その選択された個別媒体管理クラスに前記保存用データを受け渡す永続化管理クラスと、
を有してなることを特徴とするオブジェクト指向型車両用制御装置。
【請求項２】
前記永続化管理クラスから前記保存用データの前記記憶媒体への書込要求を受け付けるデータ保存インターフェースを実装するとともに、個々の記憶媒体へのデータ保存メソッドを搭載したデータ管理クラスを有し、
各前記個別媒体管理クラスは、該データ管理クラスを継承するサブクラスとして構築されたものである請求項１記載のオブジェクト指向型車両用制御装置。
【請求項３】
前記媒体特定参照情報は前記データの種別を特定するデータ種別特定情報であり、
前記データ種別特定情報が特定するデータ種別と前記個別媒体管理クラスとの対応関係を示す媒体／データ種別対応関係情報が予め用意されており、前記永続化管理クラスは、該媒体／データ種別対応関係情報を参照することにより、前記保存用データの種別に対応した個別媒体管理クラスを選択して、これに前記保存用データを受け渡す請求項１又は請求項２に記載のオブジェクト指向型車両用制御装置。
【請求項４】
前記永続化管理クラスは、前記媒体特定参照情報としてデータサイズ情報を参照し、前記データサイズに応じてデータ保存先となる記憶媒体に対応する前記個別媒体管理クラスを選択し、前記保存用データをこれに受け渡す請求項１ないし請求項３のいずれか１項に記載のオブジェクト指向型車両用制御装置。
【請求項５】
前記記憶媒体として、仕様の互いに異なる不揮発性メモリが指定されている請求項１ないし請求項４のいずれか１項に記載のオブジェクト指向型車両用制御装置。
【請求項６】
前記永続化管理クラスは、前記データが、前記アプリケーションクラスの状態を示す変数の設定値を含んだ状態データである場合に、前記不揮発性メモリの一つであるＥＥＰＲＯＭに対応づけられた前記個別媒体管理クラスを選択し、前記データが画像データである場合に、前記不揮発性メモリの一つであるフラッシュメモリに対応付けられた前記個別媒体管理クラスを選択するものである請求項５記載のオブジェクト指向型車両用制御装置。
【請求項７】
前記永続化管理クラスは、前記データが、予め定められた重要データである場合に、前記状態データ用のＥＥＰＲＯＭとは別のＥＥＰＲＯＭを選択するものである請求項６記載のオブジェクト指向型車両用制御装置。
【請求項８】
前記永続化管理クラスは、前記データが、通信ログ又は機器の動作ログからなるログデータである場合に、前記画像データ用のフラッシュメモリとは別のフラッシュメモリを選択するものである請求項６又は請求項７に記載のオブジェクト指向型車両用制御装置。
【請求項９】
前記永続化対応データクラスは、前記保存用データを一義的に特定するための識別ＩＤを、前記自身のインスタンスを格納するアドレスから生成し、当該識別ＩＤを付与した形で該保存用データを前記永続化管理クラスに受け渡すものであり、
前記個別媒体管理クラスは、該永続化管理クラスから受け渡された保存用データを、前記識別ＩＤを付与した形で対応する記憶媒体に書き込むものである請求項１ないし請求項８のいずれか１項に記載のオブジェクト指向型車両用制御装置。
【請求項１０】
前記永続化対応データクラスは、前記自身のインスタンスをシリアライズするためのシリアライズインターフェースを実装し、そのシリアライズされたデータを前記保存用データとして前記永続化管理クラスに受け渡す請求項９記載のオブジェクト指向型車両用制御装置。
【請求項１１】
前記永続化対応データクラスは、前記自身のインスタンスが予め定められたサイズを超過しているか、又は、予めシリアライズが完了しているデータである場合に、前記シリアライズインターフェースによるシリアライズ処理を実行せずに、該データを前記保存用データとするものである請求項１０記載のオブジェクト指向型車両用制御装置。
【請求項１２】
前記シリアライズが完了しているデータが画像データである請求項１１記載のオブジェクト指向型車両用制御装置。
【請求項１３】
前記永続化インターフェースは、既に保存されている前記保存用データを読み出して前記インスタンスに復元する復元要求を、該保存用データに対応するインスタンスを格納する前記アドレスを特定可能な形で前記アプリケーションクラスから受け付けるものであり、
前記永続化管理クラスは、保存されている前記保存用データを特定する識別ＩＤの一覧を、保存先となる記憶媒体が特定可能な形で記憶する保存リストを有するとともに、受け付けた前記復元要求が特定する前記アドレスに基づいて前記識別ＩＤを特定し、さらに、当該識別ＩＤを前記保存リスト上で検索して保存先の記憶媒体を特定し、特定された記憶媒体に対応する前記個別媒体管理クラスに該識別ＩＤを受け渡すものであり、
各前記個別媒体管理クラスは、受け取った前記識別ＩＤに対応する保存用データを対応する記憶媒体から読み出して、前記永続化管理クラスを経て前記永続化対応データクラスに該保存用データを受け渡すものであり、
前記永続化対応データクラスは該保存用データを前記自身のインスタンスに復元する請求項９ないし請求項１２のいずれか１項に記載のオブジェクト指向型車両用制御装置。
【請求項１４】
前記シリアライズインターフェースは、前記復元時にシリアライズされた前記保存用データをデシリアライズするものである請求項請求項１３記載のオブジェクト指向型車両用制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、オブジェクト指向型車両用制御装置に関する。
【背景技術】
【０００２】
【特許文献１】特開２００１−２７０３９９号公報
【０００３】
近年、自動車に搭載される電子機器の制御は、ＥＣＵと呼ばれるマイコン（ＭＰＵ）を含んだハードウェアユニットを用いて行なうのが主流となっている。特許文献１に例示するごとく、この制御を、オブジェクト指向により設計されたコンピュータシステム（以下、「オブジェクト指向システム」ともいう）により実現する方式も普及している（特許文献１）。オブジェクト指向システムの採用により、制御に関与する機器のハードウェア構成の相違を、ソフトウェアを構成するブジェクトの内部に隠蔽することができ、制御対象毎に各制御プログラムの独立性を高めることができる。オブジェクト指向型のプログラミング言語としては、例えばＪａｖａ（登録商標）やＣ＋＋が知られ、いずれもオブジェクトを単位として、プログラムの記述を行なう。オブジェクトは自律性をもつ有機的なプログラムの単位であり、データと手続きを一体化した形で記述される。プログラム全体としての仕事は、オブジェクト間のメッセージ交換により進められる。メッセージを受信することにより起動される手続きはメソッドと呼ばれる。オブジェクトへの仕事の依頼は、メソッドを介してのみ行なうことができ、オブジェクト内のデータへの直接のアクセスは禁止される。
【０００４】
オブジェクト指向システムにおいては、各オブジェクトが、自身に組み込まれているメソッドを呼び出すメッセージを他のオブジェクトから受け、そのメソッドによる実行結果をメッセージ元へ返す形で処理が実行されてゆく。ここで、オブジェクトは、クラス（クラスオブジェクト）と、そのクラスを用いて作成されるインスタンス（インスタンスオブジェクト）とに大別できる。クラスには、データが格納される属性の定義や、機能処理を記述したメソッドなどが記述されている。クラスはオブジェクトのテンプレートに相当するものであり、汎用的なメソッドの集合と変数の定義を有するのみで、このままでは具体的な処理を直接実行することができない。そこで、実際の処理内容を規定するオブジェクトであるインスタンスが、属性に具体的な値を代入し、また、クラスに記述されているメソッドのうち、実際に使用するものへのリンクを張るためのポインタを記述する、等の手続を経て作成される。なお、インスタンスは、あくまでクラスをテンプレートとして新たに作成されるものでであり、元のクラスが書き換えられるのではない。また、実際の処理は、対応するクラスから作成された個々のインスタンスがメッセージを受け取り、該対応するクラスのメソッドへ制御を受け渡たす形で進んでゆく。
【０００５】
オブジェクト指向システムでは、全ての情報がオブジェクトとしてモデリングされ、クラスとして記述される。そして、プログラムはそのクラスの集合体であり、各クラスから生成される多数のインスタンスが情報の実体を有することになる。この場合、問題になるのは、インスタンスは通常、ワークメモリ（ＲＡＭ）上に生成されるものであり、プログラムが終了するとメモリ上からは消去されてしまう点である。そこで、作成したインスタンスが後に再利用できるよう、インスタンスの内容をファイル等の保存形式に変換して（不揮発性の）記憶媒体に保存することにより、プログラムが終了しても、必要なときにそのインスタンスをいつでも復元できるようにする機能が考え出されている。この機能のことを、インスタンスの永続化という。
【０００６】
前述のごとく、インスタンスの作成元となるクラスは、データが格納される属性の定義（「フィールド」という）と、その属性を使って実現する機能処理を記述したメソッドとより構築される。そして、このクラスのオブジェクトとしての状態を、フィールド上の変数に実際の値を格納する形で特定することによりインスタンスが作成される。「インスタンスの永続化」とは、そのオブジェクトとしての状態、すなわち属性のデータを保存することに他ならない。
【０００７】
なお、属性は、例えば制御に使用するパラメータ等であって、そのパラメータ値が属性のデータの実体として把握される。しかし、画像や音声のデータファイル、データベースを構築するテキスト列、あるいはログデータなど、表示装置や印刷装置あるいは音声出力部などからなる出力デバイスへの出力処理対象となる受動的なデータ群についても、記憶媒体に書き込んで保存したり、あるいは出力のために読み出したりする処理は、基本的には、保存や書込といった媒体へのアクセスを司るクラスを用いて、オブジェクト指向的に実行される。従って、その保存ないし読出し処理のために、該データを組み込んだインスタンスが作成される点に変わりはなく、保存の実行によりインスタンスの永続化が行なわれているのである。
【０００８】
近年、自動車用の制御システムでは、記憶媒体として多数の不揮発性メモリが使用され、また、データの種類によってＥＥＰＲＯＭやフラッシュメモリなど、種別の異なる不揮発性メモリが混在して使用されることも多くなってきている。例えば、ＥＥＰＲＯＭは比較的小容量であるがバイト単位で消去／書込の双方が可能であるのに対し、フラッシュメモリでは大容量ではあるもののバイト単位での書込みのみが可能であって、消去はそれより大きいブロック（セクタ）単位でしか実行できない、という違いがある。従って、例えば、前者は書換えが頻繁に生ずる制御パラメータの保存用に使用し、後者は画像データや大容量テキストデータの保存用に使用するなどの使い分けがなされていたのであるが、フラッシュメモリはアクセス速度がＥＥＰＲＯＭよりも大きく、また価格の低廉化も進んでいるので、これまでＥＥＰＲＯＭを使用していた分野においても、これをフラッシュメモリに転換する設計変更が実施される場合がある。他方、ＲＡＭの電源バックアップを考慮することにより、不揮発性メモリへのデータ格納を、ＲＡＭ上でのデータ退避に変更したり、その逆を行なうような設計変更事例も考えられる。さらに、信頼性向上のため、１つのデータを複数の記憶媒体に冗長化して記憶する方式へ設計変更することも考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
データ（インスタンス）の永続化を行なう場合、その保存先となる記憶媒体を指定しなければならないが、この保存先は従来、保存要求を行なうアプリケーション（以下、「アプリ」とも略記する）側で指定するようになっていた。そして、アプリケーション側では、図８に示すように、保存対象となるデータを自立的に取得して、自ら保存先となる媒体を決定し、各媒体に記憶依頼する形で対象となるデータを転送することとなる。しかし、この方式はアプリと記憶媒体とが密接に関係しているため、上記のように保存先の記憶媒体の種別が変更されると、その影響を非常に受けやすく、アプリの大幅な書換えが余儀なくされる場合がある。特に、不揮発性メモリが関与する設計変更の場合、記憶できるデータサイズや、消去可能単位が相違するために影響が特に大きい問題がある。
【００１０】
本発明の課題は、記憶媒体の設計変更がなされた場合も、アプリケーションやデータへの影響を最小限に留めることができるオブジェクト指向型車両用制御システムを提供することにある。
【課題を解決するための手段及び発明の効果】
【００１１】
本発明のオブジェクト指向型車両用制御システムは、ＣＰＵを含んで構成され、車載用電子機器をＣＰＵにより、オブジェクト指向のプログラム処理により動作制御する制御主体を有した車両用制御装置であって、上記の課題を解決するために該プログラムが、
動作制御に関与するアプリケーションクラスからの保存要求対象となるデータを自身のインスタンスとし、該自身のインスタンスを永続化保存するための保存要求をアプリケーションクラスから受け付ける永続化インターフェースを実装し、保存要求を受けることにより、保存先となる記憶媒体を特定するために参照すべき情報である媒体特定参照情報を付与した形で、上記自身のインスタンスを保存用データに変換する永続化対応データクラスと、
保存用データの保存先候補となる記憶媒体又は記憶媒体群に個別に対応する形で設けられ、保存要求を受けた保存用データを対応する記憶媒体に保存する個別媒体管理クラスと、
永続化対応データクラスから受け渡される保存用データを、これに付与された媒体特定参照情報を参照することにより、データ保存先となる記憶媒体に対応する個別媒体管理クラスを選択し、その選択された個別媒体管理クラスに保存用データを受け渡す永続化管理クラスと、を有してなることを特徴とする。
【００１２】
上記の構成によると、記憶媒体への保存処理に係るメソッドを、記憶媒体に個別に対応する個別媒体管理クラスに組み込み、他方、データを、その保存形態である保存用データに変換するメソッドを永続化対応データクラスに組み込んで、該永続化対応データクラスにアプリからのデータ保存依頼を受け付けるようにした。そして、変換された保存用データは、永続化管理クラスにより、保存用データに付与された媒体特定参照情報を参照して、対応する記憶媒体の個別媒体管理クラスに受け渡されるようにしたので、アプリから見てデータ保存先となる記憶媒体を、永続化対応データクラスにより隠蔽することができる。このことは、図８の従来方式と比較して、図７のごとく、アプリからみて記憶媒体と処理すべきデータとの関係が入れ替わることを意味する。その結果、アプリやデータ構造の影響をほとんど受けることなく、記憶媒体の仕様変更や交換に係る設計変更を実施することが可能となる。
【００１３】
上記プログラムには、永続化管理クラスから保存用データの記憶媒体への書込要求を受け付けるデータ保存インターフェースを実装するとともに、個々の記憶媒体へのデータ保存メソッドを搭載したデータ管理クラスを設けることができる。この場合、各個別媒体管理クラスは、該データ管理クラスを継承するサブクラスとして構築することができる。記憶媒体の設計変更があった場合、このデータ管理クラスのメソッドを変更するだけでシステム変更に容易に対応することができる。
【００１４】
次に、媒体特定参照情報はデータの種別を特定するデータ種別特定情報とすることができる。そして、データ種別特定情報が特定するデータ種別と個別媒体管理クラスとの対応関係を示す媒体／データ種別対応関係情報を予め用意し、永続化管理クラスを、該媒体／データ種別対応関係情報を参照することにより、保存用データの種別に対応した個別媒体管理クラスを選択して、これに保存用データを受け渡すものとして構築することができる。
【００１５】
上記の構成は、データの種別に応じて記憶先となる媒体の種別を間接的に特定することを意味する。記憶媒体種別を直接特定するものとして媒体特定参照情報を記述すると、記憶媒体種別の設計変更があったとき、この媒体特定参照情報の内容も変更しなければならないから、アプリ上でも最低限、該媒体特定参照情報を書き直す設計変更作業が必要となる。しかし、上記のごとく、媒体特定参照情報をデータ種別特定情報とすることで、記憶媒体種別の設計変更が生じた場合は、永続化管理クラス内で参照する媒体／データ種別対応関係を修正すればこと足り、アプリ側で取り扱うデータの種別に変更がない限り、媒体変更の影響がアプリに一切及ばなくなる。
【００１６】
他方、永続化管理クラスは、媒体特定参照情報としてデータサイズ情報を参照し、データサイズに応じてデータ保存先となる記憶媒体に対応する個別媒体管理クラスを選択し、保存用データをこれに受け渡すものとすることもできる。この方式でも、記憶先となる媒体の種別がデータのサイズに応じて間接的に特定される形になるので、媒体変更の影響が同様にアプリに及ばない。この方式は、もちろん、データの種別に応じて記憶先となる媒体の種別を間接的に特定する方式と併用することが可能である。
【００１７】
前述のごとく、記憶媒体として、仕様の互いに異なる不揮発性メモリが指定されている場合に本発明の効果発現の寄与が大である。永続化管理クラスは、例えば、データが、アプリケーションクラスの状態を示す変数の設定値を含んだ状態データである場合に、不揮発性メモリの一つであるＥＥＰＲＯＭに対応づけられた個別媒体管理クラスを選択し、データが画像データである場合に、不揮発性メモリの一つであるフラッシュメモリに対応付けられた個別媒体管理クラスを選択するものとすることができる。属性は多くの場合パラメータ値であり、容量が比較的小さく、また高頻度の書換えに柔軟に対応できるＥＥＰＲＯＭへの保存が好適である。
【００１８】
この場合、永続化管理クラスは、データが、予め定められた重要データである場合に、状態データ用のＥＥＰＲＯＭとは別のＥＥＰＲＯＭを選択するものとしておくと、重要データを独立したＥＥＰＲＯＭに保存できるので、異なるセキュリティレベルの設定にも柔軟に対応できる。また、データが、通信ログ又は機器の動作ログからなるログデータである場合には、時系列的な多量のデータ保存要求がなされるので、画像データ用のフラッシュメモリとは別のフラッシュメモリを選択するものとしておけば便利である。
【００１９】
永続化対応データクラスは、保存用データを一義的に特定するための識別ＩＤを、自身のインスタンスを格納するアドレスから生成し、当該識別ＩＤを付与した形で該保存用データを永続化管理クラスに受け渡すものとすることができる。また、個別媒体管理クラスは、該永続化管理クラスから受け渡された保存用データを、識別ＩＤを付与した形で対応する記憶媒体に書き込むものとすることができる。
【００２０】
上記のごとく、永続化対応データクラスの、保存要求対象となるデータを含んだインスタンスの格納先を示すアドレスから、保存用データの識別ＩＤを一義的に作成し、その識別ＩＤを付けて対応する記憶媒体に保存することで、復元時にも、そのアドレス（これは、プログラムが終了しても消滅することがない）から、復元すべき保存用データの識別ＩＤを容易に特定でき、データ読出し・復元時の便宜を図ることができる。
【００２１】
次に、永続化対応データクラスは、自身のインスタンスをシリアライズするためのシリアライズインターフェースを実装し、そのシリアライズされたデータを保存用データとして永続化管理クラスに受け渡すものとして構成できる。これにより、比較的複雑な構造のデータであってもシリアライズにより単純なバイト列構造を有したデータに変換でき、記憶媒体上での保存処理を大幅に簡略化することができる。シリアライズに特に適したデータは、アプリケーションクラスの状態を示す変数の設定値を含んだ状態データである。
【００２２】
なお、データが予め定められたサイズを超過しているか、又は、予めシリアライズが完了しているデータは、永続化対応データクラスにおいて、シリアライズインターフェースによるシリアライズ処理を実行せずに保存用データに変換することが効率的である。特に、画像データは、元からバイト列データとして記述されており、シリアライズが完了しているデータに該当し、サイズも大きいので、一律なシリアライズ処理を回避してそのまま保存用データとすることで、処理効率を高めることができる。
【００２３】
次に、データ読出し（復元時）を考慮した構成として、次のようなものが可能である。すなわち、永続化インターフェースは、既に保存されている保存用データを読み出してインスタンスに復元する復元要求を、前記自身のインスタンスを特定可能な形でアプリケーションクラスから受け付けるものとすることができる。永続化管理クラスは、保存されている保存用データを特定する識別ＩＤの一覧を、保存先となる記憶媒体が特定可能な形で記憶する保存リストを有するとともに、受け付けた復元要求が特定する上記アドレスに基づいて識別ＩＤを特定し、さらに、当該識別ＩＤを保存リスト上で検索して保存先の記憶媒体を特定し、特定された記憶媒体に対応する個別媒体管理クラスに該識別ＩＤを受け渡すものとすることができる。各個別媒体管理クラスは、受け取った識別ＩＤに対応する保存用データを対応する記憶媒体から読み出して、永続化管理クラスを経て永続化対応データクラスに該保存用データを受け渡すものとすることができる。永続化対応データクラスは該保存用データを自身のインスタンスに復元するものとすることができる。
【００２４】
永続化管理クラスに設ける保存リストは、保存先となる記憶媒体を直接特定する形で作成してもよいし、前述のごとく、記憶媒体（又は記憶媒体群）と一義的に対応付けられたデータ種別により、間接特定する形で作成してもよい。例えば、後者の場合、データ復元時には、保存要求対象データのインスタンスを格納するアドレスとデータ種別の特定情報とをアプリ側から取得し、対応する保存リストにて、そのアドレスから作られた識別ＩＤを検索する。これにより、その識別ＩＤにて保存されている記憶媒体を速やかに特定することができ、保存用データの読出し及び復元をスムーズに実施することが可能となる。なお、シリアライズされた保存用データを復元するために、シリアライズインターフェースは、復元時にシリアライズされた保存用データをデシリアライズするものとして構成しておく必要がある。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を、図面を参照して説明する。
図１は、本発明のオブジェクト指向型車両用制御システムにおける制御主体４０の構成を、オブジェクト指向プラットフォームの観点から概念的に示す図である。本実施形態では、制御主体４０は、Ｊａｖａで記述されたプログラムに基づく情報処理を実行する演算処理装置として構成されている。プログラム実行装置１は、Ｊａｖａによるバイトコードを実行する回路が組み込まれたＣＰＵであり、プログラム実行部３、メソッド検索部４、メモリコントローラ５などを具備する。メモリ２は、ＲＯＭまたはＲＡＭ、あるいは両者を包括した記憶領域を示しており、プログラムデータ領域６や検索用テーブル領域７などの記憶領域が設定される（なお、図１では、プログラム実行装置１を便宜上単一のＣＰＵとして扱っているが、構成はこれに限られるものではなく、例えば、ＣＡＮ（Controller Area Network）等の車載ネットワークにより接続されたＣＰＵ群であってもよい。
【００２６】
前記プログラムデータ領域６には、Ｊａｖａのソースプログラムよりコンパイルされたバイトコードのプログラムが格納される（以下、１アドレス分のプログラムを「プログラムデータ」という）。検索用テーブル領域７には、メソッドの呼出し時に、呼び出されたメソッドが格納されている場所を検索するために、図示しないクラステーブルやメソッドテーブルなどが格納される。
【００２７】
プログラム実行装置１におけるメモリアクセスは、メモリコントローラ５により制御される。プログラム実行部３は、メモリコントローラ５に、読み出すべきプログラムデータの格納先を示すプログラムアドレスを与えることにより、前記プログラムデータ領域６から該当するプログラムデータを得て実行する。特にそのプログラムデータがメソッド呼出しを示すメッセージであったとき、プログラム実行部３は、そのメッセージをメソッド検索部４に送信して、メソッドの格納先の検索を要請する。
【００２８】
メッセージには、メッセージの対象となるオブジェクトの所属するクラス名、実行すべきメソッドのメソッド名、引数、戻り値の有無やその型を示すデータが含まれる。メソッド検索部４は、このメッセージにより、メッセージの対象となるオブジェクトが所属するクラスや指定されたメソッドを認識した後、前記検索用テーブルを用いてメソッドの格納場所を検索する。この検索処理は、メモリコントローラ５に、検索用テーブル領域７内で必要な検索用情報の格納先のアドレス（図中、「テーブルアドレス」と示す）を指定して情報の読出しを行なわせることにより実現する。なおテーブルアドレスは、各検索用テーブルのエントリ位置を示すポインタ、またはメモリ２において前記エントリ位置に該当する領域のアドレスを示す値により与えられる。
【００２９】
メソッド検索部４は、検索結果として、指定されたメソッドの格納場所の先頭アドレス（以下「プログラム先頭アドレス」という）を取得し、このプログラム先頭アドレスを、プログラムカウンタとしてプログラム実行部３に送信する。プログラム実行部３は、図示しないスタック用のメモリ領域に前記メソッドのための作業領域を設定するとともに、前記プログラムカウンタが示すアドレスを起点としてプログラムデータ領域６から前記メソッドを構成する各プログラムデータを順次読み出して、各プログラムデータに応じた処理を実行する。
【００３０】
制御主体４０の実行プログラムは、上記オブジェクト指向プラットフォーム上に構築されるものである。図２は、そのプログラムの構成を示すＵＭＬ（Unified Modeling Language）表記に従ったクラス図である。該プログラムは、次のようなオブジェクトによって構成されている。
・永続化対応データクラス１０１Ｃ：動作制御に関与するアプリケーションクラス１０６Ｃからの保存要求対象となるデータを自身のインスタンスとし、該自身のインスタンスを永続化保存するための保存要求をアプリケーションクラス１０６Ｃから受け付ける永続化インターフェース１０１Ｋを実装し、上記保存要求を受けることにより、保存先となる記憶媒体を特定するために参照すべき情報である媒体特定参照情報を付与した形で、データを保存用データに変換する。
・個別媒体管理クラス１０３Ｃ，１０４Ｃ：保存用データの保存先候補となる記憶媒体又は記憶媒体群に個別に対応する形で設けられ、保存要求を受けた保存用データを対応する記憶媒体に保存する。
・永続化管理クラス１０２Ｃ：続化対応データ変換処理クラス１０１Ｃから受け渡される保存用データを、これに付与された媒体特定参照情報を参照することにより、データ保存先となる記憶媒体に対応する個別媒体管理クラス１０３Ｃ，１０４Ｃを選択し、その選択された個別媒体管理クラス１０３Ｃ，１０４Ｃに保存用データを受け渡す。
【００３１】
・データ管理クラス１０５Ｃ：永続化管理クラス１０２Ｃから保存用データの記憶媒体への書込要求を受け付けるデータ保存インターフェース１０５Ｉを実装するとともに、個々の記憶媒体へのデータ保存メソッドを搭載する。各個別媒体管理クラス１０３Ｃ，１０４Ｃは、該データ管理クラス１０５Ｃを継承するサブクラスとして構築されている。
【００３２】
上記構成において、記憶媒体への保存処理に係るメソッドは、記憶媒体に個別に対応する個別媒体管理クラス１０３Ｃ，１０４Ｃに組み込まれている。また、データを、その保存形態である保存用データに変換するメソッドは、永続化対応データクラス１０１Ｃに組み込まれている。そして、該永続化対応データクラス１０１Ｃがアプリからのデータ保存依頼を受け付ける。変換された保存用データは、永続化管理クラス１０２Ｃにより、保存用データに付与された媒体特定参照情報を参照して、対応する記憶媒体の個別媒体管理クラス１０３Ｃ，１０４Ｃに受け渡される。その結果、アプリから見てデータ保存先となる記憶媒体は、永続化対応データクラス１０１Ｃにより隠蔽される。
【００３３】
その結果、アプリやデータ構造の影響をほとんど受けることなく、記憶媒体の仕様変更や交換に係る設計変更を実施することが可能となる（例えば、ＥＥＰＲＯＭ、フラッシュメモリ、ＲＡＭ及び通信接続された他の制御主体（ＥＣＵ）の間での相互転換など）。また、副次的な効果として、記憶媒体の二重化（例えば、フラッシュメモリの記憶領域を二重化したり、ＲＡＭ上にバックアップ領域を追加するなど）など、データ信頼性向上のための冗長化に係る設計変更にも容易に対応することができる。
【００３４】
媒体特定参照情報は、具体的には、図３に示すごとく、データの種別を特定するデータ種別特定情報とされている。そして、データ種別特定情報が特定するデータ種別と個別媒体管理クラス１０３Ｃ，１０４Ｃとの対応関係を示す媒体／データ種別対応関係情報が用意されている。図２の永続化管理クラス１０２Ｃは、該媒体／データ種別対応関係情報を参照することにより、保存用データの種別に対応した個別媒体管理クラス１０３Ｃ，１０４Ｃを選択して、これに保存用データを受け渡すものとして構築されている。なお、データ種別は、例えば、アプリ側でデータの保存／復元に使用するクラスの属性等から特定できるが、これに限られるものではない。例えば、保存要求対象データのインスタンスを格納するアドレスを、永続化管理クラスが有する、該当するデータ種別に対応付けられた配列（後述の保存リスト保存リスト２００Ａ〜２００Ｄ：例えば、画像データリストあるいは通常データリスト）に登録することによって、データの種別を特定するように構成することも可能である。
【００３５】
記憶媒体としては、仕様の互いに異なる不揮発性メモリ、具体的にはＥＥＰＲＯＭ（記憶媒体α、記憶媒体γ）とフラッシュメモリ（記憶媒体δ、記憶媒体ε：図では「ｆｌａｓｈ」と表示している）、及び補助的にＲＡＭ（記憶媒体β）が使用されている。永続化管理クラス１０２Ｃは、データが、アプリケーションクラス１０６Ｃの状態を示す変数の設定値を含んだ状態データ（以下、通常データという）である場合に、ＥＥＰＲＯＭ２に対応づけられた個別媒体管理クラス１０４Ｃ（具体的には、図２において、そのインスタンス１０４Ｊ（図３のデータ管理２））を選択する。また、データが画像データである場合は、フラッシュメモリ２に対応付けられた個別媒体管理クラス１０３Ｃ（具体的には、図２において、そのインスタンス１０３Ｊ（図３のデータ管理４））を選択する。
【００３６】
データが、セキュリティ保護対象として定められた重要データ（本実施形態では、個人情報等を含む契約データ）である場合には、状態データ用のＥＥＰＲＯＭ１とは別のＥＥＰＲＯＭ２に対応づけられた個別媒体管理クラス１０３Ｃ（具体的には、図２において、そのインスタンス１０４Ｊ（図３のデータ管理１））を選択するまた、データが、通信ログ又は機器の動作ログからなるログデータである場合には、画像データ用のフラッシュメモリ２とは別のフラッシュメモリ１に対応付けられた個別媒体管理クラス１０３Ｃ（具体的には、図２において、そのインスタンス１０３Ｊ（図３のデータ管理３））を選択する。
【００３７】
永続化対応データクラス１０１Ｃは、図４に示すように、保存用データを一義的に特定するための識別ＩＤを、自身のインスタンスを格納するアドレス（図では、「永続化データ格納アドレス」と表示している）から生成する。識別ＩＤは、例えば上記アドレスと一致させることもできるし、元のアドレスへの一義的な復元が可能なデータ加工処理（演算あるいは識別ビット付加など）を施したりする形で作成することができる。いずれにしろ、該アドレスを参照すれば識別ＩＤを、また識別ＩＤを参照すればアドレスをそれぞれ特定できる。
【００３８】
そして、その識別ＩＤを付与した形で該保存用データを永続化管理クラス１０２Ｃに受け渡す。また、個別媒体管理クラス１０３Ｃ，１０４Ｃは、該永続化管理クラス１０２Ｃから受け渡された保存用データを、識別ＩＤを付与した形で対応する記憶媒体の開いているアドレスに書き込む。
【００３９】
図２に戻り、永続化対応データクラス１０１Ｃは、自身のインスタンスをシリアライズするためのシリアライズインターフェース１０１Ｉを実装し、図３に示すごとく、そのシリアライズされたデータを保存用データとして永続化管理クラス１０２Ｃに受け渡す。シリアライズインターフェース１０１Ｉは、シリアライズ時のデータサイズを取得するメソッド、及びシリアライズされた保存用データをデシリアライズするメソッドも有する。
【００４０】
シリアライズに特に適したデータは、アプリケーションクラス１０６Ｃの状態を示す変数の設定値を含んだ状態データ（通常データ）である。ただし、データが予め定められたサイズを超過しているか、又は、予めシリアライズが完了しているデータ、具体的には、本実施形態における画像データは、元からバイト列データとして記述されており、シリアライズが完了しているので、永続化対応データクラス１０１Ｃにおいて、シリアライズインターフェース１０１Ｉによるシリアライズ処理は実行されない。
【００４１】
図２に示すごとく、画像データの保存処理自体も、永続化対応データクラスから作成され当該画像データを組み込んだインスタンスに従って実行され、該画像データもまた、そのインスタンスの格納アドレスから作成された識別ＩＤを付与されて保存用データに変換される。上記のごとく、永続化インターフェースにおいて該画像データへの参照を渡すことにより、シリアライズインターフェース１０１Ｉを使用せずに対応する記憶媒体へ保存することが可能となる。
【００４２】
永続化インターフェース１０１Ｋは、既に保存されている保存用データを読み出してインスタンスに復元する復元要求を、対応するインスタンスの格納アドレスを特定可能な形でアプリケーションクラス１０６Ｃから受け付ける（この他、保存用データの削除要求も受付可能である）。永続化管理クラス１０２Ｃは、図６に示すように、保存されている保存用データを特定する識別ＩＤの一覧を、保存先となる記憶媒体が特定可能な形で記憶する保存リスト２００Ａ〜２００Ｄを有する。ここでは、記憶媒体種別は、データ種別により間接的に特定可能となっている（図２では、保存リストとして、画像データリスト（２００Ｄ）と通常データリスト（２００Ｂ）のみ示し、他を省略して描いている）。
【００４３】
そして、受け付けた復元要求が特定する上記アドレスに基づいて識別ＩＤを特定し、さらに、当該識別ＩＤを図６の保存リスト２００Ａ〜２００Ｄ上で検索してデータ種別を特定して、その特定されたデータ種別に対応する個別媒体管理クラス１０３Ｃ，１０４Ｃに該識別ＩＤを受け渡す。このとき、識別ＩＤとともにデータ種別の特定情報も受け渡すことで、図６の対応するデータ種別の保存リスト上で検索を行なえばよい。
【００４４】
各個別媒体管理クラス１０３Ｃ，１０４Ｃは、受け取った識別ＩＤに対応する保存用データを、自身に対応する記憶媒体から読み出して、永続化管理クラス１０２Ｃを経て永続化対応データクラス１０１Ｃに該保存用データを受け渡す。永続化対応データクラス１０１Ｃは、該保存用データ（例えば、シリアライズ処理されたデータ）を元のインスタンスに復元する（なお、シリアライズ処理が実施されていないデータは、復元時のデシリアライズは当然省略される）。
【００４５】
図５は、データ保存時及び復元時の各シーケンスを示すものである。まず、アプリケーションクラス１０６Ｃは、永続化インターフェース１０１Ｋを介して永続化対応データクラス１０１Ｃ（ここでは、自身のインスタンスとして画像データのインスタンスが作成されているものとする）にデータ保存又は復元の要求を出す。永続化対応データクラス１０１Ｃは、永続化管理クラス１０２Ｃにそのインスタンスの保存ないし復元の処理を要求する。永続化管理クラス１０２Ｃは、データのシリアライズ化が必要かどうかを判定し、必要な場合はシリアライズ又はデシリアライズを永続化対応データクラス１０１Ｃに要求し、対応するデータ変換を実施させ、さらに対応する記憶媒体への書込ないし読出しを要求する。
【図面の簡単な説明】
【００４６】
【図１】本発明のオブジェクト指向型車両用制御システムにおける制御主体の構成を、オブジェクト指向プラットフォームの観点から概念的に示す図。
【図２】図１の制御主体が実行するプログラムの構成を示すＵＭＬ表記に従ったクラス図。
【図３】システムのソフトウェアとハードウェアとの関係を示す概念ブロック図。
【図４】データシリアライズと記憶媒体保存／読出しの流れを示す概念図。
【図５】図２に対応するシーケンス図。
【図６】保存リストの概念図。
【図７】本発明におけるオブジェクト間の情報の流れを示す概念ブロック図。
【図８】従来例におけるオブジェクト間の情報の流れを示す概念ブロック図。
【符号の説明】
【００４７】
１  プログラム実行装置（ＣＰＵ）
４０  制御主体  
１０１Ｃ  永続化対応データクラス
１０１Ｋ  永続化インターフェース
１０１Ｉ  シリアライズインターフェース
１０２Ｃ  永続化管理クラス
１０３Ｃ，１０４Ｃ  個別媒体管理クラス
１０５Ｉ  データ保存インターフェース
１０６Ｃ  アプリケーションクラス
【図１】
2008077220.tif 000003
【図２】
2008077220.tif 000004
【図３】
2008077220.tif 000005
【図４】
2008077220.tif 000006
【図５】
2008077220.tif 000007
【図６】
2008077220.tif 000008
【図７】
2008077220.tif 000009
【図８】
2008077220.tif 000010