(57)【要約】【課題】ＯＳやミドルウェア製品が搭載されていないシステムにおいて、これらが搭載された場合と同様に、大幅な変更及び修正を加える必要なく、ソフトウェア・コンポーネントを構築できる仕組みを提供することを目的とする。【解決手段】ソフトウェア・コンポーネント１０１、１０２、１０６、１０７間でメッセージを送受信するための、プラットフォームに依存しない共通インターフェース１０３、１０５と、共通インターフェース１０３、１０５を介したアクセスに対して、個々のプラットフォームが提供するインターフェースを実行するよう、共通インターフェース１０３、１０５から受け取ったメッセージを解析、変換、配信処理を行う変換部／処理部１０４とを具備する。【選択図】図１
2008262397.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア・コンポーネント間でメッセージを送受信するための、プラットフォームに依存しない共通インターフェースと、前記共通インターフェースを介したアクセスに対して、個々のプラットフォームが提供するインターフェースを実行するよう、前記共通インターフェースから受け取ったメッセージを解析、変換、配信処理を行う変換部／処理部とを具備したことを特徴とするコンポーネント構築用装置。
【請求項２】
変換部／処理部は、共通インターフェースの種類により、同期通信か非同期通信かを判断し、同期通信の場合は、送信先のコンポーネントへと直接メッセージを送信し、非同期通信の場合は、前記変換部／処理部内で管理しているメッセージキューへメッセージを積むことを特徴とする請求項１記載のコンポーネント構築用装置。
【請求項３】
変換部／処理部は、メッセージが積まれるメッセージキューと、メッセージがどのコンポーネント宛てに送られたのかを一時保存しておくためのイベントフラグと、前記イベントフラグを常時監視し、受信すべきコンポーネントのイベントフラグが立っていた場合に、該当コンポーネントのメッセージ受信処理を走らせるメッセージ監視部と、前記メッセージキューから前記イベントフラグに該当するコンポーネント宛てのメッセージを検索し、メッセージの解析を行うメッセージ解析部と、該当コンポーネントへメッセージを送信するメッセージ配信部とから構成されることを特徴とする請求項１記載のコンポーネント構築用装置。
【請求項４】
変換部／処理部は、メッセージを前記メッセージキューに積む際に、メッセージに優先順位を設定することを特徴とする請求項２記載のコンポーネント構築用装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込みシステムにおけるＯＳやミドルウェアなどのプラットフォームに依存しないソフトウェア・コンポーネントを構築する為の仕組みを提供するコンポーネント構築用装置に関するものである。
【背景技術】
【０００２】
従来、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）あるいはミドルウェア製品などのプラットフォームに依存したインターフェースを吸収することで、例えば、あるＯＳ上で構築したアプリケーションプログラムを、移植や変更することなしに別のＯＳ上で動作させることができる仕組みを提供している装置がある（例えば、特許文献１、２、３）。
【特許文献１】特開平１０−４００８０号公報
【特許文献２】特開平１０−２２８３８４号公報
【特許文献３】特開２００３−１０８３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記これらの特許文献では、いずれも何らかのＯＳやミドルウェア製品を利用することが前提となっているが、メモリやＣＰＵなどのリソースの制限が厳しい組込みシステムにおいては、それらを搭載できない場合も多く存在する。
【０００４】
しかしながら、メモリやＣＰＵなどのリソースの制限が厳しく、ＯＳやミドルウェア製品が搭載できない組込みシステムにおいても、製品の付加価値を高めていく中で、ソフトウェア規模が増大し、これらを搭載する必要が出てくる可能性は十分にあり、その場合には、これらが提供する各種インターフェースを利用する為に、既存のソフトウェア・コンポーネントに対して、開発コストを要する大幅な変更及び修正を加える必要が出てくる。
【０００５】
本発明は、ＯＳやミドルウェア製品が搭載されていないシステムにおいて、これらが搭載された場合と同様に、大幅な変更及び修正を加える必要なく、ソフトウェア・コンポーネントを構築できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記従来の課題を解決するため、本発明のコンポーネント構築用装置は、ソフトウェア・コンポーネント間でメッセージを送受信するためのプラットフォームに依存しない共通インターフェースと、共通インターフェースを介したアクセスに対して、個々のプラットフォームが提供するインターフェースを実行するよう、共通インターフェースから受け取ったメッセージを解析、変換、配信を行う変換部／処理部とから構成される。
【発明の効果】
【０００７】
ソフトウェア・コンポーネント間で通信するインターフェースを統一し、かつメッセージ変換することにより、ＯＳの非搭載／搭載、またＯＳの種類に拠らないソフトウェア・コンポーネントが構築可能になる。
【０００８】
また、前記インターフェース仕様として、同期通信及び非同期通信の仕組みを提供することにより、より柔軟なソフトウェア・コンポーネントの構築が可能となる。
【０００９】
また、各種ＯＳが保有するタスク間通信に関する基本的な機能を、ＯＳが搭載されていないシステムに導入することにより、ＯＳが搭載されたシステムに対しての再利用性が向上し、変更、移植に関する開発コストの大幅な削減が見込める。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明の各実施の形態について、図面を参照しながら説明する。
【００１１】
（実施の形態１）
図１は本発明の実施の形態１におけるコンポーネント構築用装置の構成を示している。
【００１２】
本実施の形態でのコンポーネント構築用装置は、共通インターフェース１０３、１０５と、変換部／処理部１０４から構成され、これらを利用する形で、プラットフォームに依存しないコンポーネント１０１、１０２、１０６、１０７が構築される。
【００１３】
図では、共通インターフェースは、２箇所に分離して記載しているが、実体は一つでも複数でも良い。また変換部／処理部も同様である。共通インターフェース１０３、１０５は、各コンポーネントがコンポーネント構築用装置を介してメッセージをやり取りするための装置である。また、変換部／処理部１０４は、共通インターフェース１０３、１０５から受け取ったメッセージを解析、処理を行うための装置である。
【００１４】
図１の各コンポーネントは、組込みシステムにおける階層構造を簡易的に示したもので、階層を跨ぐ、跨がないに拠らず、共通インターフェース１０３、１０５を介して互いに通信する。想定されるシステムは、当然階層構造になっていなくても良く、全てが一つの階層で構成されるコンポーネント群であっても構わない。また図では４つのコンポーネントを記載しているが、システムによってはその数が変わりうる。変換部／処理部１０４は、共通インターフェースの種類により、同期通信か非同期通信かを判断し、同期通信の場合は、送信先のコンポーネントへと直接メッセージを送信する。また非同期通信の場合は、変換部／処理部内で管理しているメッセージキューへメッセージを積む。積まれたメッセージは、送信先のコンポーネントが受信可能な状態になったタイミングで取り出される。
【００１５】
図２、図３はコンポーネント間のメッセージ送受信を、時間軸で示したものである。
【００１６】
図２は非同期通信の例を示し、コンポーネント１０１からの送信メッセージは、共通インターフェース１０３を介し、メッセージキュー１１１へ積み上げられる。ここで、メッセージキューの各要素の構成を図４に示す。各要素は、送信元、送信先の情報、コマンドＩDを含むコマンド情報、メッセージの種類、優先度から構成される。積み上げられたメッセージは、送信先コンポーネント１０２が受信可能になった時点で、共通インターフェース１０３を介して取り出され、送信先コンポーネント１０２が処理可能な形式でメッセージが送信される。この時、送信先コンポーネントが処理可能な形式とメッセージキュー１１１上で積み上げられた形式と一致していても、一致していなくても良いものとする。
【００１７】
図３は同期通信の例を示し、送信元コンポーネント１０１からの送信メッセージは、共通インターフェース１０３を介し、直接送信先コンポーネント１０２へ送信される。即時に実行したい処理は同期通信を行うことにより実現できる。
【００１８】
また、非同期通信で利用するメッセージキュー１１１の形態と、これを利用した時に、できるだけ早く送信先にメッセージが届くための仕組みを以下に記す。メッセージキューのサイズはメモリの利用効率上、メッセージが積まれた分だけのサイズとなるが、上限を設けることで、メモリ領域が圧迫され不具合が起こることを防ぐ。メッセージ要求が発行されて、メッセージキュー１１１へメッセージを積み上げる時には、メッセージを変換し、必要最小限の情報のみをメッセージキュー１１１へ積み上げることで、メモリの利用効率を上げる方法もあるし、また、処理速度向上のために変換しない方法もある。
【００１９】
また、メッセージには優先順位を設定することができ、これにより、緊急度の高いメッセージ順に処理することが可能となる。
【００２０】
以上のメッセージキュー１１１の形態により、より効率的にメッセージを管理することができる。
【００２１】
次に、メッセージキュー１１１に積まれたメッセージを送信先のコンポーネントに出来るだけ早く送信する仕組みについて説明する。ＯＳが搭載されていないプログラムのメイン関数は、通常、各処理の代表的な関数が永久ループの中に並べられ、順番に実行される図５のような形態をとる。ＯＳが搭載されていれば、タスクディスパッチ機能により、要求に対する応答が早くなる仕組みが組み込まれているが、ＯＳが搭載されていない場合に応答速度を上げるためには、これに変わる何らかの仕組みを取り入れる必要がある。
【００２２】
本発明での仕組みを図６に示しながら説明する。
【００２３】
第１に、メッセージをメッセージキュー１１１に積むとともに、イベントフラグ１３１を用いる。これはどのコンポーネント宛てに送られたのかを一時保存しておくために利用され、メッセージキュー１１１を解析しなくとも、このフラグだけを監視していればメッセージが到着しているか否かを知ることができ、処理効率は向上する。
【００２４】
第２に、メッセージ監視部１３２が、イベントフラグ１３１を常時監視し、受信すべきコンポーネントのイベントフラグが立っていた場合に、該当コンポーネントのメッセージ受信処理を走らせる。この際、自分宛てのメッセージの中で優先度の高い順番に処理を行う。
【００２５】
ここで受信処理とは、図６のメッセージ解析部１３３が、メッセージキュー１１１からイベントフラグに該当するコンポーネント宛てのメッセージを検索し、メッセージの解析を行った後、メッセージ配信部１３４が、該当コンポーネントへメッセージを送信する一連の処理を指す。
【００２６】
これら上記に示した仕組みにより、イベントに対する応答をできるだけ早く行うことが可能となる。
【００２７】
（実施の形態２）
図７は本発明の実施の形態２におけるコンポーネント構築用装置の構成を示している。
【００２８】
先に示した実施の形態１では、ＯＳが搭載されていない場合の例であったが、本実施の形態では、ＯＳが搭載された場合のブロック図を例として示している。
【００２９】
図７において、図１と同じ構成については同じ符号を用い、説明を省略する。
【００３０】
本実施の形態では、変換部／処理部１４１、１４３がプラットフォーム１４２の提供するインターフェースに適合する形式に変換する機能を有する。
【００３１】
変換部／処理部１４１、１４３は、図７では２箇所に分割して記載しているが、数はいくつでも良く、プラットフォーム１４２は、ＯＳやミドルウェア製品の種別に関する制約はなく、数もいくつでも良いものとする。
【００３２】
本実施の形態では、プラットフォーム１４２が、ソフトウェア・コンポーネント間の通信に関するシステムコールや、タスクディスパッチ機能を有していた場合、実施の形態１で説明したようなメッセージキューやイベントに対する反応速度向上の仕組みは必要ない。しかし場合によっては並行して利用することも可能である。
【産業上の利用可能性】
【００３３】
本発明にかかるコンポーネント構築用装置は、ソフトウェア・コンポーネント間でメッセージを送受信するためのプラットフォームに依存しない共通インターフェースと、共通インターフェースを介したアクセスに対して、個々のプラットフォームが提供するインターフェースを実行するよう、共通インターフェースから受け取ったメッセージを解析、変換、配信を行う変換部／処理部とから構成され、組込みシステムにおけるプラットフォームに依存しないソフトウェア・コンポーネントを構築するコンポーネント構築用装置として有用である。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施の形態１のコンポーネント構築用装置の構成を示すブロック図
【図２】本発明の実施の形態１のコンポーネント構築用装置のソフトウェア・コンポーネント間の非同期通信のシーケンス図
【図３】本発明の実施の形態１のコンポーネント構築用装置のソフトウェア・コンポーネント間の同期通信のシーケンス図
【図４】本発明の実施の形態１のコンポーネント構築用装置におけるメッセージキューの１要素の構成図
【図５】一般的なメイン関数の構成図
【図６】本発明の実施の形態１のコンポーネント構築用装置の変換部／処理部の構成図
【図７】本発明の実施の形態２のコンポーネント構築用装置の構成を示すブロック図
【符号の説明】
【００３５】
１０１、１０２、１０６、１０７  ソフトウェア・コンポーネント
１０３、１０５  共通インターフェース
１０４、１４１、１４３  変換部／処理部
１１１  メッセージキュー
１２１  管理情報領域
１２２  メッセージ格納領域
１３１  イベントフラグ
１３２  メッセージ監視部
１３３  メッセージ解析部
１３４  メッセージ配信部
１４２  プラットフォーム
【図１】
2008262397.tif 000003
【図２】
2008262397.tif 000004
【図３】
2008262397.tif 000005
【図４】
2008262397.tif 000006
【図５】
2008262397.tif 000007
【図６】
2008262397.tif 000008
【図７】
2008262397.tif 000009