(57)【要約】本発明は自動車で使用するためのサービスコントローラを記述し、このサービスコントローラはレイヤ化されたソフトウェアシステムにハードウェア及びソフトウェアを個別に一義的に割り当てることを可能にする。
2005537529.tif 000002
【特許請求の範囲】
【請求項１】
とりわけ自動車のコンピュータシステムの個々のプロセス乃至は機能を管理及び/又は実施するための方法であって、コンピュータシステムはレイヤ構造で実現される、とりわけ自動車のコンピュータシステムの個々のプロセス乃至は機能を管理及び/又は実施するための方法において、
少なくとも３つの互いに独立したレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）が実装され、第１のレイヤ（ＨＭＩレイヤ）ではヒューマンマシンインターフェースが実現され、第２のレイヤ（サービスレイヤ）ではコントローラ（サービスコントローラ）が実現され、データを前記レイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の間で又は内部で交換し及び/又は引き渡し及び/又は機能を前記レイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の他のレイヤのうちの１つのレイヤにおいて又は自分のレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）において初期化するプロセス乃至は機能が前記コントローラによって制御され、第３のレイヤ（プロトコルレイヤ）ではコンピュータシステムのコンポーネントへのインターフェースが及びコンピュータシステムのコンポーネント間のインターフェースが制御されることを特徴とする、とりわけ自動車のコンピュータシステムの個々のプロセス乃至は機能を管理及び/又は実施するための方法。
【請求項２】
第１のレイヤ（ＨＭＩレイヤ）によって第１のサブレイヤ（スキンサブレイヤ）及び第２のサブレイヤ（ロジックサブレイヤ）が制御されることを特徴とする、請求項１記載の方法。
【請求項３】
第１のサブレイヤ（スキンサブレイヤ）によって様々な第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）が処理され、第２のサブレイヤ（ロジックサブレイヤ）によって様々な第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）が初期化及び/又は制御されることを特徴とする、請求項２記載の方法。
【請求項４】
第１のレイヤ（ＨＭＩレイヤ）の第１のサブレイヤ（スキンサブレイヤ）とコントローラ（サービスコントローラ）との間にはプロセスを制御するための主ロジックコントローラ（メインロジック）が配置されていることを特徴とする、請求項１〜３のうちの少なくとも１項記載の方法。
【請求項５】
第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって、第１のレイヤ（ＨＭＩレイヤ）の入力及び出力が、第１のサブレイヤの第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）及び第２のサブレイヤ（ロジックレイヤ）の第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）に第２のレイヤ（サービスレイヤ）におけるサービスレイヤ個別サービス（サービス１、サービス２、サービス３）において割り当てられることを特徴とする、請求項１〜４のうちの少なくとも１項記載の方法。
【請求項６】
第２のレイヤ（サービスレイヤ）の複数のサービス（サービス１、サービス２、サービス３）は、第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）を介して接続されており、さらに第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）はインターフェース（インターフェース１、インターフェース２）を介して置き換えられることを特徴とする、請求項１〜５のうちの少なくとも１項記載の方法。
【請求項７】
第２のレイヤ（サービスレイヤ）にはさらに別のサービス（ユーザインプットサービス）が実装されており、該さらに別のサービス（ユーザインプットサービス）には第３のレイヤ（プロトコルレイヤ）においてさらに別のインターフェース（インターフェース３、インプット）が割り当てられていることを特徴とする、請求項１〜６のうちの少なくとも１項記載の方法。
【請求項８】
コントローラ（サービスコントローラ）によって第２のレイヤ（サービスレイヤ）ではプロセス及びスレッドが活性化され制御されることを特徴とする、請求項１〜７のうちの少なくとも１項記載の方法。
【請求項９】
第１のレイヤ（ＨＭＩレイヤ）のヒューマンマシンインターフェースからのメッセージ（ダウンスレッド）は第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって第１のリスト（プライオリティキュー）にエントリされ、第３のレイヤ（プロトコルレイヤ）からのサービスメッセージ（アップスレッド）は同様に前記第１のリスト（プライオリティキュー）にエントリされ、前記第１のリスト（プライオリティキュー）から個々のそこに格納されたメッセージ（ダウンスレッド、アップスレッド）がエントリの時点の後で後続処理され、後続処理の種類を選択するための手段（ディスパッチャ）が存在し、該手段に反応して実施すべきプロセス（メインスレッド）が第２のリスト（ジョブリスト）にエントリされ、前記手段（ディスパッチャ）によってメッセージは第１の及び第３のレイヤ（ＨＭＩレイヤ、プロトコルレイヤ）に送信され、前記メッセージはメッセージ及び依存プロセス（メインスレッド）のステータスに関してステータス情報を含むことを特徴とする、請求項１〜８のうちの少なくとも１項記載の方法。
【請求項１０】
メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）の中にプッシュされ、メッセージ（ダウンスレッド、アップスレッド）は前記第１のリスト（プライオリティキュー）から手段（ディスパッチャ）によってポップされることを特徴とする、請求項１〜９のうちの少なくとも１項記載の方法。
【請求項１１】
とりわけ自動車におけるコンピュータシステムであって、該コンピュータシステムはレイヤ構造を有する、とりわけ自動車におけるコンピュータシステムにおいて、
少なくとも３つの互いに独立したレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）が設けられており、第１のレイヤ（ＨＭＩレイヤ）ではヒューマンマシンインターフェースが実現され、第２のレイヤ（サービスレイヤ）ではコントローラ（サービスコントローラ）が実現され、データを前記レイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の間で又は内部で交換し及び/又は引き渡し及び/又は機能を前記レイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の他のレイヤのうちの１つのレイヤにおいて又は自分のレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）において初期化するプロセス乃至は機能が前記コントローラによって制御され、第３のレイヤ（プロトコルレイヤ）ではコンピュータシステムのコンポーネントへのインターフェースが及びコンピュータシステムのコンポーネント間のインターフェースが実現されていることを特徴とする、とりわけ自動車におけるコンピュータシステム。
【請求項１２】
第１のレイヤ（ＨＭＩレイヤ）によって第１のサブレイヤ（スキンサブレイヤ）及び第２のサブレイヤ（ロジックサブレイヤ）は制御可能である及び/又は制御されることを特徴とする、請求項１１記載のコンピュータシステム。
【請求項１３】
第１のサブレイヤ（スキンサブレイヤ）によって様々な第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）が処理可能であり及び/又は処理され、第２のサブレイヤ（ロジックサブレイヤ）によって様々な第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）が初期化可能及び/又は制御可能である及び/又は初期化及び/又は制御されることを特徴とする、請求項１２記載のコンピュータシステム。
【請求項１４】
第１のレイヤ（ＨＭＩレイヤ）の第１のサブレイヤ（スキンサブレイヤ）とコントローラ（サービスコントローラ）との間にはプロセスを制御するための主ロジックコントローラ（メインロジック）が配置されていることを特徴とする、請求項１２又は１３記載のコンピュータシステム。
【請求項１５】
第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって、第１のレイヤ（ＨＭＩレイヤ）の入力及び出力が、第１のサブレイヤの第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）及び第２のサブレイヤ（ロジックレイヤ）の第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）に第２のレイヤ（サービスレイヤ）におけるサービスレイヤ個別サービス（サービス１、サービス２、サービス３）において割り当て可能である及び/又は割り当てられることを特徴とする、請求項１２〜１４のうちの少なくとも１項記載のコンピュータシステム。
【請求項１６】
第２のレイヤ（サービスレイヤ）の複数のサービス（サービス１、サービス２、サービス３）は、第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）を介して接続されており及び/又は接続可能であり、さらに第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）はインターフェース（インターフェース１、インターフェース２）を介して置き換え可能である及び/又は置き換えられることを特徴とする、請求項１１〜１５のうちの少なくとも１項記載のコンピュータシステム。
【請求項１７】
第２のレイヤ（サービスレイヤ）にはさらに別のサービス（ユーザインプットサービス）が実装されており、該さらに別のサービス（ユーザインプットサービス）には第３のレイヤ（プロトコルレイヤ）においてさらに別のインターフェース（インターフェース３、インプット）が割り当て可能である及び/又は割り当てられていることを特徴とする、請求項１１〜１６のうちの少なくとも１項記載のコンピュータシステム。
【請求項１８】
コントローラ（サービスコントローラ）によってプロセス及びスレッドが活性化可能及び制御可能である及び/又は活性化され制御されるように、第２のレイヤ（サービスレイヤ）の前記コントローラ（サービスコントローラ）は構成されていることを特徴とする、請求項１１〜１７のうちの少なくとも１項記載のコンピュータシステム。
【請求項１９】
第１のレイヤ（ＨＭＩレイヤ）のヒューマンマシンインターフェースからのメッセージ（ダウンスレッド）は第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって第１のリスト（プライオリティキュー）にエントリ可能であり及び/又はエントリされ、第３のレイヤ（プロトコルレイヤ）からのサービスメッセージ（アップスレッド）は同様に前記第１のリスト（プライオリティキュー）にエントリ可能であり及び/又はエントリされ、前記第１のリスト（プライオリティキュー）から個々のそこに格納されたメッセージ（ダウンスレッド、アップスレッド）がエントリの時点の後で後続処理可能であり及び/又は後続処理され、後続処理の種類を選択するための手段（ディスパッチャ）が存在し、該手段に反応して実施すべきプロセス（メインスレッド）が第２のリスト（ジョブリスト）にエントリ可能であり及び/又はエントリされ、前記手段（ディスパッチャ）によってメッセージは第１の及び第３のレイヤ（ＨＭＩレイヤ、プロトコルレイヤ）に送信され、前記メッセージはメッセージ及び依存プロセス（メインスレッド）のステータスに関してステータス情報を含むことを特徴とする、請求項１１〜１８のうちの少なくとも１項記載のコンピュータシステム。
【請求項２０】
メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）の中にプッシュ可能であり及び/又はプッシュされ、メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）から手段（ディスパッチャ）によってポップ可能である及び/又はポップされることを特徴とする、請求項１９記載のコンピュータシステム。
【請求項２１】
コンピュータプログラム製品において、該コンピュータプログラム製品は直接コンピュータシステムの１つ又は複数の内部メモリ装置にロード可能であり、さらにプログラム部分を含み、前記プログラム製品がコンピュータシステムにおいて実行される場合には前記プログラム部分によって請求項１〜１０のうちの１項記載の方法ステップが実施される及び/又は実施可能である、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は請求項１の上位概念記載の車両専用コンピュータシステムのためのサービスコントローラの動作のための方法及び請求項１１の上位概念記載のコンピュータシステムに関する。
【０００２】
マルチタスキングシステム及びマルチタスキングリアルタイムシステムは広く公知である。例えば以前からプログラミングシステムＵｎｉｘが存在し、このＵｎｉｘによってマルチタスキングシステムは実現されうる。さらに、例えばＱＮＸのような様々なリアルタイムオペレーティングシステムが存在する。これはプログラムを「リアルタイム」命令で実行することを可能にする。
【０００３】
さらに、ソフトウェアにより機器の制御を行うことが公知である。このためには機器の入力装置を介して機能を選択し、これを命令に変換し、この命令が機器によって実行される。しかし、自動車において様々な操作すべきコンポーネントが存在する場合、通常は個々の命令はユーザによってコンポーネント自体において初期化されるのではなく、複数のコンポーネントに共通のマルチファンクション操作装置において初期化される。このマルチファンクション操作措置はこの場合個々の接続されたコンポーネントに実行すべき命令を伝え、該当するコンポーネントは次いでこの命令乃至はこれらの命令を実行する。このようなマルチファンクション操作装置は例えばＷＯ００/２１７９５から公知である。
【０００４】
解決方法はそれ自体は公知な層モデルである。命令が比較的高い層に生じる場合、例えば接続されたラジオシステムを有するマルチメディアシステムに交通無線デコーダが存在し、この交通無線デコーダが入ってくる交通メッセージを受信する場合、これはすぐにこのシステムに伝達される。このシステムは実行中のプロセスから計算時間を取り出し、相応の交通メッセージを接続する。
【０００５】
ＤＥ−Ａ１−１００４３０８６からは、少なくとも１つの車両専用コンポーネント及び少なくとも１つのマルチメディアコンポーネントを有するとりわけ自動車のためのコックピットシステムアーキテクチャが公知である。個々のコンポーネントは様々な機能を自由に使用することができ、例えば操作機能、接近指示機能、信号処理機能及びソフトウェア及びハードウェアベースで実現される制御機能を自由に使用することができる。各コンポーネントの個々の機能はパーティション化され、すなわち分離され、機能毎にコンポーネントには依存せずにモジュール式にまとめられている。
【０００６】
ＤＥ−Ｃ１−１９９２９３３０からは、データバス及びこのデータバスに接続されたコンポーネントを有する車両通信システムが開示されている。コンポーネントの中には少なくとも１つの表示/操作装置及びこれを制御する計算装置がある。表示/操作装置及び/又はこれを制御する計算装置には、ＨＴＭＬ/ＸＭＬページフォーマットに基づく操作インターフェース面が実装されている。
【０００７】
上記のシステムはリアルタイムオペレーティングシステムとサービスと操作インターフェース、以下ではヒューマンマシンインターフェース又は短縮してＨＭＩと呼ぶ、との間に境界線を持たない。
【０００８】
図１には今日の自動車用インフォテイメントシステムのための実施形態が示されている。このシステムはヒューマンマシンインターフェースを有し、コンパクトディスクプレイヤ、ナビゲーション、ラジオのようなさらに別の装置が統合乃至は接続されている。これらの個々の装置は１つの機器にまとめられており、共通の表示及び操作装置を有する。
【０００９】
例として図２にはさらに別の今日の公知のインフォテイメントシステムが概略的に図示されており、このシステムは既述のＤＥ−Ｃ１−１９９２９３３０から公知のシステムに匹敵する。このシステムはヒューマンマシンインターフェースを有する制御装置を有し、このヒューマンマシンインターフェースはバスプロトコル乃至はＡＰＩプロトコルを介してＣＤ-ナビゲーション、電話、ラジオ等々のような外部機器に接続されている。
【００１０】
本発明の課題は、公知のマルチファンクション操作装置の硬直したシステムアーキテクチャを緩めること及びさらに既存のシステムにさらに別の機器/アプリケーションを接続すること及び/又はコンポーネントを交換することを可能にすることである。
【００１１】
上記課題は、方法においては、少なくとも３つの互いに独立したレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）が実装され、第１のレイヤ（ＨＭＩレイヤ）ではヒューマンマシンインターフェースが実現され、第２のレイヤ（サービスレイヤ）ではコントローラ（サービスコントローラ）が実現され、データをレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の間で又は内部で交換し及び/又は引き渡し及び/又は機能をレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の他のレイヤのうちの１つのレイヤにおいて又は自分のレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）において初期化するプロセス乃至は機能がコントローラによって制御され、第３のレイヤ（プロトコルレイヤ）ではコンピュータシステムのコンポーネントへのインターフェースが及びコンピュータシステムのコンポーネント間のインターフェースが制御されることによって解決され、
コンピュータシステムにおいては、少なくとも３つの互いに独立したレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）が設けられており、第１のレイヤ（ＨＭＩレイヤ）ではヒューマンマシンインターフェースが実現され、第２のレイヤ（サービスレイヤ）ではコントローラ（サービスコントローラ）が実現され、データをレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の間で又は内部で交換し及び/又は引き渡し及び/又は機能をレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の他のレイヤのうちの１つのレイヤにおいて又は自分のレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）において初期化するプロセス乃至は機能がコントローラによって制御され、第３のレイヤ（プロトコルレイヤ）ではコンピュータシステムのコンポーネントへのインターフェースが及びコンピュータシステムのコンポーネント間のインターフェースが実現されていることによって解決され、
コンピュータプログラム製品においては、コンピュータプログラム製品は直接コンピュータシステムの１つ又は複数の内部メモリ装置にロード可能であり、さらにプログラム部分を含み、前記プログラム製品がコンピュータシステムにおいて実行される場合には前記プログラム部分によって本発明の方法ステップが実施される及び/又は実施可能であることによって解決される。本発明の他の有利な実施形態は以下の記述から得られる。
【００１２】
解決のためには、いわゆるサービスコントローラが統合され、このサービスコントローラはコンピュータシステムとリアルタイムオペレーティングシステムとの間でサービスの分配を管理する。このためにヒューマンマシンインターフェースのために及びリアルタイムオペレーティングシステムのためにサービスコントローラに特別なインターフェースが実装され、これらの特別なインターフェースがシステムの個々のサービスへの特別なアクセスを可能にする。このようにして個々のサービス間のコンフリクトマネージメントを実現することも可能である。
【００１３】
データアクセスバリアは多段式にかつカプセル可能に構成されうる。というのも、これらのデータアクセスバリアは各サービス毎に個別に作ることができるからである。多段式とは、各々存在するヒューマンマシンインターフェース毎に及びアプリケーション毎に例えばインターネットアクセスに、必要不可欠なアクセスコードを介して専ら保護されて、アクセスが可能となることを意味する。これはシステムのコーディング可能性ならびに統合されたマネージメントによって特別なアプリケーション及びサービスへの細分化されたデータ伝送を生み出す。一義的なアクセス権が割り当て可能であり、すなわち例えばシステムにおいて実行中のインターネットアクティビティに対して必要不可欠な及び十分なリザーブが提供される。これはとりわけファイヤーウォールの意味でハッカーに対するセキュリティを保証する。従って、サービスが外部のこのサービスによって必要とされないリソースにアクセスすることはできない。
【００１４】
システムのアプローチは、既存のヒューマンマシンインターフェースの中に操作インターフェースプログラミングの制御部及び操作ソフトウェア全体が設けられることである。操作インターフェースプログラミングは例えばヒューマンマシンインターフェースに対する制御ジョブ、とりわけどの表示画像及びどのキー使用が機能の選択の後で表示されるか及びどの入力をユーザが操作インターフェースにおいて行うことができるかを含む。さらに、ヒューマンマシンインターフェースによって操作ロジックが導入され、この操作ロジックでは機器制御も全システム制御も互いに絡み合っている。システムの大きな複雑性により実際のシーケンスはもはや又はめったに追跡できない。しかし、これは予め設定されたシステム可能性に依存する。操作インターフェースの実施形態では、どの機能を機器が実行するのか、及び、どの機能がユーザのために用意されるのかが予め定義されている。これらは瞬時に機器において可能な入力乃至は瞬時に実行できる機器の機能に割り当てられる。これらのジョブをサービスコントローラは引き受け、このサービスコントローラにおいてこのサービスコントローラは機器から実行可能である瞬時に存在する機能を呼び出し、ヒューマンマシンインターフェースに表示する。ヒューマンマシンインターフェース及び表示装置には実際に機器によって瞬時に実行可能である機能だけが表示される。これをはっきり説明するために、例としてＣＤプレイヤにおいてこれをより詳しく説明する。ＣＤプレイヤはＣＤをロードした。このＣＤプレイヤは「一時停止」状態にある。サービスコントローラは、機能「ＣＤ演奏」、「ＣＤ取り出し」又は「ストップモードへ行く」しか存在しないことをヒューマンマシンインターフェースにシグナリングする。その他の機能は不可能であり、表示されない。これらの情報は機器自体によって与えられる。この機器はその都度の動作ステータスにおいてこの機器の存在しかつ実行可能な機能をサービスコントローラに伝達する。従って、どの機能をユーザが選択できるのか及びどの機能を機器が提供するのかがユーザには一義的に識別される。表示装置における既存の表示ポテンシャルは個々の実際に可能な機能にアレンジされる。ユーザが例えば機能「ＣＤ演奏」を選択すると、サービスコントローラはＣＤプレイヤに対する相応の命令の実施を監視し、同時にさらに別の機能乃至は機能照会は存在するかを確かめる。次いでサービスコントローラは命令をバスを介してＣＤプレイヤに出力する。即刻ＣＤプレイヤがサウンドの権限を持つことがアンプに伝えられる。ＣＤプレイヤは今やオーディオデータの信号源であり、アンプはこれを増幅し、これを選択された信号シンクに伝達する。同時にサービスコントローラはアンプとＣＤプレイヤとの間の線路をスイッチする。従って、このサービスコントローラは２つのジョブを同時に片づける。一つはヒューマンマシンインターフェースにどの機能が目下バスにおいて可能であるか及びどの機能がユーザにとって自由に選択可能であるかを伝えること。同時に、このサービスコントローラは個々の機器をバスにおいて制御する。
【００１５】
システムダイナミックの所定の分配が行われる。以下において三層システムに更なる説明を加えるが、本発明はこれに限定されるものではなく、記述は単に例として行われる。
【００１６】
システムダイナミックは３つの層において実現されており、これら３つの層においてシステムダイナミック全体が持ち分に応じてかつ独立して処理される。これらの３つの層は、
ユーザによって制御される挙動、ヒューマンマシンインターフェース及びマルチモード入力方法のダイナミック；
例えばサービスコントローラのような異なるアプリケーション間の関係のダイナミック；
アプリケーション内部のダイナミック、以下では「サービス」と呼ぶ
である。
【００１７】
３つの層モデルの働きを明確に説明するために、これを具体的な例、ちょうど機能「ＣＤ演奏」が割り当てられているヒューマンマシンインターフェースにおける操作ボタンを押すことに基づいて説明する。このスイッチ面（ボタン）が押されると、システムはアンプ、出力ユニットなどに関する同時に変化するサービスの関与の下で即座に状態「ＣＤ演奏」に移行する。これは、機能に割り当てられたサービス「ＣＤ演奏」の実行によってこの命令を実行するのに必要なさらに別のサービスがスタートされることを意味する。従って、コンピュータシステムを介して相応のデータ及び必要とされるユニットが活性化されリリースされる。よって、「ＣＤ演奏」によりアンプが制御され、アンプはＣＤプレイヤの出力データを増幅し、１つの出力ユニット乃至は複数の出力ユニット、とりわけラウドスピーカに転送し、可能ならばこれらのデータ（音響強度、周波数）をグラフィカルにディスプレイに表示する。こうして初めてシステムダイナミカルな部分がクリアに構造化され、層に表すことができる。「ＣＤ演奏」命令の入力は第１の層で実行されるヒューマンマシンインターフェースを介して取り込まれ、第２の層で実行されるサービスコントローラに行き、ヒューマンマシンインターフェースの側では必ずしもさらに別の実行を監視することもなく又は実行されるさらに別のサービスとの直接的なコネクションを持つこともない。サービスコントローラはさらに別の必要な機能を選択し、制御する。
【００１８】
システムダイナミックは従来のようにヒューマンマシンインターフェースのユーザインターフェースにおいて論じられるのではなく、「コンフリクトマネージメント」としてサービスコントローラにおいて別個にかつ具体的に処理される。これは、サービスコントローラが残余作業の制御を引き受け、ヒューマンマシンインターフェースが別個に連結解除されていることを意味する。よって、複数の同時に要求されたシステムは互いにダイナミックをそれらの順序で有するだろう。このダイナミックをサービスコントローラは自立的に調整する。第１の信号を増幅のために印加する前に、増幅器を調整するのは意味がないだろう。しかし、全てのサービスが同時に提供されなければならず、部分的にはもしかしたら互いに対立してしまう可能性もある。サービスコントローラは手段として及び行動するインスタンスとして活動しており、このインスタンスは操作者の知識及び場合によっては意志とは関係なくコンフリクトをサービス実現の前域で除去するのである。
【００１９】
このシステムの大きな利点は、たとえ新たな機器が接続されたとしても、接続されている個々の機器の操作ロジックが常に同じ状態のままでありうることである。サービスコントローラは機器の操作ロジックに問い合わせ、この操作ロジックを自動的にシステムに加え、この機器を相応の規則を有するルールメカニズムに入れる。例外的な場合には、システム自体の操作ロジックの相応のブロックが交換されなければならない。しかし、これをサービスコントローラは自動的に識別し、これらのジョブを実行する。この場合、サービスコントローラは新しい機器の導入の際にこの新しい機器の機能及び操作ロジックを問い合わせ、それらを自動的に格納する。従って、サービスコントローラを介して二重のルールメカニズムが作られる。機器固有のルールメカニズム、及び、複数の機器とアプリケーションとの間の関連を記述するルールメカニズムである。ヒューマンマシンインターフェースを介するユーザによる機能の入力の際にサービスコントローラはこの機能が既存のルールメカニズムによって許容可能であるか、実施可能であるか及び発生可能であるかを検査する。この機能が存在し実施可能である場合には、このサービスコントローラは全システムを制御する命令カスケードを行うように指示する。全ての機器は、操作命令の実行又は自動的な操作命令のために必要な状態において制御される。サービスコントローラはルールベースの機器の概観及びこれらの機器の機能を発生し、実行に必要なシーケンスを自動的に作成する。
【００２０】
本発明のさらに別の実施形態ではルールメカニズムにおいてサービスＡＰＩが存在し、このサービスＡＰＩの機器制御のための機能は例えばＣＡＮバス、ＭＯＳＴバスなど様々なバスのためのブロックに分割される。このサービスＡＰＩはそうして様々なバスブロックに置かれ、これらを互いに結合し、より詳しく言えば接続された機器には無関係に結合する。このサービスＡＰＩによって、さらに別の従属的な操作ロジックが、とりわけサービスコントローラがもはや強制的にどの物理的な機器が所望された機能を呼び出すか及びどの形式でこの機能乃至はこの命令が送出されうるのかを知っておく必要はない。サービスコントローラは、どの機能が存在し、どの機能が可能であるかを認識しておきさえすればよい。残りのことはサービスＡＰＩが制御する。これによってシステムへの機器の挿入の際には規則を唯一の箇所において、より詳しく言えばサービスコントローラにおいて挿入することが可能になる。その他の結合はサービスＡＰＩが自動的に行う。これによってシステムはより透過的になる。
【００２１】
次に自動車の特異性に基づいてルールベース化及び作動方式を説明する。
【００２２】
個々のアプリケーションは自発的に、ユーザとは無関係に、システムリソースを要求することができる。例えば車両内でＣＤを聞いている間に交通メッセージが受信されると乃至はトラフィックアナウンスメントがリリースされると、すなわちチューナが入力する乃至は入力される交通メッセージを出力するためにリソース・ラウドスピーカを要求する場合、そして電話中にバックグラウンドで実行されているナビゲーションシステムが必要な時間指示及び場所指示又は行動指示を運転者に対して出力するために同様にリソース・ラウドスピーカを利用しようとすることも考えられるが、こんな場合には、これは従来は堅固にコーディングされたストレートフォワードインプリメンテーションの形式で解決され、この場合直接これらのリソースが中間インスタンスの利用なしにアクセスされる。
【００２３】
本発明ではサービスコントローラはルールベースのコンフリクトマネージメントシステムとして介入する。常にそしていずれにせよシステムの予測可能な挙動が存在する。上記の場合には、サービスコントローラはサービスメッセージを出力し、前もって再生中断を引き起こす。この場合、サービスメッセージ出力が終了すると、サービスコントローラがＣＤの再生を再び続ける。さらにサービスコントローラを介して、時間ちょうどには行われずある特定の移行又はスタート時間を必要とするアプリケーション、機器、センサ、チューナのサービス状態の移行を調整することが可能である。上記の時間フレーム、許可フレーム及び活動フレームの検出及びコントローラ監視は、異なるサービス間のコンフリクトマネージメント及びヒューマンマシンインターフェースを介するユーザの入力からは離れて、個々のサービス自体のための予め設定された調整に従って行われる。独自の新たに生み出されたソフトウェアインスタンスにおける上述のような３つの領域の各々毎に、ソフトウェアインスタンスに基づいてプライオリティが論じられ乃至は処理される。こうして、ユーザがシステムクラッシュを前提とするという従来の問題が回避される。遮断はもはや生じない。なぜなら、異なるダイナミック領域が上記のように異なるソフトウェアインスタンスにおいて処理されるからである。一見非論理的な挙動又はシステム挙動は、サービスコントローラが瞬時の所望されるアプリケーション状態を細分化し、惹起することができることによって回避される。
【００２４】
別個のソフトウェアレイヤ、まさに複数のダイナミック層へのシステムダイナミックの明確な分割によって、個々の層は異なるプロセッサ又は異なるオペレーティングシステムにおいて実行される。こうして、例えばサービスコントローラはＱＮＸベースのコンピュータで、ヒューマンマシンインターフェースはＷｉｎｄｏｗｓ-ＣＥベースのコンピュータで実行され、サービスコントローラはこの場合に生じるコンフリクトを自立的に管理する。こうしてマルチプロセッサシステムがコンフリクトなしで管理されうる。
【００２５】
システムインターフェース、とりわけヒューマンマシンインターフェース、サービスコントローラとアプリケーションとの間のインターフェースは厳密にメッセージベースである。
【００２６】
異なるオペレーティングシステムを有するマルチプロセッサシステムにおけるインプリメンテーション可能性は保証される。
【００２７】
運転者、運転助手、乗客、さらに全く様々なアプリケーションに対するような複数のヒューマンマシンインターフェースインスタンスはこのソフトウェアアーキテクチャのサービスコントローラによって管理されうる。それ以上に、ヒューマンマシンインターフェースはワイドエリアネットワークを介して連結解除されうる。この結果、サービスは遠隔管理の方向において可能である。さらに、さらに、例えば車両からプロバイダへの自動的なサービスメッセージを可能にするために、外部からの車両の遠隔制御ならびに運転者の関与なしのアプリケーションのＥｎｄ-ｔｏ-Ｅｎｄソリューションの可能性が存在する。従って、例えば全生産車両管理におけるような車両の自動認証及び/又はメンテナンス、ナビゲーション目的地のプリセットと同じように車両内データバンクの遠隔メンテナンスが外部から可能である。
【００２８】
システムはこれによって同一の標準で簡単に表示することができる。なぜなら、例えばＴＣＰ/ＩＰのような標準化されたプロトコルが使用されうるからである。
【００２９】
システムは実装技術における自由を提供し、異なる層及び異なるサービスが例えばＣ、ＣＨ、Ｃ＃（Ｃシャープ）、Ｊａｖａ、ＸＭＬのような様々なプログラミング言語でプログラミングされうる。
【００３０】
このフォーマルなアーキテクチャ定義によって具体的なリアルタイムオペレーティングシステム及びプロセッサ種類からの独立性が得られる。従って、必ずしもマイクロプロセッサ種類を知らなくても、従来リアルタイムオペレーティングシステムに基づいたシステムがはるかに簡単にパーティション化されうる。
【００３１】
その上、システムコンセプトはメッセージベースのインターフェースにおいてＯＳＧＩフレームワーク（Open System Gateway Initiative）の結合を許容する。これによって大幅なシステム拡張性がアクセス権への厳密なセキュリティ要求及びサービスのカプセル化の実現の下に可能である。
【００３２】
とりわけ自動車のコンピュータシステムの個々のプロセス乃至は機能を管理及び/又は実施するための方法であって、コンピュータシステムはレイヤ構造で実現される、とりわけ自動車のコンピュータシステムの個々のプロセス乃至は機能を管理及び/又は実施するための方法において、少なくとも３つの互いに独立したレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）が実装され、第１のレイヤ（ＨＭＩレイヤ）ではヒューマンマシンインターフェースが実現され、第２のレイヤ（サービスレイヤ）ではコントローラ（サービスコントローラ）が実現され、データをレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の間で又は内部で交換し及び/又は引き渡し及び/又は機能をレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の他のレイヤのうちの１つのレイヤにおいて又は自分のレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）において初期化するプロセス乃至は機能がコントローラによって制御され、第３のレイヤ（プロトコルレイヤ）ではコンピュータシステムのコンポーネントへのインターフェースが及びコンピュータシステムのコンポーネント間のインターフェースが制御される。
【００３３】
第１のレイヤ（ＨＭＩレイヤ）によって第１のサブレイヤ（スキンサブレイヤ）及び第２のサブレイヤ（ロジックサブレイヤ）が制御される。
【００３４】
第１のサブレイヤ（スキンサブレイヤ）によって様々な第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）が処理され、第２のサブレイヤ（ロジックサブレイヤ）によって様々な第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）が初期化及び/又は制御される。
【００３５】
第１のレイヤ（ＨＭＩレイヤ）の第１のサブレイヤ（スキンサブレイヤ）とコントローラ（サービスコントローラ）との間にはプロセスを制御するための主ロジックコントローラ（メインロジック）が配置されている。
【００３６】
第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって、第１のレイヤ（ＨＭＩレイヤ）の入力及び出力が、第１のサブレイヤの第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）及び第２のサブレイヤ（ロジックレイヤ）の第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）に第２のレイヤ（サービスレイヤ）におけるサービスレイヤ個別サービス（サービス１、サービス２、サービス３）において割り当てられる。
【００３７】
第２のレイヤ（サービスレイヤ）の複数のサービス（サービス１、サービス２、サービス３）は、第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）を介して接続されており、さらに第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）はインターフェース（インターフェース１、インターフェース２）を介して置き換えられる。
【００３８】
第２のレイヤ（サービスレイヤ）にはさらに別のサービス（ユーザインプットサービス）が実装されており、さらに別のサービス（ユーザインプットサービス）には第３のレイヤ（プロトコルレイヤ）においてさらに別のインターフェース（インターフェース３、インプット）が割り当てられている。
【００３９】
コントローラ（サービスコントローラ）によって第２のレイヤ（サービスレイヤ）ではプロセス及びスレッドが活性化され制御される。
【００４０】
第１のレイヤ（ＨＭＩレイヤ）のヒューマンマシンインターフェースからのメッセージ（ダウンスレッド）は第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって第１のリスト（プライオリティキュー）にエントリされ、第３のレイヤ（プロトコルレイヤ）からのサービスメッセージ（アップスレッド）は同様に第１のリスト（プライオリティキュー）にエントリされ、第１のリスト（プライオリティキュー）から個々のそこに格納されたメッセージ（ダウンスレッド、アップスレッド）がエントリの時点の後で後続処理され、後続処理の種類を選択するための手段（ディスパッチャ）が存在し、手段に反応して実施すべきプロセス（メインスレッド）が第２のリスト（ジョブリスト）にエントリされ、手段（ディスパッチャ）によってメッセージは第１の及び第３のレイヤ（ＨＭＩレイヤ、プロトコルレイヤ）に送信され、メッセージはメッセージ及び依存プロセス（メインスレッド）のステータスに関してステータス情報を含む。
【００４１】
メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）の中にプッシュされ、メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）から手段（ディスパッチャ）によってポップされる。
【００４２】
とりわけ自動車におけるコンピュータシステムであって、コンピュータシステムはレイヤ構造を有する、とりわけ自動車におけるコンピュータシステムにおいて、少なくとも３つの互いに独立したレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）が設けられており、第１のレイヤ（ＨＭＩレイヤ）ではヒューマンマシンインターフェースが実現され、第２のレイヤ（サービスレイヤ）ではコントローラ（サービスコントローラ）が実現され、データをレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の間で又は内部で交換し及び/又は引き渡し及び/又は機能をレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）の他のレイヤのうちの１つのレイヤにおいて又は自分のレイヤ（ＨＭＩレイヤ、サービスレイヤ、プロトコルレイヤ）において初期化するプロセス乃至は機能がコントローラによって制御され、第３のレイヤ（プロトコルレイヤ）ではコンピュータシステムのコンポーネントへのインターフェースが及びコンピュータシステムのコンポーネント間のインターフェースが実現されている。
【００４３】
第１のレイヤ（ＨＭＩレイヤ）によって第１のサブレイヤ（スキンサブレイヤ）及び第２のサブレイヤ（ロジックサブレイヤ）は制御可能である及び/又は制御される。
【００４４】
第１のサブレイヤ（スキンサブレイヤ）によって様々な第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）が処理可能であり及び/又は処理され、第２のサブレイヤ（ロジックサブレイヤ）によって様々な第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）が初期化可能及び/又は制御可能である及び/又は初期化及び/又は制御される。
【００４５】
第１のレイヤ（ＨＭＩレイヤ）の第１のサブレイヤ（スキンサブレイヤ）とコントローラ（サービスコントローラ）との間にはプロセスを制御するための主ロジックコントローラ（メインロジック）が配置されている。
【００４６】
第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって、第１のレイヤ（ＨＭＩレイヤ）の入力及び出力が、第１のサブレイヤの第１のサービス（サービス１スキン、サービス２スキン、サービス３スキン）及び第２のサブレイヤ（ロジックレイヤ）の第２のサービス（サービス１ロジック、サービス２ロジック、サービス３ロジック）に第２のレイヤ（サービスレイヤ）におけるサービスレイヤ個別サービス（サービス１、サービス２、サービス３）において割り当て可能である及び/又は割り当てられる。
【００４７】
第２のレイヤ（サービスレイヤ）の複数のサービス（サービス１、サービス２、サービス３）は、第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）を介して接続されており及び/又は接続可能であり、さらに第３のレイヤ（プロトコルレイヤ）のプロトコルモジュール（プロトコル１、プロトコル２）はインターフェース（インターフェース１、インターフェース２）を介して置き換え可能である及び/又は置き換えられる。
【００４８】
第２のレイヤ（サービスレイヤ）にはさらに別のサービス（ユーザインプットサービス）が実装されており、さらに別のサービス（ユーザインプットサービス）には第３のレイヤ（プロトコルレイヤ）においてさらに別のインターフェース（インターフェース３、インプット）が割り当て可能である及び/又は割り当てられている。
【００４９】
コントローラ（サービスコントローラ）によってプロセス及びスレッドが活性化可能及び制御可能である及び/又は活性化され制御されるように、第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）は構成されている。
【００５０】
第１のレイヤ（ＨＭＩレイヤ）のヒューマンマシンインターフェースからのメッセージ（ダウンスレッド）は第２のレイヤ（サービスレイヤ）のコントローラ（サービスコントローラ）によって第１のリスト（プライオリティキュー）にエントリ可能であり及び/又はエントリされ、第３のレイヤ（プロトコルレイヤ）からのサービスメッセージ（アップスレッド）は同様に第１のリスト（プライオリティキュー）にエントリ可能であり及び/又はエントリされ、第１のリスト（プライオリティキュー）から個々のそこに格納されたメッセージ（ダウンスレッド、アップスレッド）がエントリの時点の後で後続処理可能であり及び/又は後続処理され、後続処理の種類を選択するための手段（ディスパッチャ）が存在し、手段に反応して実施すべきプロセス（メインスレッド）が第２のリスト（ジョブリスト）にエントリ可能であり及び/又はエントリされ、手段（ディスパッチャ）によってメッセージは第１の及び第３のレイヤ（ＨＭＩレイヤ、プロトコルレイヤ）に送信され、メッセージはメッセージ及び依存プロセス（メインスレッド）のステータスに関してステータス情報を含む。
【００５１】
メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）の中にプッシュ可能であり及び/又はプッシュされ、メッセージ（ダウンスレッド、アップスレッド）は第１のリスト（プライオリティキュー）から手段（ディスパッチャ）によってポップ可能である及び/又はポップされる。
【００５２】
コンピュータプログラム製品において、コンピュータプログラム製品は直接コンピュータシステムの１つ又は複数の内部メモリ装置にロード可能であり、さらにプログラム部分を含み、プログラム製品がコンピュータシステムにおいて実行される場合にはプログラム部分によって本発明の方法ステップが実施される及び/又は実施可能である。
【００５３】
以下において本発明を具体的な実施例に基づいて図３〜図５に基づいて詳しく説明する。
【００５４】
図３は本発明の層モデルを示し、
図４はサービスコントローラのコンポーネントを示し、
図５はサービスコントローラの構造を示す。
【００５５】
図３には層モデルが記述されている。ヒューマンマシンインターフェースレイヤ（Human Machine Interface Layer）はスキン又はＧＵＩレイヤとも呼ばれ、グラフィカルな出力及びヒューマンマシンインターフェース（ＨＭＩ）の表示、デザイン及びロジック構造を制御する。
【００５６】
その下にあるサービスレイヤはシステムの中間部分である。システムにおける各物理ユニットは１つ又は複数のサービス（ロジックユニット）によって表現されている。例えば電話サービス、ＣＤプレイヤサービスなどがある。これらのサービスはハードウェアに依存しない命令、例えば命令「電話番号１２３選択」又は「ＣＤプレイヤは歌３を演奏」の機能セットを提供する。サービスレイヤにおいて最も重要なコンポーネントはサービスコントローラであり、このサービスコントローラはサービスを互いに管理し、制御し、実際のヘッドユニットとして中央でサービスを管理する。サービスコントローラには後でより詳しく言及する。
【００５７】
第３層としてプロトコルレイヤが続き、このプロトコルレイヤはソフトウェアコンポーネント、とりわけ例えばＭＯＳＴ又はＦｉｒｅＷｉｒｅのようなマルチメディアバスシステムにおける車両内通信のためのプロトコルを有し、同時にソフトウェアとハードウェアとの間のインターフェースである。
【００５８】
サービスが提供する機能範囲を利用するために、ヒューマンマシンインターフェースは適当なメッセージをサービスコントローラに送信する。このメッセージを定義する予め設定されたプロトコルはいわゆるマルチメディアインタープロセスコミュニケーションズプロトコル（ＭＩＣ）と呼ばれる。メッセージを送受信するためのアプリケーションプログラミングインターフェースが存在し、これはＳＥＲＡＰＩ（SERvice API）と呼ばれ、後で詳しく記述する。ヒューマンマシンインターフェースはサービス及びハードウェアへの直接的なアクセスを持たない。
【００５９】
ヒューマンマシンインターフェースとプロトコルレイヤとの間の厳密な分離は様々な利点を有する。これらの利点の１つはシステムの高い抽象化である。このシステムはヒューマンマシンインターフェースに全くハード及びソフトウェアに依存せずかつプロトコルにも依存しないインターフェースを与える。これは、例えばＭＯＳＴマルチメディアユニットで実行されるヒューマンマシンインターフェースが同様にＦｉｒｅＷｉｒｅベースに基づくシステムでもなんらかの適応なしに機能可能であることを意味する。他の側面では、ユーザインターフェースのロジック構造が全くカプセル化されており、ヒューマンマシンインターフェースに限定されている。これは非常に容易に、より下位の層に手をつけることなしに、ヒューマンマシンインターフェースにおけるシステムの完全なデザイン及び「ルックアンドフィール」を変更し、置き換えることを可能にする。従って、もちろん、個々のサービス及び個々のレイヤの開発及び新たな実装をシステムに依存して形成することを可能にする。
【００６０】
以下においてサービスコントローラに言及する。とりわけマルチメディアシステムは以下の特性を満たす必要がある：
面倒な適合作業なしでインターフェースに適応可能であるための簡単な方法を実現すること；
部分開発を支援し、ソフトウェアコンポーネントのテストを可能にすること；
システムに拡張可能なコンポーネントを装備させる簡単な方法を指示すること。
【００６１】
既に指摘したように、ヒューマンマシンインターフェースは独立した層、ヒューマンマシンインターフェースレイヤで実行される。従って、単独のユニットとしてテストされ、開発される。しかし、システムを簡単にハードウェアの固有の特性に適合させるためには、ソフトウェアをモジュール式に構成することが必要不可欠である。このモジュール性はサービスの開発及び導入によって可能となる。各サービスは、物理的かつ実際にシステムに存在するユニットを介してアクセス及び管理を受ける可能性を有し、各上位レイヤ、例えばヒューマンマシンインターフェースへのハードウェアに依存しないインターフェースを可能にする。これらのサービスのうちのいくつかは他のサービスに依存するか、さもなければハードウェアへの排他的なアクセスを必要とする。これは制御的かつ同期的にサービスを制御しヒューマンマシンインターフェースレイヤとサービスインターフェースとの間のインターフェースを構築するソフトウェアコンポーネントが必要不可欠であることを意味する。このコンポーネントがサービスコントローラである。
【００６２】
従って、他方でサービスコントローラにイベントジェネレータを接続することも可能であり、このイベントジェネレータは全てのテストシナリオを自動的に実行することを可能にする。これは従来不可能であったより深くかつ広範で迅速なテスト可能性を可能にする。
【００６３】
既に説明したように、システムは瞬時に実行中の無数のプロセス及びスレッドから成る。互いに通信を可能にするためには、ＭＩＣプロトコルによって定義されているこれらのメッセージを送信する。いくつかのマルチメディアコンポーネントの部分的に非常に長い応答時間のために、ＭＩＣプロトコルは非同期に構成されている。例えば初期化フェーズの間には個々のコンポーネントを同期化することが必要である多数の状況がある。この同期化を実施し維持することはサービスコントローラの任務である。
【００６４】
マルチメディアシステムは大抵の場合ハードウェアユニットから成り、これらのハードウェアユニットは専ら排他的なアクセスを許容する。様々なサービスがこのようなハードウェアへのアクセスを必要とする場合、サービスコントローラの任務はこれらの問題及びこの場合に生じるサービス間のコンフリクトを解決することである。これはパラレルにアクセスが可能であるが、どうしても必要というわけではない場合にも当てはまる。
【００６５】
多数の可能なイベントが、異なるサービスにおいて実行されるべきである複数のアクションのシーケンスを初期化する。しかし１つのアクションのシーケンスが非常に重要である。アクションの成功又は失敗が後続のアクションに影響を及ぼす。さらに複雑に表現すると、ある種の領域では、このアクションが実施される前に、他のイベントの前に１つのイベントの早めの実行が必要であることがありうるし必要であるかもしれない。これは、ひょっとするとパラレルに活動すべきかもしれないが、さらにこのパラレルな作業が互いに影響から自由であるか又は場合によっては影響から自由ではないことが保証されなければならないことを意味する。サービスコントローラは、イベントハンドリングを調整して所定の特性が満たされるように実行することによって、この課題を解決する。
【００６６】
図４に基づいて、サービスコントローラの複数のメインコンポーネント及びサービスコントローラの構造を示す。サービスコントローラは、常に動作している、より詳しく言えばパラレルモードにある３つのメインコンポーネントから成る。ダウンスレッド（Down-Thread）、アップスレッド（Up-Thread）及びメインスレッド（Main-Thread）である。ダウンスレッド及びアップスレッドはヒューマンマシンインターフェース及びサービスからメッセージを受け取り、これらのメッセージをセントラルキュー（Queue）に格納するという任務を有する。これとは無関係に、メッセージのプレフィルタリング及びプレハンドリングを実行することが可能であり、これらはサービスコントローラの一部で実施される。メインスレッドはメッセージをキューから取り出し、これらを実行し、キューを管理する。
【００６７】
上記のようなメッセージキューは複雑な構造である。これは異なるサイズを有しうる様々なキューから成る。各キューには独自のプライオリティが与えられている。受信スレッドはイベントのプライオリティを求め、これを適当なキューに格納する。
【００６８】
以下において図５に基づいてサービスコントローラの更なる構造を説明する。サービスコントローラはディスパッチャを有する。このディスパッチャはメインスレッドで実行され、イベント及び事象を管理する。このサービスコントローラは個々のシステムコンポーネントの瞬時の状態を監視し、格納する。例えばＧＳＭモデムを有するシステムではサービスコントローラは電話サービスがモデムにアクセスしたか又は呼が滞っているか又はＩＰサービスがモデムを瞬時に利用してインターネット接続を形成しているかどうかを監視する。
【００６９】
重要なことは、ディスパッチャは全システム状態を監視せず、イベントが実行可能であるか否かに影響を及ぼす状態のみを監視することである。どのようにそしていつイベントが実行されるか及び/又は実行可能であるかの決定は、様々なイベントに結合されている。
【００７０】
イベントが多数のさらに別のアクションを促す場合には、ディスパッチャが新しいジョブを発生し、このジョブがこのイベントを管理する。ディスパッチャはアクティブなジョブのリストを格納する。
【００７１】
以下において機能性（functionality）について詳しく説明する。サービスコントローラは２つの状態乃至はフェーズ、初期化フェーズと動作フェーズとの間で決定する。初期化フェーズ中には各サービス及びヒューマンマシンインターフェースは直接サービスコントローラに報告する。次いでサービスコントローラが各々個々のプロセスへの通信を初期化する。サービスコントローラはコンフィグレーションファイルから、実行可能なシステムを得るために誰のサービスが必要であるかを読み出す。全ての必要なサービス及びヒューマンマシンインターフェースが確認されると、各プロセスはサービスコントローラからシステムは今動作中であるというメッセージを受け取る。所定の時間の後で全てのサービスが応答しない場合、サービスコントローラは限定された動作が可能であるか又はシステムが実行可能でないかを自ら判定する。
【００７２】
以下においてイベントハンドリングを詳しく記述する。システムは多数のイベントを知っている。イベントを取り扱うやり方は様々なシステムステージに依存する。それにもかかわらず、様々なイベントが同じように取り扱われる。イベントハンドリングを簡略化し、将来の拡張のために開放しておくために、所定の抽象化が導入される。いくつかのイベント属性が導入され、属性に基づいてどのようにしてイベントを取り扱うべきかを定義するいくつかのルールを導入する。
【００７３】
サービスコントローラはテーブル、いわゆるインフォテーブルを有し、このインフォテーブルは各々定義されたイベントのいくつかの情報を有する。この情報は、イベントを実行する際のプライオリティ及びイベントフラグとも呼ばれるイベント属性から成る。１つのイベントが様々な属性の様々な組み合わせを有することも可能である。
【００７４】
以下のイベント乃至は属性が定義されている：
ループスルー（Loop Through）、オーディオプロデューサー（Audio Producer）、オーディオストッパー（Audio Stopper）、ＧＳＭフォンユーザ（GSM Phone user）、ＧＳＭリリーサー（GSM releaser）及びルール例外（Rule Exception）。
【００７５】
これらの属性は次のような意味を有する：
ループスルー：
このフラグを有するイベントはサービスコントローラから所属のサービスへ又はヒューマンマシンインターフェースへ渡される。
【００７６】
オーディオプロデューサー：
このフラグはサービスコントローラにこのイベントは様々なオーディオ出力をスタートするだろうという報告を与える。
【００７７】
オーディオストッパー：
このフラグはサービスコントローラにこのイベントはそのオーディオ出力を終了すると報告する。
【００７８】
ＧＳＭフォンユーザ：
サービスコントローラは、ＧＳＭモデムがコネクション開放の準備ができている場合にしかこのようなイベントは正確に実行できないというメッセージを受け取る。
【００７９】
ＧＳＭリリーサー：
このイベント属性は、このサービスはＧＳＭモデムへのアクセスを放棄することを意味する。
【００８０】
ルール例外：
このフラグは、予め挙げられたルールに依存して、イベントが管理されないか又は実行できない場合にセットされる。ルール例外毎に、ディスパッチャはこの特定のイベントを管理する機能をもたなくてはならない。
【００８１】
アップスレッドがイベントを受け取ると、このアップスレッドはこのイベントのプライオリティのためのインフォテーブルから所属のプライオリティを取り出し、これを所属のキューに格納する。ダウンスレッドが受け取るヒューマンマシンインターフェースのイベントは常に最高のプライオリティを得る。キューが空にならない限りはディスパッチャはアクティブである。ディスパッチャは次のイベントを取り出す。この場合、もちろんディスパッチャは最初にキューの中を調べ、最高のプライオリティを有するイベントを取り出す。このキューが空である場合、ディスパッチャは最も低いプライオリティ等々を有するキューから最も古いエレメントを取る。次いで、ディスパッチャは、このイベントがアドレス指定されているところのサービスが実行中のシステムの一部であるかどうかを検査する。ノーの場合、エラーメッセージが送信される。そしてディスパッチャはルールリストに行き、このイベントが１つのルール条件を有するかどうかを検査する。様々な条件が当てはまり、全ての所属のアクションが実行されており、ルール例外イベントが問題とならない限りは、この固有のイベントに対する例外ハンドラのみが実行される。全てのルール条件が検査された後で、ディスパッチャはジョブリストに行き、アクティブなジョブを続ける。次いで、ディスパッチャはキューから次のイベントを取り出す。
【００８２】
既に説明したように、１つのイベントはアクションのシーケンスを引き起こしうる。このアクションのシーケンスは必ず実行されなければならない。システムの非同期的挙動のために、シーケンスが完全に終了する前に、所定の時点でメッセージに基づいてこのシーケンスの終了を待つことが必要である。これは、まだ最初のイベントが完全に処理され終了する前にディスパッチャは新たなイベントを受信することができるようにならなければならないことを意味する。このようなイベントはジョブにおいて実行される。ディスパッチャがジョブをコールすると、このシーケンスをできるかぎり実行する。このディスパッチャが全てのジョブをコールするまでは、いつも新しいイベントが受信される。この場合ジョブ自体が、このジョブが待っている条件が新たに入力されたイベントによって到着したかどうか検査することができる。そして、ジョブ自体がシーケンスをさらに実施することができる。ジョブが終了すると、ディスパッチャはこれをジョブリストから除去する。
【００８３】
ルールは、イベントがどのように取り扱われなければならないかをイベントの属性及びシステムステータスに依存して定義する。イベントが属性を及びシステムステータスが条件を捉えるやいなや、各ルールは条件及び実行されるべきアクションを定義する。アクションにおいてジョブを実行すべき場合には、個々のジョブはどんな作用を有しかつどのような実行が促されているのかを定める様々なサブルールが存在する。シーケンスが分岐点の出現の際に何をしてどのように実行すべきかは、分岐点の時点に存在するシステムステータスに依存する。次のようなルールが例えば定義されている：
例外：
条件：イベントフラグルール例外がセットされている。
所属のアクション：特定のイベントのために定義されている例外ハンドラの実行。ディスパッチャがこのイベントに対する例外ハンドラを持たない場合には、このイベントを送信したコンポーネントにエラーメッセージが送信される。
【００８４】
オーディオプロデューサー：
条件：イベントフラグオーディオプロデューサーがセットされている。
所属のアクション：オーディオプロデューサージョブがスタートされる。
【００８５】
オーディオストッパー：
条件：イベントフラグオーディオストッパーがセットされている。
所属のアクション：オーディオストッパージョブがスタートされる。
【００８６】
ＧＳＭフォンユーザリジェクト：
条件：イベントフラグＧＳＭフォンユーザがセットされておりかつモデムが瞬時にデータ接続状態にある。
所属のアクション：イベントの送信者にエラーメッセージが送信される。このエラーメッセージはこの送信者にモデムは瞬時に音声接続を形成できないことを伝える。
【００８７】
ループスルー：
条件：イベントフラグループスルーがセットされている。
所属のアクション：このイベントがヒューマンマシンインターフェースによって受信された場合には、これを所属のサービスに渡す。このイベントがサービスによって受信された場合には、これをヒューマンマシンインターフェースに渡す。
【００８８】
既に示したように、ジョブによって発生されるアクションのシーケンスはサブルールによって定義されている。これらのサブルールは非常に複雑でありうる。例えばオーディオプロデューサージョブは全てのオーディオプロデューサーサービスを同期させる任務を有し、この場合には音源とオーディオシンクとの間のコネクションを構築し、既存のコネクションを切断し、これらのコネクションを管理しなくてはならない。さらにオーディオプロデューサージョブは様々なエラーメッセージを異なるやり方で分配しなければならない。
【図面の簡単な説明】
【００８９】
【図１】今日の自動車用インフォテイメントシステムのための実施形態が示されている。
【００９０】
【図２】さらに別の今日の公知のインフォテイメントシステムが概略的に図示されている。
【００９１】
【図３】本発明の層モデルを示す。
【００９２】
【図４】サービスコントローラのコンポーネントを示す。
【００９３】
【図５】サービスコントローラの構造を示す。
【符号の説明】
【００９４】
ＨＭＩ  ヒューマンマシンインターフェース
ＣＤ  ＣＤプレイヤ
ＮＡＶ  ナビゲーション
【図１】
2005537529.tif 000003
【図２】
2005537529.tif 000004
【図３】
2005537529.tif 000005
【図４】
2005537529.tif 000006
【図５】
2005537529.tif 000007
【国際調査報告】
2005537529.tif 000008
2005537529.tif 000009
2005537529.tif 000010
2005537529.tif 000011