ビークルとリモートアプリケーションサーバとの間で通信する方法であって、前記方法は:コンピュータシステムで、ビークルから送信されるアプリケーションメッセージを受信することと、前記コンピュータシステムによって、前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに転送すべきかどうかを判断することと、前記アプリケーションメッセージを転送すべきではない場合に、前記アプリケーションメッセージを、前記コンピュータシステムによって実行されるローカルソフトウェアアプリケーションに宛先を変更して送信することと、を含む、方法。前記ローカルソフトウェアアプリケーションは、前記アプリケーションメッセージに含まれるデータを保存し、前記方法は更に、前記アプリケーションメッセージを、宛先を変更して送信した後に:前記リモートアプリケーションサーバとのアップリンク接続を確立することと、前記保存データを、前記リモートアプリケーションサーバによって供給される前記リモートソフトウェアアプリケーションと同期させることと、を含む、請求項1に記載の方法。更に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきであると判断される場合に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送することを含む、請求項1に記載の方法。アプリケーションメッセージを受信することは、前記ビークルから送信されるアプリケーションメッセージを、第1通信規格を利用して受信することを含み、そして前記アプリケーションメッセージを転送することは、前記アプリケーションメッセージを、第2通信規格を利用して転送することを含む、請求項3に記載の方法。前記アプリケーションメッセージは、複数のアプリケーションメッセージの第1アプリケーションメッセージであり、前記方法は、優先度を前記第1アプリケーションメッセージに割り当てることと、前記第1アプリケーションメッセージを、前記複数のアプリケーションメッセージの第2アプリケーションメッセージを転送する前に、前記第1アプリケーションメッセージに割り当てられる前記優先度、及び前記第2アプリケーションメッセージに割り当てられる優先度に少なくとも部分的に基づいて転送することと、更にを含む、請求項3に記載の方法。前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきかどうかを判断することは、アップリンク接続を前記コンピュータシステムと前記リモートアプリケーションサーバとの間で確立することができるかどうかを判断することを含む、請求項1に記載の方法。ビークルとリモートアプリケーションサーバとの間の通信に使用されるゲートウェイ装置であって、前記装置は:アプリケーションメッセージをビークルに搭載されるコンピュータシステムから受信するように構成されるビークル通信ユニットであって、前記アプリケーションメッセージが、リモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに対応する宛先に関連付けられる、前記ビークル通信ユニットと、前記ビークル通信ユニットに接続されるプロセッサユニットと、を備え、前記プロセッサユニットは:前記リモートソフトウェアアプリケーションに対応するローカルソフトウェアアプリケーションを実行し;前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきかどうかを判断し;そして前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記アプリケーションメッセージを前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようにプログラムされ、前記ローカルソフトウェアアプリケーションは前記コンピュータシステムと、前記リモートソフトウェアアプリケーションが前記コンピュータシステムと対話する形式と区別できない形式で対話する、ゲートウェイ装置。前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきである場合に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送するように構成されるワイドエリアネットワークWAN通信ユニットを更に備える、請求項7に記載のゲートウェイ装置。前記アプリケーションメッセージは、複数のアプリケーションメッセージの第1アプリケーションメッセージであり、そして前記WAN通信ユニットは、前記複数のアプリケーションメッセージの各アプリケーションメッセージを、前記アプリケーションメッセージに対応するリモートアプリケーションサーバに、前記対応するリモートアプリケーションサーバとのアップリンク接続を確立することができる場合に転送するように更に構成される、請求項8に記載のゲートウェイ装置。前記プロセッサユニットは、優先度を前記複数のアプリケーションメッセージの各アプリケーションメッセージに、前記アプリケーションメッセージに関連する宛先に基づいて割り当て、そして第1優先度が割り当てられる前記アプリケーションメッセージ群を、前記第1優先度よりも低い第2優先度が割り当てられる前記アプリケーションメッセージ群を転送する前に転送するように更にプログラムされる、請求項9に記載のゲートウェイ装置。記憶装置であって、前記アプリケーションメッセージが宛先を変更して送信されると、前記ローカルソフトウェアアプリケーションが、前記記憶装置内のデータを更新する、前記記憶装置と、ワイドエリアネットワークWAN通信ユニットと、を更に備え、前記WAN通信ユニットは:前記ローカルソフトウェアアプリケーションが前記データを更新した後に、前記リモートアプリケーションサーバとのアップリンク接続を確立し、そして前記更新データを前記リモートアプリケーションサーバに送信するように構成される、請求項7に記載のゲートウェイ装置。前記ローカルソフトウェアアプリケーションは、第1リモートソフトウェアアプリケーションに対応する第1ローカルソフトウェアアプリケーションであり、そして前記プロセッサユニットは、前記第1ローカルソフトウェアアプリケーションを第1仮想マシン内で実行し、第2リモートソフトウェアアプリケーションに対応する第2ローカルソフトウェアアプリケーションを第2仮想マシン内で実行し、アプリケーションメッセージ群を、前記第2リモートソフトウェアアプリケーションを供給する第2リモートアプリケーションサーバに転送すべきかどうかを判断し、アプリケーションメッセージ群を前記第2リモートアプリケーションサーバに転送すべきではない場合に、前記第2リモートアプリケーションサーバに対応する宛先に関連するアプリケーションメッセージ群を、前記第2ローカルソフトウェアアプリケーションに宛先を変更して送信するように更にプログラムされる、請求項7に記載のゲートウェイ装置。前記アプリケーションメッセージは、第1ビークルに搭載される第1コンピュータシステムから受信する第1アプリケーションメッセージであり、前記ビークル通信ユニットは、前記リモートアプリケーションサーバに対応する前記宛先に関連する第2アプリケーションメッセージを、第2ビークルに搭載される第2コンピュータシステムから受信するように更に構成され、そして前記プロセッサユニットは、前記第2アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記第2アプリケーションメッセージを前記ローカルソフトウェアアプリケーションに宛先を変更して送信するように更にプログラムされる、請求項7に記載のゲートウェイ装置。コンピュータ実行可能コンポーネント群を有する1つ以上のコンピュータ可読媒体であって、前記コンポーネント群は:ローカルソフトウェアアプリケーションコンポーネントであって、該ローカルソフトウェアアプリケーションコンポーネントが前記少なくとも1つのプロセッサユニットによって実行されると、前記ローカルソフトウェアアプリケーションコンポーネントによって、前記少なくとも1つのプロセッサユニットがローカルソフトウェアアプリケーションを実行するようになる、前記ローカルソフトウェアアプリケーションコンポーネントと、ビークル通信インターフェースコンポーネントであって、該ビークル通信インターフェースコンポーネントが少なくとも1つのプロセッサユニットによって実行されると、前記ビークル通信インターフェースコンポーネントによって、前記少なくとも1つのプロセッサユニットが、ビークルに搭載されるコンピュータシステムから送信されるアプリケーションメッセージを受信するようになる、前記ビークル通信インターフェースコンポーネントと、ルーティングコンポーネントであって、該ルーティングコンポーネントが少なくとも1つのプロセッサユニットによって実行されると、前記ルーティングコンポーネントによって、前記少なくとも1つのプロセッサユニットが:前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに転送すべきかどうかを判断し、そして前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記アプリケーションメッセージを、前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようになる、1つ以上のコンピュータ可読媒体。前記アプリケーションメッセージは、第1リモートソフトウェアアプリケーションに対応する第1アプリケーションメッセージであり、そして前記ルーティングコンポーネントによって、前記少なくとも1つのプロセッサユニットは、第2アプリケーションメッセージを、該第2アプリケーションメッセージに関連する第2リモートソフトウェアアプリケーションを供給する第2リモートアプリケーションサーバに転送するようになり、前記第2アプリケーションメッセージは、第1アプリケーションメッセージの後に受信され、そして前記コンピュータシステム実行可能コンポーネント群は更に、トラフィックシェーピングコンポーネントを備え、該トラフィックシェーピングコンポーネントが少なくとも1つのプロセッサユニットによって実行されると、前記トラフィックシェーピングコンポーネントによって、前記少なくとも1つのプロセッサユニットが:第1優先度を、前記第1リモートソフトウェアアプリケーションに関連付け、前記第1優先度よりも高い第2優先度を、前記第2リモートソフトウェアアプリケーションに関連付け、そして前記第1アプリケーションメッセージを転送する前に、前記第2アプリケーションメッセージを、前記第1優先度及び前記第2優先度に基づいて転送するようになる、請求項14に記載の1つ以上のコンピュータ可読媒体。記載される実施形態は、ビークルに搭載される1つ以上のコンピュータシステムと1つ以上のリモートアプリケーションサーバとの間の通信に関するものである。ビークルとして、これらにのみ限定されないが、航空機、水上輸送船舶、装輪車両、及び/又は装軌車両を挙げることができる。例示的な実施形態では、ゲートウェイ装置は、ビークルに搭載されるコンピュータシステム群に対応する無線アクセスポイントとして動作する。コンピュータシステム群から送信され、そしてリモートアプリケーションサーバ群を宛先とするアプリケーションメッセージは、ゲートウェイ装置によって受信される。各アプリケーションメッセージに関して、ゲートウェイ装置が、対応するリモートアプリケーションサーバとのアップリンク接続を確立することができる場合、当該アプリケーションメッセージは当該リモートアプリケーションサーバに転送される。アップリンク接続を確立することができない場合、当該アプリケーションメッセージは、ローカルソフトウェアアプリケーションを宛先として変更して送信され、このローカルソフトウェアアプリケーションをその後、アップリンク接続を確立することができると、リモートアプリケーションサーバと同期させることができる。本明細書において使用されるように、アプリケーションメッセージは、コンピュータシステムが実行するソフトウェアアプリケーションによって行なわれる通信例えば、情報、リクエスト、またはコマンドとして定義される。アプリケーションメッセージは、同じコンピュータシステムが実行する、または異なるコンピュータシステムが実行する別のソフトウェアアプリケーションが受信するように当該別のソフトウェアアプリケーションを宛先とすることができる。アプリケーションメッセージ群は、例えばビークルセンサデータ例えば、センサ読み取り値、ビークルに関連するイベント例えば、ビークル制御イベント、テレメトリーデータ、金銭取引例えば、ビークル搭乗時に行なわれる購入、及び/又はビークルの運転に関連する任意の他の情報について記述することができる。図1は、例示的なコンピュータシステム100のブロック図である。例示的な実施形態では、コンピュータシステム100は通信ファブリック102を含み、通信ファブリック102は、プロセッサユニット104、メモリ106、永続性記憶装置108、通信ユニット110、入力/出力I/Oユニット112、及びディスプレイ114のような提示インターフェースの間の通信を可能にする。更に、または別の構成として、提示インターフェースは、オーディオデバイス図示せず、及び/又は情報をユーザに伝えることができる任意のデバイスを含むことができる。プロセッサユニット104は、メモリ106に読み込むことができるソフトウェア命令群を実行する。プロセッサユニット104は、特定の実施形態によって異なるが、一連の1つ以上のプロセッサとすることができる、または複数のプロセッサコアを含むことができる。更に、プロセッサユニット104は、1つ以上の異種プロセッサシステムを用いて実現することができ、これらの異種プロセッサシステムでは、主プロセッサは、副プロセッサ群と一緒に1つのチップ上に設けられる。別の実施形態では、プロセッサユニット104は、同じ種類の複数のプロセッサを含む同種プロセッサシステムとすることができる。メモリ106及び永続性記憶装置108は記憶装置の例である。本明細書において使用されるように、記憶装置とは、情報を一時的に、そして/または永久に保存することができる任意の個数のハードウェアである。メモリ106は、例えばこれらには限定されないが、ランダムアクセスメモリ、及び/又は任意の他の適切な揮発性または不揮発性記憶装置とすることができる。永続性記憶装置108は、特定の実施形態によって異なるが、種々の形態を採ることができ、そして永続性記憶装置108は、1つ以上のコンポーネントまたはデバイスを含むことができる。例えば、永続性記憶装置108は、ハードドライブ、フラッシュメモリ、再書き込み可能な光ディスク、再書き込み可能な磁気テープ、及び/又は上に列挙した要素の或る組み合わせとすることができる。永続性記憶装置108が使用する媒体は取り外し可能とすることもできる。例えば、これに限定されないが、取り外し可能なハードドライブを永続性記憶装置108に使用することができる。メモリ106及び/又は永続性記憶装置108のような記憶装置は、データを保存して、本明細書において記載されるプロセスに使用するように構成することができる。例えば、記憶装置は、仮想マシンに関連する実行可能命令群、及び/又はローカルソフトウェアアプリケーション、アプリケーションメッセージ群、ローカルソフトウェアアプリケーションに関連するデータ、ルーティングコンフィギュレーションデータ例えば、リモートアプリケーションサーバ群からローカルソフトウェアアプリケーション群へのマッピング、仮想マシンコンフィギュレーションデータ、ローカルソフトウェアアプリケーションコンフィギュレーションデータ、及び/又はトラフィックシェーピングコンフィギュレーションデータ例えば、リモートソフトウェアアプリケーション群に関連する優先度を保存することができる。通信ユニット110はこれらの例では、他のコンピュータシステム群またはデバイス群との通信を可能にする。例示的な実施形態では、通信ユニット110は、ネットワークインターフェースカードである。通信ユニット110は、物理通信リンク及び無線通信リンクの何れか、または両方を使用することにより、通信を行なうことができる。入力/出力ユニット112によって、データを、コンピュータシステム100に接続することができる他のデバイス群との間で入出力することができる。例えば、これらには限定されないが、入力/出力ユニット112は、接続を可能にすることにより、ユーザ入力を、キーボード及び/又はマウスのようなユーザ入力デバイスを介して行うことができる。更に、入力/出力ユニット112は、出力をプリンタに送出することができる。ディスプレイ114は、情報をユーザに対して表示する機構となる。例えば、ディスプレイ114のような提示インターフェースは、本明細書において記載されるこれらのインターフェースのようなグラフィカルユーザインターフェースを表示することができる。オペレーティングシステム用命令群、及びアプリケーション群またはプログラム群は、永続性記憶装置108に格納される。これらの命令は、メモリ106に読み込むことにより、プロセッサユニット104によって実行することができる。異なる実施形態のプロセスは、プロセッサユニット104によって、コンピュータ実行命令群及び/又はコンピュータ実行可能命令群を使用して実行することができ、これらのコンピュータ命令は、メモリ106のようなメモリに格納することができる。これらの命令は、本明細書では、プロセッサユニット104内のプロセッサが読み取り、そして実行することができるプログラムコード例えば、オブジェクトコード及び/又はソースコードと表記される。プログラムコードは異なる実施形態では、メモリ106または永続性記憶装置108のような異なる物理コンピュータ可読媒体または有形コンピュータ可読媒体で具体化することができる。プログラムコード116は、選択的に取り外すことができるコンピュータ可読媒体118に関数形式で格納することができ、そしてコンピュータシステム100に読み込むか、または転送することによりプロセッサユニット104によって実行することができる。プログラムコード116及びコンピュータ可読媒体118は、コンピュータプログラム製品120をこれらの例において構成する。1つの例では、コンピュータ可読媒体118は、例えば光ディスクまたは磁気ディスクのような有形媒体とすることができ、この有形媒体を、永続性記憶装置108の一部であるドライブまたは他のデバイスに挿入するか、または収納することにより、永続性記憶装置108の一部であるハードドライブのような記憶装置に移送することができる。有形媒体では、コンピュータ可読媒体118は、コンピュータシステム100に接続されるハードドライブ、サムドライブ、またはフラッシュメモリのような永続性記憶装置の形態を採ることもできる。有形のコンピュータ可読媒体118は、コンピュータ記録可能記憶媒体と表記することもできる。幾つかの例では、コンピュータ可読媒体118は、取り外し可能とする必要はない。別の構成として、プログラムコード116はコンピュータシステム100に、コンピュータ可読媒体118から通信リンクを介して転送して通信ユニット110に送信することができる、そして/または接続を介して転送して入力/出力ユニット112に送信することができる。通信リンク及び/又は接続は、これらの例示的な例では、物理リンク及び/又は物理接続、または無線リンク及び/又は無線接続とすることができる。コンピュータ可読媒体は、プログラムコードを伝送する通信リンクまたは無線伝送媒体のような無形媒体の形態を採ることもできる。幾つかの例示的な実施形態では、プログラムコード116はネットワークを経由して、別のデバイスから永続性記憶装置108に、またはコンピュータシステムにダウンロードして、コンピュータシステム100内で使用することができる。例えば、サーバコンピュータシステム内のコンピュータ可読記憶媒体に格納されるプログラムコードはネットワークを経由して、サーバからコンピュータシステム100にダウンロードすることができる。プログラムコード116を供給するコンピュータシステムは、サーバコンピュータ、ワークステーション、クライアントコンピュータ、またはプログラムコード116を格納し、そして送信することができる他の或るデバイスとすることができる。プログラムコード116は、体系化することにより、機能的に関連付けられるコンピュータ実行可能コンポーネント群とすることができる。例えば、プログラムコード116は、ビークル通信コンポーネント、WANインターフェースコンポーネント、ローカルアプリケーションコンポーネント、ルーティングコンポーネント、アクセス制御コンポーネント、トラフィックシェーパ-コンポーネント、制御ユーザインターフェースコンポーネント、及び/又は本明細書において記載される方法に適する任意のコンポーネントを含むことができる。各コンポーネントはコンピュータ実行可能命令群を含むことができ、これらのコンピュータ実行可能命令がプロセッサユニット104により実行されると、これらのコンピュータ実行可能命令によってプロセッサユニット104が、本明細書において記載される操作群のうちの1つ以上の操作を実行するようになる。コンピュータシステム100に関して本明細書において図示される異なる構成要素は、異なる実施形態を実現することができる態様に構造上の制約を付与するために図示しているのではない。異なる例示的な実施形態は、コンピュータシステム100に関して図示されるこれらの構成要素の他に、または代わりに、種々の構成要素を含むコンピュータシステムにおいて実現することができる。図1に示す他の構成要素群は、図示の例示的な例から変えることができる。一例として、コンピュータシステム100の記憶装置は、データを保存することができる任意のハードウェア装置である。メモリ106、永続性記憶装置108、及びコンピュータ可読媒体118は、有形の記憶装置の例である。別の例では、バスシステムを使用して、通信ファブリック102を実現することができ、そしてシステムバスまたは入力/出力バスのような1つ以上のバスを含むことができる。勿論、バスシステムは、当該バスシステムに接続される異なるコンポーネント群またはデバイス群の間のデータ転送を可能にする任意の適切なタイプのアーキテクチャを用いて実現することができる。更に、通信ユニットは、データを送受信するために使用される、モデムまたはネットワークアダプターのような1つ以上のデバイスを含むことができる。更に、メモリは、例えばこれらには限定されないが、メモリ106とするか、または通信ファブリック102に含めることができるインターフェース及びメモリコントローラハブに設置されるようなキャッシュとすることができる。図2は、1つ以上のビークル205と、ワイドエリアネットワークWAN215の一部である1つ以上のリモートアプリケーションサーバ210との間の通信に使用される例示的なシステム200を示すブロック図である。例示的な実施形態では、ビークル205に搭載されるビークルコンピュータシステム220は、1つ以上のソフトウェアアプリケーション図示せずを実行し、これらのソフトウェアアプリケーションは、アプリケーションメッセージ群を、リモートアプリケーションサーバ210が実行する1つ以上のソフトウェアアプリケーション225に送信する。リモートアプリケーションサーバ群210及びビークルコンピュータシステム220は、コンピュータシステム100図1に示すとは別体の例である。ビークルコンピュータシステム220は、アプリケーションメッセージ群を、リモートアプリケーションサーバ210にネットワーク230を介して送信するように構成することができる。例えば、ビークルコンピュータシステム220は、ネットワーク230との直接接続を、通信ユニット110図1に示すを用いて通信規格例えば、ARINC規格822、及び/又はIEEE802.11規格に従って確立することができるARINCは、メリーランド州アナポリスに本社を置くARINC社の商標である。IEEEは、ニューヨーク州ニューヨークに本部がある米国電気電子技術者協会の商標である。幾つかのシナリオでは、ネットワーク230に、ビークルコンピュータシステム220がアクセスすることができない。例えば、ビークルコンピュータシステム220は、リモートアプリケーションサーバ群210と、ネットワーク230に接続される無線アクセスポイント図示せずを介して通信するように構成することができ、そしてこのような無線アクセスポイントは、無線ネットワークインフラストラクチャを持たない空港、または無線ネットワークを操作することができない空港のような場所では利用することができない。従って、例示的な実施形態では、システム200は、ゲートウェイ装置235、すなわちコンピュータシステム100の別の例を含み、このゲートウェイ装置235は、ビークルコンピュータシステム220との通信に使用される。例示的な実施形態では、ゲートウェイ装置235は、ビークルコンピュータシステム220と、ビークル通信ユニット240を介して通信し、そしてネットワーク230とWAN通信ユニット245を介して通信する。ビークル通信ユニット240及びWAN通信ユニット245は、通信ユニット110図1に示すの単一の例、または通信ユニット110とは別体の例である。幾つかの実施形態では、ビークル通信ユニット240は、ビークルコンピュータシステム220と第1通信規格例えば、ARINC規格822、及び/又はIEEE802.11規格を用いて通信し、そしてネットワーク230と第2通信規格例えば、Ethernet登録商標、GSM登録商標のような携帯電話通信規格、及び/又はIEEE802.11規格を用いて通信する。GSMは、英国のロンドンに本部があるGSM協会の商標である。他の実施形態では、ビークル通信ユニット240及びWAN通信ユニット245は、同じ通信規格を用いることができる。例示的な実施形態では、ゲートウェイ装置235は、ゲートウェイ装置235が1つ以上のビークル205に接近している例えば、1つ以上のビークル205の無線通信範囲に位置している状態で、1つ以上のビークルコンピュータシステム220と無線通信する。リモートアプリケーションサーバ群210は、ビークル205、ゲートウェイ装置235、及び/又は互いから離れて位置することができる。ビークルコンピュータシステム群220がネットワーク230と直接接続することができない場合でも、ゲートウェイ装置235によって、アプリケーションメッセージ群をビークルコンピュータシステム群220からリモートソフトウェアアプリケーション群225にネットワーク230を介して送信することができる。このような通信について、図3~5を参照しながら以下に説明する。幾つかの実施形態では、ゲートウェイ装置235はコンピュータシステム100であり、このコンピュータシステム100は、リモートソフトウェアアプリケーション群225との通信を容易にする他に、1つ以上のビークル関連サービスを提供する。例えば、ゲートウェイ装置235はメンテナンスラップトップとすることができ、このメンテナンスラップトップは、ビークル205に関連するメンテナンスタスクをスケジューリングし、そして記録する。ゲートウェイ装置235は、ビークル205に搭載されるように配置することができる。更に、または別の構成として、ゲートウェイ装置235は、空港のような整備施設に配置することができ、そして複数のビークル205のビークルコンピュータシステム群220と通信するように構成することができる。例えば、ゲートウェイ装置235は、空港のゲートに配置して、ゲートウェイ装置235が、当該ゲート、及び1つ以上の隣接ゲートに位置するビークル群205の通信範囲に位置するようにすることができる。図3は、システム200に用いることができる例示的なゲートウェイ装置235のソフトウェアコンポーネント群を示すブロック図である。図4は、ビークル205とリモートアプリケーションサーバ210図2に示すとの間の通信に用いることができる例示的な方法400のフローチャートである。図5は、データをリモートアプリケーションサーバ210に送信する際に用いられる例示的な方法450のフローチャートである。図2及び3を参照するに、例示的な実施形態では、ゲートウェイ装置235は、ビークルコンピュータシステム220とビークル通信ユニット240を介して通信するビークル通信インターフェースコンポーネント305を含む。ゲートウェイ装置235は更に、ネットワーク230とWAN通信ユニット245を介して通信するWANインターフェースコンポーネント310を含む。図3及び4を参照するに、ゲートウェイ装置235は、リモートソフトウェアアプリケーション群225図2に示すに対応する1つ以上のローカルソフトウェアアプリケーション315を実行する操作405。例示的な実施形態では、ゲートウェイ装置235は、1つ以上の仮想マシン325を実行するローカルアプリケーションコンポーネント320を含む。仮想マシン325が今度は、1つ以上のローカルソフトウェアアプリケーション315を実行する操作405。ローカルソフトウェアアプリケーション315は、ビークルコンピュータシステム220図2に示すと、リモートソフトウェアアプリケーション225がビークルコンピュータシステム220と対話する方法とは区別できない方法で対話するように動作することができる。動作状態では、ビークル通信インターフェースコンポーネント305は、アプリケーションメッセージをビークルコンピュータシステム220から受信する操作410。アプリケーションメッセージは、リモートアプリケーションサーバ210図2に示すから供給されるリモートソフトウェアアプリケーション225に関連付けられる。例えば、アプリケーションメッセージは、ネーム例えば、ホストネーム、ネットワークアドレス、及び/又はリモートアプリケーションサーバ210に関連するメッセージキュー宛てとすることができる。ルーティングコンポーネント330は、アプリケーションメッセージをリモートアプリケーションサーバ210に転送すべきかどうかについて判断する操作415。例示的な実施形態では、ルーティングコンポーネント330は、即時転送が適切であるかどうかを、アプリケーションメッセージに関連する宛先アドレスに少なくとも部分的に基づいて判断する操作415。例えば、宛先アドレスが、ローカルソフトウェアアプリケーション315に対応しないリモートソフトウェアアプリケーション225に関連する場合、ルーティングコンポーネント330は、即時転送が適切であると判断することができる。このような実施形態によって、ゲートウェイ装置235にキャッシュすることができないアプリケーションメッセージの即時転送が容易になる。1つの実施形態では、ルーティングコンポーネント330は、宛先アドレスが、ローカルソフトウェアアプリケーション315に正に対応するリモートソフトウェアアプリケーション225に関連する場合に、即時転送が適切ではないと判断する操作415。ルーティングコンポーネント330が、アプリケーションメッセージを転送すべきであると判断する操作315と、ルーティングコンポーネント330は、アプリケーションメッセージをリモートアプリケーションサーバ210に転送する操作420。例えば、ルーティングコンポーネント330は、アプリケーションメッセージを、WANインターフェースコンポーネント310を介して転送する操作420ことができる。幾つかの実施形態では、アプリケーションメッセージをリモートアプリケーションサーバ210に転送する操作420では、アプリケーションメッセージに対する応答を、リモートアプリケーションサーバ210から受信し、そして当該応答をビークルコンピュータシステム220に、ビークル通信インターフェースコンポーネント305を介して転送する。ルーティングコンポーネント330が、アプリケーションメッセージを転送すべきではないと判断する操作415と、ルーティングコンポーネント330はアプリケーションメッセージを、内部ネットワーク335を介して、ローカルソフトウェアアプリケーション315に宛先を変更して送信する。例示的な実施形態では、ローカルソフトウェアアプリケーション315は、内部ネットワーク335に対応するネットワークアドレスに関連する仮想マシン325内で実行される。例えば、内部ネットワーク335は、ソフトウェアコンポーネントとして実現することができ、そして各仮想マシン325は、内部ネットワーク335内の1つ以上の仮想アドレスに関連付けることができる。幾つかの実施形態では、アプリケーションメッセージをローカルソフトウェアアプリケーション315に宛先を変更して送信する操作425では、アプリケーションメッセージに対する応答を、ローカルソフトウェアアプリケーション315から受信し、そして当該応答をビークルコンピュータシステム220に、ビークル通信インターフェースコンポーネント305を介して転送する。幾つかの実施形態では、ルーティングコンポーネント330は、アプリケーションメッセージを転送すべきかどうかを、アップリンク接続状態に少なくとも部分的に基づいて判断する操作415。例えば、WANインターフェースコンポーネント310は、リモートアプリケーションサーバ210とのアップリンク接続を確立することができるかどうかを判断する。1つの実施形態では、WANインターフェースコンポーネント310は、アップリンク接続を確立することができるかどうかを、ネットワーク230図2に示すとのアップリンク接続を確立することができるかどうかを判断することにより、繰り返し例えば、定期的に、継続的に、またはメッセージを送信しようとするときに判断する。このような実施形態では、リモートアプリケーションサーバ210とのアップリンク接続を確立することができる場合、ルーティングコンポーネント330は、アプリケーションメッセージをリモートアプリケーションサーバ210に転送する操作420ことができる。リモートアプリケーションサーバ210とのアップリンク接続を確立することができない場合、ルーティングコンポーネント330は、アプリケーションメッセージをローカルソフトウェアアプリケーション315に宛先を変更して送信する操作425。幾つかの実施形態では、ルーティングコンポーネント330は、ルーティングドメインネームシステムDNSコンポーネント340と、そしてプレルーティングコンポーネント345と、を含む。アップリンク接続を確立させることができない場合に、ルーティングDNSコンポーネント340及びプレルーティングコンポーネント345によって、アプリケーションメッセージを、仮想マシン325及び/又はローカルソフトウェアアプリケーション315に関連するネットワークアドレスに宛先を変更して送信する操作425ことができる。本明細書において使用されるように、ネットワークアドレスとは、これにのみ限定されないが、インターネットプロトコルIPバージョン4IPv4アドレスまたはIPバージョン6IPv6アドレスのような数値アドレスを含むことができる。ルーティングDNSコンポーネント340によって、リモートアプリケーションサーバ210及び/又はリモートアプリケーション225に対応するネームをネットワークアドレスに変換することができる。1つの実施形態では、ビークル通信インターフェースコンポーネント305は、リモートアプリケーションサーバ210に対応するネットワークアドレス宛てのリクエストを、ビークルコンピュータシステム220から受信する。リモートアプリケーションサーバ210とのアップリンク接続を確立することができる場合、ルーティングDNSコンポーネント340はビークルコンピュータシステム220に、ネットワークアドレスリクエストが行なわれると、リモートアプリケーションサーバ210に関連するネットワークアドレスを送信する。アップリンク接続を確立することができない場合、ルーティングDNSコンポーネント340は、ネットワークアドレスリクエストが行なわれると、仮想マシン325及び/又はローカルソフトウェアアプリケーション315に対応するネットワークアドレスをビークルコンピュータシステム220に送信することにより、アプリケーションメッセージを、宛先を変更して送信する操作425。ビークルコンピュータシステム220はそれに続いて、当該ネットワークアドレス宛てのアプリケーションメッセージを送信し、そしてルーティングDNSコンポーネント340は、当該アプリケーションメッセージを、仮想マシン325及び/又はローカルソフトウェアアプリケーション315に、内部ネットワーク335を介して転送する。別の実施形態では、ビークル通信インターフェースコンポーネント305は、ビークルコンピュータシステム220から、リモートアプリケーションサーバ210及び/又はリモートソフトウェアアプリケーション225に対応するネームホストネーム及び/又はメッセージキューネーム宛のアプリケーションメッセージを受信する。リモートアプリケーションサーバ210とのアップリンク接続を確立することができる場合、ルーティングDNSコンポーネント340はアプリケーションメッセージを、リモートアプリケーションサーバ210に対応するネットワークアドレスに転送する操作420。アップリンク接続を確立することができない場合、ルーティングDNSコンポーネント340はアプリケーションメッセージを、当該アプリケーションメッセージを仮想マシン325及び/又はローカルソフトウェアアプリケーション315に対応するネットワークアドレスに転送することにより、宛先を変更して送信する操作425。プレルーティングコンポーネント345によって、リモートアプリケーションサーバ210に対応するネットワークアドレスを、仮想マシン325及び/又はローカルソフトウェアアプリケーション315に対応するネットワークアドレスに変換することができる。1つの実施形態では、ビークル通信インターフェース305は、リモートアプリケーションサーバ210に対応する宛先ネットワークアドレスに関連するアプリケーションメッセージを受信する。リモートアプリケーションサーバ210とのアップリンク接続を確立することができる場合、プレルーティングコンポーネント345によって、アプリケーションメッセージをリモートアプリケーションサーバ210に転送することができる操作420。例えば、プレルーティングコンポーネント345は、アップリンク接続を確立することができる場合に、アクションを起こさない、そして/またはアプリケーションメッセージをルーティングDNSコンポーネント340またはWANインターフェース310に単に転送するだけで済ませることができる。アップリンク接続を確立することができない場合、プレルーティングコンポーネント345は、アプリケーションメッセージを仮想マシン325及び/又はローカルソフトウェアアプリケーション315に対応するネットワークアドレスに転送することにより少なくとも部分的に、アプリケーションメッセージをローカルソフトウェアアプリケーションに宛先を変更して送信する操作425。アプリケーションメッセージをローカルソフトウェアアプリケーション315に宛先を変更して送信する操作425と、ローカルソフトウェアアプリケーション315は、アプリケーションメッセージを受信し、そしてアプリケーションメッセージに含まれるデータを保存する操作430、またはキャッシュする。例えば、データは、メモリ106及び/又は永続性記憶装置108図1に示すに保存することができる操作430。幾つかの実施形態では、アプリケーションメッセージも保存する操作430。他の実施形態では、アプリケーションメッセージに含まれるデータを、データトランザクション例えば、追加、更新、及び/又は消去をアプリケーションメッセージに基づいて実行することにより保存する操作430。例えば、新規のセンサ読み取り値を示すアプリケーションメッセージは、当該センサ読み取り値をメモリ106内の、または永続性記憶装置108内のデータベースに追加することにより保存することができる操作430。後の時点で、WANインターフェースコンポーネント310は、リモートアプリケーションサーバ210とのアップリンク接続を確立し、そしてローカルソフトウェアアプリケーション315及び/又はローカルソフトウェアコンポーネント320は、保存データをリモートソフトウェアアプリケーション225に同期させる操作435。方法400を繰り返し実行して、1つ以上のビークルコンピュータシステム220からの複数のアプリケーションメッセージを転送する、そして/またはキャッシュすることができる。幾つかの実施形態では、ゲートウェイ装置235は、ビークルコンピュータシステム220による認証、権限付与、及び/又は課金を可能にするアクセス制御コンポーネント350を含む。例えば、アクセス制御コンポーネント350はビークル通信インターフェース305を、暗号鍵または暗号証明書のような所定の認証情報を供給するビークルコンピュータシステム220との通信にのみ制限することができる。更に、アクセス制御コンポーネント350は、ビークルコンピュータシステム220によるアクセスを、このような認証情報に基づいて制限することができる。例えば、アクセス制御コンポーネント350は、ゲートウェイ装置235が、アプリケーションメッセージを、ビークルコンピュータシステム220が発行する認証情報によって認証されないリモートアプリケーションサーバ210及び/又はリモートソフトウェアアプリケーション225に転送する操作420ことを禁止する。1つの実施形態では、アクセス制御コンポーネント350は、リモート認証ダイヤルインユーザサービスRADIUSコンポーネントを含む。幾つかの実施形態によって、ゲートウェイ装置235によるアプリケーションメッセージの送信の優先順位付け、またはshapingシェーピングが容易になる。例示的な実施形態では、ゲートウェイ装置は、トラフィックシェーパーコンポーネント355を含む。アプリケーションメッセージをリモートアプリケーションサーバ210に転送する操作420前に、トラフィックシェーパーコンポーネント355は、優先度をアプリケーションメッセージに割り当て操作417、そしてアプリケーションメッセージを送信キューに追加する操作418。幾つかの実施形態では、優先度は数値表現される指定番号の絶対値に比例する、または逆比例する、そして/または文章表現される例えば、低優先度、通常優先度、及び高優先度。図3~5を参照するに、例示的な実施形態では、方法400及び方法450は、ゲートウェイ装置235によって同時に実行される。例えば、方法400及び/又は450は、別々のプロセス及び/又はスレッドにより実行することができる。WANインターフェース310は、アップリンク接続を確立することができることを上記のように判断する操作452。トラフィックシェーパーコンポーネント355はアプリケーションメッセージ群を、何れかのアプリケーションメッセージ群が送信キューに含まれているかどうかを判断する操作455ことにより転送し操作420、そしてアプリケーションメッセージが送信キューに含まれている場合に、最高の優先度が割り当てられている操作417アプリケーションメッセージを、当該アプリケーションメッセージに関連するリモートアプリケーションサーバ210に転送する操作460。更に、例示的な実施形態では、アップリンク接続を確立することができる場合、ローカルソフトウェアアプリケーション315及び/又はローカルアプリケーションコンポーネント320は、同期させる必要がある操作435何れかの保存データがあるかどうかを判断する操作465ことにより、保存データをリモートソフトウェアアプリケーション225に同期させ、そして同期させる必要がある何れかの保存データがある場合に、保存データを含む1つ以上のアプリケーションメッセージを生成し、そして送信待ち状態とする操作470。図4を参照して上に説明したように、アプリケーションメッセージ群には優先度を、トラフィックシェーパーコンポーネント355によって割り当てる操作417ことができる。例示的な実施形態では、ゲートウェイ装置235は、制御ユーザインターフェースコンポーネント360を含み、制御ユーザインターフェースコンポーネント360によってユーザは、ゲートウェイ装置235によって実行されるコンポーネント群の動作を設定することができる。図6は、ゲートウェイ装置235を設定するために使用される例示的なユーザインターフェース500である。ユーザインターフェース500は、制御ユーザインターフェースコンポーネント360図3に示すによって、ディスプレイ114図1に示すを介して提示することができる。例示的な実施形態では、ユーザインターフェース500は、第1リモートソフトウェアアプリケーション505、第2リモートソフトウェアアプリケーション510、及び第3リモートソフトウェアアプリケーション515に関するルーティング情報を含む。各リモートソフトウェアアプリケーションに対応して、ユーザインターフェース500は、リモートソフトウェアアプリケーションを実行するアプリケーションサーバのネーム520、ネットワークアドレス525、もしあるとした場合の対応するローカルソフトウェアアプリケーションのネットワークアドレス530、及び優先度535を表示する。当該例示的な実施形態では、ネットワークアドレス525及び530は、ホストネームまたは数値アドレス例えば、IPv4またはIPv6アドレスの何れかとすることができるホストアドレス540、及びポート番号545の組み合わせである。優先度535は、通常優先度または高優先度の何れかとして文字表現される。ユーザは、ユーザインターフェース500に表示される種々値のうちの1つ以上の値を選択し、そして変更して、ゲートウェイ装置235図2及び3に示すの動作を設定することができる。更に、または別の構成として、ユーザインターフェース500は1つ以上の値を自動的に収集することができる。例えば、第3リモートソフトウェアアプリケーション515は、ローカルソフトウェアアプリケーションのネットワークアドレス530に関連付けられない。従って、ユーザインターフェース500は、第3リモートソフトウェアアプリケーション515を高優先度535に関連付けることができる。このような実施形態によって、対応するローカルソフトウェアアプリケーションが存在しない場合のリモートソフトウェアアプリケーションに関連するアプリケーションメッセージ群の配信に容易に優先度を持たせることができる。図2~6を参照するに、例示的な実施形態では、第1アプリケーションメッセージをビークル通信インターフェース305が受信し操作410、そしてWANインターフェース310は、第1アプリケーションメッセージを転送すべきであると判断する操作415。トラフィックシェーパーコンポーネント355は、優先度を第1アプリケーションメッセージに、当該アプリケーションメッセージに関連する宛先例えば、リモートアプリケーションサーバ210及び/又はリモートソフトウェアアプリケーション225に基づいて割り当てる操作417。例えば、第1アプリケーションメッセージがリモートソフトウェアアプリケーション505宛である場合、トラフィックシェーパーコンポーネント355は、通常優先度を第1アプリケーションメッセージに、ユーザインターフェース500に表示される設定に基づいて割り当てる操作417。トラフィックシェーパーコンポーネント355は、第1アプリケーションメッセージを送信キューに追加する操作418。第3ソフトウェアアプリケーション515宛の第2アプリケーションメッセージは、第1アプリケーションメッセージが第1リモートソフトウェアアプリケーション505に転送される操作420前に受信する操作410。第2アプリケーションメッセージは、第3リモートソフトウェアアプリケーション515宛であるので、トラフィックシェーパーコンポーネント355は、高優先度を第2アプリケーションメッセージに、ユーザインターフェース500に表示される設定に基づいて割り当て操作417、そして第2アプリケーションメッセージを送信キューに追加する操作418。トラフィックシェーパーコンポーネント355は、第1及び第2アプリケーションメッセージが送信キューで送信待ちになっていると判断する操作455。第2アプリケーションメッセージに、第1アプリケーションメッセージに割り当てられる操作417優先度よりも高い優先度が割り当てられている操作417ので、トラフィックシェーパーコンポーネント355は、第2アプリケーションメッセージを、第3リモートソフトウェアアプリケーション515に関連するネットワークアドレス525に転送する操作460。続いて、トラフィックシェーパーコンポーネント355は、第1アプリケーションメッセージのみが送信キューで送信待ちになっていると判断し操作455、そして第1アプリケーションメッセージを、第1リモートソフトウェアアプリケーション505に関連するネットワークアドレス525に転送する操作460。同様の手法を、保存データをリモートソフトウェアアプリケーション225と同期させる操作操作435の一部として生成され、そして送信待ち状態となっている操作470アプリケーションメッセージ群に対して実施することができる。本明細書において記載される実施形態によって、ビークルコンピュータシステムは、ビークル関連データをアップロードして適切なリモートソフトウェアアプリケーションに、ビークルコンピュータシステムが、このようなリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバとのアップリンク接続を確立することができない場合でも最終的に配信することができる。提供される実施形態によって更に、ビークル関連データの転送に対して、ユーザ定義設定に基づいて、そして/またはアプリケーションメッセージに関連するリモートソフトウェアアプリケーションに対応するローカルソフトウェアアプリケーションが存在しているかどうかに基づいて、容易に優先度を持たせることができる。記述される本説明では、複数例を用いて、最良の形態を含む種々の実施形態を開示することにより、この技術分野の当業者であれば必ず、これらの実施形態を実施することができ、任意のデバイスまたはシステムを作製し、そして使用し、そして任意の関連する方法を実行することができるようにしている。特許可能な範囲は、請求項によって規定され、そしてこの技術分野の当業者が想到することができる他の例を包含することができる。このような他の例は、請求項の範囲に、これらの他の例が、これらの請求項の文言とは異ならない構造的要素群を有する場合に、またはこれらの他の例が、これらの請求項の文言とは殆ど差がない等価な構造的要素群を含む場合に包含されるべきである。