JP2018512084A - 高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアクセスアーキテクチャに接続する方法 - Google Patents
高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアクセスアーキテクチャに接続する方法 Download PDFInfo
- Publication number
- JP2018512084A JP2018512084A JP2017540185A JP2017540185A JP2018512084A JP 2018512084 A JP2018512084 A JP 2018512084A JP 2017540185 A JP2017540185 A JP 2017540185A JP 2017540185 A JP2017540185 A JP 2017540185A JP 2018512084 A JP2018512084 A JP 2018512084A
- Authority
- JP
- Japan
- Prior art keywords
- client
- server
- service
- application server
- remote access
- 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
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000013468 resource allocation Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Power Engineering (AREA)
Abstract
クライアント/サーバ間リモートアクセスシステムのサービスにリモートアクセスを提供するシステム及び方法。方法は、スケジューラがサービスをホストするアプリケーションサーバを選択することを含み、選択は、クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って行われる。サービスを一意に識別し、サービスへのクライアントのリモートアクセス確立に使用されるURL(ユニフォームリソースロケータ)ペイロードを含むセッションURLを作成する。システムは、リソースURLにアクセス可能なプロキシサーバを含んでよい。プロキシサーバは、サービスへの接続要求をクライアントから受信する。認証コンポーネントは、リソースURLのペイロードに従って、要求を認証する。サービスマネージャは、セッションURLに接続されたクライアントとサービス間にセッションを確立する。
Description
[関連出願の相互参照]
本出願は、2015年1月30日出願のUS仮特許出願第62/109,914号「高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアーキテクチャに接続する方法」の優先権を主張し、その開示の全体を参照により本明細書に組み込む。
本出願は、2015年1月30日出願のUS仮特許出願第62/109,914号「高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアーキテクチャに接続する方法」の優先権を主張し、その開示の全体を参照により本明細書に組み込む。
[背景]
ブロードバンド無線ネットワークアクセスの成長及び可用性の結果として、サービスへのユビキタスリモートアクセスが、ごく普通のものになった。このため、ユーザは、種類が増え続けるクライアント装置(例えば、モバイル装置、タブレットコンピューティング装置、ラップトップ/ノートブック/デスクトップコンピュータ等)を用いて広範なリモートサービスに接続することによって、サービスにアクセスしている。リモートサーバは、3G、4G、及び、LTEモバイルデータネットワーク、WiFi及びWiMAX等の無線ネットワーク、有線ネットワーク等を含む、多様なネットワークを介してリモートサービスとクライアント装置の間で、データまたは他の情報を含むメッセージを通信してよい。
ブロードバンド無線ネットワークアクセスの成長及び可用性の結果として、サービスへのユビキタスリモートアクセスが、ごく普通のものになった。このため、ユーザは、種類が増え続けるクライアント装置(例えば、モバイル装置、タブレットコンピューティング装置、ラップトップ/ノートブック/デスクトップコンピュータ等)を用いて広範なリモートサービスに接続することによって、サービスにアクセスしている。リモートサーバは、3G、4G、及び、LTEモバイルデータネットワーク、WiFi及びWiMAX等の無線ネットワーク、有線ネットワーク等を含む、多様なネットワークを介してリモートサービスとクライアント装置の間で、データまたは他の情報を含むメッセージを通信してよい。
このような成長を前提として、クライアント装置の多数の同時ユーザにサービスを供給するには十分なスケーラビリティをリモートアクセスサーバが提供できない状況がある。さらに、リモートアクセスサーバがクラッシュして、リモートアクセスサーバに接続されたユーザ全ての接続を切る高需要及びコンポーネント故障等の状況がある。
[概要]
クライアント/サーバ間リモートアクセスシステムのサービスにリモートアクセスを提供するシステム及び方法を本明細書に開示する。開示の態様によると、クライアント/サーバ間リモートアクセスシステムのサービスにリモートアクセスを提供する方法を開示する。方法は、クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って、スケジューラが、サービスをホストするアプリケーションサーバを選択することと、サービスを一意に識別し、クライアントによるサービスへのリモートアクセスの確立に使用されるURLペイロードを含むセッションURLを作成することを含む。
クライアント/サーバ間リモートアクセスシステムのサービスにリモートアクセスを提供するシステム及び方法を本明細書に開示する。開示の態様によると、クライアント/サーバ間リモートアクセスシステムのサービスにリモートアクセスを提供する方法を開示する。方法は、クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って、スケジューラが、サービスをホストするアプリケーションサーバを選択することと、サービスを一意に識別し、クライアントによるサービスへのリモートアクセスの確立に使用されるURLペイロードを含むセッションURLを作成することを含む。
開示の他の態様によると、サービスへのアクセスを提供するクライアント/サーバ間リモートアクセスシステムを開示する。システムは、リソースURL(ユニフォームリソースロケータ)でアクセス可能なプロキシサーバを含む。プロキシサーバは、サービスに接続する要求をクライアントから受信する。認証コンポーネントは、リソースURLのペイロードに従って、要求を認証する。スケジューラは、クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って、サービスをホストするアプリケーションサーバを選択する。スケジューラは、クライアントとサービス間のセッションの確立に使用するペイロードを含むセッションURLを作成する。サービスマネージャが、認証された要求に従ってセッションURLに接続されたクライアントとサービス間のセッションを確立して、クライアントとサービス間でアプリケーションデータと状態情報を通信する。
さらに他の態様に従って、クライアント/サーバ間リモートアクセスシステムのサービスへのリモートアクセスを可能にする方法を開示する。方法は、クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って、スケジューラが、サービスをホストするアプリケーションサーバを選択することと、アプリケーションIDをサービスに関連付けることと、ペイロードとしてアプリケーションIDを含むセッションURL(ユニフォームリソースロケータ)であって、アプリケーションサーバがホストするサービスを識別するセッションURLをスケジューラが作成することと、セッションURLでサービスをクライアントに利用可能にすることを含む。
以下の図面及び詳細な記載を検討すると、他のシステム、方法、特徴、及び/または、利点は、当業者には明らかであろう。このような追加のシステム、方法、特徴、及び/または、利点は全て、本記載内に含まれ、請求項によって保護されるものとする。
図面内のコンポーネントは、互いに必ずしも縮尺通りではない。類似の参照番号は、幾つかの図面を通して対応する部分を指す。
別段の規定の無い限り、本明細書で使用する全ての技術的用語及び科学的用語は、当業者が通常、理解するのと同じ意味を有する。本明細書に記載の方法及び材料と類似または同等の方法及び材料は、本開示の実践またはテストに使用できる。リモートアクセスアーキテクチャによって提供されたリモートアクセスアプリケーション及びサービスにクライアントを接続する高度にスケーラブルなフォールトトレラントなリモートアクセスアーキテクチャ及び方法を提供する実施態様を記載するが、実施態様が、それに限らないことは、当業者には明らかであろう。
上記を導入部として、図1を参照する。図1は、サービスへのリモートアクセスを提供するアーキテクチャ100の例を示す。図1に示すように、クライアント装置102a/102b/102cは、各クライアントソフトウェア開発キット(SDK)104a/104b/104c及び各クライアントリモートアクセスアプリケーション105a/105b/105cを実行してよい。クライアント装置102a/102b/102cは、例えば、IPhone、ANDROIDベースの装置、タブレット装置等の無線ハンドヘルド装置、または、デスクトップ/ノートブックパーソナルコンピュータであってよく、それらは、通信ネットワーク125によって1つまたは複数のプロキシサーバ113a/113b/113cに接続される。
クライアントSDK104a/104b/104cは、各クライアントリモートアクセスアプリケーション105a/105b/105cに関連付けられ、各クライアントリモートアクセスアプリケーション105a/105b/105cが接続されたリモートアクセス及びアプリケーションサーバ103a/103bから表示情報を受信するように適合される。クライアントリモートアクセスアプリケーション105a/105b/105cは、アプリケーション115a/115b/115cの1つまたは複数等、接続されたサービス(複数可)からの情報をクライアント装置102a/102b/102cに表示するユーザインタフェースを提供するウェブブラウザ、専用アプリケーション等であってよい。「アプリケーション」及び「サービス」という用語は、本明細書では交換可能に用いられ、ネットワークを介してクライアント装置に配布されるプログラムまたはプログラムグループを指す。アプリケーションの例は、医用画像アプリケーション、CADアプリケーション、地震計アプリケーション、コラボレーションホワイトボードアプリケーション等を含むが、これらに限らない。
通信ネットワーク125は、3G、4G、及び/または、LTEモバイルデータネットワーク、WiFi及びWiMAX等の無線ネットワーク、または、有線ネットワーク等であってよい。通信ネットワーク125を介した接続は、ハイパーテキスト転送プロトコル(HTTP)、WebSocketプロトコル(WSS)、または、TCP/IPネットワーク内でサポートされた任意の他のプロトコルであってよい。
プロキシサーバ113a/113b/113cは、比較的多数の同時要求(例えば、何千から何百万の同時要求)を扱うことができるHTTPサーバ及びリバースプロキシサーバであってよい。ある実施態様において、プロキシサーバ113a/113b/113cは、リモートアクセス及びアプリケーションサーバ(複数可)103a/103bとは別個のノード(例えば、サーバコンピューティング装置)で実行し、通信接続126によって、リモートアクセス及びアプリケーションサーバ(複数可)103a/103bに通信可能に接続される。通信接続126は、通信接続125より容量の大きい接続であってよい。プロキシサーバ113a/113b/113cは、リモートアクセス及びアプリケーションサーバ103a/103bの負荷、計算コスト、地理的な位置(複数可)、または、他の要因に従って、アーキテクチャ100内のスケーリングも提供してよい。プロキシサーバ113a/113b/113cの例は、カリフォルニア州サンフランシスコNginx社製のnginxである。
リモートアクセス及びアプリケーションサーバ103a/103bは、サービスマネージャ111a/111b、アプリケーションサーバ114a/114b、及び、1つまたは複数のアプリケーション(サービス)115a/115b/115cを含んでよい。アーキテクチャ100において、サービスマネージャ111a/111bは、個々のリモートアクセス及びアプリケーションサーバ103a/103b上でアプリケーション115a/115b/115cの停止及び開始を行う。アプリケーションサーバ114a/114bは、接続マーシャリングを提供する。アプリケーションサーバ114a/114bは、クライアント装置102a/102b/102cからアプリケーション115a/115b/115cに、及び、アプリケーション115a/115b/115cからクライアント装置115a/115b/115cに表示情報を提供するサーバSDK116a/116bを含んでよい。リモートアクセス及びアプリケーションサーバ103a/103bの例は、カナダアルバータ州カルガリーのCalgary Scientific社製のPUREWEBである。
アーキテクチャ100内にユーザ及びアプリケーション115a/115b/115cを認証する認証コンポーネント124が備えられてよい。アーキテクチャ100によって提供されたセキュリティモデルによると、認証コンポーネント124によって認証され、アクセスが許可されるまで、どのアプリケーション115a/115b/115cも互いを信用しない。認証コンポーネント124は、トークンベースの認証スキームを使用して、認証サービスを提供してよい。例えば、認証されると、制限付きユニフォームリソースロケータ(URL)がユーザにマップされてよい。
ダッシュボード127は、アプリケーションサーバのインスタンスを開始し、アーキテクチャ100のコンポーネントを構成する能力を、システムアドミニストレータに提供する。ダッシュボードが提示するユーザインタフェースの例が、図5A、5B、5Cに示され、アーキテクチャ100内でコンポーネント(図5A)、サービス情報(図5B)、アプリケーションサーバ及びサービスマネージャ情報(図5C)を開始するユーザインタフェースを示す。図には示さないが、ダッシュボード127は、クラスタ120の性能に関するメトリクスも報告してよい。
例えば、クラスタ120のアプリケーションサーバ103a/103bまたは他のノード等のリソースの利用を管理するスケジューラ130が、備えられてよい。スケジューラ130は、1つまたは複数の選択ヒューリスティクスを実施して、どのアプリケーションサーバ103a/103bがリモートアクセス接続要求にサービスを供給するかを決定してよい。ヒューリスティクスの一例は、最も少ない数のサービスを実行しているアプリケーションサーバを選択すること(すなわち、最小負荷ヒューリスティクス)である。ヒューリスティクスの別の例は、利用可能な容量を有する最も長く実行しているアプリケーションサーバを選択すること(すなわち、容量のある最も古いヒューリスティクス)である。この例のヒューリスティクスでは、最近作成されたアプリケーションサーバがアイドルになり、停止できるように、より少なく、より古いアプリケーションサーバにより多くのサービスをロードするように試みる。ヒューリスティクスのさらに別の例は、アプリケーション115a/115b/115cのステートフルを考慮し、既存の実行中のアプリケーション(例えば、アプリケーション115a/115b/115cの1つ)の状態に従って、アプリケーションサーバを選択する。例えば、アプリケーション115a/115b/115cは、特定のクライアント102a/102b/102cからの接続の受信に利用可能なように、アプリケーションサーバの待ち行列に入れられている場合がある。接続されると、特定のクライアント102a/102b/102cは、接続されたままである、または、同じアプリケーション115a/115b/115cに再接続する。このヒューリスティクスは、アプリケーション115a/115b/115cの性質がグラフィカルである環境で使用されてよい。上記に従って、スケジューラ130は、セッションURLと、関連するペイロード(例えば、アプリケーション/サービスを一意に識別するアプリケーションID)をリアルタイムで作成してクライアント装置102a/102b/102cのユーザを特定のアプリケーションサーバ(例えば、114a)にホストされたサービス(例えば、115a)に導いてよい。この特徴の詳細を、図3を参照して以下に記載する。
オーケストレータ131は、負荷、ハードウェア容量(例えば、CPU、GPU、メモリ)、ネットワーキング要求、費用、地理的な位置、または、他のメトリクスに従って、リモートアクセス及びアプリケーションサーバ103a/103bを開始、停止してよい。スケジューラ130は、企業、クラウドサービスプロバイダ、例えば、アマゾンウェブサービス、または、他の実体と関連付けられたファイアウォール134の背後にアプリケーションサーバ103a/103bをクラスタ120としてデプロイしてよい。クラスタリングによって、複数のリモートアクセス及びアプリケーションサーバ103a/103bは、高い利用可能性、負荷バランシング、及び/または、並行処理を提供できる。ある実施態様においては、アプリケーションサーバ103a/103bは、オーケストレータ131から受信した開始コマンドに応答して画像から作成されたクラウドベースのインスタンスであってよい。例えば、各アプリケーション115(または、アプリケーション)に関連付けられた予め構築された画像があってよく、その画像は、例えば、クラウド環境のインスタンスとして、インスタンス化されて、アプリケーションサーバにロードできる。
オーケストレータ131は、手動または自動で動作してよい。手動で動作する時、ユーザは、(例えば、開発者に関連付けられたクライアントコンピューティング装置上で)コマンドラインインタフェースを用いて、オーケストレータ131にリモートで接続し、使用しているアプリケーションサーバをオンまたはオフにする。自動で動作するとき、オーケストレータ131は、クラスタ120内の現在のリソース配分に関してスケジューラ130から情報を受信してよい。クラスタ120内、または、個々のアプリケーションサーバ103a若しくは103b上でのリソース利用が多い場合、オーケストレータ131は、新しいアプリケーションサーバインスタンス(複数可)を自動的に開始して、需要を満たしてよい。同様に、クラスタ120内、または、個々のアプリケーションサーバ103a若しくは103b上での利用が少ない場合、オーケストレータ131は、既存のアプリケーションサーバインスタンスを自動的に停止してよい。
さらに、オーケストレータ131は、(リソースが許せば、追加のノードまたは同じノード上に)追加のプロキシサーバ113a/113b/113cをデプロイして、クラスタ120のリモートアクセス及びアプリケーションサーバ103a/103bへの接続を扱ってよい。あるいは、追加のリモートアクセス及びアプリケーションサーバ103a/103bは、他のリモートアクセス及びアプリケーションサーバ103a/103bの追加または同じノードにデプロイされてよい。
サービス発見及び構成コンポーネント132は、クラスタ120内で発見サービスを提供してよい。サービス発見及び構成コンポーネント132は、アプリケーション115a/115b/115cがどのリソースを必要とし得るかを決定し、アプリケーション115a/115b/115cをリモートクライアント102a/102b/102cにアクセス可能にするように適合される。例えば、サービス発見及び構成コンポーネント132は、プロキシサーバ113a/113b/113cからの要求をアプリケーション115a/115b/115cにルーティングするドメインネームサービス(DNS)を提供してよい。サービス発見及び構成コンポーネント132の例は、HashiCorp社製のConsulである。
スケジューラ130、サービス発見及び構成コンポーネント132等のクラスタ120のコンポーネントから情報を取得、または、当該コンポーネントに情報を提供するために、ダッシュボード127及び他の外部のコンポーネントとインタフェースを取るAPI Edge128を備えてよい。
ある実施態様においては、クラスタ120の1つまたは複数のコンポーネント、プロキシサーバ113a/113b/113c、認証コンポーネント124、または、ダッシュボード127は、アマゾンウェブサービス(AWS)を含むが、これに限らないクラウドインフラストラクチャ内にデプロイされてよい。クライアント装置102a/102b/102cとリモートアクセス及びアプリケーションサーバ103a/103bの例を図6に示す。さらに、アーキテクチャ100内のコンポーネントの1つまたは複数が、アーキテクチャ100のスケーラビリティとフォールトトレランスを向上させるマイクロサービスとしてデプロイされてよい。従って、アーキテクチャ100は、多数のクライアントがネットワークを介してアプリケーションにリモートでアクセスし得る高度にスケーラブルな、フォールトトレラントなアーキテクチャを提供する。
図2及び図3を参照すると、フローの例とアーキテクチャ100のコンポーネント間で送信される一連のメッセージとを示す動作フローチャートとコールフロー図が示されている。
図2を参照すると、202において、ハンドシェイク動作が、クライアントとプロキシサーバ間で行われる。ハンドシェイク動作は、クライアントリモートアクセスアプリケーション105aとしてクライアント102aのブラウザを用いて実行されるJavaScriptファイルを、例えば、プロキシサーバ113aからクライアント102aにダウンロードすることを伴ってよい。図3のように、202で行われた動作に関連付けられたコールフローは、フロー1及び2によって一般的に示される。クライアントSDK104a/104b/104cは、プロキシサーバ113a/113b/113cに接続し、例えば、HTTP GET方法を用いて、アプリケーション115a/115b/115cと関連付けられたリソースURLとパラメータを受信する。パラメータは、アプリケーション名及びクライアント識別子を含んでよい(フロー1)。プロキシサーバ113a/113b/113cは、クライアントリモートアクセスアプリケーション105a/105b/105cとして実行する、例えば、JavaScriptをクライアントSDK104a/104b/104cに返信する(フロー2)。
204において、サービスがスケジュールされる。例えば、フロー1で渡されたアプリケーション名を用いて、スケジューラ130は、サービスマネージャ111aがリソースURLに関連付けられたクライアント要求を満たすアプリケーション115aを開始するように要求してよい。204で行われた動作に関連付けられたコールフローは、図3のフロー3及び4によって一般的に示される。クライアントSDK104a/104b/104cは、使用するアプリケーション115a/115b/115cに関連付けられたアプリケーションサーバ114a/114bのスケジューラ130からクラスタアドレスを取得する(フロー3)。スケジューラ130は、クライアントSDK104a/104b/104cにクラスタアドレスを返信する(フロー4)。
206において、リソースURLの対象であるアプリケーションを開始する。スケジューラ130は、アプリケーションサーバ114aのリソース利用をチェックし、負荷等に応じて、アプリケーション115aを開始するようサービスマネージャ111aに連絡する。206で行われる動作に関連付けられたコールフローは、図3のフロー5〜14によって一般的に示される。クライアントSDK104a/104b/104cは、リソースURL(例えば、フロー5の/remote/app)に配置されたプロキシサーバ113a/113b/113cに接続する。例えば、クライアントSDK104a/104b/104cは、プロキシサーバ113a/113b/113cに接続し、例えば、ユーザまたはクライアント装置102a/102b/102cに関する認証情報を含むペイロードと共にHTTP POST方法を用いて要求を送ってよい。
認証情報は、認証コンポーネント124に提供され、ユーザまたはクライアント装置102a/102b/102cがアプリケーション115a/115b/115cへのアクセスを許可されるか(または、許可されたままにするか)否かを決定する(フロー6)。認証を通過すると、認証コンポーネント124は、スケジューラ130に要求を行い(フロー7)、スケジューラ130は、次に、アプリケーション115a/115b/115cを実行するリモートアクセス及びアプリケーションサーバ103a/103bの負荷を決定するようにアプリケーションサーバ114a/114bに連絡する(フロー8)。リモートアクセス及びアプリケーションサーバ103a/103bのサービスマネージャ111a/111bは、決定を行い(フロー9)、負荷が閾値量を超える場合、または、アプリケーション115a/115b/115cが実行中でない場合、スケジューラ130は、サービスマネージャ111a/111bにStartメッセージを送って(フロー10)、アプリケーション115a/115b/115cを開始する(フロー11)。例えば、サービスマネージャ111aは、アプリケーションIDを用いて、アプリケーション115aに接続し、開始する。サービスマネージャ111aは、アプリケーション115aに関連付けられた「セッション」を確立し、そうすると、セッションは、クライアント装置がリモートに接続されてよい「待ち行列に入れられたサービス」とみなされる。待ち行列に入れられたサービスは、(リモートにアクセス可能な一種類のアプリケーションに対して)一意のアプリケーション名、及び/または、待ち行列に入れられたサービスの接続に対して一意のアプリケーションIDによって知られてよい。
次に、アプリケーション115a/115b/115cは、上記のように、スタートアッププロセスを開始し、例えば、TCP接続メッセージを用いて、アプリケーションサーバ114a/114bに接続する(フロー12)。アプリケーション115a/115b/115cは、識別情報(例えば、アプリケーションID、アプリケーション名、及び、サーバインスタンス識別子、サービスマネージャ識別子)を提供し、識別情報は、スケジューラ130に渡される(フロー13)。スケジューラ130は、次に、識別情報をクライアントSDK104a/104b/104cに伝える(フロー14)。
図2に戻ると、208において、アプリケーションサーバでサービスを利用可能にするセッションURLを作成する。認証コンポーネント124は、セッションを作成し、アプリケーションサーバ114aは、セッションURLをクライアントSDK104に返信する。208で行われる動作に関連付けられたコールフローは、図3のフロー15〜18によって一般的に示される。上記パラメータを用いて、クライアントSDK104a/104b/104cは、パラメータと共に、例えば、HTTP POST方法を使用して、プロキシサーバ113a/113b/113cに要求を行ってよく(フロー15)、プロキシサーバ113a/113b/113cは、クライアント装置102a/102b/102cがパラメータによって識別されたアプリケーション115a/115b/115cにアクセスを許可されるか否かを再び決定するように認証コンポーネント124に要求を渡す(フロー16)。認証されると、認証コンポーネント124は、CreateSessionメッセージをアプリケーションサーバ114a/114bに送る(フロー17)。アプリケーションサーバ114a/114bは、アプリケーション115a/115b/115cの位置をセッションクッキーと共にクライアントSDK104a/104b/104cに返信する(フロー18)。このように、セッションが作成され、クライアントSDKは、サービスに結びつく準備が整う。
210において、クライアントは、アプリケーションと対話する。210で行われる動作に関連付けられたコールフローは、図3のフロー19〜22によって一般的に示される。クライアント装置102aは、アプリケーションIDを用いて、待ち行列に入れられたサービス(すなわち、アプリケーション115a)の特定のインスタンスに接続してよい。クライアントSDK104aは、クライアント102aの認証に使用されるペイロードを含むセッションURLを用いて、アプリケーション115aに接続する。クライアント102aが接続されると、アプリケーション115aは、「アクティブサービス」にアップグレードされる。追加のクライアントが、一意のアプリケーションIDを用いてアクティブサービスに接続してよく、それによって、接続されたクライアントは、アクティブサービスとコラボレートしてよい。その詳細を以下に記載する。詳細には、クライアント装置(例えば、102a)は、コラボレーションセッションにおいて、他のクライアント装置(例えば、102b及び/または102c)とコラボレートしてよい。例えば、コラボレータ122a/122b/122cは、コラボレーションセッションにおいて、クライアント装置102a/102b/102cと共に働いて、例えば、アプリケーション115a/115b/115cを共有してよい。コラボレータ122a/122b/122cとクライアント装置102a/102b/102cは、例えば、共有アプリケーション状態及びメッセージの受け渡しを介して、アプリケーション115a等のリソース、または、データを共有してよい。図4を参照してコラボレーションの追加の詳細を記載する。
210で行われる動作に関連付けられたコールフローは、図3のフロー19〜22によって一般的に示される。セッションURLの位置情報とパラメータを用いて、クライアントSDK104a/104b/104cは、例えば、HTTP POST方法として、プロキシサーバ113a/113b/113cに要求を送り(フロー19)、要求は、認証コンポーネント124に渡される(フロー20)。認証されると、認証コンポーネント124は、リモートアクセスセッションにおいて、アプリケーション115a/115b/115cをクライアント装置102a/102b/102cに通信可能に接続するAttachClientメッセージをアプリケーションサーバ114a/114bに伝える(フロー21)。アプリケーション115a/115b/115cは、ここで、図1に示すように、例えば、プロキシサーバ113a/113b/113cを介して、アプリケーションサーバ114a/114bとクライアント装置102a/102b/102cの間に形成されたWeb Socket接続(フロー22)によって、クライアントSDK104a/104b/104cに通信可能に接続される。従って、画像データ、アプリケーション状態情報、または、リモートセッションに関連付けられた他のデータは、アプリケーション115a/115b/115cとクライアント装置102a/102b/102c間で送信されてよい。
アプリケーション状態情報は、状態モデルにおいてリモートセッション中に通信されてよく、アプリケーション状態情報は、リモートにアクセスされたアプリケーション115a/115b/115cに関する情報、及び/または、クライアント装置102a/102b/102c若しくはコラボレーションセッションに参加している可能性のあるクライアント装置102a/102b/102cに関するセッション情報である。詳細には、状態モデルは、アプリケーション状態に対する変更を含んでよく、アプリケーションサーバ114a/114bとクライアント装置102a/102b/102cの間、または、複数のクライアント装置102a/102b/102cがコラボレーションセッションに参加している場合、クライアント装置102a/102b/102c間で通信されてよい。状態モデルは、例えば、拡張マークアップ言語(XML)ドキュメントによって表すことができる。状態モデルの他の表現も使用できることを理解されたい。
図2の212おいて、クライアントは、アプリケーションとの接続を絶つ。クライアントSDK104aは、アプリケーションサーバ114aに停止メッセージを送り、アプリケーションサーバ114aは、サービスマネージャ111aとの接続を絶ち、クライアント102aとアプリケーション115aの間の接続を閉じる。212で行われる動作に関連付けられたコールフローは、図3のフロー23〜28によって一般的に示される。クライアント装置102a/102b/102cのユーザが、リモートセッションを終了し、アプリケーション115a/115b/115cとの接続を絶ちたい場合、例えば、ウエブソケットクローズまたはHTTP DELETE方法を用いて、要求を行ってよく、要求は、プロキシサーバ113a/113b/113cに伝えられ(フロー23)、プロキシサーバ113a/113b/113cは、その要求を認証要求として、認証コンポーネント124に渡す(フロー24)。認証されると、Stopメッセージが、アプリケーションサーバ114a/114bに伝えられ(フロー25)、アプリケーションサーバ114a/114bは、次に、TCP Disconnect(フロー26)とTCP Close(フロー27)メッセージをアプリケーション115a/115b/115cに伝える。アプリケーションサーバ114a/114bは、次に、切断メッセージをクライアントSDK104a/104b/104cに送り、アプリケーション115a/115b/115cとのセッションを終了する。アプリケーションサーバ114a/114bは、次に、切断メッセージをクライアントSDK104a/104b/104cに送り、アプリケーション115a/115b/115cとのセッションを終了する(フロー28)。
上記動作及びコールフロー図は、アーキテクチャ100内でクライアント装置102a/102b/102cをリモートアプリケーション115a/115b/115cに接続し、また、リモートアプリケーション115a/115b/115cとの接続を絶つフロー例を提供するが、他の変更形態及びコールフローは当業者には明らかであろう。
図4は、本開示のアーキテクチャ100でコラボレーションセッションを開始する動作フロー400の例を示す。402において、クライアントは、クライアントSDKからコラボレーションURLを要求する。例えば、クライアント102aのユーザは、クライアントSDK104aから、他のコラボレータ122a/122b/122cまたはクライアント102b/102cがコラボレーションセッションに接続するのを可能にして、各々が、例えば、アプリケーション115aと対話できるようにするコラボレーションURLを要求してよい。404において、共有されるアプリケーションを実行しているアプリケーションサーバを識別するコラボレーションURLを構築する。例えば、コラボレーションURLは、プロキシサーバ113aの背後のアプリケーションサーバ114aを一意に識別するように、認証サービス124によって構築されてよい。
406において、コラボレーションURLは、要求を行っているクライアントに返信される。408において、要求を行っているクライアントのユーザ(例えば、102a)は、コラボレータ122a/122b/122cまたはクライアント102b/102cの1つまたは複数にコラボレーションURLを転送してよい。410において、コラボレータまたは他のクライアントは、コラボレーションURLを用いてコラボレーションセッションに接続する。412において、サービス発見及び構成コンポーネントは、アプリケーションサーバ114aへのコラボレーションURLを解明する。サービス発見及び構成コンポーネント132は、DNSを用いて位置サービスを行ってよい。414において、コラボレータは、それぞれ、コラボレーションセッションに参加して、アプリケーション115aと対話する。
従って、動作フロー400は、複数のユーザがアーキテクチャ100内で実行しているアプリケーションとコラボレートして対話することを可能にする方法を提供する。
図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は、コンピューティング装置600が他の装置と通信するのを可能にする通信接続(複数可)612を含んでよい。コンピューティング装置600は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等の入力装置(複数可)614も有してよい。ディスプレイ、スピーカ、プリンタ等の出力装置(複数可)616も含まれてよい。これらの装置は全て、当分野で周知であり、ここで詳細に説明する必要は無い。
本明細書に記載の様々な技術は、ハードウェア若しくはソフトウェア、または、必要に応じて、それら両方の組み合わせと関連して実施されてよいことは理解されたい。従って、本開示の主題の方法及び装置、または、それらの一定の態様若しくはその一部は、有形媒体で具体化されるプログラムコード(すなわち、命令)の形を取ってよく、有形媒体は、フロッピーディスケット、CD−ROM、ハードドライブ、または、プログラムコードをコンピュータ等の機械にロードし、機械によって実行されると、機械が、本開示の主題を実践する装置になる任意の他の機械可読記憶媒体等であってよい。プログラム可能コンピュータにおいてプログラムコードを実行する場合、コンピューティング装置は、一般に、プロセッサと、(揮発性及び不揮発性メモリ、及び/または、記憶要素を含む)プロセッサによって読み取ることのできる記憶媒体と、少なくとも1つの入力装置と、少なくとも1つの出力装置とを含む。1つまたは複数のプログラムは、例えば、アプリケーションプログラミングインタフェース(API)、再利用可能な制御装置等を使用して、本開示の主題と関連して記載されたプロセスを実施または利用してよい。このようなプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で実施されて、コンピュータシステムと通信してよい。しかしながら、プログラム(複数可)は、必要に応じて、アセンブリまたは機械言語で実施できる。いずれの場合でも、言語は、コンパイラ型またはインタープリタ型言語であってよく、ハードウェアの実施態様と組み合わせられてよい。
主題を構造的特徴及び/または方法論的行為に特有の言語で記載したが、請求項に規定した主題は、上記特定の特徴や行為に必ずしも限定されないことを理解されたい。むしろ、上記特定の特徴及び行為は、請求項を実施する形態の例として開示している。
Claims (23)
- クライアント/サーバ間リモートアクセスシステムのサービスにリモートアクセスを提供する方法であって、
前記クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って、スケジューラが、前記サービスをホストするアプリケーションサーバを選択することと、
前記サービスを一意に識別し、且つ、クライアントによる前記サービスへの前記リモートアクセスの確立に使用されるURL(ユニフォームリソースロケータ)ペイロードを含むセッションURLを作成することと、
を含む、前記方法。 - 前記アプリケーションサーバの前記選択に先立って、前記サービスへの接続を要求する前記クライアントに提供されるリソースURLを作成することをさらに含む、請求項1に記載の方法。
- 前記リソースURLに関連付けられたプロキシサーバで要求を受信して、前記サービスにアクセスすることをさらに含む、請求項1〜2のいずれかに記載の方法。
- 前記サービスを一意に識別する前記URLペイロードは、アプリケーションIDである、請求項1〜3のいずれかに記載の方法。
- 前記クライアント/サーバ間リモートアクセスシステムの前記クライアントと前記サービスの間、及び、サービス間の信頼を確立する認証コンポーネントを提供することをさらに含む、請求項1〜4のいずれかに記載の方法。
- 前記認証コンポーネントがコラボレーションURLを前記クライアントに提供することと、
前記コラボレーションURLを用いて、前記プロキシサーバで、第2のクライアントから第2の要求を受信することと、
前記第2のクライアントを前記セッションに参加させることと、
をさらに含む、請求項5に記載の方法。 - 前記コラボレーションURLは、前記選択されたアプリケーションサーバを識別し、前記第2のクライアントを認証する、請求項6に記載の方法。
- 前記セッションURLは、前記クライアントに関連付けられたユーザにマップされる、請求項5〜7のいずれかに記載の方法。
- 前記クライアント/サーバ間リモートアクセスシステム内のリソース利用を前記スケジューラを用いて管理することをさらに含む、請求項1〜8のいずれかに記載の方法。
- 前記スケジューラは、前記アプリケーションサーバが最も少ない数のサービスを実行していることに基づいて、前記アプリケーションサーバを選択する、請求項9に記載の方法。
- 前記スケジューラは、前記アプリケーションサーバが利用可能な容量を有する最も長く実行している前記アプリケーションサーバであることに基づいて、前記アプリケーションサーバを選択する、請求項9〜10のいずれかに記載の方法。
- 前記スケジューラは、前記アプリケーションサーバの既存の実行中のサービスの状態に基づいて、前記アプリケーションサーバを選択する、請求項9〜11のいずれかに記載の方法。
- 前記スケジューラは、リアルタイムで前記セッションURLを作成して、前記サービスをホストする前記アプリケーションサーバに前記クライアントを導く、請求項9〜12のいずれかに記載の方法。
- 負荷、ハードウェア容量(例えば、CPU、GPU、メモリ)、ネットワーク要件、費用、または、地理的な位置の1つに従って、前記クライアント/サーバ間リモートアクセスシステム内のアプリケーションサーバを開始及び停止させるオーケストレータをさらに含む、請求項9〜13のいずれかに記載の方法。
- 前記スケジューラから前記オーケストレータに情報を提供し、現在のリソース配分に関する情報を受信し、需要に基づいて、前記アプリケーションサーバを自動的に開始または停止することをさらに含む、請求項14に記載の方法。
- サービスへのアクセスを提供するクライアント/サーバ間リモートアクセスシステムであって、
リソースURL(ユニフォームリソースロケータ)で利用可能なプロキシサーバであって、クライアントからの前記サービスへの接続要求を受信する前記プロキシサーバと、
前記リソースURLのペイロードに従って、前記要求を認証する認証コンポーネントと、
前記クライアント/サーバ間リモートアクセスシステムのリソースの利用状態に従って、前記サービスをホストするアプリケーションサーバであって、前記クライアントと前記サービスの間のセッションの確立に使用される前記ペイロードを含むセッションURLを作成する前記アプリケーションサーバを選択するスケジューラと、
前記認証された要求に従って前記セッションURLに接続された前記クライアントと前記サービスの間の前記セッションを確立して、前記クライアントと前記サービスの間のアプリケーションデータと状態情報を通信するサービスマネージャと、
を含む、前記クライアント/サーバ間リモートアクセスシステム。 - コラボレーションURLが、前記認証コンポーネントによって前記クライアントに提供され、第2のクライアントからの第2の要求が、前記コラボレーションURLを用いて、前記プロキシサーバで受信され、前記第2のクライアントを、前記セッションに参加させる、請求項16に記載のクライアント/サーバ間リモートアクセスシステム。
- 前記コラボレーションURLは、前記アプリケーションサーバを識別し、前記第2のクライアントを認証する、請求項17に記載のクライアント/サーバ間リモートアクセスシステム。
- 前記クライアント/サーバ間リモートアクセスシステム内のリソース利用は、前記スケジューラを用いて管理され、前記スケジューラは、前記アプリケーションサーバが最も少ない数のサービスを実行していることに基づいて前記アプリケーションサーバを選択する、または、前記アプリケーションサーバが利用可能な容量を有する最も長く実行している前記アプリケーションサーバであることに基づいて前記アプリケーションサーバを選択する、または、前記アプリケーションサーバの既存の実行しているサービスの状態に基づいて前記アプリケーションサーバを選択する、請求項16〜18のいずれかに記載のクライアント/サーバ間リモートアクセスシステム。
- 前記アプリケーションサーバを識別するペイロードパラメータを含むコラボレーションURLを前記認証コンポーネントが前記クライアントに提供することと、
前記コラボレーションURLを用いて、第2のクライアントからの第2の要求を前記プロキシサーバで受信することと、
前記第2のクライアントを前記セッションに参加させることと、
をさらに含む、請求項16〜19のいずれかに記載のクライアント/サーバ間リモートアクセスシステム。 - 前記コラボレーションURLは、前記第2のクライアントを認証する、請求項20に記載のクライアント/サーバ間リモートアクセスシステム。
- 前記スケジューラは、最も少ない数のサービスを実行している前記アプリケーションサーバを選択すること、前記アプリケーションサーバが利用可能な容量を有する最も長く実行しているアプリケーションサーバであることに基づいて前記アプリケーションサーバを選択すること、または、前記アプリケーションサーバの既存の実行中のサービスの状態に基づいて前記アプリケーションサーバを選択すること、という基準の1つに基づいて、前記アプリケーションサーバを選択する、請求項16〜21のいずれかに記載のクライアント/サーバ間リモートアクセスシステム。
- 前記アプリケーションサーバは、前記サービスを前記クライアントに利用可能にする時、リアルタイムで、前記セッションURLを作成する、請求項16〜23のいずれかに記載のクライアント/サーバ間リモートアクセスシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562109914P | 2015-01-30 | 2015-01-30 | |
US62/109,914 | 2015-01-30 | ||
PCT/IB2016/000277 WO2016120730A1 (en) | 2015-01-30 | 2016-01-29 | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018512084A true JP2018512084A (ja) | 2018-05-10 |
Family
ID=56542533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017540185A Pending JP2018512084A (ja) | 2015-01-30 | 2016-01-29 | 高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアクセスアーキテクチャに接続する方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11310348B2 (ja) |
EP (1) | EP3251286B1 (ja) |
JP (1) | JP2018512084A (ja) |
KR (1) | KR20170110612A (ja) |
CN (1) | CN107431630B (ja) |
AU (1) | AU2016210974A1 (ja) |
CA (1) | CA2974204A1 (ja) |
WO (1) | WO2016120730A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105765923B (zh) | 2013-11-29 | 2019-11-12 | 卡尔加里科技股份有限公司 | 客户端-服务器远程访问***中提供客户端到非托管服务的连接的方法 |
CN109154887A (zh) * | 2016-05-23 | 2019-01-04 | W·特纳 | 包括用户接口、服务层和配备有操作***内核的核心层的超融合*** |
US10044836B2 (en) * | 2016-12-19 | 2018-08-07 | Palantir Technologies Inc. | Conducting investigations under limited connectivity |
US10574736B2 (en) * | 2017-01-09 | 2020-02-25 | International Business Machines Corporation | Local microservice development for remote deployment |
US10812614B2 (en) | 2017-12-20 | 2020-10-20 | Citrix Systems, Inc. | Intermediated retrieval of networked content |
CN110022279B (zh) * | 2018-01-08 | 2021-11-26 | 普天信息技术有限公司 | 一种微服务***中认证鉴权的方法和*** |
US10931774B2 (en) * | 2019-01-17 | 2021-02-23 | Servicenow, Inc. | Discovery and service mapping of application programming interface proxies |
US11016784B2 (en) | 2019-03-08 | 2021-05-25 | Palantir Technologies Inc. | Systems and methods for automated deployment and adaptation of configuration files at computing devices |
US11263201B2 (en) * | 2019-04-12 | 2022-03-01 | Servicenow, Inc. | Interface for supporting integration with cloud-based service providers |
WO2020211718A1 (zh) * | 2019-04-18 | 2020-10-22 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
US11425176B2 (en) * | 2020-10-13 | 2022-08-23 | Zoom Video Communications, Inc. | Transmitting conference application content during a network conference |
US11936696B2 (en) | 2020-10-13 | 2024-03-19 | Zoom Video Communications, Inc. | Sharing a screen shot of a conference application during a network conference |
US11363079B2 (en) | 2020-10-13 | 2022-06-14 | Zoom Video Communications, Inc. | For recording conference application activity associated with a network conference |
US11050802B1 (en) | 2020-10-13 | 2021-06-29 | Zoom Video Communications, Inc. | System and methods for running conference applications before, during, and after a network conference |
CN114363221B (zh) * | 2021-12-29 | 2024-05-03 | 武汉烽火信息集成技术有限公司 | 一种基于微服务***的心跳检测方法、存储介质、电子设备及*** |
Family Cites Families (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1310133C (en) | 1988-06-30 | 1992-11-10 | Thomas R. Edel | 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 |
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 |
US6490620B1 (en) * | 1997-09-26 | 2002-12-03 | Worldcom, Inc. | Integrated proxy interface for web based broadband telecommunications management |
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 |
JP3569122B2 (ja) * | 1998-01-22 | 2004-09-22 | 富士通株式会社 | セッション管理システム、サービス提供サーバ、セッション管理サーバ、セッション管理方法及び記録媒体 |
US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6175869B1 (en) * | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
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 |
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 |
AU7342500A (en) | 1999-08-31 | 2001-03-26 | 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 |
US20020002599A1 (en) | 2000-03-08 | 2002-01-03 | Marbles, Inc. | Real-time global positioning system application in two-way mobile wireless networks |
US20030208472A1 (en) | 2000-04-11 | 2003-11-06 | Pham Peter Manh | Method and apparatus for transparent keyword-based hyperlink |
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 |
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 |
US7349967B2 (en) | 2000-07-21 | 2008-03-25 | Samsung Electronics Co., Ltd. | Architecture for home network on world wide web with private-public IP address/URL mapping |
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 |
US7062567B2 (en) | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
US6918113B2 (en) | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed 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 |
JP4579409B2 (ja) | 2000-12-27 | 2010-11-10 | キヤノン株式会社 | 双眼振れ補正装置および双眼光学機器 |
US20040117804A1 (en) | 2001-03-30 | 2004-06-17 | Scahill Francis J | 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 |
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 |
WO2003019393A1 (en) | 2001-08-24 | 2003-03-06 | Intel Corporation | A general intput/output architecture, protocol and related methods to implement flow control |
US20030120762A1 (en) | 2001-08-28 | 2003-06-26 | Clickmarks, Inc. | System, method and computer program product for pattern replay using state recognition |
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 |
CN1591404A (zh) | 2001-11-09 | 2005-03-09 | 无锡永中科技有限公司 | 多版本数据处理*** |
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 |
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 |
US7774831B2 (en) | 2002-12-24 | 2010-08-10 | International Business Machines Corporation | Methods and apparatus for processing markup language messages in a 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アプリケーション統合方法/プログラム/記録媒体、ポータルサーバ |
US20040243919A1 (en) | 2003-04-04 | 2004-12-02 | David Darian Muresan | Synchronized processing of views and drawing tools in a multiple document interface application |
DE10315418B3 (de) | 2003-04-04 | 2004-07-22 | Thyssenkrupp Automotive Ag | Verfahren zur thermomechanischen Behandlung von Stahl |
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 |
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 |
US20060036770A1 (en) | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System for factoring synchronization strategies from multimodal programming model runtimes |
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 |
WO2006055445A2 (en) | 2004-11-13 | 2006-05-26 | Stream Theory, Inc. | Hybrid local/remote streaming |
US20060236328A1 (en) | 2004-12-10 | 2006-10-19 | Siemens Medical Solutions Usa, Inc. | Integrated graphical user interface server for use with multiple client applications |
US7613830B2 (en) | 2004-12-10 | 2009-11-03 | Microsoft Corporation | Reliably transferring queued application messages |
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 |
US8125931B2 (en) * | 2006-01-10 | 2012-02-28 | Utbk, Inc. | Systems and methods to provide availability indication |
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 |
JP4675816B2 (ja) | 2006-04-07 | 2011-04-27 | 株式会社エヌ・ティ・ティ・ドコモ | 通信端末及びリスト表示方法 |
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 |
CN100555285C (zh) | 2007-02-02 | 2009-10-28 | 国家人口计生委科学技术研究所 | 网页信息协同浏览***及方法 |
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 |
US8154996B2 (en) | 2008-09-11 | 2012-04-10 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with multi-staged queues |
US8595371B2 (en) | 2008-09-19 | 2013-11-26 | Samsung Electronics Co., Ltd. | Sending a remote user interface |
JP2012510118A (ja) | 2008-11-26 | 2012-04-26 | カルガリー・サイエンティフィック・インコーポレイテッド | アプリケーションプログラムの状態への遠隔アクセスを提供するための方法およびシステム |
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 |
SG2014007801A (en) | 2009-02-03 | 2014-04-28 | Calgary Scient Inc | Method and system for enabling interaction with a plurality of applications using a single user interface |
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 |
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 |
US8453225B2 (en) * | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for intercepting and automatically filling in forms by the appliance for single-sign on |
US9055064B2 (en) * | 2009-12-28 | 2015-06-09 | Citrix Systems, Inc. | Systems and methods for a VPN ICA proxy on a multi-core system |
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 |
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 |
US8533103B1 (en) * | 2010-09-14 | 2013-09-10 | Amazon Technologies, Inc. | Maintaining latency guarantees for shared resources |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
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 |
EP2663068A1 (en) | 2011-01-07 | 2013-11-13 | Yamaha Corporation | Information-providing system, portable terminal device, server, and program |
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 |
US9424052B2 (en) | 2011-03-21 | 2016-08-23 | Amazon Technologies, Inc. | Remotely emulating computing devices |
CA2734860A1 (en) | 2011-03-21 | 2012-09-21 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
US20130125226A1 (en) * | 2011-04-28 | 2013-05-16 | Interdigital Patent Holdings, Inc. | Sso framework for multiple sso technologies |
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 |
WO2013024343A1 (en) * | 2011-08-15 | 2013-02-21 | Calgary Scientific Inc. | Non-invasive remote access to an application program |
EP2745467A4 (en) | 2011-08-15 | 2015-10-14 | Calgary Scient Inc | METHOD FOR FLOW CONTROL AND RELIABLE COMMUNICATION IN A COMMUNITY ENVIRONMENT |
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) |
US8732805B2 (en) * | 2011-09-30 | 2014-05-20 | Oracle International Corporation | Re-authentication in secure web service conversations |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
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 |
KR101383905B1 (ko) | 2011-12-19 | 2014-04-17 | 주식회사 솔박스 | 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치 |
US9386057B2 (en) | 2012-01-18 | 2016-07-05 | Numecent Holdings, Inc. | Application streaming and execution system for localized clients |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
WO2013153439A1 (en) | 2012-04-11 | 2013-10-17 | Calgary Scientific Inc. | Remoting graphical components through a tiered remote access architecture |
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 |
CN102821413A (zh) | 2012-07-31 | 2012-12-12 | 华为技术有限公司 | 传输数据的方法和网络侧设备 |
US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US9270674B2 (en) * | 2013-03-29 | 2016-02-23 | Citrix Systems, Inc. | Validating the identity of a mobile application for mobile application management |
CN105765923B (zh) * | 2013-11-29 | 2019-11-12 | 卡尔加里科技股份有限公司 | 客户端-服务器远程访问***中提供客户端到非托管服务的连接的方法 |
US10924554B2 (en) * | 2014-05-05 | 2021-02-16 | Citrix Systems, Inc. | Application customization |
CN103997526B (zh) | 2014-05-21 | 2018-05-22 | 中国科学院计算技术研究所 | 一种可扩展负载均衡***和方法 |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
-
2016
- 2016-01-29 JP JP2017540185A patent/JP2018512084A/ja active Pending
- 2016-01-29 WO PCT/IB2016/000277 patent/WO2016120730A1/en active Application Filing
- 2016-01-29 KR KR1020177021565A patent/KR20170110612A/ko unknown
- 2016-01-29 EP EP16742846.5A patent/EP3251286B1/en active Active
- 2016-01-29 US US15/011,183 patent/US11310348B2/en active Active
- 2016-01-29 CN CN201680010239.4A patent/CN107431630B/zh active Active
- 2016-01-29 AU AU2016210974A patent/AU2016210974A1/en not_active Abandoned
- 2016-01-29 CA CA2974204A patent/CA2974204A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3251286B1 (en) | 2019-10-02 |
AU2016210974A1 (en) | 2017-07-27 |
US20160226871A1 (en) | 2016-08-04 |
CN107431630A (zh) | 2017-12-01 |
CA2974204A1 (en) | 2016-08-04 |
EP3251286A4 (en) | 2018-08-22 |
US11310348B2 (en) | 2022-04-19 |
EP3251286A1 (en) | 2017-12-06 |
CN107431630B (zh) | 2021-06-25 |
WO2016120730A1 (en) | 2016-08-04 |
KR20170110612A (ko) | 2017-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018512084A (ja) | 高度にスケーラブルでフォールトトレラントなリモートアクセスアーキテクチャと、当該リモートアクセスアーキテクチャに接続する方法 | |
US11080096B1 (en) | Framework for managing cloud computing platforms | |
US10044756B2 (en) | Enabling an on-premises resource to be exposed to a public cloud application securely and seamlessly | |
US10572656B2 (en) | Isolated virtual environments for untrusted applications | |
US10728168B2 (en) | Method for providing a connection of a client to an unmanaged service in a client-server remote access system | |
Alhamazani et al. | An overview of the commercial cloud monitoring tools: research dimensions, design issues, and state-of-the-art | |
JP6712318B2 (ja) | ハイブリッド・クラウド環境内の第1のクラウドと第2のクラウドとの間の複数のvpnトンネルを管理するための方法、装置、およびコンピュータ・プログラム | |
JP5765836B2 (ja) | パブリッシュ−サブスクライブ・モデルを用いたアイデンティティ・プロバイダ・ディスカバリ・サービス | |
US9774658B2 (en) | Orchestration framework for connected devices | |
US20150163179A1 (en) | Execution of a workflow that involves applications or services of data centers | |
EP3804270A1 (en) | Automatically and remotely on-board services delivery platform computing nodes | |
US20140245262A1 (en) | Integrated Software Development and Deployment Architecture and High Availability Client-Server Systems Generated Using the Architecture | |
US9462068B2 (en) | Cross-domain inactivity tracking for integrated web applications | |
US11184833B2 (en) | Bandwidth sharing amongst trusted peers | |
US11070630B2 (en) | Computer system providing SAAS application session state migration features and related methods | |
Johansson et al. | RabbitMQ Essentials: Build distributed and scalable applications with message queuing using RabbitMQ | |
US10609155B2 (en) | Scalable self-healing architecture for client-server operations in transient connectivity conditions | |
US20160261712A1 (en) | Methods and systems for requesting access to limited service instances | |
US11290523B1 (en) | High-speed transfer of data from device to service | |
WO2024045000A1 (en) | Application-based clipboard isolation and sharing | |
US20240007340A1 (en) | Executing on-demand workloads initiated from cloud services in a software-defined data center | |
Panarello et al. | Costs of a federated and hybrid cloud environment aimed at MapReduce video transcoding | |
Panarello et al. | A Federated System for MapReduce-Based Video Transcoding to Face the Future Massive Video-Selfie Sharing Trend | |
Villari | A federated system for mapreduce-based video transcoding to face the future massive video-selfie sharing trend |