KR20170110612A - 고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법 - Google Patents
고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법 Download PDFInfo
- Publication number
- KR20170110612A KR20170110612A KR1020177021565A KR20177021565A KR20170110612A KR 20170110612 A KR20170110612 A KR 20170110612A KR 1020177021565 A KR1020177021565 A KR 1020177021565A KR 20177021565 A KR20177021565 A KR 20177021565A KR 20170110612 A KR20170110612 A KR 20170110612A
- Authority
- KR
- South Korea
- Prior art keywords
- client
- service
- url
- application server
- server
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012546 transfer Methods 0.000 claims description 3
- 230000006855 networking Effects 0.000 claims description 2
- 238000013468 resource allocation Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect 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
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H04L67/32—
-
- 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
- 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
- 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
-
- H04L67/16—
-
- H04L67/2804—
-
- H04L67/2809—
-
- H04L67/42—
-
- 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(Uniform resource locator) 페이로드를 포함하는 세션 URL이 생성되고, 클라이언트에 의해 서비스에 원격 액세스를 수립하기 위해 사용된다. 시스템은 자원 URL에서 액세스 가능한 프락시 서버를 포함할 수 있다. 프락시 서버는 서비스에 접속하기 위해 클라이언트로부터 요청을 수신한다. 인증 컴포넌트는 자원 URL의 페이로드에 따라 요청을 인증한다. 서비스 관리기는 세션 URL에 접속된 서비스 및 클라이언트간에 세션을 수립한다.
Description
관련 출원에 대한 상호-참조
본 출원은 "고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법"이라는 제목으로 2015년 1월 30일에 출원된 U.S. 가특허 출원 번호. 62/109,914에 대한 우선권을 주장하고, 이의 발명은 그 전체가 참조로서 본 출원에 통합된다.
서비스들에 대한 유비쿼터스 원격 액세스는 브로드밴드 및 무선 네트워크 액세스의 성장 및 이용 가능성의 결과로서 아주 흔하게 되었다. 이와 같이, 유저들은 매우 다양한 원격 서비스들에 접속하기 위해 계속 늘어나는 다양한 클라이언트 디바이스들 (예를 들어, 모바일 디바이스들, 태블릿 컴퓨팅 디바이스들, 랩탑/노트북/데스크탑 컴퓨터들, 등)을 이용하여 서비스들을 액세스하고 있다. 원격 서버는 3G, 4G 및 LTE 모바일 데이터 네트워크들, 무선 네트워크들 예컨대 와이파이 및 WiMax, 유선 네트워크들, 등을 포함한 다양한 네트워크들상에서 원격 서비스들과 클라이언트 디바이스들사이에서 데이터 또는 다른 정보를 함유하는 메시지들을 전송할 수 있다.
이런 성장을 가정하여, 원격 액세스 서버는 클라이언트 디바이스들의 많은 수의 동시 유저들에 서비스를 제공하기 위한 충분한 확장성을 제공하지 않을 수 있는 상태에 있다. 추가하여, 예컨대 고 수요 및 원격 액세스 서버가 갑자기 서 버릴 수 있는 컴포넌트 고장, 거기에 접속된 유저들 전체를 접속해제(disconnect)하는 상황들이 있다.
클라이언트-서버 원격 액세스 시스템에 서비스를 원격 액세스에 제공하기 위한 시스템들 및 방법들이 본 출원에 개시된다. 본 개시의 일 측면에 따라, 클라이언트-서버 원격 액세스 시스템에 서비스를 원격 액세스에 제공하기 위한 방법이 개시된다. 상기 방법은 스케줄러에 의해, 상기 서비스를 호스트하는 애플리케이션 서버를 선택하는 단계로서, 상기 선택은 상기 클라이언트-서버 원격 액세스 시스템내 자원들의 활용도에 따라 수행되는, 상기 선택하는 단계; 및 상기 서비스를 고유하게 식별하는 URL(Uniform resource locator) 페이로드를 포함하는 세션 URL을 생성하고 클라이언트에 의해 상기 서비스에 상기 원격 액세스를 수립하기 위해 사용되는 단계를 포함한다.
본 개시의 다른 측면에 따라, 서비스에 액세스를 제공하기 위한 클라이언트-서버 원격 액세스 시스템이 개시된다. 상기 시스템은 자원 URL(Uniform Resource Locator)에서 액세스 가능한 프락시 서버를 포함한다. 상기 프락시 서버는 상기 서비스에 접속하기 위해 클라이언트로부터 요청을 수신한다. 인증 컴포넌트는 상기 자원 URL의 페이로드(payload)에 따라 상기 요청을 인증한다. 스케줄러는 상기 클라이언트-서버 원격 액세스 시스템내 자원들의 활용도에 따라 상기 서비스를 호스트하는 애플리케이션 서버를 선택한다. 상기 스케줄러는 상기 클라이언트와 상기 서비스간에 세션을 수립하기 위해 사용되는 상기 페이로드를 포함하는 세션 URL을 생성한다. 서비스 관리기는 애플리케이션 데이터 및 상기 클라이언트와 상기 서비스 간에 상태 정보를 전송하기 위해 인증된 상기 요청에 따라 상기 세션 URL에 접속된 상기 서비스와 상기 클라이언트간에 세션을 수립한다.
또 측면에 따라, 클라이언트-서버 원격 액세스 시스템에 서비스에 원격 액세스가 가능하게 하기 위한 방법이 개시된다. 상기 방법은 스케줄러에 의해, 상기 서비스를 호스트하는 애플리케이션 서버를 선택하는 단계로서, 상기 선택은 상기 클라이언트-서버 원격 액세스 시스템내 자원들의 활용도에 따라 수행되는, 상기 선택하는 단계; App ID를 상기 서비스와 연관시키는 단계(associating); 상기 스케줄러에 의해, 페이로드로서 상기 App ID를 포함하는 세션 URL(Uniform Resource Locator)을 생성하는 단계로서, 상기 세션 URL은 상기 애플리케이션 서버에 의해 호스트되는 상기 서비스를 식별하는, 상기 생성하는 단계; 및 상기 세션 URL에서 상기 서비스를 클라이언트에 이용 가능하게 하는 단계를 포함한다.
다른 시스템들, 방법들, 특징들 및/또는 장점들은 이하의 상세한 설명 및 도면들의 고찰에 기하여 통상의 기술자에게 명확해지거나 또는 명확하게 될 것이다. 본 설명내에 포함된 모든 이런 추가의 시스템들, 방법들, 특징들 및 장점들은, 이하의 청구항들에 의해 보호되도록 의도된다.
도면들에서 컴포넌트들은 서로에 관하여 반드시 축척이 맞을 필요는 없다. 같은 도면 번호들은 몇몇의 도면들 전체에 걸쳐 대응하는 파트들을 지정한다.
도 1 은 원격 액세스에 서비스를 제공하기 위한 예제 환경을 예시한다;
도 2 는 클라이언트 디바이스가 도 1의 예제 환경내에 세션 URL을 이용하여 애플리케이션으로부터 접속해제 및 애플리케이션에 접속하고 그리고 자원 URL을 이용하여 요청을 수행하는 것을 예시하는 동작 흐름도를 예시한다
도 3 은 도 2의 동작 흐름도를 수행할 때 컴포넌트들간에 전송되는 일련의 메시지들을 예시하는 호출(call) 흐름도를 예시한다;
도 4 는 협업자(collaborator)들 및/또는 클라이언트들간에 협업 세션(collaboration session)을 수립하기 위해 협업 URL을 생성하기 위한 동작 흐름도를 예시한다;
도면들 5a, 5b 및 5c는 대시보드에 의해 표현된 예제 유저 인터페이스들을 예시한다; 및
도 6 은 예제 컴퓨팅 디바이스를 예시한다.
도 1 은 원격 액세스에 서비스를 제공하기 위한 예제 환경을 예시한다;
도 2 는 클라이언트 디바이스가 도 1의 예제 환경내에 세션 URL을 이용하여 애플리케이션으로부터 접속해제 및 애플리케이션에 접속하고 그리고 자원 URL을 이용하여 요청을 수행하는 것을 예시하는 동작 흐름도를 예시한다
도 3 은 도 2의 동작 흐름도를 수행할 때 컴포넌트들간에 전송되는 일련의 메시지들을 예시하는 호출(call) 흐름도를 예시한다;
도 4 는 협업자(collaborator)들 및/또는 클라이언트들간에 협업 세션(collaboration session)을 수립하기 위해 협업 URL을 생성하기 위한 동작 흐름도를 예시한다;
도면들 5a, 5b 및 5c는 대시보드에 의해 표현된 예제 유저 인터페이스들을 예시한다; 및
도 6 은 예제 컴퓨팅 디바이스를 예시한다.
다른식으로, 정의되지 않으면, 본 출원에서 사용되는 모든 기술적 및 과학적 용어들은 관련 기술 분야에서의 통상의 기술자에 의해 통상 이해되는 것과 동일한 의미를 가진다. 본 출원에서 설명된 것에 유사하거나 또는 동등한 방법들 및 재료들은 본 발명의 실행 또는 테스팅에 사용될 수 있다. 클라이언트들을 원격에서 액세스되는 애플리케이션들에 및 원격 액세스 아키텍처에 의해 제공된 서비스들에 접속하기 위한 고 확장가능한, 고장 내성(fault tolerant) 원격 액세스 아키텍처 및 방법들을 제공하기 위한 구현예들이 설명될 것이지만 구현예들은 거기에 제한되지 않는 다는 것이 당해 기술분야의 통상의 기술자들에 명확할 것이다.
소개로서 개괄적으로, 서비스들에 대한 원격 액세스를 제공하는 예제 아키텍처 (100)를 예시하는 도 1에 대한 참조가 이제 이루어진다. 도 1 에 도시된 바와 같이, 클라이언트 디바이스 (102a)/(102b)/(102c)는 개별 클라이언트 소프트웨어 개발 키트 (SDK:software development kit) (104a)/(104b)/(104c) 및 개별 클라이언트 원격 액세스 애플리케이션 (105a)/(105b)/(105c)를 실행시킬 수 있다. 클라이언트 디바이스 (102a)/(102b)/(102c)는 하나 이상의 프락시 서버들 (113a)/(113b)/(113c)에 통신 네트워크 (125)에 의해 접속되는 무선 핸드헬드 디바이스들 예컨대, 예를 들어, 아이폰, 안드로이드기반의 디바이스, 태블릿 디바이스 또는 데스크탑/노트북 퍼스널 컴퓨터일 수 있다.
클라이언트 SDK (104a)/(104b)/(104c)는 개별 클라이언트 원격 액세스 애플리케이션 (105a)/(105b)/(105c)와 관련되고 그것이 접속된 원격 액세스 및 애플리케이션 서버 (103a)/(103b)로부터 디스플레이 정보를 수신하도록 적응된다. 클라이언트 원격 액세스 애플리케이션 (105a)/(105b)/(105c)은 접속된 서비스 또는 서비스들, 예컨대 하나 이상의 애플리케이션들 (115a)/(115b)/(115c)로부터의 디스플레이 정보를 클라이언트 디바이스 (102a)/(102b)/(102c)에 유저 인터페이스에 제공하는 예를 들어, 웹 브라우저, 전용 애플리케이션, 등일 수 있다. 용어들 "애플리케이션(application)" 및 "서비스(service)"는 본 출원에서 호환하여 사용되고 클라이언트 디바이스에 네트워크를 통하여 전달되는 프로그램 또는 프로그램들의 그룹을 지칭한다. 예제 애플리케이션들은, 의료 영상 애플리케이션, CAD 애플리케이션, 지진계(seismographic) 애플리케이션, 협업(collaborative) 화이트보드 애플리케이션, 또는 다른 것들을 포함하지만, 그러나 이것에 한정되지는 않는다.
통신 네트워크 (125)는 3G, 4G 및/또는 LTE 모바일 데이터 네트워크, 무선 네트워크들 예컨대 와이파이 및 WiMax, 또는 유선 네트워크들, 등일 수 있다. 통신 네트워크 (125)를 통한 접속은 HTTP(HyperText Transfer Protocol), WSS(WebSocket Protocol), 또는 TCP/IP 네트워크내에서 지원되는 임의의 다른 프로토콜일 수 있다.
프락시 서버 (113a)/(113b)/(113c)는 비교적 큰 수의 동시 요청들 (예를 들어, 수천 내지 수백만의 동시 요청들)을 취급하는 것이 가능한 HTTP 서버 및 역 프락시 서버일 수 있다. 구현예에서, 프락시 서버 (113a)/(113b)/(113c)는 원격 액세스 및 애플리케이션 서버(들) (103a)/(103b)로부터 분리된 노드 (예를 들어, 서버 컴퓨팅 디바이스)상에서 실행하고 거기에 통신 접속 (126)에 의해 통신 가능하게 접속된다. 통신 접속 (126)은 통신 접속 (125)보다 더 높은 용량 접속일 수 있다. 프락시 서버 (113a)/(113b)/(113c)는 또한 로딩(loading), 컴퓨터 비용, 원격 액세스 및 애플리케이션 서버 (103a)/(103b)의 지리적 위치(들), 또는 다른 요인들에 따라 아키텍처 (100) 내에서 확장하기 위해 제공될 수 있다. 예제 프락시 서버 (113a)/(113b)/(113c)는 Nginx Inc., San Francisco, California로부터 이용가능한 nginx이다.
원격 액세스 및 애플리케이션 서버 (103a)/(103b)는 서비스 관리기 (111a)/(111b), 애플리케이션 서버 (114a)/(114b), 및 하나 이상의 애플리케이션들 (서비스들) (115a)/(115b)/(115c)을 포함할 수 있다. 아키텍처 (100)에서, 서비스 관리기 (111a)/(111b)는 특정 원격 액세스 및 애플리케이션 서버 (103a)/(103b)상에서 애플리케이션들 (115a)/(115b)/(115c)을 시작하고 그리고 중단하는 책임이 있다. 애플리케이션 서버 (114a)/(114b)는 접속 마셜링(connection marshalling)을 제공한다. 애플리케이션 서버 (114a)/(114b)는 클라이언트 디바이스 (102a)/(102b)/(102c)로부터 애플리케이션 (115a)/(115b)/(115c)으로 그리고 애플리케이션 (115a)/(115b)/(115c)으로부터 클라이언트 디바이스 (115a)/(115b)/(115c)로 디스플레이 정보를 제공하는 서버 SDK (116a)/(116b)를 포함할 수 있다. 원격 액세스 및 애플리케이션 서버 (103a)/(103b)의 예제는 Calgary Scientific, Inc. of Calgary, Alberta, Canada로부터 이용 가능한 PUREWEB이다.
인증 컴포넌트 (124)는 아키텍처 (100)내에 유저들 및 애플리케이션들 (115a)/(115b)/(115c)을 인증하기 위해 제공될 수 있다. 아키텍처 (100)에 의해 제공된 보안 모델에 따라, 인증 컴포넌트 (124)에 의해 액세스가 인증되고 승인될 때까지 서로 어떤 애플리케이션들 (115a)/(115b)/(115c)도 서로 신뢰할 수 없다. 인증 컴포넌트 (124)는 그것의 서비스들을 제공하기 위해 토큰기반의 인증 기법을 사용할 수 있다. 예를 들어, 제한된 URL(Uniform Resource Locator)들이 인증된후에 유저들에 매핑될 수 있다.
대시보드(dashboard) (127)는 애플리케이션 서버들의 인스턴스들을 시동하고 아키텍처 (100)내 컴포넌트들을 구성하는 능력을 시스템 관리자에게 제공한다. 대시보드에 의해 제시되는 예제 유저 인터페이스들이 도면들 5a, 5b 및 5c에 도시되고, 이들은 아키텍처 (100) (도 5a), 서비스 정보 (도 5b), 및 애플리케이션 서버 및 서비스 관리기 정보 (도 5c)내에 컴포넌트들을 시동하기 위해 유저 인터페이스들을 보여준다. 비록 도시되지는 않았지만 대시보드 (127)는 또한 클러스터 (120)의 성능에 관한 리포트들 및 메트릭(metric)들을 제시할 수 있다.
예를 들어, 스케줄러 (130)는 자원들, 예컨대 애플리케이션 서버들 (103a)/(103b) 또는 클러스터 (120)내 다른 노드들의 활용을 관리하기 위해 제공될 수 있다. 스케줄러 (130)는 원격 액세스 접속 요청에 서비스하기 위해 어느 애플리케이션 서버 (103a)/(103b)를 결정할 것인지 하나 이상의 선택 휴리스틱스(heuristics)를 구현할 수 있다. 하나의 예제 휴리스틱은 가장 작은 수의 서비스들 (즉, 가장 가벼운 부하 휴리스틱)을 운용하고 있는 애플리케이션 서버를 선택하는 것이다. 다른 예제 휴리스틱은 이용 가능한 용량을 가진 최장-운용 애플리케이션 서버 (즉, 용량을 가진 가장 오래된 휴리스틱)를 선택하는 것이다. 이 예제 휴리스틱은 더 작은 수의, 더 오래된 애플리케이션 서버들상에 더 많은 서비스들을 로딩하려는 시도로서 최근에 생성된 애플리케이션 서버들은 유휴상태(idle)가 되고 셧다운(shutdown)될 수 있다. 또 다른 예 휴리스틱은 애플리케이션들 (115a)/(115b)/(115c)의 상태기반(statefulness)가 원인이 되고 기존의 운용 애플리케이션의 상태에 따라 애플리케이션 서버 (예를 들어, 애플리케이션들 (115a)/(115b)/(115c) 중 하나)를 선택한다. 예를 들어, 애플리케이션 (115a)/(115b)/(115c)는 특정 클라이언트 (102a)/(102b)/(102c)로부터 접속을 수신하기 위해 이용 가능하도록 애플리케이션 서버에 의해 큐잉(queue)될 수 있다. 일단 접속된 후에, 특정 클라이언트 (102a)/(102b)/(102c)는 접속된 채로 있거나, 또는 동일한 애플리케이션 (115a)/(115b)/(115c)에 재접속할 것이다. 이 휴리스틱은 애플리케이션들 (115a)/(115b)/(115c)이 사실상 그래픽인 환경들에서 사용될 수 있다. 상기의 것에 따라, 스케줄러 (130)는 특정 애플리케이션 서버 (예를 들어, (114a))에 의해 호스트되는 서비스 (예를 들어, (115a))에 클라이언트 디바이스 (102a)/(102b)/(102c)의 유저를 보내기 위해 실시간으로 관련된 페이로드 (예를 들어, 애플리케이션 / 서비스를 고유하게 식별하는 App ID) 및 세션 URL들을 생성할 수 있다. 이 특징의 세부사항들은 도 3을 참고로 하여 아래에 제공된다.
오케스트레이터(orchestrator) (131)는 부하, 하드웨어 용량 (예를 들어, CPU, GPU, 메모리), 네트워킹 요건들, 비용, 지리적 위치, 또는 다른 메트릭들에 따라 원격 액세스 및 애플리케이션 서버들 (103a)/(103b)을 시작하고 중지할 수 있다. 스케줄러 (130)는 기업, 클라우드 서비스들 제공자, 예를 들어, 아마존(Amazon) 웹 서비스들, 또는 다른 엔티티와 관련된 방화벽 (134) 뒤에 클러스터 (120)로서 애플리케이션 서버들 (103a)/(103b)을 배치할 수 있다. 클러스터링(clustering)은 복수의 원격 액세스 및 애플리케이션 서버들 (103a)/(103b)이 높은 이용 가능성, 부하 분산 및/또는 병렬 프로세싱을 제공하는 것을 가능하게 한다. 일부 구현예들에서, 애플리케이션 서버들 (103a)/(103b)은 오케스트레이터 (131)로부터 수신된 시작 명령어에 응답하여 이미지들로 생성된 클라우드기반의 인스턴스들일 수 있다. 예를 들어, 클라우드 환경내 인스턴스로서 인스턴스화(instantiate)된 때 예를 들어, 이미지가 애플리케이션 서버상에 로딩될 수 있도록 각각의 애플리케이션 (115) (또는 애플리케이션들)과 관련하여 미리-만들어진(pre-built) 이미지일 수 있다.
오케스트레이터 (131)는 수동으로 또는 자동으로 동작할 수 있다. 수동으로 동작된 때, 유저는 오케스트레이터 (131)에 명령어 라인 인터페이스들 (예를 들어, 개발자와 관련된 클라이언트 컴퓨팅 디바이스상에)을 이용하여 원격에서 접속하고 이용 애플리케이션 서버들을 턴 온 또는 턴 오프한다. 자동으로 동작된 때, 오케스트레이터 (131)는 클러스터 (120)내 현재 자원 할당에 대하여 스케줄러 (130)로부터 정보를 수신할 수 있다. 만약 클러스터 (120)내 또는 특정애플리케이션 서버 (103a) 또는 (103b)상에서 자원 활용도가 높으면, 그러면 오케스트레이터 (131)는 수요를 충족시키기 위해서 새로운 애플리케이션 서버 인스턴스 또는 인스턴스들을 자동으로 시작할 수 있다. 유사하게, 만약 클러스터 (120)내 또는 특정애플리케이션 서버 (103a) 또는 (103b)상에서 자원 활용도가 낮으면, 그러면 오케스트레이터 (131)는 현존하는 애플리케이션 서버 인스턴스를 자동으로 중지할 수 있다.
더구나, 오케스트레이터 (131)는 클러스터 (120)내 원격 액세스 및 애플리케이션 서버들 (103a)/(103b)에 대한 접속들을 다루기 위해서 추가 프락시 서버들 (113a)/(113b)/(113c) (자원들이 허용되는 추가 노드들 또는 동일 노드상에)을 배치할 수 있다. 대안적으로, 추가 원격 액세스 및 애플리케이션 서버들 (103a)/(103b)은 다른 원격 액세스 및 애플리케이션 서버들 (103a)/(103b)과 동일한 노드들 또는 추가 노드들상에 배치될 수 있다.
서비스 탐지 및 구성 컴포넌트 (132)는 클러스터 (120)내 탐지 서비스들을 제공할 수 있다. 서비스 탐지 및 구성 컴포넌트 (132)는 애플리케이션 (115a)/(115b)/(115c)이 필요로 할 수 있는 어떤 자원들 결정하고, 애플리케이션들 (115a)/(115b)/(115c)이 원격 클라이언트들 (102a)/(102b)/(102c)에 액세스 가능하게 되도록 적응된다. 예를 들어, 서비스 탐지 및 구성 컴포넌트 (132)는 프락시 서버들 (113a)/(113b)/(113c)로부터 애플리케이션 (115a)/(115b)/(115c)로 요청들을 라우팅하기 위해 DNS(Domain Name Service)들을 제공할 수 있다. 서비스 탐지 및 구성 컴포넌트 (132)의 예제는 HashiCorp로부터 이용 가능한 Consul이다.
API 에지(Edge) (128)는 클러스터 (120)내 컴포넌트들, 예컨대 스케줄러 (130) 및 서비스 탐지 및 구성 컴포넌트 (132)로버터 정보를 획득하거나 또는 그것들에 정보를 제공하기 위해 대시보드 (127) 및 다른 외부 컴포넌트들과 인터페이스하도록 제공될 수 있다.
일부 구현예들에서, 클러스터 (120), 프락시 서버들 (113a)/(113b)/(113c), 인증 컴포넌트 (124) 또는 대시보드 (127) 중 하나 이상의 컴포넌트들은 클라우드 인프라스트럭처, 예컨대, 한정되는 것은 아니지만, 아마존 웹 서비스들 (AWS : Amazon Web Service)내에 배치될 수 있다. 클라이언트 디바이스 (102a)/(102b)/(102c) 및 원격 액세스 및 애플리케이션 서버 (103a)/(103b)의 예제가 도 6 에 도시된다. 더 나아가, 아키텍처 (100)내 하나 이상의 컴포넌트들은 아키텍처 (100)의 확장성 및 고장 저항력(tolerance)을 증강시키기 위해 마이크로 서비스로서 배치될 수 있다. 따라서, 아키텍처 (100)는 많은 수의 클라이언트들이 네트워크상의 애플리케이션들을 원격에서 액세스할 수 있는 고 확장가능한(scalable), 고장 저항력이 있는(fault tolerant) 아키텍처를 제공한다.
도면들 2 및 3를 참고로 하여, 아키텍처 (100)내 컴포넌트들간에 발송되는 메시지들의 시퀀스 및 예제 플로우를 예시하는 동작 플로우 차트 및 호출 플로우가 예시된다. 참고로
도 2를 참고로 하여, (202)에서, 핸드쉐이크 동작(handshake operation)이 클라이언트와 프락시 서버간에 수행된다. 핸드쉐이크 동작은 예를 들어, 프락시 서버 (113a)로부터 클라이언트 원격 액세스 애플리케이션 (105a)으로서 클라이언트 (102a)의 브라우저로 실행되는 클라이언트 (102a)에 자바스크립트(JavaScript) 파일들을 다운로드 하는 것을 수반할 수 있다. 도 3 에 도시된 바와 같이, (202)에서 수행된 동작과 관련된 호출 흐름도는 플로우들 1 및 2에 의해 전체적으로 도시된다. 클라이언트 SDK (104a)/(104b)/(104c)는 프락시 서버 (113a)/(113b)/(113c)에 접속되고 예를 들어 HTTP GET 방법을 이용하여 애플리케이션 (115a)/(115b)/(115c)과 관련된 자원 URL 및 파라미터들을 수신한다. 파라미터들은 애플리케이션 이름, 및 클라이언트 식별자 (플로우 1)를 포함할 수 있다. 프락시 서버 (113a)/(113b)/(113c)는 예를 들어, 클라이언트 원격 액세스 애플리케이션 (105a)/(105b)/(105c)로 실행시키는 JavaScript를 클라이언트 SDK (104a)/(104b)/(104c)에 리턴한다 (플로우 2).
(204)에서, 서비스가 스케줄된다. 예를 들어, 플로우 1에서 전달된 애플리케이션 이름을 이용하여, 스케줄러 (130)는 자원 URL과 관련된 클라이언트 요청을 실현하기 위해 서비스 관리기 (111a)가 애플리케이션 (115a)을 시작할 것을 요청할 수 있다. (204)에서 수행된 동작과 관련된 호출 플로우는 도 3에서 플로우들 3 및 4에 의해 전체적으로 도시된다. 클라이언트 SDK (104a)/(104b)/(104c)는 사용될 애플리케이션 (115a)/(115b)/(115c)과 관련된 애플리케이션 서버 (114a)/(114b)의 스케줄러 (130)로부터 클러스터 어드레스를 획득한다 (플로우 3). 스케줄러 (130)는 클라이언트 SDK (104a)/(104b)/(104c)에 클러스터 어드레스를 리턴한다 (플로우 4).
(206)에서, 자원 URL에 종속된 애플리케이션이 시작된다. 스케줄러 (130)는 애플리케이션 서버 (114a)상에 자원 활용도를 체크하고 부하, 등에 의존하여, 애플리케이션 (115a)을 시작하기 위해 서비스 관리기 (111a)에 컨택한다. (206)에서 수행된 동작과 관련된 호출 플로우는 도 3에서 플로우들 5 내지 14에 의해 전체적으로 도시된다. 클라이언트 SDK (104a)/(104b)/(104c)는 자원 URL (예를 들어, 플로우 5에 /원격/앱)에 위치된 프락시 서버 (113a)/(113b)/(113c)에 접속된다. 예를 들어, 클라이언트 SDK (104a)/(104b)/(104c)는 프락시 서버 (113a)/(113b)/(113c)에 접속할 수 있고 예를 들어, 유저 또는 클라이언트 디바이스 (102a)/(102b)/(102c)에 대한 인증 정보를 포함하는 페이로드와 함께 HTTP POST 방법을 이용하여 요청을 발송할 수 있다.
인증 정보는 유저 또는 클라이언트 디바이스 (102a)/(102b)/(102c)가 애플리케이션 (115a)/(115b)/(115c)에 액세스하는 것이 허가된지(또는 허가된 채로 있는지)를 결정하기 위해 인증 컴포넌트 (124)에 제공된다 (플로우 6). 만약 인증이 통과되면, 그러면 인증 컴포넌트 (124)는 스케줄러 (130)에 요청을 만들고 (플로우 7), 스케줄러는 그런다음 애플리케이션 (115a)/(115b)/(115c)이 실행되는 애플리케이션 서버 (103a)/(103b) 및 원격 액세스에서의 부하를 결정하기 위해 애플리케이션들 서버 (114a)/(114b)에 컨택한다 (플로우 8). 원격 액세스 및 애플리케이션 서버 (103a)/(103b)의 서비스 관리기 (111a)/(111b)가 결정을 하고 (플로우 9), 만약 부하가 임계량을 넘거나 또는 애플리케이션 (115a)/(115b)/(115c)이 운용되지 않으면, 그러면 스케줄러 (130)는 애플리케이션 (115a)/(115b)/(115c)를 시작하기 위해 (플로우 11) 서비스 관리기 (111a)/(111b)에 시작 메시지(Start message)를 발송한다(플로우 10). 예를 들어, 서비스 관리기 (111a)는 App ID를 이용하여 애플리케이션 (115a)에 접속하고 시작한다. 서비스 관리기 (111a)는 애플리케이션 (115a)과 관련된 "세션(session)"을 수립하고, 그런다음 클라이언트 디바이스가 원격에서 접속할 수 있는 "큐잉된 서비스(queued service)"로 간주된다. 큐잉된 서비스는 고유 애플리케이션 이름 및/또는 큐잉된 서비스 접속에 고유한 App ID에 의해 알려질 수 있다(원격에서 액세스 가능한 애플리케이션의 단일 유형에 대하여).
다음으로, 애플리케이션 (115a)/(115b)/(115c)는 상기에서 설명된 시동 프로세스(start-up process)를 시작하고, 예를 들어, TCP 접속 메시지 (Connect message)를 이용하여 애플리케이션 서버 (114a)/(114b)에 접속한다(플로우 12). 애플리케이션 (115a)/(115b)/(115c)는 식별 정보 (예를 들어, App ID, 애플리케이션 이름, 및 서버 인스턴스 식별자, 서비스 관리기 식별자)를 제공하고, 이는 스케줄러 (130)에 전달된다 (플로우 13). 스케줄러 (130)는 그런 다음 클라이언트 SDK (104a)/(104b)/(104c)에 식별 정보를 전송한다 (플로우 14).
도 2로 돌아가서, (208)에서, 애플리케이션 서버에서 서비스를 이용 가능하게 하기 위해 세션 URL이 생성된다. 인증 컴포넌트 (124)가 세션을 생성하고 애플리케이션 서버 (114a)는 세션 URL을 클라이언트 SDK (104)에 리턴한다. (208)에서 수행된 동작과 관련된 호출 플로우들은 도 3에 플로우들 15 내지 18에 의해 전체적으로 도시된다. 상기-언급된 파라미터들을 이용하여, 클라이언트 SDK (104a)/(104b)/(104c)는 예를 들어, 프락시 서버 (113a)/(113b)/(113c)에 요청을 하기 위해 파라미터들과 함께 HTTP POST 방법을 사용할 수 있고 (플로우 15), 프락시 서버는 클라이언트 디바이스 (102a)/(102b)/(102c)가 파라미터들에 의해 식별된 애플리케이션 (115a)/(115b)/(115c)에 액세스가 허가된 것인지를 다시 결정하기 위해 인증 컴포넌트 (124)에 요청을 전달한다 (플로우 16). 만약 인증되면, 인증 컴포넌트 (124)는 애플리케이션 서버 (114a)/(114b)에 세션생성 메시지(CreateSession message)를 발송한다 (플로우 17). 애플리케이션 서버 (114a)/(114b)는 클라이언트 SDK (104a)/(104b)/(104c)에 세션 쿠키와 함께 애플리케이션 (115a)/(115b)/(115c)의 위치를 리턴한다 (플로우 18). 따라서, 세션이 생성되고 클라이언트 SDK는 서비스에 가입할 준비가 된다.
(210)에서, 클라이언트는 애플리케이션과 상호 작용한다. (210)에서 수행된 동작과 관련된 호출 플로우들은 도 3에 플로우들 19 내지 22에 의해 전체적으로 도시된다. 클라이언트 디바이스 (102a)는 App ID를 이용하여 큐잉된 서비스의 특정 인스턴스 (즉, 애플리케이션 (115a))에 접속할 수 있다. 클라이언트 SDK (104a)가 세션 URL를 이용하여 애플리케이션 (115a)에 접속하고, 세션 URL은 클라이언트 (102a)의 인증을 위해 사용되는 페이로드를 포함한다. 일단 클라이언트 (102a)가 접속된 후에, 애플리케이션 (115a)은 "활성 서비스(active service)"로 업그레이드된다. 추가의 클라이언트들이 고유 App ID를 이용함으로써 활성 서비스들에 접속할 수 있고 이에 의해 접속된 클라이언트들은 활성 서비스와 함께 협업할 수 있고, 이의 세부사항들이 아래에 이어진다. 특별히, 클라이언트 디바이스 (예를 들어, (102a))는 협업 세션(collaboration session)에서 다른 클라이언트 디바이스들 (예를 들어, (102b) 및/또는 (102c))와 협업할 수 있다. 예를 들어, 협업자들 (122a)/(122b)/(122c)은 예를 들어, 애플리케이션 (115a)/(115b)/(115c)을 공유하기 위해 제휴 세션에서 클라이언트 디바이스 (102a)/(102b)/(102c)와 함께 작업할 수 있다. 협업자들 (122a)/(122b)/(122c) 및 클라이언트 디바이스 (102a)/(102b)/(102c)은 예를 들어, 공유된 애플리케이션 상태 및 전달한 메시지를 이용하여 자원 예컨대 애플리케이션 (115a) 또는 데이터를 공유할 수 있다. 협업의 추가의 세부사항들이 도 4를 참고로 하여 설명된다.
(210)에서 수행된 동작과 관련된 호출 플로우들이 도 3에 플로우들 19 내지 22에 의해 전체적으로 도시된다. 세션 URL내 위치 정보 및 파라미터들을 이용하여, 클라이언트 SDK (104a)/(104b)/(104c)는 예를 들어, HTTP POST 방법으로, 프락시 서버 (113a)/(113b)/(113c)에 요청을 발송하고(플로우 19), 이는 다시 인증 컴포넌트 (124)에 전달된다 (플로우 20). 만약 인증되면, 인증 컴포넌트 (124)는 애플리케이션 (115a)/(115b)/(115c)을 원격 액세스 세션에 클라이언트 디바이스 (102a)/(102b)/(102c)에 통신 가능하게 접속하기 위해 클라이언트가입 메시지(AttachClient message)를 애플리케이션 서버 (114a)/(114b)에 전송한다 (플로우 21). 애플리케이션 (115a)/(115b)/(115c)은 이제 도 1 에 도시된 바와 같이 프락시 서버 (113a)/(113b)/(113c)를 통하여 애플리케이션 서버 (114a)/(114b)와 클라이언트 디바이스 (102a)/(102b)/(102c) 사이에 형성된 예를 들어, 웹 소켓 접속 (플로우 22)에 의해 클라이언트 SDK (104a)/(104b)/(104c)에 통신 가능하게 접속된다. 이와 같이, 원격 세션과 관련된 이미지 데이터, 애플리케이션 상태 정보, 또는 다른 데이터가 애플리케이션 (115a)/(115b)/(115c)과 클라이언트 디바이스 (102a)/(102b)/(102c) 간에 송신될 수 있다.
애플리케이션 상태 정보는 상태 모델에 원격 세션 동안에 통신될 수 있고 그리고 원격에서-액세스되는 애플리케이션 (115a)/(115b)/(115c)에 관한 정보 및/또는 협업 세션에 참가할 수 있는 클라이언트 디바이스들 (102a)/(102b)/(102c) 또는 클라이언트 디바이스 (102a)/(102b)/(102c)에 관한 세션 정보이다. 특별히, 상태 모델(state model)은 애플리케이션 상태에 대한 변화들이 수용될 수 있고 하나 초과의 클라이언트 디바이스 (102a)/(102b)/(102c)가 협업 세션에 있다면 애플리케이션 서버 (114a)/(114b)와 클라이언트 디바이스 (102a)/(102b)/(102c)간에, 또는 클라이언트 디바이스들 (102a)/(102b)/(102c)간에 통신될 수 있다. 상태 모델은 예를 들어, 확장 마크업 언어 (XML : Extension Markup Language) 문서에 의해 표현될 수 있다. 상태 모델의 다른 표현들이 사용될 수 있다는 것이 이해되어야 한다.
도 2에, (212)에서, 클라이언트가 애플리케이션으로부터 접속해제된다. 클라이언트 SDK (104a)는 애플리케이션 서버 (114a)에 중단 메시지를 발송하고, 이는 서비스 관리기 (111a)로부터 접속해제하고 클라이언트 (102a)와 애플리케이션 (115a) 간에 접속을 마감한다. (212)에서 수행된 동작과 관련된 호출 플로우들은 도 3에 플로우들 23 내지 28에 전체적으로 도시된다. 클라이언트 디바이스 (102a)/(102b)/(102c)에 유저가 원격 세션을 끝내고 애플리케이션 (115a)/(115b)/(115c)로부터 접속해제하는 것을 원할 때, 요청은 예를 들어, 웹 소켓 마감(close) 또는 HTTP DELETE 방법을 이용하여 이루어지고, 요청은 프락시 서버 (113a)/(113b)/(113c)로 전송되고 (플로우 23), 프락시 서버는 인증 요청으로서의 요청을 인증 컴포넌트 (124)에 전달한다 (플로우 24). 일단 인증된 후에, 중단 메시지(Stop message)가 애플리케이션 서버 (114a)/(114b)에 전송되고 (플로우 25) 그런다음 TCP 접속해제(Disconnect) (플로우 26) 및 TCP 마감(Close) (플로우 27) 메시지를 애플리케이션 (115a)/(115b)/(115c)에 전송한다. 애플리케이션 서버 (114a)/(114b)는 그런다음 애플리케이션 (115a)/(115b)/(115c)과의 세션을 끝내는 접속해제 메시지(Disconnect message)를 클라이언트 SDK (104a)/(104b)/(104c)에 발송한다. 애플리케이션 서버 (114a)/(114b)는 그런다음 애플리케이션 (115a)/(115b)/(115c)과의 세션을 끝내는 접속해제 메시지(Disconnect message)를 클라이언트 SDK (104a)/(104b)/(104c)에 발송한다(플로우 28).
상기의 동작 및 호출 흐름도는 아키텍처 (100)내 원격 애플리케이션 (115a)/(115b)/(115c)으로부터 클라이언트 디바이스 (102a)/(102b)/(102c)를 접속 및 접속해제하기 위한 예제 플로우들을 제공하지만, 다른 변형들 및 호출 플로우들이 관련 기술 분야에서의 통상의 기술자에 명백할 것이다.
도 4 는 본 발명의 아키텍처 (100)내 협업 세선을 개시하기 위한 예제 동작 플로우 (400)를 예시한다. (402)에서, 클라이언트가 클라이언트 SDK로부터 협업 URL을 요청한다. 예를 들어, 클라이언트 (102a)에 유저가 다른 협업자들 (122a)/(122b)/(122c) 또는 클라이언트들 (102b)/(102c)이 협업 세션에 접속하는 것을 가능하게 하기 위해 클라이언트 SDK (104a)로부터 협업 URL을 요청할 수 있고 이에 의해 각각은 예를 들어, 애플리케이션 (115a)과 협력하여 상호 작용할 수 있다. (404)에서, 공유된 애플리케이션이 실행되고 있는 애플리케이션 서버를 식별하는 협업 URL이 구성된다. 예를 들어, 프락시 서버 (113a) 뒤에 있는 애플리케이션 서버 (114a)를 고유하게 식별하는 그런 방법으로 인증 서비스 (124)에서 협업 URL이 구성될 수 있다.
(406)에서, 협업 URL이 요청 클라이언트에 리턴된다. (408)에서, 요청 클라이언트 (예를 들어, (102a))에 유저는 협업자들 (122a)/(122b)/(122c) 또는 클라이언트들 (102b)/(102c) 중 하나 이상에 협업 URL을 포워딩할 수 있다. (410)에서, 협업자들 또는 다른 클라이언트들은 협업 URL를 이용하여 협업 세션에 접속한다. (412)에서, 서비스 탐지 구성 컴포넌트는 협업 URL를 애플리케이션 서버 (114a)에 리졸브(resolve)한다. 서비스 탐지 및 구성 컴포넌트 (132)는 위치 서비스들을 수행하기 위해 DNS를 사용할 수 있다. (414)에서, 협업자들은 그들 각각이 애플리케이션 (115a)과 상호 작용하도록 협업 세션에 참여할 수 있다.
따라서, 동작 플로우 (400)는 다수의 유저들이 아키텍처 (100)내에서 실행하는 애플리케이션으로 협력하여 상호 작용하는 것을 허용하기 위한 방법을 제공한다.
도 6 은 대표적 실시예들 및 측면들이 구현될 수 있는 대표적인 컴퓨팅 환경을 도시한다. 컴퓨팅 시스템 환경은 적절한 컴퓨팅 환경의 단지 일 예이고 사용 또는 기능의 범위에 대한 임의의 제한을 암시하는 것으로 의도되지 않는다.
많은 다른 범용 또는 특별 용도 컴퓨팅 시스템 환경들 또는 구성들이 사용될 수 있다. 사용에 적절할 수 있는 주지의 컴퓨팅 시스템들, 환경들, 및/또는 구성들의 예들을 퍼스널 컴퓨터들, 서버들, 핸드헬드 또는 랩탑 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서기반의 시스템들, 네트워크 퍼스널 컴퓨터들 (PC들), 미니컴퓨터들, 메인 프레임 컴퓨터들, 내장된 시스템들, 임의의 상기 시스템들 또는 디바이스들을 포함하는 분산 컴퓨팅 환경들, 및 유사한 것을 포함하지만 그러나 이것에 한정되지는 않는다.
컴퓨터에 의해 실행되는 컴퓨터-실행 가능한 명령들, 예컨대 프로그램 모듈들이 사용될 수 있다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 수행하거나 또는 특정 추상적인 데이터 유형들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 태스크들이 통신 네트워크 또는 다른 데이터 송신 매체를 통하여 링크되는 원격 프로세싱 디바이스들에 의해 수행되는 분산 컴퓨팅 환경들이 사용될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들 및 다른 데이터는 메모리 스토리지 디바이스들을 포함한 로컬 및 원격 컴퓨터 스토리지 매체에 위치될 수 있다.
도 6를 참고로 하여, 본 출원에서 설명된 측면들을 구현하기 위한 대표적인 시스템은 컴퓨팅 디바이스, 예컨대 컴퓨팅 디바이스 (600)를 포함한다. 그것의 가장 기본적인 구성에서, 컴퓨팅 디바이스 (600)는 전형적으로 적어도 하나의 프로세싱 유닛 (602) 및 메모리 (604)를 포함한다. 컴퓨팅 디바이스의 정확한 구성 및 유형에 의존하여, 메모리(604)는 휘발성 (예컨대 랜덤 액세스 메모리 (RAM)), 비-휘발성 (예컨대 판독 전용 메모리 (ROM), 플래시 메모리, 등) 또는 두개의 일부 조합일 수 있다. 이 가장 기본적인 구성이 파선 (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들, 하드 드라이브들, 또는 임의의 다른 기계-판독가능한 스토리지 매체에 구체화된 프로그램 코드 (즉, 명령들)의 형태를 취할 수 있고 프로그램 코드가 기계, 예컨대 컴퓨터로 로딩되어 그것에 의해 실행될 때, 기계는 현재 개시된 내용을 실행하기 위한 장치가 된다. 프로그램 가능한 컴퓨터들상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 디바이스는 일반적으로 프로세서, 프로세서에 의해 판독가능한 스토리지 매체 (휘발성 및 비 휘발성 메모리 및/또는 스토리지 엘리먼트들을 포함), 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함한다. 하나 이상의 프로그램들은 예를 들어, 애플리케이션 프로그래밍 인터페이스 (API), 재사용 가능한 제어들, 또는 유사한 것의 사용을 통하여 현재 개시된 내용과 관련하여 설명된 프로세스들을 구현할 수 있거나 또는 사용할 수 있다. 이런 프로그램들은 컴퓨터 시스템과 통신하기 위해 하이 레벨 절차적 또는 객체-지향 프로그래밍 언어로 구현될 수 있다. 그러나, 프로그램(들)은 원한다면 어셈블리 또는 기계 언어로 구현될 수 있다. 임의의 경우에, 언어는 컴파일된 또는 기계 번역 언어일 수 있고 그것은 하드웨어 구현예들과 결합될 수 있다.
비록 내용은 구조상의 특징부들 및/또는 방법론적인 동작들에 특정 언어로 설명되었지만, 그것은 첨부된 청구항들에 정의된 내용은 상기에서 설명된 특정 특징부들 또는 동작들에 반드시 제한되지 않는다는 것이 이해될 것이다. 오히려, 예로서 개시된 상기에서 설명된 특정 특징부들 및 동작들은 청구항들 구현을 형성한다.
Claims (23)
- 클라이언트-서버 원격 액세스 시스템에 서비스를 원격 액세스에 제공하기 위한 방법에 있어서,
스케줄러에 의해, 상기 서비스를 호스트하는 애플리케이션 서버를 선택하는 단계로서, 상기 선택은 상기 클라이언트-서버 원격 액세스 시스템내 자원들의 활용도(utilization)에 따라 수행되는, 상기 선택하는 단계; 및
상기 서비스를 고유하게 식별하는 URL(Uniform resource locator) 페이로드를 포함하는 세션 URL을 생성하고 클라이언트에 의해 상기 서비스에 상기 원격 액세스를 수립하기 위해 사용되는 단계를 포함하는, 방법. - 청구항 1에 있어서, 상기 애플리케이션 서버의 선택 전에 상기 서비스에 접속을 요청하기 위해 상기 클라이언트에 제공되는 자원 URL을 생성하는 단계를 더 포함하는, 방법.
- 청구항 1 내지 2 중 어느 한 항에 있어서, 상기 서비스를 액세스하기 위해 상기 자원 URL과 관련된 프락시 서버에서 요청(request)을 수신하는 단계를 더 포함하는, 방법.
- 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 서비스를 고유하게 식별하는 URL 페이로드는 App ID인, 방법.
- 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 클라이언트와 상기 서비스간에 그리고 상기 클라이언트-서버 원격 액세스 시스템내 서비스들간에 신뢰(trust)를 수립하는 인증 컴포넌트를 제공하는 단계를 더 포함하는, 방법.
- 청구항 5에 있어서,
상기 인증 컴포넌트에 의해 협업(collaboration) URL를 상기 클라이언트에 제공하는 단계;
상기 협업 URL를 이용하여 제 2 클라이언트로부터 상기 프락시 서버에서 제 2 요청을 수신하는 단계; 및
상기 제 2 클라이언트가 상기 세션에 참여하는 단계를 더 포함하는, 방법. - 청구항 6에 있어서, 상기 협업 URL은 상기 선택된 애플리케이션 서버를 식별하고 상기 제 2 클라이언트를 인증하는, 방법.
- 청구항 5 내지 7 중 어느 한 항에 있어서, 상기 세션 URL은 상기 클라이언트와 관련된 유저에 매핑되는, 방법.
- 청구항 1 내지 8 중 어느 한 항에 있어서, 상기 스케줄러를 이용하여 상기 클라이언트-서버 원격 액세스 시스템내 자원 활용도를 관리하는 단계를 더 포함하는, 방법.
- 청구항 9에 있어서, 상기 스케줄러는 상기 애플리케이션 서버가 가장 작은 수의 서비스들을 운용하고 있는 것에 기초하여 상기 애플리케이션 서버를 선택하는, 방법.
- 청구항 9 내지 10 중 어느 한 항에 있어서, 상기 스케줄러는 상기 애플리케이션 서버가 이용 가능한 용량을 갖는 최장-운용(longest-running)되고 있는 것에 기초하여 상기 애플리케이션 서버를 선택하는, 방법.
- 청구항 9 내지 11 중 어느 한 항에 있어서, 상기 스케줄러는 상기 애플리케이션 서버상에서의 기존 운용 서비스의 상태에 기초하여 상기 애플리케이션 서버를 선택하는, 방법.
- 청구항 9 내지 12 중 어느 한 항에 있어서, 상기 스케줄러는 상기 서비스를 호스트하는 상기 애플리케이션 서버에 상기 클라이언트를 실시간으로 보내는 상기 세션 URL을 생성하는, 방법.
- 청구항 9 내지 13 중 어느 한 항에 있어서, 부하(load), 하드웨어 용량 (예를 들어, CPU, GPU, 메모리), 네트워킹 요건들, 비용, 또는 지리적 위치 중 하나에 따라 상기 클라이언트-서버 원격 액세스 시스템내 애플리케이션 서버들을 시작하고 중단하는 오케스트레이터(orchestrator)를 제공하는 단계를 더 포함하는, 방법.
- 청구항 14에 있어서, 온 디멘드(on demand)에 기초하여 상기 애플리케이션 서버를 자동으로 시작하거나 또는 중단하기 위해 현재 자원 할당에 대하여 수신한 정보를 상기 스케줄러로부터 상기 오케스트레이터에 제공하는 단계를 더 포함하는, 방법.
- 서비스에 액세스를 제공하기 위한 클라이언트-서버 원격 액세스 시스템에 있어서,
자원 URL(Uniform Resource Locator)에서 액세스 가능한 프락시 서버로서, 상기 프락시 서버는 상기 서비스에 접속하기 위해 클라이언트로부터 요청(request)을 수신하는, 상기 프락시 서버;
상기 자원 URL의 페이로드(payload)에 따라 상기 요청을 인증하는 인증 컴포넌트;
상기 클라이언트-서버 원격 액세스 시스템에서의 자원들의 활용도에 따라 상기 서비스를 호스트하는 애플리케이션 서버를 선택하는 스케줄러(scheduler)로서, 상기 애플리케이션 서버는 상기 클라이언트와 상기 서비스간에 세션을 수립하게 위해 사용되는 상기 페이로드를 포함하는 세션 URL를 생성하는, 상기 스케줄러; 및
애플리케이션 데이터 및 상기 클라이언트와 상기 서비스 간에 상태 정보를 전송하기 위해 인증된 상기 요청에 따라 상기 세션 URL에 접속된 상기 서비스와 상기 클라이언트간에 세션을 수립하는 서비스 관리기를 포함하는, 클라이언트-서버 원격 액세스 시스템. - 청구항 16에 있어서, 협업 URL이 상기 인증 컴포넌트에 의해 상기 클라이언트에 제공되고, 제 2 요청이 상기 협업 URL를 이용하여 제 2 클라이언트로부터 상기 프락시 서버에서 수신되고, 상기 제 2 클라이언트가 상기 세션에 참여하는, 클라이언트-서버 원격 액세스 시스템.
- 청구항 17에 있어서, 상기 협업 URL은 상기 애플리케이션 서버를 식별하고 상기 제 2 클라이언트를 인증하는, 클라이언트-서버 원격 액세스 시스템.
- 청구항 16 내지 18 중 어느 한 항에 있어서, 상기 클라이언트-서버 원격 액세스 시스템내 자원 활용도는 상기 스케줄러를 이용하여 관리되고, 상기 스케줄러는 상기 애플리케이션 서버가 가장 작은 수의 서비스들을 운용하는 것에 기초하여 상기 애플리케이션 서버를 선택하거나, 또는 상기 애플리케이션 서버가 이용 가능한 용량을 갖는 최장-운용 되고 있는 것에 기초하여 상기 애플리케이션 서버를 선택하거나, 또는 상기 애플리케이션 서버상에서의 기존 운용 서비스의 상태에 기초하여 상기 애플리케이션 서버를 선택하는, 클라이언트-서버 원격 액세스 시스템.
- 청구항 16 내지 19 중 어느 한 항에 있어서,
상기 인증 컴포넌트에 의해 협업 URL을 상기 클라이언트에 제공하고, 상기 협업 URL은 상기 애플리케이션 서버를 식별하기 위한 페이로드 파라미터를 함유하고;
상기 협업 URL를 이용하여 제 2 클라이언트로부터 상기 프락시 서버에서 제 2 요청을 수신하고; 및
상기 제 2 클라이언트가 상기 세션에 참여하는 것을 더 포함하는, 클라이언트-서버 원격 액세스 시스템. - 청구항 20에 있어서, 상기 협업 URL은 상기 제 2 클라이언트를 인증하는, 클라이언트-서버 원격 액세스 시스템.
- 청구항 16 내지 21 중 어느 한 항에 있어서, 상기 스케줄러는 : 가장 작은 수의 서비스들을 운용하는 상기 애플리케이션 서버를 선택하거나, 상기 애플리케이션 서버가 이용 가능한 용량을 갖는 최장-운용 애플리케이션 서버인 것에 기초하여 상기 애플리케이션 서버를 선택하거나, 또는 상기 애플리케이션 서버상에서의 기존 운용 서비스의 상태에 기초하여 상기 애플리케이션 서버를 선택하는 기준 중 하나에 기초하여 상기 애플리케이션 서버를 선택하는, 클라이언트-서버 원격 액세스 시스템.
- 청구항 16 내지 23 중 어느 한 항에 있어서, 상기 애플리케이션 서버는 상기 서비스가 상기 클라이언트에 이용 가능하게 된 때에 실시간으로 상기 세션 URL을 생성하는, 클라이언트-서버 원격 액세스 시스템.
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 |
---|---|
KR20170110612A true KR20170110612A (ko) | 2017-10-11 |
Family
ID=56542533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177021565A KR20170110612A (ko) | 2015-01-30 | 2016-01-29 | 고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11310348B2 (ko) |
EP (1) | EP3251286B1 (ko) |
JP (1) | JP2018512084A (ko) |
KR (1) | KR20170110612A (ko) |
CN (1) | CN107431630B (ko) |
AU (1) | AU2016210974A1 (ko) |
CA (1) | CA2974204A1 (ko) |
WO (1) | WO2016120730A1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
WO2017205222A1 (en) * | 2016-05-23 | 2017-11-30 | William Turner | Hyperconverged system including a core layer, a user interface, and a services layer equipped with a container-based user space |
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 |
CN111831425A (zh) * | 2019-04-18 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及设备 |
US11425176B2 (en) * | 2020-10-13 | 2022-08-23 | Zoom Video Communications, Inc. | Transmitting conference application content during 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 |
US11363079B2 (en) | 2020-10-13 | 2022-06-14 | Zoom Video Communications, Inc. | For recording conference application activity associated with 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 |
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 |
US6587836B1 (en) * | 1997-09-26 | 2003-07-01 | Worldcom, Inc. | Authentication and entitlement for users of web based data management programs |
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 |
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 |
WO2001067245A2 (en) | 2000-03-08 | 2001-09-13 | 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 |
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 |
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 |
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 |
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 |
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 | キヤノン株式会社 | 双眼振れ補正装置および双眼光学機器 |
WO2002079896A2 (en) | 2001-03-30 | 2002-10-10 | 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 |
US7802183B1 (en) | 2001-05-17 | 2010-09-21 | Essin Daniel J | Electronic record management system |
US7882497B2 (en) | 2001-05-17 | 2011-02-01 | Attachmate Corporation | Symbiotic computer application and system and method for generation and presentation of same |
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 |
WO2003019394A1 (en) | 2001-08-24 | 2003-03-06 | Intel Corporation | A general input/output architecture, protocol and related methods to support legacy interrupts |
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 |
CN100461158C (zh) | 2001-11-09 | 2009-02-11 | 无锡永中科技有限公司 | 一种使用应用程序处理数据的方法 |
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 |
TWI220713B (en) | 2002-10-04 | 2004-09-01 | Hon Hai Prec Ind Co Ltd | System and method for synchronizing documents between multi-nodes |
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 |
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 |
US7801964B2 (en) | 2003-02-14 | 2010-09-21 | 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 |
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 |
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 |
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 |
US8218442B2 (en) | 2008-09-11 | 2012-07-10 | Juniper Networks, Inc. | Methods and apparatus for flow-controllable multi-staged queues |
US8595371B2 (en) | 2008-09-19 | 2013-11-26 | Samsung Electronics Co., Ltd. | Sending a remote user interface |
KR101711863B1 (ko) | 2008-11-26 | 2017-03-13 | 캘거리 싸이언티픽 인코포레이티드 | 애플리케이션 프로그램의 상태에 대한 원격 액세스를 제공하기 위한 방법 및 시스템 |
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 |
SG173483A1 (en) | 2009-02-03 | 2011-09-29 | 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 |
US9210213B2 (en) | 2011-03-03 | 2015-12-08 | Citrix Systems, Inc. | Reverse seamless integration between local and remote computing environments |
US8866701B2 (en) | 2011-03-03 | 2014-10-21 | Citrix Systems, Inc. | Transparent user interface 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 |
CN103503407B (zh) * | 2011-04-28 | 2016-10-12 | 交互数字专利控股公司 | 用于多sso技术的sso框架 |
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 |
KR20140080483A (ko) * | 2011-08-15 | 2014-06-30 | 캘거리 싸이언티픽 인코포레이티드 | 애플리케이션 프로그램에 대한 비-침투적 원격 액세스 |
WO2013024342A1 (en) | 2011-08-15 | 2013-02-21 | Calgary Scientific Inc. | Method for flow control and for reliable communication in a collaborative 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) |
US8782757B2 (en) * | 2011-09-30 | 2014-07-15 | Oracle International Corporation | Session sharing in secure web service conversations |
US8897154B2 (en) * | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
CA2855209A1 (en) * | 2011-11-11 | 2013-05-23 | 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 |
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 |
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 CN CN201680010239.4A patent/CN107431630B/zh active Active
- 2016-01-29 US US15/011,183 patent/US11310348B2/en active Active
- 2016-01-29 EP EP16742846.5A patent/EP3251286B1/en active Active
- 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 CA CA2974204A patent/CA2974204A1/en active Pending
- 2016-01-29 AU AU2016210974A patent/AU2016210974A1/en not_active Abandoned
- 2016-01-29 JP JP2017540185A patent/JP2018512084A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US11310348B2 (en) | 2022-04-19 |
CN107431630A (zh) | 2017-12-01 |
JP2018512084A (ja) | 2018-05-10 |
AU2016210974A1 (en) | 2017-07-27 |
EP3251286A4 (en) | 2018-08-22 |
EP3251286A1 (en) | 2017-12-06 |
EP3251286B1 (en) | 2019-10-02 |
WO2016120730A1 (en) | 2016-08-04 |
CN107431630B (zh) | 2021-06-25 |
CA2974204A1 (en) | 2016-08-04 |
US20160226871A1 (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107431630B (zh) | 高度可扩展、容错的远程访问架构和与之连接的方法 | |
US11159626B2 (en) | Session transfer between resources | |
US8555339B2 (en) | Identifying guests in web meetings | |
US20190068390A1 (en) | Collaborative access to virtual desktops | |
US9794201B2 (en) | Messaging based signaling for communications sessions | |
US20100228824A1 (en) | Distributed server selection for online collaborative computing sessions | |
US9462132B2 (en) | One-tap conference calling on devices | |
WO2013040917A1 (zh) | 虚拟桌面实现系统及其使用方法 | |
EP2678971A1 (en) | Communication between applications on different endpoint | |
US20170230320A1 (en) | Transmitting Media Content During Instant Messaging | |
US20130151638A1 (en) | Method, apparatus, and system for transferring file to user of instant message system | |
Lomotey et al. | Reliable consumption of web services in a mobile-cloud ecosystem using REST | |
Johansson et al. | RabbitMQ Essentials: Build distributed and scalable applications with message queuing using RabbitMQ | |
US11843642B1 (en) | Serverless signaling in peer-to-peer session initialization | |
La Marra et al. | Improving MQTT by inclusion of usage control | |
CN112288404A (zh) | 一种会议管理方法、装置、电子设备及存储介质 | |
US20170195391A1 (en) | Communication Server and Method for Selective Use of Real Time Communication Features | |
US20160261712A1 (en) | Methods and systems for requesting access to limited service instances | |
US11848923B2 (en) | Secure peer-to-peer connection network and associated protocols for a group-based communication system | |
Johansson | Session mobility in multimedia services enabled by the cloud and peer-to-peer paradigms | |
Mayol Ramis | Design and implementation of a bidirectional, secure and real time communication between Windows Phone 8 App and Windows Store App. | |
JP2008217376A (ja) | コンテンツ共有方法及びシステム | |
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 | |
RU120259U1 (ru) | Система мультимедийного интерактивного взаимодействия |