(57)【要約】  ソフトウェアアプリケーションを実行する方法。記憶装置（１２０）は、接続データ（１２１１）、ソフトウェアアプリケーションの識別子（１２１２）、コンテクストセレクタ（１２３２）及びアプリケーションランチャ（１２３３）を格納する。実行装置は、接続データを用いてサーバ（１３０）に接続する（２３１）。記憶装置は、実行装置のため第１コンテクストを生成するため、それを実行する実行装置にコンテクストセレクタを転送する。識別子と第１コンテクストとは、第１コンテクストと共に格納される（２３４）ソフトウェアアプリケーション（１２３１）を記憶装置が受信するサーバに送信される。アプリケーションランチャは、実行のため（２４１）実行装置に転送される。実行装置の第２コンテクストが生成され、記憶装置は、それが第１コンテクストに一致するか確認する（２４４）、そうである場合、記憶装置は、実行される実行装置にソフトウェアアプリケーションを転送する。
2013517551.tif 000002
【特許請求の範囲】
【請求項１】
第１ソフトウェアアプリケーションを実行するよう構成される第１装置を有するシステムにおいて前記第１ソフトウェアアプリケーションをダウンロードする方法であって、
前記第１装置は、前記第１ソフトウェアアプリケーションの識別子を格納する第２装置に接続され、
当該方法は、前記第２装置において、
前記第１装置の第１コンフィギュレーション情報を取得するステップと、
サーバへの送信のため、前記識別子と前記第１コンフィギュレーション情報とを前記第１装置に送信するステップと、
前記識別子と前記第１コンフィギュレーション情報とに対応する前記ソフトウェアアプリケーションを前記サーバから受信するステップと、
前記ソフトウェアアプリケーションを前記第１装置に転送するステップと、
を有する方法。
【請求項２】
前記転送するステップの前に、前記第１装置の第２コンフィギュレーション情報が前記第１コンフィギュレーション情報に一致するか検証するステップをさらに有し、
前記転送するステップは、肯定的な検証の場合にのみ実行される、請求項１記載の方法。
【請求項３】
前記第２コンフィギュレーション情報は、前記第１装置から受信される、請求項２記載の方法。
【請求項４】
前記第１コンフィギュレーション情報は、
コンフィギュレーション選択アプリケーションを前記第１装置に転送し、
前記第１装置の第１コンフィギュレーション情報を生成するため、前記コンフィギュレーション選択アプリケーションを実行した前記第１装置から前記第１コンフィギュレーション情報を受信する、
ことによって取得される、請求項１記載の方法。
【請求項５】
前記第１コンフィギュレーション情報と前記ソフトウェアアプリケーションとを格納するステップをさらに有する、請求項１記載の方法。
【請求項６】
前記サーバとの接続のための接続データを前記第１装置に送信するステップをさらに有する、請求項１記載の方法。
【請求項７】
第１ソフトウェアアプリケーションを実行するためのシステムにおける第１装置であって、
前記システムはさらに、前記第１ソフトウェアアプリケーションを実行するよう構成される第２装置を有し、
当該第１装置は、前記第２装置に接続され、
当該第１装置は、
前記第１ソフトウェアアプリケーションの識別子を格納するメモリと、
プロセッサと、
を有し、
前記プロセッサは、
前記第２装置の第１コンフィギュレーション情報を取得し、
サーバへの送信のため、前記識別子と前記第１コンフィギュレーション情報とを前記第２装置に送信し、
前記識別子と前記第１コンフィギュレーション情報とに対応する前記第１ソフトウェアアプリケーションを前記サーバから受信し、
前記第１ソフトウェアアプリケーションを前記第２装置に転送する、
よう構成される第１装置。
【請求項８】
前記プロセッサはさらに、当該第１装置の第２コンフィギュレーション情報が前記第１コンフィギュレーション情報に一致していることを検証するよう構成され、
前記転送は、肯定的な検証の場合にのみ実行される、請求項７記載の第１装置。
【請求項９】
前記プロセッサはさらに、前記実行装置から前記第２コンフィギュレーション情報を受信するよう構成される、請求項８記載の第１装置。
【請求項１０】
前記プロセッサは、
前記実行装置にコンフィギュレーション選択アプリケーションを転送し、
前記実行装置の第１コンフィギュレーション情報を生成するため、前記コンフィギュレーション選択アプリケーションを実行した実行装置から前記第１コンフィギュレーション情報を受信する、
ことによって前記第１コンフィギュレーション情報を取得するよう構成される、請求項７記載の第１装置。
【請求項１１】
前記メモリはさらに、前記第１コンフィギュレーション情報と前記ソフトウェアアプリケーションとを格納するためのものである、請求項７記載の第１装置。
【請求項１２】
前記プロセッサはさらに、前記サーバとの接続のための接続データを前記実行装置に送信するよう構成される、請求項７記載の第１装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にソフトウェアに関し、特にソフトウェアの配信に関する。
【背景技術】
【０００２】
本セクションは、以下に開示及び／又は請求される本発明の各種態様に関する各種技術態様を読者に紹介することを意図する。本開示は、本発明の各種態様のより良い理解を実現するため、読者に背景情報を提供するのに役立つと信じられる。従って、これらの説明はこの観点で参照されるべきものであり、従来技術の自認として参照されるべきでないことが理解されるべきである。
【０００３】
もちろん、通常はユーザに所望のバージョンを選択させ（オペレーティングシステムに依存して）、ＤＶＤ、ＵＳＢキーなどからソフトウェアをダウンロード又はインストールすることに基づき、ソフトウェアを配信する多数の既存の方法がある。第１の変形は、正確なソフトウェアイメージをターゲットコンピュータにダウンロードすることであるが、これは、ターゲットコンピュータのコンフィギュレーションとソフトウェアイメージが意図されるコンフィギュレーションとの間の最も些細な相違がある場合に問題を生じさせる。第２の変形は、ユーザがターゲットコンピュータのコンフィギュレーションを手動により入力するか、又はインストレーションプログラムにこれを自動的に実行させるようユーザに要求するインストレーションプログラムを実行することである。この第２の変形は、ターゲットコンピュータに正確に一致するソフトウェアイメージを生じさせる。
【０００４】
基本的なスキームに対する各種付加機能が、その本質を変更することなく、例えば、ＵＳ２００８／００４６７０８、ＷＯ２００８／１５４４２６、ＵＳ２００６／０２１８５４９、ＵＳ２００６／０７５４８６、ＵＳ２００８／２５０４７６などに提供される。
【０００５】
これらの手段による欠点は、それらがあまりフレキシブルでないことである。従って、ソフトウェアインストレーションのためのよりフレキシブルな手段が必要とされることが理解できる。本発明は、このような手段を提供する。
【発明の概要】
【０００６】
第１の態様では、本発明は、第１ソフトウェアアプリケーションを実行するよう構成される第１装置を有するシステムにおいて前記第１ソフトウェアアプリケーションをダウンロードする方法であって、前記第１装置は、前記第１ソフトウェアアプリケーションの識別子を格納する第２装置に接続される方法に関する。前記第２装置は、前記第１装置の第１コンフィギュレーション情報を取得し、サーバへの送信のため、前記識別子と前記第１コンフィギュレーション情報とを前記第１装置に送信し、前記識別子と前記第１コンフィギュレーション情報とに対応する前記ソフトウェアアプリケーションを前記サーバから受信し、前記ソフトウェアアプリケーションを前記第１装置に転送する。
【０００７】
第１の好適な実施例では、第２装置は、前記転送するステップの前に、前記第１装置の第２コンフィギュレーション情報が前記第１コンフィギュレーション情報に一致するか検証し、肯定的な検証の場合にのみ、第１ソフトウェアアプリケーションは転送される。第２コンフィギュレーション情報が第１装置から受信されることは効果的である。
【０００８】
第２の好適な実施例では、前記第１コンフィギュレーション情報は、コンフィギュレーション選択アプリケーションを前記第１装置に転送し、前記第１装置の第１コンフィギュレーション情報を生成するため、前記コンフィギュレーション選択アプリケーションを実行した前記第１装置から前記第１コンフィギュレーション情報を受信することによって取得される。
【０００９】
第３の好適な実施例では、第２装置は、前記第１コンフィギュレーション情報と前記ソフトウェアアプリケーションとを格納する。
【００１０】
第４の好適な実施例では、第２装置は、前記サーバとの接続のための接続データを前記第１装置に送信する。
【００１１】
第２の態様では、本発明は、第１ソフトウェアアプリケーションを実行するためのシステムにおける第１装置に関する。前記システムはさらに、前記第１ソフトウェアアプリケーションを実行するよう構成される第２装置を有する。当該第１装置は、前記第２装置に接続される。当該第１装置は、前記第１ソフトウェアアプリケーションの識別子を格納するメモリと、前記第２装置の第１コンフィギュレーション情報を取得し、サーバへの送信のため、前記識別子と前記第１コンフィギュレーション情報とを前記第２装置に送信し、前記識別子と前記第１コンフィギュレーション情報とに対応する前記第１ソフトウェアアプリケーションを前記サーバから受信し、前記第１ソフトウェアアプリケーションを前記第２装置に転送するよう構成されるプロセッサとを有する。
【００１２】
第１の好適な実施例では、前記プロセッサはさらに、当該第１装置の第２コンフィギュレーション情報が前記第１コンフィギュレーション情報に一致していることを検証するよう構成され、前記転送は、肯定的な検証の場合にのみ実行される。前記プロセッサはさらに、前記実行装置から前記第２コンフィギュレーション情報を受信するよう構成されることが効果的である。
【００１３】
第２の好適な実施例では、前記プロセッサは、前記実行装置にコンフィギュレーション選択アプリケーションを転送し、前記実行装置の第１コンフィギュレーション情報を生成するため、前記コンフィギュレーション選択アプリケーションを実行した第２装置から前記第１コンフィギュレーション情報を受信することによって前記第１コンフィギュレーション情報を取得するよう構成される。
【００１４】
第３の好適な実施例では、前記メモリはさらに、前記第１コンフィギュレーション情報と前記ソフトウェアアプリケーションとを格納するためのものである。
【００１５】
第４の好適な実施例では、前記プロセッサはさらに、前記サーバとの接続のための接続データを第２装置に送信するよう構成される。
【図面の簡単な説明】
【００１６】
本発明の好適な特徴が、添付した図面を参照して非限定的な具体例により説明される。
【図１】図１は、本発明の好適な実施例によるシステムを示す。
【図２】図２は、本発明の好適な実施例によるソフトウェア配信方法の主要なステップを説明するフローチャートを示す。
【図３】図３は、本発明の好適な実施例によるソフトウェア配信方法の主要なステップをより詳細に説明する。
【図４】図４は、本発明の好適な実施例によるソフトウェア配信方法の主要なステップをより詳細に説明する。
【図５】図５は、本発明の好適な実施例によるソフトウェア配信方法の主要なステップをより詳細に説明する。
【発明を実施するための形態】
【００１７】
図１は、本発明を実現する一例となるシステム１００を示す。システム１００は、ターゲット１１０、自己最適化されたアプリケーションホルダ（移行、ＳＡＨ）１２０及びアプリケーションサーバ１３０を有する。
【００１８】
ターゲット１１０は、実際には、標準的なパーソナルコンピュータなど、計算を実行可能な何れかのタイプのコンピュータ又は装置とすることが可能である。ターゲット１１０は、プロセッサ１１１、ＲＡＭメモリ１１２、ＳＡＨ１２０と通信するための第１インタフェース１１３、及びアプリケーションサーバ１３０と通信するための第２インタフェース１１４を有する。アプリケーションサーバ１３０との通信は、効果的にはインターネットを介し実行される。
【００１９】
ＳＡＨ１２０は、ターゲット１１０、プロセッサ１２１及び不揮発性メモリ１２３とのリリース可能な接続及び通信のためのインタフェース１２５を有する。プロセッサ１２１は、接続データ１２１１、アプリケーション１２１２のための識別子及びターゲット１１０のコンテクストを格納するよう構成される。接続データ１２１１は、サーバのアドレスと、好ましくは（相互）認証を許可するデータなどのアプリケーションサーバ１３０との接続を確立するのに必要な情報を有する。コンテクストは、ハードウェアコンフィギュレーション、ソフトウェアコンフィギュレーション又はハードウェア及びソフトウェアコンフィギュレーションに関する情報である。不揮発性メモリ１２３は、以下でさらに説明される、アプリケーションコード１２３１、コンテクスト選択アプリケーション１２３２及びアプリケーションランチャを格納するよう構成される。
【００２０】
好適な実施例では、ＳＡＨ１２０は、不揮発性メモリ１２３がフラッシュメモリであり、プロセッサ１２１は耐タンパ性プロセッサであり、インタフェース１２５はＵＳＢインタフェースである（ターゲット１１０の第１インタフェース１１３はまたＵＳＢインタフェースであることを当然に意味する）セキュアＵＳＢキーとして実現される。
【００２１】
アプリケーションサーバ１３０は、ターゲット１１０と通信可能な何れかのタイプの適切なサーバであってもよい。サーバ１３０は、単一のソフトウェアアプリケーション又は複数の異なるソフトウェアアプリケーションをホストするものであってもよい。
【００２２】
本発明は、ユーザがアプリケーションを直接的には購入しない従来技術と異なる。その代わりに、ユーザは、アプリケーションのコードでなく、後述されるようなアプリケーションサーバからのダウンロードを可能にする汎用的なアプリケーション及び情報を格納する一意的なＳＡＨを購入する。
【００２３】
図２は、本発明の好適な実施例によるソフトウェア配信方法の４つの主要なステップを説明するフローチャートである。４つの各ステップが、以下でより詳細に説明される。まず、ステップ２１０において、特定のソフトウェアアプリケーションのＳＡＨが生成される。この後、ステップ２２０において、通常はＳＡＨがユーザにより購入されると、ＳＡＨが移転される。その後、ステップ２３０において、ソフトウェアアプリケーションがダウンロードされ、ステップ２４０において実行される。
【００２４】
図３は、図２に示される方法のＳＡＨの生成ステップ２１０を示す。図３のステップは、好ましくは、ＳＡＨの製造中に実行される。接続データ１２１１が、ステップ２１１において、プロセッサ１２１に格納される。通信データ１２１１は、サーバ１３０との通信に利用される。アプリケーション識別子１２１２がまた、ステップ２１２において、プロセッサ１２１に格納される。その後、ステップ２１３及び２１４において、コンテクスト選択アプリケーション１２３２及びアプリケーションランチャ１２３３がそれぞれ不揮発性メモリ１２３に格納される。これらのステップは、実際には何れかの順序により実行されてもよいことが理解される。
【００２５】
ステップ２２０のＳＡＨ移転中、ＳＡＨ１２０が、通常はある種の支払の交換でユーザに提供される。
【００２６】
図４は、図２に示される方法のアプリケーションダウンロードステップ２３０を示す。このステップは、１）ＳＡＨ１２０がアプリケーションコード１２３１を格納しない（図２に示されるケース）、２）パッチ、アップグレード、アドオンなどのアプリケーションコードの新たなバージョンが利用可能であり、３）例えば、ターゲットが変わらなかった場合、又はＳＡＨ１２０が異なるターゲットに接続された場合など、コンテクストが変わった、という３つのケースにより実行されてもよい。
【００２７】
ステップ２３１において、ＳＡＨ１２０は、接続データ１２１１を用いて、ターゲット１１０を介しサーバ１３０に接続する。ＳＡＨ１２０は、当該アプリケーションを起動するターゲット１１０にコンテクスト選択アプリケーション１２３２を提供する。その後、ステップ２３２において、コンテクスト選択アプリケーション１２３２は、ターゲット１１０のコンテクストを自動検出するか、又はユーザがコンテクストを選択するよう要求する。当該コンテクストは、オペレーティングシステムやグラフィックカードの特性など、ターゲットの関連するハードウェア及びソフトウェアコンフィギュレーションである。これは、例えば、ＵＳ２００８／００４６７０８に説明されるように、実行されてもよい。自動的なコンテクスト検出が便利であるが、ユーザによる手動の入力は、ユーザがＳＡＨ１２０が接続されるコンピュータと異なるターゲットのコンテクストを選択することを可能にする。その後、コンテクスト１２１３は、プロセッサ１２１にそれを格納するＳＡＨ１２０と、受信したコンテクストを用いて、存在する場合にソフトウェアアプリケーションの既存のバージョンを選択するか、又はターゲット１１０に対して最適化されるソフトウェアアプリケーションのバージョンを構築するサーバ１３０とに送信される。その後、このソフトウェアアプリケーション１２３１は、ステップ２３４において、それが不揮発性メモリ１２３に格納され、コンテクスト１２１３がプロセッサ１２１に格納されるＳＡＨ１２０に送信される。ＳＡＨ１２０はまた、サーバ１３０からソフトウェアアプリケーションのバージョン識別子を受信する。このバージョン識別子は、例えば、実現形態に依存してなど、アプリケーション識別子１２１２又はコンテクスト１２１３のサブフィールドとして格納されるか、又はアプリケーションコード１２３１のヘッダなどに別に格納されてもよい。
【００２８】
好適な実施例では、サーバ１３０に接続するため、ＳＡＨ１２０はまた、認証を許可するデータを利用し、これは、サーバ１３０がＳＡＨ１２０の真正性を検証し、送信データのインテグリティ及び秘匿性を可能にする。
【００２９】
ＳＡＨによりエラーが検出される場合、それは、ターゲットとの次の接続までに継続するエラー状態に入る。これは、方法のアトミシティを保証することである。当然ながら、他のエラー管理ポリシーがまた利用されてもよいが、それらは本発明の範囲外である。
【００３０】
図５は、図２に示される方法のアプリケーション実行ステップ２４０を示す。このステップは、ステップ２３０の完了後に直接実行されてもよいし、又はアプリケーションコード１２３１を格納するＳＡＨ１２０がコンピュータに接続されると実行されるようにしてもよい。
【００３１】
まず、アプリケーションランチャ１２３３が、ステップ２４１において、それが実行されるターゲット１１０に提供される。アプリケーションランチャ１２３３の主要なタスクは、ソフトウェアアプリケーション１２３１がターゲット１１０により実行されてもよいことを検証することである。その後、ステップ２４２において、アプリケーションランチャ１２３３がサーバ１３０との接続を有するか検証される。このようなケースでない場合、本方法は後述される互換性検証ステップ２４６に移動する。しかしながら、接続がある場合、アプリケーションランチャは、ステップ２４３において、アプリケーション識別子１２１２を用いて、ＳＡＨ１２０に格納されるソフトウェアアプリケーション１２３１のバージョンが最新のバージョンであるか、すなわち、サーバにより提供されるバージョンが格納されているものと比較するとき変更されたか確認する。バージョンが同じである場合、すなわち、ダウンロードされるべき新たなものがない場合、本方法は、コンテクストが確認されるステップ２４４に移行する。当該ステップはまた、接続が存在しないことがステップ２４２において検出された場合に実行される。
【００３２】
ステップ２４４において、コンテクストは、ターゲット１１０のコンテクスト（好ましくは、ステップ２３２と同様に自動計算される）がプロセッサ１２１に格納されているコンテクスト１２１３に一致するか（すなわち、コンテクストが同一であるか、又は実現形態に依存してターゲットのコンテクストが格納されているコンテクストと互換している場合）検証する。例えば、アプリケーションがプロセッサのファミリに特に適していることが可能であり、この場合、アプリケーションは、これらのプロセッサと互換的である。この場合、すなわち、コンテクストが一致する場合、ソフトウェアアプリケーションは、不揮発性メモリ１２３からアップロードされ、ステップ２４７において実行される。
【００３３】
しかしながら、一致しない場合、コンテクストが変更されたか、又は互換的でない。これは、ターゲット１１０がハードウェア又はソフトウェアを変更した場合、又はＳＡＨ１２０がコンテクストが選択されたものと異なるコンピュータに接続される場合であってもよい。コンテクストが変更され、更新が正常であることをユーザに示すことが好適である。ユーザからの入力を受信すると、ステップ２４５において、本方法は２つの方向に移る。ユーザが更新を所望する場合、本方法はステップ２３０に移行し、必要なサブステップを実行する。しかしながら、ユーザがソフトウェアアプリケーションを更新することを所望しない場合、又はこのような更新がサーバとの接続の欠落などにより実行可能でない場合、ステップ２４６において、ソフトウェアアプリケーションのバージョンがコンテクストに矛盾しないか検証される。
【００３４】
ソフトウェアのバージョンがコンテクストに矛盾しない場合、本方法は、ステップ２４７においてソフトウェアアプリケーションを実行する。他方、ソフトウェアバージョンがコンテクストに矛盾しない場合、これはユーザに示され、本方法は、ステップ２４８で終了する。
【００３５】
好適な実施例では、ＳＡＨ１２０は、ＷＯ２００８／１２９００９に説明される盗難防止機構を実現する。盗難防止機構は、２つの状態の１つでありうるＲＦＩＤチップを利用する。第１状態では、ＲＦＩＤチップは、盗難防止ポータルとやりとり可能であり、さらに、ＲＦＩＤチップは、それが付属されるサポートの完全な利用に必要な情報を提供することを拒絶する。ＲＦＩＤチップは、サポートが購入されるとき、すなわち、状態変更装置と接触して置かれるとき、第２状態に移行する。第２状態では、ＲＦＩＤはもはや盗難防止ポータルとやりとりし、必要な情報を提供する。盗難されたとしてもサポートが作用しないという効果がある。ＳＡＨに積要されとき、ＲＦＩＤは、例えば、接続データ１２１１とアプリケーション識別子１２１２とをセキュアに格納可能であり、これらがない場合、ＳＡＨは、少なくとも理論的には作用しない。ＳＡＨの格納場所は、すなわち、プロセッサ又は不揮発性メモリにおいて好適な手段であるが、この場所は実現形態に応じて変更されてもよいことが理解される。また、本発明は従来技術の手段よりフレキシブルなソフトウェア配信方法を提供できることが理解される。
【００３６】
明細書、請求項及び図面（適切である場合には）に開示される各特徴は、独立に又は何れか適切な組み合わせにより提供されてもよい。ハードウェアに実現されるよう開示される特徴はまた、ソフトウェアにより実現されてもよく、又はその反対であってもよい。請求項に記載される参照番号は、単なる例示であり、請求項の範囲に対する限定的な効果を有さない。
【図１】
2013517551.tif 000003
【図２】
2013517551.tif 000004
【図３】
2013517551.tif 000005
【図４】
2013517551.tif 000006
【図５】
2013517551.tif 000007
【国際調査報告】
2013517551.tif 000008
2013517551.tif 000009
2013517551.tif 000010
2013517551.tif 000011
2013517551.tif 000012