(57)【特許請求の範囲】
【請求項１】
ビークル（２０５）とリモートアプリケーションサーバ（２１０）との間で通信する方法であって、前記方法は：
ゲートウェイ装置コンピュータシステム（２３５）で、ビークルコンピュータシステム（２２０）から送信されるアプリケーションメッセージを受信することと、
前記ゲートウェイ装置コンピュータシステム（２３５）によって、前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーション（２２５）を供給するリモートアプリケーションサーバ（２１０）に転送すべきかどうかを判断することと、
前記アプリケーションメッセージを転送すべきではない場合に、前記アプリケーションメッセージを、前記ゲートウェイ装置コンピュータシステム（２３５）によって実行されるローカルソフトウェアアプリケーション（３１５）に宛先を変更して送信し、前記ローカルソフトウェアアプリケーション（３１５）は前記リモートソフトウェアアプリケーション（２２５）に対応し、前記ローカルソフトウェアアプリケーション（３１５）が前記ビークルコンピュータシステム（２２０）と、前記リモートソフトウェアアプリケーション（２２５）が前記ビークルコンピュータシステム（２２０）と対話する形式と区別できない形式で対話することと、
を含む、方法。
【請求項２】
前記ローカルソフトウェアアプリケーション（３１５）は、前記アプリケーションメッセージに含まれるデータを保存し、前記方法は更に、前記アプリケーションメッセージを、宛先を変更して送信した後に：
前記リモートアプリケーションサーバ（２１０）とのアップリンク接続を確立することと、
前記保存データを、前記リモートアプリケーションサーバによって供給される前記リモートソフトウェアアプリケーション（２２５）と同期させることと、
を含む、請求項１に記載の方法。
【請求項３】
更に、前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送すべきであると判断される場合に、前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送することを含む、請求項１又は２に記載の方法。
【請求項４】
アプリケーションメッセージを受信することは、前記ビークル（２０５）から送信されるアプリケーションメッセージを、第１通信規格を利用して受信することを含み、そして前記アプリケーションメッセージを転送することは、前記アプリケーションメッセージを、第２通信規格を利用して転送することを含み、
前記アプリケーションメッセージは、複数のアプリケーションメッセージの第１アプリケーションメッセージであり、前記方法は、
優先度を前記第１アプリケーションメッセージに割り当てることと、
前記第１アプリケーションメッセージを、前記複数のアプリケーションメッセージの第２アプリケーションメッセージを転送する前に、前記第１アプリケーションメッセージに割り当てられる前記優先度、及び前記第２アプリケーションメッセージに割り当てられる優先度に少なくとも部分的に基づいて転送することと、
を更に含む、請求項３に記載の方法。
【請求項５】
ビークル（２０５）とリモートアプリケーションサーバ（２１０）との間の通信に使用されるゲートウェイ装置（２３５）であって、前記装置は：
アプリケーションメッセージをビークル（２０５）に搭載されるコンピュータシステム（１００、２２０）から受信するように構成されるビークル通信ユニット（１１０、２４０）であって、前記アプリケーションメッセージが、リモートソフトウェアアプリケーション（２２５）を供給するリモートアプリケーションサーバ（２１０）に対応する宛先に関連付けられる、前記ビークル通信ユニットと、
前記ビークル通信ユニット（１１０、２４０）に接続されるプロセッサユニット（１０４）と、を備え、前記プロセッサユニットは：
前記リモートソフトウェアアプリケーション（２２５）に対応するローカルソフトウェアアプリケーション（３１５）を実行し；
前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送すべきかどうかを判断し；そして
前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送すべきではない場合に、前記アプリケーションメッセージを前記ローカルソフトウェアアプリケーション（３１５）に宛先を変更して送信するようにプログラムされ、前記ローカルソフトウェアアプリケーション（３１５）は前記コンピュータシステム（１００、２２０）と、前記リモートソフトウェアアプリケーション（２２５）が前記コンピュータシステム（１００、２２０）と対話する形式と区別できない形式で対話する、ゲートウェイ装置（２３５）。
【請求項６】
前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送すべきである場合に、前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送するように構成されるワイドエリアネットワーク（ＷＡＮ）通信ユニット（１１０、２４５）を更に備える、請求項５に記載のゲートウェイ装置（２３５）。
【請求項７】
前記アプリケーションメッセージは、複数のアプリケーションメッセージの第１アプリケーションメッセージであり、そして前記ＷＡＮ通信ユニット（１１０、２４５）は、前記複数のアプリケーションメッセージの各アプリケーションメッセージを、前記アプリケーションメッセージに対応するリモートアプリケーションサーバ（２１０）に、前記対応するリモートアプリケーションサーバ（２１０）とのアップリンク接続を確立することができる場合に転送するように更に構成される、請求項６に記載のゲートウェイ装置（２３５）。
【請求項８】
記憶装置であって、前記アプリケーションメッセージが宛先を変更して送信されると、前記ローカルソフトウェアアプリケーション（３１５）が、前記記憶装置内のデータを更新する、前記記憶装置と、
ワイドエリアネットワーク（ＷＡＮ）通信ユニット（１１０、２４５）と、を更に備え、前記ＷＡＮ通信ユニットは：
前記ローカルソフトウェアアプリケーション（３１５）が前記データを更新した後に、前記リモートアプリケーションサーバ（２１０）とのアップリンク接続を確立し、そして
前記更新データを前記リモートアプリケーションサーバ（２１０）に送信するように構成される、
請求項５に記載のゲートウェイ装置（２３５）。
【請求項９】
前記ローカルソフトウェアアプリケーション（３１５）は、第１リモートソフトウェアアプリケーション（２２５）に対応する第１ローカルソフトウェアアプリケーション（３１５）であり、そして前記プロセッサユニット（１０４）は、
前記第１ローカルソフトウェアアプリケーション（３１５）を第１仮想マシン（３２５）内で実行し、
第２リモートソフトウェアアプリケーション（２２５）に対応する第２ローカルソフトウェアアプリケーション（３１５）を第２仮想マシン（３２５）内で実行し、
アプリケーションメッセージ群を、前記第２リモートソフトウェアアプリケーション（２２５）を供給する第２リモートアプリケーションサーバ（２１０）に転送すべきかどうかを判断し、
アプリケーションメッセージ群を前記第２リモートアプリケーションサーバ（２１０）に転送すべきではない場合に、前記第２リモートアプリケーションサーバ（２１０）に対応する宛先に関連するアプリケーションメッセージ群を、前記第２ローカルソフトウェアアプリケーション（３１５）に宛先を変更して送信するように更にプログラムされる、
請求項５から８のいずれか一項に記載のゲートウェイ装置（２３５）。
【請求項１０】
コンピュータ実行可能コンポーネント群を有するプログラムを記録した１つ以上のコンピュータ可読媒体（１１８）であって、前記コンポーネント群は：
ローカルソフトウェアアプリケーションコンポーネント（３２０）であって、該ローカルソフトウェアアプリケーションコンポーネントがゲートウェイ装置（２３５）上の少なくとも１つのプロセッサユニット（１０４）によって実行されると、前記少なくとも１つのプロセッサユニットがローカルソフトウェアアプリケーション（３１５）を実行するようになる、前記ローカルソフトウェアアプリケーションコンポーネントと、
ビークル通信インターフェースコンポーネント（３０５）であって、該ビークル通信インターフェースコンポーネントが少なくとも１つのプロセッサユニット（１０４）によって実行されると、前記少なくとも１つのプロセッサユニットが、ビークル（２０５）に搭載されるコンピュータシステム（１１０、２２０）から送信されるアプリケーションメッセージを受信するようになる、前記ビークル通信インターフェースコンポーネントと、
ルーティングコンポーネント（３３０）であって、該ルーティングコンポーネントが少なくとも１つのプロセッサユニット（１０４）によって実行されると、前記少なくとも１つのプロセッサユニットが：
前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーション（２２５）を供給するリモートアプリケーションサーバ（２１０）に転送すべきかどうかを判断し、そして
前記アプリケーションメッセージを前記リモートアプリケーションサーバ（２１０）に転送すべきではない場合に、前記アプリケーションメッセージを、前記ローカルソフトウェアアプリケーション（３１５）に宛先を変更して送信し、前記ローカルソフトウェアアプリケーション（３１５）は前記リモートソフトウェアアプリケーション（２２５）に対応し、前記ローカルソフトウェアアプリケーション（３１５）は前記コンピュータシステム（１００、２２０）と、前記リモートソフトウェアアプリケーション（２２５）が前記コンピュータシステム（１００、２２０）と対話する形式と区別できない形式で対話するようになる、
プログラムを記録した１つ以上のコンピュータ可読媒体（１１８）。
【請求項１１】
前記アプリケーションメッセージは、第１リモートソフトウェアアプリケーション（２２５）に対応する第１アプリケーションメッセージであり、そして前記ルーティングコンポーネント（３３０）によって、前記少なくとも１つのプロセッサユニット（１０４）は、第２アプリケーションメッセージを、該第２アプリケーションメッセージに関連する第２リモートソフトウェアアプリケーション（２２５）を供給する第２リモートアプリケーションサーバ（２１０）に転送するようになり、前記第２アプリケーションメッセージは、第１アプリケーションメッセージの後に受信され、そして前記コンピュータ実行可能コンポーネント群は更に、トラフィックシェーピングコンポーネント（３５５）を備え、該トラフィックシェーピングコンポーネントが少なくとも１つのプロセッサユニット（１０４）によって実行されると、前記少なくとも１つのプロセッサユニット（１０４）が：
第１優先度を、前記第１リモートソフトウェアアプリケーション（２２５）に関連付け、
前記第１優先度よりも高い第２優先度を、前記第２リモートソフトウェアアプリケーション（２２５）に関連付け、そして
前記第１アプリケーションメッセージを転送する前に、前記第２アプリケーションメッセージを、前記第１優先度及び前記第２優先度に基づいて転送するようになる、
請求項１０に記載のプログラムを記録した１つ以上のコンピュータ可読媒体（１１８）。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の分野は概して、ビークルに搭載されるコンピュータシステムとリモートコンピュータシステムとの間の通信に関するものであり、特にアプリケーションメッセージをビークルコンピュータシステムからリモートアプリケーションサーバに送信する方法及びシステムに関するものである。
【背景技術】
【０００２】
航空機のような少なくとも幾つかの公知のビークルは、アプリケーションメッセージを利用して、データをリモートコンピュータシステムに送信するコンピュータシステムを含む。更に、全てではないにしても、公知のビークルコンピュータシステム群の殆どは、ローカルネットワークとの接続を、無線ネットワーク接続規格のような所定の通信規格を用いてこのような通信を行なう。
【０００３】
しかしながら、複雑さに起因して、またはこれらには限定されないが、機器の利用不可、またはネットワーク故障のような他の問題に起因して、ビークルコンピュータシステムは、ローカルネットワークとの接続を行なうことができない可能性がある。更に、ローカルネットワークとの接続を行なうことができない場合、公知のビークルコンピュータシステム群は、リモートコンピュータシステム群と通信することができないおそれがある。このような例では、通信は、ローカルネットワーク接続を確立することができるまで延期する必要があるので、アプリケーションメッセージの配信が遅延する。更に、ビークルコンピュータシステムにおける大量のメッセージは、極めて大容量のメモリを必要とし、そしてビークルコンピュータシステムが故障する事象が発生すると、メッセージ紛失の危険に晒されるおそれがある。
【発明の概要】
【０００４】
１つの態様では、ビークルとリモートアプリケーションサーバとの間で通信する方法が提供される。前記方法は、コンピュータシステムで、ビークルから送信されるアプリケーションメッセージを受信することと、そして前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに転送すべきかどうかを判断することと、を含む。前記アプリケーションメッセージを転送すべきではない場合に、前記アプリケーションメッセージを、前記コンピュータシステムによって実行されるローカルソフトウェアアプリケーションに宛先を変更して送信する。
【０００５】
別の態様では、ビークルとリモートアプリケーションサーバとの間の通信に使用されるゲートウェイ装置が提供される。前記ゲートウェイ装置は、アプリケーションメッセージをビークルに搭載されるコンピュータシステムから受信するように構成されるビークル通信ユニットを含み、前記アプリケーションメッセージは、リモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに対応する宛先に関連付けられる。前記ゲートウェイ装置は更に、前記ビークル通信ユニットに接続され、かつ前記リモートソフトウェアアプリケーションに対応するローカルソフトウェアアプリケーションを実行するようにプログラムされるプロセッサユニットを含む。前記プロセッサユニットは更に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきかどうかを判断するようにプログラムされ、そして前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記アプリケーションメッセージを前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようにプログラムされる。前記ローカルソフトウェアアプリケーションは前記コンピュータシステムと、前記リモートソフトウェアアプリケーションが前記コンピュータシステムと対話する形式と区別できない形式で対話する。前記ゲートウェイ装置では、前記ビークル通信ユニットは、前記アプリケーションメッセージを、ビークルセンサデータを受信することにより少なくとも部分的に受信するように構成することができる。
【０００６】
更に別の態様では、コンピュータ実行可能コンポーネント群を有する１つ以上のコンピュータ可読媒体が提供される。前記コンポーネント群は、ローカルソフトウェアアプリケーションコンポーネントと、ビークル通信インターフェースコンポーネントと、そしてルーティングコンポーネントと、を含む。前記少なくとも１つのプロセッサユニットによって実行されると、前記ローカルソフトウェアアプリケーションコンポーネントによって、前記少なくとも１つのプロセッサユニットがローカルソフトウェアアプリケーションを実行するようになる。前記少なくとも１つのプロセッサユニットによって実行されると、前記ビークル通信インターフェースコンポーネントによって、前記少なくとも１つのプロセッサユニットが、ビークルに搭載されるコンピュータシステムから送信されるアプリケーションメッセージを受信するようになる。前記少なくとも１つのプロセッサユニットによって実行されると、前記ルーティングコンポーネントによって、前記少なくとも１つのプロセッサユニットが、前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに転送すべきかどうかを判断し、そして前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記アプリケーションメッセージを、前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようになる。前記アプリケーションメッセージは第１アプリケーションメッセージであり、前記ローカルソフトウェアアプリケーションは第２アプリケーションメッセージを、前記第１アプリケーションメッセージに基づいて生成し、そして前記コンポーネント群は更に、ワイドエリアネットワーク（ＷＡＮ）インターフェースコンポーネントを備え、前記ＷＡＮインターフェースコンポーネントが少なくとも１つのプロセッサユニットによって実行されると、前記ＷＡＮインターフェースコンポーネントによって、前記少なくとも１つのプロセッサユニットが、前記第２アプリケーションメッセージを前記リモートアプリケーションサーバに転送するようになる。前記ルーティングコンポーネントによって更に、前記少なくとも１つのプロセッサユニットは、前記ビークルに搭載される前記コンピュータシステムから、前記リモートアプリケーションサーバに関連するネームに対応するネットワークアドレス宛てのリクエストを受信し；そして前記リクエストを受信すると、前記ローカルソフトウェアアプリケーションに対応するネットワークアドレスを前記コンピュータシステムに送信することにより、前記アプリケーションメッセージを前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようになる。
【０００７】
説明してきた特徴、機能、及び利点は、種々の実施形態において個別に実現することができる、または更に他の実施形態において組み合わせることができ、これらの実施形態についての更なる詳細は、次の説明及び以下の図面を参照することにより理解することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、例示的なコンピュータシステムのブロック図である。
【図２】図２は、１つ以上のビークルと１つ以上のリモートアプリケーションサーバとの間の通信に使用することができる例示的なシステムを示すブロック図である。
【図３】図３は、図２に示すシステムに使用することができる例示的なゲートウェイ装置のソフトウェアコンポーネント群を示すブロック図である。
【図４】図４は、ビークルとリモートアプリケーションサーバとの間の通信に使用される例示的な方法のフローチャートである。
【図５】図５は、データをリモートアプリケーションサーバに送信するために使用される例示的な方法のフローチャートである。
【図６】図６は、図３に示すゲートウェイ装置を設定するために使用される例示的なユーザインターフェースである。
【発明を実施するための形態】
【０００９】
記載される実施形態は、ビークルに搭載される１つ以上のコンピュータシステムと１つ以上のリモートアプリケーションサーバとの間の通信に関するものである。ビークルとして、これらにのみ限定されないが、航空機、水上輸送船舶、装輪車両、及び／又は装軌車両を挙げることができる。
【００１０】
例示的な実施形態では、ゲートウェイ装置は、ビークルに搭載されるコンピュータシステム群に対応する無線アクセスポイントとして動作する。コンピュータシステム群から送信され、そしてリモートアプリケーションサーバ群を宛先とするアプリケーションメッセージは、ゲートウェイ装置によって受信される。各アプリケーションメッセージに関して、ゲートウェイ装置が、対応するリモートアプリケーションサーバとのアップリンク接続を確立することができる場合、当該アプリケーションメッセージは当該リモートアプリケーションサーバに転送される。アップリンク接続を確立することができない場合、当該アプリケーションメッセージは、ローカルソフトウェアアプリケーションを宛先として変更して送信され、このローカルソフトウェアアプリケーションをその後、アップリンク接続を確立することができると、リモートアプリケーションサーバと同期させることができる。
【００１１】
本明細書において使用されるように、アプリケーションメッセージは、コンピュータシステムが実行するソフトウェアアプリケーションによって行なわれる通信（例えば、情報、リクエスト、またはコマンド）として定義される。アプリケーションメッセージは、同じコンピュータシステムが実行する、または異なるコンピュータシステムが実行する別のソフトウェアアプリケーションが受信するように当該別のソフトウェアアプリケーションを宛先とすることができる。アプリケーションメッセージ群は、例えばビークルセンサデータ（例えば、センサ読み取り値）、ビークルに関連するイベント（例えば、ビークル制御イベント）、テレメトリーデータ、金銭取引（例えば、ビークル搭乗時に行なわれる購入）、及び／又はビークルの運転に関連する任意の他の情報について記述することができる。
【００１２】
図１は、例示的なコンピュータシステム１００のブロック図である。例示的な実施形態では、コンピュータシステム１００は通信ファブリック１０２を含み、通信ファブリック１０２は、プロセッサユニット１０４、メモリ１０６、永続性記憶装置１０８、通信ユニット１１０、入力／出力（Ｉ／Ｏ）ユニット１１２、及びディスプレイ１１４のような提示インターフェースの間の通信を可能にする。更に、または別の構成として、提示インターフェースは、オーディオデバイス（図示せず）、及び／又は情報をユーザに伝えることができる任意のデバイスを含むことができる。
【００１３】
プロセッサユニット１０４は、メモリ１０６に読み込むことができるソフトウェア命令群を実行する。プロセッサユニット１０４は、特定の実施形態によって異なるが、一連の１つ以上のプロセッサとすることができる、または複数のプロセッサコアを含むことができる。更に、プロセッサユニット１０４は、１つ以上の異種プロセッサシステムを用いて実現することができ、これらの異種プロセッサシステムでは、主プロセッサは、副プロセッサ群と一緒に１つのチップ上に設けられる。別の実施形態では、プロセッサユニット１０４は、同じ種類の複数のプロセッサを含む同種プロセッサシステムとすることができる。
【００１４】
メモリ１０６及び永続性記憶装置１０８は記憶装置の例である。本明細書において使用されるように、記憶装置とは、情報を一時的に、そして／または永久に保存することができる任意の個数のハードウェアである。メモリ１０６は、例えばこれらには限定されないが、ランダムアクセスメモリ、及び／又は任意の他の適切な揮発性または不揮発性記憶装置とすることができる。永続性記憶装置１０８は、特定の実施形態によって異なるが、種々の形態を採ることができ、そして永続性記憶装置１０８は、１つ以上のコンポーネントまたはデバイスを含むことができる。例えば、永続性記憶装置１０８は、ハードドライブ、フラッシュメモリ、再書き込み可能な光ディスク、再書き込み可能な磁気テープ、及び／又は上に列挙した要素の或る組み合わせとすることができる。永続性記憶装置１０８が使用する媒体は取り外し可能とすることもできる。例えば、これに限定されないが、取り外し可能なハードドライブを永続性記憶装置１０８に使用することができる。
【００１５】
メモリ１０６及び／又は永続性記憶装置１０８のような記憶装置は、データを保存して、本明細書において記載されるプロセスに使用するように構成することができる。例えば、記憶装置は、仮想マシンに関連する実行可能命令群、及び／又はローカルソフトウェアアプリケーション、アプリケーションメッセージ群、ローカルソフトウェアアプリケーションに関連するデータ、ルーティングコンフィギュレーションデータ（例えば、リモートアプリケーションサーバ群からローカルソフトウェアアプリケーション群へのマッピング）、仮想マシンコンフィギュレーションデータ、ローカルソフトウェアアプリケーションコンフィギュレーションデータ、及び／又はトラフィックシェーピングコンフィギュレーションデータ（例えば、リモートソフトウェアアプリケーション群に関連する優先度）を保存することができる。
【００１６】
通信ユニット１１０はこれらの例では、他のコンピュータシステム群またはデバイス群との通信を可能にする。例示的な実施形態では、通信ユニット１１０は、ネットワークインターフェースカードである。通信ユニット１１０は、物理通信リンク及び無線通信リンクの何れか、または両方を使用することにより、通信を行なうことができる。
【００１７】
入力／出力ユニット１１２によって、データを、コンピュータシステム１００に接続することができる他のデバイス群との間で入出力することができる。例えば、これらには限定されないが、入力／出力ユニット１１２は、接続を可能にすることにより、ユーザ入力を、キーボード及び／又はマウスのようなユーザ入力デバイスを介して行うことができる。更に、入力／出力ユニット１１２は、出力をプリンタに送出することができる。ディスプレイ１１４は、情報をユーザに対して表示する機構となる。例えば、ディスプレイ１１４のような提示インターフェースは、本明細書において記載されるこれらのインターフェースのようなグラフィカルユーザインターフェースを表示することができる。
【００１８】
オペレーティングシステム用命令群、及びアプリケーション群またはプログラム群は、永続性記憶装置１０８に格納される。これらの命令は、メモリ１０６に読み込むことにより、プロセッサユニット１０４によって実行することができる。異なる実施形態のプロセスは、プロセッサユニット１０４によって、コンピュータ実行命令群及び／又はコンピュータ実行可能命令群を使用して実行することができ、これらのコンピュータ命令は、メモリ１０６のようなメモリに格納することができる。これらの命令は、本明細書では、プロセッサユニット１０４内のプロセッサが読み取り、そして実行することができるプログラムコード（例えば、オブジェクトコード及び／又はソースコード）と表記される。プログラムコードは異なる実施形態では、メモリ１０６または永続性記憶装置１０８のような異なる物理コンピュータ可読媒体または有形コンピュータ可読媒体で具体化することができる。
【００１９】
プログラムコード１１６は、選択的に取り外すことができるコンピュータ可読媒体１１８に関数形式で格納することができ、そしてコンピュータシステム１００に読み込むか、または転送することによりプロセッサユニット１０４によって実行することができる。プログラムコード１１６及びコンピュータ可読媒体１１８は、コンピュータプログラム製品１２０をこれらの例において構成する。１つの例では、コンピュータ可読媒体１１８は、例えば光ディスクまたは磁気ディスクのような有形媒体とすることができ、この有形媒体を、永続性記憶装置１０８の一部であるドライブまたは他のデバイスに挿入するか、または収納することにより、永続性記憶装置１０８の一部であるハードドライブのような記憶装置に移送することができる。有形媒体では、コンピュータ可読媒体１１８は、コンピュータシステム１００に接続されるハードドライブ、サムドライブ、またはフラッシュメモリのような永続性記憶装置の形態を採ることもできる。有形のコンピュータ可読媒体１１８は、コンピュータ記録可能記憶媒体と表記することもできる。幾つかの例では、コンピュータ可読媒体１１８は、取り外し可能とする必要はない。
【００２０】
別の構成として、プログラムコード１１６はコンピュータシステム１００に、コンピュータ可読媒体１１８から通信リンクを介して転送して通信ユニット１１０に送信することができる、そして／または接続を介して転送して入力／出力ユニット１１２に送信することができる。通信リンク及び／又は接続は、これらの例示的な例では、物理リンク及び／又は物理接続、または無線リンク及び／又は無線接続とすることができる。コンピュータ可読媒体は、プログラムコードを伝送する通信リンクまたは無線伝送媒体のような無形媒体の形態を採ることもできる。
【００２１】
幾つかの例示的な実施形態では、プログラムコード１１６はネットワークを経由して、別のデバイスから永続性記憶装置１０８に、またはコンピュータシステムにダウンロードして、コンピュータシステム１００内で使用することができる。例えば、サーバコンピュータシステム内のコンピュータ可読記憶媒体に格納されるプログラムコードはネットワークを経由して、サーバからコンピュータシステム１００にダウンロードすることができる。プログラムコード１１６を供給するコンピュータシステムは、サーバコンピュータ、ワークステーション、クライアントコンピュータ、またはプログラムコード１１６を格納し、そして送信することができる他の或るデバイスとすることができる。
【００２２】
プログラムコード１１６は、体系化することにより、機能的に関連付けられるコンピュータ実行可能コンポーネント群とすることができる。例えば、プログラムコード１１６は、ビークル通信コンポーネント、ＷＡＮインターフェースコンポーネント、ローカルアプリケーションコンポーネント、ルーティングコンポーネント、アクセス制御コンポーネント、トラフィックシェーパ−コンポーネント、制御ユーザインターフェースコンポーネント、及び／又は本明細書において記載される方法に適する任意のコンポーネントを含むことができる。各コンポーネントはコンピュータ実行可能命令群を含むことができ、これらのコンピュータ実行可能命令がプロセッサユニット１０４により実行されると、これらのコンピュータ実行可能命令によってプロセッサユニット１０４が、本明細書において記載される操作群のうちの１つ以上の操作を実行するようになる。
【００２３】
コンピュータシステム１００に関して本明細書において図示される異なる構成要素は、異なる実施形態を実現することができる態様に構造上の制約を付与するために図示しているのではない。異なる例示的な実施形態は、コンピュータシステム１００に関して図示されるこれらの構成要素の他に、または代わりに、種々の構成要素を含むコンピュータシステムにおいて実現することができる。図１に示す他の構成要素群は、図示の例示的な例から変えることができる。
【００２４】
一例として、コンピュータシステム１００の記憶装置は、データを保存することができる任意のハードウェア装置である。メモリ１０６、永続性記憶装置１０８、及びコンピュータ可読媒体１１８は、有形の記憶装置の例である。
【００２５】
別の例では、バスシステムを使用して、通信ファブリック１０２を実現することができ、そしてシステムバスまたは入力／出力バスのような１つ以上のバスを含むことができる。勿論、バスシステムは、当該バスシステムに接続される異なるコンポーネント群またはデバイス群の間のデータ転送を可能にする任意の適切なタイプのアーキテクチャを用いて実現することができる。更に、通信ユニットは、データを送受信するために使用される、モデムまたはネットワークアダプターのような１つ以上のデバイスを含むことができる。更に、メモリは、例えばこれらには限定されないが、メモリ１０６とするか、または通信ファブリック１０２に含めることができるインターフェース及びメモリコントローラハブに設置されるようなキャッシュとすることができる。
【００２６】
図２は、１つ以上のビークル２０５と、ワイドエリアネットワーク（ＷＡＮ）２１５の一部である１つ以上のリモートアプリケーションサーバ２１０との間の通信に使用される例示的なシステム２００を示すブロック図である。例示的な実施形態では、ビークル２０５に搭載されるビークルコンピュータシステム２２０は、１つ以上のソフトウェアアプリケーション（図示せず）を実行し、これらのソフトウェアアプリケーションは、アプリケーションメッセージ群を、リモートアプリケーションサーバ２１０が実行する１つ以上のソフトウェアアプリケーション２２５に送信する。リモートアプリケーションサーバ群２１０及びビークルコンピュータシステム２２０は、コンピュータシステム１００（図１に示す）とは別体の例である。
【００２７】
ビークルコンピュータシステム２２０は、アプリケーションメッセージ群を、リモートアプリケーションサーバ２１０にネットワーク２３０を介して送信するように構成することができる。例えば、ビークルコンピュータシステム２２０は、ネットワーク２３０との直接接続を、通信ユニット１１０（図１に示す）を用いて通信規格（例えば、ＡＲＩＮＣ規格８２２、及び／又はＩＥＥＥ  ８０２．１１規格）に従って確立することができる（ＡＲＩＮＣは、メリーランド州アナポリスに本社を置くＡＲＩＮＣ社の商標である。ＩＥＥＥは、ニューヨーク州ニューヨークに本部がある米国電気電子技術者協会の商標である）。
【００２８】
幾つかのシナリオでは、ネットワーク２３０に、ビークルコンピュータシステム２２０がアクセスすることができない。例えば、ビークルコンピュータシステム２２０は、リモートアプリケーションサーバ群２１０と、ネットワーク２３０に接続される無線アクセスポイント（図示せず）を介して通信するように構成することができ、そしてこのような無線アクセスポイントは、無線ネットワークインフラストラクチャを持たない空港、または無線ネットワークを操作することができない空港のような場所では利用することができない。
【００２９】
従って、例示的な実施形態では、システム２００は、ゲートウェイ装置２３５、すなわちコンピュータシステム１００の別の例を含み、このゲートウェイ装置２３５は、ビークルコンピュータシステム２２０との通信に使用される。例示的な実施形態では、ゲートウェイ装置２３５は、ビークルコンピュータシステム２２０と、ビークル通信ユニット２４０を介して通信し、そしてネットワーク２３０とＷＡＮ通信ユニット２４５を介して通信する。ビークル通信ユニット２４０及びＷＡＮ通信ユニット２４５は、通信ユニット１１０（図１に示す）の単一の例、または通信ユニット１１０とは別体の例である。幾つかの実施形態では、ビークル通信ユニット２４０は、ビークルコンピュータシステム２２０と第１通信規格（例えば、ＡＲＩＮＣ規格８２２、及び／又はＩＥＥＥ  ８０２．１１規格）を用いて通信し、そしてネットワーク２３０と第２通信規格（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＧＳＭ（登録商標）のような携帯電話通信規格、及び／又はＩＥＥＥ  ８０２．１１規格）を用いて通信する。（ＧＳＭは、英国のロンドンに本部があるＧＳＭ協会の商標である）。他の実施形態では、ビークル通信ユニット２４０及びＷＡＮ通信ユニット２４５は、同じ通信規格を用いることができる。
【００３０】
例示的な実施形態では、ゲートウェイ装置２３５は、ゲートウェイ装置２３５が１つ以上のビークル２０５に接近している（例えば、１つ以上のビークル２０５の無線通信範囲に位置している）状態で、１つ以上のビークルコンピュータシステム２２０と無線通信する。リモートアプリケーションサーバ群２１０は、ビークル２０５、ゲートウェイ装置２３５、及び／又は互いから離れて位置することができる。
【００３１】
ビークルコンピュータシステム群２２０がネットワーク２３０と直接接続することができない場合でも、ゲートウェイ装置２３５によって、アプリケーションメッセージ群をビークルコンピュータシステム群２２０からリモートソフトウェアアプリケーション群２２５にネットワーク２３０を介して送信することができる。このような通信について、図３〜５を参照しながら以下に説明する。
【００３２】
幾つかの実施形態では、ゲートウェイ装置２３５はコンピュータシステム１００であり、このコンピュータシステム１００は、リモートソフトウェアアプリケーション群２２５との通信を容易にする他に、１つ以上のビークル関連サービスを提供する。例えば、ゲートウェイ装置２３５はメンテナンスラップトップとすることができ、このメンテナンスラップトップは、ビークル２０５に関連するメンテナンスタスクをスケジューリングし、そして記録する。ゲートウェイ装置２３５は、ビークル２０５に搭載されるように配置することができる。更に、または別の構成として、ゲートウェイ装置２３５は、空港のような整備施設に配置することができ、そして複数のビークル２０５のビークルコンピュータシステム群２２０と通信するように構成することができる。例えば、ゲートウェイ装置２３５は、空港のゲートに配置して、ゲートウェイ装置２３５が、当該ゲート、及び１つ以上の隣接ゲートに位置するビークル群２０５の通信範囲に位置するようにすることができる。
【００３３】
図３は、システム２００に用いることができる例示的なゲートウェイ装置２３５のソフトウェアコンポーネント群を示すブロック図である。図４は、ビークル２０５とリモートアプリケーションサーバ２１０（図２に示す）との間の通信に用いることができる例示的な方法４００のフローチャートである。図５は、データをリモートアプリケーションサーバ２１０に送信する際に用いられる例示的な方法４５０のフローチャートである。
【００３４】
図２及び３を参照するに、例示的な実施形態では、ゲートウェイ装置２３５は、ビークルコンピュータシステム２２０とビークル通信ユニット２４０を介して通信するビークル通信インターフェースコンポーネント３０５を含む。ゲートウェイ装置２３５は更に、ネットワーク２３０とＷＡＮ通信ユニット２４５を介して通信するＷＡＮインターフェースコンポーネント３１０を含む。
【００３５】
図３及び４を参照するに、ゲートウェイ装置２３５は、リモートソフトウェアアプリケーション群２２５（図２に示す）に対応する１つ以上のローカルソフトウェアアプリケーション３１５を実行する（操作４０５）。例示的な実施形態では、ゲートウェイ装置２３５は、１つ以上の仮想マシン３２５を実行するローカルアプリケーションコンポーネント３２０を含む。仮想マシン３２５が今度は、１つ以上のローカルソフトウェアアプリケーション３１５を実行する（操作４０５）。ローカルソフトウェアアプリケーション３１５は、ビークルコンピュータシステム２２０（図２に示す）と、リモートソフトウェアアプリケーション２２５がビークルコンピュータシステム２２０と対話する方法とは区別できない方法で対話するように動作することができる。
【００３６】
動作状態では、ビークル通信インターフェースコンポーネント３０５は、アプリケーションメッセージをビークルコンピュータシステム２２０から受信する（操作４１０）。アプリケーションメッセージは、リモートアプリケーションサーバ２１０（図２に示す）から供給されるリモートソフトウェアアプリケーション２２５に関連付けられる。例えば、アプリケーションメッセージは、ネーム（例えば、ホストネーム）、ネットワークアドレス、及び／又はリモートアプリケーションサーバ２１０に関連するメッセージキュー宛てとすることができる。
【００３７】
ルーティングコンポーネント３３０は、アプリケーションメッセージをリモートアプリケーションサーバ２１０に転送すべきかどうかについて判断する（操作４１５）。例示的な実施形態では、ルーティングコンポーネント３３０は、即時転送が適切であるかどうかを、アプリケーションメッセージに関連する宛先アドレスに少なくとも部分的に基づいて判断する（操作４１５）。例えば、宛先アドレスが、ローカルソフトウェアアプリケーション３１５に対応しないリモートソフトウェアアプリケーション２２５に関連する場合、ルーティングコンポーネント３３０は、即時転送が適切であると判断することができる。このような実施形態によって、ゲートウェイ装置２３５にキャッシュすることができないアプリケーションメッセージの即時転送が容易になる。１つの実施形態では、ルーティングコンポーネント３３０は、宛先アドレスが、ローカルソフトウェアアプリケーション３１５に正に対応するリモートソフトウェアアプリケーション２２５に関連する場合に、即時転送が適切ではないと判断する（操作４１５）。
【００３８】
ルーティングコンポーネント３３０が、アプリケーションメッセージを転送すべきであると判断する（操作３１５）と、ルーティングコンポーネント３３０は、アプリケーションメッセージをリモートアプリケーションサーバ２１０に転送する（操作４２０）。例えば、ルーティングコンポーネント３３０は、アプリケーションメッセージを、ＷＡＮインターフェースコンポーネント３１０を介して転送する（操作４２０）ことができる。幾つかの実施形態では、アプリケーションメッセージをリモートアプリケーションサーバ２１０に転送する操作４２０では、アプリケーションメッセージに対する応答を、リモートアプリケーションサーバ２１０から受信し、そして当該応答をビークルコンピュータシステム２２０に、ビークル通信インターフェースコンポーネント３０５を介して転送する。
【００３９】
ルーティングコンポーネント３３０が、アプリケーションメッセージを転送すべきではないと判断する（操作４１５）と、ルーティングコンポーネント３３０はアプリケーションメッセージを、内部ネットワーク３３５を介して、ローカルソフトウェアアプリケーション３１５に宛先を変更して送信する。例示的な実施形態では、ローカルソフトウェアアプリケーション３１５は、内部ネットワーク３３５に対応するネットワークアドレスに関連する仮想マシン３２５内で実行される。例えば、内部ネットワーク３３５は、ソフトウェアコンポーネントとして実現することができ、そして各仮想マシン３２５は、内部ネットワーク３３５内の１つ以上の「仮想」アドレスに関連付けることができる。幾つかの実施形態では、アプリケーションメッセージをローカルソフトウェアアプリケーション３１５に宛先を変更して送信する操作４２５では、アプリケーションメッセージに対する応答を、ローカルソフトウェアアプリケーション３１５から受信し、そして当該応答をビークルコンピュータシステム２２０に、ビークル通信インターフェースコンポーネント３０５を介して転送する。
【００４０】
幾つかの実施形態では、ルーティングコンポーネント３３０は、アプリケーションメッセージを転送すべきかどうかを、アップリンク接続状態に少なくとも部分的に基づいて判断する（操作４１５）。例えば、ＷＡＮインターフェースコンポーネント３１０は、リモートアプリケーションサーバ２１０とのアップリンク接続を確立することができるかどうかを判断する。１つの実施形態では、ＷＡＮインターフェースコンポーネント３１０は、アップリンク接続を確立することができるかどうかを、ネットワーク２３０（図２に示す）とのアップリンク接続を確立することができるかどうかを判断することにより、繰り返し（例えば、定期的に、継続的に、またはメッセージを送信しようとするときに）判断する。このような実施形態では、リモートアプリケーションサーバ２１０とのアップリンク接続を確立することができる場合、ルーティングコンポーネント３３０は、アプリケーションメッセージをリモートアプリケーションサーバ２１０に転送する（操作４２０）ことができる。リモートアプリケーションサーバ２１０とのアップリンク接続を確立することができない場合、ルーティングコンポーネント３３０は、アプリケーションメッセージをローカルソフトウェアアプリケーション３１５に宛先を変更して送信する（操作４２５）。
【００４１】
幾つかの実施形態では、ルーティングコンポーネント３３０は、ルーティングドメインネームシステム（ＤＮＳ）コンポーネント３４０と、そしてプレルーティングコンポーネント３４５と、を含む。アップリンク接続を確立させることができない場合に、ルーティングＤＮＳコンポーネント３４０及びプレルーティングコンポーネント３４５によって、アプリケーションメッセージを、仮想マシン３２５及び／又はローカルソフトウェアアプリケーション３１５に関連するネットワークアドレスに宛先を変更して送信する（操作４２５）ことができる。本明細書において使用されるように、ネットワークアドレスとは、これにのみ限定されないが、インターネットプロトコル（ＩＰ）バージョン４（ＩＰｖ４）アドレスまたはＩＰバージョン６（ＩＰｖ６）アドレスのような数値アドレスを含むことができる。
【００４２】
ルーティングＤＮＳコンポーネント３４０によって、リモートアプリケーションサーバ２１０及び／又はリモートアプリケーション２２５に対応するネームをネットワークアドレスに変換することができる。１つの実施形態では、ビークル通信インターフェースコンポーネント３０５は、リモートアプリケーションサーバ２１０に対応するネットワークアドレス宛てのリクエストを、ビークルコンピュータシステム２２０から受信する。リモートアプリケーションサーバ２１０とのアップリンク接続を確立することができる場合、ルーティングＤＮＳコンポーネント３４０はビークルコンピュータシステム２２０に、ネットワークアドレスリクエストが行なわれると、リモートアプリケーションサーバ２１０に関連するネットワークアドレスを送信する。アップリンク接続を確立することができない場合、ルーティングＤＮＳコンポーネント３４０は、ネットワークアドレスリクエストが行なわれると、仮想マシン３２５及び／又はローカルソフトウェアアプリケーション３１５に対応するネットワークアドレスをビークルコンピュータシステム２２０に送信することにより、アプリケーションメッセージを、宛先を変更して送信する（操作４２５）。ビークルコンピュータシステム２２０はそれに続いて、当該ネットワークアドレス宛てのアプリケーションメッセージを送信し、そしてルーティングＤＮＳコンポーネント３４０は、当該アプリケーションメッセージを、仮想マシン３２５及び／又はローカルソフトウェアアプリケーション３１５に、内部ネットワーク３３５を介して転送する。
【００４３】
別の実施形態では、ビークル通信インターフェースコンポーネント３０５は、ビークルコンピュータシステム２２０から、リモートアプリケーションサーバ２１０及び／又はリモートソフトウェアアプリケーション２２５に対応するネーム（ホストネーム及び／又はメッセージキューネーム）宛のアプリケーションメッセージを受信する。リモートアプリケーションサーバ２１０とのアップリンク接続を確立することができる場合、ルーティングＤＮＳコンポーネント３４０はアプリケーションメッセージを、リモートアプリケーションサーバ２１０に対応するネットワークアドレスに転送する（操作４２０）。アップリンク接続を確立することができない場合、ルーティングＤＮＳコンポーネント３４０はアプリケーションメッセージを、当該アプリケーションメッセージを仮想マシン３２５及び／又はローカルソフトウェアアプリケーション３１５に対応するネットワークアドレスに転送することにより、宛先を変更して送信する（操作４２５）。
【００４４】
プレルーティングコンポーネント３４５によって、リモートアプリケーションサーバ２１０に対応するネットワークアドレスを、仮想マシン３２５及び／又はローカルソフトウェアアプリケーション３１５に対応するネットワークアドレスに変換することができる。１つの実施形態では、ビークル通信インターフェース３０５は、リモートアプリケーションサーバ２１０に対応する宛先ネットワークアドレスに関連するアプリケーションメッセージを受信する。リモートアプリケーションサーバ２１０とのアップリンク接続を確立することができる場合、プレルーティングコンポーネント３４５によって、アプリケーションメッセージをリモートアプリケーションサーバ２１０に転送することができる（操作４２０）。例えば、プレルーティングコンポーネント３４５は、アップリンク接続を確立することができる場合に、アクションを起こさない、そして／またはアプリケーションメッセージをルーティングＤＮＳコンポーネント３４０またはＷＡＮインターフェース３１０に単に転送するだけで済ませることができる。アップリンク接続を確立することができない場合、プレルーティングコンポーネント３４５は、アプリケーションメッセージを仮想マシン３２５及び／又はローカルソフトウェアアプリケーション３１５に対応するネットワークアドレスに転送することにより少なくとも部分的に、アプリケーションメッセージをローカルソフトウェアアプリケーションに宛先を変更して送信する（操作４２５）。
【００４５】
アプリケーションメッセージをローカルソフトウェアアプリケーション３１５に宛先を変更して送信する（操作４２５）と、ローカルソフトウェアアプリケーション３１５は、アプリケーションメッセージを受信し、そしてアプリケーションメッセージに含まれるデータを保存する（操作４３０）、または「キャッシュする」。例えば、データは、メモリ１０６及び／又は永続性記憶装置１０８（図１に示す）に保存することができる（操作４３０）。幾つかの実施形態では、アプリケーションメッセージも保存する（操作４３０）。他の実施形態では、アプリケーションメッセージに含まれるデータを、データトランザクション（例えば、追加、更新、及び／又は消去）をアプリケーションメッセージに基づいて実行することにより保存する（操作４３０）。例えば、新規のセンサ読み取り値を示すアプリケーションメッセージは、当該センサ読み取り値をメモリ１０６内の、または永続性記憶装置１０８内のデータベースに追加することにより保存することができる（操作４３０）。
【００４６】
後の時点で、ＷＡＮインターフェースコンポーネント３１０は、リモートアプリケーションサーバ２１０とのアップリンク接続を確立し、そしてローカルソフトウェアアプリケーション３１５及び／又はローカルソフトウェアコンポーネント３２０は、保存データをリモートソフトウェアアプリケーション２２５に同期させる（操作４３５）。方法４００を繰り返し実行して、１つ以上のビークルコンピュータシステム２２０からの複数のアプリケーションメッセージを転送する、そして／またはキャッシュすることができる。
【００４７】
幾つかの実施形態では、ゲートウェイ装置２３５は、ビークルコンピュータシステム２２０による認証、権限付与、及び／又は課金を可能にするアクセス制御コンポーネント３５０を含む。例えば、アクセス制御コンポーネント３５０はビークル通信インターフェース３０５を、暗号鍵または暗号証明書のような所定の認証情報を供給するビークルコンピュータシステム２２０との通信にのみ制限することができる。更に、アクセス制御コンポーネント３５０は、ビークルコンピュータシステム２２０によるアクセスを、このような認証情報に基づいて制限することができる。例えば、アクセス制御コンポーネント３５０は、ゲートウェイ装置２３５が、アプリケーションメッセージを、ビークルコンピュータシステム２２０が発行する認証情報によって認証されないリモートアプリケーションサーバ２１０及び／又はリモートソフトウェアアプリケーション２２５に転送する（操作４２０）ことを禁止する。１つの実施形態では、アクセス制御コンポーネント３５０は、リモート認証ダイヤルインユーザサービス（ＲＡＤＩＵＳ）コンポーネントを含む。
【００４８】
幾つかの実施形態によって、ゲートウェイ装置２３５によるアプリケーションメッセージの送信の優先順位付け、または「ｓｈａｐｉｎｇ（シェーピング）」が容易になる。例示的な実施形態では、ゲートウェイ装置は、トラフィックシェーパーコンポーネント３５５を含む。アプリケーションメッセージをリモートアプリケーションサーバ２１０に転送する（操作４２０）前に、トラフィックシェーパーコンポーネント３５５は、優先度をアプリケーションメッセージに割り当て（操作４１７）、そしてアプリケーションメッセージを送信キューに追加する（操作４１８）。幾つかの実施形態では、優先度は数値表現される（指定番号の絶対値に比例する、または逆比例する）、そして／または文章表現される（例えば、「低優先度」、「通常優先度」、及び「高優先度」）。
【００４９】
図３〜５を参照するに、例示的な実施形態では、方法４００及び方法４５０は、ゲートウェイ装置２３５によって同時に実行される。例えば、方法４００及び／又は４５０は、別々のプロセス及び／又はスレッドにより実行することができる。
【００５０】
ＷＡＮインターフェース３１０は、アップリンク接続を確立することができることを上記のように判断する（操作４５２）。トラフィックシェーパーコンポーネント３５５はアプリケーションメッセージ群を、何れかのアプリケーションメッセージ群が送信キューに含まれているかどうかを判断する（操作４５５）ことにより転送し（操作４２０）、そしてアプリケーションメッセージが送信キューに含まれている場合に、最高の優先度が割り当てられている（操作４１７）アプリケーションメッセージを、当該アプリケーションメッセージに関連するリモートアプリケーションサーバ２１０に転送する（操作４６０）。
【００５１】
更に、例示的な実施形態では、アップリンク接続を確立することができる場合、ローカルソフトウェアアプリケーション３１５及び／又はローカルアプリケーションコンポーネント３２０は、同期させる必要がある（操作４３５）何れかの保存データがあるかどうかを判断する（操作４６５）ことにより、保存データをリモートソフトウェアアプリケーション２２５に同期させ、そして同期させる必要がある何れかの保存データがある場合に、保存データを含む１つ以上のアプリケーションメッセージを生成し、そして送信待ち状態とする（操作４７０）。図４を参照して上に説明したように、アプリケーションメッセージ群には優先度を、トラフィックシェーパーコンポーネント３５５によって割り当てる（操作４１７）ことができる。
【００５２】
例示的な実施形態では、ゲートウェイ装置２３５は、制御ユーザインターフェースコンポーネント３６０を含み、制御ユーザインターフェースコンポーネント３６０によってユーザは、ゲートウェイ装置２３５によって実行されるコンポーネント群の動作を設定することができる。図６は、ゲートウェイ装置２３５を設定するために使用される例示的なユーザインターフェース５００である。ユーザインターフェース５００は、制御ユーザインターフェースコンポーネント３６０（図３に示す）によって、ディスプレイ１１４（図１に示す）を介して提示することができる。
【００５３】
例示的な実施形態では、ユーザインターフェース５００は、第１リモートソフトウェアアプリケーション５０５、第２リモートソフトウェアアプリケーション５１０、及び第３リモートソフトウェアアプリケーション５１５に関するルーティング情報を含む。各リモートソフトウェアアプリケーションに対応して、ユーザインターフェース５００は、リモートソフトウェアアプリケーションを実行するアプリケーションサーバのネーム５２０、ネットワークアドレス５２５、もしあるとした場合の対応するローカルソフトウェアアプリケーションのネットワークアドレス５３０、及び優先度５３５を表示する。
【００５４】
当該例示的な実施形態では、ネットワークアドレス５２５及び５３０は、ホストネームまたは数値アドレス（例えば、ＩＰｖ４またはＩＰｖ６アドレス）の何れかとすることができるホストアドレス５４０、及びポート番号５４５の組み合わせである。優先度５３５は、「通常優先度」または「高優先度」の何れかとして文字表現される。ユーザは、ユーザインターフェース５００に表示される種々値のうちの１つ以上の値を選択し、そして変更して、ゲートウェイ装置２３５（図２及び３に示す）の動作を設定することができる。更に、または別の構成として、ユーザインターフェース５００は１つ以上の値を自動的に収集することができる。例えば、第３リモートソフトウェアアプリケーション５１５は、ローカルソフトウェアアプリケーションのネットワークアドレス５３０に関連付けられない。従って、ユーザインターフェース５００は、第３リモートソフトウェアアプリケーション５１５を高優先度５３５に関連付けることができる。このような実施形態によって、対応するローカルソフトウェアアプリケーションが存在しない場合のリモートソフトウェアアプリケーションに関連するアプリケーションメッセージ群の配信に容易に優先度を持たせることができる。
【００５５】
図２〜６を参照するに、例示的な実施形態では、第１アプリケーションメッセージをビークル通信インターフェース３０５が受信し（操作４１０）、そしてＷＡＮインターフェース３１０は、第１アプリケーションメッセージを転送すべきであると判断する（操作４１５）。トラフィックシェーパーコンポーネント３５５は、優先度を第１アプリケーションメッセージに、当該アプリケーションメッセージに関連する宛先（例えば、リモートアプリケーションサーバ２１０及び／又はリモートソフトウェアアプリケーション２２５）に基づいて割り当てる（操作４１７）。例えば、第１アプリケーションメッセージがリモートソフトウェアアプリケーション５０５宛である場合、トラフィックシェーパーコンポーネント３５５は、通常優先度を第１アプリケーションメッセージに、ユーザインターフェース５００に表示される設定に基づいて割り当てる（操作４１７）。トラフィックシェーパーコンポーネント３５５は、第１アプリケーションメッセージを送信キューに追加する（操作４１８）。
【００５６】
第３ソフトウェアアプリケーション５１５宛の第２アプリケーションメッセージは、第１アプリケーションメッセージが第１リモートソフトウェアアプリケーション５０５に転送される（操作４２０）前に受信する（操作４１０）。第２アプリケーションメッセージは、第３リモートソフトウェアアプリケーション５１５宛であるので、トラフィックシェーパーコンポーネント３５５は、高優先度を第２アプリケーションメッセージに、ユーザインターフェース５００に表示される設定に基づいて割り当て（操作４１７）、そして第２アプリケーションメッセージを送信キューに追加する（操作４１８）。トラフィックシェーパーコンポーネント３５５は、第１及び第２アプリケーションメッセージが送信キューで送信待ちになっていると判断する（操作４５５）。
【００５７】
第２アプリケーションメッセージに、第１アプリケーションメッセージに割り当てられる（操作４１７）優先度よりも高い優先度が割り当てられている（操作４１７）ので、トラフィックシェーパーコンポーネント３５５は、第２アプリケーションメッセージを、第３リモートソフトウェアアプリケーション５１５に関連するネットワークアドレス５２５に転送する（操作４６０）。続いて、トラフィックシェーパーコンポーネント３５５は、第１アプリケーションメッセージのみが送信キューで送信待ちになっていると判断し（操作４５５）、そして第１アプリケーションメッセージを、第１リモートソフトウェアアプリケーション５０５に関連するネットワークアドレス５２５に転送する（操作４６０）。同様の手法を、保存データをリモートソフトウェアアプリケーション２２５と同期させる操作（操作４３５）の一部として生成され、そして送信待ち状態となっている（操作４７０）アプリケーションメッセージ群に対して実施することができる。
【００５８】
本明細書において記載される実施形態によって、ビークルコンピュータシステムは、ビークル関連データをアップロードして適切なリモートソフトウェアアプリケーションに、ビークルコンピュータシステムが、このようなリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバとのアップリンク接続を確立することができない場合でも最終的に配信することができる。提供される実施形態によって更に、ビークル関連データの転送に対して、ユーザ定義設定に基づいて、そして／またはアプリケーションメッセージに関連するリモートソフトウェアアプリケーションに対応するローカルソフトウェアアプリケーションが存在しているかどうかに基づいて、容易に優先度を持たせることができる。
【００５９】
記述される本説明では、複数例を用いて、最良の形態を含む種々の実施形態を開示することにより、この技術分野の当業者であれば必ず、これらの実施形態を実施することができ、任意のデバイスまたはシステムを作製し、そして使用し、そして任意の関連する方法を実行することができるようにしている。特許可能な範囲は、請求項によって規定され、そしてこの技術分野の当業者が想到することができる他の例を包含することができる。このような他の例は、請求項の範囲に、これらの他の例が、これらの請求項の文言とは異ならない構造的要素群を有する場合に、またはこれらの他の例が、これらの請求項の文言とは殆ど差がない等価な構造的要素群を含む場合に包含されるべきである。
本発明は以下に記載する態様を含む。
（態様１）
ビークルとリモートアプリケーションサーバとの間で通信する方法であって、前記方法は：
コンピュータシステムで、ビークルから送信されるアプリケーションメッセージを受信することと、
前記コンピュータシステムによって、前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに転送すべきかどうかを判断することと、
前記アプリケーションメッセージを転送すべきではない場合に、前記アプリケーションメッセージを、前記コンピュータシステムによって実行されるローカルソフトウェアアプリケーションに宛先を変更して送信することと、
を含む、方法。
（態様２）
前記ローカルソフトウェアアプリケーションは、前記アプリケーションメッセージに含まれるデータを保存し、前記方法は更に、前記アプリケーションメッセージを、宛先を変更して送信した後に：
前記リモートアプリケーションサーバとのアップリンク接続を確立することと、
前記保存データを、前記リモートアプリケーションサーバによって供給される前記リモートソフトウェアアプリケーションと同期させることと、
を含む、態様１に記載の方法。
（態様３）
更に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきであると判断される場合に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送することを含む、態様１に記載の方法。
（態様４）
アプリケーションメッセージを受信することは、前記ビークルから送信されるアプリケーションメッセージを、第１通信規格を利用して受信することを含み、そして前記アプリケーションメッセージを転送することは、前記アプリケーションメッセージを、第２通信規格を利用して転送することを含む、態様３に記載の方法。
（態様５）
前記アプリケーションメッセージは、複数のアプリケーションメッセージの第１アプリケーションメッセージであり、前記方法は、
優先度を前記第１アプリケーションメッセージに割り当てることと、
前記第１アプリケーションメッセージを、前記複数のアプリケーションメッセージの第２アプリケーションメッセージを転送する前に、前記第１アプリケーションメッセージに割り当てられる前記優先度、及び前記第２アプリケーションメッセージに割り当てられる優先度に少なくとも部分的に基づいて転送することと、
更にを含む、態様３に記載の方法。
（態様６）
前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきかどうかを判断することは、アップリンク接続を前記コンピュータシステムと前記リモートアプリケーションサーバとの間で確立することができるかどうかを判断することを含む、態様１に記載の方法。
（態様７）
ビークルとリモートアプリケーションサーバとの間の通信に使用されるゲートウェイ装置であって、前記装置は：
アプリケーションメッセージをビークルに搭載されるコンピュータシステムから受信するように構成されるビークル通信ユニットであって、前記アプリケーションメッセージが、リモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに対応する宛先に関連付けられる、前記ビークル通信ユニットと、
前記ビークル通信ユニットに接続されるプロセッサユニットと、を備え、前記プロセッサユニットは：
前記リモートソフトウェアアプリケーションに対応するローカルソフトウェアアプリケーションを実行し；前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきかどうかを判断し；そして前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記アプリケーションメッセージを前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようにプログラムされ、前記ローカルソフトウェアアプリケーションは前記コンピュータシステムと、前記リモートソフトウェアアプリケーションが前記コンピュータシステムと対話する形式と区別できない形式で対話する、ゲートウェイ装置。
（態様８）
前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきである場合に、前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送するように構成されるワイドエリアネットワーク（ＷＡＮ）通信ユニットを更に備える、態様７に記載のゲートウェイ装置。
（態様９）
前記アプリケーションメッセージは、複数のアプリケーションメッセージの第１アプリケーションメッセージであり、そして前記ＷＡＮ通信ユニットは、前記複数のアプリケーションメッセージの各アプリケーションメッセージを、前記アプリケーションメッセージに対応するリモートアプリケーションサーバに、前記対応するリモートアプリケーションサーバとのアップリンク接続を確立することができる場合に転送するように更に構成される、態様８に記載のゲートウェイ装置。
（態様１０）
前記プロセッサユニットは、
優先度を前記複数のアプリケーションメッセージの各アプリケーションメッセージに、前記アプリケーションメッセージに関連する宛先に基づいて割り当て、そして
第１優先度が割り当てられる前記アプリケーションメッセージ群を、前記第１優先度よりも低い第２優先度が割り当てられる前記アプリケーションメッセージ群を転送する前に転送するように更にプログラムされる、
態様９に記載のゲートウェイ装置。
（態様１１）
記憶装置であって、前記アプリケーションメッセージが宛先を変更して送信されると、前記ローカルソフトウェアアプリケーションが、前記記憶装置内のデータを更新する、前記記憶装置と、
ワイドエリアネットワーク（ＷＡＮ）通信ユニットと、を更に備え、前記ＷＡＮ通信ユニットは：
前記ローカルソフトウェアアプリケーションが前記データを更新した後に、前記リモートアプリケーションサーバとのアップリンク接続を確立し、そして
前記更新データを前記リモートアプリケーションサーバに送信するように構成される、
態様７に記載のゲートウェイ装置。
（態様１２）
前記ローカルソフトウェアアプリケーションは、第１リモートソフトウェアアプリケーションに対応する第１ローカルソフトウェアアプリケーションであり、そして前記プロセッサユニットは、
前記第１ローカルソフトウェアアプリケーションを第１仮想マシン内で実行し、
第２リモートソフトウェアアプリケーションに対応する第２ローカルソフトウェアアプリケーションを第２仮想マシン内で実行し、
アプリケーションメッセージ群を、前記第２リモートソフトウェアアプリケーションを供給する第２リモートアプリケーションサーバに転送すべきかどうかを判断し、
アプリケーションメッセージ群を前記第２リモートアプリケーションサーバに転送すべきではない場合に、前記第２リモートアプリケーションサーバに対応する宛先に関連するアプリケーションメッセージ群を、前記第２ローカルソフトウェアアプリケーションに宛先を変更して送信するように更にプログラムされる、
態様７に記載のゲートウェイ装置。
（態様１３）
前記アプリケーションメッセージは、第１ビークルに搭載される第１コンピュータシステムから受信する第１アプリケーションメッセージであり、
前記ビークル通信ユニットは、前記リモートアプリケーションサーバに対応する前記宛先に関連する第２アプリケーションメッセージを、第２ビークルに搭載される第２コンピュータシステムから受信するように更に構成され、そして
前記プロセッサユニットは、前記第２アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記第２アプリケーションメッセージを前記ローカルソフトウェアアプリケーションに宛先を変更して送信するように更にプログラムされる、
態様７に記載のゲートウェイ装置。
（態様１４）
コンピュータ実行可能コンポーネント群を有する１つ以上のコンピュータ可読媒体であって、前記コンポーネント群は：
ローカルソフトウェアアプリケーションコンポーネントであって、該ローカルソフトウェアアプリケーションコンポーネントが前記少なくとも１つのプロセッサユニットによって実行されると、前記ローカルソフトウェアアプリケーションコンポーネントによって、前記少なくとも１つのプロセッサユニットがローカルソフトウェアアプリケーションを実行するようになる、前記ローカルソフトウェアアプリケーションコンポーネントと、
ビークル通信インターフェースコンポーネントであって、該ビークル通信インターフェースコンポーネントが少なくとも１つのプロセッサユニットによって実行されると、前記ビークル通信インターフェースコンポーネントによって、前記少なくとも１つのプロセッサユニットが、ビークルに搭載されるコンピュータシステムから送信されるアプリケーションメッセージを受信するようになる、前記ビークル通信インターフェースコンポーネントと、
ルーティングコンポーネントであって、該ルーティングコンポーネントが少なくとも１つのプロセッサユニットによって実行されると、前記ルーティングコンポーネントによって、前記少なくとも１つのプロセッサユニットが：
前記アプリケーションメッセージを、前記アプリケーションメッセージに関連するリモートソフトウェアアプリケーションを供給するリモートアプリケーションサーバに転送すべきかどうかを判断し、そして
前記アプリケーションメッセージを前記リモートアプリケーションサーバに転送すべきではない場合に、前記アプリケーションメッセージを、前記ローカルソフトウェアアプリケーションに宛先を変更して送信するようになる、
１つ以上のコンピュータ可読媒体。
（態様１５）
前記アプリケーションメッセージは、第１リモートソフトウェアアプリケーションに対応する第１アプリケーションメッセージであり、そして前記ルーティングコンポーネントによって、前記少なくとも１つのプロセッサユニットは、第２アプリケーションメッセージを、該第２アプリケーションメッセージに関連する第２リモートソフトウェアアプリケーションを供給する第２リモートアプリケーションサーバに転送するようになり、前記第２アプリケーションメッセージは、第１アプリケーションメッセージの後に受信され、そして前記コンピュータシステム実行可能コンポーネント群は更に、トラフィックシェーピングコンポーネントを備え、該トラフィックシェーピングコンポーネントが少なくとも１つのプロセッサユニットによって実行されると、前記トラフィックシェーピングコンポーネントによって、前記少なくとも１つのプロセッサユニットが：
第１優先度を、前記第１リモートソフトウェアアプリケーションに関連付け、
前記第１優先度よりも高い第２優先度を、前記第２リモートソフトウェアアプリケーションに関連付け、そして
前記第１アプリケーションメッセージを転送する前に、前記第２アプリケーションメッセージを、前記第１優先度及び前記第２優先度に基づいて転送するようになる、
態様１４に記載の１つ以上のコンピュータ可読媒体。
【図１】
0005984818.tif 000002
【図２】
0005984818.tif 000003
【図３】
0005984818.tif 000004
【図４】
0005984818.tif 000005
【図５】
0005984818.tif 000006
【図６】
0005984818.tif 000007