(57)【要約】【課題】ユーザ・インターフェースの遠隔閲覧中に指示を与えるための方法およびシステムを提供する。【解決手段】ホスト・コンピュータ・システムにおいて実行される方法は、ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、各ウィンドウ・クラスとウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることとを含み、コンテナが属性と子コントロール要素とを有する。キャプチャされた画像とマップとは遠隔コンピュータ・システムに送信され、コントロール要素とのインタラクションを指示するためのコントロール要素入力指示が遠隔コンピュータ・システムから受け取られる。【選択図】図２
2020532015.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、ホスト・コンピュータ・システムにおいて実行され、
前記ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、
各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、前記シリアライズすることと、
キャプチャされた前記画像と前記マップとを遠隔コンピュータ・システムに送信することと、
前記アプリケーション・ユーザ・インターフェースにおけるコントロール要素の文脈での表示のために前記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることとを含む、コンピュータ実装方法。
【請求項２】
各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、各ウィンドウ・クラスによって提供される前記コンテナまたは前記コントロール要素あるいはその両方を特定するためにアクティブなアプリケーション・ユーザ・インターフェースにおける前記ウィンドウ・クラスを解析することを含む、請求項１に記載の方法。
【請求項３】
マップを提供することは、各ウィンドウ・クラスの種類、大きさおよび位置と、ウィンドウ・クラス内の各コンテナまたは各コントロール要素あるいはその両方の種類、大きさおよび位置とを含む、請求項１に記載の方法。
【請求項４】
各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、前記表示内の最上レベルから下方に向かってウィンドウ・クラスの各レベルを解析し、前記マップに前記レベルを記録する、請求項１に記載の方法。
【請求項５】
前記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、前記アプリケーション・ユーザ・インターフェースにおいて前記コントロール要素入力指示がアクティブにされること、または前記アプリケーション・ユーザ・インターフェースに入力されることを可能にすることを含む、請求項１に記載の方法。
【請求項６】
コントロール要素入力指示を受け取ることは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項７】
前記アプリケーション・ユーザ・インターフェースにおいて前記コントロール要素の文脈で表示することは、前記コントロール要素に隣接して、または図で指し示して前記コントロール要素入力指示を表示することを含む、請求項１に記載の方法。
【請求項８】
遠隔コンピュータ・システムからコントロール要素入力指示を受け取ることは、前記アプリケーション・ユーザ・インターフェースがまだ最新であり、前記指示が前記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともに前記コントロール要素入力指示を受け取る、請求項１に記載の方法。
【請求項９】
遠隔コンピュータ・システムからのコントロール要素入力指示が前記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取ることを含む、請求項１に記載の方法。
【請求項１０】
ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、インストラクタ・コンピュータ・システムにおいて実行され、
ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと、前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取ることであって、コンテナが属性と子コントロール要素とを含む、前記受け取ることと、
前記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取ることと、
前記コントロール要素入力指示を前記ホスト・コンピュータ・システムに送信することとを含む、コンピュータ実装方法。
【請求項１１】
コントロール要素を特定することは、
受け取った画像内の位置として点または領域を選択することと、
前記位置における前記コントロール要素を特定するために前記マップを参照することとを含む、請求項１０に記載の方法。
【請求項１２】
前記マップは、複数のレベルのウィンドウ・クラスを含み、前記画像の参照によって前記マップ内のコントロール要素を特定することは、各レベルのウィンドウ・クラスをヒット・テストすることを含む、請求項１０に記載の方法。
【請求項１３】
コントロール要素入力指示を受け取ることは、
特定されたコントロール要素の種類のための指示テンプレートを表示することと、
前記入力指示を前記指示テンプレートにおいて受け取ることと、
コントロール要素入力指示を作成することとを含む、請求項１０に記載の方法。
【請求項１４】
前記コントロール要素入力指示を前記ホスト・コンピュータ・システムに送信することは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの１つまたは複数を送信することを含む、請求項１０に記載の方法。
【請求項１５】
前記コントロール要素入力指示は、前記ホスト・コンピュータ・システムにおける前記アプリケーション・ユーザ・インターフェースがまだ最新であることを検証するために、返される元の画像またはマップあるいはその両方とともに送信される、請求項１０に記載の方法。
【請求項１６】
前記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、前記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信することを含む、請求項１０に記載の方法。
【請求項１７】
ユーザ・インターフェースの遠隔閲覧中に指示を与えるためのシステムであって、
プロセッサと、前記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成され、１つまたは複数のアプリケーション・ユーザ・インターフェースを表示するための表示コンポーネントを含むメモリとを含むホスト・コンピュータ・システムを含み、
ホスト指示コンポーネントは、
前記ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャするための画像キャプチャ・コンポーネントと、
各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズするためのシリアライズ・コンポーネントであって、コンテナが属性と子コントロール要素とを有する、前記シリアライズ・コンポーネントと、
キャプチャされた前記画像と前記マップとを遠隔コンピュータ・システムに送信するための送信コンポーネントと、
前記アプリケーション・ユーザ・インターフェースにおけるコントロール要素の文脈での表示のために前記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための受信コンポーネントとを含むシステム。
【請求項１８】
前記ホスト指示コンポーネントは、前記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、前記アプリケーション・ユーザ・インターフェースにおいて前記コントロール要素入力指示がアクティブにされること、または前記アプリケーション・ユーザ・インターフェースに入力されることを可能にする指示有効化コンポーネントを含む、請求項１７に記載のシステム。
【請求項１９】
前記受信コンポーネントは、
前記アプリケーション・ユーザ・インターフェースがまだ最新であり、前記指示が前記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともにコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための検証コンポーネントを含む、請求項１７に記載のシステム。
【請求項２０】
前記ホスト指示コンポーネントは、遠隔コンピュータ・システムからのコントロール要素入力指示が前記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取るための待機コンポーネントを含む、請求項１７に記載のシステム。
【請求項２１】
ユーザ・インターフェースの遠隔閲覧中に指示を与えるシステムであって、
プロセッサと、前記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成され、表示コンポーネントを含むメモリとを含み、
指示提供コンポーネントは、
ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取るための受信コンポーネントであって、コンテナが属性と子コントロール要素とを有する、前記受信コンポーネントと、
前記画像の参照によって前記マップ内のコントロール要素を特定するためのコントロール要素特定コンポーネントと、
前記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取るための入力コンポーネントと、
前記ホスト・コンピュータ・システムに前記コントロール要素入力指示を送信するための送信コンポーネントとを含む、システム。
【請求項２２】
前記コントロール要素特定コンポーネントは、各レベルのウィンドウ・クラスのヒット・テストを含む、複数のレベルのウィンドウ・クラスを含むマップ内のコントロール要素の特定のためのマップ・レベル・コンポーネントを含む、請求項２１に記載のシステム。
【請求項２３】
前記入力コンポーネントは、
特定されたコントロール要素の種類のための指示テンプレートを表示し、前記指示テンプレートにおいて前記入力指示を受け取るためのテンプレート・コンポーネントを含む、請求項２１に記載のシステム。
【請求項２４】
前記指示提供コンポーネントは、前記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、前記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信するための待機コンポーネントを含む、請求項２１に記載のシステム。
【請求項２５】
遠隔で閲覧される提示においてハイパーリンクを提供するためのコンピュータ・プログラム製品であって、プログラム命令が実現されているコンピュータ可読記憶媒体を含み、前記プログラム命令は、
ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、
各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とのマップを提供するために各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、前記シリアライズすることと、
キャプチャされた前記画像と前記マップとを遠隔コンピュータ・システムに送信することと、
前記アプリケーション・ユーザ・インターフェースにおけるコントロール要素の文脈での表示のために前記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることとを、プロセッサに行わせるように前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ・インターフェースの遠隔閲覧に関し，より詳細には、ホスト・コンピュータ・システムのユーザ・インターフェースの遠隔閲覧中にホスト・コンピュータ・システムに指示を与えることに関する。
【背景技術】
【０００２】
画面共有またはデスクトップ共有は、ネットワークを介した遠隔コンピュータ・システムによるホスト・コンピュータ・システムの遠隔アクセスおよび制御を可能にする。別個のクライアント・デバイス上に表示されているときにデスクトップ環境を遠隔で稼働させることができるようにするために、遠隔デスクトップ・ソフトウェアが、アプリケーションとして、ホステッド・サービスとして、またはオペレーティング・システムの一部として、提供されることがある。
【０００３】
これは、いくつかの異なる状況で使用することができ、そのうちの１つは、ホスト・コンピュータ・システム上で稼働している１つまたは複数のアプリケーションの操作についてホスト・コンピュータ・システムのユーザを支援することである。
【０００４】
これは、ウェブ・ミーティング中に、２人以上のユーザが画面を閲覧し、画面を操作することができるようにする手段として使用することができる。これは、表示されているアプリケーションとのインタラクションの方法に関する指示を与えるのに有用である。一例では、アプリケーションを備える画面をウィザード・ページと共有することができ、ウェブ・カンファレンスにおける他のユーザがアプリケーションを動作させるための支援を提供することができる。これは、１人のユーザが問題を抱えている画面を共有しており、第２のユーザが観察してサポートを与えているサポートなどの状況で発生する。
【０００５】
これは、ホスト・コンピュータの制御を遠隔ユーザに与えなければならないという欠点がある。これには、会社の方針のために許可されない可能性があるというセキュリティ上の問題がある場合がある。また、デスクトップ共有には、ファイアウォールの影響があることもある。
【０００６】
学習の観点からの他の欠点は、自分の画面を共有するユーザが制御を手放し、そのユーザは、タイプして必要な入力を行うことによって自分のアプリケーションを動かす者ではなくなることである。
【０００７】
制御を与えるユーザは、もはや自分のコンピュータを操作することができなくなる。例えば、ユーザが応答する必要があるチャット・メッセージが表示された場合、ユーザは制御を取り戻し、チャット・メッセージに回答で応対し、その後、制御を再び手放さなければならない。
【０００８】
また、遠隔制御は、一度に１人のユーザにしか与えることができない。支援を提供するカンファレンスに複数のユーザがいる状況では、各ユーザに一度に１人ずつ制御が与えられる必要があり、インタラクションがばらばらになり、制御の切り換え時に多くの遅延が生じる。
【０００９】
別の選択肢は、ホスト・コンピュータ・システムにおける画面全体の表示または表示されている選択されたアプリケーションを、複数の遠隔コンピュータ・システムに対して表示するために、ウェブ・カンファレンスを使用することである。その表示を見ているユーザが、口頭指示またはタイプされた指示により援助と支援を与える。
【００１０】
一例では、支援を提供するユーザが例えば「ボリューム・シリアル・テキスト・ボックスにｘｘｘｘとタイプし、「次へ」を押してください」と言うように通話と同時にウェブ・カンファレンスを行うことができる。これの欠点は、複数言語に渡ってサポートが提供される場合があり、それによって口頭指示に翻訳の問題が生じる可能性があることである。また、遠隔観察者に中継される表示の遅延により混乱が生じる可能性がある。
【００１１】
サポートを提供する１人または複数のユーザが、それぞれの指示をウェブ・カンファレンス・アプリケーションのコメント・パネルまたはチャット領域などのテキスト領域にタイプする場合もある。例えば、「コントロールｙｙｙｙｙに値ｘｘｘをタイプしてください」という指示である。これのデスクトップ共有より優れた利点は、複数のユーザがインタラクションすることができ、支援の提供のしかたについて会話することができることである。
【００１２】
これは、領域が画面の別個の領域にあり、自分のアプリケーションを表示しているユーザがこれを読み、それをユーザが実行する必要があるアクションに転換し戻す必要があり、したがって誤りを生じやすく、待ち時間を含むという欠点がある。場合によっては、同じレベルの複数のボタンまたはコントロールがある場合、表示されている画面で言及されているコントロールを特定するのが難しい。
【００１３】
待ち時間を含むウェブ・カンファレンスでは、１つのウィザード・ページのために「ウィザードで「次へ」をタイプしてください」などの指示がタイプされることがあるが、ユーザがその指示を受け取ってタイプするときにはユーザはすでに次のページに進んでいる可能性もある。指示をコントロールと結びつける必要がある。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明は、ホスト・コンピュータ・システムのユーザ・インターフェースの遠隔閲覧中にホスト・コンピュータ・システムに指示を与えることを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、ホスト・コンピュータ・システムにおいて実行され、上記ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、上記データをシリアライズすることと、キャプチャされた上記画像と上記マップとを遠隔コンピュータ・システムに送信することと、上記アプリケーション・ユーザ・インターフェースにおけるコントロール要素の文脈での表示のために上記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることとを含む、コンピュータ実装方法が提供される。
【００１６】
この方法は、１つまたは複数のアプリケーション・ユーザ・インターフェースの画像がシリアライズ・データ・マップとともに、コントロール要素の正確な参照を提供し、それによって遠隔ユーザが文脈内において入力指示を与えることができるようにするという利点を有する。受信した入力指示は、ホスト・コンピュータ・システムにおいてそのコントロール要素の文脈で表示することができる。
【００１７】
各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、各ウィンドウ・クラスによって提供される上記コンテナまたは上記コントロール要素あるいはその両方を特定するためにアクティブなアプリケーション・ユーザ・インターフェースにおける上記ウィンドウ・クラスを解析することを含み得る。マップを提供することは、各ウィンドウ・クラスの種類、大きさおよび位置と、ウィンドウ・クラス内の各コンテナまたは各コントロール要素あるいはその両方の種類、大きさおよび位置とを含み得る。各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、上記表示内の最上部レベルから下方に向かってウィンドウ・クラスの各レベルを解析することができ、上記マップに上記レベルを記録することができる。
【００１８】
この方法は、上記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、上記アプリケーション・ユーザ・インターフェースにおいて上記コントロール要素入力指示がアクティブにされること、または上記アプリケーション・ユーザ・インターフェースに入力されることを可能にすることを含み得る。これには、ホスト・コンピュータ・システムのユーザが、テキストをコピー・アンド・ペーストしたりコントロール要素自体とインタラクションしたりする必要なしに、入力指示を受け付けることができるという利点がある。上記アプリケーション・ユーザ・インターフェースにおける上記コントロール要素の文脈で入力指示を表示することは、上記コントロール要素入力指示を上記コントロール要素に隣接して表示すること、または上記コントロール要素を図で指し示すことを含み得る。
【００１９】
コントロール要素入力指示を受け取ることは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの１つまたは複数を含み得る。遠隔コンピュータ・システムからコントロール要素入力指示を受け取ることは、上記アプリケーション・ユーザ・インターフェースがまだ最新であり、上記指示が上記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともに受け取ることができる。
【００２０】
上記方法は、遠隔コンピュータ・システムからのコントロール要素入力指示が上記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取ることを含み得る。
【００２１】
本発明の別の態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、インストラクタ・コンピュータ・システムにおいて実行され、ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと、上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取ることであって、コンテナが属性と子コントロール要素とを含む、上記受け取ることと、上記画像の参照によって上記マップ内のコントロール要素を特定することと、上記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取ることと、上記コントロール要素入力指示を上記ホスト・コンピュータ・システムに送信することとを含む、コンピュータ実装方法が提供される。
【００２２】
コントロール要素を特定することは、受け取った画像内の位置として点または領域を選択することと、上記位置における上記コントロール要素を特定するために上記マップを参照することとを含み得る。上記マップは、複数のレベルのウィンドウ・クラスを含むことができ、上記画像の参照によって前記マップ内のコントロール要素を特定することは、各レベルのウィンドウ・クラスをヒット・テストすることを含み得る。
【００２３】
コントロール要素入力指示を受け取ることは、特定されたコントロール要素の種類のための指示テンプレートを表示することと、上記入力指示を上記指示テンプレートにおいて受け取ることと、コントロール要素入力指示を作成することとを含み得る。
【００２４】
上記コントロール要素入力指示を上記ホスト・コンピュータ・システムに送信することは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの１つまたは複数を送信すること含み得る。コントロール要素入力指示を送信することは、ホスト・コンピュータ・システムにおけるアプリケーション・ユーザ・インターフェースがまだ最新であることを検証するために、返される元の画像またはマップあるいはその両方を送信することができる。
【００２５】
上記方法は、上記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、上記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信することを含み得る。
【００２６】
本発明の別の態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるためのシステムであって、プロセッサと、上記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成されたメモリとを含み、１つまたは複数のアプリケーション・ユーザ・インターフェースを表示するための表示コンポーネントとホスト指示コンポーネントとを含むホスト・コンピュータ・システムを含み、上記ホスト指示コンポーネントは、上記ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャするための画像キャプチャ・コンポーネントと、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズするためのシリアライズ・コンポーネントであって、コンテナが属性と子コントロール要素とを有する、上記シリアライズ・コンポーネントと、キャプチャされた上記画像と上記マップとを遠隔コンピュータ・システムに送信するための送信コンポーネントと、上記アプリケーション・ユーザ・インターフェースにおけるコントロール要素の文脈での表示のために上記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための受信コンポーネントとを含むシステムが提供される。
【００２７】
上記ホスト指示コンポーネントは、上記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、上記アプリケーション・ユーザ・インターフェースにおいて上記コントロール要素入力指示がアクティブにされること、または上記アプリケーション・ユーザ・インターフェースに入力されることを可能にする指示有効化コンポーネントを含み得る。
【００２８】
上記受信コンポーネントは、上記アプリケーション・ユーザ・インターフェースがまだ最新であり、上記指示が上記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともにコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための検証コンポーネントを含み得る。
【００２９】
上記ホスト指示コンポーネントは、遠隔コンピュータ・システムからのコントロール要素入力指示が上記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取るための待機コンポーネントを含み得る。
【００３０】
本発明の別の態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるためのシステムであって、プロセッサと、上記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成されたメモリとを含み、表示コンポーネントと、指示提供コンポーネントとを含み、上記指示提供コンポーネントは、ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取るための受信コンポーネントであって、コンテナが属性と子コントロール要素とを有する、上記受信コンポーネントと、上記画像の参照によって上記マップ内のコントロール要素を特定するためのコントロール要素特定コンポーネントと、上記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取るための入力コンポーネントと、上記ホスト・コンピュータ・システムに上記コントロール要素入力指示を送信するための送信コンポーネントとを含むシステムが提供される。
【００３１】
上記コントロール要素特定コンポーネントは、各レベルのウィンドウ・クラスのヒット・テストを含む、複数のレベルのウィンドウ・クラスを含むマップ内のコントロール要素を特定するためのマップ・レベル・コンポーネントを含み得る。
【００３２】
上記入力コンポーネントは、特定されたコントロール要素の種類のための指示テンプレートを表示し、上記指示テンプレートにおいて上記入力指示を受け取るためのテンプレート・コンポーネントを含み得る。
【００３３】
上記指示提供コンポーネントは、上記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、上記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信するための待機コンポーネントを含み得る。
【００３４】
本発明の別の態様によると、遠隔で閲覧される提示においてハイパーリンクを提供するためのコンピュータ・プログラム製品であって、プログラム命令が実現されているコンピュータ可読記憶媒体を含み、上記プログラム命令は、ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とのマップを提供するために各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、上記シリアライズすることと、キャプチャされた上記画像と上記マップとを遠隔コンピュータ・システムに送信することと、上記アプリケーション・ユーザ・インターフェースにおけるコントロール要素の文脈での表示のために上記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることとを、プロセッサに行わせるように上記プロセッサによって実行可能な、コンピュータ・プログラム製品が提供される。
【００３５】
本発明の別の態様によると、遠隔で閲覧される提示においてハイパーリンクを提供するためのコンピュータ・プログラム製品であって、プログラム命令が実現されているコンピュータ可読記憶媒体を含み、上記プログラム命令は、ホスト・コンピュータ・システムにおいて表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取ることであって、コンテナが属性と子コントロール要素とを有する上記受け取ることと、上記画像の参照によって上記マップ内のコントロール要素を特定することと、インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示を受け取ることと、上記コントロール要素入力指示を上記ホスト・コンピュータ・システムに送信することとをプロセッサに行わせるように上記プロセッサによって実行可能な、コンピュータ・プログラム製品が提供される。
【００３６】
本発明と見なされる主題について具体的に示し、本明細書の末尾で明確に特許請求する。本発明は、構成と動作方法の両方に関して、本発明の目的、特徴および利点とともに、添付図面とともに読めば以下の詳細な説明を参照することによって最もよく理解できるであろう。
【００３７】
次に、本発明の好ましい実施形態について、例示のみを目的として以下の図面を参照しながら説明する。
【図面の簡単な説明】
【００３８】
【図１】本発明によるシステムの例示の実施形態を示すブロック図である。
【図２】ホスト・コンピュータ・システムにおいて実行される、本発明による方法の一態様の例示の実施形態を示す流れ図である。
【図３】インストラクタ・コンピュータ・システムにおいて実行される、本発明による方法の別の態様の例示の実施形態を示す流れ図である。
【図４】ホスト・コンピュータ・システムにおいて実行される、本発明による方法の一態様の他の例示の実施形態を示す流れ図である。
【図５】インストラクタ・コンピュータ・システムにおいて実行される、本発明による方法の別の態様の他の例示の実施形態を示す流れ図である。
【図６】本発明による遠隔で指示を与える一例を示す概略図である。
【図７】本発明による遠隔で指示を与える一例を示す概略図である。
【図８】本発明によるシステムの一態様の例示の実施形態を示すブロック図である。
【図９】本発明によるシステムの別の態様の例示の実施形態を示すブロック図である。
【図１０】本発明を実装可能なコンピュータ・システムまたはクラウド・サーバの一実施形態を示すブロック図である。
【図１１】本発明を実装可能なクラウド・コンピューティング環境を示す概略図である。
【図１２】本発明を実装可能なクラウド・コンピューティング環境の抽象モデル層を示す図である。
【発明を実施するための形態】
【００３９】
図を簡単にし、明確にするために、図面に示す要素は必ずしも一律の縮尺では描画されていないことはわかるであろう。例えば、明確にするために、要素のうちの一部の要素の寸法が他の要素に対して相対的に誇張されていることがある。また、適切と見なされる場合には、対応する特徴または類似の特徴を示すために参照番号が複数の図面で繰り返し使用されている場合がある。
【００４０】
記載されている方法およびシステムは、ホスト・コンピュータ・システムのユーザが、遠隔コンピュータ・システムのユーザから、ホスト・コンピュータ・システムのディスプレイ上のコントロール要素とのインタラクションに関する指示を受け取ることができるようにする。指示は、ホスト・コンピュータ・システムの遠隔ユーザに制御を与える必要なしに、ホスト・コンピュータ・システムの実際の表示内容に合わせて調整され、表示内容の文脈で提供される。
【００４１】
ホスト・コンピュータ・システムにおける方法およびシステムは、ディスプレイの画像を、ディスプレイのコントロール要素またはウィジェットの位置、大きさおよび種類に関するシリアライズ・データとともに、１つまたは複数の遠隔コンピュータ・システムに送信する。このようにして、画面全体、または画面上に表示された特定のアプリケーションまたはウィンドウのみをキャプチャすることができる。
【００４２】
遠隔ユーザが、ディスプレイの領域を選択することができ、ディスプレイの選択された領域内の特定のコントロール要素に関してホスト・コンピュータ・システムのユーザに指示を送信することができる。遠隔ユーザが画像の領域をクリックすると、コントロール要素が正確に特定される。次に、遠隔ユーザからの入力がホスト・マシンに返送される。
【００４３】
ホスト・コンピュータ・システムは、指示を、コントロール要素の隣に、またはコントロール要素を指すポインタとともに表示することができる。指示からデータをコントロール要素の対応するフィールドに入力することができるように、ホスト・ユーザは表示されている指示を選択することができる。複数の遠隔ユーザがホスト・ユーザに同時に指示を与えてもよい。このようにして、ホスト・ユーザは、１人または複数の遠隔ユーザの指示の下に自分のコンピュータとインタラクションする。
【００４４】
図１を参照すると、ブロック図に、記載のシステムおよび方法を実装可能な例示のシステム１００を示す。ホスト・コンピュータ・システム１１０が、少なくとも１つのプロセッサ上で実行されるソフトウェア・ユニットとすることができる記載されているコンポーネントの機能を実行するために、少なくとも１つのプロセッサ１１１、ハードウェア・モジュール、または回路を含むことができる。メモリ１１２を、コンポーネントの機能を実行するために少なくとも１つのプロセッサ１１１にコンピュータ命令１１３を与えるように構成することができる。
【００４５】
ホスト・コンピュータ・システム１１０は、１つまたは複数のアプリケーション・ユーザ・インターフェース１３０を提供するための表示コンポーネント１２０を含むことができる。アプリケーション・ユーザ・インターフェース１３０は、オペレーティング・ユーザ・インターフェース、インストールされたアプリケーション・ユーザ・インターフェース、ウェブ・サービス・ユーザ・インターフェース、またはその他のプログラム・ユーザ・インターフェースを含み得る。アプリケーション・ユーザ・インターフェース１３０は、グラフィカル・ユーザ・インターフェース、ウェブ・ユーザ・インターフェース、コマンド行インターフェースなどとすることができる。ホスト・コンピュータ・システム１１０は、ユーザ・インターフェースを表示可能な、パーソナル・コンピュータ、サーバ、手持ち型コンピューティング・デバイス、または任意のその他の形態のコンピュータ・システムであってよい。
【００４６】
アプリケーション・ユーザ・インターフェース１３０は、それぞれが複数のコントロール要素１３４、１３６を有する、１つまたは複数のウィンドウ１３１を含むことができる。コントロール要素１３４、１３６はコンテナ１３２に入れられていてもよい。ウィンドウ１３１は、コンテナ１３２およびコントロール要素１３４、１３６の階層を含むことができる。
【００４７】
ウィンドウは、その内容が画面の他の部分とは独立して表示され、ウィンドウが属するプログラムのグラフィカル・ユーザ・インターフェース要素のうちのいくつかの要素を含む仮想領域からなる、ディスプレイの領域である。ウィンドウは、ディスプレイ内の別のウィンドウの前面または背後に配置されてもよい。
【００４８】
コントロール要素（コントロールまたはウィジェットとも呼ぶ）は、インタラクションのグラフィカル・ユーザ・インターフェース要素である。コントロール要素は、コンピュータがアプリケーションとインタラクションするために使用するソフトウェア・コンポーネントである。各コントロール要素は、一種のユーザ−コンピュータ・インタラクションを可能にすることができ、アプリケーション・ユーザ・インターフェースの可視部分として表示される。コンテナは、他のコントロール要素のグループを含むコントロール要素の一形態とすることができ、例えば、コンテナは、複数の選択項目を提供するウィンドウまたはパネルとすることができる。コントロール要素の例としては、ボタン、スクロール・バー、テキスト・ボックス、ラベル、チェック・ボックスなどがある。
【００４９】
記載のシステムは、ホスト・コンピュータ・システム１１０においてホスト指示コンポーネント１４０を備える。ホスト指示コンポーネント１４０は、ホスト・コンピュータ・システム１１０の表示コンポーネント１２０に表示されている１つまたは複数のアプリケーション・ユーザ・インターフェース１３０の画像１５１を送信するための送信コンポーネント１４１を含む。送信コンポーネント１４１は、各アプリケーション・ユーザ・インターフェース１３０のコンテナ１３２およびコントロール要素１３４、１３６の位置と大きさのシリアライズ・データのマップ１５５も送信する。これらの態様の詳細については以下で示す。このようにして、ホスト指示コンポーネント１４０はディスプレイ上のアプリケーション・ユーザ・インターフェース１３０の詳細を１つまたは複数の遠隔インストラクタ・コンピュータ・システム１６０に送信する。
【００５０】
複数のインストラクタ・コンピュータ・システム１６０が、ネットワーク１０５を介してホスト・コンピュータ・システム１１０と通信することができ、ホスト・コンピュータ・システム１１０で表示されているアプリケーション・ユーザ・インターフェース１３０に関する指示をホスト・コンピュータ・システム１１０に与えることができるようにするために、ホスト・コンピュータ・システム１１０から情報を受信することができる。インストラクタ・コンピュータ・システム１６０は、少なくとも１つのプロセッサ上で実行されるソフトウェア・ユニットとすることができる記載のコンポーネントの機能を実行するための、少なくとも１つのプロセッサ１６１、ハードウェア・モジュール、または回路を含むことができる。メモリ１６２を、コンポーネントの機能を実行するために少なくとも１つのプロセッサ１６１にコンピュータ命令１６３を与えるように構成することができる。
【００５１】
与えられた状況で必要に応じてコンピュータ・システムがホストまたはインストラクタとして動作することができるように、ホスト・コンピュータ・システム１１０は、インストラクタ・コンピュータ・システム１６０の機能を含んでよく、その逆の場合も可能である。
【００５２】
インストラクタ・コンピュータ・システム１６０は、ホスト指示コンポーネント１４０によって送信されたアプリケーション・ユーザ・インターフェース１３０の画像１５１とマップ１５５とを受信するための受信コンポーネント１８１を含む、指示提供コンポーネント１８０を含むことができる。インストラクタ・コンピュータ・システム１６０は、アプリケーション・ユーザ・インターフェース１３０のウィンドウ１５２と、コンテナ１５３と、コントロール要素１５４、１５７との画像を含む受信画像１５１を表示するための表示コンポーネント１７０を含むことができる。指示提供コンポーネント１８０は、コントロール要素画像１５４に関してインストラクタ・コンピュータ・システム１６０のユーザによって入力された指示１５６を受け取り、処理するための入力コンポーネント１８３を含むことができる。指示提供コンポーネント１８０は、ホスト・コンピュータ・システム１１０のホスト指示コンポーネント１４０の受信コンポーネント１４２に指示１５６を送信するための送信コンポーネント１８２を含むことができる。これらのコンポーネントの詳細については、以下で説明する。
【００５３】
一実施形態では、ホスト・コンピュータ・システム１１０のアプリケーション・ユーザ・インターフェース１３０は、ウェブ・カンファレンス・システムの表示コンポーネント１７０を使用してインストラクタ・コンピュータ・システム１６０で表示することができ、ウェブ・カンファレンス・システムは受け取った画像１５１を表示し、本明細書に記載の指示入力を可能にすることができる。
【００５４】
図２を参照すると、流れ図２００がユーザ・インターフェースの遠隔閲覧中に指示を与える記載の方法の一態様の例示の実施形態を示している。この方法は、１つまたは複数の遠隔インストラクタ・コンピュータ・システム１６０から指示を受け取るホスト・コンピュータ・システム１１０において実行される。
【００５５】
この方法は、ホスト・コンピュータ・システム１１０によって表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることができる２０１。画像のキャプチャ２０１は、スクリーンショットを使用して、表示コンポーネント１２０上で見えるもののデジタル画像を作成することができる。これは、１つまたは複数のアプリケーション・ユーザ・インターフェース１３０または画面全体の画像とすることができる。
【００５６】
この方法は、ウィンドウ・クラスとそのコンテナおよびコントロール要素とのマップを提供するために、画像においてキャプチャされた各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることができる２０２。シリアライザ・コンポーネントが各アプリケーション・ユーザ・インターフェースのアクティブ表示内を移動することができる。このアクティブ表示で、最上部のコンポーネントは大きさと位置を有するウィンドウ・クラスとなる。次に各ウィンドウ・クラスを、コントロール要素またはコンテナであるそのウィンドウ・クラスの子を求めて解析する。コンテナは、子コントロール要素を有し、タイトル（例えばグループ・ボックスの場合）または項目（例えばツリー、テーブルまたはリストの場合）などの属性も有することができる。コントロール要素およびコンテナはサイズと位置とを有する。位置は、親コンテナを基準にして提供され得る。マップは、コントロール要素の種類と識別子も含むことができる。
【００５７】
シリアライズは、ウィンドウィング・オペレーティング・システムの呼び出しを使用することができる。オペレーティング・システムにおいてウィンドウとその子のグラフを決定することができる機能が利用可能である。例えば、Ｗｉｎｄｏｗｓオペレーティング・システム（Ｗｉｎｄｏｗｓはマイクロソフト・コーポレーションの商標である）のためのマイクロソフト・ファウンデーション・クラス・ライブラリ（Microsoft Foundation Class Library（ＭＦＣ））、Ｍａｃオペレーティング・システムのためのＣａｒｂｏｎアプリケーション・プログラミング・インターフェース（ＣａｒｂｏｎおよびＭａｃはアップル社の商標である）、およびＧＴＸを使用したＬｉｎｕｘオペレーティング・システム（Ｌｉｎｕｘはリーナス・トーバルズの商標である）である。
【００５８】
キャプチャされた画像およびマップは、１つまたは複数の遠隔インストラクタ・コンピュータ・システム１６０に送信することができる２０３。一実施形態では、これはウェブ・カンファレンス・システムに組み込むことができる。
【００５９】
ホスト・コンピュータ・システム１１０の表示が変化したか否かを判断するために、ホスト・コンピュータ・システム１１０の表示を監視することができる２０４。表示が変化した場合、新たな画像をキャプチャすることができ２０１、新たなマップをシリアライズすることができる２０２。この新たな組を遠隔インストラクタ・コンピュータ・システムに送信することができる２０３。
【００６０】
ホスト・コンピュータ・システム１１０は、アプリケーション・ユーザ・インターフェースのコントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔インストラクタ・コンピュータ・システム１６０のいずれかから受け取ることができる２０５。
【００６１】
ホスト・コンピュータ・システム１１０は、表示が変化しておらず、入力指示が関係するキャプチャされた画像とマップとがホスト・コンピュータ・システム１１０においてまだ最新であることを確認することができる２０６。一実施形態では、これは、指示入力を、インストラクタ・コンピュータ・システム１６０において受け取って指示入力を生成するために使用された、返された元のマップとともにインストラクタ・コンピュータ・システム１６０から受け取ることによって確認することができる。別の実施形態では、キャプチャされた画像を検証のためにホスト・コンピュータ・システム１１０に返すことができる。
【００６２】
マップまたは画像あるいはその両方を使用して、ホスト・コンピュータ・システム１１０における表示がインストラクタ・コンピュータ・システム１６０で表示されているものであるか否かを比較することができる。表示が一致する場合、指示を使用して、位置およびコントロール要素識別子を照合することによってホスト・コンピュータ・システム１１０上のコントロール要素が特定される２０７。これは、マップでコントロール要素を参照することによって行うことができる。コントロールの特定は、入力指示における識別子に基づくことができる。識別子は、コントロール要素の種類と、マップ内の位置と、コントロール要素識別子と、コントロール要素のラベルとのうちの１つまたは複数を含み得る。
【００６３】
コントロール要素入力指示を表示して２０８、コントロール要素の文脈でアプリケーション・ユーザ・インターフェースにおいてコントロール要素を指し示すことができる。この指し示しは、コントロール要素入力指示をコントロール要素に隣接して、例えば、コントロール要素と並べて入力指示を示すアプリケーション・ユーザ・インターフェース上のポップアップ・ウィンドウに表示することによって、またはコントロール要素を指す矢印によって行うことができる。
【００６４】
この方法は、ホスト・コンピュータ・システムのユーザが、例えば備えられた受諾コントロール要素を選択することによって、コントロール要素入力指示をアクティブにするか、またはアプリケーション・ユーザ・インターフェースのコントロール要素にコントロール要素指示を挿入することができるようにすることもできる２０９。
【００６５】
一実施形態では、ホスト・コンピュータ・システム１１０は、コントロール要素に隣接したポップアップ・ウィンドウなどのウィジェットを作成することができる。ポップアップ・ウィンドウは、入力指示（例えば入力するテキストまたは選択する選択項目）と、受諾入力（例えば「ＯＫ」ボタン）とを含むことができる。ポップアップ・ウィンドウは、その入力指示を与えた遠隔ユーザを識別してもよい。入力指示は、受諾入力を使用してコントロール要素に直接受け入れ可能であってもよい。実施形態によっては、複数の遠隔ユーザから１つのコントロール要素に対する複数の指示を受信してもよい。これらの指示は、遠隔ユーザごとに１つずつ、複数のポップアップ・ウィンドウに表示することができる。
【００６６】
図３を参照すると、流れ図２５０に、ユーザ・インターフェースの遠隔閲覧中に指示を与えるための記載の方法の一態様の例示の実施形態を示す。この方法は、ホスト・コンピュータ・システム１１０に指示を与えるインストラクタ・コンピュータ・システム１６０において実行される。
【００６７】
この方法は、１つまたは複数のアプリケーション・ユーザ・インターフェースの画像を受け取ることができ２５１、それをインストラクタ・コンピュータ・システム１６０において表示することができる２５２。受け取った画像は、ホスト・コンピュータ・システム１１０で表示されている１つまたは複数のユーザ・インターフェースまたは画面全体を示す。アプリケーション・ユーザ・インターフェースごとにシリアライズ・データをウィンドウ・クラスおよびそのコンテナおよびコントロール要素のマップとして受け取ることができる２５３。
【００６８】
一実施形態では、ウェブ・カンファレンス・システムの表示コンポーネント１７０を使用してインストラクタ・コンピュータ・システム１６０においてホスト・コンピュータ・システム１１０のアプリケーション・ユーザ・インターフェース１３０が表示され、ウェブ・カンファレンス・システムは表示コンポーネント１７０においてウェブ・カンファレンス・フィードの代わりに受け取った画像を表示することができる。
【００６９】
インストラクタ・コンピュータ・システムにおけるユーザによる入力を、ユーザが指示を与えたいコントロール要素に関する表示画像の点または領域の選択として受け取ることができる２５４。この方法は、表示画像上の位置およびシリアライズ・データのマップを参照することによって、コントロール要素を特定することができる２５５。
【００７０】
コントロール要素の種類も特定することができ、コントロール要素の種類について適切な指示テンプレートをユーザに提示することができる２５６。指示テンプレートへのユーザ入力からコントロール要素入力指示を受け取ることができる２５７。
【００７１】
遠隔インストラクタ・コンピュータ・システムのユーザは、ディスプレイの領域を選択することができ、指示提供コンポーネントは、表示コントロール要素のマップを参照して、カーソルの下にどのコントロール要素があるかを判断することができる。コントロール要素がテキスト領域の場合、ユーザには「＿をタイプする」または「＿キーを押す」などのテキスト・ボックスのための指示を与える選択項目が与えられてもよい。コントロール要素がボタンの場合、ユーザに「Ｅｎｔｅｒを押す」などのボタンに関連する指示を与えることができてもよい。
【００７２】
コントロール要素入力指示は、コントロール要素の識別子とともにホスト・コンピュータ・システムに送信することができる２５８。例えば、位置とコントロール要素の種類とを提供することができる。入力指示は、コントロールの種類に応じて、遠隔ユーザによって入力されたテキストまたは指定された選択項目を含むことができる。指示は、その入力指示提案を誰が行ったかがホスト・コンピュータ・システムのユーザにわかるように、遠隔ユーザ識別子も含むことができる。生成され、インストラクタ・コンピュータ・システムに送信されたマップを参照することによってホスト・コンピュータ・システムにおけるコントロール要素を照合するために、コントロール要素の位置および種類を使用することができる。
【００７３】
ホスト・コンピュータ・システムによって同じ内容がまだ表示されており、したがって指示入力がその表示にとって有効であることを検証するために、入力指示とともに画像の戻りマップまたはコピーあるいはその両方をホスト・コンピュータ・システムに返すことができる２５９。
【００７４】
ホスト・コンピュータ・システムのユーザの場合、ホスト・コンピュータ・システムのユーザが指示を受信すると、指示は単に別個のチャット領域に示されるではなく、コントロール要素の文脈で表示される。ユーザは、どのコントロールのために支援が与えられているかがわかり、ユーザは指示を受け入れることもでき、その結果、テキストが入力される、ボタンが押されるなどされる。
【００７５】
一実施形態では、遠隔インストラクタ・コンピュータ・システムの指示ユーザが、単一の指示でコンテナのすべてのコントロール要素のための入力指示を与えることができる。
【００７６】
一実施形態では、ホスト・コンピュータ・システムはアプリケーション・ユーザ・インターフェースのデータを、コントロールの種類、大きさおよび位置とともに拡張マークアップ言語（ＸＭＬ）にシリアライズすることができる。
【００７７】
図７に表示されているものなどの、ウィザード・ページのアプリケーション・ユーザ・インターフェース１３０のシリアライズ・データの一例は次のようになる。
＜Ｗｉｎｄｏｗ  ｌｏｃａｔｉｏｎ＝１０，１０    ｓｉｚｅ＝７０，１３０＞
＜Ｃｏｎｔａｉｎｅｒ ｌｏｃａｔｉｏｎ＝０，０    ｓｉｚｅ＝７０，２０＞
.......    （ウィザードのタイトル・バーのためのコントロール） .....
＜／Ｃｏｎｔａｉｎｅｒ＞
＜Ｃｏｎｔａｉｎｅｒ ｌｏｃａｔｉｏｎ＝０，２０ ｓｉｚｅ＝７０，８０＞
＜Ｌａｂｅｌ ｌｏｃａｔｉｏｎ＝５，５ ｓｉｚｅ＝２０，１０ ｔｅｘｔ＝”Ｖｏｌｕｍｅ ｓｅｒｉａｌ：”／＞
＜Ｔｅｘｔ ｌｏｃａｔｉｏｎ＝３０，５ ｓｉｚｅ＝３０，１０／＞
＜Ｔｅｘｔ ｌｏｃａｔｉｏｎ＝５，２２ ｓｉｚｅ＝２０，１０ ｔｅｘｔ＝Ｇｅｎｅｒｉｃ ｕｎｉｔ”／＞
＜Ｔｅｘｔ ｌｏｃａｔｉｏｎ＝３０，２２ ｓｉｚｅ＝３０，１０／＞
＜／Ｃｏｎｔａｉｎｅｒ＞
＜Ｃｏｎｔａｉｎｅｒ ｌｏｃａｔｉｏｎ＝０，８０ ｓｉｚｅ＝１００，２０＞
＜Ｂｕｔｔｏｎ ｌｏｃａｔｉｏｎ＝１５，３ ｓｉｚｅ＝２０，７ ｌａｂｅｌ＝”Ｂａｃｋ”／＞
＜Ｂｕｔｔｏｎ ｌｏｃａｔｉｏｎ＝４０，３ ｓｉｚｅ＝２０，７ ｌａｂｅｌ＝”Ｎｅｘｔ”／＞
＜Ｂｕｔｔｏｎ ｌｏｃａｔｉｏｎ＝５５，３ ｓｉｚｅ＝２０，７ ｌａｂｅｌ＝”Ｃａｎｃｅｌ”／＞
＜Ｂｕｔｔｏｎ ｌｏｃａｔｉｏｎ＝７０，３ ｓｉｚｅ＝２０，７ ｌａｂｅｌ＝”Ｆｉｎｉｓｈ”／＞
＜/Ｃｏｎｔａｉｎｅｒ＞
＜/Ｗｉｎｄｏｗ＞
【００７８】
ホスト・コンピュータ・システム１１０における単一のアプリケーションがキャプチャされ、遠隔インストラクタ・コンピュータ・システムに送信されてもよい。任意により、キャプチャされて送信されるいくつかのアプリケーションが選択されてもよい。一実施形態では、ホスト・コンピュータ・システム１１０における表示全体がキャプチャされ、遠隔インストラクタ・コンピュータ・システムに送信されてもよい。
【００７９】
複数のアプリケーション・ユーザ・インターフェースまたは表示全体がキャプチャされる場合、すべてのアプリケーション・ユーザ・インターフェースのシリアライズ・データが作成され、インストラクタ・コンピュータ・システムに送信される。各アクティブ・ウィンドウについて、シリアライズ・データにｚオーダが含められる。ｚオーダは、すべてのものの前面にあるアプリケーションがｚオーダ０を有し、その背後にあるアプリケーションがｚオーダ１を有するようにウィンドウが重なり合わされる順序である。これは、コントロール要素が別のコントロール要素の背後にある場合に、位置とコントロール要素との間のマッピングが、誤判断を生じさせないようになされる。どのウィンドウについても、ペイント領域の境界を問い合わせることによって、そのウィンドウが別のウィンドウによってマスクまたは覆い隠されているか否かを判断することができる。
【００８０】
図４を参照すると、流れ図３００に、ホスト・コンピュータ・システム１１０における複数のアプリケーション・ユーザ・インターフェース・ウィンドウまたは表示全体のために、ホスト・コンピュータ・システム１１０において実行される、指示を与える記載の方法の一態様の例示の実施形態を示す。
【００８１】
シリアライザ・コンポーネントがアクティブ表示内を移動することができる３０１。アクティブ表示は、遠隔インストラクタ・システムと共有するために選択されたアプリケーション・ユーザ・インターフェースであってよい。ホスト・コンピュータ・システムにおけるユーザは、１つまたは複数のアプリケーション・ユーザ・インターフェースを共有することか、または画面全体を共有することを選択することができる。
【００８２】
ウィンドウは互いに重ねることができ、最上部のウィンドウはその下にあるウィンドウを覆い隠してもよい。ウィンドウの順序をｚオーダと呼び（ｘおよびｙが左右軸および上下軸である）、ｚは画面から出る方向である。
【００８３】
最上部のウィンドウ・クラスが選択され３０２、その大きさおよび位置とともにマップに追加される。ウィンドウ内のコンテナおよびコントロール要素をトラバースすることを含む、ウィンドウ・クラスの解析３０３を行うことができる。コンテナおよびコントロール要素はその種類、大きさ、位置とともにマップに追加３０４される。
【００８４】
アクティブ表示内に次のレベルのウィンドウ・クラスがあるか否かを判断することができる３０５。ある場合、方法は表示内の次のレベルに下がり３０６、マップを作成するために方法が繰り返される３０２、３０３、３０４。
【００８５】
次のレベルのウィンドウ・クラスがないと判断された場合３０５、アクティブ表示のマップが送信される３０７。
【００８６】
図６を参照すると、流れ図３５０に、ホスト・コンピュータ・システム１１０における複数のアプリケーション・ユーザ・インターフェース・ウィンドウまたは表示全体のためにインストラクタ・コンピュータ・システム１６０において実行される、指示を与える記載の方法の一態様の例示の実施形態が示されている。
【００８７】
この方法は、表示されたキャプチャ画像内の点または領域のユーザ選択を受け取ることができ３５１、その点または領域におけるコントロール要素を特定するためにシリアライズ・データ・マップを参照することができる。
【００８８】
この方法は、ヒット・テストを使用してマップの最初のレベルの選択された領域内に見えるウィンドウを調べることができる３５２。最初のレベルは、ｚオーダ０のレベルである。
【００８９】
「ヒット・テスト」の技法では、カーソルがウィンドウの可視描画境界ボックス内にあるか否かを調べるためにウィンドウの位置と大きさをカーソルの位置と比較することによって、カーソルの座標（ｘ，ｙ）が現在ペイントされている領域内に含まれるか否かを各ウィンドウに問い合わせる。ウィンドウに問い合わせる順序は、ｚオーダ順であり、最も外側の「上部」ウィンドウが最初に問合せされ、次にその下のウィンドウが問合せされる。カーソル座標ｘおよびｙを境界ボックス内に含む最初のウィンドウが、ユーザに見えるウィンドウとなる。
【００９０】
そのウィンドウ・レベルでヒット・テストが成功したか否かを判断することができる３５３。成功しない場合、方法は次の下のレベルに移行して調べる３５４。
【００９１】
ウィンドウのヒット・テストが成功した場合、その対象ウィンドウ内の子を調べ３５５、ウィンドウのコンテナおよびコントロール要素がカーソルを含むか否か問い合わせる。コンテナとコントロールのツリーを再帰的にトラバースするとき、カーソルがその境界内に含まれるか否かについて任意のレベルで１つのコントロール要素のみが肯定ヒット結果を出す。これは、上にあるコントロールが、それらのコントロールが覆い隠しているコントロールの前に問合せされるように、逆ｚオーダ順に行われる。その矩形内にカーソルのｘおよびｙ位置を含むことがわかった最初のコントロールが、カーソルの下にあるコントロールである。これはヒット・テストと呼ばれる。
【００９２】
ヒット・テストの結果は１つのコントロール要素がカーソルが指したコントロール要素であることを返すかまたはどのコントロール要素も返さないかのいずれかである。
【００９３】
このようにして、この方法は、ヒットする選択領域内のコントロール要素の結果を得ることができ３５５、マップでそのコントロール要素を調べることによってコントロールの種類を判断することができる。
【００９４】
そのコントロールの種類の指示テンプレートがユーザに提示されてもよく３５７、指示テンプレートでユーザ入力を受け取ってもよい３５８。指示入力は、コントロール要素の位置および識別子とともにホスト・コンピュータ・システムに送信することができる３５９。
【００９５】
インストラクタが「Ｅｎｔｅｒ」を押して自分の入力を完了すると、このユーザからの入力指示を示すために以下の例示のＸＭＬが構築される。
＜Ｗｉｎｄｏｗ  ｌｏｃａｔｉｏｎ＝１０，１０    ｓｉｚｅ＝７０，１３０  ｉｎｓｔｒｕｃｔｏｒ＝“Ｊｏｈｎ Ｓｍｉｔｈ” ＞
＜Ｃｏｎｔａｉｎｅｒ ｌｏｃａｔｉｏｎ＝０，２０ ｓｉｚｅ＝７０，８０＞
＜Ｌａｂｅｌ ｌｏｃａｔｉｏｎ＝５，５ ｓｉｚｅ＝２０，１０ ｔｅｘｔ＝”Ｖｏｌｕｍｅ ｓｅｒｉａｌ：”／＞
＜Ｔｅｘｔ ｌｏｃａｔｉｏｎ＝３０，５ ｓｉｚｅ＝３０，１０ ｉｎｐｕｔ＝”２０１６１０２８０００５”／＞
＜／Ｃｏｎｔａｉｎｅｒ＞
＜Ｃｏｎｔａｉｎｅｒ  ｌｏｃａｔｉｏｎ＝０，８０  ｓｉｚｅ＝１００，２０＞
＜Ｂｕｔｔｏｎ ｌｏｃａｔｉｏｎ＝７０，３ ｓｉｚｅ＝２０，７ ｌａｂｅｌ＝”Ｆｉｎｉｓｈ”  ｃｌｉｃｋｅｄ＝”ｙｅｓ”／＞
＜／Ｃｏｎｔａｉｎｅｒ＞
＜/Ｗｉｎｄｏｗ＞
【００９６】
この例では、２つのコントロール要素が、テキスト入力と「完了」ボタンであることが特定される。各コントロール要素は、そのコンテナ位置、コントロール要素位置およびラベル名によって識別される。指示ユーザも識別される。
【００９７】
別の例示のＸＭＬでは、コントロール要素識別子を生成することができ、ＸＭＬに含めることができる。
【００９８】
図６および図７を参照すると、例示のアプリケーション・ユーザ・インターフェース１３０が示されている。図６は、インストラクタ・コンピュータ・システムにおいて提示されているアプリケーション・ユーザ・インターフェースの画像１５１を示し、図７は、ホスト・コンピュータ・システムにおけるアプリケーション・ユーザ・インターフェース１３０を示す。アプリケーション・ユーザ・インターフェース１３０は、選択項目４１１が選択され、その結果コンテナ１３２のウィンドウが表示されているメニュー・パネル４１０を有する。コンテナ１３２は、関連付けられたテキスト・ボックス４２１、４２２を有するラベルと、ドロップ・ダウン・メニュー４２３を有するラベルとを含む。「戻る」、「次へ」、「キャンセル」、および「完了」操作のためのボタン４２４ないし４２７が設けられている。
【００９９】
図６は、アプリケーション・ユーザ・インターフェースの画像１５１内のコントロール要素４２１が、指示ユーザによってコントロール要素４２１をカーソル４３０で指すことによって選択されていることを示している。このコントロール要素の種類のための指示テンプレート４３１が、キーボードまたはマウスの使用方法の指示のための１組の選択項目とともに表示され、例えば、テキスト領域は「テキスト：．．．を入力」または「．．．をタイプ」という指示を有する。この場合、指示ユーザは、テキスト・ボックスに入力したいテキストをタイプする領域を有する。次に、指示ユーザは、指示ユーザの画面上のテキスト領域に、値、例えば「２０１６１０２８１００５」をタイプし、完了したことを通知するために「Ｅｎｔｅｒ」を押すことができる。
【０１００】
カーソル４３０の下のコントロール要素がボタンであった場合、ユーザは「クリック」または「ダブル・クリック」などの異なる１組のアクションを取得することになる。カーソルの下のコントロール要素がスクロール・バーであった場合、ユーザは、スクロール・バーを動かすべき場所などの異なる１組のアクションを取得することになる。この１組のアクションは、コントロール要素の種類を知ることによって判断される。
【０１０１】
図７に示すように、ホスト・コンピュータ・システムで自分のアプリケーションを表示しているホスト・ユーザの場合、ホスト指示コンポーネントが入力指示を受け取ると、入力指示は、テキストだけでなく、該当するコントロール位置とコントロール要素識別子も含む。これは、アプリケーション・ユーザ・インターフェース１３０においてコントロールを探し出して、コントロール要素４２１の傍に指示を示すポップアップ４４１を開くために使用される。コントロール要素によっては、これらは直接適用する（テキスト・フィールドにタイプする、またはボタンを押すなど）ことができてよく、その場合、「ＯＫ」ボタン４４４を設けて、アプリケーションのホスト・ユーザが、支援を提供した指示ユーザからの指示を受け入れて適用するだけで済むようにしてもよい。
【０１０２】
図７に示す例では、指示ユーザ「ジョン・スミス」が指示を与えるものとして識別され４４２、指示において「２０１６１０２８１００５」というテキスト値４４３が提供される。ホスト・ユーザは、視覚指示４４０（矢印など）により、どのコントロール要素４２１のための指示であるかがわかり、受諾して自分のアプリケーション・ユーザ・インターフェース１３０のテキスト・フィールドに値を入力させるために「ＯＫ」ボタン４４４を押すことができる。
【０１０３】
記載のシステムを使用してアプリケーション・ユーザ・インターフェース１３０を見ることができるインストラクタ・コンピュータ・システムを有する複数の指示ユーザがいてもよい。インストラクタの１人が自分のインストラクタ・コンピュータ・システムにおいて入力を行うことによって指示の提供を開始すると、他の指示ユーザとホスト・ユーザは、観察者の１人が、名前と、コントロール要素に対して「．．．」などのアクションが未完了であることを示す標識とを使用してタイプ中であるという通知を受け取ることができる。例えば、この例では「ジョン・スミス．．．」である。
【０１０４】
インストラクタの１人が領域内でカーソルを指すと、それがそのインストラクタのインストラクタ・コンピュータ・システムによって検出され、システムが以下のような例示のＸＭＬを、元の画像とともにホスト・コンピュータ・システムに送信する。ホスト・コンピュータ・システムは、現在の表示が元の画像と一致すると判断し、次にこのＸＭＬを他のコンピュータにブロードキャストする。
＜Ｗｉｎｄｏｗ ｌｏｃａｔｉｏｎ＝１０，１０    ｓｉｚｅ＝７０，１３０ ｉｎｓｔｒｕｃｔｏｒ＝“Ｊｏｈｎ  Ｓｍｉｔｈ”  ＞
＜Ｃｏｎｔａｉｎｅｒ  ｌｏｃａｔｉｏｎ＝０，２０  ｓｉｚｅ＝７０，８０＞
＜Ｌａｂｅｌ  ｌｏｃａｔｉｏｎ＝５，５  ｓｉｚｅ＝２０，１０  ｔｅｘｔ＝”Ｖｏｌｕｍｅ  ｓｅｒｉａｌ：”／＞
＜Ｔｅｘｔ  ｌｏｃａｔｉｏｎ＝３０，５  ｓｉｚｅ＝３０，１０  ｐｅｎｄｉｎｇｆｏｒｉｎｐｕｔ＝”ｙｅｓ”／＞
＜／Ｃｏｎｔａｉｎｅｒ＞
＜／Ｗｉｎｄｏｗ＞
【０１０５】
指示ユーザがタイプを完了すると、すべてのユーザがその指示を見ることができ、同様の方式で追加を行うかまたはコメントすることができる。したがって、複数ユーザのカンファレンスの場合、自分の画面を表示しているホスト・ユーザは、行うべき正しいアクションに関する共同的な入力を皆から取得することができる。これは、アプリケーション・ユーザ・インターフェースの操作方法に関して支援を必要とする問題または課題のある自分の画面を共有している本来のユーザの手助けを複数のユーザが行う環境で有用となり得る。
【０１０６】
指示ユーザがホスト・ユーザにそれぞれの指示を返送するとき、指示ユーザは指示ユーザと共有されていたマップと画像も返送する。これがホスト・ユーザのアプリケーション・ユーザ・インターフェースと比較される。ホスト・ユーザが異なるアプリケーション、恐らくウィザードの次のページを示している場合、その指示は適切ではなく、ユーザは、その誤ったユーザ・インターフェース要素に対してタイプせず、またはボタンを押さない。指示ユーザが指示の提供を開始するとただちに、共有ホストには、ユーザが指示を提案中であることを示す「．．．」が表示されることになる。これにより、ホスト・ユーザは、その指示が完了し、送信されるまで待つことができ、したがって、このインタラクション・モデルは、インストラクタがホスト・ユーザを「休止」させて、指示をタイプし、その指示を送信し、表示されているアプリケーションを指示が作成されたアプリケーションと比較させることができ、これらが、誤りを低減し、ホストとインストラクタとの間での技術と知識の共有を増すような正確さで行われる、インタラクション・モデルである。
【０１０７】
図８を参照すると、ブロック図が、図１に示す表示コンポーネント１２０に関連付けて設けられるホスト・コンピュータ・システム１１０のホスト指示コンポーネント１４０の、例示の実施形態の他のコンポーネントを示している。
【０１０８】
ホスト指示コンポーネント１４０は、ホスト・コンピュータ・システム１１０で表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像１５１をキャプチャするための画像キャプチャ・コンポーネント５０２を含み得る。ホスト指示コンポーネント１４０は、キャプチャするアプリケーション・ユーザ・インターフェースを選択するための選択コンポーネント５０３を含むことができ、これによって、ホスト・コンピュータ・システム１１０のユーザが共有する１つまたは複数のアプリケーション・ユーザ・インターフェースを選択することができるようにするか、または画面表示全体を選択することができる。ホスト指示コンポーネント１４０は、各ウィンドウ・クラスと、そのウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップ１５５を提供するために各アプリケーション・ユーザ・インターフェースのデータをシリアライズするためのシリアライズ・コンポーネント５０４も含むことができる。
【０１０９】
画像キャプチャ・コンポーネント５０２とシリアライズ・コンポーネント５０４は、キャプチャされた画像１５１とマップ１５５を遠隔インストラクタ・コンピュータ・システム１６０に送信するために、画像１５１とマップ１５５を送信コンポーネント１４１に供給することができる。
【０１１０】
ホスト指示コンポーネント１４０は、ホスト・コンピュータ・システム１１０におけるアプリケーション・ユーザ・インターフェースの表示を監視し、表示が変化するとキャプチャされた画像１５１とマップ１５５とを更新するための、表示更新コンポーネント５０６を含み得る。
【０１１１】
ホスト指示コンポーネント１４０は、ホスト・コンピュータ・システム１１０の表示におけるコントロール要素とのインタラクションを指示するためにコントロール要素入力指示１５６を遠隔インストラクタ・コンピュータ・システムから受け取るための受信コンポーネント１４２を含み得る。
【０１１２】
受信コンポーネント１４２は、アプリケーション・ユーザ・インターフェースがまだ最新であり、指示がそのアプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップ５１２あるいはその両方とともにコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための検証コンポーネント５１０を含むことができる。検証コンポーネント５１０は、表示されているアプリケーション・ユーザ・インターフェースにとって待機標識がまだ有効であることを検証するためにも使用することができる。
【０１１３】
受信コンポーネント１４２は、受け取った入力指示１５６に含まれる情報から、表示されているアプリケーション・ユーザ・インターフェースにおけるコントロール要素を識別するためのコントロール要素識別コンポーネント５１１を含むことができる。コントロール要素識別コンポーネント５１１は、コントロール要素を識別するためにマップ１５５を参照することができる。一実施形態では、入力指示１５６はコントロール要素の位置と、種類と、コントロール要素を識別するために使用可能なラベルとを含むことができる。アプリケーション・ユーザ・インターフェースのｚレベルの識別子も含まれ得る。
【０１１４】
受信コンポーネント１４２は、インストラクタ・コンピュータ・システム１６０において入力指示１５６が生成中であることを示す待機標識を受け取るための待機コンポーネント５１４を含むことができる。待機コンポーネント５１４は、入力指示１５６が受け取られ、表示される前に、待機標識で参照されているコントロール要素の文脈で待機通知を表示することができる。
【０１１５】
ホスト指示コンポーネント１４０は、アプリケーション・ユーザ・インターフェースで参照しているコントロール要素の文脈で入力指示を表示するための指示表示コンポーネント５０７を含むことができる。
【０１１６】
ホスト指示コンポーネント１４０は、アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、コントロール要素入力指示がアクティブにされるか、またはアプリケーション・ユーザ・インターフェースに入力されることができるようにする、指示有効化コンポーネント５０８を含むことができる。
【０１１７】
図９を参照すると、ブロック図に、図１に示すような表示コンポーネント１７０に関連付けて設けられるインストラクタ・コンピュータ・システム１６０の指示提供コンポーネント１８０の、例示の実施形態の他のコンポーネントが示されている。
【０１１８】
指示提供コンポーネント１８０は、ホスト・コンピュータ・システム１１０で表示されている１つまたは複数のアプリケーション・ユーザ・インターフェースの画像１５１と、各ウィンドウ・クラスとそのウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップ１５５とを受け取るための受信コンポーネント１８１を含むことができる。
【０１１９】
指示提供コンポーネント１８０は、画像を参照することによってマップ内のコントロール要素を特定するためのコントロール要素特定コンポーネント５２２を含むことができる。コントロール要素特定コンポーネント５２２は、各レベルのウィンドウ・クラスをヒット・テストすることを含む、複数のレベルのウィンドウ・クラスを含むマップ内のコントロール要素の特定を行うための、マップ・レベル・コンポーネント５２４を含むことができる。
【０１２０】
指示提供コンポーネント１８０は、インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示１５６を受け取るための入力コンポーネント１８３を含むことができる。指示提供コンポーネント１８０は、コントロール要素入力指示１５６をホスト・コンピュータ・システムに送信するための送信コンポーネント１８２を含むことができる。
【０１２１】
入力コンポーネント１８３は、特定されたコントロール要素の種類のための指示テンプレートを表示し、指示テンプレートにおいて指示する入力を受け取るための、テンプレート・コンポーネント５２６を含むことができる。
【０１２２】
送信コンポーネント１８２は、遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識をホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに送信するための待機コンポーネント５２８を含むことができる。
【０１２３】
ホスト・コンピュータ・システム１１０および１つまたは複数のインストラクタ・コンピュータ・システム１６０において設けられるこのシステムのホスト指示コンポーネント１４０および指示提供コンポーネント１８０の実施形態は、インストール可能ソフトウェア・アプリケーションとして、または、インストール可能ソフトウェア・アプリケーションのクラウド版であってよいクラウド・サービスとして、ウェブ・カンファレンス・ソフトウェアの一部とすることができる。
【０１２４】
ウェブ・カンファレンス・ソフトウェアの一部として、キャプチャされた画像およびマップをホスト・コンピュータ・システムから、ウェブ・カンファレンスを閲覧する１つまたは複数の遠隔コンピュータ・システムに送信することができる。遠隔コンピュータ・システムは、ウェブ・カンファレンスの表示の代わりに、キャプチャされた画像を遠隔コンピュータ・システムの表示コンポーネント１７０上に表示することができる。ホスト・コンピュータ・システム１１０においてウェブ・カンファレンスの表示が変化すると、古い画像を置き換えるために、キャプチャされた新たな画像が遠隔コンピュータ・システムに送信される。キャプチャされた新たな画像とともに、その新たな画像と合致する新たなシリアライズ・データ・マップも送信される。
【０１２５】
次に図１０を参照すると、コンピュータ・システムまたはサーバの形態のシステム６００の一例の概略図が示されている。
【０１２６】
コンピュータ・システムまたはサーバ６１２が、多くの他の汎用または特殊目的コンピューティング・システム環境または構成とともに動作可能である。コンピュータ・システム／サーバ６１２とともに使用するのに適合し得る知られているコンピュータ・システム、環境または構成あるいはその組合せの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル消費者電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスなどのうちのいずれかを含む分散クラウド・コンピューティング環境などがあるが、これらには限定されない。
【０１２７】
コンピュータ・システム／サーバ６１２について、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明する場合がある。一般には、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム／サーバ６１２は、通信ネットワークを介して接続された遠隔処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境で実施されてもよい。分散クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルと遠隔の両方のコンピュータ・システム記憶媒体に格納することができる。
【０１２８】
図１０には、コンピュータ・システム／サーバ６１２が、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ６１２のコンポーネントは、１つまたは複数のプロセッサまたは処理ユニット６１６と、システム・メモリ６２８と、システム・メモリ６２８を含む様々なシステムコンポーネントをプロセッサ６１６に接続するバス６１８とを含み得るがこれらには限定されない。
【０１２９】
バス６１８は、様々なバス・アーキテクチャのうちのいずれかのアーキテクチャを使用する、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種類のバス構造のうちのいずれかのうちの１つまたは複数に相当する。例として、そのようなアーキテクチャとしては、業界標準アーキテクチャ（Industry Standard Architecture（ＩＳＡ））バス、マイクロ・チャネル・アーキテクチャ（Micro Channel Architecture（ＭＣＡ））バス、拡張（Enhanced）ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（Video Electronics Standards Association（ＶＥＳＡ））ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（Peripheral Component Interconnect（ＰＣＩ））バスがあるが、これらには限定されない。
【０１３０】
コンピュータ・システム／サーバ６１２は、典型的には様々なコンピュータ・システム可読記憶媒体を含む。そのような媒体は、コンピュータ・システム／サーバ６１２がアクセスすることができる任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方と、取り外し可能媒体と取り外し不能媒体とを含む。
【０１３１】
システム・メモリ６２８は、ランダム・アクセス・メモリ（ＲＡＭ）６３０またはキャッシュ・メモリ６３２あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ６１２は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。一例に過ぎないが、ストレージ・システム６３４を、取り外し不能な不揮発性磁気媒体（図示されておらず、一般に「ハード・ドライブ」と呼ばれる）の読み書きのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば「フロッピィ・ディスク」）の読み書きのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはその他の光学媒体などの、取り外し可能な不揮発性光ディスクの読み書きのための光ディスク・ドライブとを備えることができる。そのような場合、それぞれを１つまたは複数のデータ・メディア・インターフェースによってバス６１８に接続することができる。以下でさらに図示し、説明するように、メモリ６２８は、本発明の実施形態の機能を実施するように構成された１組の（例えば少なくとも１つの）プログラム・モジュールを有する少なくとも１つのプログラム製品を含み得る。
【０１３２】
一例として、これには限らないが、１組の（例えば少なくとも１つの）プログラム・モジュール６４２を有するプログラム／ユーティリティ６４０と、オペレーティング・システムと、１つまたは複数のアプリケーション・プログラムと、その他のプログラム・モジュールと、プログラム・データとをメモリ６２８に記憶することができる。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組合せのそれぞれが、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール６４２は、一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実施する。
【０１３３】
コンピュータ・システム／サーバ６１２は、キーボード、ポインティング・デバイス、ディスプレイ６２４など、または、ユーザがコンピュータ・システム／サーバ６１２とインタラクションすることができるようにする１つまたは複数のデバイス、または、コンピュータ・システム／サーバ６１２が１つまたは複数の他のコンピューティング・デバイスと通信することができるようにする任意のデバイス（例えばネットワーク・カード、モデムなど）、あるいはその組合せなどの、１つまたは複数の外部デバイス６１４とも通信することができる。このような通信は、入出力（Ｉ／Ｏ）インターフェース６２２を介して行うことができる。さらに、コンピュータ・システム／サーバ６１２は、ローカル・エリア・ネットワーク（ＬＡＮ）、または汎用ワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えばインターネット）、あるいはその組合せなどの１つまたは複数のネットワークと、ネットワーク・アダプタ６２０を介して通信することができる。図のように、ネットワーク・アダプタ６２０は、バス６１８を介してコンピュータ・システム／サーバ６１２の他のコンポーネントと通信する。なお、図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方もコンピュータ・システム／サーバ６１２とともに使用することができることを理解されたい。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらには限定されない。
【０１３４】
本発明は、任意の可能な統合の技術詳細度のシステム、方法またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体（または複数の媒体）を含み得る。
【０１３５】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、可搬コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波（例えば光ファイバ・ケーブルを通る光パルス）、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【０１３６】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【０１３７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語、または同様のプログラム言語などの手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部が遠隔コンピュータ上で、または全体が遠隔コンピュータまたはサーバ上で実行されてもよい。後者の場合、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【０１３８】
本発明の態様について、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明する。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【０１３９】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
【０１４０】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
【０１４１】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。ある別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている２つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装可能であるか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施することができることもわかるであろう。
【０１４２】
クラウド・コンピューティング
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載されている教示の実装はクラウド・コンピューティング環境には限定されないことを理解すべきである。むしろ、本発明の実施形態は、現在知られている、または今後開発される任意の他の種類のコンピューティング環境とともに実装することができる。
【０１４３】
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとのインタラクションで迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング資源（例えば、ネットワーク、ネットワーク回線容量、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも５つの特徴と、少なくとも３つのサービス・モデルと、少なくとも４つの配備モデルとを含み得る。
【０１４４】
特徴は以下の通りである。
オンデマンド・セルフサービス：クラウド消費者は、サービス・プロバイダとの人間のインタラクションを必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
広帯域ネットワーク・アクセス：ネットワークを介して機能が利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム（例えば携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準機構を介してアクセスすることができる。
資源プール：マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて、異なる物理資源および仮想資源が動的に割り当てられ、再割り当てされる。消費者は一般に、提供される資源の厳密な場所について管理することができないかまたは知らないが、より高い抽象レベルの場所（例えば、国、州、またはデータセンター）を指定することが可能な場合があるという点で、位置独立感がある。
迅速な伸縮性：迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
従量制サービス：クラウド・システムが、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御および報告することができ、利用されたサービスの透明性をプロバイダと消費者の両方に与えることができる。
【０１４５】
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス（Software as a Service（Ｓａａｓ））：消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である（例えばウェブ・ベースのＥメール）。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス（Platform as a Service（ＰａａＳ））:消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または取得アプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service（ＩａａＳ））：消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアを配備し、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、配備されたアプリケーションとを制御することができ、場合によっては選択されたネットワーク・コンポーネント（例えばホスト・ファイアウォール）の限定的な制御を行うことができる。
【０１４６】
配備モデルは以下の通りである。
プライベート・クラウド：このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理されることができ、オンプレミスまたはオフプレミスに存在可能である。
コミュニティ・クラウド：このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事（例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項）を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
パブリック・クラウド：このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術（例えば、クラウド間の負荷バランシングのためのクラウド・バースティング）によって結合された、２つ以上のクラウド（プライベート、コミュニティまたはパブリック）の複合体である。
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【０１４７】
次に図１１を参照すると、例示のクラウド・コンピューティング環境７５０が図示されている。図のように、クラウド・コンピューティング環境７５０は、例えばパーソナル・デジタル・アシスタント（ＰＤＡ）または携帯電話７５４Ａ、デスクトップ・コンピュータ７５４Ｂ、ラップトップ・コンピュータ７５４Ｃ、または自動車コンピュータ・システム７５４Ｎあるいはその組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、１つまたは複数のクラウド・コンピューティング・ノード７１０を含む。ノード７１０は互いに通信することができる。ノードは、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドまたはこれらの組合せなどの１つまたは複数のネットワークにおいて物理的または仮想的にグループ化（図示せず）されてもよい。これによって、クラウド・コンピューティング環境７５０は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、図１１に示すコンピューティング・デバイス７５４Ａないし７５４Ｎの種類は、例示を意図したものに過ぎず、コンピューティング・ノード７１０およびクラウド・コンピューティング環境７５０は、（例えばウェブ・ブラウザを使用して）任意の種類のネットワークまたはネットワーク・アドレス指定可能接続あるいはその組合せを介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【０１４８】
次に、図１２を参照すると、クラウド・コンピューティング環境７５０（図１１）によって提供される１組の機能抽象化層が示されている。なお、図１２に示すコンポーネント、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
【０１４９】
ハードウェアおよびソフトウェア層８６０は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム８６１、縮小命令セットコンピュータ（Reduced Instruction Set Computer（ＲＩＳＣ））アーキテクチャ・ベースのサーバ８６２、サーバ８６３、ブレード・サーバ８６４、ストレージ・デバイス８６５、およびネットワークおよびネットワーキング・コンポーネント８６６がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア８６７およびデータベース・ソフトウェア８６８を含む。
【０１５０】
仮想化層８７０は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ８７１と、仮想ストレージ８７２と、仮想プライベート・ネットワークを含む仮想ネットワーク８７３と、仮想アプリケーションおよびオペレーティング・システム８７４と、仮想クライアント８７５である。
【０１５１】
一例では、管理層８８０は、以下に記載の機能を提供することができる。資源プロビジョニング８８１は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング８８２は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。一例ではこれらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他の資源の保護とを行う。ユーザ・ポータル８８３は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理８８４は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント（Service Level Agreement（ＳＬＡ））計画および履行８８５は、ＳＬＡに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取り決めおよび調達を行う。
【０１５２】
ワークロード層８９０は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション８９１、ソフトウェア開発およびライフサイクル管理８９２、仮想教室教育配信８９３、データ分析処理８９４、トランザクション処理８９５、および遠隔指示提供８９６が含まれる。
【０１５３】
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明かであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に優る技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定された。上記には、本発明の範囲から逸脱することなく改良および修正を加えることができる。
【符号の説明】
【０１５４】
１００  システム
１０５  ネットワーク
１１０  ホスト・コンピュータ・システム
１１１  プロセッサ
１１２  メモリ
１１３  コンピュータ命令
１２０  表示コンポーネント
１３０  アプリケーション・ユーザ・インターフェース
１３１  ウィンドウ
１３２  コンテナ
１３４，１３６  コントロール要素
１４０  ホスト指示コンポーネント
１４１  送信コンポーネント
１４２  受信コンポーネント
１５１  画像
１５２  ウィンドウ
１５３  コンテナ
１５４，１５７  コントロール要素
１５５  マップ
１５６  指示
１６０  インストラクタ・コンピュータ・システム
１６１  プロセッサ
１６２  メモリ
１６３  コンピュータ命令
１７０  表示コンポーネント
１８０  指示提供コンポーネント
１８１  受信コンポーネント
１８２  送信コンポーネント
１８３  入力コンポーネント
【図１】
2020532015.tif 000003
【図２】
2020532015.tif 000004
【図３】
2020532015.tif 000005
【図４】
2020532015.tif 000006
【図５】
2020532015.tif 000007
【図６】
2020532015.tif 000008
【図７】
2020532015.tif 000009
【図８】
2020532015.tif 000010
【図９】
2020532015.tif 000011
【図１０】
2020532015.tif 000012
【図１１】
2020532015.tif 000013
【図１２】
2020532015.tif 000014
【国際調査報告】
2020532015.tif 000015
2020532015.tif 000016