JP7177573B2 - ユーザ・インターフェースの遠隔閲覧中における指示の提供 - Google Patents

ユーザ・インターフェースの遠隔閲覧中における指示の提供 Download PDF

Info

Publication number
JP7177573B2
JP7177573B2 JP2020511818A JP2020511818A JP7177573B2 JP 7177573 B2 JP7177573 B2 JP 7177573B2 JP 2020511818 A JP2020511818 A JP 2020511818A JP 2020511818 A JP2020511818 A JP 2020511818A JP 7177573 B2 JP7177573 B2 JP 7177573B2
Authority
JP
Japan
Prior art keywords
computer system
control element
user interface
component
application user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020511818A
Other languages
English (en)
Other versions
JP2020532015A (ja
JP2020532015A5 (ja
Inventor
ウィンチェスター、ジョー
ホー、ジェニー、ジン
カイト、エイドリアン
チュン ジョウ、ベイ
ジュン リウ、グアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2020532015A publication Critical patent/JP2020532015A/ja
Publication of JP2020532015A5 publication Critical patent/JP2020532015A5/ja
Application granted granted Critical
Publication of JP7177573B2 publication Critical patent/JP7177573B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)

Description

本発明は、ユーザ・インターフェースの遠隔閲覧に関し,より詳細には、ホスト・コンピュータ・システムのユーザ・インターフェースの遠隔閲覧中にホスト・コンピュータ・システムに指示を与えることに関する。
画面共有またはデスクトップ共有は、ネットワークを介した遠隔コンピュータ・システムによるホスト・コンピュータ・システムの遠隔アクセスおよび制御を可能にする。別個のクライアント・デバイス上に表示されているときにデスクトップ環境を遠隔で稼働させることができるようにするために、遠隔デスクトップ・ソフトウェアが、アプリケーションとして、ホステッド・サービスとして、またはオペレーティング・システムの一部として、提供されることがある。
これは、いくつかの異なる状況で使用することができ、そのうちの1つは、ホスト・コンピュータ・システム上で稼働している1つまたは複数のアプリケーションの操作についてホスト・コンピュータ・システムのユーザを支援することである。
これは、ウェブ・ミーティング中に、2人以上のユーザが画面を閲覧し、画面を操作することができるようにする手段として使用することができる。これは、表示されているアプリケーションとのインタラクションの方法に関する指示を与えるのに有用である。一例では、アプリケーションを備える画面をウィザード・ページと共有することができ、ウェブ・カンファレンスにおける他のユーザがアプリケーションを動作させるための支援を提供することができる。これは、1人のユーザが問題を抱えている画面を共有しており、第2のユーザが観察してサポートを与えているサポートなどの状況で発生する。
これは、ホスト・コンピュータの制御を遠隔ユーザに与えなければならないという欠点がある。これには、会社の方針のために許可されない可能性があるというセキュリティ上の問題がある場合がある。また、デスクトップ共有には、ファイアウォールの影響があることもある。
学習の観点からの他の欠点は、自分の画面を共有するユーザが制御を手放し、そのユーザは、タイプして必要な入力を行うことによって自分のアプリケーションを動かす者ではなくなることである。
制御を与えるユーザは、もはや自分のコンピュータを操作することができなくなる。例えば、ユーザが応答する必要があるチャット・メッセージが表示された場合、ユーザは制御を取り戻し、チャット・メッセージに回答で応対し、その後、制御を再び手放さなければならない。
また、遠隔制御は、一度に1人のユーザにしか与えることができない。支援を提供するカンファレンスに複数のユーザがいる状況では、各ユーザに一度に1人ずつ制御が与えられる必要があり、インタラクションがばらばらになり、制御の切り換え時に多くの遅延が生じる。
別の選択肢は、ホスト・コンピュータ・システムにおける画面全体の表示または表示されている選択されたアプリケーションを、複数の遠隔コンピュータ・システムに対して表示するために、ウェブ・カンファレンスを使用することである。その表示を見ているユーザが、口頭指示またはタイプされた指示により援助と支援を与える。
一例では、支援を提供するユーザが例えば「ボリューム・シリアル・テキスト・ボックスにxxxxとタイプし、「次へ」を押してください」と言うように通話と同時にウェブ・カンファレンスを行うことができる。これの欠点は、複数言語に渡ってサポートが提供される場合があり、それによって口頭指示に翻訳の問題が生じる可能性があることである。また、遠隔観察者に中継される表示の遅延により混乱が生じる可能性がある。
サポートを提供する1人または複数のユーザが、それぞれの指示をウェブ・カンファレンス・アプリケーションのコメント・パネルまたはチャット領域などのテキスト領域にタイプする場合もある。例えば、「コントロールyyyyyに値xxxをタイプしてください」という指示である。これのデスクトップ共有より優れた利点は、複数のユーザがインタラクションすることができ、支援の提供のしかたについて会話することができることである。
これは、領域が画面の別個の領域にあり、自分のアプリケーションを表示しているユーザがこれを読み、それをユーザが実行する必要があるアクションに転換し戻す必要があり、したがって誤りを生じやすく、待ち時間を含むという欠点がある。場合によっては、同じレベルの複数のボタンまたはコントロールがある場合、表示されている画面で言及されているコントロールを特定するのが難しい。
待ち時間を含むウェブ・カンファレンスでは、1つのウィザード・ページのために「ウィザードで「次へ」をタイプしてください」などの指示がタイプされることがあるが、ユーザがその指示を受け取ってタイプするときにはユーザはすでに次のページに進んでいる可能性もある。指示をコントロールと結びつける必要がある。
本発明は、ホスト・コンピュータ・システムのユーザ・インターフェースの遠隔閲覧中にホスト・コンピュータ・システムに指示を与えることを目的とする。
本発明の一態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、ホスト・コンピュータ・システムにおいて実行され、上記ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、上記データをシリアライズすることと、キャプチャされた上記画像と上記マップとを遠隔コンピュータ・システムに送信することと、上記アプリケーション・ユーザ・インターフェースにおけるコントロール要素のコンテキストにおいて表示するための、上記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることとを含む、コンピュータ実装方法が提供される。
この方法は、1つまたは複数のアプリケーション・ユーザ・インターフェースの画像がシリアライズ・データ・マップとともに、コントロール要素の正確な参照を提供し、それによって遠隔ユーザがコンテキストにおいて入力指示を与えることができるようにするという利点を有する。受信した入力指示は、ホスト・コンピュータ・システムにおいてそのコントロール要素のコンテキストにおいて表示することができる。
各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、各ウィンドウ・クラスによって提供される上記コンテナまたは上記コントロール要素あるいはその両方を特定するためにアクティブなアプリケーション・ユーザ・インターフェースにおける上記ウィンドウ・クラスを解析することを含み得る。マップを提供することは、各ウィンドウ・クラスの種類、大きさおよび位置と、ウィンドウ・クラス内の各コンテナまたは各コントロール要素あるいはその両方の種類、大きさおよび位置とを含み得る。各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、上記表示内の最上部レベルから下方に向かってウィンドウ・クラスの各レベルを解析することができ、上記マップに上記レベルを記録することができる。
この方法は、上記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、上記アプリケーション・ユーザ・インターフェースにおいて上記コントロール要素入力指示がアクティブにされること、または上記アプリケーション・ユーザ・インターフェースに入力されることを可能にすることを含み得る。これには、ホスト・コンピュータ・システムのユーザが、テキストをコピー・アンド・ペーストしたりコントロール要素自体とインタラクションしたりする必要なしに、入力指示を受け付けることができるという利点がある。上記アプリケーション・ユーザ・インターフェースにおける上記コントロール要素のコンテキストにおいて入力指示を表示することは、上記コントロール要素入力指示を上記コントロール要素に隣接して表示すること、または上記コントロール要素を図で指し示すことを含み得る。
コントロール要素入力指示を受け取ることは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの1つまたは複数を含み得る。遠隔コンピュータ・システムからコントロール要素入力指示を受け取ることは、上記アプリケーション・ユーザ・インターフェースがまだ最新であり、上記指示が上記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともに受け取ることができる。
上記方法は、遠隔コンピュータ・システムからのコントロール要素入力指示が上記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取ることを含み得る。
本発明の別の態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、インストラクタ・コンピュータ・システムにおいて実行され、ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと、上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取ることであって、コンテナが属性と子コントロール要素とを含む、上記受け取ることと、上記画像の参照によって上記マップ内のコントロール要素を特定することと、上記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取ることと、上記コントロール要素入力指示を上記ホスト・コンピュータ・システムに送信することとを含む、コンピュータ実装方法が提供される。
コントロール要素を特定することは、受け取った画像内の位置として点または領域を選択することと、上記位置における上記コントロール要素を特定するために上記マップを参照することとを含み得る。上記マップは、複数のレベルのウィンドウ・クラスを含むことができ、上記画像の参照によって前記マップ内のコントロール要素を特定することは、各レベルのウィンドウ・クラスをヒット・テストすることを含み得る。
コントロール要素入力指示を受け取ることは、特定されたコントロール要素の種類のための指示テンプレートを表示することと、上記入力指示を上記指示テンプレートにおいて受け取ることと、コントロール要素入力指示を作成することとを含み得る。
上記コントロール要素入力指示を上記ホスト・コンピュータ・システムに送信することは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの1つまたは複数を送信すること含み得る。コントロール要素入力指示を送信することは、ホスト・コンピュータ・システムにおけるアプリケーション・ユーザ・インターフェースがまだ最新であることを検証するために、返される元の画像またはマップあるいはその両方を送信することができる。
上記方法は、上記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、上記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信することを含み得る。
本発明の別の態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるためのシステムであって、プロセッサと、上記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成されたメモリとを含み、1つまたは複数のアプリケーション・ユーザ・インターフェースを表示するための表示コンポーネントとホスト指示コンポーネントとを含むホスト・コンピュータ・システムを含み、上記ホスト指示コンポーネントは、上記ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャするための画像キャプチャ・コンポーネントと、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズするためのシリアライズ・コンポーネントであって、コンテナが属性と子コントロール要素とを有する、上記シリアライズ・コンポーネントと、キャプチャされた上記画像と上記マップとを遠隔コンピュータ・システムに送信するための送信コンポーネントと、上記アプリケーション・ユーザ・インターフェースにおけるコントロール要素のコンテキストにおいて表示するための、上記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための受信コンポーネントとを含むシステムが提供される。
上記ホスト指示コンポーネントは、上記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、上記アプリケーション・ユーザ・インターフェースにおいて上記コントロール要素入力指示がアクティブにされること、または上記アプリケーション・ユーザ・インターフェースに入力されることを可能にする指示有効化コンポーネントを含み得る。
上記受信コンポーネントは、上記アプリケーション・ユーザ・インターフェースがまだ最新であり、上記指示が上記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともにコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための検証コンポーネントを含み得る。
上記ホスト指示コンポーネントは、遠隔コンピュータ・システムからのコントロール要素入力指示が上記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取るための待機コンポーネントを含み得る。
本発明の別の態様によると、ユーザ・インターフェースの遠隔閲覧中に指示を与えるためのシステムであって、プロセッサと、上記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成されたメモリとを含み、表示コンポーネントと、指示提供コンポーネントとを含み、上記指示提供コンポーネントは、ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取るための受信コンポーネントであって、コンテナが属性と子コントロール要素とを有する、上記受信コンポーネントと、上記画像の参照によって上記マップ内のコントロール要素を特定するためのコントロール要素特定コンポーネントと、上記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取るための入力コンポーネントと、上記ホスト・コンピュータ・システムに上記コントロール要素入力指示を送信するための送信コンポーネントとを含むシステムが提供される。
上記コントロール要素特定コンポーネントは、各レベルのウィンドウ・クラスのヒット・テストを含む、複数のレベルのウィンドウ・クラスを含むマップ内のコントロール要素を特定するためのマップ・レベル・コンポーネントを含み得る。
上記入力コンポーネントは、特定されたコントロール要素の種類のための指示テンプレートを表示し、上記指示テンプレートにおいて上記入力指示を受け取るためのテンプレート・コンポーネントを含み得る。
上記指示提供コンポーネントは、上記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、上記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信するための待機コンポーネントを含み得る。
本発明の別の態様によると、遠隔で閲覧される提示においてハイパーリンクを提供するためのコンピュータ・プログラム製品であって、プログラム命令が実現されているコンピュータ可読記憶媒体を含み、上記プログラム命令は、ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とのマップを提供するために各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、上記シリアライズすることと、キャプチャされた上記画像と上記マップとを遠隔コンピュータ・システムに送信することと、上記アプリケーション・ユーザ・インターフェースにおけるコントロール要素のコンテキストにおいて表示するための、上記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることとを、プロセッサに行わせるように上記プロセッサによって実行可能な、コンピュータ・プログラム製品が提供される。
本発明の別の態様によると、遠隔で閲覧される提示においてハイパーリンクを提供するためのコンピュータ・プログラム製品であって、プログラム命令が実現されているコンピュータ可読記憶媒体を含み、上記プログラム命令は、ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと上記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取ることであって、コンテナが属性と子コントロール要素とを有する上記受け取ることと、上記画像の参照によって上記マップ内のコントロール要素を特定することと、インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示を受け取ることと、上記コントロール要素入力指示を上記ホスト・コンピュータ・システムに送信することとをプロセッサに行わせるように上記プロセッサによって実行可能な、コンピュータ・プログラム製品が提供される。
本発明と見なされる主題について具体的に示し、本明細書の末尾で明確に特許請求する。本発明は、構成と動作方法の両方に関して、本発明の目的、特徴および利点とともに、添付図面とともに読めば以下の詳細な説明を参照することによって最もよく理解できるであろう。
次に、本発明の好ましい実施形態について、例示のみを目的として以下の図面を参照しながら説明する。
本発明によるシステムの例示の実施形態を示すブロック図である。 ホスト・コンピュータ・システムにおいて実行される、本発明による方法の一態様の例示の実施形態を示す流れ図である。 インストラクタ・コンピュータ・システムにおいて実行される、本発明による方法の別の態様の例示の実施形態を示す流れ図である。 ホスト・コンピュータ・システムにおいて実行される、本発明による方法の一態様の他の例示の実施形態を示す流れ図である。 インストラクタ・コンピュータ・システムにおいて実行される、本発明による方法の別の態様の他の例示の実施形態を示す流れ図である。 本発明による遠隔で指示を与える一例を示す概略図である。 本発明による遠隔で指示を与える一例を示す概略図である。 本発明によるシステムの一態様の例示の実施形態を示すブロック図である。 本発明によるシステムの別の態様の例示の実施形態を示すブロック図である。 本発明を実装可能なコンピュータ・システムまたはクラウド・サーバの一実施形態を示すブロック図である。 本発明を実装可能なクラウド・コンピューティング環境を示す概略図である。 本発明を実装可能なクラウド・コンピューティング環境の抽象モデル層を示す図である。
図を簡単にし、明確にするために、図面に示す要素は必ずしも一律の縮尺では描画されていないことはわかるであろう。例えば、明確にするために、要素のうちの一部の要素の寸法が他の要素に対して相対的に誇張されていることがある。また、適切と見なされる場合には、対応する特徴または類似の特徴を示すために参照番号が複数の図面で繰り返し使用されている場合がある。
記載されている方法およびシステムは、ホスト・コンピュータ・システムのユーザが、遠隔コンピュータ・システムのユーザから、ホスト・コンピュータ・システムのディスプレイ上のコントロール要素とのインタラクションに関する指示を受け取ることができるようにする。指示は、ホスト・コンピュータ・システムの遠隔ユーザに制御を与える必要なしに、ホスト・コンピュータ・システムの実際の表示内容に合わせて調整され、表示内容のコンテキストにおいて提供される。
ホスト・コンピュータ・システムにおける方法およびシステムは、ディスプレイの画像を、ディスプレイのコントロール要素またはウィジェットの位置、大きさおよび種類に関するシリアライズ・データとともに、1つまたは複数の遠隔コンピュータ・システムに送信する。このようにして、画面全体、または画面上に表示された特定のアプリケーションまたはウィンドウのみをキャプチャすることができる。
遠隔ユーザが、ディスプレイの領域を選択することができ、ディスプレイの選択された領域内の特定のコントロール要素に関してホスト・コンピュータ・システムのユーザに指示を送信することができる。遠隔ユーザが画像の領域をクリックすると、コントロール要素が正確に特定される。次に、遠隔ユーザからの入力がホスト・マシンに返送される。
ホスト・コンピュータ・システムは、指示を、コントロール要素の隣に、またはコントロール要素を指すポインタとともに表示することができる。指示からデータをコントロール要素の対応するフィールドに入力することができるように、ホスト・ユーザは表示されている指示を選択することができる。複数の遠隔ユーザがホスト・ユーザに同時に指示を与えてもよい。このようにして、ホスト・ユーザは、1人または複数の遠隔ユーザの指示の下に自分のコンピュータとインタラクションする。
図1を参照すると、ブロック図に、記載のシステムおよび方法を実装可能な例示のシステム100を示す。ホスト・コンピュータ・システム110が、少なくとも1つのプロセッサ上で実行されるソフトウェア・ユニットとすることができる記載されているコンポーネントの機能を実行するために、少なくとも1つのプロセッサ111、ハードウェア・モジュール、または回路を含むことができる。メモリ112を、コンポーネントの機能を実行するために少なくとも1つのプロセッサ111にコンピュータ命令113を与えるように構成することができる。
ホスト・コンピュータ・システム110は、1つまたは複数のアプリケーション・ユーザ・インターフェース130を提供するための表示コンポーネント120を含むことができる。アプリケーション・ユーザ・インターフェース130は、オペレーティング・ユーザ・インターフェース、インストールされたアプリケーション・ユーザ・インターフェース、ウェブ・サービス・ユーザ・インターフェース、またはその他のプログラム・ユーザ・インターフェースを含み得る。アプリケーション・ユーザ・インターフェース130は、グラフィカル・ユーザ・インターフェース、ウェブ・ユーザ・インターフェース、コマンド行インターフェースなどとすることができる。ホスト・コンピュータ・システム110は、ユーザ・インターフェースを表示可能な、パーソナル・コンピュータ、サーバ、手持ち型コンピューティング・デバイス、または任意のその他の形態のコンピュータ・システムであってよい。
アプリケーション・ユーザ・インターフェース130は、それぞれが複数のコントロール要素134、136を有する、1つまたは複数のウィンドウ131を含むことができる。コントロール要素134、136はコンテナ132に入れられていてもよい。ウィンドウ131は、コンテナ132およびコントロール要素134、136の階層を含むことができる。
ウィンドウは、その内容が画面の他の部分とは独立して表示され、ウィンドウが属するプログラムのグラフィカル・ユーザ・インターフェース要素のうちのいくつかの要素を含む仮想領域からなる、ディスプレイの領域である。ウィンドウは、ディスプレイ内の別のウィンドウの前面または背後に配置されてもよい。
コントロール要素(コントロールまたはウィジェットとも呼ぶ)は、インタラクションのグラフィカル・ユーザ・インターフェース要素である。コントロール要素は、コンピュータがアプリケーションとインタラクションするために使用するソフトウェア・コンポーネントである。各コントロール要素は、一種のユーザ-コンピュータ・インタラクションを可能にすることができ、アプリケーション・ユーザ・インターフェースの可視部分として表示される。コンテナは、他のコントロール要素のグループを含むコントロール要素の一形態とすることができ、例えば、コンテナは、複数の選択項目を提供するウィンドウまたはパネルとすることができる。コントロール要素の例としては、ボタン、スクロール・バー、テキスト・ボックス、ラベル、チェック・ボックスなどがある。
記載のシステムは、ホスト・コンピュータ・システム110においてホスト指示コンポーネント140を備える。ホスト指示コンポーネント140は、ホスト・コンピュータ・システム110の表示コンポーネント120に表示されている1つまたは複数のアプリケーション・ユーザ・インターフェース130の画像151を送信するための送信コンポーネント141を含む。送信コンポーネント141は、各アプリケーション・ユーザ・インターフェース130のコンテナ132およびコントロール要素134、136の位置と大きさのシリアライズ・データのマップ155も送信する。これらの態様の詳細については以下で示す。このようにして、ホスト指示コンポーネント140はディスプレイ上のアプリケーション・ユーザ・インターフェース130の詳細を1つまたは複数の遠隔インストラクタ・コンピュータ・システム160に送信する。
複数のインストラクタ・コンピュータ・システム160が、ネットワーク105を介してホスト・コンピュータ・システム110と通信することができ、ホスト・コンピュータ・システム110で表示されているアプリケーション・ユーザ・インターフェース130に関する指示をホスト・コンピュータ・システム110に与えることができるようにするために、ホスト・コンピュータ・システム110から情報を受信することができる。インストラクタ・コンピュータ・システム160は、少なくとも1つのプロセッサ上で実行されるソフトウェア・ユニットとすることができる記載のコンポーネントの機能を実行するための、少なくとも1つのプロセッサ161、ハードウェア・モジュール、または回路を含むことができる。メモリ162を、コンポーネントの機能を実行するために少なくとも1つのプロセッサ161にコンピュータ命令163を与えるように構成することができる。
与えられた状況で必要に応じてコンピュータ・システムがホストまたはインストラクタとして動作することができるように、ホスト・コンピュータ・システム110は、インストラクタ・コンピュータ・システム160の機能を含んでよく、その逆の場合も可能である。
インストラクタ・コンピュータ・システム160は、ホスト指示コンポーネント140によって送信されたアプリケーション・ユーザ・インターフェース130の画像151とマップ155とを受信するための受信コンポーネント181を含む、指示提供コンポーネント180を含むことができる。インストラクタ・コンピュータ・システム160は、アプリケーション・ユーザ・インターフェース130のウィンドウ152と、コンテナ153と、コントロール要素154、157との画像を含む受信画像151を表示するための表示コンポーネント170を含むことができる。指示提供コンポーネント180は、コントロール要素画像154に関してインストラクタ・コンピュータ・システム160のユーザによって入力された指示156を受け取り、処理するための入力コンポーネント183を含むことができる。指示提供コンポーネント180は、ホスト・コンピュータ・システム110のホスト指示コンポーネント140の受信コンポーネント142に指示156を送信するための送信コンポーネント182を含むことができる。これらのコンポーネントの詳細については、以下で説明する。
一実施形態では、ホスト・コンピュータ・システム110のアプリケーション・ユーザ・インターフェース130は、ウェブ・カンファレンス・システムの表示コンポーネント170を使用してインストラクタ・コンピュータ・システム160で表示することができ、ウェブ・カンファレンス・システムは受け取った画像151を表示し、本明細書に記載の指示入力を可能にすることができる。
図2を参照すると、流れ図200がユーザ・インターフェースの遠隔閲覧中に指示を与える記載の方法の一態様の例示の実施形態を示している。この方法は、1つまたは複数の遠隔インストラクタ・コンピュータ・システム160から指示を受け取るホスト・コンピュータ・システム110において実行される。
この方法は、ホスト・コンピュータ・システム110によって表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることができる201。画像のキャプチャ201は、スクリーンショットを使用して、表示コンポーネント120上で見えるもののデジタル画像を作成することができる。これは、1つまたは複数のアプリケーション・ユーザ・インターフェース130または画面全体の画像とすることができる。
この方法は、ウィンドウ・クラスとそのコンテナおよびコントロール要素とのマップを提供するために、画像においてキャプチャされた各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることができる202。シリアライザ・コンポーネントが各アプリケーション・ユーザ・インターフェースのアクティブ表示内を移動することができる。このアクティブ表示で、最上部のコンポーネントは大きさと位置を有するウィンドウ・クラスとなる。次に各ウィンドウ・クラスを、コントロール要素またはコンテナであるそのウィンドウ・クラスの子を求めて解析する。コンテナは、子コントロール要素を有し、タイトル(例えばグループ・ボックスの場合)または項目(例えばツリー、テーブルまたはリストの場合)などの属性も有することができる。コントロール要素およびコンテナはサイズと位置とを有する。位置は、親コンテナを基準にして提供され得る。マップは、コントロール要素の種類と識別子も含むことができる。
シリアライズは、ウィンドウィング・オペレーティング・システムの呼び出しを使用することができる。オペレーティング・システムにおいてウィンドウとその子のグラフを決定することができる機能が利用可能である。例えば、Windowsオペレーティング・システム(Windowsはマイクロソフト・コーポレーションの商標である)のためのマイクロソフト・ファウンデーション・クラス・ライブラリ(Microsoft Foundation Class Library(MFC))、Macオペレーティング・システムのためのCarbonアプリケーション・プログラミング・インターフェース(CarbonおよびMacはアップル社の商標である)、およびGTXを使用したLinuxオペレーティング・システム(Linuxはリーナス・トーバルズの商標である)である。
キャプチャされた画像およびマップは、1つまたは複数の遠隔インストラクタ・コンピュータ・システム160に送信することができる203。一実施形態では、これはウェブ・カンファレンス・システムに組み込むことができる。
ホスト・コンピュータ・システム110の表示が変化したか否かを判断するために、ホスト・コンピュータ・システム110の表示を監視することができる204。表示が変化した場合、新たな画像をキャプチャすることができ201、新たなマップをシリアライズすることができる202。この新たな組を遠隔インストラクタ・コンピュータ・システムに送信することができる203。
ホスト・コンピュータ・システム110は、アプリケーション・ユーザ・インターフェースのコントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔インストラクタ・コンピュータ・システム160のいずれかから受け取ることができる205。
ホスト・コンピュータ・システム110は、表示が変化しておらず、入力指示が関係するキャプチャされた画像とマップとがホスト・コンピュータ・システム110においてまだ最新であることを確認することができる206。一実施形態では、これは、指示入力を、インストラクタ・コンピュータ・システム160において受け取って指示入力を生成するために使用された、返された元のマップとともにインストラクタ・コンピュータ・システム160から受け取ることによって確認することができる。別の実施形態では、キャプチャされた画像を検証のためにホスト・コンピュータ・システム110に返すことができる。
マップまたは画像あるいはその両方を使用して、ホスト・コンピュータ・システム110における表示がインストラクタ・コンピュータ・システム160で表示されているものであるか否かを比較することができる。表示が一致する場合、指示を使用して、位置およびコントロール要素識別子を照合することによってホスト・コンピュータ・システム110上のコントロール要素が特定される207。これは、マップでコントロール要素を参照することによって行うことができる。コントロールの特定は、入力指示における識別子に基づくことができる。識別子は、コントロール要素の種類と、マップ内の位置と、コントロール要素識別子と、コントロール要素のラベルとのうちの1つまたは複数を含み得る。
アプリケーション・ユーザ・インターフェースにおけるコントロール要素を指し示すコントロール要素入力指示を、コントロール要素のコンテキストにおいて表示することができる208。この指し示しは、コントロール要素入力指示をコントロール要素に隣接して、例えば、コントロール要素と並べて入力指示を示すアプリケーション・ユーザ・インターフェース上のポップアップ・ウィンドウに表示することによって、またはコントロール要素を指す矢印によって行うことができる。
この方法は、ホスト・コンピュータ・システムのユーザが、例えば備えられた受諾コントロール要素を選択することによって、コントロール要素入力指示をアクティブにするか、またはアプリケーション・ユーザ・インターフェースのコントロール要素にコントロール要素指示を挿入することができるようにすることもできる209。
一実施形態では、ホスト・コンピュータ・システム110は、コントロール要素に隣接したポップアップ・ウィンドウなどのウィジェットを作成することができる。ポップアップ・ウィンドウは、入力指示(例えば入力するテキストまたは選択する選択項目)と、受諾入力(例えば「OK」ボタン)とを含むことができる。ポップアップ・ウィンドウは、その入力指示を与えた遠隔ユーザを識別してもよい。入力指示は、受諾入力を使用してコントロール要素に直接受け入れ可能であってもよい。実施形態によっては、複数の遠隔ユーザから1つのコントロール要素に対する複数の指示を受信してもよい。これらの指示は、遠隔ユーザごとに1つずつ、複数のポップアップ・ウィンドウに表示することができる。
図3を参照すると、流れ図250に、ユーザ・インターフェースの遠隔閲覧中に指示を与えるための記載の方法の一態様の例示の実施形態を示す。この方法は、ホスト・コンピュータ・システム110に指示を与えるインストラクタ・コンピュータ・システム160において実行される。
この方法は、1つまたは複数のアプリケーション・ユーザ・インターフェースの画像を受け取ることができ251、それをインストラクタ・コンピュータ・システム160において表示することができる252。受け取った画像は、ホスト・コンピュータ・システム110で表示されている1つまたは複数のユーザ・インターフェースまたは画面全体を示す。アプリケーション・ユーザ・インターフェースごとにシリアライズ・データをウィンドウ・クラスおよびそのコンテナおよびコントロール要素のマップとして受け取ることができる253。
一実施形態では、ウェブ・カンファレンス・システムの表示コンポーネント170を使用してインストラクタ・コンピュータ・システム160においてホスト・コンピュータ・システム110のアプリケーション・ユーザ・インターフェース130が表示され、ウェブ・カンファレンス・システムは表示コンポーネント170においてウェブ・カンファレンス・フィードの代わりに受け取った画像を表示することができる。
インストラクタ・コンピュータ・システムにおけるユーザによる入力を、ユーザが指示を与えたいコントロール要素に関する表示画像の点または領域の選択として受け取ることができる254。この方法は、表示画像上の位置およびシリアライズ・データのマップを参照することによって、コントロール要素を特定することができる255。
コントロール要素の種類も特定することができ、コントロール要素の種類について適切な指示テンプレートをユーザに提示することができる256。指示テンプレートへのユーザ入力からコントロール要素入力指示を受け取ることができる257。
遠隔インストラクタ・コンピュータ・システムのユーザは、ディスプレイの領域を選択することができ、指示提供コンポーネントは、表示コントロール要素のマップを参照して、カーソルの下にどのコントロール要素があるかを判断することができる。コントロール要素がテキスト領域の場合、ユーザには「_をタイプする」または「_キーを押す」などのテキスト・ボックスのための指示を与える選択項目が与えられてもよい。コントロール要素がボタンの場合、ユーザに「Enterを押す」などのボタンに関連する指示を与えることができてもよい。
コントロール要素入力指示は、コントロール要素の識別子とともにホスト・コンピュータ・システムに送信することができる258。例えば、位置とコントロール要素の種類とを提供することができる。入力指示は、コントロールの種類に応じて、遠隔ユーザによって入力されたテキストまたは指定された選択項目を含むことができる。指示は、その入力指示提案を誰が行ったかがホスト・コンピュータ・システムのユーザにわかるように、遠隔ユーザ識別子も含むことができる。生成され、インストラクタ・コンピュータ・システムに送信されたマップを参照することによってホスト・コンピュータ・システムにおけるコントロール要素を照合するために、コントロール要素の位置および種類を使用することができる。
ホスト・コンピュータ・システムによって同じ内容がまだ表示されており、したがって指示入力がその表示にとって有効であることを検証するために、入力指示とともに画像の戻りマップまたはコピーあるいはその両方をホスト・コンピュータ・システムに返すことができる259。
ホスト・コンピュータ・システムのユーザの場合、ホスト・コンピュータ・システムのユーザが指示を受信すると、指示は単に別個のチャット領域に示されるではなく、コントロール要素のコンテキストにおいて表示される。ユーザは、どのコントロールのために支援が与えられているかがわかり、ユーザは指示を受け入れることもでき、その結果、テキストが入力される、ボタンが押されるなどされる。
一実施形態では、遠隔インストラクタ・コンピュータ・システムの指示ユーザが、単一の指示でコンテナのすべてのコントロール要素のための入力指示を与えることができる。
一実施形態では、ホスト・コンピュータ・システムはアプリケーション・ユーザ・インターフェースのデータを、コントロールの種類、大きさおよび位置とともに拡張マークアップ言語(XML)にシリアライズすることができる。
図7に表示されているものなどの、ウィザード・ページのアプリケーション・ユーザ・インターフェース130のシリアライズ・データの一例は次のようになる。
<Window location=10,10 size=70,130>
<Container location=0,0 size=70,20>
....... (ウィザードのタイトル・バーのためのコントロール) .....
</Container>

<Container location=0,20 size=70,80>
<Label location=5,5 size=20,10 text=”Volume serial:”/>
<Text location=30,5 size=30,10/>
<Text location=5,22 size=20,10 text=Generic unit”/>
<Text location=30,22 size=30,10/>

</Container>
<Container location=0,80 size=100,20>
<Button location=15,3 size=20,7 label=”Back”/>
<Button location=40,3 size=20,7 label=”Next”/>
<Button location=55,3 size=20,7 label=”Cancel”/>
<Button location=70,3 size=20,7 label=”Finish”/>
</Container>
</Window>
ホスト・コンピュータ・システム110における単一のアプリケーションがキャプチャされ、遠隔インストラクタ・コンピュータ・システムに送信されてもよい。任意により、キャプチャされて送信されるいくつかのアプリケーションが選択されてもよい。一実施形態では、ホスト・コンピュータ・システム110における表示全体がキャプチャされ、遠隔インストラクタ・コンピュータ・システムに送信されてもよい。
複数のアプリケーション・ユーザ・インターフェースまたは表示全体がキャプチャされる場合、すべてのアプリケーション・ユーザ・インターフェースのシリアライズ・データが作成され、インストラクタ・コンピュータ・システムに送信される。各アクティブ・ウィンドウについて、シリアライズ・データにzオーダが含められる。zオーダは、すべてのものの前面にあるアプリケーションがzオーダ0を有し、その背後にあるアプリケーションがzオーダ1を有するようにウィンドウが重なり合わされる順序である。これは、コントロール要素が別のコントロール要素の背後にある場合に、位置とコントロール要素との間のマッピングが、誤判断を生じさせないようになされる。どのウィンドウについても、ペイント領域の境界を問い合わせることによって、そのウィンドウが別のウィンドウによってマスクまたは覆い隠されているか否かを判断することができる。
図4を参照すると、流れ図300に、ホスト・コンピュータ・システム110における複数のアプリケーション・ユーザ・インターフェース・ウィンドウまたは表示全体のために、ホスト・コンピュータ・システム110において実行される、指示を与える記載の方法の一態様の例示の実施形態を示す。
シリアライザ・コンポーネントがアクティブ表示内を移動することができる301。アクティブ表示は、遠隔インストラクタ・システムと共有するために選択されたアプリケーション・ユーザ・インターフェースであってよい。ホスト・コンピュータ・システムにおけるユーザは、1つまたは複数のアプリケーション・ユーザ・インターフェースを共有することか、または画面全体を共有することを選択することができる。
ウィンドウは互いに重ねることができ、最上部のウィンドウはその下にあるウィンドウを覆い隠してもよい。ウィンドウの順序をzオーダと呼び(xおよびyが左右軸および上下軸である)、zは画面から出る方向である。
最上部のウィンドウ・クラスが選択され302、その大きさおよび位置とともにマップに追加される。ウィンドウ内のコンテナおよびコントロール要素をトラバースすることを含む、ウィンドウ・クラスの解析303を行うことができる。コンテナおよびコントロール要素はその種類、大きさ、位置とともにマップに追加304される。
アクティブ表示内に次のレベルのウィンドウ・クラスがあるか否かを判断することができる305。ある場合、方法は表示内の次のレベルに下がり306、マップを作成するために方法が繰り返される302、303、304。
次のレベルのウィンドウ・クラスがないと判断された場合305、アクティブ表示のマップが送信される307。
図6を参照すると、流れ図350に、ホスト・コンピュータ・システム110における複数のアプリケーション・ユーザ・インターフェース・ウィンドウまたは表示全体のためにインストラクタ・コンピュータ・システム160において実行される、指示を与える記載の方法の一態様の例示の実施形態が示されている。
この方法は、表示されたキャプチャ画像内の点または領域のユーザ選択を受け取ることができ351、その点または領域におけるコントロール要素を特定するためにシリアライズ・データ・マップを参照することができる。
この方法は、ヒット・テストを使用してマップの最初のレベルの選択された領域内に見えるウィンドウを調べることができる352。最初のレベルは、zオーダ0のレベルである。
「ヒット・テスト」の技法では、カーソルがウィンドウの可視描画境界ボックス内にあるか否かを調べるためにウィンドウの位置と大きさをカーソルの位置と比較することによって、カーソルの座標(x,y)が現在ペイントされている領域内に含まれるか否かを各ウィンドウに問い合わせる。ウィンドウに問い合わせる順序は、zオーダ順であり、最も外側の「上部」ウィンドウが最初に問合せされ、次にその下のウィンドウが問合せされる。カーソル座標xおよびyを境界ボックス内に含む最初のウィンドウが、ユーザに見えるウィンドウとなる。
そのウィンドウ・レベルでヒット・テストが成功したか否かを判断することができる353。成功しない場合、方法は次の下のレベルに移行して調べる354。
ウィンドウのヒット・テストが成功した場合、その対象ウィンドウ内の子を調べ355、ウィンドウのコンテナおよびコントロール要素がカーソルを含むか否か問い合わせる。コンテナとコントロールのツリーを再帰的にトラバースするとき、カーソルがその境界内に含まれるか否かについて任意のレベルで1つのコントロール要素のみが肯定ヒット結果を出す。これは、上にあるコントロールが、それらのコントロールが覆い隠しているコントロールの前に問合せされるように、逆zオーダ順に行われる。その矩形内にカーソルのxおよびy位置を含むことがわかった最初のコントロールが、カーソルの下にあるコントロールである。これはヒット・テストと呼ばれる。
ヒット・テストの結果は1つのコントロール要素がカーソルが指したコントロール要素であることを返すかまたはどのコントロール要素も返さないかのいずれかである。
このようにして、この方法は、ヒットする選択領域内のコントロール要素の結果を得ることができ355、マップでそのコントロール要素を調べることによってコントロールの種類を判断することができる。
そのコントロールの種類の指示テンプレートがユーザに提示されてもよく357、指示テンプレートでユーザ入力を受け取ってもよい358。指示入力は、コントロール要素の位置および識別子とともにホスト・コンピュータ・システムに送信することができる359。
インストラクタが「Enter」を押して自分の入力を完了すると、このユーザからの入力指示を示すために以下の例示のXMLが構築される。
<Window location=10,10 size=70,130 instructor=“John Smith” >

<Container location=0,20 size=70,80>
<Label location=5,5 size=20,10 text=”Volume serial:”/>
<Text location=30,5 size=30,10 input=”201610280005”/>
</Container>
<Container location=0,80 size=100,20>

<Button location=70,3 size=20,7 label=”Finish” clicked=”yes”/>
</Container>
</Window>
この例では、2つのコントロール要素が、テキスト入力と「完了」ボタンであることが特定される。各コントロール要素は、そのコンテナ位置、コントロール要素位置およびラベル名によって識別される。指示ユーザも識別される。
別の例示のXMLでは、コントロール要素識別子を生成することができ、XMLに含めることができる。
図6および図7を参照すると、例示のアプリケーション・ユーザ・インターフェース130が示されている。図6は、インストラクタ・コンピュータ・システムにおいて提示されているアプリケーション・ユーザ・インターフェースの画像151を示し、図7は、ホスト・コンピュータ・システムにおけるアプリケーション・ユーザ・インターフェース130を示す。アプリケーション・ユーザ・インターフェース130は、選択項目411が選択され、その結果コンテナ132のウィンドウが表示されているメニュー・パネル410を有する。コンテナ132は、関連付けられたテキスト・ボックス421、422を有するラベルと、ドロップ・ダウン・メニュー423を有するラベルとを含む。「戻る」、「次へ」、「キャンセル」、および「完了」操作のためのボタン424ないし427が設けられている。
図6は、アプリケーション・ユーザ・インターフェースの画像151内のコントロール要素421が、指示ユーザによってコントロール要素421をカーソル430で指すことによって選択されていることを示している。このコントロール要素の種類のための指示テンプレート431が、キーボードまたはマウスの使用方法の指示のための1組の選択項目とともに表示され、例えば、テキスト領域は「テキスト:...を入力」または「...をタイプ」という指示を有する。この場合、指示ユーザは、テキスト・ボックスに入力したいテキストをタイプする領域を有する。次に、指示ユーザは、指示ユーザの画面上のテキスト領域に、値、例えば「201610281005」をタイプし、完了したことを通知するために「Enter」を押すことができる。
カーソル430の下のコントロール要素がボタンであった場合、ユーザは「クリック」または「ダブル・クリック」などの異なる1組のアクションを取得することになる。カーソルの下のコントロール要素がスクロール・バーであった場合、ユーザは、スクロール・バーを動かすべき場所などの異なる1組のアクションを取得することになる。この1組のアクションは、コントロール要素の種類を知ることによって判断される。
図7に示すように、ホスト・コンピュータ・システムで自分のアプリケーションを表示しているホスト・ユーザの場合、ホスト指示コンポーネントが入力指示を受け取ると、入力指示は、テキストだけでなく、該当するコントロール位置とコントロール要素識別子も含む。これは、アプリケーション・ユーザ・インターフェース130においてコントロールを探し出して、コントロール要素421の傍に指示を示すポップアップ441を開くために使用される。コントロール要素によっては、これらは直接適用する(テキスト・フィールドにタイプする、またはボタンを押すなど)ことができてよく、その場合、「OK」ボタン444を設けて、アプリケーションのホスト・ユーザが、支援を提供した指示ユーザからの指示を受け入れて適用するだけで済むようにしてもよい。
図7に示す例では、指示ユーザ「ジョン・スミス」が指示を与えるものとして識別され442、指示において「201610281005」というテキスト値443が提供される。ホスト・ユーザは、視覚指示440(矢印など)により、どのコントロール要素421のための指示であるかがわかり、受諾して自分のアプリケーション・ユーザ・インターフェース130のテキスト・フィールドに値を入力させるために「OK」ボタン444を押すことができる。
記載のシステムを使用してアプリケーション・ユーザ・インターフェース130を見ることができるインストラクタ・コンピュータ・システムを有する複数の指示ユーザがいてもよい。インストラクタの1人が自分のインストラクタ・コンピュータ・システムにおいて入力を行うことによって指示の提供を開始すると、他の指示ユーザとホスト・ユーザは、観察者の1人が、名前と、コントロール要素に対して「...」などのアクションが未完了であることを示す標識とを使用してタイプ中であるという通知を受け取ることができる。例えば、この例では「ジョン・スミス...」である。
インストラクタの1人が領域内でカーソルを指すと、それがそのインストラクタのインストラクタ・コンピュータ・システムによって検出され、システムが以下のような例示のXMLを、元の画像とともにホスト・コンピュータ・システムに送信する。ホスト・コンピュータ・システムは、現在の表示が元の画像と一致すると判断し、次にこのXMLを他のコンピュータにブロードキャストする。
<Window location=10,10 size=70,130 instructor=“John Smith” >
<Container location=0,20 size=70,80>
<Label location=5,5 size=20,10 text=”Volume serial:”/>
<Text location=30,5 size=30,10 pendingforinput=”yes”/>
</Container>
</Window>
指示ユーザがタイプを完了すると、すべてのユーザがその指示を見ることができ、同様の方式で追加を行うかまたはコメントすることができる。したがって、複数ユーザのカンファレンスの場合、自分の画面を表示しているホスト・ユーザは、行うべき正しいアクションに関する共同的な入力を皆から取得することができる。これは、アプリケーション・ユーザ・インターフェースの操作方法に関して支援を必要とする問題または課題のある自分の画面を共有している本来のユーザの手助けを複数のユーザが行う環境で有用となり得る。
指示ユーザがホスト・ユーザにそれぞれの指示を返送するとき、指示ユーザは指示ユーザと共有されていたマップと画像も返送する。これがホスト・ユーザのアプリケーション・ユーザ・インターフェースと比較される。ホスト・ユーザが異なるアプリケーション、恐らくウィザードの次のページを示している場合、その指示は適切ではなく、ユーザは、その誤ったユーザ・インターフェース要素に対してタイプせず、またはボタンを押さない。指示ユーザが指示の提供を開始するとただちに、共有ホストには、ユーザが指示を提案中であることを示す「...」が表示されることになる。これにより、ホスト・ユーザは、その指示が完了し、送信されるまで待つことができ、したがって、このインタラクション・モデルは、インストラクタがホスト・ユーザを「休止」させて、指示をタイプし、その指示を送信し、表示されているアプリケーションを指示が作成されたアプリケーションと比較させることができ、これらが、誤りを低減し、ホストとインストラクタとの間での技術と知識の共有を増すような正確さで行われる、インタラクション・モデルである。
図8を参照すると、ブロック図が、図1に示す表示コンポーネント120に関連付けて設けられるホスト・コンピュータ・システム110のホスト指示コンポーネント140の、例示の実施形態の他のコンポーネントを示している。
ホスト指示コンポーネント140は、ホスト・コンピュータ・システム110で表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像151をキャプチャするための画像キャプチャ・コンポーネント502を含み得る。ホスト指示コンポーネント140は、キャプチャするアプリケーション・ユーザ・インターフェースを選択するための選択コンポーネント503を含むことができ、これによって、ホスト・コンピュータ・システム110のユーザが共有する1つまたは複数のアプリケーション・ユーザ・インターフェースを選択することができるようにするか、または画面表示全体を選択することができる。ホスト指示コンポーネント140は、各ウィンドウ・クラスと、そのウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップ155を提供するために各アプリケーション・ユーザ・インターフェースのデータをシリアライズするためのシリアライズ・コンポーネント504も含むことができる。
画像キャプチャ・コンポーネント502とシリアライズ・コンポーネント504は、キャプチャされた画像151とマップ155を遠隔インストラクタ・コンピュータ・システム160に送信するために、画像151とマップ155を送信コンポーネント141に供給することができる。
ホスト指示コンポーネント140は、ホスト・コンピュータ・システム110におけるアプリケーション・ユーザ・インターフェースの表示を監視し、表示が変化するとキャプチャされた画像151とマップ155とを更新するための、表示更新コンポーネント506を含み得る。
ホスト指示コンポーネント140は、ホスト・コンピュータ・システム110の表示におけるコントロール要素とのインタラクションを指示するためにコントロール要素入力指示156を遠隔インストラクタ・コンピュータ・システムから受け取るための受信コンポーネント142を含み得る。
受信コンポーネント142は、アプリケーション・ユーザ・インターフェースがまだ最新であり、指示がそのアプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップ512あるいはその両方とともにコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための検証コンポーネント510を含むことができる。検証コンポーネント510は、表示されているアプリケーション・ユーザ・インターフェースにとって待機標識がまだ有効であることを検証するためにも使用することができる。
受信コンポーネント142は、受け取った入力指示156に含まれる情報から、表示されているアプリケーション・ユーザ・インターフェースにおけるコントロール要素を識別するためのコントロール要素識別コンポーネント511を含むことができる。コントロール要素識別コンポーネント511は、コントロール要素を識別するためにマップ155を参照することができる。一実施形態では、入力指示156はコントロール要素の位置と、種類と、コントロール要素を識別するために使用可能なラベルとを含むことができる。アプリケーション・ユーザ・インターフェースのzレベルの識別子も含まれ得る。
受信コンポーネント142は、インストラクタ・コンピュータ・システム160において入力指示156が生成中であることを示す待機標識を受け取るための待機コンポーネント514を含むことができる。待機コンポーネント514は、入力指示156が受け取られ、表示される前に、待機標識で参照されているコントロール要素のコンテキストにおいて待機通知を表示することができる。
ホスト指示コンポーネント140は、アプリケーション・ユーザ・インターフェースで参照しているコントロール要素のコンテキストにおいて入力指示を表示するための指示表示コンポーネント507を含むことができる。
ホスト指示コンポーネント140は、アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、コントロール要素入力指示がアクティブにされるか、またはアプリケーション・ユーザ・インターフェースに入力されることができるようにする、指示有効化コンポーネント508を含むことができる。
図9を参照すると、ブロック図に、図1に示すような表示コンポーネント170に関連付けて設けられるインストラクタ・コンピュータ・システム160の指示提供コンポーネント180の、例示の実施形態の他のコンポーネントが示されている。
指示提供コンポーネント180は、ホスト・コンピュータ・システム110で表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像151と、各ウィンドウ・クラスとそのウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップ155とを受け取るための受信コンポーネント181を含むことができる。
指示提供コンポーネント180は、画像を参照することによってマップ内のコントロール要素を特定するためのコントロール要素特定コンポーネント522を含むことができる。コントロール要素特定コンポーネント522は、各レベルのウィンドウ・クラスをヒット・テストすることを含む、複数のレベルのウィンドウ・クラスを含むマップ内のコントロール要素の特定を行うための、マップ・レベル・コンポーネント524を含むことができる。
指示提供コンポーネント180は、インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示156を受け取るための入力コンポーネント183を含むことができる。指示提供コンポーネント180は、コントロール要素入力指示156をホスト・コンピュータ・システムに送信するための送信コンポーネント182を含むことができる。
入力コンポーネント183は、特定されたコントロール要素の種類のための指示テンプレートを表示し、指示テンプレートにおいて指示する入力を受け取るための、テンプレート・コンポーネント526を含むことができる。
送信コンポーネント182は、遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識をホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに送信するための待機コンポーネント528を含むことができる。
ホスト・コンピュータ・システム110および1つまたは複数のインストラクタ・コンピュータ・システム160において設けられるこのシステムのホスト指示コンポーネント140および指示提供コンポーネント180の実施形態は、インストール可能ソフトウェア・アプリケーションとして、または、インストール可能ソフトウェア・アプリケーションのクラウド版であってよいクラウド・サービスとして、ウェブ・カンファレンス・ソフトウェアの一部とすることができる。
ウェブ・カンファレンス・ソフトウェアの一部として、キャプチャされた画像およびマップをホスト・コンピュータ・システムから、ウェブ・カンファレンスを閲覧する1つまたは複数の遠隔コンピュータ・システムに送信することができる。遠隔コンピュータ・システムは、ウェブ・カンファレンスの表示の代わりに、キャプチャされた画像を遠隔コンピュータ・システムの表示コンポーネント170上に表示することができる。ホスト・コンピュータ・システム110においてウェブ・カンファレンスの表示が変化すると、古い画像を置き換えるために、キャプチャされた新たな画像が遠隔コンピュータ・システムに送信される。キャプチャされた新たな画像とともに、その新たな画像と合致する新たなシリアライズ・データ・マップも送信される。
次に図10を参照すると、コンピュータ・システムまたはサーバの形態のシステム600の一例の概略図が示されている。
コンピュータ・システムまたはサーバ612が、多くの他の汎用または特殊目的コンピューティング・システム環境または構成とともに動作可能である。コンピュータ・システム/サーバ612とともに使用するのに適合し得る知られているコンピュータ・システム、環境または構成あるいはその組合せの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記のシステムまたはデバイスなどのうちのいずれかを含む分散クラウド・コンピューティング環境などがあるが、これらには限定されない。
コンピュータ・システム/サーバ612について、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明する場合がある。一般には、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ612は、通信ネットワークを介して接続された遠隔処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境で実施されてもよい。分散クラウド・コンピューティング環境では、プログラム・モジュールを、メモリ・ストレージ・デバイスを含むローカルと遠隔の両方のコンピュータ・システム記憶媒体に格納することができる。
図10には、コンピュータ・システム/サーバ612が、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ612のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット616と、システム・メモリ628と、システム・メモリ628を含む様々なシステムコンポーネントをプロセッサ616に接続するバス618とを含み得るがこれらには限定されない。
バス618は、様々なバス・アーキテクチャのうちのいずれかのアーキテクチャを使用する、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種類のバス構造のうちのいずれかのうちの1つまたは複数に相当する。例として、そのようなアーキテクチャとしては、業界標準アーキテクチャ(Industry Standard Architecture(ISA))バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture(MCA))バス、拡張(Enhanced)ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association(VESA))ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect(PCI))バスがあるが、これらには限定されない。
コンピュータ・システム/サーバ612は、典型的には様々なコンピュータ・システム可読記憶媒体を含む。そのような媒体は、コンピュータ・システム/サーバ612がアクセスすることができる任意の利用可能な媒体であってよく、揮発性媒体と不揮発性媒体の両方と、取り外し可能媒体と取り外し不能媒体とを含む。
システム・メモリ628は、ランダム・アクセス・メモリ(RAM)630またはキャッシュ・メモリ632あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ612は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。一例に過ぎないが、ストレージ・システム634を、取り外し不能な不揮発性磁気媒体(図示されておらず、一般に「ハード・ドライブ」と呼ばれる)の読み書きのために設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば「フロッピィ・ディスク」)の読み書きのための磁気ディスク・ドライブと、CD-ROM、DVD-ROMまたはその他の光学媒体などの、取り外し可能な不揮発性光ディスクの読み書きのための光ディスク・ドライブとを備えることができる。そのような場合、それぞれを1つまたは複数のデータ・メディア・インターフェースによってバス618に接続することができる。以下でさらに図示し、説明するように、メモリ628は、本発明の実施形態の機能を実施するように構成された1組の(例えば少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含み得る。
一例として、これには限らないが、1組の(例えば少なくとも1つの)プログラム・モジュール642を有するプログラム/ユーティリティ640と、オペレーティング・システムと、1つまたは複数のアプリケーション・プログラムと、その他のプログラム・モジュールと、プログラム・データとをメモリ628に記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組合せのそれぞれが、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール642は、一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実施する。
コンピュータ・システム/サーバ612は、キーボード、ポインティング・デバイス、ディスプレイ624など、または、ユーザがコンピュータ・システム/サーバ612とインタラクションすることができるようにする1つまたは複数のデバイス、または、コンピュータ・システム/サーバ612が1つまたは複数の他のコンピューティング・デバイスと通信することができるようにする任意のデバイス(例えばネットワーク・カード、モデムなど)、あるいはその組合せなどの、1つまたは複数の外部デバイス614とも通信することができる。このような通信は、入出力(I/O)インターフェース622を介して行うことができる。さらに、コンピュータ・システム/サーバ612は、ローカル・エリア・ネットワーク(LAN)、または汎用ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えばインターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ620を介して通信することができる。図のように、ネットワーク・アダプタ620は、バス618を介してコンピュータ・システム/サーバ612の他のコンポーネントと通信する。なお、図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方もコンピュータ・システム/サーバ612とともに使用することができることを理解されたい。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらには限定されない。
本発明は、任意の可能な統合の技術詳細度のシステム、方法またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部が遠隔コンピュータ上で、または全体が遠隔コンピュータまたはサーバ上で実行されてもよい。後者の場合、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明する。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作を実装するように、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップが実行されてコンピュータ実装プロセスを実現するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。ある別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装可能であるか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施することができることもわかるであろう。
クラウド・コンピューティング
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載されている教示の実装はクラウド・コンピューティング環境には限定されないことを理解すべきである。むしろ、本発明の実施形態は、現在知られている、または今後開発される任意の他の種類のコンピューティング環境とともに実装することができる。
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとのインタラクションで迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング資源(例えば、ネットワーク、ネットワーク回線容量、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの配備モデルとを含み得る。
特徴は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの人間のインタラクションを必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
広帯域ネットワーク・アクセス:ネットワークを介して機能が利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスすることができる。
資源プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて、異なる物理資源および仮想資源が動的に割り当てられ、再割り当てされる。消費者は一般に、提供される資源の厳密な場所について管理することができないかまたは知らないが、より高い抽象レベルの場所(例えば、国、州、またはデータセンター)を指定することが可能な場合があるという点で、位置独立感がある。
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に機能をプロビジョニングして、迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
従量制サービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切な何らかの抽象化レベルの計量機能を利用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御および報告することができ、利用されたサービスの透明性をプロバイダと消費者の両方に与えることができる。
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(Software as a Service(Saas)):消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である(例えばウェブ・ベースのEメール)。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能まで含めて、基礎にあるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(Platform as a Service(PaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者作成または取得アプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御することができる。
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアを配備し、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システムと、ストレージと、配備されたアプリケーションとを制御することができ、場合によっては選択されたネットワーク・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御を行うことができる。
配備モデルは以下の通りである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理されることができ、オンプレミスまたはオフプレミスに存在可能である。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項)を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)によって結合された、2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
次に図11を参照すると、例示のクラウド・コンピューティング環境750が図示されている。図のように、クラウド・コンピューティング環境750は、例えばパーソナル・デジタル・アシスタント(PDA)または携帯電話754A、デスクトップ・コンピュータ754B、ラップトップ・コンピュータ754C、または自動車コンピュータ・システム754Nあるいはその組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード710を含む。ノード710は互いに通信することができる。ノードは、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドまたはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境750は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、図11に示すコンピューティング・デバイス754Aないし754Nの種類は、例示を意図したものに過ぎず、コンピューティング・ノード710およびクラウド・コンピューティング環境750は、(例えばウェブ・ブラウザを使用して)任意の種類のネットワークまたはネットワーク・アドレス指定可能接続あるいはその組合せを介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
次に、図12を参照すると、クラウド・コンピューティング環境750(図11)によって提供される1組の機能抽象化層が示されている。なお、図12に示すコンポーネント、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層860は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム861、縮小命令セットコンピュータ(Reduced Instruction Set Computer(RISC))アーキテクチャ・ベースのサーバ862、サーバ863、ブレード・サーバ864、ストレージ・デバイス865、およびネットワークおよびネットワーキング・コンポーネント866がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア867およびデータベース・ソフトウェア868を含む。
仮想化層870は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ871と、仮想ストレージ872と、仮想プライベート・ネットワークを含む仮想ネットワーク873と、仮想アプリケーションおよびオペレーティング・システム874と、仮想クライアント875である。
一例では、管理層880は、以下に記載の機能を提供することができる。資源プロビジョニング881は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング882は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。一例ではこれらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他の資源の保護とを行う。ユーザ・ポータル883は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理884は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement(SLA))計画および履行885は、SLAに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取り決めおよび調達を行う。
ワークロード層890は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション891、ソフトウェア開発およびライフサイクル管理892、仮想教室教育配信893、データ分析処理894、トランザクション処理895、および遠隔指示提供896が含まれる。
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明かであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に優る技術的改良を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解することができるように選定された。上記には、本発明の範囲から逸脱することなく改良および修正を加えることができる。
100 システム
105 ネットワーク
110 ホスト・コンピュータ・システム
111 プロセッサ
112 メモリ
113 コンピュータ命令
120 表示コンポーネント
130 アプリケーション・ユーザ・インターフェース
131 ウィンドウ
132 コンテナ
134,136 コントロール要素
140 ホスト指示コンポーネント
141 送信コンポーネント
142 受信コンポーネント
151 画像
152 ウィンドウ
153 コンテナ
154,157 コントロール要素
155 マップ
156 指示
160 インストラクタ・コンピュータ・システム
161 プロセッサ
162 メモリ
163 コンピュータ命令
170 表示コンポーネント
180 指示提供コンポーネント
181 受信コンポーネント
182 送信コンポーネント
183 入力コンポーネント

Claims (18)

  1. ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、ホスト・コンピュータ・システムにおいて実行され、
    前記ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャすることと、
    各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることであって、コンテナが属性と子コントロール要素とを有する、前記シリアライズすることと、
    キャプチャされた前記画像と前記マップとを遠隔コンピュータ・システムに送信することと、
    前記アプリケーション・ユーザ・インターフェースにおけるコントロール要素のコンテキストにおいて表示するための、前記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を、遠隔コンピュータ・システムから受け取ることと
    前記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、前記アプリケーション・ユーザ・インターフェースにおいて前記コントロール要素入力指示がアクティブにされること、または前記アプリケーション・ユーザ・インターフェースに入力されることを可能にすることと、
    を含む、コンピュータ実装方法。
  2. 各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、各ウィンドウ・クラスによって提供される前記コンテナまたは前記コントロール要素あるいはその両方を特定するためにアクティブなアプリケーション・ユーザ・インターフェースにおける前記ウィンドウ・クラスを解析することを含む、請求項1に記載の方法。
  3. マップを提供することは、各ウィンドウ・クラスの種類、大きさおよび位置と、ウィンドウ・クラス内の各コンテナまたは各コントロール要素あるいはその両方の種類、大きさおよび位置とを含む、請求項1に記載の方法。
  4. 各アプリケーション・ユーザ・インターフェースのデータをシリアライズすることは、前記表示内の最上レベルから下方に向かってウィンドウ・クラスの各レベルを解析し、前記マップに前記レベルを記録する、請求項1に記載の方法。
  5. コントロール要素入力指示を受け取ることは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの1つまたは複数を含む、請求項1に記載の方法。
  6. 前記アプリケーション・ユーザ・インターフェースにおける前記コントロール要素のコンテキストにおいて表示することは、前記コントロール要素に隣接して、または図で指し示して前記コントロール要素入力指示を表示することを含む、請求項1に記載の方法。
  7. 遠隔コンピュータ・システムからコントロール要素入力指示を受け取ることは、前記アプリケーション・ユーザ・インターフェースがまだ最新であり、前記指示が前記アプリケーション・ユーザ・インターフェースに適用可能であることを検証するために、返される元の画像またはマップあるいはその両方とともに前記コントロール要素入力指示を受け取る、請求項1に記載の方法。
  8. 遠隔コンピュータ・システムからのコントロール要素入力指示が前記遠隔コンピュータ・システムにおいて現在入力中であることを示す待機標識を受け取ることを含む、請求項1に記載の方法。
  9. ユーザ・インターフェースの遠隔閲覧中に指示を与えるコンピュータ実装方法であって、インストラクタ・コンピュータ・システムにおいて実行され、
    ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと、前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取ることであって、コンテナが属性と子コントロール要素とを含む、前記受け取ることと、
    前記インストラクタ・コンピュータ・システムのユーザからコントロール要素入力指示の入力を受け取ることと、
    前記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、前記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信することと、
    前記コントロール要素入力指示を前記ホスト・コンピュータ・システムに送信することと
    を含む、コンピュータ実装方法。
  10. コントロール要素を特定することは、
    受け取った画像内の位置として点または領域を選択することと、
    前記位置における前記コントロール要素を特定するために前記マップを参照することとを含む、請求項9に記載の方法。
  11. 前記マップは、複数のレベルのウィンドウ・クラスを含み、前記画像の参照によって前記マップ内のコントロール要素を特定することは、各レベルのウィンドウ・クラスをヒット・テストすることを含む、請求項9に記載の方法。
  12. コントロール要素入力指示を受け取ることは、
    特定されたコントロール要素の種類のための指示テンプレートを表示することと、
    前記コントロール要素入力指示を前記指示テンプレートにおいて受け取ることと、
    コントロール要素入力指示を作成することとを含む、請求項9に記載の方法。
  13. 前記コントロール要素入力指示を前記ホスト・コンピュータ・システムに送信することは、コントロール要素の種類と、コントロール要素の位置と、コントロール要素の識別子と、遠隔ユーザの識別子とからなるグループのうちの1つまたは複数を送信することを含む、請求項9に記載の方法。
  14. 前記コントロール要素入力指示は、前記ホスト・コンピュータ・システムにおける前記アプリケーション・ユーザ・インターフェースがまだ最新であることを検証するために、返される元の画像またはマップあるいはその両方とともに送信される、請求項9に記載の方法。
  15. ユーザ・インターフェースの遠隔閲覧中に指示を与えるためのシステムであって、
    プロセッサと、前記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成されたメモリと、1つまたは複数のアプリケーション・ユーザ・インターフェースを表示するための表示コンポーネントと、ホスト指示コンポーネントと、を含むホスト・コンピュータ・システムを含み、
    前記ホスト指示コンポーネントは、
    前記ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像をキャプチャするための画像キャプチャ・コンポーネントと、
    各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方のマップを提供するために、各アプリケーション・ユーザ・インターフェースのデータをシリアライズするためのシリアライズ・コンポーネントであって、コンテナが属性と子コントロール要素とを有する、前記シリアライズ・コンポーネントと、
    キャプチャされた前記画像と前記マップとを遠隔コンピュータ・システムに送信するための送信コンポーネントと、
    前記アプリケーション・ユーザ・インターフェースにおけるコントロール要素のコンテキストにおいて表示するのための、前記コントロール要素とのインタラクションを指示するためのコントロール要素入力指示を遠隔コンピュータ・システムから受け取るための受信コンポーネントとと、
    前記アプリケーション・ユーザ・インターフェースのユーザからの確定入力に続いて、前記アプリケーション・ユーザ・インターフェースにおいて前記コントロール要素入力指示がアクティブにされること、または前記アプリケーション・ユーザ・インターフェースに入力されることを可能にする、指示有効化コンポーネントと、
    を含む
    システム。
  16. ユーザ・インターフェースの遠隔閲覧中に指示を与えるシステムであって、
    プロセッサと、前記プロセッサにコンポーネントの機能を実行させるコンピュータ・プログラム命令を与えるように構成されたメモリと、表示コンポーネントと、指示提供コンポーネントと、を含み、
    前記指示提供コンポーネントは、
    ホスト・コンピュータ・システムにおいて表示されている1つまたは複数のアプリケーション・ユーザ・インターフェースの画像と、各ウィンドウ・クラスと前記ウィンドウ・クラスのコンテナまたはコントロール要素あるいはその両方とを含む各アプリケーション・ユーザ・インターフェースのデータをシリアライズするマップとを受け取るための受信コンポーネントであって、コンテナが属性と子コントロール要素とを有する、前記受信コンポーネントと、
    前記画像の参照によって前記マップ内のコントロール要素を特定するためのコントロール要素特定コンポーネントと、
    前記システムのユーザからコントロール要素入力指示の入力を受け取るための入力コンポーネントと、
    前記ホスト・コンピュータ・システムおよび任意の他の遠隔コンピュータ・システムに、前記遠隔コンピュータ・システムにおいてコントロール要素入力指示が現在入力中であることを示す待機標識を送信するための待機コンポーネントと、
    前記ホスト・コンピュータ・システムに前記コントロール要素入力指示を送信するための送信コンポーネントと
    を含む
    システム。
  17. 請求項1から請求項14までのいずれかに記載の方法をコンピュータに実行させる、コンピュータ・プログラム。
  18. 請求項17に記載のコンピュータ・プログラムを格納した、コンピュータ可読記憶媒体。
JP2020511818A 2017-08-29 2018-08-24 ユーザ・インターフェースの遠隔閲覧中における指示の提供 Active JP7177573B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/689,038 2017-08-29
US15/689,038 US11201906B2 (en) 2017-08-29 2017-08-29 Providing instructions during remote viewing of a user interface
US15/806,366 2017-11-08
US15/806,366 US11206300B2 (en) 2017-08-29 2017-11-08 Providing instructions during remote viewing of a user interface
PCT/IB2018/056427 WO2019043535A1 (en) 2017-08-29 2018-08-24 PROVIDING INSTRUCTIONS DURING REMOTE VISUALIZATION OF A USER INTERFACE

Publications (3)

Publication Number Publication Date
JP2020532015A JP2020532015A (ja) 2020-11-05
JP2020532015A5 JP2020532015A5 (ja) 2021-02-18
JP7177573B2 true JP7177573B2 (ja) 2022-11-24

Family

ID=65435776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020511818A Active JP7177573B2 (ja) 2017-08-29 2018-08-24 ユーザ・インターフェースの遠隔閲覧中における指示の提供

Country Status (5)

Country Link
US (2) US11201906B2 (ja)
JP (1) JP7177573B2 (ja)
DE (1) DE112018003521T5 (ja)
GB (1) GB2578405A (ja)
WO (1) WO2019043535A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11201906B2 (en) 2017-08-29 2021-12-14 International Business Machines Corporation Providing instructions during remote viewing of a user interface
US11693832B2 (en) * 2018-03-15 2023-07-04 Vmware, Inc. Flattening of hierarchical data into a relational schema in a computing system
US11012750B2 (en) * 2018-11-14 2021-05-18 Rohde & Schwarz Gmbh & Co. Kg Method for configuring a multiviewer as well as multiviewer
US11694413B2 (en) * 2020-08-25 2023-07-04 Spatial Systems Inc. Image editing and sharing in an augmented reality system
CN114826916B (zh) * 2021-01-28 2024-07-12 阿里巴巴集团控股有限公司 数据传输方法、设备、系统及计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013229028A (ja) 2012-04-25 2013-11-07 Vmware Inc リモートデバイスのためのユーザインターフェイス仮想化

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0622930A3 (en) 1993-03-19 1996-06-05 At & T Global Inf Solution Division of applications for computer arrangement with collaboration.
US5608872A (en) 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5649104A (en) 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US5727155A (en) * 1994-09-09 1998-03-10 Intel Corporation Method and apparatus for dynamically controlling a remote system's access to shared applications on a host system
US6581203B1 (en) 1997-08-21 2003-06-17 International Business Machines Corporation Technique for visually creating and adding members to a class
AU2001253610A1 (en) * 2000-04-18 2001-10-30 Icplanet Acquisition Corporation Method, system, and computer program product for propagating remotely configurable posters of host site content
JP2003150527A (ja) * 2001-11-05 2003-05-23 Internatl Business Mach Corp <Ibm> チャットシステム、その端末装置及びチャットサーバ並びにプログラム
JP4088131B2 (ja) * 2002-03-28 2008-05-21 富士通株式会社 同期コンテンツ情報生成プログラム、同期コンテンツ情報生成装置および同期コンテンツ情報生成方法
US7260624B2 (en) * 2002-09-20 2007-08-21 American Megatrends, Inc. Systems and methods for establishing interaction between a local computer and a remote computer
US7222305B2 (en) * 2003-03-13 2007-05-22 Oracle International Corp. Method of sharing a desktop with attendees of a real-time collaboration
US7290220B2 (en) * 2003-04-03 2007-10-30 International Business Machines Corporation Method and apparatus for non-sequential access of form fields
US7310659B1 (en) * 2003-06-27 2007-12-18 Sprint Communications Company L.P. Interface and method for extending a target application over an instant message link of a communication network
US7752601B1 (en) 2004-09-20 2010-07-06 The Mathworks, Inc. Runtime component hosting
US7805730B2 (en) 2006-09-21 2010-09-28 Reuters America, Llc Common component framework
KR20080068491A (ko) * 2007-01-19 2008-07-23 엘지전자 주식회사 터치 방식 정보 입력 단말기 및 그 방법
US20090013044A1 (en) * 2007-07-05 2009-01-08 Microsoft Corporation Techniques for managing annotation transformations for context changes
US8812615B2 (en) * 2009-02-17 2014-08-19 Canon Kabushiki Kaisha Remote control of a host computer
US9043386B2 (en) * 2010-10-06 2015-05-26 Hbr Labs Inc. System and method for synchronizing collaborative form filling
US9948988B2 (en) 2011-10-04 2018-04-17 Ricoh Company, Ltd. Meeting system that interconnects group and personal devices across a network
US9225936B2 (en) 2012-05-16 2015-12-29 International Business Machines Corporation Automated collaborative annotation of converged web conference objects
US10353718B2 (en) * 2012-07-23 2019-07-16 Vmware, Inc. Providing access to a remote application via a web client
US9195367B2 (en) 2012-08-02 2015-11-24 International Business Machines Corporation Managing active GUI elements remotely
KR102009928B1 (ko) * 2012-08-20 2019-08-12 삼성전자 주식회사 협업 구현 방법 및 장치
US10089633B2 (en) 2013-08-13 2018-10-02 Amazon Technologies, Inc. Remote support of computing devices
US9361469B2 (en) 2014-03-26 2016-06-07 Amazon Technologies, Inc. Electronic communication with secure screen sharing of sensitive information
US9563445B2 (en) * 2014-05-05 2017-02-07 Citrix Systems, Inc. Remote assistance for managed mobile devices
US9571535B2 (en) * 2014-06-12 2017-02-14 International Business Machines Corporation Quality of experience for communication sessions
US11310312B2 (en) * 2014-07-07 2022-04-19 Citrix Systems, Inc. Peer to peer remote application discovery
CN104239044B (zh) 2014-09-05 2017-07-28 北京航天自动控制研究所 一种图形用户界面动态生成方法
US10581950B2 (en) * 2015-03-06 2020-03-03 Vmware, Inc. Local operation of remotely executed applications
CN105912314A (zh) 2015-12-28 2016-08-31 乐视致新电子科技(天津)有限公司 用户界面控件的布局方法及系统、控制方法及系统
US20170193001A1 (en) * 2015-12-30 2017-07-06 Dropbox, Inc. Control transfer of shared content
US10685169B2 (en) * 2017-05-08 2020-06-16 Zoho Corporation Private Limited Messaging application with presentation window
US11201906B2 (en) 2017-08-29 2021-12-14 International Business Machines Corporation Providing instructions during remote viewing of a user interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013229028A (ja) 2012-04-25 2013-11-07 Vmware Inc リモートデバイスのためのユーザインターフェイス仮想化

Also Published As

Publication number Publication date
US20190068685A1 (en) 2019-02-28
US11201906B2 (en) 2021-12-14
JP2020532015A (ja) 2020-11-05
WO2019043535A1 (en) 2019-03-07
US11206300B2 (en) 2021-12-21
GB2578405A (en) 2020-05-06
GB202001659D0 (en) 2020-03-25
DE112018003521T5 (de) 2020-04-09
US20190068682A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
JP7177573B2 (ja) ユーザ・インターフェースの遠隔閲覧中における指示の提供
US20200050540A1 (en) Interactive automation test
US10831331B2 (en) Window control for simultaneously running applications
US20140109043A1 (en) Displaying different hierarchy levels of computer program source code
US11416785B2 (en) Automated interactive support
US11029802B2 (en) Automated command-line interface
US20200150986A1 (en) Path-sensitive contextual help system
US10061761B2 (en) Real-time dynamic visual aid implementation based on context obtained from heterogeneous sources
US10922101B2 (en) User interface widget recommendation
US10922496B2 (en) Modified graphical user interface-based language learning
US20200218502A1 (en) Cognitive tag library for custom natural language response rendering
US10977247B2 (en) Cognitive online meeting assistant facility
US20200133439A1 (en) Chat session dynamic user interface
US20200066304A1 (en) Device-specific video customization
US11068664B2 (en) Generating comment excerpts within an online publication
US10831835B2 (en) Providing hyperlinks in presentations viewed remotely
US10878804B2 (en) Voice controlled keyword generation for automated test framework
US10901570B2 (en) Input placement control guidance on a display
US11561667B2 (en) Semi-virtualized portable command center
US11651332B2 (en) Distributed collaborative environment using physical notes
US20190163332A1 (en) Non-linear navigation of videos
US11669676B2 (en) Comparing similar applications with redirection to a new web page
US20210358321A1 (en) System and method for natural language triad analysis of educational text
US11928010B2 (en) Extracting and selecting feature values from conversation logs of dialogue systems using predictive machine learning models
US20230394135A1 (en) Automatic compliant password generation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220202

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20220202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220209

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221101

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20221101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221109

R150 Certificate of patent or registration of utility model

Ref document number: 7177573

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150