JP4293149B2 - Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ - Google Patents

Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ Download PDF

Info

Publication number
JP4293149B2
JP4293149B2 JP2005092084A JP2005092084A JP4293149B2 JP 4293149 B2 JP4293149 B2 JP 4293149B2 JP 2005092084 A JP2005092084 A JP 2005092084A JP 2005092084 A JP2005092084 A JP 2005092084A JP 4293149 B2 JP4293149 B2 JP 4293149B2
Authority
JP
Japan
Prior art keywords
communication
idl
real
components
schedule
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.)
Expired - Fee Related
Application number
JP2005092084A
Other languages
English (en)
Other versions
JP2006277053A (ja
Inventor
寛達 大崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2005092084A priority Critical patent/JP4293149B2/ja
Publication of JP2006277053A publication Critical patent/JP2006277053A/ja
Application granted granted Critical
Publication of JP4293149B2 publication Critical patent/JP4293149B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

本発明は、IDL定義データをコンパイルして、アプリケーションソフトウェアのコンポーネントで用いられるスタブやスケルトンを生成するIDLコンパイル装置、IDLコンパイル方法及びIDLコンパイラに関する。また、本発明は、IDLコンパイラを用いた情報処理システム及び情報処理方法に関する。
Common Object Request Broker Architecture (CORBA)技術を利用したアプリケーションソフトウェアのソフトウェアコンポーネント(コンポーネント)で用いられるスタブやスケルトンを生成するために、Interface Definition Language (IDL)コンパイラが用いられる。図12は、IDLコンパイラに従って動作するIDLコンパイル装置の構成の一例を示すブロック図である。図12に示すように、IDLコンパイル装置910は、IDL定義解析装置911及びコード生成装置913を含む。IDLコンパイル装置910は、IDL定義920を入力し、クライアント機能をもつコンポーネントが用いるスタブ930や、サーバ機能をもつコンポーネントが用いるスケルトン940を生成する。
図12において、IDL定義920は、CORBA技術を用いたコンポーネント間で送受信されるデータ型(以下、IDL型という)の定義である。また、IDL定義解析装置911は、文字列等の形式で入力したIDL定義920を解析し、IDL定義920をIDLコンパイル装置910の各装置が使用可能なデータ形式の情報(以下、IDL定義解析情報912という)に変換する装置である。また、コード生成装置913は、IDL定義解析装置911が生成したIDL定義解析情報912に基づいて、スタブ930やスケルトン940を生成する装置である。
例えば、特許文献1には、IDLソースを入力として、COBOL言語で記述されたスタブ及びスケルトンを出力するIDLコンパイラが記載されている。また、特許文献2には、優先度及び直近の特定期間の使用頻度に応じて帯域を動的に割り当てることができるパケットスケジューリング方法が記載されている。
特開平11−296359号公報(段落0028−0044、図4−5) 特開2002−118585号公報(段落0035−0042、図1)
特許文献1に記載されたIDLコンパイラ等を用いて、コンポーネント間において、1つの通信基盤を介して、CORBAを用いた複数のリアルタイム通信が行われることがある。この場合、コンポーネント間の通信時間がなるべく変動しないように対処したり、低い優先度の通信が高い優先度の通信を阻害しないように対処したりする必要がある。通信時間の変動や通信の阻害を防止するために、一般に通信時間の変動が少ない通信基盤を用いることが考えられるが、通信基盤のコストが大きい。
また、通信時間の変動や通信の阻害を防止するために、通信の優先度毎に通信基盤の帯域の割り当てを行うことが考えられる。図13は、通信の優先度に応じて通信基盤の帯域の割り当てを行った場合の例を示す説明図である。図13に示すように、優先度毎に帯域を割り当てる場合、高い優先度の通信だけを送信できる専用の帯域を常時確保する方法がとられることが多い。しかし、高い優先度の通信が発生していない場合、帯域に余裕があるにもかかわらず優先度の低い通信が制限されることになり、帯域が有効活用されない可能性がある。
また、特許文献2に記載されたパケットスケジューリング方法をコンポーネント間の通信に適用すれば、通信のトラヒック特性量を解析することによって、動的に通信基盤の帯域を割り当てることができる。しかし、アプリケーションの実行時に帯域の割り当てを行っているので、リアルタイムに通信基盤の帯域の割り当てを行えるとは限らない。
そこで、本発明は、アプリケーションソフトウェアのコンポーネント間のリアルタイムな通信を保証できるIDLコンパイル装置、情報処理システム、IDLコンパイル方法、情報処理方法及びIDLコンパイラを提供することを目的とする。
本発明によるIDLコンパイル装置は、IDL定義データ(例えば、IDL定義2)に基づいてスタブ又はスケルトンを生成するIDLコンパイル装置(例えば、IDLコンパイラに従って動作する情報処理装置によって実現される)であって、ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報(例えば、スケジュール情報6)を入力するスケジュール情報入力手段(例えば、スケジュール解析装置53によって実現される)と、スケジュール情報入力手段が入力した通信スケジュール情報に基づいて、コンポーネント間で各通信を行う際の通信基盤(例えば、ネットワーク)の帯域の割り当てを決定する帯域割当手段(例えば、スケジュール解析装置53によって実現される)と、IDL定義データ及び帯域割当手段の割り当て結果と、通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するコードデータ生成手段(例えば、リアルタイムコード生成装置55によって実現される)とを備えたことを特徴とする。
また、IDLコンパイル装置において、スケジュール情報入力手段は、コンポーネント間で行う各通信の優先度、各通信を行う際に許容される遅延時間、又は各通信において送受信されるデータ量を含む通信スケジュール情報を入力し、帯域割当手段は、スケジュール情報入力手段が入力した通信スケジュール情報に示される優先度、遅延時間又はデータ量に従って、コンポーネント間で通信を行う際の通信基盤の帯域の割り当てを決定するものであってもよい。
また、IDLコンパイル装置において、コードデータ生成手段は、コードデータとして、コンポーネント間で行う各通信への通信基盤の帯域の割り当て、及びコンポーネント間で行う各通信のタイミングを制御するためのスケジューリングモジュールを生成するものであってもよい。
また、IDLコンパイル装置において、コードデータ生成手段は、スケジュールリングモジュールと連携してコンポーネント間で通信を行うためのスタブ(例えば、リアルタイムスタブ7)又はスケルトン(例えば、リアルタイムスケルトン8)を生成するものであってもよい。
また、IDLコンパイル装置において、帯域割当手段は、スケジュール情報入力手段が入力した通信スケジュール情報に基づいて、コンポーネント間で行う各通信に割り当てた通信基盤の帯域量、及びコンポーネント間で行う各通信のタイミングを示すタイミング情報を含むスケジュール解析情報を生成するものであってもよい。
また、IDLコンパイル装置において、コードデータ生成手段は、帯域割当手段が生成したスケジュール解析情報に基づいて、コンポーネント間で行う各通信に割り当てた通信基盤の帯域量を示すコード、及びコンポーネント間で行う各通信のタイミングを示すコードを含むスケジューリングモジュールを生成するものであってもよい。
本発明による情報処理システムは、ソフトウェアに含まれるコンポーネント間で通信を行うことによって処理を実行する情報処理システムであって、IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル装置と、ソフトウェアに従って処理を実行する情報処理装置(例えば、コンピュータA111やコンピュータB112)とを備え、IDLコンパイル装置は、ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するスケジュール情報入力手段と、スケジュール情報入力手段が入力した通信スケジュール情報に基づいて、コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定する帯域割当手段と、IDL定義データ及び帯域割当手段の割り当て結果と、通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するコードデータ生成手段とを含み、情報処理装置は、IDLコンパイル装置が生成したコードデータに従って、コンポーネント間で行う通信毎に通信基盤の帯域を割り当て、割り当てた帯域を用いてコンポーネント間で通信を行うコンポーネント間通信手段(例えば、コンピュータA111やコンピュータB112のCPU及びネットワークインタフェース部によって実現される)を含むことを特徴とする。
本発明によるIDLコンパイル方法は、IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル方法であって、ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するステップと、入力した通信スケジュール情報に基づいて、コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定するステップと、IDL定義データ及び割り当て結果と、通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するステップとを含むことを特徴とする。
本発明による情報処理方法は、ソフトウェアに含まれるコンポーネント間で通信を行うことによって処理を実行する情報処理方法であって、IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル装置が、ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するステップと、IDLコンパイル装置が、入力した通信スケジュール情報に基づいて、コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定するステップと、IDLコンパイル装置が、IDL定義データ及び割り当て結果と、通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するステップと、ソフトウェアに従って処理を実行する情報処理装置が、IDLコンパイル装置が生成したコードデータに従って、コンポーネント間で行う通信毎に通信基盤の帯域を割り当て、割り当てた帯域を用いてコンポーネント間で通信を行うステップとを含むことを特徴とする。
本発明によるIDLコンパイラは、IDL定義データに基づいてスタブ又はスケルトンを生成するためのIDLコンパイラであって、コンピュータに、ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力する処理と、入力した通信スケジュール情報に基づいて、コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定する処理と、IDL定義データ及び割り当て結果と、通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成する処理とを実行させることを特徴とする。
本発明によれば、通信スケジュール情報に基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成する。そのため、生成したコードデータを用いて、コンポーネント間でリアルタイム性が求められる通信を、適切な周期且つ適切なタイミングで行うことができる。従って、アプリケーションソフトウェアのコンポーネント間のリアルタイムな通信を保証することができる。
また、本発明において、コードデータとして、各通信への通信基盤の帯域の割り当て及び各通信のタイミングを制御するためのスケジューリングモジュールを生成するように構成すれば、コンポーネント間で通信を行う際に通信基盤の帯域を適切に割り当てることができ、適切なタイミングでコンポーネント間の通信を行うことができる。
また、本発明において、スケジューリングモジュールと連携してコンポーネント間で通信を行うためのスタブ又はスケルトンを生成するように構成すれば、スタブ又はスケルトンを用いて、適切な周期且つ適切なタイミングでコンポーネント間の通信を行うことができる。
以下、本発明の実施の形態を図面を参照して説明する。まず、本発明によるIDLコンパイラの概念を説明する。本実施の形態において、IDLコンパイラは、CORBA技術を用いた複数のソフトウェアコンポーネント(以下、単にコンポーネントという)から構成される、アプリケーションソフトウェア(以下、単にアプリケーションという)が用いるスタブやスケルトンを生成する。
本実施の形態において、IDLコンパイラは、アプリケーションに含まれるコンポーネント間で行う各通信のスケジュールを示すスケジュール情報に基づいて、スタブやスケルトンを生成する。本実施の形態では、IDLコンパイラは、通信基盤(ネットワーク)の帯域の情報とコンポーネント間の通信に要求される性能要件の情報とを含むスケジュール情報を用いて、スタブやスケルトンを生成する。そのようにすることによって、コンポーネント間で規定された時間以内に必ず送受信を完了させなければならない所定の通信(以下、リアルタイム通信という)を可能とし、且つ通信基盤の帯域を効率よく使用することを可能とするスタブ、スケルトン及びスケジューリングモジュールを自動生成する。
次に、IDLコンパイラに従って動作するIDLコンパイル装置の構成について説明する。図1は、IDLコンパイル装置の構成の一例を示すブロック図である。本実施の形態において、IDLコンパイル装置5は、具体的には、IDLコンパイラに従って動作するワークステーションやパーソナルコンピュータ等の情報処理装置によって実現される。図1に示すように、IDLコンパイル装置5は、IDL定義解析装置51、スケジュール解析装置53及びリアルタイムコード生成装置55を含む。
図1に示すように、本実施の形態において、IDLコンパイル装置5は、IDL定義2に加えて、スケジュール情報6を入力する。そして、IDLコンパイル装置5は、通信基盤の帯域の割り当ての制御とデータ送受信のタイミングの制御とを行うためのコードデータであるスケジューリングモジュール9を生成する。また、IDLコンパイル装置5は、スケジューリングモジュール9と連携してリアルタイム通信におけるデータの送受信を行うためのスタブであるリアルタイムスタブ7を生成する。また、IDLコンパイル装置5は、スケジューリングモジュール9と連携してリアルタイム通信におけるデータの送受信を行うためのスケルトンであるリアルタイムスケルトン8を生成する。また、IDLコンパイル装置5は、従来のIDLコンパイル装置が備えるIDL定義解析装置51に加えて、スケジュール解析装置53及びリアルタイムコード生成装置55を含むことを特徴とする。
IDL定義解析装置51は、CORBA技術を用いたコンポーネント間で送受信されるデータ型(IDL型)の定義を含むデータであるIDL定義2を入力する機能を備える。本実施の形態では、IDL定義解析装置51は、文字列等の形式のデータとしてIDL定義2を入力する。また、IDL定義解析装置51は、入力したIDL定義2を解析し、IDL定義2をIDLコンパイル装置5の各装置が使用可能なデータ形式の情報に変換したIDL定義解析情報52を生成する機能を備える。
スケジュール解析装置53は、通信基盤の帯域の情報及び各コンポーネント間の通信に要求される性能要件の情報を含むスケジュール情報6を入力する機能を備える。例えば、スケジュール解析装置53は、通信のデータ量、最大許容遅延時間及び優先度等の情報を含むスケジュール情報6を入力する。また、スケジュール解析装置53は、入力したスケジュール情報6を解析して通信基盤の帯域の割り当てを決定し、通信基盤の帯域の割り当て結果を含むスケジュール解析情報54を生成する機能を備える。
リアルタイムコード生成装置55は、IDL定義解析装置51が生成したIDL定義解析情報52と、スケジュール解析装置53が生成したスケジュール解析情報54とを入力する機能を備える。また、リアルタイムコード生成装置55は、入力したIDL定義解析情報52及びスケジュール解析情報54に基づいて、リアルタイムスタブ7、リアルタイムスケルトン8、及びスケジューリングモジュール9を生成し出力する機能を備える。
次に、動作について具体例を用いて説明する。本実施の形態において、IDLコンパイル装置5は、通信基盤を介して、アプリケーション内のコンポーネント間の通信を行う情報処理システムに適用される。図2は、IDLコンパイル装置5を用いた情報処理システムの一例を示す説明図である。図2に示すように、本実施の形態では、情報処理システム11が、2つのコンピュータ111,112を含む場合を例に説明する。また、図3は、図2に示す情報処理システム11が実行するアプリケーションの構成の例を示す説明図である。図3に示すように、本実施の形態では、情報処理システム11が、2つのコンポーネント101,102を含むアプリケーション10に従って、処理を実行する場合を例に説明する。
本実施の形態において、コンピュータA111は、アプリケーション10に含まれるコンポーネントX101に従って処理を実行する装置である。また、コンピュータB112は、アプリケーション10に含まれるコンポーネントY102に従って処理を実行する装置である。また、図2に示すように、コンピュータA111とコンピュータB112とは、所定の通信基盤C(ネットワーク)113を介して接続される。そして、コンポーネントX101とコンポーネントY102とは、通信基盤C113を介してリアルタイム通信を含む各種通信を行う。
なお、本実施の形態では、コンポーネントX101とコンポーネントY102とが通信を行う等の表現を用いるが、実際には、コンピュータA111やコンピュータB112が、コンポーネントX101やコンポーネントY102に従って処理を実行する。このことは、他のソフトウェアやソフトウェアによって実現される手段についても同様である。
また、図4は、図2及び図3に示すコンポーネント101,102間で通信を行う場合のIDLコンパイル装置5の具体的な構成例を示すブロック図である。本実施の形態では、IDLコンパイル装置5は、図3に示すアプリケーション10が用いるスタブ、スケルトン及びスケジューリングモジュールを生成する。本実施の形態では、IDLコンパイル装置5は、図4に示すように、IDL定義2及びスケジュール情報6を入力し、コンポーネントX用リアルタイムスタブ71、及びコンポーネントY用リアルタイムスタブ72を生成する。また、IDLコンパイル装置5は、コンポーネントX用リアルタイムスケルトン81、及びコンポーネントY用リアルタイムスケルトン82を生成する。また、IDLコンパイル装置5は、コンポーネントX用スケジューリングモジュール91、及びコンポーネントY用スケジューリングモジュール92を生成する。
図5は、IDL定義2の例を示す説明図である。本実施の形態において、IDL定義2は、図5に示すように、アプリケーション10全体で用いるIDL型の定義を含む。本実施の形態では、IDL定義2は、IDL型の定義として、配列P1型21、配列P2型22、配列P3型23、インタフェースI1型24及びインタフェースI2型25を含む。
図6は、スケジュール情報6の例を示す説明図である。本実施の形態において、スケジュール情報6は、図6に示すように、通信基盤C113の性能要件の情報(以下、バス性能情報という)61を含む。また、スケジュール情報6は、通信基盤C113上のリアルタイム通信の優先度、最大許容遅延時間及びデータ量を示す情報(以下、リアルタイム通信情報という)を含む。本実施の形態では、図6に示すように、スケジュール情報6は、3つのリアルタイム通信K,L,Mに対するリアルタイム通信情報62,63,64を含む。
また、図4に示すように、IDLコンパイル装置5は、IDL定義解析装置51、スケジュール解析装置53及びリアルタイムコード生成装置55を含む。IDL定義解析装置51は、所定のIDL定義解析手順を実行し、IDL定義2に含まれるIDL型の解析を行い、IDL定義解析情報52を生成する。スケジュール解析装置53は、所定のスケジュール解析手順を実行し、スケジュール情報6の解析を行い、通信基盤C113の帯域の割り当てを計算する。そして、スケジュール解析装置53は、スケジュール解析情報54を生成する。
リアルタイムコード生成装置55は、所定のリアルタイムコード生成手順を実行し、IDL定義解析情報52及びスケジュール解析情報54に基づいて、個々のコンポーネント101,102用のリアルタイムスタブ、リアルタイムスケルトン及びスケジューリングモジュールを生成する。
図7は、IDLコンパイル装置5が実行するIDLコンパイル手順の処理の一例を示す流れ図である。図7に示すように、IDLコンパイル手順は、IDL定義解析手順、スケジュール解析手順、及びリアルタイムコード生成手順の各ステップを含む。また、IDLコンパイル手順は、IDLコンパイル装置5が、IDL定義2及びスケジュール情報6を入力し、個々のコンポーネント101,102用のリアルタイムスタブ、リアルタイムスケルトン及びスケジューリングモジュールを生成するための手順である。
IDLコンパイル装置5は、IDLコンパイル手順の処理を開始すると、IDL定義2を解析するIDL定義解析手順の処理を実行する(ステップS200)。ステップS200において、IDLコンパイル装置5は、ファイル等からIDL定義2を読み込み、読み込んだIDL定義2に基づいて、IDL定義2で定義されたIDL型がもつ要素やオペレーション、引数等の解析を行い、IDL定義解析情報52を生成する。
また、IDLコンパイル装置5は、スケジュール情報6を解析するスケジュール解析手順の処理を実行する(ステップS300)。ステップS300において、IDLコンパイル装置5は、外部(例えば、CD−ROM等の記憶媒体や、ネットワークを介して接続されたコンピュータ)から読み込んだスケジュール情報6に基づいて、バス性能情報及びリアルタイム通信情報の解析を行う。そして、IDLコンパイル装置5は、通信基盤毎の帯域の割り当てを計算し、スケジュール解析情報54を生成する。
また、IDLコンパイル装置5は、各種リアルタイムコードを生成するリアルタイムコード生成手順の処理を実行する(ステップS400)。ステップS400において、IDLコンパイル装置5は、IDL定義解析情報52及びスケジュール解析情報54に基づいて、個々のコンポーネント101,102用のリアルタイムスタブ、リアルタイムスケルトン及びスケジューリングモジュールを生成する。
図8は、ステップS200のIDL定義解析手順の処理の一例を示す流れ図である。ステップS200のIDL定義解析手順において、IDLコンパイル装置5のIDL定義解析装置51は、ファイル等に保存されているIDL定義2を読み込む(ステップS201)。
また、IDL定義解析装置51は、読み込んだIDL定義2で定義されているIDL型がどのような要素やオペレーション、引数をもつかを解析する(ステップS202)。また、IDL定義解析装置51は、IDL定義解析情報52を生成し、生成したIDL定義解析情報52に解析結果を書き込んで加える。
また、IDL定義解析装置51は、IDL定義2で定義されている全てのIDL型の解析を終了したか否かを判断する(ステップS203)。全てのIDL型の解析を終了していない(IDL定義2に含まれるIDL型の定義で未解析のものがある)と判断した場合、IDL定義解析装置51は、ステップS202に戻り、未解析のIDL型の解析を行う。そして、IDL定義解析装置51は、IDL定義解析情報52に解析結果を書き込んで加える。
ステップS203で全てのIDL型の解析を終了した(未解析のIDL型がない)と判断した場合、IDL定義解析装置51は、生成したIDL定義解析情報52をリアルタイムコード生成装置55に送信(出力)する(ステップS204)。
本実施の形態では、IDL定義解析装置51は、図5に示すIDL定義2に基づいて、アプリケーション10が用いるIDL型が配列P1型21、配列P2型22、配列P3型23、インタフェースI1型24及びインタフェースI2型25である旨の解析結果を含むIDL定義解析情報52を生成する。
例えば、IDL定義解析装置51は、配列P1型21が octet型の要素を100個もち、配列P2型22が octet型の要素を1000個もち、配列P3型23が octet型の要素を200個もつ旨の解析結果を含むIDL定義解析情報52を生成する。また、IDL定義解析装置51は、インタフェースI1型24がオペレーションop1_1 及びop1_2 をもち、オペレーションop1_1 が引数として配列P1型21の要素をもち、オペレーションop1_2 が引数として配列P3型23の要素をもつ旨の解析結果を含むIDL定義解析情報52を生成する。また、IDL定義解析装置51は、インタフェースI2型25がオペレーションop2_1 をもち、オペレーションop2_1 が引数として配列P2型22の要素をもつ旨の解析結果を含むIDL定義解析情報52を生成する。
図9は、ステップS300のスケジュール解析手順の処理の一例を示す流れ図である。ステップS300のスケジュール解析手順において、IDLコンパイル装置5のスケジュール解析装置53は、外部からスケジュール情報6を読み込む(ステップS301)。
本実施の形態では、図6に示すように、通信基盤C113は、100μ秒周期で1000バイトのデータを転送できる。また、本実施の形態では、通信基盤C113を介して、3種類のリアルタイム通信が行われる。本実施の形態では、図6に示すように、スケジュール解析装置53は、リアルタイム通信KがコンポーネントY102からコンポーネントX101への通信である旨のリアルタイム通信情報62を含むスケジュール情報6を読み込む。また、スケジュール解析装置53は、リアルタイム通信Kが、オペレーションI1::op1_1 を用いて、100バイトのデータを200μ秒以内にコンポーネントX101に送られなければならない通信である旨のリアルタイム通信情報62を含むスケジュール情報6を読み込む。
また、スケジュール解析装置53は、リアルタイム通信L及びMが、コンポーネントY102からコンポーネントX101への通信である旨のリアルタイム通信情報63,64を含むスケジュール情報6を読み込む。また、スケジュール解析装置53は、リアルタイム通信L及びMが、オペレーションI2::op2_1 を用いて、1000バイトのデータを400μ秒以内にコンポーネントX101に送れなければならない旨のリアルタイム通信情報63,64を含むスケジュール情報6を読み込む。
また、スケジュール解析装置53は、読み込んだスケジュール情報6に基づいて、通信基盤C113に流れる通信の最小の周期を解析する(ステップS302)。そして、スケジュール解析装置53は、スケジュール解析情報54を生成し、解析結果をスケジュール解析情報54に書き込んで加える。
本実施の形態では、図6に示すように、スケジュール情報6に含まれるバス性能情報61から、バスの転送周期が100μ秒であることがわかる。また、スケジュール情報6に含まれるリアルタイム通信情報62,63,64から、リアルタイム通信K,L,Mの許容遅延時間がそれぞれ200μ秒、400μ秒及び400μ秒であることがわかる。そのため、スケジュール解析装置53は、スケジュール情報6に基づいて、0〜400μ秒を1周期としてスケジューリングを行う。この周期を繰り返すことによって、全てのリアルタイム通信K,L,Mの性能要件を満たすことができる。
また、スケジュール解析装置53は、個々のリアルタイム通信情報62,63,64にに基づいて、各リアルタイム通信K,L,Mへの帯域の割り当てを決定する(ステップS303)。また、スケジュール解析装置53は、割り当て結果(割り当てた帯域量)をスケジュール解析情報54に書き込んで加える。また、スケジュール解析装置53は、各リアルタイム通信K,L,Mを行うタイミングを示すタイミング情報をスケジュール解析情報54に書き込んで加える。
スケジュール解析装置53は、全てのリアルタイム通信について帯域の割り当てを終了したか否かを判断する(ステップS304)。全てのリアルタイム通信について帯域の割り当てを終了していない(スケジュール解析情報54に割り当てを行っていないリアルタイム通信がある)と判断した場合、スケジュール解析装置53は、ステップS303に戻り、未処理のリアルタイム通信について帯域の割り当てを行う。そして、スケジュール解析装置53は、スケジュール解析情報54に割り当て結果を書き込んで加える。
ステップS304で全てのリアルタイム通信について割り当てを終わったと判断すると、スケジュール解析装置53は、生成したスケジュール解析情報54をリアルタイムコード生成装置55に送信(出力)する(ステップS305)。
図10は、スケジュール解析装置53が行うリアルタイム通信への帯域の割り当て結果の例を示す説明図である。本実施の形態では、図10に示すように、スケジュール解析装置53は、リアルタイム通信情報Kについて、200μ秒以内に100バイトのデータ伝送が必要であるので、0〜100μ秒及び200〜300μ秒に帯域を100バイトずつ割り当てる。また、スケジュール解析装置53は、リアルタイム通信情報Lについて、400μ秒以内に1000バイトのデータ伝送が必要であるので、100〜200μ秒に帯域を1000バイト割り当てる。また、スケジュール解析装置53は、リアルタイム通信情報Mについて、300〜400μ秒に帯域を1000バイト割り当てる。なお、図10において、割り当てを行った帯域以外の残りは、空き帯域となる。
図11は、ステップS400のリアルタイムコード生成手順の処理の一例を示す流れ図である。ステップS400のリアルタイムコード生成手順において、IDLコンパイル装置5のリアルタイムコード生成装置55は、IDL定義解析装置51からのIDL定義解析情報52を受信(入力)する(ステップS401)。次に、リアルタイムコード生成装置55は、スケジュール解析装置53からのスケジュール解析情報54を受信(入力)する(ステップS402)。
また、リアルタイムコード生成装置55は、オペレーションの実装に相当する部分以外の部分について、コード(スタブ及びスケルトンのコード)の生成を行う(ステップS403)。本実施の形態では、リアルタイムコード生成装置55は、ステップS403において、配列P1型21、配列P2型22及び配列P3型23のコードを生成する。また、リアルタイムコード生成装置55は、インタフェースI1型24、インタフェースI2型25のオペレーションの実装に相当する部分以外の部分のコードを生成する。
また、リアルタイムコード生成装置55は、ステップS404からステップS408までの処理を実行することによって、オペレーションの実装部分のコード生成を行う。まず、リアルタイムコード生成装置55は、オペレーションの実装部分のうちリアルタイム通信と非リアルタイム通信との共通部分のコード(スタブ、スケルトン及びモジュールのコード)を生成する(ステップS404)。
また、リアルタイムコード生成装置55は、コード生成中のオペレーションが、リアルタイム通信のオペレーションであるか非リアルタイム通信のオペレーションであるかを判定する。すなわち、リアルタイムコード生成装置55は、リアルタイム通信を行う必要があるオペレーションであるか否かを判定する(ステップS405)。
リアルタイム通信を行うと判断した場合、リアルタイムコード生成装置55は、IDL定義解析情報52及びスケジュール解析情報55に基づいて、リアルタイム通信用のスタブ、スケルトン及びスケジューリングモジュールのコードを生成する(ステップS406)。
本実施の形態では、コンポーネントY102からコンポーネントX101への オペレーションI1::op1_1及び I2::op2_1の通信がリアルタイム通信である。そのため、リアルタイムコード生成装置55は、それぞれオペレーションI1::op1_1及び I2::op2_1についてリアルタイム通信用のコードを生成する。例えば、リアルタイムコード生成装置55は、各オペレーション用に割り当てられた帯域を取得又は解放するコードや、指定されたタイミングで通信基盤C113のバッファに書き込まれたデータを送信する旨のコードを生成し出力することになる。
すなわち、リアルタイムコード生成装置55は、スケジュール解析情報54に基づいて、コンポーネント間で行うリアルタイム通信に割り当てた通信基盤C113の帯域量を示すコード、及びコンポーネント間で行う各リアルタイム通信のタイミングを示すコードを含むスケジューリングモジュール9を生成する。また、リアルタイムコード生成装置55は、スケジューリングモジュール9と連携してコンポーネント間で通信を行うためのリアルタイムスタブ7やリアルタイムスケルトン8を生成する。
非リアルタイム通信を行うと判断した場合、リアルタイムコード生成装置55は、IDL定義解析情報52及びスケジュール解析情報54に基づいて、非リアルタイム通信用のスタブ、スケルトン及びスケジューリングモジュールのコードを生成する(ステップS407)。
本実施の形態では、リアルタイムコード生成装置55は、オペレーション I1::op2について、スケジュール情報6にリアルタイム通信の定義が存在しないので、非リアルタイム通信用コードを生成する。例えば、リアルタイムコード生成装置55は、リアルタイム通信用に割り当てられていない空き帯域から必要な分だけの帯域を確保するためのコード等を生成し出力することになる。
リアルタイムコード生成装置55は、インタフェースの全てのオペレーションについてコード生成を終了したか否かを判定する(ステップS408)。未処理のオペレーションがある(コードを生成していないオペレーションがある)と判断した場合、リアルタイムコード生成装置55は、ステップS404に戻り、未処理のオペレーションのコードを生成する。
未処理のオペレーションが存在しない(全てのオペレーションについてコードを生成した)と判断した場合、リアルタイムコード生成装置55は、未処理のコンポーネントが存在するか否か(全てのコンポーネントについて処理を終了したか否か)を判定する(ステップS409)。未処理のコンポーネントがあると判断した場合、リアルタイムコード生成装置55は、ステップS403に戻り、未処理のコンポーネントのコード生成を行う。未処理のコンポーネントが存在しないと判断した場合、リアルタイムコード生成装置55は、リアルタイムコード生成手順の処理を終了する。
情報処理システム11は、IDLコンパイル装置5が生成した各コードデータに基づいて、コンポーネント101,102間で通信を行うことによって、各種処理を実行する。本実施の形態では、情報処理システム11において、コンピュータA111は、IDLコンパイル装置5が生成した各コードデータ71,81,91に基づいて、処理を実行する。この場合、コンピュータA111は、各コードデータ71,81,91に従って、コンポーネント101,102間で行うリアルタイム通信毎に通信基盤C113を割り当る。そして、コンピュータA111は、割り当てた帯域を用いてコンポーネント101,102間の通信を行う。
同様に、コンピュータB112は、IDLコンパイル装置5が生成した各コードデータ72,82,92に基づいて、処理を実行する。この場合、コンピュータB112は、各コードデータ72,82,92に従って、コンポーネント101,102間で行うリアルタイム通信毎に通信基盤C113を割り当る。そして、コンピュータB112は、割り当てた帯域を用いてコンポーネント101,102間の通信を行う。
以上のように、本実施の形態によれば、IDLコンパイル装置5は、コンポーネント間のリアルタイム通信の性能要件を示すスケジュール情報6に基づいて、リアルタイム通信の性能要件を満たす帯域スケジューリングを行うためのスケジューリングモジュール9を生成する。また、IDLコンパイル装置5は、スケジューリングモジュール9と連携してリアルタイム通信を行うためのリアルタイムスタブ7やリアルタイムスケルトン8を生成する。そのため、リアルタイムスタブ7やリアルタイムスケルトン8、スケジューリングモジュール9を用いて、コンポーネント間でリアルタイム性が求められる通信を、適切な周期且つ適切なタイミングで発生させることができる。従って、アプリケーションソフトウェアのコンポーネント間のリアルタイムな通信を保証することができる。
また、本実施の形態によれば、通信基盤C113の帯域のスケジューリングによって割り当てを行うので、高い優先度の通信に対して、リアルタイム通信を保証するための帯域を常に確保しておく必要がなくなる。そのため、優先度の高いリアルタイム通信が通信基盤C113帯域を使用しない間には、低い優先度の通信に効率よく帯域を割り当てることができる。従って、通信基盤C113の帯域を有効に活用することができ、通信基盤C113のコストを低減することができる。
また、本実施の形態によれば、予めスケジュール情報6に基づいて通信基盤C113の帯域の割り当てを行う。そのため、アプリケーションの実行時に割り当てを行う場合と比較して、より確実にコンポーネント間のリアルタイムな通信を保証することができる。
本発明は、ハードウェアの制御系等のリアルタイム性の高い通信を要する通信基盤を用いたシステムに適用できる。また、大量のデータ転送が継続的に必要なマルチメディア通信の通信基盤を用いたシステムの用途にも適用できる。
本発明によるIDLコンパイラに従って動作するIDLコンパイル装置の構成の一例を示すブロック図である。 IDLコンパイル装置を用いた情報処理システムの一例を示す説明図である。 図2に示す情報処理システムが実行するアプリケーションの構成の例を示す説明図である。 図2及び図3に示すコンポーネント間で通信を行う場合のIDLコンパイル装置の具体的な構成例を示すブロック図である。 IDL定義の例を示す説明図である。 スケジュール情報の例を示す説明図である。 IDLコンパイル装置が実行するIDLコンパイル手順の処理の一例を示す流れ図である。 IDL定義解析手順の処理の一例を示す流れ図である。 スケジュール解析手順の処理の一例を示す流れ図である。 スケジュール解析装置が行うリアルタイム通信への帯域の割り当て結果の例を示す説明図である。 リアルタイムコード生成手順の処理の一例を示す流れ図である。 IDLコンパイラに従って動作するIDLコンパイル装置の構成の一例を示すブロック図である。 通信の優先度に応じて通信基盤の帯域の割り当てを行った場合の例を示す説明図である。
符号の説明
2 IDL定義
5 IDLコンパイル装置
6 スケジュール情報
7 リアルタイムスタブ
8 リアルタイムスケルトン
9 スケジューリングモジュール
51 IDL定義解析装置
52 IDL定義解析情報
53 スケジュール解析装置
54 スケジュール解析情報
55 リアルタイムコード生成装置

Claims (10)

  1. IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル装置であって、
    ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するスケジュール情報入力手段と、
    前記スケジュール情報入力手段が入力した通信スケジュール情報に基づいて、前記コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定する帯域割当手段と、
    前記IDL定義データ及び前記帯域割当手段の割り当て結果と、前記通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するコードデータ生成手段とを
    備えたことを特徴とするIDLコンパイル装置。
  2. スケジュール情報入力手段は、コンポーネント間で行う各通信の優先度、前記各通信を行う際に許容される遅延時間、又は前記各通信において送受信されるデータ量を含む通信スケジュール情報を入力し、
    帯域割当手段は、前記スケジュール情報入力手段が入力した通信スケジュール情報に示される優先度、遅延時間又はデータ量に従って、コンポーネント間で通信を行う際の通信基盤の帯域の割り当てを決定する
    請求項1記載のIDLコンパイル装置。
  3. コードデータ生成手段は、コードデータとして、コンポーネント間で行う各通信への通信基盤の帯域の割り当て、及び前記コンポーネント間で行う各通信のタイミングを制御するためのスケジューリングモジュールを生成する請求項1又は請求項2記載のIDLコンパイル装置。
  4. コードデータ生成手段は、スケジュールリングモジュールと連携してコンポーネント間で通信を行うためのスタブ又はスケルトンを生成する請求項3記載のIDLコンパイル装置。
  5. 帯域割当手段は、スケジュール情報入力手段が入力した通信スケジュール情報に基づいて、コンポーネント間で行う各通信に割り当てた通信基盤の帯域量、及び前記コンポーネント間で行う各通信のタイミングを示すタイミング情報を含むスケジュール解析情報を生成する請求項1から請求項4のうちのいずれか1項に記載のIDLコンパイル装置。
  6. コードデータ生成手段は、帯域割当手段が生成したスケジュール解析情報に基づいて、コンポーネント間で行う各通信に割り当てた通信基盤の帯域量を示すコード、及び前記コンポーネント間で行う各通信のタイミングを示すコードを含むスケジューリングモジュールを生成する請求項5記載のIDLコンパイル装置。
  7. ソフトウェアに含まれるコンポーネント間で通信を行うことによって処理を実行する情報処理システムであって、
    IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル装置と、
    前記ソフトウェアに従って処理を実行する情報処理装置とを備え、
    前記IDLコンパイル装置は、
    前記ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するスケジュール情報入力手段と、
    前記スケジュール情報入力手段が入力した通信スケジュール情報に基づいて、前記コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定する帯域割当手段と、
    前記IDL定義データ及び前記帯域割当手段の割り当て結果と、前記通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するコードデータ生成手段とを含み、
    前記情報処理装置は、前記IDLコンパイル装置が生成したコードデータに従って、コンポーネント間で行う通信毎に通信基盤の帯域を割り当て、前記割り当てた帯域を用いてコンポーネント間で通信を行うコンポーネント間通信手段を含む
    ことを特徴とする情報処理システム。
  8. IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル方法であって、
    ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するステップと、
    前記入力した通信スケジュール情報に基づいて、前記コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定するステップと、
    前記IDL定義データ及び前記割り当て結果と、前記通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するステップとを
    含むことを特徴とするIDLコンパイル方法。
  9. ソフトウェアに含まれるコンポーネント間で通信を行うことによって処理を実行する情報処理方法であって、
    IDL定義データに基づいてスタブ又はスケルトンを生成するIDLコンパイル装置が、前記ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力するステップと、
    前記IDLコンパイル装置が、前記入力した通信スケジュール情報に基づいて、前記コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定するステップと、
    前記IDLコンパイル装置が、前記IDL定義データ及び前記割り当て結果と、前記通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成するステップと、
    前記ソフトウェアに従って処理を実行する情報処理装置が、前記IDLコンパイル装置が生成したコードデータに従って、コンポーネント間で行う通信毎に通信基盤の帯域を割り当て、前記割り当てた帯域を用いてコンポーネント間で通信を行うステップとを含む
    ことを特徴とする情報処理方法。
  10. IDL定義データに基づいてスタブ又はスケルトンを生成するためのIDLコンパイラであって、
    コンピュータに、
    ソフトウェアに含まれるコンポーネント間で行う各通信のスケジュールを示す通信スケジュール情報を入力する処理と、
    前記入力した通信スケジュール情報に基づいて、前記コンポーネント間で各通信を行う際の通信基盤の帯域の割り当てを決定する処理と、
    前記IDL定義データ及び前記割り当て結果と、前記通信スケジュール情報で指示されたリアルタイム通信の要否の情報とに基づいて、リアルタイム通信用のコードデータ又は非リアルタイム通信用のコードデータを生成する処理とを
    実行させるIDLコンパイラ。
JP2005092084A 2005-03-28 2005-03-28 Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ Expired - Fee Related JP4293149B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005092084A JP4293149B2 (ja) 2005-03-28 2005-03-28 Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005092084A JP4293149B2 (ja) 2005-03-28 2005-03-28 Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ

Publications (2)

Publication Number Publication Date
JP2006277053A JP2006277053A (ja) 2006-10-12
JP4293149B2 true JP4293149B2 (ja) 2009-07-08

Family

ID=37211789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005092084A Expired - Fee Related JP4293149B2 (ja) 2005-03-28 2005-03-28 Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ

Country Status (1)

Country Link
JP (1) JP4293149B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146383A (ja) * 2006-12-11 2008-06-26 Nec Corp コンパイル装置、方法、およびプログラム
JP2011142378A (ja) 2010-01-05 2011-07-21 Seiko Epson Corp コンピューターが組み込まれた装置の制御
WO2020144768A1 (ja) 2019-01-09 2020-07-16 日本電気株式会社 検証装置、秘密計算検証システム、秘密計算実行コードの検証方法及びプログラム

Also Published As

Publication number Publication date
JP2006277053A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
US9043770B2 (en) Program module applicability analyzer for software development and testing for multi-processor environments
US20140007044A1 (en) Source Code Generator for Software Development and Testing for Multi-Processor Environments
US7380005B1 (en) Systems, methods and computer program products for improving placement performance of message transforms by exploiting aggressive replication
RU2005117775A (ru) Реализация совместно исполняющихся программ на объектно-ориентированных языках
Kashif et al. Buffer space allocation for real-time priority-aware networks
JP4293149B2 (ja) Idlコンパイル装置、idlコンパイル方法及びidlコンパイラ
Khamespanah et al. Modeling and analyzing real-time wireless sensor and actuator networks using actors and model checking
Pop et al. Schedulability-driven frame packing for multicluster distributed embedded systems
US20100229183A1 (en) Framework device of mobile terminal and method for providing interoperability between components
Odendahl et al. Split-cost communication model for improved MPSoC application mapping
He et al. Task allocation and optimization of distributed embedded systems with simulated annealing and geometric programming
Borchert et al. CiAO/IP: a highly configurable aspect-oriented IP stack
Gorton et al. Components in the Pipeline
Kumar et al. Analyzing composability of applications on MPSoC platforms
Gerber et al. End-to-end design of real-time systems
Lesparre et al. Evaluation of synchronous dataflow graph mappings onto distributed memory architectures
Arras et al. Dkpn: A composite dataflow/kahn process networks execution model
CN114546670A (zh) 一种基于协程的函数式异步数据分发系统及方法
Zhu et al. Performance analysis of reconfiguration in adaptive real-time streaming applications
Althaus et al. A column generation approach to scheduling of periodic tasks
CN107656741B (zh) 一种高性能计算环境中使用应用封装的方法及其系统
CN114866534B (zh) 一种图像处理方法、装置、设备及介质
König et al. Improving the efficiency of automated protocol implementations using a configurable FDT compiler
EP1483670B1 (en) Timebox driven scheduling of software components in hard real-time systems
WO2011114539A1 (en) A programming supporting device and a method for generating routing information for an array of computing nodes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081204

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140417

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees