JP2017184259A - 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 - Google Patents
協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 Download PDFInfo
- Publication number
- JP2017184259A JP2017184259A JP2017099692A JP2017099692A JP2017184259A JP 2017184259 A JP2017184259 A JP 2017184259A JP 2017099692 A JP2017099692 A JP 2017099692A JP 2017099692 A JP2017099692 A JP 2017099692A JP 2017184259 A JP2017184259 A JP 2017184259A
- Authority
- JP
- Japan
- Prior art keywords
- client
- layer
- service
- message
- server
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Telephonic Communication Services (AREA)
Abstract
【課題】遠隔アクセスシステムにおけるフロー制御。
【解決手段】遠隔アクセスシステム内には、クライアントデバイスにおけるクライアントレイヤと、サービスと関連付けられたサービスレイヤと、クライアントデバイスとサービスとの間に送信されるメッセージのための通信プロキシであるサーバレイヤと、を含む層状アーキテクチャが提供され得る。サービスレイヤは、クライアントデバイスから受信されるメッセージのための受信キューと、クライアントデバイス行きのメッセージの送信キューとを有し得る。サーバレイヤは、クライアントデバイス行きのメッセージのアウトバウンドキューを含み得る。クライアントレイヤとサーバレイヤとの間の全二重通信は、クライアントレイヤとサーバレイヤとの間の通信のための第1のチャネル、およびサーバレイヤとクライアントレイヤとの間の通信のための第2のチャネルにおけるサービスプロトコルを使用して実施され得る。
【選択図】図3B
【解決手段】遠隔アクセスシステム内には、クライアントデバイスにおけるクライアントレイヤと、サービスと関連付けられたサービスレイヤと、クライアントデバイスとサービスとの間に送信されるメッセージのための通信プロキシであるサーバレイヤと、を含む層状アーキテクチャが提供され得る。サービスレイヤは、クライアントデバイスから受信されるメッセージのための受信キューと、クライアントデバイス行きのメッセージの送信キューとを有し得る。サーバレイヤは、クライアントデバイス行きのメッセージのアウトバウンドキューを含み得る。クライアントレイヤとサーバレイヤとの間の全二重通信は、クライアントレイヤとサーバレイヤとの間の通信のための第1のチャネル、およびサーバレイヤとクライアントレイヤとの間の通信のための第2のチャネルにおけるサービスプロトコルを使用して実施され得る。
【選択図】図3B
Description
サービス、アプリケーションプログラム、およびデータに対する遍在する遠隔アクセスは、ブロードバンドならびにワイヤレスネットワークアクセスの成長および可用性によって、当たり前のものとなった。そのように、ユーザは、増え続けている種々のクライアントデバイス(例えば、モバイルデバイス、テーブルコンピューティングデバイス、ラップトップ/ノートブック/デスクトップコンピュータなど)を使用してアプリケーションプログラムおよびデータにアクセスする。データは、3Gおよび4Gモバイルデータネットワーク、例えばWiFiおよびWiMaxのようなワイヤレスネットワーク、有線ネットワークなどを含む種々のネットワーク上で、遠隔サーバからデバイスに通信され得る。クライアントは、多くの異種のネットワーク帯域幅や待ち時間で、サービス、アプリケーションプログラムおよびデータを提供するサーバに接続し得る。しかしながら、サービスは、通常、高帯域幅で短い待ち時間の専用接続によって、サーバに接続されていた。
多くのクライアントを、例えばサーバを通して1つのサービスに、接続するための全二重通信を効果的に使用するために、フロー制御機構が必要とされる。サービスとサーバとの間およびクライアントとサーバとの間の帯域幅の大きな差異は、サービスの実装への難題をもたらすものであり、それは、各クライアントの接続の限度および能力に従って、適時の情報を各クライアントに提供することができなければならない。
本明細書において開示されるものは、遠隔アクセスシステムにおけるフロー制御を提供するためのシステムおよび方法である。方法は、クライアントデバイスにおいてクライアントレイヤを提供することと、サービスと関連付けられたサービスレイヤであって、クライアントデバイスから受信されるメッセージのためのサービス受信キューと、クライアントデバイス行きのメッセージのサービス送信キューとを有するサービスレイヤを提供することと、クライアントデバイスとサービスとの間に送信されるメッセージのための通信プロキシとして、クライアントデバイス行きのメッセージのアウトバウンドクライアントキューを含むサーバレイヤを提供することと、サービス送信キューにおけるメッセージをクライアントデバイスへの伝送のためにサーバレイヤに送信するように制御信号をサービスレイヤに通信することとを含み得る。
いくつかの実施態様によれば、回復可能な(信頼性のある)通信を提供する方法であって、ネットワーク接続でアプリケーションに遠隔的にアクセスするクライアントレイヤを提供することと、クライアントレイヤとアプリケーションとの間の通信を代理するサーバレイヤを提供することと、クライアントレイヤとサーバレイヤとの間の通信のために第1のチャネルにサービスプロトコルを実装することによって、およびサーバレイヤとクライアントレイヤとの間の通信のために第2のチャネルにサービスプロトコルを実装することによって、クライアントレイヤとサーバレイヤとの間の全二重通信を容易にすることと、第1のチャネルまたは第2のチャネル上の通信の失敗を検出することと、第1のチャネルまたは第2のチャネル上の失敗を検出すると、サービスプロトコルを使用して通信を再確立することと、を含む、方法が提供される。
更に他の実施態様によれば、コンピュータで読み取り可能な媒体の上にコンピュータで実行可能な命令を有する当該コンピュータで読み取り可能な媒体であって、コンピュータで実行可能な命令がコンピューティングデバイスのプロセッサによって実行されると、サービスと関連付けられたサービスレイヤであって、クライアントデバイスから受信されるメッセージのためのサービス受信キューと、クライアントデバイス行きのメッセージのサービス送信キューとを有するサービスレイヤを提供することと、クライアントデバイスとサービスとの間に送信されるメッセージのための通信プロキシとして、クライアントデバイス行きのメッセージのアウトバウンドクライアントキューを含むサーバレイヤを提供することと、サービス送信キューにおけるメッセージをクライアントデバイスへの伝送のためにサーバレイヤに送信するように制御信号をサービスレイヤに通信することと、を含む方法を機能させる、コンピュータで読み取り可能媒体が、提供される。
以下の図面および詳細な説明を検討することによって、当業者には他のシステム、方法、特徴および/または利点が明らかとなる、あるいは明らかになり得る。すべてのそのような追加のシステム、方法、特徴および/または利点は、この説明に含まれ、添付のクレームによって保護されることが意図される。
図面における構成要素は、必ずしも互いに対して一定の縮尺であるとは限らない。同様の参照番号は、いくつかの図面を通して対応する部分を示している。
特に定義されない限り、本明細書において使用されるすべての技術的および科学的な用語は、本開示が属する技術の当業者によって一般的に理解されるものと同一の意味を有する。本明細書において説明されるものと類似または同等とみなされる方法および用具は、本開示の実施または実験において使用され得る。実施態様は、アプリケーションに遠隔的にアクセスすることについて説明されることになるが、実施態様はそれに限定されるものではなくて、遠隔デバイスを介して任意の種類のデータまたはサービスに遠隔的にアクセスすることに適用可能であることが、当業者に明らかになるであろう。
図1を参照すると、コンピュータネットワークを介してアプリケーション、データまたは他のサービスに対する遠隔アクセスを提供するためのシステム100。システムは、例えば、インターネット等のようなコンピュータネットワーク110を介してサーバ102Bに接続された、例えば、IPHONE(登録商標)112AまたはBLACKBERRY(登録商標)112B等のようなワイヤレス手持ち型デバイス等の、クライアントコンピュータ112Aまたは112Bを備える。同様に、クライアントコンピューティングデバイスはまた、通信ネットワーク110によってサーバ102Bに接続されるデスクトップ/ノートブックパーソナルコンピュータ112Cまたはタブレットデバイス112Nを含み得る。通信ネットワーク110への接続は、任意の種類の接続、例えば、Wi‐Fi(IEEE802.11x)、WiMax(IEEE802.16)、イーサネット(登録商標)、3G、4Gなどとすることができることに留意する。
サーバ102Bは、例えば、コンピュータネットワーク110を介してローカルエリアネットワーク(LAN)109に接続されるか、あるいは、コンピュータネットワーク110に直接的に接続されてもよい。例えば、LAN109は、病院、銀行、大企業、または政府機関等のような施設の内部コンピュータネットワークである。典型的には、そのような施設は依然として、LAN109に接続されたメインフレームコンピュータ102Aおよびデータベース108を使用する。多くのアプリケーションプログラム107Aは、メインフレームコンピュータ102Aのメモリ106A内に格納され得、プロセッサ104A上で実行され得る。同様に、多くのアプリケーションプログラム107Bは、サーバ102Bのメモリ106B内に格納され得、プロセッサ104B上で実行され得る。本明細書において使用される際、アプリケーションプログラム107Aおよび107Bは、遠隔アクセスのために提供される「サービス」であり得る。メインフレームコンピュータ102A、サーバ102Bおよびクライアントコンピュータ112A、112B、112Cまたは112Nは、図6の汎用コンピューティングデバイスに示されるものなどのハードウェアを使用して実装され得る。
クライアント遠隔アクセスプログラム121A、121B、121C、121Nは、それぞれ、例えば、クライアントコンピュータ112A、112B、112C、112Nのタッチスクリーン114Aまたはグラフィックディスプレイ114B/114Nおよびキーボード116B/116Cを用いたグラフィックディスプレイを使用してアプリケーションプログラムと相互に作用するための、受信したユーザ命令に従って、人が理解できる様式でデータおよび/または画像を表示するため、また、ユーザ入力データを決定するために、ユーザとの相互作用を提供するために設計されてもよい。例えば、クライアント遠隔アクセスプログラムは、実行可能なコマンドをプロセッサ118A、118B、118C、118N上で実行することによって機能し、これらのコマンドは、クライアントコンピュータ112A、112B、112C、112Nのメモリ120A、120B、120C、120Nにそれぞれ格納される。あるいは、ユーザインターフェースプログラムは、(アプリケーションプログラム107Bの1つとして)サーバ102B上で実行され、そのサーバは、さらにまた、例えば、クライアントコンピュータ112A、112B上で実行されるウェブブラウザ等のような一般的なクライアントアプリケーションによって、URLを介してアクセスされる。ユーザインターフェースは、例えば、ハイパーテキストマークアップ言語HTML5を使用して実装される。
クライアント遠隔アクセスプログラム121A、121B、121C、121Nと共にサーバ遠隔アクセスプログラム111Bの動作は、図2に例示されるように、状態モデルと協働して機能し得る。実行されると、クライアント遠隔アクセスプログラム121A、121B、121C、121Nは、ユーザインターフェースプログラムから受信したユーザ入力データに従って状態モデルを更新する。遠隔アクセスプログラム121A、121B、121C、121Nは、更新された状態モデルに従って制御データを生成し得、サーバ102B上で動いているサーバ遠隔アクセスプログラム111Bに同一のものを提供する。
アプリケーションプログラム107Aまたは1097Bからアプリケーションデータを受信すると、サーバ遠隔アクセスプログラム111Bは、スクリーンまたはアプリケーションデータに従って状態モデルを更新し、更新された状態モデルに従って表現データを生成し、同一のものをクライアントコンピューティングデバイス上のクライアント遠隔アクセスプログラム121A、121B、121C、121Nに提供する。状態モデルには、アプリケーションプログラムの論理要素の、アプリケーションプログラムの対応する状態との関連付けが含まれ、論理要素は、階層的順序にある。例えば、論理要素は、アプリケーションプログラムユーザインターフェースを構成する、スクリーン、メニュー、サブメニュー、ボタンなどであり得る。これは、クライアントデバイスが、例えば、論理要素をネイティブに表示することを可能にする。そのように、移動電話上に提示されるアプリケーションプログラムのメニューは、移動電話のネイティブメニューのように見えることになる。同様に、デスクトップコンピュータ上に提示されるアプリケーションプログラムのメニューは、デスクトップコンピュータオペレーティングシステムのネイティブメニューのように見えることになる。
状態モデルは、それぞれの論理要素がアプリケーションプログラム107Aまたは107Bの対応する状態に関連付けられるように決定される。状態モデルは、論理要素がユーザとの相互作用に関連付けられるように決定されてもよい。例えば、アプリケーションプログラムの論理要素は、論理要素が遷移要素を含むように決定され、それぞれの遷移要素は、状態モデルの変更を、制御データおよびそれに関連付けられたアプリケーション表現データのうちの1つに関連付ける。
いくつかの実施態様では、クライアントコンピューティングデバイス112A、112B、112C…112Nの2つ以上は、アプリケーションプログラム107Aまたは107Bと協働的に相互作用し得る。そのように、協働セッションに関与するクライアントコンピューティングデバイス112A、112B、112C…112Nのそれぞれと、メインフレームコンピュータ102Aまたはサーバ102Bとの間で状態情報を通信することによって、関与するクライアントコンピューティングデバイス112A、112B、112C…112Nのそれぞれは、アプリケーションプログラム107Aまたは107Bの表示の同期されたビューを提示し得る。
図3Aは、本開示に従う層状アーキテクチャを例示する。層状アーキテクチャは、フロー制御処理を実装し、その処理は、例えば、サーバ102Bが、1つ以上のクライアント(112A、112B、112C、112Nなど)をサーバ102Bを通して1つのサービス107Aまたは107Bに接続するために全二重通信を効果的に使用することを可能にする。例えば、全二重通信は、クライアント112A、112B、112C、112Nとサーバ遠隔アクセスプログラム111Bとの間の2つの半二重通信接続305を使用することによって実現され得る。そのように、他のクライアントのあるネットワーク接続特性と独立して、クライアントのネットワーク接続特性と合致するように情報の生成を調整するためのサービスについての機構が提供される。
図3Aに例示されるように、システムには3つのレイヤ、すなわち、クライアントレイヤ302、サーバレイヤ304およびサービスレイヤ306がある。本開示によれば、層状アーキテクチャは、サービスとサーバとの間、サーバと(複数の)クライアントとの間の帯域幅の差異を考慮する。特に、その差異の理由で、サービス306は、1つ以上のクライアントについてサーバ102B上に保持されたアウトバウンドメッセージキュー(下記)が、それらが空にされるよりもかなり速く増大するように、各クライアント112A、112B、112C、112Nに対してある速度で非同期的に情報を生成し得る。このことは、キュー内のより古い情報は、より新しい情報の前に伝送される必要があるので、望ましくない実行特性をもたらす可能性がある。クライアントビューはサービスの現在の状態のますます後になるので、このことは、時間が経過し、キュー長が大きくなるにつれ、より問題となる。
クライアントレイヤ302は、各クライアント112A、112B、112C、112N内に属し、サーバレイヤ304に接続するために使用される。典型的には、これは、クライアントアプリケーション121A、121B、121C、121N、例えば、ウェブブラウザ、専用アプリケーションなどを含む。サーバレイヤ304は、下記のように、各クライアント112A、112B、112C、112Nからサービスレイヤ306への通信を代理する。本開示によれば、各クライアント112A、112B、112C、112Nは固有識別子(例えば、セッションID)を有する。各クライアントレイヤ302は、サーバ102Bから受信されるメッセージのクライアント受信キュー310を含み、それは、サービス(アプリケーション107Aまたは107B)に代わって送信され、クライアントはそのサービスに論理的に接続される。各クライアントレイヤ302はまた、それがサーバ102Bに送信するメッセージのクライアント送信キュー312も含み、それは、1つの特定のサービス(例えば、107B)行きのものである。
(例えば、アプリケーション107Aまたは107Bと関連付けられる)サービスレイヤ306のインスタンスはサーバレイヤ304に接続し、そのサーバレイヤは、サービスからそのサービスと論理的に関連付けられた各クライアントへの通信を代理する。サービスレイヤ306は、サービスが論理的に接続されるすべてのクライアントに代わって、それが、サーバから受信するメッセージのサービス受信キュー318を含む。各メッセージは、サーバがクライアントからメッセージを受信したそのクライアントの固有識別子でラベル付けされる。サービスレイヤ306はまた、それがサーバ102Bに送信するメッセージのサービス送信キュー320を含む。各メッセージは、サーバ102Bに論理的に接続されるクライアントの1つだけ行きのものである。サーバ102Bが一定のコンテンツを各クライアントに送信する必要がある場合、それは、それぞれ論理的に接続されるクライアントのためにそのコンテンツを含むメッセージを作成する。各メッセージは、サーバがメッセージを送信するべきであるクライアントの固有識別子でラベル付けされる。
図3Bは、1つのサービスに対する複数クライアントの多対一関係を例示する、本開示に従う別の層状アーキテクチャを例示する。図3Aのアーキテクチャに類似の要素は、下記では再度説明されない。図3Bは、1つのサービス(107Aまたは107B)に通信する2つのクライアント(112Aおよび112N)を例示する。サーバレイヤ304は、下記のように、クライアントから、また、サービスから、それぞれ通信を受信するように働くサービスマルチプレクサ322およびクライアントデマルチプレクサ326を提供することによって、クライアントをサービスレイヤ306に多対一関係で論理的に接続する。
図3Bにおいて、サーバレイヤ304は、クライアントとサービスとの間に送信されるすべてのメッセージのための通信プロキシとして働く。それぞれ接続されたクライアントからのメッセージは、サーバレイヤ304におけるサービスマルチプレクサ322で受信され、そのサービスマルチプレクサは、メッセージをサーバレイヤ304に送信した特定のクライアント121Aまたは121Nと関連付けられた固有識別子を使用してインバウンドメッセージをラベル付けする。固有識別子は、例えば、セッションIDとすることができる。次いで、サービスマルチプレクサ322は、メッセージをサービスレイヤ306行きのメッセージの単一ストリームに組み合わせる(多重化する)。メッセージの単一ストリームは、まず、受信キュー313におけるキューに入れられ得る。
サービスレイヤ306がクライアントに通信すると、アウトバウンドメッセージは、サービス送信キュー320におけるキューに入れられ、サーバレイヤ304におけるクライアントデマルチプレクサ326に通信される。クライアントデマルチプレクサ326は、メッセージの固有識別子を調べ、メッセージの固有識別子および宛先クライアントデバイスに従って、メッセージを適切なクライアントキュー314または316に構文解析する。メッセージは、それの各々の半二重通信接続305で、クライアントキュー314または316からクライアント121Aまたは121Nに通信される。
図3Bのアーキテクチャは、複数のクライアントをサービスに対して多対一様式で接続するように記載されるが、アーキテクチャはまた、単一クライアントをサービスに接続することもでき、ここで、サービスマルチプレクサ322およびクライアントデマルチプレクサ326は、メッセージストリームをクライアントとサービスとの間で、それらの変更無しに、単に渡すことになる。
図4は、図3A、3Bのアーキテクチャ内のそれぞれ論理的に接続されるクライアントのためのサービスと関連付けられたメッセージフローを制御する制御信号を提供する動作上のフロー図400を例示する。最初に、サービスレイヤ306は、それぞれ論理的に接続されたクライアントに対して「伝送オフ」状態にある(S402、図4)。すなわち、サービスレイヤ306は、論理的に接続されるいかなるクライアントのためのいかなるメッセージも生成しないことになる。サービスレイヤ306は、1つのクライアントの固有識別子を含むサーバ102Bからの「伝送オン」メッセージを受信すると、それは、そのクライアントに対して「伝送オン」状態に入る(S404、図4)。いくつかの実施態様(図4における経路「A」)によれば、所与のクライアントに対して「伝送オン」状態にあると、サービスレイヤ306は、そのクライアントのためのすべての未処理メッセージを短い待ち時間、高い帯域幅リンク308で、サーバレイヤ304に送信することになり、その高い帯域幅リンク308はまた、2つの半二重リンクを使用する全二重通信を提供し(S406、図4)、さらにまた、そのクライアントに対して「伝送オフ」状態に入る(S408、図4)。
いくつかの実施態様では、サービスレイヤ306はまた、それのサブ構成要素が、任意のクライアントのためにメッセージ遂行要求を非同期的に生成することを可能にする。この実施態様(図4における経路「B」)において、サービスレイヤ306が所与のクライアントに対して「伝送オン」状態に入ると、それは、クライアントのための保留メッセージ遂行要求と関連付けられた新たなメッセージを生成し(S407、図4)、任意の未処理のおよび新たに生成されたメッセージをサーバに送信し(S409、図4)、次いで、そのクライアントに対して「伝送オフ」状態に再度入る(S411、図4)ことになる。
サーバレイヤ304が、論理的に接続されたクライアントからメッセージを受信すると、サーバレイヤ304は、クライアントの固有識別子でメッセージをラベル付けし、それをサービスレイヤ306に送信する。いくつかの実施態様では、メッセージは、ラベル付けられ、サービスマルチプレクサ322によってメッセージの単一ストリームに組み合わされる。インバウンドメッセージは、受信キュー313におけるキューに入れられ得る。
サーバレイヤ304が、サービスレイヤ306からメッセージを受信すると、サーバレイヤ304は、クライアントに送信されることになるアウトバウンドメッセージのクライアントキュー314または316にメッセージを配置し、メッセージは、そのクライアントのためにラベル付けされる。いくつかの実施態様では、未処理メッセージは、クライアントキュー314または316の中に配置される前に、クライアントデマルチプレクサ326によって処理され得る。クライアントのためのアウトバウンドメッセージクライアントキュー314または316が空であるとき、サーバレイヤ304は、クライアントの固有識別子を含む「伝送オン」メッセージを関連付けられたサービスレイヤに送信する(S403、図4)。一実施態様では、サーバ上のアウトバウンドメッセージクライアントキュー314および316のサイズは無限に増大せず、アウトバウンドキュー内に配置されるその任意の情報は、常に比較的「新しい」ものであることになる。
それ故、上記のように、メッセージキューは、待ち時間および帯域幅差異を考慮するように管理され得る。上記の結果は、サーバ上のアウトバウンドメッセージキューが、2つの条件下、(1)クライアントに送信されることになる情報がない、(2)サーバがメッセージのすべてを送信する十分な時間および帯域幅が許可されている場合、あるいは(1)および(2)のある組み合わせでのみ、空であるというものである。
図3Aおよび3Bを参照にして、いくつかの実施態様によれば、HTTP/HTTPSプロトコルは、通信接続305で、2つの同時HTTP/HTTPS接続を使用することによってクライアントとサーバとの間の全二重接続をシミュレートするためのサービスプロトコルとして使用され得る。HTTP/HTTPSを用いると、クライアントからサーバに「無限の要求」を送信することが可能である。この場合において、サーバは、要求ペイロードの長さは不定であることを命令され、この様式において、情報は、クライアントからサーバに継続的に流れ得る。また、HTTP/HTTPSを通じて「無限の応答」を受信することも可能である。この場合において、クライアントは、応答ペイロードの長さは不定であることを命令され、この様式において、情報は、サーバからクライアントに継続的に流れ得る。それ故、全二重通信回路は、2つの半二重HTTP/HTTPSチャネルから形作られ得る。説明されることになるように、クライアントは、両方の接続を始め、「無限の応答」接続上で待ち受ける一方で、「無限の要求」接続上で伝送する。
上記のように、各クライアントレイヤ302は、サーバ102Bから受信したメッセージのクライアント受信キュー310を含み、それは、クライアントが論理的に接続されるサービス(アプリケーションプログラム107A、107B)に代わって送信される。クライアントレイヤ302は、1つのHTTP/HTTPS接続を通じて(任意の他の半二重接続は十分であることになるが)「無限の応答」を使用してこれらのメッセージを受信する。各クライアントレイヤ302はまた、それがサーバ102Bに送信するメッセージのクライアント送信キュー312を含み、それは、1つの特定のサービス(例えば、アプリケーションプログラム107A、107B)行きのものである。クライアントレイヤ302は、第2のHTTP/HTTPS接続を通じて(任意の他の半二重接続は十分であることになるが)「無限の要求」を使用してこれらのメッセージを送信する。
サーバレイヤ304が、クライアントからメッセージを受信すると、サーバレイヤ304は、クライアントの固有識別子でメッセージをラベル付け、それをサービスレイヤ306に送信する。メッセージは、典型的には、1つのHTTP/HTTPS接続を通じて作成された「無限の要求」を通してサーバレイヤ304によって受信される。サーバレイヤ304が、サービスレイヤ306からメッセージを受信すると、サーバレイヤ304は、クライアントに送信されることになるアウトバウンドメッセージのクライアントキュー314または316内にメッセージを配置し、メッセージは、そのクライアントのためにラベル付けされる。次いで、メッセージは、第2のHTTP/HTTPS接続を通じて作成された「無限の応答」を通してクライアントキュー314または316から送信される。
層状アーキテクチャにおいて利用されるHTTP/HTTPS通信チャネル(または任意の半二重通信チャネル)の失敗は、望ましくない実行特性を結果としてもたらし得る。半二重チャネルの待ち受け側上の無音と、そのチャネルの失敗とを区別することは、困難であることがあるのに対し、伝送側から半二重チャネルの失敗を検出することは、一般的に問題ではない。また、1つ以上のメッセージは、半二重通信チャネルが失敗するときにクライアントとサーバとの間を「飛行中(in flight)」であり得る。この状況において、半二重チャネルの伝送側が、どのメッセージが成功裏に受信されたかを知る手法は無い。
それ故、本開示の実施態様によれば、接続の待ち受け側から通信の失敗を検出するための、および失敗の時に1つまたは両方の接続を通じて「飛行中」であった可能性がある情報の回復のための方法が提供される。更に、情報がHTTP/HTTPSプロトコルを使用して通信されているように説明されたが、接続ベースの通信を提供する他のプロトコル、例えばFTP、UDP、RTSP、RTPなどが、利用されてもよい。
図5は、以下のように、それぞれ論理的に接続されたクライアントのためのサービスと関連付けられた信頼性のあるメッセージングを提供する動作上のフロー図500を例示する。例えば、いくつかの実施態様では、頻繁な「キープアライブ」メッセージが、サービスからクライアントにおよびクライアントからサービスに送信され得る(S502、図5)。これは、通信チャネルの待ち受け側が無音を失敗と区別することを可能にする。半二重チャネルの待ち受け側が予測された期間内に「キープアライブ」メッセージを受信しない場合、それは、接続が失敗したことを推定し得、新たな接続を始めるステップを取る(クライアント側)、または新たな接続を待つ(サーバ側)(S504、図5)。
いくつかの実施態様では、独立したメッセージ連続番号が、クライアントおよびサーバ上で使用され得る。クライアント送信キュー312からサーバに送信されるすべてのメッセージは、順序を示す連続番号で注釈を付けられ得、各メッセージは、その順序でサーバに送信されるすべての他のメッセージに関して送信される(S506、図5)。メッセージは、クライアントから送信されると、クライアントのアウトバウンドキューから即時には取り除かれない。クライアントのアウトバウンドメッセージキュー内の次のメッセージは、通常動作下で、送信されることになる次のメッセージになる。同様に、サーバアウトバウンドメッセージクライアントキュー314または316からクライアントに送信されるすべてのメッセージは、順序を示す連続番号で注釈を付けられ、各メッセージは、その順序でクライアントに送信されるすべての他のメッセージに関して送信される(S506、図5)。メッセージは、サーバから送信されると、サーバのアウトバウンドキューから即時には取り除かれない。サーバのアウトバウンドメッセージキュー内の次のメッセージは、通常動作下で、送信されることになる次のメッセージになる。
いくつかの実施態様では、前の実施態様を踏まえて、「連続確認」メッセージ注釈が、クライアントとサーバとの間で、それぞれの側がどのメッセージが他方によって成功裏に受信されたかを知るように、使用され得る。毎回クライアントがメッセージをサーバに送信する度に、クライアントは、それが、「待ち受け」接続上でサーバから成功裏に受信した最後のメッセージの連続番号でメッセージに注釈を付ける(S508、図5)。サーバがこのメッセージを受信する場合、サーバは、連続番号と、その連続番号に先行する全てと関連付けられたメッセージをそのサーバのアウトバウンドキューから安全に取り除くことができる(S510、図5)。同様に、毎回サーバがメッセージをクライアントに送信する度に、サーバは、それが「待ち受け」接続上のクライアントから成功裏に受信した最後のメッセージの連続番号でメッセージに注釈を付ける(S508、図5)。クライアントがこのメッセージを受信する場合、クライアントは、連続番号と、その連続番号に先行する全てと関連付けられたメッセージをそのクライアントのアウトバウンドキューから安全に取り除くことができる(S510、図5)。
いくつかの実施態様では、失敗が原因で新たな接続が始められると、関連付けられたアウトバウンドキュー内に残る、前に送信されたいずれのメッセージも、他側によって受信されていない可能性があり、再送信される。クライアントが「無限の応答」チャネル(すなわち、そのクライアントがチャネル上で待ち受けている当該チャネル)上の失敗を検出すると、それは、その接続を放棄し、新たなHTTP/HTTPS「無限の応答」接続を始める(S512、図5)。これが成功する場合、サーバは、新たな接続を承認し、それが前に送信した最後のメッセージの後からに代わって、それのアウトバウンドメッセージキューの始めからの送信を開始する(S514、図5)。この様式において、クライアントが受信していない可能性がある任意の移動中のメッセージが再送信されることになる。クライアントは、それがサーバに対して成功裏に確認することができていなかったといういくつかの重複メッセージを検出し得、それは、そのような重複メッセージを安全に捨て得る(S516、図5)。そのようなメッセージは、失敗検出の前に受信した最後の成功した連続番号より小さいまたはその番号に等しい連続番号を有することになる。同様に、クライアントが「無限の要求」チャネル(すなわち、そのクライアントがチャネル上で伝送している当該チャネル)上の失敗を検出すると、それはその接続を放棄し、新たなHTTP/HTTPS「無限の要求」接続を始める(S512、図5)。これが成功する場合、それは、それが前に送信した最後のメッセージの後からに代わって、それのアウトバウンドキューの始めからのメッセージの送信を開始する(S514、図5)。サーバは、新たな接続を承認し、成功裏に確認する見込みがあった可能性がないという、それが受信する任意の重複メッセージを安全に無視する(S516、図5)。そのようなメッセージは、新たな接続が始められた前に受信された最後の成功した連続番号より小さいまたはその番号に等しい連続番号を有することになる。それ故、クライアントが新たなHTTP/HTTPS接続を成功裏に始めることができる限り、すべての通信失敗は、成功裏に回復されることができる。新たな接続が、許容できる期間内になされ得ない場合には、その新たな接続は、サーバとクライアント側の両方上でタイムアウトし、クライアント側は、セッションを終わらせ、リソースを回復し、および他の適切な行動を取るために、使用され得る。セッションがサーバ上で終わらされた後に、接続がクライアントによって試みられる場合には、サーバは、接続試みを拒否することになり、クライアントは、ユーザに知らせ得るおよび/または他の適切な行動を取り得る。
上記技法の組み合わせが、信頼性のある(回復可能な)通信を提供するために使用され得ることを留意する。それ故、上記技法は、クライアントとサーバとの間で信頼性のある通信を提供する一方で、全二重通信機能を提供する。
図6は、実施形態および態様例が実装され得る例示的なコンピューティング環境を示す。コンピューティングシステム環境は、適切なコンピューティング環境の単なる一例であり、使用または機能の範囲についての何の限定も提案することを意図されない。
多くの他の汎用または特別目的のコンピューティングシステム環境または構成が、使用され得る。使用に適するであろう周知のコンピューティングシステム、環境、および/または構成の例は、限定されるものではないが、パーソナルコンピュータ、サーバ、手持ち型またはラップトップ型デバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、埋め込み型システム、上記システムまたはデバイスのいずれかを含む分散型コンピューティング環境、および同様のものを含む。
コンピュータによって実行される、例えばプログラムモジュールなどのコンピュータで実行可能な命令が、使用され得る。一般的に、プログラムモジュールは、特定のタスクを機能させるまたは特定の抽象データ種類を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。分散型コンピューティング環境が、使用され得、そこでは、タスクは、通信ネットワークまたは他のデータ伝送媒体を通してつなげられる遠隔処理デバイスによって機能される。分散型コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶デバイスを含むローカルおよび遠隔の両方のコンピュータ記憶媒体内に位置し得る。
図6を参照にして、本明細書において説明される態様を実装するための例示的なシステムは、コンピューティングデバイス600などのコンピューティングデバイスを含む。それの最も基本的な構成において、コンピューティングデバイス600は、典型的には少なくとも1つの処理部602およびメモリ604を含む。正確な構成およびコンピューティングデバイスの種類次第で、メモリ604は、揮発性(例えば、ランダムアクセスメモリ(RAM)など)、不揮発性(例えば、読み取り専用メモリ(ROM)、フラッシュメモリなど)、またはその2つのいくつかの組み合わせとすることができる。これの最も基本的な構成は、破線606によって図6に例示される。
コンピューティングデバイス600は、付加的な特徴/機能を有し得る。例えば、コンピューティングデバイス600は、限定されるものではないが、磁気もしくは光学ディスクまたはテープを含む付加的な(取り外し可能および/または取り外し不可能な)記憶装置を含み得る。そのような付加的な記憶装置は、取り外し可能な記憶装置608および取り外し不可能な記憶装置610によって、図6に例示される。
コンピューティングデバイス600は、典型的には、種々の具体的な、コンピュータで読み取り可能な媒体を含む。コンピュータで読み取り可能な媒体は、デバイス600によってアクセスされ得る任意の可用な具体的な媒体とすることができ、揮発性と不揮発性の媒体、取り外し可能および取り外し不可能な媒体の両方を含む。
具体的なコンピュータ記憶媒体は、例えばコンピュータで読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性の、ならびに取り外し可能および取り外し不可能な媒体を含む。メモリ604、取り外し可能な記憶装置608、および取り外し不可能な記憶装置610は、すべて、コンピュータ記憶媒体の例である。具体的なコンピュータ記憶媒体は、限定されるものではないが、RAM、ROM、電気的に消去可能なプログラム読み取り専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、CD‐ROM、デジタル多用途ディスク(DVD)または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を格納するために使用され得るおよびコンピューティングデバイス600によってアクセスされ得る任意の他の媒体を含む。任意のそのようなコンピュータ記憶媒体は、コンピューティングデバイス600の一部とすることができる。
コンピューティングデバイス600は、デバイスが他のデバイスと通信することを可能にする(複数の)通信接続612を含み得る。コンピューティングデバイス600はまた、例えばキーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの(複数の)入力デバイス614を含み得る。ディスプレイ、スピーカ、プリンタなどの(複数の)出力デバイス616もまた、含まれ得る。すべてのこれらのデバイスは、当技術分野において周知であり、ここで長々と記述される必要はない。
本明細書において説明される様々な技法は、ハードウェアまたはソフトウェアに関して、あるいは適切な場合には両者の組み合わせに関して実装され得ることが理解されるべきである。それ故、現在開示された主題の方法および装置、あるいはそれらの一定の態様または部分は、例えばフロッピー(登録商標)ディスケット、CD‐ROM、ハードドライブ、または任意の他の機械で読み取り可能な記憶媒体などの具体的な媒体に具現化されたプログラムコード(すなわち、命令)の形態を取り得、プログラムコードがコンピュータなどの機械にロードされ、その機械によって実行されると、機械は、現在開示された主題を実践するための装置になる。プログラム化できるコンピュータ上のプログラムコードの実行の場合には、コンピューティングデバイスは、一般的に、プロセッサ、プロセッサによって読み取り可能な(揮発性および不揮発性メモリならびに/あるいは記憶要素を含む)記憶媒体、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含む。1つ以上のプログラムは、例えば、アプリケーションプログラミングインターフェース(API)、再使用可能な制御、または同様のものの使用を通して、現在開示された主題に関して説明される処理を実装し得るまたは利用し得る。そのようなプログラムは、コンピュータシステムと通信するための高レベル手順またはオブジェクト指向プログラミング言語で実装され得る。しかしながら、(複数の)プログラムは、必要に応じて、アセンブリまたは機械言語で実装され得る。いずれの場合においても、言語は、コンパイルされたまたは解釈された言語であり得、それは、ハードウェア実装と組み合わされ得る。
主題は、構造的特徴および/または方法の動作に特有の言語で説明されたが、特許請求の範囲において定義された主題は、必ずしも上記特有の特徴または動作に限定されないことが理解されることになる。むしろ、上記特有の特徴または動作は、特許請求の範囲を実施する形態例として開示される。
Claims (20)
- 遠隔アクセスシステムにおいてフロー制御を提供する方法であって、
クライアントデバイスにクライアントレイヤを提供することと、
サービスと関連付けられたサービスレイヤであって、前記クライアントデバイスから受信されるメッセージのためのサービス受信キューと、前記クライアントデバイス行きのメッセージのサービス送信キューとを有するサービスレイヤを提供することと、
前記クライアントデバイスと前記サービスとの間に送信されるメッセージのための通信プロキシとして、前記クライアントデバイス行きのメッセージのアウトバウンドクライアントキューを含むサーバレイヤを提供することと、
前記サービス送信キューにおける前記メッセージを前記クライアントデバイスへの伝送のために前記サーバレイヤに送信するように制御信号を前記サービスレイヤに通信することと、を含む、方法。 - メッセージが前記サービス送信キューにおけるキューに入れられるように、前記サービスレイヤを伝送オフ状態に設定することと、
前記制御信号を使用して前記サービスレイヤを伝送オン状態に設定することと、
前記クライアントデバイスのためのメッセージを前記サーバレイヤ内の前記アウトバウンドクライアントキューに送信することと、
前記サービスレイヤで前記伝送オフ状態に再度入ることとを更に含む、請求項1に記載の方法。 - 前記サービスレイヤを伝送オフ状態に最初に設定することと、
前記サービスレイヤで前記クライアントデバイスのためのメッセージを生成することと、
前記クライアントデバイスのための前記メッセージを前記サービス送信キューにおけるキューに入れることとを更に含む、請求項1〜2のいずれかに記載の方法。 - 前記制御信号を使用して前記サービスレイヤを伝送オン状態に設定することと、
前記クライアントデバイスのためのメッセージを前記サーバレイヤ内の前記アウトバウンドクライアントキューに送信することと、
前記サービスレイヤで前記伝送オフ状態に再度入ることとを更に含む、請求項1〜3のいずれかに記載の方法。 - 複数のクライアントデバイスから通信を受信することと、各クライアントデバイスと関連付けられた固有識別子で、前記複数のクライアントデバイスのそれぞれからのメッセージをラベル付けすることと、
複数のクライアントデバイスからのメッセージをメッセージの単一ストリームに組み合わせることとを更に含む、請求項1〜4のいずれかに記載の方法。 - 複数のメッセージストリームであって、それぞれが、前記固有識別子によって前記複数のクライアントデバイスの1つと関連付けられる、複数のメッセージストリームに、前記サービスレイヤからのストリームメッセージを構文解析することと、
複数のメッセージストリームのそれぞれを前記複数のクライアントデバイスに通信することとを更に含む、請求項5に記載の方法。 - 前記クライアントデバイスへのメッセージを非同期的に生成することを更に含む、請求項1〜6のいずれかに記載の方法。
- 信頼性のある通信を提供する方法であって、
ネットワーク接続でサービスに遠隔的にアクセスするクライアントレイヤを提供することと、
前記クライアントレイヤと前記サービスとの間の通信を代理するサーバレイヤを提供することと、
前記クライアントレイヤと前記サーバレイヤとの間の通信のために第1のチャネルにサービスプロトコルを実装すること、および前記サーバレイヤと前記クライアントレイヤとの間の通信のために第2のチャネルに前記サービスプロトコルを実装することによって、前記クライアントレイヤと前記サーバレイヤとの間の全二重通信を容易にすることと、
前記第1のチャネルまたは前記第2のチャネル上の通信の失敗を検出することと、 前記第1のチャネルまたは前記第2のチャネル上の前記失敗を検出すると、前記サービスプロトコルを使用して通信を再確立することと、を含む、方法。 - 前記サービスプロトコルはHTTPまたはHTTPSである、請求項8に記載の方法。
- 前記第1のチャネル上で前記クライアントレイヤから前記サーバレイヤに無限の要求を送信することと、
前記第2のチャネル上でサーバから前記クライアントに無限の応答を送信することとを更に含む、請求項8〜9のいずれかに記載の方法。 - 「キープアライブ」メッセージを前記サービスから前記クライアントレイヤに、およびクライアントレイヤから前記サービスに送信することによって、前記失敗を検出することと、
前記クライアントレイヤまたはサービスの1つが、所定の期間内に前記「キープアライブ」メッセージを受信しない場合、前記「キープアライブ」メッセージが、前記第1のチャネルまたは前記第2のチャネル上で受信されていない当該第1のチャネルまたは第2のチャネルが失敗したことを判断することとを更に含む、請求項8〜10のいずれかに記載の方法。 - 各メッセージが送信される順序を示すために、独立したメッセージ連続番号を、前記クライアントレイヤと前記サーバレイヤとの間に送信される各メッセージに付与することと、
前記クライアントレイヤまたは前記サーバレイヤからメッセージを送信することと、
前記クライアントレイヤにおけるアウトバウンドクライアントキュー内にまたは前記サーバレイヤにおけるサービス送信キュー内にそれぞれ、前記メッセージを残すこととを更に含む、請求項8〜11のいずれかに記載の方法。 - 前記クライアントレイヤまたは前記サーバレイヤから成功裏に受信した最後のメッセージの連続番号で注釈を付けられた後続のメッセージを、前記サーバレイヤまたは前記クライアントレイヤから受信することと、
前記連続番号より小さい連続番号を有するメッセージを前記アウトバウンドクライアントキューおよび前記サービス送信キューから取り除くこととを更に含む、請求項12に記載の方法。 - 前記失敗が検出されると、前記サーバレイヤのアウトバウンドクライアントキュー内またはクライアントレイヤにおけるサービス送信キュー内に残っている、前に送信された任意のメッセージを再送信することとを更に含む、請求項8〜13のいずれかに記載の方法。
- コンピュータで読み取り可能な媒体の上にコンピュータで実行可能な命令を有する当該コンピュータで読み取り可能な媒体であって、当該コンピュータで実行可能な命令がコンピューティングデバイスのプロセッサによって実行されると、
サービスと関連付けられたサービスレイヤであって、クライアントデバイスから受信されるメッセージのためのサービス受信キューと、前記クライアントデバイス行きのメッセージのサービス送信キューとを有するサービスレイヤを提供することと、
前記クライアントデバイスと前記サービスとの間に送信されるメッセージのための通信プロキシとして、前記クライアントデバイス行きのメッセージのアウトバウンドクライアントキューを含むサーバレイヤを提供することと、
前記サービス送信キューにおける前記メッセージを前記クライアントデバイスへの伝送のために前記サーバレイヤに送信するように制御信号を前記サービスレイヤに通信することと、を含む方法を機能させる、コンピュータで読み取り可能な媒体。 - メッセージが前記送信キューにおけるキューに入れられるように、前記サービスレイヤを伝送オフ状態に設定することと、
前記制御信号を使用して前記サービスレイヤを伝送オン状態に設定することと、
前記クライアントデバイスのためのメッセージを前記サーバレイヤ内のアウトバウンドクライアントキューに送信することと、
前記サービスレイヤで前記伝送オフ状態に再度入ることとのための命令を更に含む、請求項15に記載のコンピュータで読み取り可能な媒体。 - 前記サービスレイヤを伝送オフ状態に最初に設定することと、
前記サービスレイヤで前記クライアントデバイスのためのメッセージを生成することと、
前記クライアントデバイスのための前記メッセージを前記サービス送信キューにおけるキューに入れることと、
前記制御信号を使用して前記サービスレイヤを伝送オン状態に設定することと、
前記クライアントデバイスのためのメッセージを前記サーバレイヤ内の前記アウトバウンドクライアントキューに送信することと、
前記サービスレイヤで前記伝送オフ状態に再度入ることとのための命令を更に含む、請求項15〜16のいずれかに記載のコンピュータで読み取り可能な媒体。 - 前記クライアントデバイスの固有識別子で各メッセージをラベル付けするための命令を更に含む、請求項15〜17のいずれかに記載のコンピュータで読み取り可能な媒体。
- 前記クライアントデバイスへのメッセージを非同期的に生成するための命令を更に含む、請求項15〜18のいずれかに記載のコンピュータで読み取り可能な媒体。
- 多対一様式で、複数のクライアントデバイスと前記サービスレイヤとの間の関係を確立するための命令を更に含む、請求項15〜19のいずれかに記載のコンピュータで読み取り可能な媒体。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201161523662P | 2011-08-15 | 2011-08-15 | |
| US201161523670P | 2011-08-15 | 2011-08-15 | |
| US61/523,662 | 2011-08-15 | ||
| US61/523,670 | 2011-08-15 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014525508A Division JP6164747B2 (ja) | 2011-08-15 | 2012-08-15 | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017184259A true JP2017184259A (ja) | 2017-10-05 |
Family
ID=47713423
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014525508A Expired - Fee Related JP6164747B2 (ja) | 2011-08-15 | 2012-08-15 | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 |
| JP2017099692A Pending JP2017184259A (ja) | 2011-08-15 | 2017-05-19 | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014525508A Expired - Fee Related JP6164747B2 (ja) | 2011-08-15 | 2012-08-15 | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US9720747B2 (ja) |
| EP (1) | EP2745467A4 (ja) |
| JP (2) | JP6164747B2 (ja) |
| CA (1) | CA2844851A1 (ja) |
| HK (1) | HK1199340A1 (ja) |
| WO (1) | WO2013024342A1 (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2742779C (en) | 2008-11-26 | 2017-07-18 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
| US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
| US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
| CA2734860A1 (en) | 2011-03-21 | 2012-09-21 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
| RU2625525C2 (ru) | 2011-08-15 | 2017-07-14 | Калгари Сайентифик Инк. | Бесконтактный удаленный доступ к программному приложению |
| EP2745467A4 (en) * | 2011-08-15 | 2015-10-14 | Calgary Scient Inc | METHOD FOR CONTROLLING THE FLOW AND PROVIDING RELIABLE COMMUNICATION IN A COLLABORATIVE ENVIRONMENT |
| EP2761808A4 (en) | 2011-09-30 | 2015-05-20 | Calgary Scient Inc | DECOUPLED APPLICATION WITH EXTENSIONS INTERACTIVE DIGITAL SURFACE LAYER FOR COLLABORATIVE REMOTE COMMON USE OF APPLICATIONS AND ANNOTATION |
| US9648057B2 (en) | 2011-11-23 | 2017-05-09 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
| WO2013128284A1 (en) | 2012-03-02 | 2013-09-06 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (dll) injection |
| US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
| WO2014140116A1 (en) * | 2013-03-12 | 2014-09-18 | Acellera Ltd. | System and method for managing computational task sets |
| CA2931762C (en) | 2013-11-29 | 2020-09-22 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
| US9542243B2 (en) | 2014-03-14 | 2017-01-10 | International Business Machines Corporation | Coalescing stages in a multiple stage completion sequence |
| US9843518B2 (en) * | 2014-03-14 | 2017-12-12 | International Business Machines Corporation | Remotely controlled message queue |
| US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
| JP2018512084A (ja) | 2015-01-30 | 2018-05-10 | カルガリー サイエンティフィック インコーポレイテッド | 高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアクセスアーキテクチャに接続する方法 |
| US11087080B1 (en) | 2017-12-06 | 2021-08-10 | Palantir Technologies Inc. | Systems and methods for collaborative data entry and integration |
| FR3094559B1 (fr) * | 2019-03-29 | 2024-06-21 | Soitec Silicon On Insulator | Procédé de transfert de paves d’un substrat donneur sur un substrat receveur |
Family Cites Families (206)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA1310133C (en) | 1988-06-30 | 1992-11-10 | International Business Machines Corporation | Method of simultaneously entering data into overlapped windows |
| US4975690A (en) | 1988-11-07 | 1990-12-04 | Ibm Corporation | Method for concurrent data entry and manipulation in multiple applications |
| US6076733A (en) | 1993-11-24 | 2000-06-20 | Metrologic Instruments, Inc. | Web-based system and method for enabling a viewer to access and display HTML-encoded documents located on the world wide web (WWW) by reading URL-encoded bar code symbols printed on a web-based information resource guide |
| GB2273797A (en) | 1992-12-22 | 1994-06-29 | Ibm | Distributed data processing system |
| US5345550A (en) | 1992-12-23 | 1994-09-06 | International Business Machines Corporation | User-modifiable popup menus for object oriented behavior |
| JP3481296B2 (ja) | 1993-04-12 | 2003-12-22 | ヒューレット・パッカード・カンパニー | グラフィックスクリーン上の項目の選択方法 |
| US5844553A (en) | 1993-08-30 | 1998-12-01 | Hewlett-Packard Company | Mechanism to control and use window events among applications in concurrent computing |
| DE4417588A1 (de) | 1993-08-30 | 1995-03-02 | Hewlett Packard Co | Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung |
| CA2180899A1 (en) | 1995-07-12 | 1997-01-13 | Yasuaki Honda | Synchronous updating of sub objects in a three dimensional virtual reality space sharing system and method therefore |
| US5956486A (en) | 1995-12-20 | 1999-09-21 | Hickman; Paul Lawrence | Method and apparatus for monitoring multiple electronic mail systems |
| US6343313B1 (en) | 1996-03-26 | 2002-01-29 | Pixion, Inc. | Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability |
| US5870759A (en) | 1996-10-09 | 1999-02-09 | Oracle Corporation | System for synchronizing data between computers using a before-image of data |
| US5870559A (en) | 1996-10-15 | 1999-02-09 | Mercury Interactive | Software system and associated methods for facilitating the analysis and management of web sites |
| US5978842A (en) | 1997-01-14 | 1999-11-02 | Netmind Technologies, Inc. | Distributed-client change-detection tool with change-detection augmented by multiple clients |
| US6141698A (en) | 1997-01-29 | 2000-10-31 | Network Commerce Inc. | Method and system for injecting new code into existing application code |
| US6253228B1 (en) | 1997-03-31 | 2001-06-26 | Apple Computer, Inc. | Method and apparatus for updating and synchronizing information between a client and a server |
| US6061689A (en) | 1997-05-06 | 2000-05-09 | International Business Machines Corporation | Object aggregation representation of relational database rows having nontraditional datatypes |
| US6145098A (en) | 1997-05-13 | 2000-11-07 | Micron Electronics, Inc. | System for displaying system status |
| CA2207746A1 (en) | 1997-06-13 | 1998-12-13 | Ironside Technologies Inc | Method of manipulating software components through a network with enhanced performance and reduced network traffic |
| US6453334B1 (en) | 1997-06-16 | 2002-09-17 | Streamtheory, Inc. | Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching |
| US6075531A (en) | 1997-12-15 | 2000-06-13 | International Business Machines Corporation | Computer system and method of manipulating multiple graphical user interface components on a computer display with a proximity pointer |
| US6453356B1 (en) | 1998-04-15 | 2002-09-17 | Adc Telecommunications, Inc. | Data exchange system and method |
| US6988271B2 (en) | 1998-10-02 | 2006-01-17 | Microsoft Corporation | Heavyweight and lightweight instrumentation |
| US7069227B1 (en) | 1999-02-05 | 2006-06-27 | Zansor Systems, Llc | Healthcare information network |
| US6938096B1 (en) | 1999-04-12 | 2005-08-30 | Softricity, Inc. | Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port |
| US6970459B1 (en) | 1999-05-13 | 2005-11-29 | Intermec Ip Corp. | Mobile virtual network system and method |
| US6976077B1 (en) | 1999-07-06 | 2005-12-13 | Microsoft Corporation | Automatic and transparent synchronization of server-side state information with a client application |
| US6601233B1 (en) | 1999-07-30 | 2003-07-29 | Accenture Llp | Business components framework |
| WO2001016724A2 (en) | 1999-08-31 | 2001-03-08 | Accenture Llp | A system, method and article of manufacture for a legacy wrapper in a communication services patterns environment |
| US7181686B1 (en) | 1999-10-29 | 2007-02-20 | International Business Machines Corporation | Selecting screens in a GUI using events generated by a set of view controllers |
| US20020007284A1 (en) | 1999-12-01 | 2002-01-17 | Schurenberg Kurt B. | System and method for implementing a global master patient index |
| AU2001242027A1 (en) | 2000-03-08 | 2001-09-17 | Marbles, Inc. | Remote operation of real-time graphical applications |
| US20030208472A1 (en) | 2000-04-11 | 2003-11-06 | Pham Peter Manh | Method and apparatus for transparent keyword-based hyperlink |
| US6633688B1 (en) * | 2000-04-28 | 2003-10-14 | Earth Resource Mapping, Inc. | Method system and apparatus for providing image data in client/server systems |
| US7343310B1 (en) | 2000-04-28 | 2008-03-11 | Travelers Property Casualty Corp. | System and method for providing web-based user interface to legacy, personal-lines insurance applications |
| US6792607B1 (en) | 2000-05-18 | 2004-09-14 | Microsoft Corporation | Databinding using server-side control objects |
| DE10025260B4 (de) * | 2000-05-22 | 2004-11-25 | Conti Temic Microelectronic Gmbh | Verfahren zur Detektion von Überrollvorgängen bei Kraftfahrzeugen mit Sicherheitseinrichtungen |
| US8463912B2 (en) | 2000-05-23 | 2013-06-11 | Media Farm, Inc. | Remote displays in mobile communication networks |
| US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
| US7337217B2 (en) | 2000-07-21 | 2008-02-26 | Samsung Electronics Co., Ltd. | Architecture for home network on world wide web |
| JP2002055870A (ja) | 2000-08-15 | 2002-02-20 | Fuji Xerox Co Ltd | データ提供装置、データ取得装置及びデータ処理システム |
| US7350151B1 (en) | 2000-09-14 | 2008-03-25 | Ui Evolution, Inc. | Display state and/or cell based user interface provision method and apparatus |
| US6931661B2 (en) | 2000-10-19 | 2005-08-16 | Motorola, Inc. | Dynamic image provisioning |
| US6918113B2 (en) | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed applications |
| US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
| US6947761B2 (en) | 2000-11-22 | 2005-09-20 | Leap Wireless International Inc. | Method and system for improving the efficiency of state information transfer over a wireless communications network |
| US7574493B2 (en) | 2000-11-22 | 2009-08-11 | Cricket Communications, Inc. | Method and system for improving the efficiency of state information transfer over a wireless communications network |
| US7065568B2 (en) | 2000-11-30 | 2006-06-20 | Microsoft Corporation | System and method for managing states and user context over stateless protocols |
| US7451196B1 (en) | 2000-12-15 | 2008-11-11 | Stream Theory, Inc. | Method and system for executing a software application in a virtual environment |
| EP1451679A2 (en) | 2001-03-30 | 2004-09-01 | BRITISH TELECOMMUNICATIONS public limited company | Multi-modal interface |
| US7890517B2 (en) | 2001-05-15 | 2011-02-15 | Metatomix, Inc. | Appliance for enterprise information integration and enterprise resource interoperability platform and methods |
| US7882497B2 (en) | 2001-05-17 | 2011-02-01 | Attachmate Corporation | Symbiotic computer application and system and method for generation and presentation of same |
| US7802183B1 (en) | 2001-05-17 | 2010-09-21 | Essin Daniel J | Electronic record management system |
| US7320131B1 (en) * | 2001-06-06 | 2008-01-15 | Cisco Technology, Inc. | Methods and apparatus for selecting a server to process a request |
| US7073059B2 (en) | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
| US7193985B1 (en) | 2001-06-14 | 2007-03-20 | Utstarcom, Inc. | System and method for managing foreign agent selections in a mobile internet protocol network |
| US6996805B2 (en) | 2001-06-28 | 2006-02-07 | Microsoft Corporation | Methods and systems of testing software, and methods and systems of modeling user behavior |
| GB0117077D0 (en) | 2001-07-13 | 2001-09-05 | Univ Strathclyde | A generic object-based resource-sharing interface for distance co-working |
| US7379977B2 (en) | 2001-07-24 | 2008-05-27 | Steve Walrath | System and method for display of multiple electronic pages |
| ATE335237T1 (de) * | 2001-08-24 | 2006-08-15 | Intel Corp | Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung |
| US20030120762A1 (en) | 2001-08-28 | 2003-06-26 | Clickmarks, Inc. | System, method and computer program product for pattern replay using state recognition |
| JP4446368B2 (ja) | 2001-09-14 | 2010-04-07 | 富士通株式会社 | コラボレーション方法、システム、プログラム及び記録媒体 |
| US20030065738A1 (en) | 2001-10-01 | 2003-04-03 | Thumb Logic, Inc. | Wireless information systems and methods |
| US7167893B1 (en) | 2001-10-03 | 2007-01-23 | Bellsouth Intellectual Property Corp. | Methods and systems for processing a plurality of errors |
| US7155521B2 (en) | 2001-10-09 | 2006-12-26 | Nokia Corporation | Starting a session in a synchronization system |
| EP1444276A1 (en) * | 2001-11-06 | 2004-08-11 | Dow Global Technologies, Inc. | Isotactic propylene copolymers, their preparation and use |
| TWI248023B (en) | 2001-11-09 | 2006-01-21 | Sheng A Tsao | Data object oriented repository system |
| US7149761B2 (en) | 2001-11-13 | 2006-12-12 | Tadpole Technology Plc | System and method for managing the synchronization of replicated version-managed databases |
| US20030120324A1 (en) | 2001-12-26 | 2003-06-26 | Osborn Brett A. | System and method for remote programming of a medical device |
| US7246063B2 (en) | 2002-02-15 | 2007-07-17 | Sap Aktiengesellschaft | Adapting a user interface for voice control |
| US20030163514A1 (en) | 2002-02-22 | 2003-08-28 | Brandfact, Inc. | Methods and systems for integrating dynamic polling mechanisms into software applications |
| US7831292B2 (en) | 2002-03-06 | 2010-11-09 | Mako Surgical Corp. | Guidance system and method for surgical procedures with improved feedback |
| US20030184584A1 (en) | 2002-03-29 | 2003-10-02 | Thomas Vachuska | User interface framework for integrating user interface elements of independent software components |
| US6721871B2 (en) | 2002-04-02 | 2004-04-13 | Nokia Corporation | Method and apparatus for synchronizing data stores with respect to changes in folders |
| US6721907B2 (en) * | 2002-06-12 | 2004-04-13 | Zambeel, Inc. | System and method for monitoring the state and operability of components in distributed computing systems |
| US7720910B2 (en) | 2002-07-26 | 2010-05-18 | International Business Machines Corporation | Interactive filtering electronic messages received from a publication/subscription service |
| US7085758B2 (en) * | 2002-08-22 | 2006-08-01 | International Business Machines Corporation | Database enabled messaging facility |
| US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
| CA2406569C (en) | 2002-10-04 | 2011-03-22 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for enabling associated portlets of a web portal to collaborate for synchronized content display |
| TWI220713B (en) | 2002-10-04 | 2004-09-01 | Hon Hai Prec Ind Co Ltd | System and method for synchronizing documents between multi-nodes |
| US7542471B2 (en) * | 2002-10-30 | 2009-06-02 | Citrix Systems, Inc. | Method of determining path maximum transmission unit |
| EP1422901A1 (en) | 2002-11-22 | 2004-05-26 | Sun Microsystems, Inc. | Client driven synchronization of file and folder content in web publishing |
| GB0228279D0 (en) | 2002-12-04 | 2003-01-08 | Ibm | A synchronization method |
| US7484208B1 (en) | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
| US7774831B2 (en) * | 2002-12-24 | 2010-08-10 | International Business Machines Corporation | Methods and apparatus for processing markup language messages in a network |
| US7346684B2 (en) | 2003-01-31 | 2008-03-18 | Utstarcom, Inc. | System and method for control of packet data serving node selection in a mobile internet protocol network |
| EP1593026A1 (en) | 2003-02-14 | 2005-11-09 | Whale Communications Ltd. | System and method for providing conditional access to server-based applications from remote access devices |
| US7213228B2 (en) | 2003-03-17 | 2007-05-01 | Macrovision Corporation | Methods and apparatus for implementing a remote application over a network |
| JP2004287758A (ja) | 2003-03-20 | 2004-10-14 | Nec Corp | Webアプリケーション統合方法/プログラム/記録媒体、ポータルサーバ |
| DE10315418B3 (de) | 2003-04-04 | 2004-07-22 | Thyssenkrupp Automotive Ag | Verfahren zur thermomechanischen Behandlung von Stahl |
| US20040243919A1 (en) | 2003-04-04 | 2004-12-02 | David Darian Muresan | Synchronized processing of views and drawing tools in a multiple document interface application |
| US7418711B1 (en) * | 2003-04-28 | 2008-08-26 | Sprint Communications Company L.P. | Messaging bridge that facilitates communication with a mainframe environment |
| US7930214B2 (en) | 2003-05-05 | 2011-04-19 | Intel Corporation | Management and arbitration of mobile service discovery |
| US20040225960A1 (en) | 2003-05-09 | 2004-11-11 | Microsoft Corporation | System for hosting graphical layout/presentation objects |
| US7526410B2 (en) | 2003-07-03 | 2009-04-28 | Microsoft Corporation | Remote computer graphics performance testing |
| JP2005031807A (ja) | 2003-07-08 | 2005-02-03 | Toshiba Corp | データ処理システムにおけるデータ更新方法及びデータ処理システム |
| US7656799B2 (en) * | 2003-07-29 | 2010-02-02 | Citrix Systems, Inc. | Flow control system architecture |
| CA2438362C (en) | 2003-08-26 | 2011-05-31 | John William Comeau | A method and system for synchronizing a client user interface with server backend |
| US7647370B1 (en) | 2003-10-24 | 2010-01-12 | Verizon Data Services Llc | Screen scraping interface |
| US7975239B2 (en) | 2003-12-17 | 2011-07-05 | Palo Alto Research Center Incorporated | System and method for providing metadata interaction and visualization with task-related objects |
| US7706399B2 (en) | 2003-12-19 | 2010-04-27 | Intel Corporation | Polling in wireless networks |
| US7458029B2 (en) | 2004-01-15 | 2008-11-25 | Microsoft Corporation | System and process for controlling a shared display given inputs from multiple users using multiple input modalities |
| US7966572B2 (en) | 2004-02-20 | 2011-06-21 | Microsoft Corporation | User interface transition |
| US7653900B2 (en) | 2004-04-22 | 2010-01-26 | Blue Coat Systems, Inc. | System and method for remote application process control |
| WO2005109885A2 (en) | 2004-04-30 | 2005-11-17 | Vulcan Inc. | Controlling content presentation |
| US20060036770A1 (en) | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System for factoring synchronization strategies from multimodal programming model runtimes |
| GB2417391B (en) * | 2004-08-18 | 2007-04-18 | Wecomm Ltd | Transmitting data over a network |
| US7240162B2 (en) | 2004-10-22 | 2007-07-03 | Stream Theory, Inc. | System and method for predictive streaming |
| US20060101397A1 (en) | 2004-10-29 | 2006-05-11 | Microsoft Corporation | Pseudo-random test case generator for XML APIs |
| US8359591B2 (en) | 2004-11-13 | 2013-01-22 | Streamtheory, Inc. | Streaming from a media device |
| US7613830B2 (en) * | 2004-12-10 | 2009-11-03 | Microsoft Corporation | Reliably transferring queued application messages |
| US20060236328A1 (en) | 2004-12-10 | 2006-10-19 | Siemens Medical Solutions Usa, Inc. | Integrated graphical user interface server for use with multiple client applications |
| US7627138B2 (en) | 2005-01-03 | 2009-12-01 | Orb Networks, Inc. | System and method for remotely monitoring and/or viewing images from a camera or video device |
| US8024523B2 (en) | 2007-11-07 | 2011-09-20 | Endeavors Technologies, Inc. | Opportunistic block transmission with time constraints |
| CN100492382C (zh) | 2005-04-12 | 2009-05-27 | 国际商业机器公司 | 基于服务器/客户机的无缝游戏世界系统及其方法 |
| US7921078B2 (en) | 2005-04-20 | 2011-04-05 | Sony Online Entertainment Llc | System for negotiated differential compression |
| US7406568B2 (en) * | 2005-06-20 | 2008-07-29 | Intel Corporation | Buffer allocation for split data messages |
| US7552187B2 (en) | 2005-06-22 | 2009-06-23 | Tele Atlas North America, Inc. | System and method for automatically executing corresponding operations on multiple maps, windows, documents, and/or databases |
| US7636899B2 (en) | 2005-07-12 | 2009-12-22 | Siemens Medical Solutions Health Services Corporation | Multiple application and multiple monitor user interface image format selection system for medical and other applications |
| GB0514492D0 (en) | 2005-07-14 | 2005-08-17 | Ntnu Technology Transfer As | Secure media streaming |
| US20110157196A1 (en) | 2005-08-16 | 2011-06-30 | Exent Technologies, Ltd. | Remote gaming features |
| US7719982B2 (en) * | 2005-08-31 | 2010-05-18 | Intel Corporation | Switching device utilizing flow-control management |
| US8527563B2 (en) | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
| US7698691B2 (en) | 2005-09-20 | 2010-04-13 | Microsoft Corporation | Server application state |
| JP2007084744A (ja) | 2005-09-26 | 2007-04-05 | Sekisui Plastics Co Ltd | スチレン系樹脂発泡性粒子とその製造方法及びスチレン系樹脂発泡成形体 |
| US8024290B2 (en) | 2005-11-14 | 2011-09-20 | Yahoo! Inc. | Data synchronization and device handling |
| US20070120763A1 (en) | 2005-11-23 | 2007-05-31 | Lode De Paepe | Display system for viewing multiple video signals |
| US7596540B2 (en) | 2005-12-01 | 2009-09-29 | Exent Technologies, Ltd. | System, method and computer program product for dynamically enhancing an application executing on a computing device |
| US7703039B2 (en) | 2005-12-08 | 2010-04-20 | Adobe Systems Incorporated | Methods and apparatus for displaying information |
| US8769127B2 (en) | 2006-02-10 | 2014-07-01 | Northrop Grumman Systems Corporation | Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT) |
| US7685131B2 (en) | 2006-02-28 | 2010-03-23 | International Business Machines Corporation | Web services database cluster architecture |
| US20070208718A1 (en) | 2006-03-03 | 2007-09-06 | Sasha Javid | Method for providing web-based program guide for multimedia content |
| US8719816B2 (en) | 2006-03-14 | 2014-05-06 | University Of Utah Research Foundation | Extendable framework for distributed applications and data |
| RU2295752C1 (ru) | 2006-03-20 | 2007-03-20 | Закрытое акционерное общество "1С Акционерное общество" | Способ управления синхронизацией обновлений программного обеспечения |
| US7620901B2 (en) | 2006-03-21 | 2009-11-17 | Microsoft Corporation | Simultaneous input across multiple applications |
| US20070244990A1 (en) | 2006-04-03 | 2007-10-18 | National Instruments Corporation | Web browser graph user interface element with rich interactive capabilities |
| US8151323B2 (en) * | 2006-04-12 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for providing levels of access and action control via an SSL VPN appliance |
| US7933955B2 (en) | 2006-07-11 | 2011-04-26 | Igor Khalatian | One-click universal screen sharing |
| US7650444B2 (en) | 2006-09-28 | 2010-01-19 | Digi International, Inc. | Systems and methods for remotely managing an application-specific display device |
| JP4822343B2 (ja) | 2006-10-13 | 2011-11-24 | 株式会社国際電気通信基礎技術研究所 | 負荷を制御可能な通信装置およびそれを備えた通信ネットワーク |
| US8261345B2 (en) | 2006-10-23 | 2012-09-04 | Endeavors Technologies, Inc. | Rule-based application access management |
| US7774356B2 (en) | 2006-12-04 | 2010-08-10 | Sap Ag | Method and apparatus for application state synchronization |
| US20080146194A1 (en) | 2006-12-15 | 2008-06-19 | Yahoo! Inc. | Automatic data back up and account creation |
| US7831919B1 (en) | 2006-12-18 | 2010-11-09 | Symantec Corporation | Generic web service frontend |
| US8374673B2 (en) | 2007-01-25 | 2013-02-12 | Warsaw Orthopedic, Inc. | Integrated surgical navigational and neuromonitoring system having automated surgical assistance and control |
| US8924512B2 (en) | 2007-06-15 | 2014-12-30 | Microsoft Corporation | Extensible remote display infrastructure with dynamic virtual channels |
| EP2028813A1 (en) | 2007-07-02 | 2009-02-25 | British Telecmmunications public limited campany | Method of synchronizing intermittently connected mobile terminals |
| US8387000B2 (en) | 2007-07-12 | 2013-02-26 | The Mathworks, Inc. | Continuous time mode-driven simulations in a graphical modeling environment |
| US8127233B2 (en) | 2007-09-24 | 2012-02-28 | Microsoft Corporation | Remote user interface updates using difference and motion encoding |
| US8484626B2 (en) | 2007-09-28 | 2013-07-09 | Verizon Patent And Licensing Inc. | Generic XML screen scraping |
| US7886050B2 (en) | 2007-10-05 | 2011-02-08 | Citrix Systems, Inc. | Systems and methods for monitoring components of a remote access server farm |
| US8892738B2 (en) | 2007-11-07 | 2014-11-18 | Numecent Holdings, Inc. | Deriving component statistics for a stream enabled application |
| US8606952B2 (en) | 2008-01-15 | 2013-12-10 | International Business Machines Corporation | Method and system for optimizing bandwidth usage in remote visualization |
| US20090209239A1 (en) | 2008-02-18 | 2009-08-20 | Movidilo S.L. | Self-service application platform for wireless devices |
| US8473851B2 (en) | 2008-02-27 | 2013-06-25 | Cisco Technology, Inc. | Multi-party virtual desktop |
| US8218442B2 (en) * | 2008-09-11 | 2012-07-10 | Juniper Networks, Inc. | Methods and apparatus for flow-controllable multi-staged queues |
| US20100070588A1 (en) * | 2008-09-15 | 2010-03-18 | Yahoo! Inc. | Reliability for instant messaging based on end point acknowledgements |
| US8595371B2 (en) | 2008-09-19 | 2013-11-26 | Samsung Electronics Co., Ltd. | Sending a remote user interface |
| CA2742779C (en) | 2008-11-26 | 2017-07-18 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
| US7835309B2 (en) * | 2008-12-16 | 2010-11-16 | Microsoft Corporation | Multiplexed communication for duplex applications |
| US8473571B2 (en) | 2009-01-08 | 2013-06-25 | Microsoft Corporation | Synchronizing presentation states between multiple applications |
| CN101539932A (zh) | 2009-01-21 | 2009-09-23 | 北京跳网无限科技发展有限公司 | 转化页面的同期访问技术 |
| BRPI1008854A2 (pt) | 2009-02-03 | 2019-09-24 | Calgary Scient Inc | "interação simultânea com uma pluralidade de programas aplicativos" |
| US8676926B2 (en) | 2009-04-15 | 2014-03-18 | Wyse Technology L.L.C. | System and method for handling remote drawing commands |
| JP4723010B2 (ja) | 2009-04-21 | 2011-07-13 | 株式会社デジタル | サーバ装置、サーバ・クライアントシステム、サーバプログラムおよびそれを記録した記録媒体 |
| US9459936B2 (en) | 2009-05-01 | 2016-10-04 | Kaazing Corporation | Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications |
| US8356252B2 (en) | 2009-09-02 | 2013-01-15 | Synchronoss Technologies, Inc. | System and method for providing a computer display form layout |
| US20120154633A1 (en) | 2009-12-04 | 2012-06-21 | Rodriguez Tony F | Linked Data Methods and Systems |
| US8577904B2 (en) | 2009-12-07 | 2013-11-05 | International Business Machines Corporation | Composite copy and paste for composite user interfaces |
| US9055064B2 (en) | 2009-12-28 | 2015-06-09 | Citrix Systems, Inc. | Systems and methods for a VPN ICA proxy on a multi-core system |
| CN102129632A (zh) | 2010-01-13 | 2011-07-20 | 阿里巴巴集团控股有限公司 | 一种抓取网页信息的方法、装置及系统 |
| US9274821B2 (en) | 2010-01-27 | 2016-03-01 | Vmware, Inc. | Independent access to virtual machine desktop content |
| US20110213830A1 (en) | 2010-02-26 | 2011-09-01 | Lopez Kermit D | Cloud-based intellectual property and legal docketing system and method with data management modules |
| US8514749B2 (en) * | 2010-03-10 | 2013-08-20 | Microsoft Corporation | Routing requests for duplex applications |
| US20110252152A1 (en) * | 2010-04-09 | 2011-10-13 | Marcus Sherry | Reliable messaging system and method |
| CN101883097A (zh) | 2010-06-03 | 2010-11-10 | 青岛海信宽带多媒体技术有限公司 | 服务器设备共享客户端设备屏幕的实现方法及装置 |
| US8667054B2 (en) | 2010-07-12 | 2014-03-04 | Opus Medicus, Inc. | Systems and methods for networked, in-context, composed, high resolution image viewing |
| US8577960B2 (en) | 2010-07-29 | 2013-11-05 | Sap Ag | Providing status information for components in a distributed landscape |
| US8713474B2 (en) | 2010-10-05 | 2014-04-29 | Citrix Systems, Inc. | Providing user interfaces and window previews for hosted applications |
| KR101763595B1 (ko) | 2010-11-16 | 2017-08-01 | 엘지전자 주식회사 | 모니터링 서비스를 위한 데이터를 처리하는 네트워크 tv의 제어 방법 및 상기 네트워크 tv |
| US8473577B2 (en) | 2010-10-13 | 2013-06-25 | Google Inc. | Continuous application execution between multiple devices |
| US8607158B2 (en) | 2010-12-09 | 2013-12-10 | International Business Machines Corporation | Content presentation in remote monitoring sessions for information technology systems |
| US8615579B1 (en) | 2010-12-28 | 2013-12-24 | Amazon Technologies, Inc. | Managing virtual machine migration |
| US8866701B2 (en) | 2011-03-03 | 2014-10-21 | Citrix Systems, Inc. | Transparent user interface integration between local and remote computing environments |
| US9210213B2 (en) | 2011-03-03 | 2015-12-08 | Citrix Systems, Inc. | Reverse seamless integration between local and remote computing environments |
| CA2734860A1 (en) | 2011-03-21 | 2012-09-21 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
| US9424052B2 (en) | 2011-03-21 | 2016-08-23 | Amazon Technologies, Inc. | Remotely emulating computing devices |
| US9600350B2 (en) | 2011-06-16 | 2017-03-21 | Vmware, Inc. | Delivery of a user interface using hypertext transfer protocol |
| US8676938B2 (en) | 2011-06-28 | 2014-03-18 | Numecent Holdings, Inc. | Local streaming proxy server |
| US8572178B1 (en) | 2011-07-01 | 2013-10-29 | Amazon Technologies, Inc. | Executing applications in remotely emulated computing devices |
| EP2745467A4 (en) * | 2011-08-15 | 2015-10-14 | Calgary Scient Inc | METHOD FOR CONTROLLING THE FLOW AND PROVIDING RELIABLE COMMUNICATION IN A COLLABORATIVE ENVIRONMENT |
| RU2625525C2 (ru) | 2011-08-15 | 2017-07-14 | Калгари Сайентифик Инк. | Бесконтактный удаленный доступ к программному приложению |
| US9549045B2 (en) | 2011-08-29 | 2017-01-17 | Vmware, Inc. | Sharing remote sessions of a user interface and/or graphics of a computer |
| US9565156B2 (en) | 2011-09-19 | 2017-02-07 | Microsoft Technology Licensing, Llc | Remote access to a mobile communication device over a wireless local area network (WLAN) |
| US9294572B2 (en) | 2011-11-11 | 2016-03-22 | Calgary Scientific Inc. | Session transfer and suspension in a remote access application framework |
| US8854397B2 (en) | 2011-12-13 | 2014-10-07 | Facebook, Inc. | Photo selection for mobile devices |
| US20130159062A1 (en) | 2011-12-14 | 2013-06-20 | Sap Ag | Process-driven composite application architecture |
| WO2013109984A1 (en) | 2012-01-18 | 2013-07-25 | Numecent Holdings, Inc. | Application streaming and execution for localized clients |
| WO2013128284A1 (en) | 2012-03-02 | 2013-09-06 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (dll) injection |
| CA2870298A1 (en) | 2012-04-11 | 2013-10-17 | Calgary Scientific Inc. | Remoting graphical components through a tiered remote access architecture |
| CN102821413A (zh) | 2012-07-31 | 2012-12-12 | 华为技术有限公司 | 传输数据的方法和网络侧设备 |
| US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
| US9800420B2 (en) | 2013-02-25 | 2017-10-24 | Sequans Communications S.A. | eMBMS over LAN |
| US9270674B2 (en) | 2013-03-29 | 2016-02-23 | Citrix Systems, Inc. | Validating the identity of a mobile application for mobile application management |
| CA2931762C (en) | 2013-11-29 | 2020-09-22 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
| US10924554B2 (en) | 2014-05-05 | 2021-02-16 | Citrix Systems, Inc. | Application customization |
-
2012
- 2012-08-15 EP EP12824363.1A patent/EP2745467A4/en not_active Ceased
- 2012-08-15 HK HK14112872.2A patent/HK1199340A1/xx unknown
- 2012-08-15 US US13/586,085 patent/US9720747B2/en not_active Expired - Fee Related
- 2012-08-15 JP JP2014525508A patent/JP6164747B2/ja not_active Expired - Fee Related
- 2012-08-15 CA CA2844851A patent/CA2844851A1/en active Pending
- 2012-08-15 WO PCT/IB2012/001589 patent/WO2013024342A1/en not_active Ceased
-
2017
- 2017-05-19 JP JP2017099692A patent/JP2017184259A/ja active Pending
- 2017-06-26 US US15/632,539 patent/US10474514B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US9720747B2 (en) | 2017-08-01 |
| HK1199340A1 (en) | 2015-06-26 |
| US20170357541A1 (en) | 2017-12-14 |
| EP2745467A1 (en) | 2014-06-25 |
| US20130046816A1 (en) | 2013-02-21 |
| EP2745467A4 (en) | 2015-10-14 |
| JP6164747B2 (ja) | 2017-07-19 |
| JP2014531786A (ja) | 2014-11-27 |
| US10474514B2 (en) | 2019-11-12 |
| CA2844851A1 (en) | 2013-02-21 |
| WO2013024342A1 (en) | 2013-02-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6164747B2 (ja) | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 | |
| US11729129B2 (en) | Message quests for rapid re-hosting of client devices | |
| US11025724B2 (en) | Transport of control data in proxy-based network communications | |
| US9686205B2 (en) | Method for providing a connection of a client to an unmanaged service in a client-server remote access system | |
| CN107431630B (zh) | 高度可扩展、容错的远程访问架构和与之连接的方法 | |
| EP2574006A1 (en) | Cloud service consuming method, cloud service packet, cloud service broker and cloud system | |
| US8352617B2 (en) | Method and system for data processing | |
| US9935846B2 (en) | Synchronized distributed networks with frictionless application installation | |
| US9985913B2 (en) | Apparatus and method for client-side flow control in a remote access environment | |
| JP2024534289A (ja) | Ran情報を検索するためのシステム及び方法 | |
| CN110417905B (zh) | 一种合约发布方法、装置、设备和联盟链系统 | |
| CN117955959A (zh) | 多媒体内容的协同传输方法、装置、设备及存储介质 | |
| CN118646684A (zh) | 数据传输方法和装置、存储介质及电子设备 | |
| Xue et al. | Packet Scheduling for Multiple‐Switch Software‐Defined Networking in Edge Computing Environment | |
| US20160006603A1 (en) | Techniques for synchronizing operations between regions when a network connection fails | |
| WO2025017685A1 (en) | Method and system for synchronizing account information between primary site and disaster recovery site | |
| WO2025052476A1 (en) | Method and system for creating backup of a network function | |
| CN121644660A (zh) | 数据迁移的方法、装置、电子设备及介质 | |
| EP3435629B1 (en) | Transport of control data in proxy-based network communications | |
| US10666454B1 (en) | Apparatus, system, and method for providing simultaneous delivery of output communications | |
| CN120034520A (zh) | 酒店业务多端通信方法、系统及介质 | |
| CN118368038A (zh) | 通信方法及装置 | |
| CN117354205A (zh) | 握手复用方法、设备以及计算机可读介质 | |
| HK1223464B (en) | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |