JP2007527562A5 - - Google Patents

Download PDF

Info

Publication number
JP2007527562A5
JP2007527562A5 JP2006518306A JP2006518306A JP2007527562A5 JP 2007527562 A5 JP2007527562 A5 JP 2007527562A5 JP 2006518306 A JP2006518306 A JP 2006518306A JP 2006518306 A JP2006518306 A JP 2006518306A JP 2007527562 A5 JP2007527562 A5 JP 2007527562A5
Authority
JP
Japan
Prior art keywords
embedded system
managing
embedded
function
software component
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
JP2006518306A
Other languages
English (en)
Other versions
JP2007527562A (ja
JP4724660B2 (ja
Filing date
Publication date
Priority claimed from FR0308489A external-priority patent/FR2857476B1/fr
Priority claimed from FR0403174A external-priority patent/FR2857471B1/fr
Application filed filed Critical
Publication of JP2007527562A publication Critical patent/JP2007527562A/ja
Publication of JP2007527562A5 publication Critical patent/JP2007527562A5/ja
Application granted granted Critical
Publication of JP4724660B2 publication Critical patent/JP4724660B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法
本発明は、組み込みシステム、特に携帯電話におけるソフトウェアコンポーネントの分野に関する。
本発明は、特にコンポーネント相互の呼び出し及び会話を含む、コンポーネントを管理する方法に関する。
携帯電話、カメラまたは自動車用のナビゲーションシステムなどの組み込みシステムに常駐するソフトウェアは、パーソナルコンピュータ(PC)型の器具において達成されたレベルに達するために、過去10年の間に信じられないほど複雑化してきた。業界、特に携帯電話の業界は、新しい器具を迅速に開発し、非常に多数の機能を無数の非常に多様なプラットホームに統合するという課題に直面している。このように複雑化が進むことと関連して、組み込みシステムは今日、柔軟性、(ダウンロードを介して、または付属品またはメモリカードの追加によって)開放性、コスト、開発及びロバストネスまたはセキュリティの速度も同時に組み合わせた仕様を満たさなければならない。これらの制約は特にこのようなシステムにおけるソフトウェアに関して見受けられる。
これらの制約という観点からは、業界がソフトウェアに関して直面している課題が、本質的には(このようなもの、及び多かれ少なかれ実装が複雑である既定の機能を有するこのようなソフトウェアの)開発の問題に関連しているのではなく、むしろ10年間のハードウェア業界に当てはまるように、(多様性のある原点の数個のソフトウェアの)統合と妥当性検査の問題に関連していることは明らかである。本発明の目的はシステムレベルでは現在通常の技術に同等な性能を維持しつつ、それらを独立したコンポーネントに変換することによってソフトウェアエンドを隔離することを可能にする技術によって複雑な組み込みシステムを統合し、妥当性検査をするタスクを容易にすることである。そしてこれは、いったん器具が市場にされると、追加または補正にこのように形成されるシステムを広げる。
従来の技術に従って、組み込みソフトウェアは従来ソフトウェア層の形で開発され、層は、最も開発されたシステムの場合には、おそらくプロセッサに、またはシステムの特定のリソースに対するアクセスの特権を有する。層内または層間の通信は、手続き式に(関数呼び出し)で発生する。ソフトウェアの最後の画像に関しては、これは、3つのコードが1、2、及び3と参照され、最終的な画像がいったんメモリに入れられたコード1、2、及び3のリンク([リンケージ])の編集後に得られる図1に描かれているように、プロセッサによる実行のために準備が完了した、目的ごとの編纂または全体の「リンケージ」の段階の後に生じる。
この種の開発は資源の利用と速度という点で非常に効果的なシステムを作成するという優位点を有する。他方、それらは一定数の問題を結集させ、問題はシステムが複雑性を増すにつれて管理するのがさらに困難になる。試験、別個のパーツごとの開発、及び別のプラットホームへの移動、更新、安定性、柔軟性等の問題点を特に引用できる。
また、従来の技術に従って、これらの問題を軽減するために、組み込み技術の世界でのプレーヤの大多数は、はるかに老朽化したプラットホームで(特にサーバに関して)はるかに大規模且つはるかに複雑であるシステムについて開発された、いわゆる「コンポーネント」手法に近い手法を採用している。これは、3つのコードが1、2及び3と参照され、メールボックス7がルータ6を使用して多様なコードによって送信されるメッセージ5を受信し、OSによって管理される図2に示されるようにオペレーティングシステム(以後OSが「オペレーティングシステム」を表す)によるメッセージの交換で可能であれば手続き呼び出しを置換することによって達成された。これにより、ソフトウェアエンティティ間の交換をはるかにうまく、制御された方法で分離することが可能になる。他方、(開発及び資源の要求という点での)このような機構の負担のため、この機構はただ部分的に使用されるにすぎず、手続き呼び出しはこのようなシステムでの共通の慣行のままとなり、このようにして前記に引用された不利な点の大多数は続くので該手法の優位点を制限する。
従来の技術は、組み込みコンポーネントの分野では、特許出願PCT WO第03/009137号によって、組み込みシステムのためにソフトウェアコンポーネントを統合するための方法も知っている。モジュールは、モジュールが実際には実行を開始する前にそれが必要とする別のすべてのモジュールを有することを確実にする、「マネージャ」に基づいてその中で単独でインスタンス化される。
しかしながら、本願は、資源をよりよく活用するためのコンポーネント間の効果的な通信には言及しない。
本発明は、これらのエンティティが完全に独立したソフトウェアコンポーネントとして活動できるようにする一方で、ソフトウェアエンティティ間で手続き呼び出しとまったく同じくらい効率的に通信する方法をセットアップすることによって従来の技術の欠点を矯正することを目指す。
これを実行するために、本発明は前述された種類であり、コンピュータ装置と関連付けられる少なくとも1つのオリジナルコードと、前記組み込みシステムと関連付けられる少なくとも1つの組み込みコードと、前記組み込みシステムと関連付けられる少なくとも1台のプロセッサと、を備え、組み込みシステムを管理する方法に関するという点において、それが最も幅広く受け入れられているという点で注目に値し、本発明は、前記オリジナルコードにより呼び出されるが、前記オリジナルコードで実装されていないターゲット関数を特定するために前記オリジナルコードを分析すること、実装されていない前記関数のそれぞれについて、対応する関数識別子を決定すること、前記組み込みコードによって実装される少なくとも1つのPLUGスイッチング関数の呼び出しで、実装されていない前記関数の呼び出しを置き換えることからなる少なくとも1つの内蔵ソフトウェアコンポーネントの作成と、組み込みシステム上での前記コンポーネントの実行であって、前記PLUGスイッチング関数が前記関数識別子に対応する実装されていないターゲット関数のアドレスへのプロセッサのリダイレクトを制御と、からなるステップを備えることを特徴とする。
好ましくは、本発明は、さらに、内蔵ソフトウェアコンポーネントの作成時に、コンポーネント内で定められるオリジナル関数のアドレスをそのパラメータとして有する、呼び出されるターゲット関数を特定するために前記オリジナルコードを分析するステップと、特定の関数の呼び出しで、前記コールバックパラメータを置換するステップと、前記の関連付けられた特殊な関数を自動的に生成するステップであって、関数は、前記のオリジナル関数の識別子を供給し、前記組み込みコードによって実装される少なくとも1つのPLUGスイッチング関数を呼び出す、生成するステップと、を備える。
好ましくは、本発明は、さらに、内蔵ソフトウェアコンポーネントの作成時に、オリジナルコードでは定められていない、前記コンポーネントが実行できるために必要とする情報を識別するために前記オリジナルコードを分析するステップと、この欠けている情報のリストを、それが生成されるときに前記コンポーネントに追加するステップと、前記コンポーネントの実行時に、前記組み込みシステムで前記コンポーネントを実行可能にするために、初期に欠けていた情報の1つまたは複数の項目がいったんシステムによって供給される、前記コンポーネントのコードを修正するステップと、を備える。
有利なことに、コンポーネントは前記組み込みシステムに常駐する。
好ましくは、前記コンポーネントは前記組み込みコードによってダウンロードされる。
有利なことに、前記コンポーネントはその作成時点で暗号化された形式である。
この場合は、該方法は、前記コンポーネントを復号化するステップも含む。
有利なことに、前記コンポーネントは、同じ関数を履行する別のコンポーネントで置換される。
好ましくは、前記コンポーネントは、前記実行メモリ領域が初期に位置付けられたメモリ領域とは異なる組み込みシステムのメモリ領域に実行のために入れられる。
有利なことに、前記実行メモリ領域は前記プロセッサがアクセス可能であり、実行の速度、消費に関して特殊な特性と、アクセス権実行に関してアクセスしやすさを有する。
好ましくは、前記PLUGスイッチング関数は、関連パラメータで処理される多様な呼び出しを表示する関数を実装する。
さらに、前記PLUGスイッチング関数は、関連パラメータで処理される多様な呼び出しを記録する関数を実装する。
この場合、前記呼び出しの前記記録は、前記呼び出し(時間情報、実行コンテキスト、メモリ使用)のそれぞれについて情報の少なくとも1つの追加項目を備える。
好ましくは、コンポーネントに関する呼び出しの前記記録は、内蔵式で前記コンポーネントをシミュレーションするために使用される。
有利なことに、コンポーネントに関する呼び出しの前記記録は組み込みコードのエラーの検出に使用される。
この場合には、前記エラー検出記録は、いったんエラーが検出されるとエラーを分析することに責任のある別のコンピュータリソースに送信される。
有利なことに、実装されていないターゲット関数識別子が、PLUGスイッチング関数のパラメータを構成する。
有利なことに、それは実装されていないターゲット関数のパラメータをコピーする動作を備えない。
好ましくは、実装されていない関数の識別子は、PLUGスイッチング関数を呼び出す前にプロセッサのスタックに記憶され、記憶された識別子は、次に、該識別子に対応する関数へのリダイレクトのための要求を実装するために、前記スイッチング関数によって使用される。
好ましくは、実装されていない関数の識別子は、PLUGスイッチング関数の呼び出しの前にプロセッサのレジスタに記憶され、記憶される該識別子は、前記識別子に対応する前記関数へのリダイレクトのためのコマンドを実装するために前記スイッチング関数によって使用される。
ある実施形態によれば、ターゲット関数は組み込み装置の別のプロセッサで実装される。
別の実施形態によれば、ターゲット関数は前記組み込みシステム以外の別のコンピュータリソースで実装される。
好ましくは、前記PLUGスイッチング関数は、呼び出されたターゲット関数と関連づけられた特殊なアクションの集合を形成し、ターゲット関数の全てのアクションは以前に定義され、組み込みシステムで記憶されている。
例えば、特殊なアクションの前記集合は、プロセッサのあるコンテキストから別のコンテキストへの変化、別のコンポーネントのインストールと実行、ターゲット関数の呼び出しの1つまたは複数のコンポーネントの通知、組み込みシステムのユーザの通知、別のコンピュータリソースの通知を含む。
好ましくは、アクションの前記集合は動的に修正可能である。
有利なことに、前記PLUGスイッチング関数は、ターゲット関数が使用できない関数識別子に対応する場合に、特殊なアクションを生成するステップも実行する。
この場合には、前記特殊なアクションは、使用できない関数の識別子の属性によって決定される。
好ましくは、前記PLUGスイッチング関数は、ターゲット関数を呼び出すためにコンポーネントの権利を検証するステップも実行する。
この場合には、前記検証は、どのコンポーネントがどの関数を呼び出すことができるのかを示すアクセス権テーブルから実行される。
有利なことに、前記アクセス権テーブルは最終ユーザによって修正可能である。
好ましくは、前記アクセス権テーブルは別のコンピュータリソースによって遠隔に修正可能である。
有利なことに、前記PLUGスイッチング関数は、オリジナル関数識別子に対応する前記ターゲット関数が使用できない場合には、同等な関数を検索し、同じ機能であるが、ターゲット関数のフォーマットとは異なるフォーマットで実行し、及び前記同等な関数を実行するアクションも要求する。
好ましくは、PLUGスイッチング関数は、関数識別子に対応する関数が使用できない場合には、前記使用できない関数に対応するコンピュータリソースの位置を突き止め、前記検索の結果生じる関数を実行するアクションも要求する。
さらに、前記ターゲット関数識別子は、前記ターゲット関数を実装するソフトウェアコンポーネントに対応する第1の情報の項目、及び前記コンポーネントの中のターゲット関数の数に対応する第2の情報の項目を含む。
優先的に、PLUGスイッチング関数は、ターゲット関数識別子とターゲット関数のアドレスとの間の対応の少なくとも1つのテーブルを使用して実行される。
さらに、前記対応のテーブルは前記ターゲット関数を実装するソフトウェアコンポーネントに対応する情報の前記項目の第1の対応のテーブルと、前記コンポーネントのそれぞれについて、前記関数の数と対応するコンポーネントでの前記ターゲット関数のアドレスとの間の第2の対応のテーブルに再分割される。
好ましくは、前記第2のテーブルは、コンポーネントが作成されるときに生成される。
有利なことに、前記第2のテーブルは読取専用メモリに記録される。
好ましくは、前記第1のテーブルがランダムアクセスメモリに記録されることを特徴とする。
好ましくは、前記コンポーネントのインストールは事前の許可に依存する。
有利なことは、前記コンポーネントの実行は事前の許可に依存する。
さらに、事前の許可は組み込みシステムによって保持されるキー(システムキー)と実行されるコンポーネントによって保持されるキー(コンポーネントキー)との間の一致に依存し、システムキーは前記組み込みシステムを一意に指定する情報の項目から計算可能である。
さらに、コンポーネントが組み込みシステムによって実行されているとき、通知は別のコンピュータソースに供給され、この別のコンピュータソースは、この通知に続いて、組み込みシステムに、前記コンポーネントを実行する許可または拒絶を送信する。
好ましくは、前記別のコンピュータソースは、前記通知に続き、前記組み込みシステムに、前記コンポーネントを実行する許可または拒絶を送信する。
さらに、別のコンピュータリソースによって送信される許可は、組み込みシステムでの前記コンポーネントの実行を許可するためにコンポーネントキーとシステムキーとに結合されるキー(外部キー)を含む。
好ましくは、前記別のコンピュータソースによって送信される許可は別のコンピュータリソースでの金銭上の取引の正しい実行に関連付けられる。
有利なことに、前記外部キーは、金銭上の取引きに続き、その商業的な配備の前に組み込みシステムに保存される。
好ましくは、前記外部キーは、金銭上の取引きに続き、組み込みシステムで保存される。
さらに、前記コンポーネントは、サービス品質情報のうちの少なくとも1つの項目を含む。
好ましくは、前記サービス品質情報は、前記コンポーネントの実行の前にリソースを割り当てるために組み込みシステムで使用される。
有利なことに、前記サービス品質情報は、最小要件情報、平均要件情報及びそれが機能するための最適要件情報、前記コンポーネントがそれが機能するために必要とする別のコンポーネント(関連コンポーネント)のリスト、及び関連コンポーネントによって必要とされるバージョン番号情報を含む、それが機能するためのコンポーネントのランダムアクセスメモリ要件である。
好ましくは、組み込みシステムは、関連コンポーネントが前記コンポーネントによって示されるバージョン番号に応答しない場合、コンポーネントの実行に着手しない。
別の実施形態によれば、組み込みシステムは、関連コンポーネントが前記コンポーネントによって示されるバージョン番号より大きいバージョン番号に応答しない場合にコンポーネントの実行に着手しない。
有利なことに、前記サービス品質情報は、前記コンポーネントの処理能力要件である。
さらに、組み込みシステムは、前記処理能力要件に従って組み込み機能のプロセッサの周波数を修正する。
さらに、前記組み込みシステムは、多様なコンピュータリソースのうちの使用可能なリソースに従って組み込みシステムのどのコンピュータリソースで前記コンポーネントを実行するのかを決定する。
好ましくは、前記組み込みシステムは各コンピュータリソースの処理可用性に従ってそのコンピュータリソースの一方または他方でコンポーネントを実行させることを決定する。
有利なことに、前記組み込みシステムは、組み込みシステムの電力消費を最小限に抑えるためにそのコンピュータリソースの一方または他方でコンポーネントを実行させることを決定する。
1つの実施形態によれば、組み込みシステムがサービス品質情報のうちの少なくとも1つの項目でコンポーネントによって表現される要件を保証できない場合、組み込みシステムは前記コンポーネントの実行を拒絶する。
好ましくは、前記コンポーネントは、前記コンポーネントによって実行される機能を指定するための情報のうちの少なくとも1つの項目を含む(コンポーネントの名前、バージョン、該コンポーネントによって実装される関数のリスト等)。
さらに、組み込みシステムは前記組み込みシステムで使用可能なコンポーネントのリスト、及び事前に要求を行った別のコンピュータリソースと関連付けられるコンポーネント情報を供給できる。
好ましくは、前記組み込みシステムにより実行されなければならない完全なコードは前記コンポーネントによって実装されていないターゲット関数の数を最小限に抑えるためにコンポーネントに分解される。
さらに、初期のシステムのコンポーネントへの分解はコンポーネントのサイズを以後修正される確率と相関付けることによって行われる。
本発明は、前記方法のステップを実行するエンジンを備える点を特徴とし、少なくとも1つのエンジンを備える組み込みシステムをシミュレーションする非組み込みシステムにも関する。
本発明は、メモリに含まれるコンポーネントが前記方法に従って得られることを特徴とする少なくとも1つのエンジンを備える組み込みシステムにも関する。
本発明は、添付図に関して本発明の実施形態の、純粋に説明によって以下に示される説明の助けを借りてさらによく理解されるであろう。
図3に描かれている本発明に従って、3つのコード1、2及び3は図で参照される以下の要素によってまったく新しい様式で管理できる。
34:コンポーネントの間の多様な通信(PLUG)の切り替えと制御を担当するエンティティ
35:多様なコンポーネントに関する情報を含むデータベース
36:多様なコンポーネントの活性化及び非活性化を担当するマネージャ
37:ソフトウェアエンジンのPLUGにリダイレクトされる手続き呼び出し
この図に関して、本発明の基本的な原則は以下の通りである。
−(内蔵式でコンパイル可能な)標準的な初期コードは、この初期コードの外部のリソースの全ての使用が以下により置換されるように自動的に作り直される(前処理)。
−PROXYまたはPLUGのどちらかと呼ばれる、コンポーネント単位のコードの単一のエントリへのプロセッサのリダイレクト
この単一のエンティティの値は、コンポーネントが組み込みシステムで活性化されるその後修正できる。
単一のエンティティの値は、コンポーネントが組み込みシステムで活性化されるとその後修正できる。
−このリダイレクトの前のプロセッサとの関連での情報の追加であって、情報は要求される外部リソースを知る事を可能にする(例えば要求されるコンポーネントの数及び関連サービス)。
このようにして生成されたコードは、自己内蔵様式でコンパイル及びリンクできる(リンクの編集)。このコードは、特にコンポーネントによって供給されるサービスのプロトタイプ化に関する情報など、この前処理段階の間に、コンポーネントと呼ばれるものを構成するためにそれと並列される特定数の補足情報の項目が追加される。したがって、コンポーネントはPLUGによってのみシステムの残りと通信できる。
−エンジンは組み込みシステムに位置付けられ、コンポーネントが実装するサービスに関する情報を保持することによってそれらを活性化することを可能にし、特にPLUGとのその通信を可能にする。PLUGは、標準モードで、いくつかのプロセッサ命令の中で、コンポーネントによって要求されるターゲット関数の情報を回復し、この関数(サービス)が位置付けられるコードの場所にプロセッサを直接的に「スキップ」させるソフトウェアエンドである。
この機構によって、ソフトウェアエンティティはPLUGを介してシステムの残りから完全に隔離される。PLUGは、システムの構成及び関連する制約に従って、通信フロー制御、(多様なプロセッサの間、またはさまざまな性質のコンポーネントまたはさまざまな特権の間の)リダイレクト、コンポーネントの置換、ある言語から別の言語への変換、別の実行エンティティへのゲートウェイ(プロセッサの別のタスク、別のメモリ領域、別のプロセッサ、チップカード、ネットワーク、付属品)の機能を追加できる。
この技術は、このようにして性能レベルまたは開発者にとっての制約で妥協することなく、コンポーネント手法(転送の容易さ、試験、保守、安定性、セキュリティ、ソフトウェア構成の柔軟性、ハードウェアアーキテクチャに関する柔軟性等)の使用に関するすべての優位点を回復できるようにする。さらにソフトウェアコンポーネントは独自に生成されるので、それらはシステムの残りに影響を及ぼさずに交換、修正、更新または追加を行うことができる。この原則を使用すると、このようなコンポーネントへの分割は、例えばコンポーネントのサイズと修正されるその確率の相関に応じて、実装されていないターゲット関数の数を最小限に抑えるために最適化できる。
したがって、この技術により、例えば、同じ機能を履行する別のコンポーネントでコンポーネントを置換する、あるいはどのコンポーネントが別のどのコンポーネントを呼び出すことを許可されているのかを知るためにPLUGによって直接的に管理されるコンポーネント上で権利を関連付けることができるようになる。
PLUGは、それが処理する呼び出しを知り、おそらく多様な関連パラメータを用いて登録できるようにするために実装することもできる。この記録システムは、次に、例えば組み込みコードの中のあらゆるエラーを検出するために、行われた関数呼び出しにそれを同化させることによってコンポーネントをシミュレーションできる。いったんエラーが検出されると、これらのエラー検出記録は、次にエラーの分析を担当する別のコンピュータリソースに送信される。
呼び出しのこれらの記録は、これらの呼び出しのそれぞれに補足情報を備えることもできる。この情報は、時間、実行コンテンツ、メモリ使用に関する情報、またはコンポーネントのトレーサビリティ及び管理に必要な別の情報である場合がある。
図4に描かれている、本発明によるソフトウェアコンポーネントは、別のコンポーネントに対する要求とサービス応答の交換を介しては別にして、実行時にシステムの残りから完全に隔離されるように生成されるソフトウェアエンドである。
例えば、C言語(Bプラグコンポーネント)で符号化されたコンポーネントの場合には、それが(例えば関数呼び出しを介して)明示的であるのか、あるいは(グローバル変数等の使用を介して)暗示的であるのかに関係なく交換は許可されていない。コンポーネントは独立しており、それはデータと処理命令を含む同種のブロックであり、これは実行時も同等である。
コンポーネントのサービスのアクセスする手段がインターフェースと呼ばれる。インターフェースは、特にこの使用専用のIDL言語を介して説明できる。多様なコンポーネントのタイプに従って、このインターフェースは特定数の関数、メソッド等によって実装される。
例えば、B−プラグコンポーネントによって供給されるサービスインタフェースは、別のコンポーネントによって(それらが関連アクセス権を有するならば)(PLUGを介して)呼び出すことができるC関数集合の形で実装される。
サービスのインプリメンテーションは、厳密に言えば、コンポーネント本体の中に位置する。コンポーネントの本体は、別のコンポーネントのサービスを使用できるようにする。
例えば、サービス「ALARM(警報)」はいかなる瞬間でも前もってプログラムされた特定のアクションを生じさせる。警報コンポーネントのインターフェースにより、クライアントは、
−警報によりどのアクションをトリガするのかを定めることができる。
−このアクションがトリガされなければならない瞬間を定めることができる。
インターフェース及びコンポーネントの本体に加えて、情報の特定数の項目がコンポーネントに、それが生成されるときに追加される。この情報は、以後システムをオンにするこのエンジンによって使用される。
コンポーネントは、例えば、
−コンポーネントのタイプ((Cで符号化された)バイナリ、JAVA(登録商標)等)−提供されるサービスの説明
−コンポーネントの実行に必要なサービスとリソースのリスト
−特権、アクセス権
−(発呼者に関連して、コンポーネントに関連して等)アクセスされる方法
等の情報を含むことがある。
さらに詳細には、コンポーネントは特定数の、組み込みシステムによってそれが実行される前にコンポーネントにリソースを割り当てるために使用されるサービス品質情報と呼ばれる情報の項目を含む。このサービス品質情報は、
−最小要件、平均要件及び最適要件の形での、それが機能するためのコンポーネントのランダムアクセスメモリ要件であり得る。
−コンポーネントが、それが機能するために必要とする別のコンポーネント(関連コンポーネント)のリスト及びこれらの関連コンポーネントのバージョン番号であり得る。関連コンポーネントがコンポーネントによって示されるバージョン番号より高い、または等しいバージョン番号に対応しない場合、組み込みシステムがコンポーネントの実行に着手しないことに留意しなければならない。
−コンポーネントの処理力に関しての要件であり得る。組み込みシステムは特にコンポーネントまたは関連コンポーネントの能力に関して、要件に従って組み込みシステムのプロセッサの周波数を修正する可能性があることに留意しなければならない。それは、リソースの処理可用性に従ってそのコンピュータリソースの一方または他方でコンポーネントを実行させることを決定する可能性がある。一般論としては、組み込みシステムはその電力消費を最小限に抑えるために実行時にリソースを決定してよい。
その結果、このサービス品質情報のすべて、及び組み込みシステムにより達成される管理によって、後者は、それがサービス品質情報で表される要件を保証できない場合には、コンポーネントの実行を拒絶できるようになる。
さらに、コンポーネントは、コンポーネントによって実行される機能(コンポーネントの名前、バージョン、コンポーネントによって実装される関数のリスト等)を指定できるようにする情報(コンポーネント情報)の特定数の項目を含む。このコンポーネントの情報及び使用できるコンポーネントのリストは、要求が事前に行われる場合には、組み込みシステムによって別のコンピュータリソースに供給されてよい。
本発明によるコンポーネントの主要な状態は図5に描かれている。
ステップ51は、コンポーネントがシステム内でダウンロードできるダウンロードステップである。
コンポーネントに関する特定数の特性(特にセキュリティ)を示すために、ラベルがこの時点でシステムによって作成できる。このステップの間、任意のタイプのダウンロードを使用できる。
コンポーネントは言うまでもなくすでに組み込みシステム上に常駐してよいため、このダウンロードステップが絶対的に必要ではないことに留意しなければならない。
次にステップ52の間にコンポーネントがインストールされる。その後、容易にコンポ−年を活性化できるようにするために、特定数のアクションが実行される。おそらく、コンポーネントのこのインストールの間、あるいはそのダウンロードの時点では、それはおそらくセキュリティの理由から暗号化された形式となる可能性がある。コンポーネントの実行のステップは、この場合には、さらに復号化ステップを備える。
さらに正確には、コンポーネントのインストールまたは実行は過去の許可に依存する可能性がある。この場合には、許可は組み込みシステムにより保持されるキー(システムキー)と実行されるコンポーネントにより保持されるキー(コンポーネントキー)が一致する場合に付与される。システムキーは、例えば、組み込みシステムを一意に指定する情報から計算されてよい。
組み込みシステムによるコンポーネントの実行時に、別のコンピュータリソースに通知が供給される。この通知に続いて、前記リソースが次に組み込みシステムのコンポーネントを実行する許可または拒絶を送信する。
許可は、例えばシステムキーとコンポーネントキーと結合される外部キーの形を取ってよい。それらは無料で配布されてよい、あるいは組み込みシステムの販売の前後に金銭上の取引きに関連付けられる。
ステップ53では、コンポーネントによって提供されるサービスの1つがシステムの一部によって要求されるとき、あるいはユーザが特定のサービスを活性化するときに、関連付けられるコンポーネントが活性化される。コンポーネントは、コンテナ内で実行され、その形式はコンポーネントのタイプに依存する。PLUGに関しては、これはコンポーネント間のサービスの多様な交換の切り替えを担当する。PLUGは、本発明によるコンポーネントの形でコンパイルされない残余コードにも関連付けることができる。
データベース54は、多様なコンポーネントの状態(インストール可能、インストール済み、活性化済み等)、及び情報の特定数の別の項目(サービス、関連バージョン、セキュリティパラメータ、サービスのロケーション等の説明)を記録する。いったんインストールされると、コンポーネントはつねにその処理装置のデータベースで記録される。
例えば、アクセス権テーブルが最終ユーザによって、または別のコンピュータリソースによって遠隔で修正できることに留意しなければならない。
ステップ55の間、コンポーネントをアンインストールする、あるいは交換することもできる。交換は静的に(つまり、コンポーネントがアクティブではなかった間に)または動的に(活性化中に)発生することがある。
さらに、コンポーネントがオリジナルコードから作成されるとき、ターゲット関数がそれ自体コンポーネントで定められる関数のアドレスをパラメータとして有する場合に、このパラメータはコールバック関数と呼ばれる特定の関数の呼び出しによって置換されることにも留意しなければならない。この関数は初期関数の識別子を供給し、スイッチング関数PLUGを前述のように呼び出す。
同様に、ソフトウェアコンポーネントの作成時、オリジナルコードで定義されない任意の情報及びコンポーネントがそれを実行できるために必要とする情報が特定される。この情報は、次にコンポーネントに、それが生成されるときに追加される。失われた情報がいったんシステムによって供給できると、コンポーネントのコードはそれを実行可能にする順序で修正される。
別のコンポーネントはソフトウェアコンポーネントにリンクできる。特に、
コンテナはコンポーネントの実行に関与し、同コンテナは同じタイプのすべてのコンポーネントによって共用できる。
ローダは、ある場所から別の場所へのコンポーネントの転送(コピー)(例えばあるメモリから別のメモリへコピーすること)を行えるようにする。
プロビジョナは、システム内でダウンロードできるためにコンポーネントの特定数のパラメータを検証することに関与する。
チェッカは、コンポーネント、その権利等の完全性をチェックする。
図6に描かれている、本発明によるエンジンは4つの別々のパーツで構築される(architectured)。
ダウンローダは、システム内でのソフトウェアコンポーネントのダウンロードに関与する。それは、
−それらが何であれシステムのトランスポート層と、
−ダウンロードを受け入れるまたは拒絶するプロビジョナと、
−システムで利用できる1つまたは複数の記憶システム
と対話する。
マネージャは、
−インストーラ:ソフトウェアコンポーネントのインストール及びアンインストールに関与すること、
−アクティベータ:コンポーネントを活性化するまたは非活性化することに関与すること、
を含む。
データベースはシステム内でインストールされ、活性化されるコンポーネントに関する情報を再構築することに関与する。
最後に、PLUGは多様なコンポーネント間の通信に関与する。このインプリメンテーションは、以下にさらに広範に説明される。
PLUGに基づいたリダイレクトの原則は図7で描かれる。
最初に、コンポーネントがメモリにインストールされる。システムのメモリの一部はエンジン用に確保される。エンジンのマネージャは、この確保された領域にコンポーネントをインストールすることに関与する。コンポーネントは次々に記憶される。
さらに、それが実行されるとき、コンポーネントは、それが初期に実行メモリ領域と呼ばれていたメモリ領域とは異なる組み込みシステムのメモリ領域内に入れられる。この実行メモリ領域は、実行速度、消費及びコンポーネントに特に適しているアクセス可能性に関して特定の特性を有する。
コンポーネントはアンインストールすることもできる。このようにしてマネージャは確保されたメモリ領域のフラグメンテーション解消の動作を実施できるようにされる。
その結果、コンポーネントはPLUGに接続される。コンポーネントが生成されたとき、このコンポーネントのすべての外部アクセスが(0xFFFFFFFなどの)単純な意味のないアドレスにリダイレクトされた。インストール時、コンポーネントは、意味のないアドレスに代入するPLUG内の入力アドレスを割り当てられる。したがって、コンポーネントの外部呼び出しは、事実上、コンポーネント専用のPLUGへの入力アドレスの呼び出しに変換される。
活性化時、エンジンのマネージャは、どこにコンポーネントが位置するのか、及びその情報がどこに位置するのか(特に、各コンポーネントにより供給される多様なサービス)を示すスイッチングテーブルをPLUGに供給する。コンポーネントが外部サービスを要求するとき、したがって、必要とされるコンポーネント数と所望されるサービスの数、つまりターゲット関数という情報の2つの項目または識別子が本発明に従ってコンポーネントの再生に基づいて追加された一方で、プロセッサはコンポーネントにリンクされたPLUGの入力アドレスにリダイレクトされる。情報のこれらの2つの項目とマネージャによって供給される情報に基づいて、PLUGはプロセッサを(CALL(呼び出し)タイプではなくJUMP(ジャンプ)の命令を介して、つまり新しい関数呼び出しも、要求されるサービスに接続される情報のコピーも使用しないで)所望されるサービスが位置する点にリダイレクトする。したがって、スイッチング関数は、パラメータとして実装されていないターゲット関数に、あるいは初期コンポーネント内のコールバック関数に対応する少なくとも前記2つの識別子を取る。これらの識別子は、スタック内あるいは対応する関数へのリダイレクトのためのPLUGスイッチング関数によって使用されるプロセッサのレジスタ内に記憶される。
このPLUGスイッチング関数はターゲット関数の識別子とターゲット関数のアドレスの間の対応ルートテーブルのテーブルを使用して実行される。これは、例えば2つのサブテーブルの形で作成され、第1はソフトウェアコンポーネントに関連する情報とターゲット関数を実装するコンポーネントを対応させ、第2は関連コンポーネントの中の関数の数とそのアドレスを対応させる。
主要なテーブル、ルートテーブルはランダムアクセスメモリに記録されるが、これらのサブテーブルは、コンポーネントが作成されると生成され、コンポーネントのコードとともに読取専用メモリに記憶される。
このように、コンポーネントAが2Dグラフィックコンポーネントの関数DrawLineを呼び出すことを希望すると仮定する。
コンポーネントが作成されると、コンポーネントの初期コードのDrawLine関数の呼び出しは、あたかもDrawLineが呼び出されたのかのように同じパラメータを用いてPLUGの呼び出しにより置換される。さらに、必要とされるコンポーネント(2Dグラフィックコンポーネント)と必要とされるサービス(DrawLineサービス)の情報が追加される。実行時、DrawLine関数に対する呼び出しは、事実上、最初に、コンポーネント数とサービスに基づいてDrawLine関数にプロセッサをリダイレクトするであろうPLUGへの切り替えにより置換される。
スイッチング関数PLUGは呼び出されるターゲット関数に依存して特定数のアクションも実行する。ターゲット関数あたりのアクションのリストは過去に定められ、組み込みシステムに保管される。アクションは、例えばプロセッサのあるコンテキストから別のコンテキストに変更すること、別のコンポーネントのインストールと実行、ターゲット関数の呼び出しの1つまたは複数のコンポーネントの通知、組み込みシステムのユーザへの通知、または別のコンピュータリソースへの通知である場合がある。
PLUG及びこれに基づいて、静的にまたは動的に、
−あるコンポーネントから別のコンポーネントへ通信ストリームをリダイレクトする、
−あるコンポーネントを(デバッグされた、または更新された、あるいは別のインプリメンテーションに対応する)別のコンポーネントで置換する、
−ある言語から別の言語にサービス要求を変換する(前記の例では、PLUGはDrawLine機能に対する要求を、別の言語に変換し、変換されたこの要求を適切なコンポーネントに送信できるであろう)。
組み込みシステム内、または組み込みシステム外で要求を別のプロセッサにリダイレクトする(例えば、DrawLine関数は専用のグラフィックプロセッサで実装できるであろう。この瞬間に、PLUGは輸送を介してグラフィックプロセッサに常駐する別のPLUGに接続され、2つのPLUGは要求とサービス応答をトランスペアレントに互いに渡すことができる)ことが可能となる。
動的管理の場合には、修正は例えば別のコンピュータソースの表示から、または構成形式の組み込みシステムのユーザから出現できることに留意する。
さらに、PLUGによって呼び出されるコンポーネントが使用できない場合、後者は、使用できないコンポーネントの識別子によって決定される特殊なアクションを生じさせる。これらのアクションは、警報メッセージの作成、または同じ機能を、同じフォーマットに、または初期ターゲット関数のうちの1つより別のフォーマットで達成するコンポーネントの検索である場合がある。
コンポーネント間の通信は任意のトランスポート層で行われることに留意する必要がある。トランスポート層は、したがって携帯電話の場合には無線チャネル(その時点では、他が携帯電話に位置するが、コンポーネントはオペレータレベルでネットワークに位置する場合がある)、または、
−個人領域ネットワークを管理する(例えば、画面はブルーツース型無線リンクを介して電話に接続される別の装置に位置する)、
−多様なコンポーネント間でアクセス権を制御する、
−システムの開発の理由から、PLUGを介して発生するすべての通信を説明することによって可視性を追加する、
−PC型エミュレータで関連サービスをエミュレートするために通信のいくつかをリダイレクトする、
−あるいは、コンポーネントとシステムの残りの間を通過する通信ストリーム全体がPLUGで非常に容易に操作できるという事実を使用して任意の別のアプリケーション
を可能にするブルーツース、WiFiのリンクである場合がある。
最後に、本発明のコンポーネントへの分解は、これが組み込みシステムをシミュレーションする場合には非組み込みシステムによって使用できることに留意する。
本発明は例によってのみ前述された。当然、当業者はそれでも特許の範囲から逸脱することなく本発明のさまざまな変形を生じさせる立場にある。
従来の技術及び関連の原理に従って多様なコードを管理する方法。 従来の技術及びメッセージシステムに従って多様なコードを管理する方法。 本発明に従ってコンポーネントを管理する方法。 本発明によるコンポーネントの構造の全体図。 本発明によるコンポーネントの主要な状態。 本発明によるエンジンのアーキテクチャ。 PROXYまたはPLUGに基づいてリダイレクトの原則。

Claims (79)

  1. 組み込みシステムを管理する方法であって、前記組み込みシステムは、
    コンピュータ装置と関連付けられた少なくとも1つのオリジナルコードと、
    前記組み込みシステムと関連付けられた少なくとも1つの組み込みコードと、
    前記組み込みシステムと関連付けられた少なくとも1台のプロセッサと、
    を備え、
    該方法が、
    前記オリジナルコードによって呼び出されるとともに、前記オリジナルコードの中で実装されていないターゲット関数を識別するために前記オリジナルコードを分析すること、
    実装されていない前記関数のそれぞれについて、対応する関数識別子を決定すること、
    実装されていない前記関数の呼び出しを、前記組み込みコードで実装される少なくとも1つのPLUGスイッチング関数の呼び出しで置換すること、
    前記組み込みシステムと関連付けられた前記プロセッサにおいて、各実装されていない関数の前記関数識別子を格納すること
    からなる少なくとも1つの内蔵ソフトウェアコンポーネントの作成と、
    前記組み込みシステム上での前記内蔵ソフトウェアコンポーネントの実行であって、前記PLUGスイッチング関数が前記関数識別子に対応する実装されていない前記ターゲット関数のアドレスへの前記プロセッサのリダイレクトを制御する、前記内蔵ソフトウェアコンポーネントの実行と、
    からなるステップを含むことを特徴とする方法。
  2. 請求項1に記載の組み込みシステムを管理する方法であって、さらに、
    前記内蔵ソフトウェアコンポーネントの作成時に、
    前記内蔵ソフトウェアコンポーネント内で定められるオリジナル関数のアドレスをパラメータとして有するターゲット関数呼び出しを識別するために前記オリジナルコードを分析するステップと、
    特殊な関数の呼び出しで、前記パラメータを置換するステップと、
    前記関連付けられた特殊な関数を自動的に生成するステップであって、関数は、前記オリジナル関数の識別子を供給し、前記組み込みコードによって実装される少なくとも1つのPLUGスイッチング関数を呼び出す、生成するステップと、
    を備える方法。
  3. 請求項1に記載の組み込みシステムを管理する方法であって、さらに、
    前記内蔵ソフトウェアコンポーネントの作成時に、
    オリジナルコードでは定められていない、前記内蔵ソフトウェアコンポーネントが実行できるために必要とする情報を識別するために前記オリジナルコードを分析するステップと、
    この欠けている情報のリストを、前記内蔵ソフトウェアコンポーネントが生成されるときに前記内蔵ソフトウェアコンポーネントに追加するステップと、
    前記内蔵ソフトウェアコンポーネントの実行時に、前記組み込みシステムで前記内蔵ソフトウェアコンポーネントを実行可能にするために、初期に欠けていた情報の1つまたは複数の項目がいったんシステムによって供給される、前記内蔵ソフトウェアコンポーネントのコードを修正するステップと、
    を備える方法。
  4. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが前記組み込みシステムに常駐することを特徴とする、方法。
  5. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが前記組み込みコードによってダウンロードされることを特徴とする、方法。
  6. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが、それが作成されるときに暗号化された形式であることを特徴とする、方法。
  7. 請求項6に記載の組み込みシステムを管理する方法であって、さらに、
    前記内蔵ソフトウェアコンポーネントを復号化するステップを備えることを特徴とする方法。
  8. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが同じ機能を履行する別の内蔵ソフトウェアコンポーネントで置換される、方法。
  9. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが、実行のために、それが当初位置していたメモリ領域とは異なる領域であるいわゆる実行メモリ領域を含む組み込みシステムのメモリ領域に入れられることを特徴とする、方法。
  10. 請求項9に記載の組み込みシステムを管理する方法において、
    前記実行メモリ領域が前記プロセッサによりアクセス可能であり、前記実行メモリ領域が、実行速度、消費またはアクセス可能性に関する特定の特性、あるいはアクセス権に関する特定の特性を所有することを特徴とする、方法。
  11. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が関連パラメータを用いて処理される多様な呼び出しを表示する関数を実装することを特徴とする、方法。
  12. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が関連パラメータを用いて処理される多様な呼び出しを記録する関数を実装することを特徴とする、方法。
  13. 請求項12に記載の組み込みシステムを管理する方法において、
    前記呼び出しの前記記録が前記呼び出しのそれぞれに少なくとも1つの追加の情報の項目を備えることを特徴とする、方法。
  14. 請求項13に記載の組み込みシステムを管理する方法において、
    前記追加の情報が時間情報であることを特徴とする、方法。
  15. 請求項13に記載の組み込みシステムを管理する方法において、
    前記追加の情報が実行コンテキスト情報であることを特徴とする、方法。
  16. 請求項13に記載の組み込みシステムを管理する方法において、
    前記追加の情報がメモリ使用情報であることを特徴とする、方法。
  17. 請求項12に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントに関する呼び出しの前記記録が、内蔵式で前記内蔵ソフトウェアコンポーネントをシミュレーションするために使用されることを特徴とする、方法。
  18. 請求項12に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントに関する呼び出しの前記記録が組み込みコードの中のエラーの検出に使用されることを特徴とする、方法。
  19. 請求項18に記載の組み込みシステムを管理する方法において、
    前記エラー検出記録が、いったんエラーが検出されるとエラーを分析することに関与する別のコンピュータリソースに送信されることを特徴とする、方法。
  20. 請求項1に記載の組み込みシステムを管理する方法において、
    実装されていないターゲット関数の識別子がPLUGスイッチング関数のパラメータを構成することを特徴とする、方法。
  21. 請求項1に記載の組み込みシステムを管理する方法であって、
    実装されていないターゲット関数パラメータをコピーする動作を備えないことを特徴とする方法。
  22. 請求項1に記載の組み込みシステムを管理する方法において、
    実装されていない関数の識別子が、PLUSスイッチング関数の呼び出しの前にプロセッサのスタックに記憶され、記憶された識別子が次に前記識別子に対応する関数への前記リダイレクトの前記制御を実装するために前記スイッチング関数によって使用されることを特徴とする、方法。
  23. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数の呼び出しの前に、前記実装されていない関数の前記識別子が前記プロセッサのレジスタに記憶され、記憶された識別子が次に、前記識別子に対応する前記関数へのリダイレクトの前記制御を実装するために、前記スイッチング関数により使用されることを特徴とする、方法。
  24. 請求項1に記載の組み込みシステムを管理する方法において、
    前記ターゲット関数が前記組み込み装置の別のプロセッサで実装されることを特徴とする、方法。
  25. 請求項1に記載の組み込みシステムを管理する方法において、
    前記ターゲット関数が前記組み込みシステム以外の別のコンピュータリソースで実装されることを特徴とする方法。
  26. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が、呼び出された前記ターゲット関数と関連付けられた特殊なアクションの集合を実行し、ターゲット関数によるすべてのアクションが以前に前記組み込みシステムで定められ、記憶されていることを特徴とする、方法。
  27. 請求項26に記載の組み込みシステムを管理する方法において、
    特殊なアクションの前記集合がプロセッサの1つのコンテキストから別のコンテキストまでの通過を備えることを特徴とする、方法。
  28. 請求項26に記載の組み込みシステムを管理する方法において、
    特殊なアクションの前記集合が別の内蔵ソフトウェアコンポーネントのインストール及び実行を含むことを特徴とする、方法。
  29. 請求項26に記載の組み込みシステムを管理する方法において、
    特殊なアクションの前記集合が、前記ターゲット関数の前記呼び出しの1つまたは複数の内蔵ソフトウェアコンポーネントの通知を含むことを特徴とする、方法。
  30. 請求項26に記載の組み込みシステムを管理する方法において、
    特殊なアクションの前記集合が、前記組み込みシステムのユーザの通知を含むことを特徴とする、方法。
  31. 請求項26に記載の組み込みシステムを管理する方法において、
    特殊なアクションの前記集合が、別のコンピュータリソースの通知を含むことを特徴とする、方法。
  32. 請求項26に記載の組み込みシステムを管理する方法において、
    特殊なアクションの前記集合が、動的に修正可能であることを特徴とする、方法。
  33. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が、また、前記ターゲット関数が使用できない関数識別子に対応する場合に、特殊なアクションを生成するステップを実行することを特徴とする、方法。
  34. 請求項33に記載の組み込みシステムを管理する方法において、
    前記特殊なアクションが、前記使用できない関数の前記識別子の属性により決定されることを特徴とする、方法。
  35. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が、また、前記ターゲット関数を呼び出すために前記内蔵ソフトウェアコンポーネントの権利を検証するステップを実行することを特徴とする、方法。
  36. 請求項35に記載の組み込みシステムを管理する方法において、
    前記検証が、どの内蔵ソフトウェアコンポーネントがどの関数を呼び出すことができるのかを示すアクセス権テーブルから実行されることを特徴とする、方法。
  37. 請求項36に記載の組み込みシステムを管理する方法において、
    前記アクセス権テーブルが最終ユーザによって修正可能であることを特徴とする、方法。
  38. 請求項36に記載の組み込みシステムを管理する方法において、
    前記アクセス権テーブルが別のコンピュータリソースによって遠隔に修正可能であることを特徴とする、方法。
  39. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が、また、オリジナル関数識別子に対応する前記ターゲット関数が使用できない場合には、同等な関数を検索し、前記ターゲット関数のフォーマットと異なるフォーマットであるが同じ機能を実行し、前記同等な関数を実行するアクションを制御することを特徴とする、方法。
  40. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が、また、識別子の関数に対応する前記関数が使用できない場合には、前記使用できない関数に対応するコンピュータリソースの位置を決め、前記検索から生じる前記関数を実行するアクションを制御することを特徴とする、方法。
  41. 請求項1に記載の組み込みシステムを管理する方法において、
    前記ターゲット関数識別子が、前記ターゲット関数を実装する前記内蔵ソフトウェアコンポーネントに対応する第1の情報の項目と、前記内蔵ソフトウェアコンポーネントの中の前記ターゲット関数の数に対応する第2の情報の項目とを備えることを特徴とする、方法。
  42. 請求項1に記載の組み込みシステムを管理する方法において、
    前記PLUGスイッチング関数が、前記ターゲット関数識別子と前記ターゲット関数のアドレスとの間の対応の少なくとも1つのテーブルを使用して実行されることを特徴とする、方法。
  43. 請求項41および42に記載の組み込みシステムを管理する方法において、
    前記対応のテーブルが、前記内蔵ソフトウェアコンポーネントに対応する前記情報と、前記ターゲット関数を実装する前記内蔵ソフトウェアコンポーネントとの間の第1の対応のテーブル、及び前記内蔵ソフトウェアコンポーネントのそれぞれについて、前記関数の前記数と、前記対応する内蔵ソフトウェアコンポーネントでの前記ターゲット関数の前記アドレスとの間の第2の対応のテーブルに再分割されることを特徴とする、方法。
  44. 請求項43に記載の組み込みシステムを管理する方法において、
    前記第2のテーブルが、内蔵ソフトウェアコンポーネント作成時に生成されることを特徴とする、方法。
  45. 請求項43に記載の組み込みシステムを管理する方法において、
    前記第2のテーブルが読取専用メモリに記録されることを特徴とする、方法。
  46. 請求項43に記載の組み込みシステムを管理する方法において、
    前記第1のテーブルがランダムアクセスメモリに記録されることを特徴とする、方法。
  47. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントのインストールが事前の許可に依存することを特徴とする、方法。
  48. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントの実行が事前の許可に依存することを特徴とする、方法。
  49. 請求項48または47に記載の組み込みシステムを管理する方法において、
    前記事前の許可が、前記組み込みシステムによって保持されるキー(システムキー)と、実行される内蔵ソフトウェアコンポーネントにより保持されるキー(コンポーネントキー)との間の一致に依存し、前記システムキーが前記組み込みシステムを一意に指定する情報から計算可能であることを特徴とする、方法。
  50. 請求項48または47に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが前記組み込みシステムによって実行されなければならないときに、別のコンピュータリソースに通知が供給されること、及びこの別のコンピュータリソースが、この通知に続いて、前記内蔵ソフトウェアコンポーネントを実行する許可または拒絶を前記組み込みシステムに送信することを特徴とする、方法。
  51. 請求項50に記載の組み込みシステムを管理する方法において、
    前記別のコンピュータリソースが、前記通知に続いて、前記内蔵ソフトウェアコンポーネントを実行する許可または拒絶を前記組み込みシステムに送信することを特徴とする、方法。
  52. 請求項48または47に記載の組み込みシステムを管理する方法において、
    前記別のコンピュータリソースにより送信される前記許可が、組み込みシステム上の前記内蔵ソフトウェアコンポーネントの実行を許可するために、前記コンポーネントキーと前記システムキーとに結合されるキー(外部キー)を含むことを特徴とする、方法。
  53. 請求項48または47に記載の組み込みシステムを管理する方法において、
    前記別のコンピュータリソースにより送信される前記許可が、前記別のコンピュータリソースでの金銭上の取引きの正確な実行に関連付けられていることを特徴とする、方法。
  54. 請求項52に記載の組み込みシステムを管理する方法において、
    前記外部キーが、金銭上の取引きに続き、その商業的な配備の前に組み込みシステム内に保存されることを特徴とする、方法。
  55. 請求項52に記載の組み込みシステムを管理する方法において、
    前記外部キーが、金銭上の取引きに続いて、組み込みシステムに保存されることを特徴とする、方法。
  56. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントがサービス品質情報のうちの少なくとも1つの項目を含むことを特徴とする、方法。
  57. 請求項56に記載の組み込みシステムを管理する方法において、
    前記サービス品質情報が、前記内蔵ソフトウェアコンポーネントの実行前にリソースを割り当てるために前記組み込みシステムによって使用されることを特徴とする、方法。
  58. 請求項56に記載の組み込みシステムを管理する方法において、
    前記サービス品質情報が、前記内蔵ソフトウェアコンポーネントがそれが機能するためのランダムアクセスメモリ要件であることを特徴とする、方法。
  59. 請求項58に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントの前記ランダムアクセスメモリ要件が、それが機能するための最小要件情報、平均要件情報、及び最適要件情報を含むことを特徴とする、方法。
  60. 請求項56に記載の組み込みシステムを管理する方法において、
    前記サービス品質情報が、前記内蔵ソフトウェアコンポーネントがそれが機能するために必要とする別の内蔵ソフトウェアコンポーネント(関連コンポーネント)のリストであることを特徴とする、方法。
  61. 請求項60に記載の組み込みシステムを管理する方法において、
    関連コンポーネントの前記リストが前記関連コンポーネントによって必要とされるバージョン番号情報を含むことを特徴とする、方法。
  62. 請求項61に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムが、前記関連コンポーネントが前記内蔵ソフトウェアコンポーネントによって示される前記バージョン番号に応答しない場合に、前記内蔵ソフトウェアコンポーネントの前記実行に着手しないことを特徴とする、方法。
  63. 請求項61に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムが、前記関連コンポーネントが前記内蔵ソフトウェアコンポーネントにより示されるバージョン番号より大きいバージョン番号に応答しない場合に、前記内蔵ソフトウェアコンポーネントの前記実行に着手しないことを特徴とする、方法。
  64. 請求項56に記載の組み込みシステムを管理する方法において、
    前記サービス品質情報が、前記内蔵ソフトウェアコンポーネントの処理能力要件であることを特徴とする、方法。
  65. 請求項64に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムが、前記処理能力要件に応じて前記組み込みシステムのプロセッサの周波数を修正することを特徴とする、方法。
  66. 請求項64に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムが、前記使用可能なリソースと前記多様なコンピュータリソースの処理可用性に従って前記内蔵ソフトウェアコンポーネントを前記組み込みシステムのどのコンピュータリソースで実行するのかを決定することを特徴とする、方法。
  67. 請求項1に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムの電力消費を最小限に抑えるために、前記組み込みシステムが前記内蔵ソフトウェアコンポーネントをそのコンピュータリソースの一方または他方で実行させることを決定することを特徴とする、方法。
  68. 請求項56に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムがサービス品質情報のうちの少なくとも1つの項目で前記内蔵ソフトウェアコンポーネントにより表される要件を保証できない場合に、前記組み込みシステムが前記内蔵ソフトウェアコンポーネントの実行を拒絶することを特徴とする、方法。
  69. 請求項1に記載の組み込みシステムを管理する方法において、
    前記内蔵ソフトウェアコンポーネントが、前記内蔵ソフトウェアコンポーネントにより実行される機能を指定するための少なくとも1つの情報の項目を含むことを特徴とする、方法。
  70. 請求項69に記載の組み込みシステムを管理する方法において、
    前記情報が前記内蔵ソフトウェアコンポーネントの名前であることを特徴とする、方法。
  71. 請求項69に記載の組み込みシステムを管理する方法において、
    前記情報が前記内蔵ソフトウェアコンポーネントのバージョン番号であることを特徴とする、方法。
  72. 請求項69に記載の組み込みシステムを管理する方法において、
    前記情報が、前記内蔵ソフトウェアコンポーネントにより実装される関数のリストであることを特徴とする、方法。
  73. 請求項69に記載の組み込みシステムを管理する方法において、
    前記組み込みシステムが、以前に要求を行った別のコンピュータリソースに、前記組み込みシステム上で利用可能な内蔵ソフトウェアコンポーネントのリスト、及び関連コンポーネント情報を供給できることを特徴とする、方法。
  74. 前記組み込みシステムにより実行される完全なコードが請求項1に記載の方法に従って得られる内蔵ソフトウェアコンポーネントに分割されることを特徴とする組み込みシステムを管理する方法。
  75. 請求項74に記載の組み込みシステムを管理する方法において、
    初期システムの内蔵ソフトウェアコンポーネントへの分割が、前記内蔵ソフトウェアコンポーネントにより実装されていないターゲット関数の数を最小限に抑えるために行われることを特徴とする、方法。
  76. 請求項75に記載の組み込みシステムを管理する方法において、
    初期システムの内蔵ソフトウェアコンポーネントへの分割が、その後に修正される確率で前記内蔵ソフトウェアコンポーネントのサイズを相関付けることにより行われることを特徴とする、方法。
  77. 組み込みシステムであって、
    コンピュータ装置と関連付けられた少なくとも1つのオリジナルコードと、
    前記組み込みシステムと関連付けられた少なくとも1つの組み込みコードと、
    前記組み込みシステムと関連付けられた少なくとも1台のプロセッサと、
    少なくとも1つのエンジンと
    を備え、前記エンジンが請求項1に記載の方法のステップを実行することを特徴とするシステム。
  78. 組み込みシステムをシミュレーションする非組み込みシステムであって、前記組み込みシステムは、
    コンピュータ装置と関連付けられた少なくとも1つのオリジナルコードと、
    前記非組み込みシステムと関連付けられた少なくとも1つの組み込みコードと、
    前記非組み込みシステムと関連付けられた少なくとも1台のプロセッサと、
    少なくとも1つのエンジンと
    を備え、前記エンジンが請求項1に記載の方法のステップを実行することを特徴とする、システム。
  79. 組み込みエンジンであって、
    コンピュータ装置と関連付けられた少なくとも1つのオリジナルコードと、
    前記エンジンと関連付けられた少なくとも1つの組み込みコードと、
    前記エンジンと関連付けられた少なくとも1台のプロセッサと
    を備え、請求項1に記載の方法のステップを実行することを特徴とする組み込みエンジン。
JP2006518306A 2003-07-10 2004-07-09 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法 Expired - Fee Related JP4724660B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
FR03/08489 2003-07-10
FR0308489A FR2857476B1 (fr) 2003-07-10 2003-07-10 Systeme permettant d'optimiser la gestion des composants logiciels integres dans un systeme embarque, notamment dans un telephone mobile
FR04/03174 2004-03-26
FR0403174A FR2857471B1 (fr) 2003-07-10 2004-03-26 Procede de gestion des composants logiciels integres dans un systeme embarque
PCT/FR2004/001820 WO2005008509A2 (fr) 2003-07-10 2004-07-09 Procede de gestion des composants logiciels integres dans un systeme embarque

Publications (3)

Publication Number Publication Date
JP2007527562A JP2007527562A (ja) 2007-09-27
JP2007527562A5 true JP2007527562A5 (ja) 2010-09-16
JP4724660B2 JP4724660B2 (ja) 2011-07-13

Family

ID=33542632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006518306A Expired - Fee Related JP4724660B2 (ja) 2003-07-10 2004-07-09 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法

Country Status (6)

Country Link
US (1) US7757296B2 (ja)
EP (1) EP1649363B1 (ja)
JP (1) JP4724660B2 (ja)
FR (1) FR2857471B1 (ja)
RU (1) RU2359316C2 (ja)
WO (1) WO2005008509A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853925B2 (en) * 2006-12-13 2010-12-14 Sap Ag System and method for managing hierarchical software development
FR2919084A1 (fr) * 2007-07-17 2009-01-23 Open Plug Sa Procede de gestion de ressources partagees d'un systeme informatique et module superviseur de mise en oeuvre,ainsi que le systeme informatique muni d'un tel module
US8487225B2 (en) 2007-10-15 2013-07-16 E I Du Pont De Nemours And Company Microwave field director structure having metal vanes
KR101628774B1 (ko) * 2009-05-04 2016-06-10 삼성전자주식회사 함수를 이용한 시뮬레이션 수행 방법
US8676714B2 (en) * 2009-06-11 2014-03-18 Microsoft Corporation Hardware specific product license validation
US8561035B2 (en) * 2009-09-03 2013-10-15 International Business Machines Corporation Method and system to discover possible program variable values by connecting program value extraction with external data sources
US8910133B2 (en) * 2010-06-07 2014-12-09 Microsoft Corporation Library conformity checker
RU2628176C2 (ru) * 2012-12-14 2017-08-15 Телефонактиеболагет Л М Эрикссон (Пабл) Системы, способы и компьютерные программные продукты для процесса сборки и загрузки программного обеспечения с использованием службы компиляции и развертывания
WO2014159883A1 (en) * 2013-03-14 2014-10-02 Apperian, Inc. Modification of compiled applications and application management using retrievable policies
RU2653984C2 (ru) * 2013-12-05 2018-05-15 Закрытое акционерное общество "Лаборатория Касперского" Способ и система ассоциирования агентов управления устройством с пользователем устройства
US10698671B2 (en) 2015-03-30 2020-06-30 Arxan Technologies, Inc. Processing, modification, distribution of custom software installation packages
US11424931B2 (en) 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10599409B2 (en) 2016-02-02 2020-03-24 Blackberry Limited Application lifecycle operation queueing
CN105760195A (zh) * 2016-02-17 2016-07-13 吴伟民 车辆电子设备的功能加载方法及系统
RU2724639C2 (ru) * 2016-06-24 2020-06-25 Акционерное общество "Лаборатория Касперского" Способ связывания незарегистрированного агента управления устройством с пользователем
EP4066446B1 (en) * 2019-11-25 2024-08-21 Telefonaktiebolaget LM Ericsson (publ) Technique for replacing vnfms in a vnf based environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870588A (en) * 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
FR2754953B1 (fr) * 1996-10-21 1999-02-26 Moving Magnet Tech Moteur polyphase, notamment pour l'entrainement d'une aiguille d'un afficheur
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US6259958B1 (en) * 1997-12-19 2001-07-10 Honeywell International Inc. Call mechanism for static and dynamic linked functions within an object-oriented controller using heterogeneous development tool sets
SE9800696D0 (sv) * 1998-03-05 1998-03-05 Nokia Satellite Systems Ab Sätt vid datorsystem
US6188975B1 (en) * 1998-03-31 2001-02-13 Synopsys, Inc. Programmatic use of software debugging to redirect hardware related operations to a hardware simulator

Similar Documents

Publication Publication Date Title
US7757296B2 (en) Method of managing software components that are integrated into an embedded system
US20150332043A1 (en) Application analysis system for electronic devices
US9208328B2 (en) Security system and method for operating systems
US7779409B2 (en) Device-to-device software distribution
JP3966487B2 (ja) オブジェクトのリダイレクト管理方法及びアプレットの通信を可能とする方法
CN102460382B (zh) 标注虚拟应用进程
JP2007527562A5 (ja)
US8307058B2 (en) Apparatus, method, and computer program product for processing information
US20080222160A1 (en) Method and system for providing a program for execution without requiring installation
KR100917370B1 (ko) 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법
CN102034058B (zh) 应用软件安全控制方法及终端
KR20110015495A (ko) 동적 가상 머신 생성
KR20110038053A (ko) 커스터마이즈된 컴퓨터 응용 프로그램 패키지
KR100871778B1 (ko) 중앙집중형 동적 어드레싱 매니저를 이용한 동적 어드레싱방법 및 장치
EA006814B1 (ru) Система и способ использования множества приложений
CN106066803B (zh) 应用程序运行控制的方法及装置
CN107368339B (zh) 容器入口程序运行方法、系统、设备及存储介质
CN105765533A (zh) 用于固件虚拟化的方法和装置
US20050216537A1 (en) Dynamic addressing (DA) using a centralized DA manager
KR102337962B1 (ko) 마이크로서비스 아키텍처 애플리케이션 실행 시스템과 방법 및 이를 위한 컴퓨터 프로그램
CN114816445A (zh) 系统平台架构、函数发布方法及装置、平台及存储介质
US20060143715A1 (en) Method and apparatus for providing security policy enforcement
JP2017142791A (ja) コード保護方法およびコンピュータプログラム
JP4063573B2 (ja) デバイスドライバの組み込み・実行方式、組み込み・実行方法、及びプログラム
WO2005074621A2 (en) Dynamic addressing (da) using a centralized da manager