(57)【要約】一実施形態において、クライアント・ソフトウェア・アプリケーションの現行バージョンは、クライアント・ソフトウェア・アプリケーションの後継バージョンへのランタイム・ハンドオーバを実行することができる。クライアント・サイド・デバイスは、クライアント・ソフトウェア・アプリケーションの現行バージョンを実行している間に、クライアント・ソフトウェア・アプリケーションの後継バージョンをインストールすることができる。クライアント・サイド・デバイスは、後継バージョンと現行バージョンとの間でアップデート・ハンドシェークを実行することができる。クライアント・サイド・デバイスは、後継バージョンのランタイム検証を実行することができる。
2015520468.tif 000002
【特許請求の範囲】
【請求項１】
マシンにより実施される方法であって、
クライアント・ソフトウェア・アプリケーションの後継バージョンをインストールするステップと、
前記クライアント・ソフトウェア・アプリケーションの現行バージョンを実行している間に、前記後継バージョンのランタイム検証を実行するステップと、
を含む、方法。
【請求項２】
前記後継バージョンから前記現行バージョンにシャットダウン・リクエストを送信するステップ
をさらに含む、請求項１記載の方法。
【請求項３】
前記後継バージョンにおいて、前記現行バージョンからアップデート・ハンドシェークを受信するステップ
をさらに含む、請求項１記載の方法。
【請求項４】
前記後継バージョンにおいて、前記アップデート・ハンドシェークの一部として、前記現行バージョンから現行状態データ・セットを受信するステップ
をさらに含む、請求項３記載の方法。
【請求項５】
前記現行バージョンから前記後継バージョンに自動的に遷移するステップ
をさらに含む、請求項１記載の方法。
【請求項６】
前記後継バージョンから前記現行バージョンに検証通知を送信するステップ
をさらに含む、請求項１記載の方法。
【請求項７】
前記後継バージョンによる検証の失敗時に、前記現行バージョンに再度ユーザを切り替えるステップ
をさらに含む、請求項１記載の方法。
【請求項８】
方法を詳述する命令のセットを記憶した有体のマシン読み取り可能な媒体であって、前記命令のセットが１以上のプロセッサにより実行されたとき、前記命令のセットは前記１以上のプロセッサに前記方法を実行させ、前記方法は、
クライアント・ソフトウェア・アプリケーションの現行バージョンを実行するステップと、
前記クライアント・ソフトウェア・アプリケーションの後継バージョンのインストール時に、前記後継バージョンと前記現行バージョンとの間でアップデート・ハンドシェークを実行するステップと、
を含む、有体のマシン読み取り可能な媒体。
【請求項９】
アプリケーション・サーバから、クライアント・ソフトウェア・アプリケーションの後継バージョンをダウンロードする通信インタフェースと、
前記クライアント・ソフトウェア・アプリケーションの現行バージョンを実行している間に前記後継バージョンをインストールし、前記後継バージョンと前記現行バージョンとの間でアップデート・ハンドシェークを実行し、前記後継バージョンのランタイム検証を実行するプロセッサと、
を備えた、クライアント・サイド・デバイス。
【請求項１０】
前記プロセッサは、前記後継バージョンの前記ランタイム検証の成功時に、前記現行バージョンをアンインストールする、請求項９記載のクライアント・サイド・デバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
ソフトウェア開発者は、ソフトウェア・アプリケーションがリリースされた後、しばしば、そのソフトウェア・アプリケーションを改善し続けることがある。ソフトウェア開発者は、ソフトウェア・アプリケーションの最初のバージョンが初公開された後しばらくたってから、そのソフトウェア・アプリケーションの複数のバージョンを配布することがある。インタネットがエンド・ユーザとソフトウェア開発者との間の直接のやり取りを可能にしているため、ソフトウェア・アプリケーションは、ソフトウェア開発者により保持されるアプリケーション・サーバから絶えず更新することができる。
【発明の概要】
【０００２】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００３】
以下で説明する実施形態は、クライアント・ソフトウェア・アプリケーションの後継バージョン（successor  version）へのランタイム・ハンドオーバ（runtime  handover）を実行するクライアント・ソフトウェア・アプリケーションの現行バージョン（predecessor  version）に関する。クライアント・サイド・デバイスは、クライアント・ソフトウェア・アプリケーションの現行バージョンを実行している間に、クライアント・ソフトウェア・アプリケーションの後継バージョンをインストールすることができる。クライアント・サイド・デバイスは、後継バージョンと現行バージョンとの間でアップデート・ハンドシェーク（update  handshake）を実行することができる。クライアント・サイド・デバイスは、後継バージョンのランタイム検証を実行することができる。
【図面の簡単な説明】
【０００４】
上述した利点及び他の利点、並びに特徴を得ることができる態様を説明するために、添付の図面に示される特定の実施形態を参照することにより、より詳細な記載が説明され提供される。こうした図面は、代表的な実施形態を示しているに過ぎず、したがって、その範囲を限定するものとみなされるべきではないことを理解されたい。添付の図面を使用することにより、実施例がさらに具体的且つ詳細に記載され説明される。
【図１】アプリケーション更新ネットワークの一実施形態を示すブロック図。
【図２】コンピューティング・デバイスの一実施形態を示すブロック図。
【図３】アプリケーション・アップデート・エクスチェンジの一実施形態を示すフロー図。
【図４】クライアント・ソフトウェア・アプリケーションの現行バージョンを用いてクライアント・ソフトウェア・アプリケーションを更新する方法の一実施形態を示すフローチャート。
【図５】クライアント・ソフトウェア・アプリケーションの後継バージョンを用いてクライアント・ソフトウェア・アプリケーションを更新する方法の一実施形態を示すフローチャート。
【発明を実施するための形態】
【０００５】
実施形態について以下で詳細に説明する。特定の実施例について説明するが、こうした実施例は完全に例示の目的で示される。当業者であれば、本開示の主題の精神及び範囲から逸脱することなく、他のコンポーネント及び構成を使用できることが認識されよう。実施例は、マシンにより実施される方法であってもよいし、少なくとも１つのプロセッサのための、方法を詳述する命令のセットを記憶した有体のマシン読み取り可能な媒体であってもよいし、クライアント・サイド・デバイスであってもよい。
【０００６】
クライアント・サイド・デバイスは、クライアント・ソフトウェア・アプリケーションの現行バージョンからクライアント・ソフトウェア・アプリケーションの後継バージョンにシームレスに遷移するための自動アップデータ（auto-updater）を使用する、クラウド・サービスのためのクライアント・インタフェース等のクライアント・ソフトウェア・アプリケーションを実行することができる。クライアント・ソフトウェア・アプリケーションの現行バージョンは、使用されている現在のバージョンであるのに対し、後継バージョンは、現在のバージョンに取って代わるバージョンである。クライアント・サイド・デバイスは、ユーザが気付くことなく、ランタイム中に透過的にその遷移を実行することができる。後継バージョンは、後継バージョンが適切にインストールされたことを確実にするために、ランタイム検証を実行することができる。
【０００７】
現行バージョンは、クライアント・ソフトウェア・アプリケーションを再起動することなく、後継バージョンに遷移するために、アップデート・ハンドシェークを実行することができる。高レベルで、アップデート・ハンドシェークは、クライアント・ソフトウェア・アプリケーションの後継バージョンを開始することができる。後継バージョンは、シャットダウンを開始して後継バージョンに遷移するよう現行バージョンに要求するシャットダウン・リクエストを現行バージョンに送信することができる。現行バージョンは、現行バージョンがシャットダウンする準備ができているかどうかを示すシャットダウン・ステータス・メッセージをもって応答することができる。現行バージョンは、データベース状態（database  state）、現在のタスク、又は他の情報等、後継バージョン状態データ（successor  version  state  data）に伝える現行データ・セット（predecessor  data  set）を後継バージョンに送信することができる。
【０００８】
ランタイム検証が失敗した場合、後継バージョンは、現行バージョンに再度切り替わることができる。後継バージョンは、コンポーネント・オブジェクト・モデル等の、セットアップを完了するために使用されるコンポーネントを登録することができる。ランタイム検証が成功した場合、現行バージョンをアンインストールしている間に、後継バージョンは、アプリケーション・エントリ・ポイントが後継バージョンを指すように切り替えることができる。
【０００９】
したがって、一実施形態において、クライアント・ソフトウェア・アプリケーションの現行バージョンは、クライアント・ソフトウェア・アプリケーションの後継バージョンへのランタイム・ハンドオーバを実行することができる。クライアント・サイド・デバイスは、クライアント・ソフトウェア・アプリケーションの現行バージョンを実行している間に、クライアント・ソフトウェア・アプリケーションの後継バージョンをインストールすることができる。クライアント・サイド・デバイスは、後継バージョンと現行バージョンとの間でアップデート・ハンドシェークを実行することができる。クライアント・サイド・デバイスは、後継バージョンのランタイム検証を実行することができる。
【００１０】
図１は、アプリケーション更新ネットワーク１００の一実施形態を示すブロック図である。クライアント・インタフェース等のクライアント・ソフトウェア・アプリケーションを実行するクライアント・サイド・デバイス１１０は、クライアント・ソフトウェア・アプリケーションに対するアップデートに関してアプリケーション・サーバ１２０をチェックするために、データ接続ネットワーク１３０を介して、アプリケーション・サーバ１２０にアクセスすることができる。クライアント・ソフトウェア・アプリケーションの現行バージョン１１２は、アップデートに関してアプリケーション・サーバ１２０をチェックするために、インストーラ・モジュール１１４を開始することができる。インストーラ・モジュール１１４は、クライアント・ソフトウェア・アプリケーションの後継バージョン１１６をダウンロードしてインストールすることができる。さらに、インストーラ・モジュール１１４は、小さなアップデート及びパッチに関してチェックするために、アプリケーション・サーバ１２０をターゲットにした問合せを実行することができる。インストーラ・モジュール１４０が、後継バージョン１１６のインストールに成功すると、現行バージョン１１２は、クライアント・ソフトウェア・アプリケーションのアクティブ・バージョンとして動作する後継バージョンを準備するために、アップデート・ハンドシェークを実行することができる。
【００１１】
図２は、クライアント・サイド・デバイス１１０として動作することができる例示的なコンピューティング・デバイス２００のブロック図を示している。コンピューティング・デバイス２００は、クライアント・ソフトウェア・アプリケーションを実装するために、ハードウェア、ソフトウェア、ファームウェア、及びシステム・オン・チップ技術のうちの１以上を組み合わせることができる。コンピューティング・デバイス２００は、バス２１０、プロセッサ２２０、メモリ２３０、データ・ストレージ２４０、入力／出力デバイス２５０、及び通信インタフェース２６０を含み得る。バス２１０又は他のコンポーネント間通信システムにより、コンピューティング・デバイス２００のコンポーネント間の通信が可能となる。
【００１２】
プロセッサ２２０は、命令のセットを解釈して実行する少なくとも１つの従来型のプロセッサ又はマイクロプロセッサを含み得る。メモリ２３０は、ランダム・アクセス・メモリ（ＲＡＭ）、又は、プロセッサ２２０による実行のための情報及び命令を記憶する別のタイプの動的なストレージ・デバイスとすることができる。メモリ２３０はまた、プロセッサ２２０による命令の実行中に使用される一時変数又は他の中間情報を記憶することができる。データ・ストレージ２４０は、従来型のＲＯＭデバイス、又は、プロセッサ２２０のための静的な情報及び命令を記憶する別のタイプの静的なストレージ・デバイスを含み得る。ストレージ・デバイス２４０は、例えば、デジタル・ビデオ・ディスク等の磁気記録媒体又は光記録媒体、及びその対応するドライブ等、任意のタイプの有体のマシン読み取り可能な媒体を含み得る。有体のマシン読み取り可能な媒体は、トランジトリな媒体又は信号ではなく、マシン読み取り可能なコード又は命令を記憶する物理媒体である。ストレージ・デバイス２４０は、方法を詳述する命令のセットを記憶することができる。命令のセットが１以上のプロセッサにより実行されたとき、命令のセットは、１以上のプロセッサに、前述の方法を実行させる。
【００１３】
入力／出力デバイス２５０は、キーボード、マウス、音声認識デバイス、マイクロフォン、ヘッドセット、ジェスチャ認識デバイス、タッチ・スクリーン、ジェスチャ・キャプチャ等、ユーザがコンピューティング・デバイス２００に情報を入力することを可能にする１以上の従来型の機構を含み得る。入力／出力デバイス２５０は、ディスプレイ、プリンタ、１以上のスピーカ、ヘッドセット、又は、メモリ若しくは磁気ディスク若しくは光ディスク及び対応するディスク・ドライブ等の媒体等、ユーザに情報を出力する１以上の従来型の機構を含み得る。通信インタフェース２６０は、コンピューティング・デバイス２００が他のデバイス又はネットワークと通信することを可能にするトランシーバのような機構を含み得る。通信インタフェース２６０は、無線インタフェースであってもよいし、有線インタフェースであってもよいし、光インタフェースであってもよい。
【００１４】
コンピューティング・デバイス２００は、プロセッサ２２０が、例えば、メモリ２３０、磁気ディスク、又は光ディスク等のコンピュータ読み取り可能な媒体に含まれる一連の命令を実行したことに応じて、そのような機能を実行することができる。そのような命令は、ストレージ・デバイス２４０等の別のコンピュータ読み取り可能な媒体からメモリ２３０に読み込まれてもよいし、別のデバイスから通信インタフェース２６０を介してメモリ２３０に読み込まれてもよい。
【００１５】
図３は、アプリケーション・アップデート・エクスチェンジ（application  update  exchange）３００の一実施形態を示すフロー図である。現行バージョン（ＰＶ）１１２は、アップデートが利用可能であるかどうかを確認するために、アプリケーション・サーバ（ＡＳ）１２０に対してチェックすることができる（３０２）。アップデートが利用可能である場合、アプリケーション・サーバ１２０は、インストーラ・モジュール（ＩＭ）１１４を現行バージョン１１２にダウンロードさせることができる（３０４）。アップデートが見つからない場合、アプリケーション・サーバ１２０は、後でリトライすることができる。現行バージョン１１２は、インストーラ・モジュール１１４を起動することができる（３０６）。インストーラ・モジュール１１４は、後継バージョン（ＳＶ）１１６のためのファイルを、クライアント・サイド・デバイス１１０のファイル・システムにコピーすることができる（３０８）。インストーラ・モジュール１１４は、後継バージョン１１６を開始することができる（３１０）。後継バージョン１１６は、シャットダウン・リクエストを送信することにより、現行バージョン１１２がシャットダウンする準備ができているかどうか問い合わせることができる（３１２）。
【００１６】
現行バージョン１１２が、シャットダウン・ステータス・メッセージを送信することにより、「シャットダウン準備（shutdown  ready）」状態にあるとき、現行バージョン１１２は、後継バージョン１１６に警告を出すことができる（３１４）。現行バージョン１１２は、プロセッサ状態データ・セット（processor  state  data  set）等のアプリケーション状態データ・セット（application  state  data  set）を提供するアップデート・ハンドシェークを後継バージョン１１６に送信することができる（３１６）。現行バージョン１１２がシャットダウンする準備ができている場合、後継バージョン１１６は、セットアップを完了するために、コンポーネントを登録することができる（３１８）。セットアップが完了すると、後継バージョン１１６は、コンポーネント登録をランタイムに検証することができる（３２０）。ランタイム検証が成功した場合、後継バージョン１１６は、アプリケーション・エントリ・ポイントが後継バージョン１１６を指すように切り替えることができ（３２２）、ソフトウェア・アプリケーションに対するクエリ又はコマンドが、後継バージョン１１６に向かうことになる。ランタイム検証が成功した場合、現行バージョン１１２は、アンインストールすることができる（３２４）。
【００１７】
図４は、クライアント・ソフトウェア・アプリケーションの現行バージョン１１２を用いてクライアント・ソフトウェア・アプリケーションを更新する方法４００の一実施形態を示すフローチャートである。クライアント・サイド・デバイス１１０は、クライアント・ソフトウェア・アプリケーションの現行バージョン１１２を実行することができる（ブロック４０２）。現行バージョン１１２は、アプリケーション・サーバ１２０から後継バージョン１１６をダウンロードすることができる（ブロック４０４）。現行バージョン１１２は、後継バージョン１１６をインストールするために、インストーラ・モジュール１１４を開始することができる（ブロック４０６）。現行バージョン１１２は、後継バージョン１１６から、現行バージョン１１２にシャットダウンするよう要求するシャットダウン・リクエストを受信することができる（ブロック４０８）。現行バージョン１１２は、現行バージョン１１２がシャットダウンする準備ができているかどうかを示すシャットダウン・スタータス・メッセージを後継バージョン１１６に送信することができる（ブロック４１０）。現行バージョン１１２が、シャットダウン・ステータス・メッセージにおいて、現行バージョン１１２がシャットダウンする準備ができていないことを示す場合（ブロック４１２）、後継バージョン１１６がある冷却期間の間待機してシャットダウン・リクエストを再送信した後、現行バージョン１１２は、後継バージョン１１６から、繰り返しのシャットダウン・リクエストを受信することができる（ブロック４０８）。
【００１８】
現行バージョン１１２が、シャットダウン・ステータス・メッセージにおいて、シャットダウンする準備ができていることを示す場合（ブロック４１２）、現行バージョン１１２は、後継バージョン１１６のインストール時に、後継バージョン１１６とのアップデート・ハンドシェークを実行することができる（ブロック４１４）。現行バージョン１１２は、アップデート・ハンドシェークの一部として、現行状態データ・セット（predecessor  state  data  set）を後継バージョン１１６に送信することができる（ブロック４１６）。後継バージョン１１６をセットアップしている間に、現行バージョン１１２が、ユーザから新たな暫定のアプリケーション・データを受信した場合、現行バージョン１１２は、インストールが開始した後に現行バージョン１１２により受信された暫定のアプリケーション・データをバッファすることができる（ブロック４１８）。後継バージョン１１６のランタイム検証が不成功だった場合（ブロック４２０）、クライアント・サイド・デバイス１１０は、後継バージョン１１６による起動の失敗又は検証の失敗時に、現行バージョン１１２の通常の実行を再開することができる（ブロック４２２）。
【００１９】
後継バージョン１１６のランタイム検証が成功した場合（ブロック４２０）、現行バージョン１１２は、後継バージョン１１６から検証通知を受信することができる（ブロック４２４）。現行バージョン１１２は、現行バージョン１１２により受信された、バッファされた又は新たに受信された暫定のアプリケーション・データを後継バージョン１１６に送信することができる（ブロック４２６）。クライアント・サイド・デバイス１１０は、後継バージョン１１６の起動及び検証の成功時に、現行バージョン１１２をアンインストールすることができる（ブロック４２８）。
【００２０】
図５は、クライアント・ソフトウェア・アプリケーションの後継バージョンを用いてクライアント・ソフトウェア・アプリケーションを更新する方法５００の一実施形態を示すフローチャートである。クライアント・サイド・デバイス１１０は、クライアント・ソフトウェア・アプリケーションの後継バージョン１１６をインストールすることができる（ブロック５０２）。後継バージョン１１６は、シャットダウン・リクエストを現行バージョン１１２に送信することができる（ブロック５０４）。後継バージョン１１６は、現行バージョン１１２から、現行バージョン１１２がシャットダウンする準備ができているかどうかを示すシャットダウン・ステータス・メッセージを受信することができる（ブロック５０６）。現行バージョン１１２が、シャットダウン・ステータス・メッセージにおいて、現行バージョン１１２がシャットダウンする準備ができていないことを示す場合（ブロック５０８）、後継バージョン１１６は、ある冷却期間の間待機した後（ブロック５１０）、シャットダウン・リクエストを現行バージョン１１２に再送信することができる（ブロック５０４）。
【００２１】
現行バージョン１１２が、シャットダウン・ステータス・メッセージにおいて、シャットダウンする準備ができていることを示す場合（ブロック５０８）、後継バージョン１１６は、現行バージョン１１２からアップデート・ハンドシェークを受信することができる（ブロック５１２）。後継バージョン１１６は、現行バージョン１１２から、アップデート・ハンドシェークの一部として、現行状態データ・セットを受信することができる（ブロック５１４）。後継バージョン１１６は、コンポーネントを登録することができる（ブロック５１６）。クライアント・ソフトウェア・アプリケーションの現行バージョン１１２が実行されている間に、後継バージョン１１６は、後継バージョン１１６のランタイム検証を実行することができる（ブロック５１８）。後継バージョン１１６は、ランタイム検証の結果を示す検証通知を現行バージョン１１２に送信することができる（ブロック５２０）。
【００２２】
後継バージョン１１６のランタイム検証が不成功だった場合（ブロック５２２）、クライアント・サイド・デバイス１１０は、後継バージョン１１６による起動の失敗又は検証の失敗時に、現行バージョン１１２に再度ユーザを切り替えることができる（ブロック５２４）。後継バージョン１１６のランタイム検証が成功した場合（ブロック５２２）、後継バージョン１１６は、アプリケーション・エントリ・ポイントを、現行バージョン１１２から後継バージョン１１６に切り替えることができる（ブロック５２６）。クライアント・サイド・デバイス１１０は、現行バージョン１１２から後継バージョン１１６に自動的に遷移することができる（ブロック５２８）。後継バージョン１１６は、インストールが開始した後の現行バージョン１１２により受信された暫定のアプリケーション・データを受信することができる（ブロック５３０）。後継バージョン１１６は、クライアント・サイド・デバイス１１０が後継バージョン１１６の起動及び検証の成功時に現行バージョン１１２をアンインストールするようリクエストすることができる（ブロック５３２）。
【００２３】
主題が、構造的特徴及び／又は方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定される必要がない。むしろ、上述した特定の特徴及び動作は、請求項を実施するための例示的な形態として開示されたものである。
【００２４】
本発明の範囲内にある実施形態は、記憶されたコンピュータ実行可能な命令又はデータ構造を運ぶ又は有する非トランジトリなコンピュータ読み取り可能な記憶媒体を含み得る。そのような非トランジトリなコンピュータ読み取り可能な記憶媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体とすることができる。例えば、そのような非トランジトリなコンピュータ読み取り可能な記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは他の光ディスク・ストレージ、磁気ディスク・ストレージ若しくは他の磁気ストレージ・デバイス、又は、コンピュータ実行可能な命令又はデータ構造の形態で所望のプログラム・コード手段を運ぶ又は記憶するために使用され得る任意の他の媒体を含み得る。上記の組合せも、非トランジトリなコンピュータ読み取り可能な記憶媒体の範囲内とすることができる。
【００２５】
実施形態はまた、タスクが通信ネットワークを介して（有線リンク、無線リンク、又はそれらの組合せにより）リンクされるローカル処理デバイス及びリモート処理デバイスにより実行される分散コンピューティング環境においても実行され得る。
【００２６】
コンピュータ実行可能な命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに所定の機能又は機能の一群を実行させる命令及びデータを含む。コンピュータ実行可能な命令はまた、スタンドアロン環境又はネットワーク環境におけるコンピュータにより実行されるプログラム・モジュールも含む。一般に、プログラム・モジュールは、特定のタスクを実行するか、あるいは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、及びデータ構造等を含む。コンピュータ実行可能な命令、関連するデータ構造、及びプログラム・モジュールは、本明細書で開示した方法のステップを実行するプログラム・コード手段の例を表す。特定の一連のそのような実行可能な命令又は関連するデータ構造は、そのようなステップにおいて記載される機能を実装する対応する動作の例を表す。
【００２７】
上記の説明は、特定の詳細を含み得るが、そのような詳細は、請求項を限定するものとして解釈すべきではない。説明した実施形態の他の構成も、本開示の範囲の一部である。例えば、本開示の原理を各個別のユーザに適用することができ、各ユーザは、個別にそのようなシステムを展開することができる。多数の可能な用途のいずれか１つが本明細書で説明した機能を使用しない場合であっても、これにより、各ユーザは、本開示の利点を利用することが可能となる。電子デバイスの多くの例の各々が、様々な形で、本内容を処理することができる。実施例は、必ずしも、全てのエンド・ユーザにより使用される一システムに含まれる必要はない。したがって、提供された特定の例ではなく、添付の請求項及びその正当な均等な構成だけが、本発明を定めるべきである。
【図１】
2015520468.tif 000003
【図２】
2015520468.tif 000004
【図３】
2015520468.tif 000005
【図４】
2015520468.tif 000006
【図５】
2015520468.tif 000007
【国際調査報告】
2015520468.tif 000008
2015520468.tif 000009
2015520468.tif 000010