(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-17
(45)【発行日】2023-11-28
(54)【発明の名称】自動車の診断情報の遠隔取得、監視及び制御のための装置、システム及び方法
(51)【国際特許分類】
B60W 50/02 20120101AFI20231120BHJP
G01M 17/007 20060101ALI20231120BHJP
G08G 1/09 20060101ALI20231120BHJP
【FI】
B60W50/02
G01M17/007 J
G08G1/09 F
(21)【出願番号】P 2019090207
(22)【出願日】2019-05-10
【審査請求日】2022-02-09
(32)【優先日】2018-05-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506292974
【氏名又は名称】マーレ インターナショナル ゲゼルシャフト ミット ベシュレンクテル ハフツング
【氏名又は名称原語表記】MAHLE International GmbH
【住所又は居所原語表記】Pragstrasse 26-46, D-70376 Stuttgart, Germany
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】ボルト ルイス
(72)【発明者】
【氏名】ホスキンス ダスティン
(72)【発明者】
【氏名】キンケード チャールズ
(72)【発明者】
【氏名】パルマー クリス
【審査官】櫻田 正紀
(56)【参考文献】
【文献】欧州特許出願公開第02988278(EP,A1)
【文献】米国特許出願公開第2018/0047222(US,A1)
【文献】米国特許出願公開第2013/0018677(US,A1)
【文献】米国特許出願公開第2017/0024942(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 10/00-10/30
30/00-60/00
G08G 1/00-99/00
G01M 17/007
(57)【特許請求の範囲】
【請求項1】
車両診断システムであって、
ハウジング構造と、
前記ハウジング構造の部分に結合されている、及び前記ハウジング構造の部分から伸びている、のうちの少なくとも1つである電気コネクタと、
前記ハウジング構造に配置され、前記電気コネクタに通信可能に結合された、1つ以上のコンピュータ及び1つ以上の記憶装置とを備え、
前記1つ以上の記憶装置は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、
前記電気コネクタに接続された車両の車両識別番号(VIN)を求めることと、
前記VINを含む要求をリモートサーバシステムへ送信させることと、
少なくとも部分的に前記車両識別番号に基づいて生成された車両電子的構成(VEC)ファイルを、前記1つ以上の記憶装置において、前記リモートサーバシステムへの前記要求の送信に応じて受信することと、
パラメータ識別(PID)コードを、前記車両電子的構成ファイルによって、車両動作データの総称的な要求の受信に応じて識別することと、
識別された前記PIDコードに基づいて、アクセスされるべき車両制御モジュールを決定することと、
識別された前記PIDコードに基づいて、前記車両制御モジュールから前記車両動作データを取得することと、
を含む動作を行わせるように動作可能な格納された命令を含
み、
前記PIDコードを、前記総称的な要求の受信に応じて識別することは、複数のPIDコードを含むルックアップテーブルを調べることを含む、
車両診断システム。
【請求項2】
前記格納された命令は、ナノカーネルファームウェアとして構成される、
請求項1に記載の車両診断システム。
【請求項3】
前記格納された命令は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、前記車両動作データを前記リモートサーバシステムへ送信させることを含む動作を行わせるように更に動作可能である、
請求項1に記載の車両診断システム。
【請求項4】
前記コネクタは、車上診断(OBD)コネクタを含む、
請求項1に記載の車両診断システム。
【請求項5】
前記格納された命令は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、出力コマンドを車両制御モジュールへ送らせることを含む動作を行わせるように更に動作可能である、
請求項1に記載の車両診断システム。
【請求項6】
前記格納された命令は、前記1つ以上の記憶装置における100キロバイト以下のメモリに格納される、
請求項1に記載の車両診断システム。
【請求項7】
前記格納された命令は、前記1つ以上の記憶装置における64キロバイト以下のメモリに格納される、
請求項1に記載の車両診断システム。
【請求項8】
前記1つ以上の記憶装置は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、前記VECファイルを前記1つ以上の記憶装置に格納することを更に含む動作を行わせるように動作可能な格納された命令を含む、
請求項1に記載の車両診断システム。
【請求項9】
前記VECファイルは、前記車両動作データを取得し、前記車両動作データを前記1つ以上の記憶装置のうちの少なくとも1つに格納するために、前記1つ以上の記憶装置に格納されたオペレーティングシステムと係合され、車両通信インタフェース(VCI)を経由して前記車両制御モジュールを係合するように構成される、
請求項7に記載の車両診断システム。
【請求項10】
前記VECファイルは第1VECファイルであり、前記1つ以上の記憶装置に格納された前記第1VECファイルを前記第1VECファイルとは別個の第2VECファイルで置き換えることを更に含む、
請求項8に記載の車両診断システム。
【請求項11】
前記1つ以上の記憶装置に格納された前記第1VECファイルを前記第2VECファイルで置き換えることは、前記VINの少なくとも1つの変更に応じて行われる、
請求項10に記載の車両診断システム。
【請求項12】
前記VECファイルはバイナリファイルを含む、
請求項1に記載の車両診断システム。
【請求項13】
前記VECファイルは、複数のパラメータ識別(PID)コードのための文字列及びロジックを含み、識別された前記PIDコードは、前記複数のPIDコードから選択される、
請求項1に記載の車両診断システム。
【請求項14】
前記要求は、前記車両診断システムのデバイス識別番号を含む、
請求項1に記載の車両診断システム。
【請求項15】
前記1つ以上のコンピュータは、車両動作データの総称的な要求をリモートサーバから受信するように構成される、
請求項1に記載の車両診断システム。
【請求項16】
車両診断データを取得する方法であって、
車両診断システムの電気コネクタに接続された車両の車両識別番号(VIN)を求めることと、
前記VINを含む要求を、前記車両診断システムからリモートサーバシステムへ送信させることと、
少なくとも部分的に前記車両識別番号に基づいて生成された車両電子的構成(VEC)ファイルを、前記車両診断システムにおいて、前記要求の送信に応じて受信することと、
パラメータ識別(PID)コードを、前記VECファイルによって、車両動作データの総称的な要求の前記リモートサーバシステムからの受信に応じて識別することと、
識別された前記PIDコードに基づいて、アクセスされるべき車両制御モジュールを決定することと、
識別された前記PIDコードに基づいて、前記車両制御モジュールから前記車両動作データを取得することと、
を含
み、
前記PIDコードを、前記総称的な要求の受信に応じて識別することは、複数のPIDコードを含むルックアップテーブルを調べることを含む、
車両診断データを取得する方法。
【請求項17】
前記格納された命令は、1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、前記車両動作データを前記リモートサーバシステムへ送信させることを含む動作を行わせるように更に動作可能である、
請求項16に記載の車両診断データを取得する方法。
【請求項18】
前記車両動作データを取得することは、故障診断コード(DTC)を取得することを含む、
請求項16に記載の車両診断データを取得する方法。
【請求項19】
前記PIDコードを前記総称的な要求の受信に応じて識別することは、前記総称的な要求内の1つ以上の用語をPID名にマッピングすることを含む、
請求項16に記載の車両診断データを取得する方法。
【請求項20】
前記PIDコードは、車両のオドメータの読み取り値、オイル寿命、タイヤ空気圧、シートベルト状態、燃料レベル、エアバッグ状態、変速機ギアの位置、ブレーキ状態、車両速度及びエンジン速度のうちの少なくとも1つに対応する、
請求項16に記載の車両診断データを取得する方法。
【請求項21】
前記PIDコードを前記総称的な要求の受信に応じて識別することは、
前記総称的な要求内の標準化された用語のリストを解釈することと、
標準化された用語の前記リスト内の標準化された用語を、複数のPIDコードから選択されたPIDコードにマッピングすることと、
を含む、請求項16に記載の車両診断データを取得する方法。
【請求項22】
前記標準化された用語を、複数のPIDコードから選択されたPIDコードにマッピングすることは、前記総称的な要求を文字列検索アルゴリズムで分析することを含む、
請求項
21に記載の車両診断データを取得する方法。
【請求項23】
前記標準化された用語を、複数のPIDコードから選択されたPIDコードにマッピングすることは、前記総称的な要求をパターン認識アルゴリズムで分析することを含む、
請求項
21に記載の車両診断データを取得する方法。
【請求項24】
前記VECファイルを1つ以上の記憶装置に格納することを更に含む、
請求項16に記載の車両診断データを取得する方法。
【請求項25】
前記VECファイルは第1VECファイルであり、1つ以上の記憶装置に格納された前記第1VECファイルを前記第1VECファイルとは別個の第2VECファイルで置き換えることを更に含む、
請求項
22に記載の車両診断データを取得する方法。
【請求項26】
前記1つ以上の記憶装置に格納された前記第1VECファイルを前記第2VECファイルで置き換えることは、前記VINの少なくとも1つの変更の検出に応じて行われる、
請求項
25に記載の車両診断データを取得する方法。
【請求項27】
1つ以上のコンピュータ読み取り可能な記憶装置であって、
1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、
車両の車両識別番号(VIN)を求めることと、
前記VINを含む要求を、車両診断システムからリモートサーバシステムへ送信させることと、
少なくとも部分的に前記VINに基づいて生成された車両電子的構成(VEC)ファイルを、前記車両診断システムにおいて、前記要求の送信に応じて受信することと、
パラメータ識別(PID)コードを、前記VECファイルによって、車両動作データの総称的な要求の前記リモートサーバシステムからの受信に応じて識別することと、
識別された前記PIDコードに基づいて、アクセスされるべき車両制御モジュールを決定することと、
識別された前記PIDコードに基づいて、前記車両制御モジュールから前記車両動作データを取得することと、
を含む動作を行わせる命令が格納され
、
前記PIDコードを、前記総称的な要求の受信に応じて識別することは、複数のPIDコードを含むルックアップテーブルを調べることを含む、
1つ以上のコンピュータ読み取り可能な記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、概して自動車の診断システムの分野に関する。
【背景技術】
【0002】
高度車両診断システムによって、整備士や技術者が車両システムにアクセスし、車両システムを診断することが可能になる。これらの高度車両診断システムの中には、車両の車上診断(OBD)ポートに差し込まれるツールによって実装されるものがある。これらのツールは、車両を分析、診断及び修理するために、1つ以上のローカルのコンピュータ又はステーションと通信し得る。これらのシステムは、概して高度な技術者による使用に適している。これらのシステムは、例えばローカルのコンピュータ又はステーションに格納され得る大きなデータベースのサブスクリプションの分析を実行する。したがって、これらのツールによって、技術者が、車両の故障コード及び技術情報を深く探ることが可能になる。
【0003】
これらのシステムは、高度な技術者による使用のために設計されているので、ローカルな使用のために構成されており、概して平均的な運転者にとっては複雑過ぎる、診断における技術的な詳細を提供する。そのようなツールのためのメモリの記憶容量の要求は、リアルタイムの遠隔診断をできなくするほど高い。更に、そのようなツールによって提供される分析の複雑さは、ローカルな診断及び修理をする根拠となり、そのようなシステムの使用を容易にする大きなデータベースのサブスクリプションが容易に利用可能となる。
【発明の概要】
【0004】
本発明者らは、ここに開示されたさまざまな実施形態が、車両の診断状態情報を遠隔から取得し及び/又は車両に出力制御を遠隔から行う装置、システム、及び方法を提供するということを、よく理解している。遠隔車両診断は、車両診断システムホスト装置の電気コネクタに接続された車両の車両識別番号に基づいて達成される。車両電子的構成(VEC)ファイルは、ホスト装置に遠隔から提供され、1つ以上の車両制御モジュール、特に車両又は車両プラットフォームへのアクセスを選択的に制御し容易にする。VECファイルは、ホスト装置及び/又はアップデートされたポストエンゲージメントに提供され、装置上のエネルギー貯蔵要求を改善する。
【0005】
この明細書は、「構成され」という用語を、システム、機器、及びコンピュータプログラム要素に関して使用する。1つ以上のコンピュータのシステムについて、特定の動作又は働きを行うように構成されているということは、システムがその上に、動作時にそのシステムにその動作又は働きを行わせるソフトウェア、ファームウェア、ハードウェア、又はそれらの組合せをインストールしているということを意味する。1つ以上のコンピュータプログラムについて、特定の動作又は働きを行うように構成されているということは、
1つ以上のプログラムが、データ処理装置によって実行される時に、その装置にその動作又は働きを行わせる命令を含むということを意味する。特殊用途の論理回路について、特定の動作又は働きを行うように構成されているということは、その回路が、その動作又は働きを行う電気的ロジックを有するということを意味する。
【0006】
前述の、及び他の実施形態はそれぞれ、1つ以上の以下の特徴を、単独で又は組合せで自由に含み得る。
【0007】
さまざまな実施形態が、ハウジング構造と、前記ハウジング構造の部分に結合されている、及び前記ハウジング構造の部分から伸びている、のうちの少なくとも1つである電気コネクタと、前記ハウジング構造に配置され、前記電気コネクタに通信可能に結合された、1つ以上のコンピュータ及び1つ以上の記憶装置とを含む、車両診断システムを提供する。前記1つ以上の記憶装置は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、動作を行わせる格納された命令を含む。格納された命令は、ナノカーネルアプリケーション又はナノカーネルファームウェアとして構成され得る。前記動作には、前記電気コネクタに接続された車両の車両識別番号(VIN)を求めることとが含まれる。前記動作には、前記VINを含む要求をリモートサーバシステムへ送信させることが含まれる。前記動作には、少なくとも部分的に前記車両識別番号に基づいて生成された又は取得された車両電子的構成(VEC)ファイルを、前記1つ以上の記憶装置において、前記リモートサーバシステムへの前記要求の送信に応じて受信することが含まれる。前記動作には、パラメータ識別(PID)コードを、前記車両電子的構成ファイルによって、車両動作データの総称的な要求の受信に応じて識別することが含まれる。前記動作には、識別された前記PIDコードに基づいて、アクセスされるべき車両制御モジュールを決定することが含まれる。前記動作には、識別された前記PIDコードに基づいて、前記車両制御モジュールから前記車両動作データを取得することが含まれる。いくつかの実施態様において、総称的な要求は、ナノカーネルアプリケーションへ、1つ以上の記憶装置において格納された及び/又は動作する、パートナーアプリケーション又はホストアプリケーションによって提供され得る。いくつかの実施態様において、パートナーアプリケーションは、リモートサーバ(すなわち、車両診断システムのハウジング構造から離れている)から受信されたクエリ又は要求に応じて総称的な要求を生成し得る。
【0008】
いくつかの実施態様において、前記格納された命令は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、前記車両動作データを前記リモートサーバシステムへ送信させることを含む動作を行わせるように更に動作可能である。
【0009】
ある実施態様において、前記コネクタは、車上診断(OBD)コネクタを含む。
【0010】
特定の実施態様において、前記格納された命令は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、出力コマンドを車両制御モジュールへ送らせることを含む動作を行わせるように更に動作可能である。
【0011】
いくつかの実施態様において、前記格納された命令は、前記1つ以上の記憶装置における100キロバイト以下のメモリに格納される。
【0012】
ある実施態様において、前記格納された命令は、前記1つ以上の記憶装置における64キロバイト以下のメモリに格納される。
【0013】
特定の実施態様において、前記1つ以上の記憶装置は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、前記VECファイルを前記1つ以上の記憶装置に格納することを更に含む動作を行わせるように動作可能な格納された命令を含む。
【0014】
いくつかの実施態様において、前記VECファイルは、前記車両動作データを取得し、前記車両動作データを前記1つ以上の記憶装置のうちの少なくとも1つに格納するために、前記1つ以上の記憶装置に格納されたオペレーティングシステムと係合され、車両通信インタフェース(VCI)を経由して前記車両制御モジュールを係合するように構成される。
【0015】
ある実施態様において、前記VECファイルは第1VECファイルであり、前記1つ以上の記憶装置に格納された前記第1VECファイルを前記第1VECファイルとは別個の第2VECファイルで、新たなVINの検出に応じて置き換えることを更に含む。
【0016】
特定の実施態様において、前記1つ以上の記憶装置に格納された前記第1VECファイルを前記第2VECファイルで置き換えることは、前記VINの少なくとも1つの変更に応じて行われる。
【0017】
いくつかの実施態様において、前記VECファイルはバイナリファイルを含む。
【0018】
ある実施態様において、前記VECファイルは、複数のパラメータ識別(PID)コードのための文字列及びロジックを含み、識別された前記PIDコードは、前記複数のPIDコードから選択される。
【0019】
特定の実施態様において、VECファイルは、その車両に存在する可能性のあるすべてのモジュール(例えば、車体制御モジュール、パワートレイン制御モジュール等)のための情報を含む。情報は、システムのモジュールID、モジュールプロトコル又は特別構成(例えば、VECファイル内のプロトコルをどのように解釈するかについての情報、特定のバススピード、ビットタイミング、ISO 14229、ISO 15765、キーワードプロトコル、OBDII等)、物理/トランスポート層、CAN、UART、シリアルプロトコル、データアドレス、アドレスにおけるデータ要求、エンジンRPM及び/又は車両速度のアドレス、データの変換及びスケーリングファクター(例えば、華氏又は摂氏における温度)、使用すべき適格なモジュールを選択するロジック、ECUのID、及び全ての可能性がある事項-正しいデータを選択するロジック、を含み得る。
【0020】
いくつかの実施態様において、前記要求は、前記車両診断システムのデバイス識別番号を含む。
【0021】
さまざまな実施形態が、車両診断データを取得する方法を提供する。前記方法は、車両診断システムの電気コネクタに接続された車両の車両識別番号(VIN)を求めることを含む。前記方法は、前記VINを含む要求を、前記車両診断システムからリモートサーバシステムへ送信させることを含む。前記方法は、少なくとも部分的に前記車両識別番号に基づいて生成された車両電子的構成(VEC)ファイルを、前記車両診断システムにおいて、前記要求の送信に応じて受信することを含む。前記方法は、パラメータ識別(PID)コードを、前記VECファイルによって、車両動作データの総称的な要求の受信に応じて識別することを含む。前記方法は、識別された前記PIDコードに基づいて、アクセスされるべき車両制御モジュールを決定することを含む。前記方法は、識別された前記PIDコードに基づいて、前記車両制御モジュールから前記車両動作データを取得することを含む。
【0022】
ある実施態様において、前記格納された命令は、前記1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに、前記車両動作データを前記リモートサーバシステムへ送信させることを含む動作を行わせるように更に動作可能である。
【0023】
いくつかの実施態様において、前記車両動作データを取得することは、故障診断コード(DTC)を取得することを含む。
【0024】
特定の実施態様において、前記PIDコードを前記総称的な要求の受信に応じて識別することは、前記総称的な要求内の1つ以上の用語をPID名にマッピングすることを含む。
【0025】
ある実施態様において、前記PIDコードを前記総称的な要求の受信に応じて識別することは、複数のPIDコードを含むルックアップテーブルを調べることを含む。
【0026】
いくつかの実施態様において、前記PIDコードは、車両のオドメータの読み取り値、オイル寿命、タイヤ空気圧、シートベルト状態、燃料レベル、エアバッグ状態、変速機ギアの位置、ブレーキ状態、車両速度及びエンジン速度のうちの少なくとも1つに対応する。
【0027】
特定の実施態様において、前記PIDコードを前記総称的な要求の受信に応じて識別することは、前記総称的な要求内の標準化された用語のリストを解釈することと、標準化された用語の前記リスト内の標準化された用語を、複数のPIDコードから選択されたPIDコードにマッピングすることと、を含む。
【0028】
ある実施態様において、前記標準化された用語を、複数のPIDコードから選択されたPIDコードにマッピングすることは、前記総称的な要求を文字列検索アルゴリズムで分析することを含む。
【0029】
いくつかの実施態様において、前記標準化された用語を、複数のPIDコードから選択されたPIDコードにマッピングすることは、前記総称的な要求をパターン認識アルゴリズムで分析することを含む。
【0030】
特定の実施態様において、前記方法は、前記VECファイルを1つ以上の記憶装置に格納することを含む。
【0031】
ある実施態様において、前記VECファイルは第1VECファイルであり、1つ以上の記憶装置に格納された前記第1VECファイルを前記第1VECファイルとは別個の第2VECファイルで置き換えることを更に含む。
【0032】
いくつかの実施態様において、前記1つ以上の記憶装置に格納された前記第1VECファイルを前記第2VECファイルで置き換えることは、前記VINの少なくとも1つの変更の検出に応じて行われる。
【0033】
特定の実施形態が、車両診断データを取得する方法を提供する。前記方法は、車両診断システムの電気コネクタに接続された車両の車両識別番号(VIN)を求めることを含む。前記方法は、前記VINを含む要求を、前記車両診断システムからリモートサーバシステムへ送信させることを含む。前記方法は、少なくとも部分的に前記VINに基づいて生成された車両電子的構成(VEC)ファイルを、前記車両診断システムにおいて、前記要求の送信に応じて受信することを含む。前記方法は、アクセスされるべき車両制御モジュールを、受信された、車両出力制御コマンドの総称的な要求に基づいて、前記VECファイルによって識別することを含む。
【0034】
特定の実施態様において、前記方法は、前記車両制御モジュールにアクセスして、前記車両出力制御コマンドを起動させることを含む。
【0035】
ある実施態様において、前記方法は、前記車両出力制御コマンドの完了に応じて、少なくとも1つの車両パラメータの値を取得することを含む。
【0036】
いくつかの実施態様において、前記方法は、前記車両制御モジュールにアクセスするのに応じて、前記車両制御モジュールから取得された未処理データのバイトを格納することを含む。
【0037】
特定の実施形態が、1つ以上のコンピュータによって実行されるときに、前記1つ以上のコンピュータに動作を行わせる命令が格納された1つ以上のコンピュータ読み取り可能な記憶装置を提供する。前記動作は、車両の車両識別番号(VIN)を求めることを含む。前記動作は、前記VINを含む要求を、車両診断システムからリモートサーバシステムへ送信させることを含む。前記動作は、少なくとも部分的に前記VINに基づいて生成された車両電子的構成(VEC)ファイルを、前記車両診断システムにおいて、前記要求の送信に応じて受信することを含む。前記動作は、パラメータ識別(PID)コードを、前記VECファイルによって、車両動作データの総称的な要求の受信に応じて識別することを含む。前記総称的な要求は、前記1つ以上のコンピュータ読み取り可能な記憶装置に存在するパートナーアプリケーション又はホストアプリケーションによって生成され得る。前記動作は、識別された前記PIDコードに基づいて、アクセスされるべき車両制御モジュールを決定することを含む。前記動作は、識別された前記PIDコードに基づいて、前記車両制御モジュールから前記車両動作データを取得することを含む。
【0038】
前述の概念と以下により詳細に述べられる更なる概念(そのような概念は互いに相反する)との全ての組合せは、ここに開示された発明の主題の部分として予期されると理解されるべきである。特に、この開示の最後に現れる権利請求された主題の全ての組合せは、ここに開示される発明の主題の部分であるとして予期される。ここに明示的に用いられた用語であって参照により組み込まれるあらゆる開示にも現れ得るものには、ここに開示された特定の概念と最も一致する意味が与えられるべきである。
【図面の簡単な説明】
【0039】
図面は、主に説明のためのものであり、ここに説明される発明の主題の範囲を制限することは意図されていない。図面は、必ずしも一定の率で縮小されてはいない。いくつかの例において、ここに開示された発明の主題のさまざまな局面は、異なる特徴の理解を助けるために、図面において誇張され又は拡大されて示され得る。図面においては、類似する参照符号は概して類似する特徴(例えば、機能的に似ている及び/又は構造的に似ている要素)を参照する。
【
図1A】
図1Aは、車両診断システムのシステムアーキテクチャの概略図を示す。
【
図1B】
図1Bは、車両診断システムのホスト装置のハウジング構造を示す。
【
図2A】
図2Aは、車両診断システムの動作を示すシステム図である。
【
図2B】
図2Bは、車両診断システムの動作を示すシステム図である。
【
図3A】
図3Aは、パートナーサーバがVECファイルでアップデートされる、サーバのアップデート中間期におけるシステムアーキテクチャを示す。
【
図3B】
図3Bは、パートナーサーバがVECファイルでアップデートされる、サーバのアップデート中間期におけるシステムアーキテクチャを示す。
【
図4】
図4は、車両診断システムのシステムアーキテクチャを示す。
【
図5A】
図5Aは、インストール中間期における
図4のシステムアーキテクチャを示す。
【
図5B】
図5Bは、インストール中間期における
図4のシステムアーキテクチャを示す。
【
図5C】
図5Cは、インストール中間期における
図4のシステムアーキテクチャを示す。
【
図6】
図6は、
図4の車両診断システムによって使用するためのコード及び説明をマッピングするPIDルックアップテーブルを示す。
【
図7A】
図7Aは、装置のアップデート中間期における
図4のシステムアーキテクチャを示す。
【
図7B】
図7Bは、装置のアップデート中間期における
図4のシステムアーキテクチャを示す。
【
図8】
図8は、車両情報の要求のために動作する車両診断システムのシステムアーキテクチャを示す。
【0040】
ここに開示された本発明の主題の特徴及び有利な点は、図面と組み合わせたときに以下の詳細な説明からより明らかになる。
【発明を実施するための形態】
【0041】
診断状態情報の遠隔取得、及び/又は車両における出力制御の遠隔実施のための、発明のシステム、方法及び構成要素に関する種々の概念、並びにこれらの例示的な実施形態のより詳細な説明が以下に続く。
【0042】
図1Aは、車両診断システムのシステムアーキテクチャの概略図を示す。車両診断システム100は、人が車両101の種々の構成要素のシステム状態を遠隔から診断することを可能にするために配備され得る。遠隔診断は、ここで更に詳細に説明されるように、システム状態の表示又は値、及び/又は制御コマンドを含み得る。個々の実施形態において、ホスト装置102は、例えば車両の車上診断(OBD:on-board diagnostic)ポートを経由して、車両101に物理的に接続されている。OBDポートによって、ホスト装置102が車両の1つ以上の車両制御ユニットに通信可能に結合されることが可能になる。ホスト装置102は、1つ以上のオペレーティングシステム(例えばリナックス)及び1つ以上のアプリケーション103を実行することができる。ホスト装置102は、それにナノカーネルアプリケーション104をインストールすることができる。ナノカーネルアプリケーション104は、ホスト装置102の記憶装置内に組み込まれて常駐する。ナノカーネルアプリケーション104は、OSとパートナーアプリケーション103とを結びつけるように構成される。ホスト装置102が車両101に接続されるとき、ナノカーネルアプリケーション104は、ホスト装置102が車両からある情報を検索及び発見することを可能にする。車両101から情報を検索及び発見する能力は、ホスト装置が接続されている特定の車両101についての情報を最初に取得するとすぐに、予測される。ホスト装置102を経由して車両101から取得された情報は、ホスト装置102上の1つ以上の記憶装置に渡され得る。情報は、車両101から離れた1つ以上のクラウドベースのシステム105、例えばインターネット網に、送信され得る。クラウドベースのシステム105は、ナノカーネルウェブサーバ106を含み、顧客データベース107を含み得る。クラウドベースのシステム105は、互いに通信可能に結合された複数のサーバを含み得る。車両からの情報は、車両101の特定の機能の診断、及び/又は車両101のある種の機能を変更又は制御するために使用され得る。ここで、診断及び制御は、特定の車両101について規定されている。ここにより詳細に説明されているように、ナノカーネルウェブサーバ106は、ホスト装置102に、ホスト装置が車両101から特定の情報を取得することを可能にする情報を提供し得る。複数の車両101からの情報は、クラウドベースのシステム105内の顧客データベース107に取り入れられ得る。
【0043】
いくつかの実施態様において、ホスト装置102によって車両101から取得された情報は、ナノカーネルアプリケーション104によって取得されて、ホスト装置102から、1つ以上のクラウドベースのシステム105又はホスト装置102に常駐する顧客アプリケーションに送信された、未処理データのバイトを含み得る。データのバイトは、パラメータ識別(PID)コード、PIDコードの値、及び/又は故障診断コード(DTC)を含み得る。車載診断PIDコードは、車両からのデータを要求するために使用され、診断ツールとして使用される。ホスト装置102上のナノカーネルアプリケーション104によって取得された未処理データは、1つ以上のクラウドベースのシステム105に送信され、ナノカーネルアプリケーション104によって取得された車両101についての車両情報に基づいて、マスターウェブカーネル106によって処理され得る。したがって、ナノカーネルアプリケーション104は更なる情報、及び未処理データの処理を促進するより完全な診断データベースを使用しないので、ナノカーネルアプリケーション104は、小記憶容量という要求を満たし得る。
【0044】
図1Bは、車両診断システムのホスト装置のハウジング構造を示す。ハウジング構造108a~108dのそれぞれは、ホスト装置102を車両101内のポートに接続するための電気コネクタ109a~109dを含む。ある実施形態において、電気コネクタ109a~109dは、OBD又はOBDIIコネクタを含む。電気コネクタは、ホスト装置102のハウジング構造(例えば108a~108d)内に配置されたエンジン制御ユニット(ECU)、1つ以上のコンピュータ、及び1つ以上の記憶装置のような、車両のさまざまな制御ユニット間の有線通信を容易にする。1つ以上の記憶装置は、1つ以上のコンピュータによって実行されるときに、コンピュータに、ここにより詳細に説明される車両診断システムの動作を行わせるように動作可能な格納された命令を含む。ハウジング構造108a~108dは、ホスト装置がコンピュータ又は他の装置にも接続されることを可能にする他の電気コネクタを含み得る。ハウジングは、1つ以上の状態表示灯も収容し得る。ハウジングは、ハウジング構造をOBDポートから容易に取り外しできるようにする窪み又は植込みを含み得る。ホスト装置102の小記憶容量という要求によって、ホスト装置を離れた所で使用すること(例えば車両の輸送中に)を促進するより小さく単体のフォームファクタにホスト装置を収容することが可能になる。
【0045】
図2A及び2Bは、車両診断システムの動作を示すシステム図である。特定の実施形態に従って、車両の始動時に、ホスト装置102が車両101に最初に接続されるとき、及び/又は車両から接続が断たれてその後再接続された後(すなわち、ホスト装置102は、外されると、そのプログラミングが失われるように構成され得(例えば、VECファイルが自動的に消去され得る)、再びプログラムが書き込まれなければならない)、ホスト装置102は、発見プロセスを開始する(例えばVECファイルが存在しないことに応じて、例えばパートナーアプリケーション又はホストアプリケーション103によって開始される)。この発見プロセスによって、ホスト装置は、情報を第1サーバシステム、サービスプロバイダ又はパートナーサーバ202に送信する。発見プロセス中にホスト装置102から第1サーバシステムに送信される情報は、車両101の車両識別番号(VIN)及びホスト装置102のデバイス識別番号を含み得る。特定の実施態様において、ナノカーネルアプリケーション104は、ホスト装置102に接続された車両101のVINがホスト装置102に保存された最後のVIN番号に対応するか否かを判定するために、車両の始動(イグニッション)の度にホスト装置102上でルーチンを実行し得る。もし、VINが異なり、パートナーアプリケーション103が診断情報を要求するなら、ナノカーネルアプリケーション104は、車両101は異なる車両101又は新たな車両であるということをホスト装置102に通知するために返答し、発見プロセスが行われる必要があるということをホスト装置102に通知する。このルーチンは、ホスト装置102が、まだ診断プログラムが構築されていない車両で診断プログラムを実行しようとすることを防止する。もしVINが一致するなら、ホスト装置102は、遠隔診断の準備ができている。準備完了状態は、1つ以上の光インジケータ(例えばLED状態灯)によってホスト装置102上に表示され得る。準備完了状態は、サービスプロバイダサーバ202にも伝達され得る。発見プロセスは、サービスプロバイダサーバ202に診断サーバシステム201と通信をさせ得る。特定の実施形態において、診断サーバシステム201はVATサーバを含む。診断サーバシステム201は、ナノカーネルウェブサーバを働かせ、それはマーレのテクプロシステム(Techpro system)のような、主車両診断システムである。ホスト装置102と直接通信するサービスプロバイダ(例えばホスト又はパートナー)サーバ202は、診断サーバシステム201にVIN番号を提供する。診断サーバシステム201は、VIN番号によって車両の構成を識別し、パートナーサーバ202にそのVINに使用されるべきVECファイルで応答する。識別された車両の構成は、ナノカーネルアプリケーション104用のバイナリファイル208を構築するために使用される。特定の実施形態において、バイナリファイル208は、100kb未満のメモリ(例えば64kb以下)しか占有しない。もし車両101がサポートされているなら、バイナリファイル208は、ホスト装置102にアップロードするためにナノカーネルウェブサーバ201からパートナーサーバ202に送信される。バイナリファイル208は、バイナリファイル(bin file)として構成されプロセス204-206によって作成される車両電子的構成(VEC)ファイルを含む。VECファイルは、複数のパラメータ識別(PID)コードのための文字列及びロジック(論理)を含む。いくつかの実施態様において、VECファイルは、その車両上に存在する可能性のある全てのモジュール(例えば、車体制御モジュール、パワートレイン制御モジュール等)のための情報を含む。情報は、システムのモジュールID、モジュールプロトコル又は特別構成(例えば、VECファイル内のプロトコルをどのように解釈するかについての情報、特定のバススピード、ビットタイミング、ISO 14229、ISO 15765、キーワードプロトコル、OBDII等)、物理/トランスポート層、CAN、UART、シリアルプロトコル、データアドレス、アドレスにおけるデータ要求、エンジンRPM及び/又は車両速度のアドレス、データの変換及びスケーリングファクター(例えば、華氏又は摂氏における温度)、使用すべき適格なモジュールを選択するロジック、ECUのID、及び全ての可能性がある事項-正しいデータを選択するロジック、を含み得る。診断サーバシステム201は、車両のPIDのために識別されたロジックに基づいて、及び関連するプロセスに基づいて作成されたナノカーネルバイナリファイル208を取得するために提供されたVIN番号を使用する。バイナリファイル208は、マスター車両診断サーバシステム201からサービスプロバイダサーバ202へ、その後ホスト装置102へ送信される。バイナリファイル208は、特定の車両及び特定の装置に基づいてホスト装置102によってさまざまな車両制御ユニットにアクセスするためのスクリプトを提供する。バイナリファイル208は、ナノカーネルアプリケーション104によって処理され、OS及びホスト装置102上で動作している1つ以上のパートナーアプリケーション103によって実行される。バイナリファイル208は、デバイスファームウェア103から受信された特定の要求(例えばサービスプロバイダサーバ202で生成される)を、ホスト装置102がバイナリファイル208から取得された情報に基づいてアクセスできるコマンド又は情報要求にマッピングするために、ホスト装置102によって、特にナノカーネルアプリケーション104によって、使用される。例えば、サービスプロバイダサーバ202から離れており、車両101/ホスト装置102からも離れたところにいるユーザは、スマートフォン又はタブレットのような携帯電子装置によってサーバ202にアクセスすることができ、ナノカーネルアプリケーション104が特定の車両動作データ又は値の要求にマッピング可能な総称的な要求(generic request)において、エンジン速度のような情報を要求することができる。サービスプロバイダサーバ202は、要求をホスト装置102に送信し、それはデバイスファームウェア103によってナノカーネルアプリケーション104に中継され、バイナリファイル208を用いてナノカーネルアプリケーション104によって特定のPIDの要求にマッピングされる。それに応じて、ナノカーネルアプリケーション104は、その特定のPIDに対応するデータを取得するために、ホスト装置102を車両の適切な制御ユニットにアクセスさせる。取得された情報は、ホスト装置102から、サービスプロバイダサーバシステム202及びユーザに送信され得る。
【0046】
図2Bに示されたシステムは、
図2Aと同じ情報を取得し得るが、パートナーサーバを経由して2次的に情報を取得するのではなく、パートナーサーバを経由して2次的にホスト装置102のために取得されたバイナリファイルを送るのではなく、診断サーバがホスト装置102と直接通信するという点で、異なっている。ホスト装置102内の1つ以上のコンピュータ又はプロセッサは、サーバ、他の演算装置、携帯電話、タブレット、ラップトップコンピュータのような1つ以上のリモート電子装置と通信するための無線リンクを含み得る。無線リンクは、BLUETOOTHクラス、Wi-Fi、BLEとしても知られるBluetooth-low-energy、802.15.4、ワイマックス(WiMAX: worldwide interoperability for microwave access)、赤外チャネル、又は衛星バンドを含み得る。無線リンクは、1G、2G、3G、4G、又は5Gとして適格な規格を含むがこれらには限られない、携帯装置間で通信をするために使用されるいかなる携帯電話ネットワーク(cellular network)規格をも含み得る。ネットワーク規格は、国際電気通信連合によって管理される規格書のような、規格書又は規格を満たすことによって、携帯通信規格の1つ以上の世代として適格であり得る。例えば3G規格は、IMT-2000(international mobile telecommunications-2000)規格に対応し得るし、4G規格はIMT-Advanced(international mobile telecommunications advanced)規格に対応し得る。携帯電話ネットワーク規格の例には、AMPS、GSM、GPRS、UMTS、LTE、LTE Advanced、モバイルWiMAX,及びWiMAX-Advancedが含まれる。携帯電話ネットワーク規格は、さまざまなチャネルアクセス方法、例えばFDMA、TDMA、CDMA、又はSDMAを使用し得る。いくつかの実施形態においては、異なるタイプのデータが、異なるリンク及び規格によって送信され得る。他の実施形態においては、同じタイプのデータが、異なるリンク及び規格によって送信され得る。
【0047】
図3A~3Bは、サーバシステムがVECファイルでアップデートされる、サーバのアップデート中間期におけるシステムアーキテクチャを示す。ある実施態様において、サーバシステム202内のデータは、ホスト装置からの要求とは独立してアップデートされ得る。例えば、もしマスターサーバ201が、ホスト装置がアップデートについて問い合わせる前にVECファイルのアップデート版を有しているなら、診断サーバシステム201は、以前にVECファイルを要求していたVIN番号を有する車両のために、アップデートされたファイルをマスターサーバに押し出し得る。したがって、
図3Aに示されているように、サービスプロバイダサーバ202は、特定のVECファイルが最後にアップデートされた日付及び時間のような情報を提供して、マスターサーバ201にアップデート801を定期的に問合わせし得る。診断サーバシステム201は、アップデートが利用できないことを802において示すことによってこれが最新版であるということ、又は、最後のアップデートの日付がVECファイルの最新の版に対応しないなら、ナノカーネルウェブサーバ/診断サーバシステム201がアップデートされたVECファイルを803において提供できるということ、のいずれかを確認し得る。
図3Bに示されているように、アップデートされたファイルが利用可能であるなら、そのファイルが生成され、ファイルルックアップサービス302がアップデートされたファイル804でアップデートされ、ホスト装置102が、アップデートされたファイルがないかサービスプロバイダサーバ202を一度調べれば、ホスト装置102は以後アクセスし得る。
【0048】
図4は、車両診断システムのシステムアーキテクチャを示す。
図4に図示されているように、サービスプロバイダサーバ202は、マスター車両診断サーバ201及びホスト装置102と通信するためのメッセージングサービス301を含む。サービスプロバイダサーバ202は、ホスト装置102のためにファイルを取得するためのファイルルックアップサービス302も含む。
図4で説明されているように、ホスト装置102はサービスプロバイダと関連付けられたファームウェア103を含み、それはホスト装置上のOSにて作動するアプリケーションとして動作する。このアプリケーションは、ナノカーネルアプリケーション104のファームウェア303と関係するためのインタフェース305を含む。ナノカーネルアプリケーション104は、ファームウェアファイル303とバイナリファイル304とを含む。バイナリファイル304は、
図2A及び2Bで説明された発見要求に応じて、アップデートされ及び/又は装置102へ初めて送られる。ファームウェアファイル303は、バイナリファイル304を処理して特定の情報を取得する。例えば、要求に応じて、ファームウェアファイル303は特定の実行ルーチンを呼び出す。実行ルーチンは、バイナリファイル304に含まれるパラメータ又はコマンドのリストにアクセスすることを要求し得る。アプリケーション103は、マスターファームウェアインタフェースを経由して特定の情報を取得し、その情報をサービスプロバイダサーバ202に送信する。同様に、起動時に、サービスプロバイダサーバ202からのアプリケーション103によって、バイナリファイル304が取得又はアップデートされる。
【0049】
図5A~5Cは、インストール中間期における
図4のシステムアーキテクチャを示す。起動時及び/又はホスト装置102が切断されているときはいつでも、ナノカーネルアプリケーション104及びパートナーアプリケーション103のうちの一方は、VIN番号を調べて、車両にインストールされるのはこれが初めてであるのか、又は、装置が新たな車両に既にインストールされているのかを判定する。もし利用できるバイナリファイル304が存在しないなら、又は、もしナノカーネルアプリケーション104が不整合(例えばホスト装置102が新たな車両に接続されているので)を検出するなら、ナノカーネルアプリケーション104は、ファームウェアに、現在の車両のVIN番号をサービスプロバイダサーバ202へ送信させて、サービスプロバイダサーバ202からのVEC IDファイルを要求する。ある実施形態においては、例えば、VIN番号が既にアップロードされており、VEC IDファイルへのアップデートデータが、既に取得されているが、ホスト装置102にはまだアップロードされていない場合には、VEC IDファイルは、サービスプロバイダサーバに既に格納されているかもしれない。
図5Bに示されているように、ホスト又はパートナーサーバ202は、VINを含む要求502によって、ナノカーネルウェブサーバ201からのVEC IDを要求する。もしVINが支持されているなら、VEC IDを含む返答504がパートナーサーバ202に送られる。次にパートナーサーバ202は、そのファイルルックアップサービス302を使用して、パートナーサーバ202に格納されているVECバイナリファイルの最新版を取得する。次にVECバイナリファイルは、ホスト装置102に送信され、ナノカーネルアプリケーション303及びVECバイナリファイル304のために指定されているメモリ空間104に書き込まれる。
【0050】
図6は、
図4の車両診断システムによって使用するためのコード及び説明をマッピングするPIDルックアップテーブルを示す。ある実施形態において、サービスプロバイダサーバ202からダウンロードされマスターサーバ201から生成されたバイナリファイルは、PIDルックアップテーブル600を含む。PIDルックアップテーブル600は、バイナリファイルの一部分としてフォーマットされ得、情報の要求に応じてナノカーネルアプリケーション104を経由してアクセスされ得る。特に、ナノカーネルアプリケーション104は、総称的な要求を説明欄603内の特定の説明にマッピングし得る。これは、文字列検索アルゴリズム(類似文字列検索(approximate string searching))及びパターン認識アルゴリズムのような、総称的な要求のテキストを解析する1つ以上のアルゴリズムによってマッピングされ得る。ここで、アルゴリズムは、要求の中の単語を最も近い説明文字列に対応させる。いったん説明が識別されると、それはPID名及び/又はPID IDに対応する。ナノカーネルアプリケーション104は、車両101の1つ以上の制御モジュールにアクセスして、識別されたPID名及びPID ID用の値を有する適切な制御モジュールからデータを取得する。車両の1つ以上の制御モジュールから取得された値は、格納され、サービスプロバイダサーバ202へ、又はホスト装置102に位置する他のアプリケーションへ送信される。取得された値は、車両のオドメータの読み取り値、オイル寿命、タイヤ空気圧、シートベルト状態、燃料レベル、エアバッグ状態、変速機ギアの位置、ブレーキ状態、車両速度及びエンジン速度のような、車両制御モジュールからの車両動作データに対応する。車両動作データは、例えばエンジン回転速度、すなわちRPMを指定し要求する総称的な要求において提供され得る。ある実施態様において、値は解釈される必要がある。値を解釈することには、マスター車両診断サーバ201にアクセスすること、又はマスター車両診断サーバ201からサービスプロバイダサーバ202に送信されたファイルにアクセスすることが含まれ得る。特定のPIDコードを有しない他の車両情報604は、ルックアップテーブル、又はバイナリファイルに含まれ得る2つ以上のルックアップテーブルに統合され得る。例えば、他の情報は、警音器を鳴らす、ライトを点灯する、又は他の車両の機能を実行するといった要求のためにマッピングされ得るが、それらの機能はPIDコードを有しない。
【0051】
図7A~7Bは、装置のアップデート中間期における
図4のシステムアーキテクチャを示す。
図7Aに示されているように、ホスト装置102は、例えば車両が始動される度に、バイナリファイル304のアップデート701を要求し得る。
図7Bに示されているように、サービスプロバイダサーバ202は、マスターサーバ201にアップデートを問合せし得る。マスターサーバは、アップデートがないという応答704で、又は、要求に指定されたVIN番号のための最新のアップデート要求がパートナーサーバ202から受信されて以降、取得されたあらゆるアップデートされたVECファイルを含む返答703で、応答する。もし新たなVECファイルが利用可能であるなら、そのVECファイルは、ホスト装置102上の1つ以上の記憶装置に格納される。
【0052】
図8は、いったんナノカーネルアプリケーション104が車両のために適切に構成されると、診断要求のような、車両情報の要求を取得するために動作する車両診断システムのシステムアーキテクチャを示す。ある実施態様においては、装置102が正しく識別され、ホスト装置102上で車両データが発見されアップデートされた後、ユーザは車両101内のシートベルトの状態のような情報をリモートで要求し得る。ある実施形態においては、エンジン速度がある閾値より大きいと判定するのと並行して、又はそのように判定するのに応じて、シートベルトの状態が要求され得る。シートベルト要求は、サービスプロバイダサーバ202から、ホスト装置上で動作しているサービスプロバイダファームウェア又はアプリケーション103へ送信される。アプリケーション103は、ホスト装置102にインストールされ、ホスト装置102でアップデートされたナノカーネルアプリケーション104へコマンドを送信する。ナノカーネルアプリケーション104は、例えば車両から要求するのに適切なPIDコマンド及び/又はIDを求めることによって、その要求を解釈する。適切なPIDコマンドは、例えば総称的な要求内の1つ以上の用語及び/又は文字をPIDテーブル(
図7に示されているような)内の適切な値にマッピングすることによって求められる。適切なPIDコマンドは、電気コネクタを経由してホスト装置102に接続されたインタフェース401を経由して、車両101から、ナノカーネルアプリケーション104によって、要求される。インタフェース401は、1つ以上の車両のバス又は制御ユニットにアクセスするために使用され得る。PIDコマンドは、車両通信インタフェース401を経由して1つ以上の車両制御ユニットからデータを取得し、サービスプロバイダアプリケーション103を経由してサービスプロバイダサーバ202へ送信するために、そのデータをナノカーネルアプリケーション104へ渡す。
【0053】
本発明の主題の実施態様及びこの明細書に説明された動作は、この明細書に開示された構成、及びそれらの構成上の等価物、又はそれらのうちの1つ以上の組合せを含む、デジタル電子回路によって、又は、コンピュータソフトウェア、ファームウェア、若しくはハードウェアによって、実現され得る。この明細書に説明された主題の実施態様は、データ処理装置による実行のために、又はデータ処理装置の動作を制御するために、コンピュータ記憶媒体上に格納されたされた1つ以上のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つ以上のモジュールとして実現され得る。
【0054】
コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダム若しくはシリアルアクセスのメモリアレイ若しくは装置、若しくはこれらの1つ以上の組合せであり得、又はこれらの中に含まれ得る。更に、コンピュータ記憶媒体は伝搬された信号ではないのに対して、コンピュータ記憶媒体は、人工的に生成された伝搬された信号においてエンコードされたコンピュータプログラム命令の発信源又は送信先であり得る。コンピュータ記憶媒体は、また、1つ以上の独立した物理的な構成要素又は媒体(例えば、複数のCD、ディスク、又は他の記憶装置)であり得るし、又はこれらに含まれ得る。
【0055】
この明細書に説明された動作は、1つ以上のコンピュータ読み取り可能な記憶装置に格納されたデータ、又は他の発信源から受信されたデータに対して、データ処理装置によって実行される動作として実現され得る。
【0056】
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、システム・オン・チップ、複数の上記のもの、又は上記のものの組合せを含む、データを処理するためのあらゆる種類の機器、装置及び機械を包含する。機器は、特殊用途の論理回路、例えばFPGA(field programmable gate array)又はASIC(application specific integrated circuit)を含み得る。機器は、ハードウェアに加えて、当該コンピュータプログラムのための実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームのランタイム環境、バーチャルマシン、又はこれらの組合せを構成するコード、をも含み得る。機器及び実行環境は、ウェブサービス、分散処理、グリッドコンピューティング・インフラストラクチャのような、さまざまな異なる演算モデルインフラストラクチャを実現し得る。
【0057】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイルされる又は解釈実行される言語、宣言形又は手続き形言語を含む、どのような形式のプログラミング言語でも記述され得る。コンピュータプログラムは、スタンドアローンプログラムとして、又はモジュール、コンポーネント、サブルーチン、オブジェクト、若しくは演算環境における使用に適して他のユニットとしての形式を含む、いかなる形式でも配布され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応してもよいが、対応する必要はない。プログラムは、当該プログラム専用の単一ファイルにおいて、又は複数の連係したファイル(例えば、1つ以上の、モジュール、サブプログラム、又はコードの部分)において、他のプログラム又はデータ(例えば、マークアップ言語ドキュメントに格納された1つ以上のスクリプト)を収容するファイルの一部分に格納され得る。コンピュータプログラムは、1つのコンピュータ上で、又は1つの場所に配置され若しくは複数の場所に分散していて、通信ネットワークによって相互に接続された複数のコンピュータ上で実行されるように配布され得る。
【0058】
この明細書に説明されたプロセス及び論理流れは、入力データに操作をし出力を生成することによって動作を行うために1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって、実行され得る。プロセス及び論理流れは、特殊用途の論理回路、例えばFPGA(field programmable gate array)又はASIC(application specific integrated circuit)によっても実行され得、機器は特殊用途の論理回路としても実現され得る。
【0059】
コンピュータプログラムの実行に適したプロセッサには、例として、汎用及び特殊用途の両方のマイクロプロセッサ、及びいかなる種類のデジタルコンピュータのいかなる1つ以上のプロセッサをも含む。一般に、プロセッサは、読出し専用メモリ、ランダムアクセスメモリ、又はその両方から、命令及びデータを受け取る。コンピュータに不可欠な要素は、命令に従って動作を行うプロセッサ、並びに命令及びデータを格納するための1つ以上のメモリ装置である。一般的に、コンピュータは、データを格納するための1つ以上の大容量記憶装置、例えば磁気ディスク、光磁気ディスク、又は光ディスクをも含み、又はこれらからデータを受信、これらにデータを送信、若しくはその両方を行うために効果的に結合される。しかし、コンピュータはそのような装置を有する必要はない。しかも、コンピュータは、他の装置、ほんの少し挙げると例えば、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯オーディオ又はビデオプレーヤー、ゲームコンソール、グローバルポジショニングシステム(GPS)受信機、又はポータブル記憶装置(例えば、USB(universal serial bus)フラッシュドライブ)に、組み込まれ得る。コンピュータプログラム命令及びデータを格納するのに適した装置には、例として、例えばEPROM、EEPROM、及びフラッシュメモリ装置といった半導体メモリ装置、例えば内部ハードディスク又はリムーバルディスクといった磁気ディスク、光磁気ディスク、並びにCD-ROM及びDVD-ROMディスクを含む、不揮発性のメモリ、媒体、及びメモリ装置の全ての形式が含まれる。プロセッサ及びメモリは、特殊用途の論理回路によって補足され、又は特殊用途の論理回路に組み込まれ得る。
【0060】
ユーザと対話するために、この明細書に説明された主題の実施態様は、ユーザに情報を表示するための表示装置、例えばCRT(cathode ray tube)又はLCD(liquid crystal display)モニタ、キーボード、及びユーザがコンピュータに入力をするための指示装置、例えばマウス又はトラックボール、を有するコンピュータ上で実現され得る。ユーザと対話するために他の種類の装置もまた使用され得る。例えば、ユーザに与えられるフィードバックは、いかなる形式の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、触覚フィードバックでもあり得る。ユーザからの入力は、聴覚、言語、又は触覚を含む、いかなる形式でも受け取られ得る。加えて、コンピュータは、ユーザによって使用される装置へ文書を送り、その装置から文書を受け取ることによって、例えば、ユーザのユーザ装置上のウェブブラウザに、そのウェブブラウザから受け取った要求に応じてウェブページを送ることによって、ユーザと対話し得る。
【0061】
この明細書に説明された主題の実施態様は、バックエンドコンポーネントを含む演算システム、例えばデータサーバとして、ミドルウェアコンポーネントを含む演算システム、例えばアプリケーションサーバとして、フロントエンドコンポーネントを含む演算システム、例えばグラフィカルディスプレイ若しくはウェブブラウザであって、それを通してユーザがこの明細書に説明された主題の実施態様と対話できる、グラフィカルディスプレイ若しくはウェブブラウザとして、又は1つ以上のそのようなバックエンド、ミドルウェア、若しくはフロントエンドのコンポーネントのあらゆる組合せにおいて、実現され得る。システムのコンポーネントは、デジタルデータ通信のいかなる形式又は媒体、例えば通信ネットワークによっても相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)及びワイドエリアネットワーク(「WAN」)、インターネットワーク(例えばインターネット)、並びにピアツーピアネットワーク(例えばその場限りの(ad hoc)ピアツーピアネットワーク)が含まれる。
【0062】
演算システムは、ユーザ及びサーバを含み得る。ユーザ及びサーバは、一般的に互いに離れており、典型的には通信ネットワークを通じて対話する。ユーザとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにユーザとサーバとの関係を有するコンピュータプログラムのおかげで生まれる。いくつかの実施態様においては、サーバはデータ(例えばHTMLページ)をユーザ装置に(例えばユーザ装置と対話するユーザにデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)送信する。ユーザ装置において生成されたデータ(例えばユーザ対話の結果)は、サーバにおいてユーザ装置から受け取られ得る。
【0063】
この明細書は多くの具体的な実施態様の詳細を含むが、これらは、いかなる発明の、又は権利を請求され得るものの範囲に対する制限として解釈されるべきではなく、むしろ特定の発明の特定の実施態様に特有の特徴の説明として解釈されるべきである。別個の文脈においてこの明細書に説明されたある特徴は、単一の実施態様において組み合せても実現され得る。反対に、単一の実施態様の文脈において説明されたさまざまな特徴は、別々に複数の実施態様においても、又はいかなる適切なサブコンビネーションにおいても、実現され得る。更に、特徴はある組合せにおいて働くとして先に説明されているかもしれず、そのように当初は権利を請求しているかもしれないが、権利請求された組合せからの1つ以上の特徴は、場合によってはその組合せから削除されることが可能であり、権利請求された組合せは、サブコンビネーション又はサブコンビネーションの変形物に向けられ得る。
【0064】
この開示の目的で、「結合された」という用語は、2つの部材を直接又は間接的に互いにつなぎ合わせることを意味する。そのようなつなぎ合わせることは、本質的に固定又は可動のものであり得る。そのようなつなぎ合わせることは、単一のまとまった物体として互いに一体化して形成された、2つの部材若しくは2つの部材及びあらゆる別途の中間部材で、又は、互いに取り付けられた、2つの部材若しくは2つの部材及びあらゆる別途の中間部材で、達成され得る。そのようなつなぎ合わせることは、本質的に永続的なもの、又は、本質的に脱着可能若しくは取り外し可能なものであり得る。
【0065】
さまざまな部材の向きは、他の例示的な実施態様によって異なり得るということ、及び、そのような変形は本開示によって含まれることが意図されているということに、注意しなければならない。開示された実施態様の特徴は、他の開示された実施態様に組み込まれ得るということが分かる。
【0066】
さまざまな発明の実施態様がここに説明され、図示されたが、当業者は、その機能を実行する及び/又はその結果を取得するための、さまざまな他の手段及び/又は構成、及び/又はここに説明された1つ以上の有利な点を、容易に想像し、そのような変形及び/又は変更は、ここに説明された発明の実施態様の範囲内にあると見なされる。より一般的には、当業者は、ここに説明された全てのパラメータ、寸法、材料及び構成は、例示的なものであることが意図されていること、実際のパラメータ、寸法、材料及び/又は構成は、本発明の教示が使用される特定の応用に依存するということを、容易に理解する。当業者は、ここに説明された発明の特定の実施態様の多くの等価物を、日常の実験程度のものを使用して、理解し、又は確認することができる。したがって、前述の実施態様は例としてのみ提示されているということ、並びに、添付の特許請求の範囲及びその等価物の範囲内で、発明の実施態様が、特に説明され権利が請求されたものとは異なる方法で実践され得るということが、理解される。本開示の発明の実施態様は、ここに説明された個々の特徴、システム、物品、材料、キット、及び/又は方法のそれぞれに向けられている。加えて、そのような特徴、システム、物品、材料、キット、及び/又は方法の2つ以上のもののいかなる組合せも、相互に一致せず、本開示の発明の範囲内に含まれる。
【0067】
ここに説明された技術は、方法として具体化され得るが、そのうちの少なくとも1つの例が提供されている。方法の部分として行われる行為は、いかなる適切な順序であってもよい。したがって、図示されたのとは異なる順序で行為が行われる実施態様が構築されてもよく、実施態様は、図示された実施態様において順次行われる行為として示されていても、いくつかの行為を同時に行うことを含んでもよい。
【0068】
特許請求の範囲は、その効果が記載されていなければ、説明された順序又は要素に限定されると解釈されてはならない。形式及び詳細におけるさまざまな変更が、添付の特許請求の範囲の精神及び範囲から離れることなく、当業者によって行われ得る、ということが理解されるべきである。以下の特許請求の範囲及びその等価物の精神及び範囲に入る全ての実施態様が、権利請求される。