KR20170110612A - 고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법 - Google Patents

고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법 Download PDF

Info

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
Application number
KR1020177021565A
Other languages
English (en)
Inventor
크리스토퍼 제임스 자라벡
카메론 키들
조나단 크리스토퍼 네이츠
매튜 스테풀
크리스토퍼 제임스 갈레트
케빈 글렌 로빈손
Original Assignee
캘거리 싸이언티픽 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 캘거리 싸이언티픽 인코포레이티드 filed Critical 캘거리 싸이언티픽 인코포레이티드
Publication of KR20170110612A publication Critical patent/KR20170110612A/ko

Links

Images

Classifications

    • H04L67/32
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling 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/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • H04L67/16
    • H04L67/2804
    • H04L67/2809
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling 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/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation 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 은 예제 컴퓨팅 디바이스를 예시한다.
다른식으로, 정의되지 않으면, 본 출원에서 사용되는 모든 기술적 및 과학적 용어들은 관련 기술 분야에서의 통상의 기술자에 의해 통상 이해되는 것과 동일한 의미를 가진다. 본 출원에서 설명된 것에 유사하거나 또는 동등한 방법들 및 재료들은 본 발명의 실행 또는 테스팅에 사용될 수 있다. 클라이언트들을 원격에서 액세스되는 애플리케이션들에 및 원격 액세스 아키텍처에 의해 제공된 서비스들에 접속하기 위한 고 확장가능한, 고장 내성(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)

  1. 클라이언트-서버 원격 액세스 시스템에 서비스를 원격 액세스에 제공하기 위한 방법에 있어서,
    스케줄러에 의해, 상기 서비스를 호스트하는 애플리케이션 서버를 선택하는 단계로서, 상기 선택은 상기 클라이언트-서버 원격 액세스 시스템내 자원들의 활용도(utilization)에 따라 수행되는, 상기 선택하는 단계; 및
    상기 서비스를 고유하게 식별하는 URL(Uniform resource locator) 페이로드를 포함하는 세션 URL을 생성하고 클라이언트에 의해 상기 서비스에 상기 원격 액세스를 수립하기 위해 사용되는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 애플리케이션 서버의 선택 전에 상기 서비스에 접속을 요청하기 위해 상기 클라이언트에 제공되는 자원 URL을 생성하는 단계를 더 포함하는, 방법.
  3. 청구항 1 내지 2 중 어느 한 항에 있어서, 상기 서비스를 액세스하기 위해 상기 자원 URL과 관련된 프락시 서버에서 요청(request)을 수신하는 단계를 더 포함하는, 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서, 상기 서비스를 고유하게 식별하는 URL 페이로드는 App ID인, 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 클라이언트와 상기 서비스간에 그리고 상기 클라이언트-서버 원격 액세스 시스템내 서비스들간에 신뢰(trust)를 수립하는 인증 컴포넌트를 제공하는 단계를 더 포함하는, 방법.
  6. 청구항 5에 있어서,
    상기 인증 컴포넌트에 의해 협업(collaboration) URL를 상기 클라이언트에 제공하는 단계;
    상기 협업 URL를 이용하여 제 2 클라이언트로부터 상기 프락시 서버에서 제 2 요청을 수신하는 단계; 및
    상기 제 2 클라이언트가 상기 세션에 참여하는 단계를 더 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 협업 URL은 상기 선택된 애플리케이션 서버를 식별하고 상기 제 2 클라이언트를 인증하는, 방법.
  8. 청구항 5 내지 7 중 어느 한 항에 있어서, 상기 세션 URL은 상기 클라이언트와 관련된 유저에 매핑되는, 방법.
  9. 청구항 1 내지 8 중 어느 한 항에 있어서, 상기 스케줄러를 이용하여 상기 클라이언트-서버 원격 액세스 시스템내 자원 활용도를 관리하는 단계를 더 포함하는, 방법.
  10. 청구항 9에 있어서, 상기 스케줄러는 상기 애플리케이션 서버가 가장 작은 수의 서비스들을 운용하고 있는 것에 기초하여 상기 애플리케이션 서버를 선택하는, 방법.
  11. 청구항 9 내지 10 중 어느 한 항에 있어서, 상기 스케줄러는 상기 애플리케이션 서버가 이용 가능한 용량을 갖는 최장-운용(longest-running)되고 있는 것에 기초하여 상기 애플리케이션 서버를 선택하는, 방법.
  12. 청구항 9 내지 11 중 어느 한 항에 있어서, 상기 스케줄러는 상기 애플리케이션 서버상에서의 기존 운용 서비스의 상태에 기초하여 상기 애플리케이션 서버를 선택하는, 방법.
  13. 청구항 9 내지 12 중 어느 한 항에 있어서, 상기 스케줄러는 상기 서비스를 호스트하는 상기 애플리케이션 서버에 상기 클라이언트를 실시간으로 보내는 상기 세션 URL을 생성하는, 방법.
  14. 청구항 9 내지 13 중 어느 한 항에 있어서, 부하(load), 하드웨어 용량 (예를 들어, CPU, GPU, 메모리), 네트워킹 요건들, 비용, 또는 지리적 위치 중 하나에 따라 상기 클라이언트-서버 원격 액세스 시스템내 애플리케이션 서버들을 시작하고 중단하는 오케스트레이터(orchestrator)를 제공하는 단계를 더 포함하는, 방법.
  15. 청구항 14에 있어서, 온 디멘드(on demand)에 기초하여 상기 애플리케이션 서버를 자동으로 시작하거나 또는 중단하기 위해 현재 자원 할당에 대하여 수신한 정보를 상기 스케줄러로부터 상기 오케스트레이터에 제공하는 단계를 더 포함하는, 방법.
  16. 서비스에 액세스를 제공하기 위한 클라이언트-서버 원격 액세스 시스템에 있어서,
    자원 URL(Uniform Resource Locator)에서 액세스 가능한 프락시 서버로서, 상기 프락시 서버는 상기 서비스에 접속하기 위해 클라이언트로부터 요청(request)을 수신하는, 상기 프락시 서버;
    상기 자원 URL의 페이로드(payload)에 따라 상기 요청을 인증하는 인증 컴포넌트;
    상기 클라이언트-서버 원격 액세스 시스템에서의 자원들의 활용도에 따라 상기 서비스를 호스트하는 애플리케이션 서버를 선택하는 스케줄러(scheduler)로서, 상기 애플리케이션 서버는 상기 클라이언트와 상기 서비스간에 세션을 수립하게 위해 사용되는 상기 페이로드를 포함하는 세션 URL를 생성하는, 상기 스케줄러; 및
    애플리케이션 데이터 및 상기 클라이언트와 상기 서비스 간에 상태 정보를 전송하기 위해 인증된 상기 요청에 따라 상기 세션 URL에 접속된 상기 서비스와 상기 클라이언트간에 세션을 수립하는 서비스 관리기를 포함하는, 클라이언트-서버 원격 액세스 시스템.
  17. 청구항 16에 있어서, 협업 URL이 상기 인증 컴포넌트에 의해 상기 클라이언트에 제공되고, 제 2 요청이 상기 협업 URL를 이용하여 제 2 클라이언트로부터 상기 프락시 서버에서 수신되고, 상기 제 2 클라이언트가 상기 세션에 참여하는, 클라이언트-서버 원격 액세스 시스템.
  18. 청구항 17에 있어서, 상기 협업 URL은 상기 애플리케이션 서버를 식별하고 상기 제 2 클라이언트를 인증하는, 클라이언트-서버 원격 액세스 시스템.
  19. 청구항 16 내지 18 중 어느 한 항에 있어서, 상기 클라이언트-서버 원격 액세스 시스템내 자원 활용도는 상기 스케줄러를 이용하여 관리되고, 상기 스케줄러는 상기 애플리케이션 서버가 가장 작은 수의 서비스들을 운용하는 것에 기초하여 상기 애플리케이션 서버를 선택하거나, 또는 상기 애플리케이션 서버가 이용 가능한 용량을 갖는 최장-운용 되고 있는 것에 기초하여 상기 애플리케이션 서버를 선택하거나, 또는 상기 애플리케이션 서버상에서의 기존 운용 서비스의 상태에 기초하여 상기 애플리케이션 서버를 선택하는, 클라이언트-서버 원격 액세스 시스템.
  20. 청구항 16 내지 19 중 어느 한 항에 있어서,
    상기 인증 컴포넌트에 의해 협업 URL을 상기 클라이언트에 제공하고, 상기 협업 URL은 상기 애플리케이션 서버를 식별하기 위한 페이로드 파라미터를 함유하고;
    상기 협업 URL를 이용하여 제 2 클라이언트로부터 상기 프락시 서버에서 제 2 요청을 수신하고; 및
    상기 제 2 클라이언트가 상기 세션에 참여하는 것을 더 포함하는, 클라이언트-서버 원격 액세스 시스템.
  21. 청구항 20에 있어서, 상기 협업 URL은 상기 제 2 클라이언트를 인증하는, 클라이언트-서버 원격 액세스 시스템.
  22. 청구항 16 내지 21 중 어느 한 항에 있어서, 상기 스케줄러는 : 가장 작은 수의 서비스들을 운용하는 상기 애플리케이션 서버를 선택하거나, 상기 애플리케이션 서버가 이용 가능한 용량을 갖는 최장-운용 애플리케이션 서버인 것에 기초하여 상기 애플리케이션 서버를 선택하거나, 또는 상기 애플리케이션 서버상에서의 기존 운용 서비스의 상태에 기초하여 상기 애플리케이션 서버를 선택하는 기준 중 하나에 기초하여 상기 애플리케이션 서버를 선택하는, 클라이언트-서버 원격 액세스 시스템.
  23. 청구항 16 내지 23 중 어느 한 항에 있어서, 상기 애플리케이션 서버는 상기 서비스가 상기 클라이언트에 이용 가능하게 된 때에 실시간으로 상기 세션 URL을 생성하는, 클라이언트-서버 원격 액세스 시스템.
KR1020177021565A 2015-01-30 2016-01-29 고 확장가능한, 고장 저항력이 있는 원격 액세스 아키텍처 및 접속 방법 KR20170110612A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) Система мультимедийного интерактивного взаимодействия