KR20150027771A - 이동 장치 및 애플리케이션의 클러스터링을 위한 시스템 및 방법 - Google Patents

이동 장치 및 애플리케이션의 클러스터링을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20150027771A
KR20150027771A KR1020147036986A KR20147036986A KR20150027771A KR 20150027771 A KR20150027771 A KR 20150027771A KR 1020147036986 A KR1020147036986 A KR 1020147036986A KR 20147036986 A KR20147036986 A KR 20147036986A KR 20150027771 A KR20150027771 A KR 20150027771A
Authority
KR
South Korea
Prior art keywords
cluster
partner
resource
mobile device
database
Prior art date
Application number
KR1020147036986A
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 KR20150027771A publication Critical patent/KR20150027771A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Abstract

이동 클러스터에서 동작하는 이동 장치를 구성하고 이동 장치의 클러스터 상에 상주하는 애플리케이션을 협력적으로 강화하는 시스템 및 방법이 개시된다. 장애 조치 상태에서 장치 기능의 대체 또는 확장을 일차 멤버의 이동 장치에 제공하기 위해 클러스터에서 이동 장치의 장치 기능을 강화하는 시스템 및 방법이 또한 개시된다. 클러스터의 구성 및 관리는 클러스터 마스터를 통해 할 수 있다. 클러스터가 구성된 후에, 동작은 이동 장치의 상주 애플리케이션에 대해 협력하거나 장치 기능을 공유하기 위해 클러스터의 개별 멤버에 의해 취해지거나 클러스터 마스터에 의해 개시될 수 있다. 각각의 클러스터 멤버는 그의 클러스터 파트너와 협력하거나 공유하기를 원하는 애플리케이션 또는 장치 기능을 결정할 수 있다. 데이터베이스는 협력을 위한 애플리케이션 및 공유를 위한 장치 기능을 기록한다.

Description

이동 장치 및 애플리케이션의 클러스터링을 위한 시스템 및 방법{SYSTEM AND METHOD FOR CLUSTERING OF MOBILE DEVICES AND APPLICATIONS}
관련 출원의 상호 참조
본 출원은 2012년 7월 2일자로 출원된 미국 출원 제13/539,809호에 대한 우선권을 주장하며, 이는 본 개시의 일부로서 본 명세서에 참조로서 통합된다.
기술 분야
본 개시는 일반적으로 애플리케이션을 실행하고 특징을 공유함에 있어 컴퓨터 장치 사이의 컴퓨터 네트워킹 및 협력에 관한 것이다. 특히, 본 개시는 더 효과적이고 강건한 컴퓨팅 환경을 생성하기 위해 클러스터에서 동작하는 이동 장치를 구성하고 클러스터에서 이동 장치의 상주 애플리케이션 및 장치 기능을 강화하기 위한 방법 및 시스템에 관한 것이다.
스마트폰, 태블릿 컴퓨터 등과 같이 증대되는 처리 능력을 갖는 이동 장치의 사용이 확산되고 있다. 이동 장치 상에서 실행하는 애플리케이션은 또한 그의 능력 및 정교화가 증가하였다. 컴퓨터 상에서 이전에 실행되었던 애플리케이션들 중 다수는 점점 더 이동 장치 속으로 진입하고 있다. 많은 새로운 애플리케이션이 또한 이동 장치 상에서 실행되도록 개발되었고 많은 새로운 특징은 그의 이동성을 이용하도록 도입되었다. 이동 장치는 또한 임의의 비작동 시간을 경험할 수 없는 중요한 애플리케이션을 실행하기 위해 점점 더 사용되고 있다. 그러나, 메모리 용량, 배터리 전력, 및 프로세서 속도와 같은 이동 장치에 대한 제한으로 인해, 이동 애플리케이션은 항상 원하는 사용의 다양한 시간 동안에 적절히 또는 전혀 기능하지 않을 수 있다. 게다가, 그의 이동성 때문에, 이동 장치는 약한 신호 레벨 및 제한된 데이터 대역폭과 같은 불리한 동작 조건에 민감하다. 따라서, 이동 장치가 효과적으로, 효율적으로, 그리고 보편적으로 동작할 수 있다는 것을 보장하도록 더 강력한 환경을 생성하는 것에 대한 요구가 있다.
사용자를 위해 더 풍부하고 강건한 경험을 생성하기 위해 애플리케이션을 협력적으로 실행하고 장치 기능을 공유하는 이동 장치의 클러스터를 구성하고 강화하는 시스템 및 방법이 본 명세서에 개시된다. 클러스터 내의 이동 장치는 정보를 더 효과적으로 그리고 효율적으로 처리하기 위해 애플리케이션에 대해 협력할 수 있다. 클러스터 내의 이동 장치는 또한 더 강건한 컴퓨팅 환경을 생성하기 위해 그의 장치 기능을 상호 강화할 수 있다.
본 개시의 하나 이상의 실시예에 따르면, 클러스터 네트워크 내의 장치가 개시된다. 장치는 프로세서를 포함한다. 장치는 하나 이상의 공유 자원을 리스팅하는 클러스터 데이터베이스를 더 포함한다. 공유 자원 중 각각의 것에 대한 리스팅 하에 클러스터 네트워크의 하나 이상의 클러스터 파트너는 공유 자원을 제공하는 데 이용 가능하다. 장치는 장치가 공유 자원을 협력적으로 사용하도록 프로세서에 의한 실행을 위한 머신 판독 가능 명령어를 저장하는 메모리를 더 포함한다. 장치는 클러스터 데이터베이스를 갱신하기 위해 클러스터 네트워크 상에서 통신을 감시한다. 장치는 또한 클러스터 데이터베이스에 리스팅된 공유 자원으로부터의 협력 사용을 위한 자원을 결정한다. 장치는 또한 자원에 대해 협력하기 위해 클러스터 파트너를 결정한다. 장치는 자원의 사용에 대해 클러스터 파트너와 더 협력한다.
본 개시의 하나 이상의 실시예에 따르면, 클러스터 네트워크의 클러스터 파트너 사이에서 공유 자원에 대해 협력하는 방법이 개시된다. 방법은 하나 이상의 공유 자원의 리스팅을 포함하는 클러스터 데이터베이스를 장치에 의해 유지하는 단계를 포함한다. 공유 자원 중 각각의 것에 대한 리스팅 하에 클러스터 네트워크의 하나 이상의 클러스터 파트너는 공유 자원을 제공하는 데 이용 가능하다. 방법은 또한 클러스터 데이터베이스를 갱신하기 위해 클러스터 네트워크 상에서의 통신을 장치에 의해 감시하는 단계를 포함한다. 방법은 또한 클러스터 데이터베이스 내의 공유 자원의 리스팅으로부터 협력 사용을 위한 자원을 장치에 의해 결정하는 단계를 포함한다. 방법은 선택된 자원에 대해 협력하기 위해 클러스터 파트너를 결정하는 단계를 더 포함한다. 방법은 자원의 사용에 대해 장치와 클러스터 파트너 사이에서 협력하는 단계를 더 포함한다.
본 개시의 하나 이상의 실시예에 따르면, 방법을 수행하기 위해 장치의 프로세서에 의한 실행을 위한 머신 판독 가능 명령어를 갖는 비일시적 컴퓨터 판독 가능 매체가 개시된다. 방법은 하나 이상의 공유 자원의 리스팅을 포함하는 클러스터 데이터베이스를 장치에 의해 유지하는 단계를 포함한다. 공유 자원 중 각각의 것에 대한 리스팅 하에 클러스터 네트워크의 하나 이상의 클러스터 파트너는 공유 자원을 제공하는 데 이용 가능하다. 방법은 또한 클러스터 데이터베이스를 갱신하기 위해 클러스터 네트워크 상에서의 통신을 장치에 의해 감시하는 단계를 포함한다. 방법은 또한 클러스터 데이터베이스 내의 공유 자원의 리스팅으로부터 협력 사용을 위한 자원을 결정하는 단계를 포함한다. 방법은 선택된 자원에 대해 협력하기 위해 클러스터 파트너를 결정하는 단계를 더 포함한다. 방법은 자원의 사용에 대해 장치와 클러스터 파트너 사이에서 협력하는 단계를 더 포함한다.
본 개시의 이러한 및 다른 실시예는 첨부 도면과 함께 고려될 때 실시예의 이하의 상세한 설명에 대한 참조에 의해 더 완전히 이해될 것이다.
도 1은 본 개시의 하나 이상의 실시예에 따른 네트워크를 통해 통신하는 이동 장치의 클러스터를 도시한다.
도 2는 본 개시의 하나 이상의 실시예에 따른 이동 장치의 클러스터에 가입하는 이동 장치를 구성하고 클러스터 마스터가 이동 장치가 애플리케이션에 대해 협력하거나 장치 기능을 공유할 것을 요청하는 방법을 예시하는 흐름도를 도시한다.
도 3은 본 개시의 하나 이상의 실시예에 따른 이동 장치의 클러스터에 가입하는 이동 장치를 구성하고 이동 장치가 협력 또는 공유를 위한 애플리케이션 또는 장치 기능을 지정하는 방법을 예시하는 흐름도이다.
도 4는 본 개시의 하나 이상의 실시예에 따른 클러스터 마스터에 의해 요청되는 바와 같이 클러스터 멤버가 상주 애플리케이션에 대해 협력하는 방법을 예시하는 흐름도를 도시한다.
도 5는 본 개시의 하나 이상의 실시예에 따른 클러스터 슬레이브에 의해 요청되는 바와 같이 클러스터 멤버가 상주 애플리케이션에 대해 협력하는 방법을 예시하는 흐름도를 도시한다.
도 6은 본 개시의 하나 이상의 실시예에 따른 클러스터 멤버가 장애 조치(failover) 상태에서 장치 기능을 공유하는 방법을 예시하는 흐름도를 도시한다.
본 개시의 실시예 및 그의 장점은 이어지는 상세한 설명을 참조함으로써 가장 잘 이해된다. 동일한 참조 번호가 도면 중 하나 이상에서 예시된 동일한 요소를 식별하기 위해 사용된다는 점이 이해되어야 한다.
애플리케이션을 협력적으로 실행하기 위해 이동 장치의 클러스터 상에 상주하는 애플리케이션을 강화하는 시스템 및 방법이 본 명세서에 개시된다. 장애 조치 상태에서 장치 기능의 교체 또는 확장을 일차 멤버의 이동 장치에 제공하기 위해 클러스터에서 이동 장치의 장치 기능을 강화하는 시스템 및 방법이 또한 본 명세서에 개시된다. 클러스터의 구성 및 관리는 클러스터 마스터를 통해 할 수 있다. 클러스터가 구성된 후에, 동작은 이동 장치의 상주 애플리케이션에 대해 협력하거나 장치 기능을 공유하기 위해 클러스터의 개별 멤버에 의해 취해지거나 클러스터 마스터에 의해 개시될 수 있다. 각각의 클러스터 멤버는 그의 클러스터 파트너와 협력하거나 공유하기를 원하는 애플리케이션 또는 장치 기능을 결정한다. 애플리케이션에 대해 협력하는 것은 클러스터 파트너 사이에서 애플리케이션의 처리를 분배하는 것 및 애플리케이션으로부터 생성된 데이터를 교환하는 것을 수반할 수 있다. 클러스터 마스터는 클러스터 파트너 사이에서 협력을 조정할 수 있다. 대안으로, 클러스터 파트너는 분산 방식으로 그들 사이에서 협력을 조정할 수 있다. 클러스터 파트너는 또한 장애 조치 상태 하에 애플리케이션의 연속 동작을 허용하기 위해 장치 기능을 공유할 수 있다. 특히 임무 수행에 필수적인 애플리케이션에 대해, 다수의 이동 장치에서 다수의 장애 조치가 있을 때에도 연속 동작을 보장하기 위해 공유되는 장치 기능의 계층이 있을 수 있다. 데이터베이스는 협력을 위한 애플리케이션 및 공유를 위한 장치 기능을 추적하기 위해 유지된다. 클러스터 멤버 사이에서 애플리케이션에 대해 협력하고 장치 기능을 공유하는 것은 사용자 경험을 증대시키고 더 강건한 애플리케이션 환경을 생성한다.
이제 도면이 본 개시의 실시예만을 예시하는 목적을 위한 것이고, 이를 제한하는 목적이 아닌 도면을 참조한다. 도 1은 본 개시의 하나 이상의 실시예에 따른 네트워크를 통해 통신하는 이동 장치의 클러스터를 도시한다.
제 1 이동 장치(101)는 애플리케이션을 협력적으로 실행하거나, 장치 기능을 공유하거나, 그렇지 않으면 네트워크(103)를 통해 클러스터의 이동 장치(102, 104, 및 105)와 상호 작용할 수 있다. 이동 장치(101, 102, 104, 및 105)는 클러스터의 멤버이다. 이동 장치(101, 102, 104, 및 105)는 스마트폰(예를 들어, 아이폰, 또는 안드로이드를 실행하는 전화, 윈도우 모바일, 또는 다른 운영 체제), 태블릿 컴퓨터(예를 들어, 아이패드, 갤럭시), 개인 휴대 정보 단말기(personal digital assistants(PDA)), 노트북 컴퓨터, 랩톱, 또는 다양한 다른 타입의 무선 또는 유선 컴퓨팅 장치일 수 있다. 이동 장치는 하나 이상의 프로세서, 메모리, 배터리, 터치 스크린 디스플레이, 통신 구성요소, GPS 등을 가질 수 있다. 당업자는 이동 장치의 프로세서가 다양한 컴퓨팅, 통신, 및 게임 기능을 수행하기 위해 메모리에 상주하는 애플리케이션을 실행할 수 있다는 점을 이해할 것이다.
네트워크(103)는 단일 네트워크 또는 다수의 네트워크의 조합으로서 구현될 수 있다. 예를 들어, 다양한 실시예에서, 네트워크는 인터넷, 인트라넷, 무선 통신 네트워크(예를 들어, 휴대 전화 네트워크, 블루투스, LAN, WiFi, WiMax), 일반 전화 네트워크, 및/또는 다른 적절한 타입의 통신 네트워크를 포함할 수 있다. 그와 같이, 다양한 실시예에서, 네트워크(103)는 집, 사무실, 또는 기숙사에서 이동 장치를 연결하는 WiFi 네트워크와 같이, 매우 근접해 있는 이동 장치를 연결하는 로컬 네트워크일 수 있다. 대안으로, 네트워크(103)는 지역 내에서 이동 장치를 연결하는 광역 네트워크, 또는 전세계에 걸쳐 이동 장치를 연결하는 글로벌 네트워크일 수 있다. 장애 조치 상태에서 장치 기능의 더 적절한 핸드오버 또는 애플리케이션에 대해 협력하는 클러스터 멤버 사이의 더 끊임없는 협력을 위해, 클러스터의 이동 장치를 아주 근접하여 갖는 것이 유리할 수 있다. 이동 장치는 IP(Internet Protocol) 어드레스 또는 IP 어드레스에 대한 특정 링크(예를 들어, URL(Uniform Resource Locator)과 같은 링크)와 연관될 수 있다.
하나 이상의 실시예에서, 이동 장치(101)는 클러스터 멤버 사이에서 애플리케이션의 협력 또는 장치 기능의 공유를 관리하고 조정하는 클러스터 마스터일 수 있다. 클러스터 마스터는 또한 클러스터에서 이동 장치의 멤버십을 관리할 수 있다. 멤버가 애플리케이션에 대해 협력할 때, 클러스터 마스터는 클러스터 멤버 사이에서 애플리케이션의 처리를 분배할 수 있다. 예를 들어, 클러스터 마스터로서의 이동 장치(101)는 상이한 위치로부터 비디오를 제공하기 위해 이동 장치(102, 104, 및 105)의 카메라를 강화함으로써 폐쇄 회로 TV 애플리케이션을 실행할 수 있다. 이동 장치(101)는 이동 장치(101) 상의 디스플레이를 위해 이동 장치(102, 104, 및 105)로부터의 비디오를 결합할 수 있다. 대안으로, 클러스터 멤버는 클러스터 마스터 없이 클러스터 멤버 사이에서 애플리케이션의 실행을 조정할 수 있다. 예를 들어, 폐쇄 회로 TV 애플리케이션에서, 각각의 이동 장치가 모든 그의 클러스터 파트너로부터의 비디오를 디스플레이하기 위해, 각각의 이동 장치는 클러스터 마스터를 통과하지 않으면서 그의 캡처된 비디오를 모든 그의 클러스터 파트너에 송신할 수 있고 또한 모든 그의 클러스터 파트너로부터의 캡처된 비디오를 수신할 수 있다.
클러스터 멤버가 장치 기능을 공유할 때, 멤버는 장애 조치 상태에서 하나 이상의 클러스터 파트너에 의해 대체되거나 확장되는 그의 장치 기능을 가질 수 있다. 예를 들어, 이동 장치(101)는 배터리에 대한 드레인(drain)을 느리게 하기 위해 애플리케이션의 실행을 이동 장치(102)에 오프로드(offload)함으로써 그의 배터리 전력을 연장할 수 있다. 다른 예에서, 도전 신호 수신 환경에서 동작하는 이동 장치(101)는 그의 셀룰러 데이터 기능을 더 유리한 환경에서 동작하는 이동 장치(102)의 것으로 대체할 수 있다. 그와 같이, 이동 장치(102)의 셀룰러 데이터 기능은 네트워크(103)를 통한 소비를 위해 셀룰러 데이터 패킷을 수신하고 패킷을 이동 장치(101)에 재송신하기 위해 활성화된다. 따라서, 이동 장치(101)는 장애 조치 상태를 이동 장치(102)에 전달할 수 있고 이동 장치(102)로부터 대체되거나 확장된 기능과 연관되는 데이터를 수신할 수 있다.
일차 멤버의 장치 기능을 대체하거나 확장하는 클러스터 파트너는 그 자체의 장치 기능을 대체하거나 확장하는 클러스터 파트너를 자체적으로 가질 수 있도록 장치 기능을 공유하기 위한 클러스터 파트너의 계층이 있을 수 있다. 예를 들어, 셀룰러 데이터 기능이 이동 장치(101)의 셀룰러 데이터 기능을 대체하는 이동 장치(102)는 그의 셀룰러 데이터 기능 또는 이동 장치(104)에 의해 대체되는 다른 기능을 가질 수 있다. 하나 이상의 실시예에서, 클러스터 파트너의 계층 사이의 데이터의 이동은 다수의 프로토콜의 조합에 의해 이루어질 수 있다. 유사하게, 클러스터 파트너의 계층 사이의 장애 조치 상태의 통신은 다수의 프로토콜의 조합을 통해 할 수 있다. 클러스터 마스터는 그것이 다른 멤버의 장치 기능만을 강화할 수 있지만 그 자체의 장치 기능을 공유하기 위해 호출될 수 없도록 클러스터 파트너의 계층의 상단에 있을 수 있다. 클러스터 마스터의 지정은 동적일 수 있다. 예를 들어, 이동 장치(101)의 배터리가 거의 소모될 때, 이동 장치(102)는 이동 장치(101)가 모든 장치 기능을 이동 장치(102)에 핸드오버한 경우 새로운 클러스터 마스터로서 지정될 수 있다. 그와 같이, 이동 장치(102)는 공유된 장치 기능의 계층에서 상단 위치를 맡는다. 장치 기능의 공유는 장애 조치 상태에 걸쳐 임무 수행에 필수적인 애플리케이션의 연속 동작을 가능하게 한다.
각각의 멤버는 그것이 다른 멤버와 협력하거나 공유하기를 원하는 애플리케이션 및 장치 기능을 결정할 수 있다. 각각의 클러스터 멤버는 또한 클러스터의 멤버십을 기록하는 클러스터 데이터베이스, 협력 또는 공유를 위한 애플리케이션 또는 장치 기능을 유지할 수 있고, 각각의 애플리케이션에 대해 클러스터 파트너는 애플리케이션 상에서 멤버와 기꺼이 협력하고 각각의 장치 기능에 대해 클러스터 파트너는 그러한 장치 기능을 멤버와 기꺼이 공유한다. 예를 들어, 멤버를 위한 클러스터 데이터베이스는 장치 기능이 멤버의 장치 기능을 대체하거나 확장하는 클러스터 파트너에게, 각각 공유된 장치 기능을 보여줄 수 있다. 멤버의 장치 기능이 클러스터 파트너 중 어느 것에 대한 장치 기능에 의해 대체되거나 확장될 수 있도록 장치 기능을 위한 다수의 클러스터 파트너가 있을 수 있다. 다수의 클러스터 파트너의 장치 기능이 강화되는 우선순위는 클러스터 파트너가 리스팅되는 순서에 의해 결정될 수 있다. 예를 들어, 리스팅된 제 1 클러스터 파트너의 장치 기능은 리스팅된 제 2 클러스터 파트너의 그것 전에 강화될 수 있다. 대안으로, 모든 클러스터 파트너의 장치 기능은 멤버의 장치 기능을 대체하거나 확장하기 위해 동시에 강화될 수 있다.
공유될 이동 장치의 장치 기능은 음성, 셀룰러 데이터, 배터리, WiFi, 메모리, CPU, 디스플레이, GPS 등을 포함할 수 있다. 예를 들어, 이동 장치(101)는 배터리가 부족하고 이동 장치(102)가 배터리에 대해 그의 클러스터 데이터베이스에 리스팅된 제 1 클러스터 파트너이면, 이동 장치(101)는 이동 장치(101)의 배터리 전력을 소모하는 것을 회피하도록 입력/출력 기능을 제외한 모든 애플리케이션을 실행하기 위해 이동 장치(102)를 강화할 수 있다. 하나 이상의 실시예에서, 이동 장치(101)는 이동 장치(101)가 전력을 잃기 전에 이동 장치(102)에 모든 호출을 전송할 수 있거나 이동 장치(102)를 호출하기 위해 호출자를 리디렉션하는 대체 음성메일을 자동으로 설정할 수 있다. 이동 장치(102)는 또한 배터리가 부족하고 이동 장치(104)가 이동 장치(101)의 클러스터 데이터베이스에 리스팅된 제 2 클러스터 파트너이면, 이동 장치(104)는 이동 장치(101) 또는 이동 장치(102)의 배터리 전력을 더 연장하기 위해 차례로 호출될 수 있다. 다른 예에서, 이동 장치(102)가 메모리를 다 써버리고 이동 장치(104 및 105)가 메모리를 위한 클러스터 데이터베이스에 리스팅된 클러스터 파트너이면, 이동 장치(102)는 이동 장치(102)의 메모리 용량을 확장하기 위해 이동 장치(104)의 메모리의 일부를 할당할 수 있다. 이동 장치(102)는 또한 이동 장치(104)가 단독으로 충분한 추가 메모리를 제공하지 못하면 이동 장치(104 및 105) 둘 다에서 메모리를 할당할 수 있다. 다른 예에서, 이동 장치(101)는 그의 디스플레이 영역을 확장할 필요가 있고 이동 장치(102)가 디스플레이를 위한 클러스터 데이터베이스에 리스팅된 클러스터 파트너이면, 이동 장치(101)의 터치 스크린은 키보드로서 사용되고 이동 장치(102)의 스크린은 이동 장치(101)를 위한 디스플레이로서 사용될 수 있다. 다른 예에서, 이동 장치(101)는 나쁜 신호 수신으로 인해 그의 GPS 신호를 분실하고 이동 장치(104)가 GPS를 위한 클러스터 데이터베이스에 리스팅된 클러스터 파트너이면, 이동 장치(101)는 이동 장치(104)가 가까이에 있고 더 유리한 신호 품질을 갖는다면 이동 장치(104) 상에서 GPS 수신기를 사용할 수 있다.
공유된 장치 기능의 계층이 있을 때, 각각의 멤버에 대한 클러스터 데이터베이스는 각각의 멤버가 장치 기능이 멤버의 것을 교체하거나 확장하는 하나 이상의 클러스터 파트너를 독립적으로 결정할 수 있기 때문에 상이할 수 있다. 대안으로, 모든 클러스터 멤버에 대한 클러스터 데이터베이스는 클러스터 마스터가 모든 클러스터 멤버에 대한 클러스터 데이터베이스의 마스터 사본을 유지할 수 있도록 동일할 수 있다. 마스터 클러스터 데이터베이스만이 있을 때, 공유된 장치 기능의 계층은 클러스터 파트너의 장치 기능이 클러스터 파트너 후에 리스팅되지만, 클러스터 파트너 전에 리스팅되지 않은 하나 이상의 클러스터 파트너에 의해 대체되거나 확장될 수 있도록 클러스터 파트너의 리스팅의 순서에 의해 제공될 수 있다. 클러스터 데이터베이스는 IP 어드레스, 전화 번호, 또는 다른 장치/사용자 식별자를 사용하여 애플리케이션 및 장치 기능에 대한 클러스터 파트너를 식별할 수 있다.
클러스터 파트너가 애플리케이션에 대해 협력할 때, 애플리케이션은 협력 클러스터 파트너 사이에서 애플리케이션의 처리를 분배함으로써 더 효과적으로 또는 효율적으로 실행할 수 있다. 사용자 경험은 또한 클러스터 파트너 사이의 애플리케이션으로부터 데이터 공유를 통해 증대될 수 있다. 예를 들어, 사진 처리 애플리케이션은 객체의 사진 수집으로부터 객체의 3-D 이미지 또는 360°파노라마 뷰를 생성하기 위해 사용될 수 있다. 이동 장치(101, 102, 104, 및 105)가 애플리케이션의 4개의 클러스터 파트너이면, 각각의 클러스터 파트너는 그의 이동 장치 상의 카메라를 사용하여 객체의 사진을 찍을 수 있다. 사진은 상이한 시간 또는 동일한 시간에 찍힐 수 있고, 상이한 각도에서 찍힌 객체의 사진을 포함할 수 있다. 이동 장치(101)가 클러스터 마스터이면, 이동 장치(101)는 하나의 각도에서 객체의 사진을 캡처할 수 있고 또한 다른 클러스터 파트너(이동 장치(102, 104, 및 105))가 상이한 각도에서 객체의 사진을 캡처하고 사진을 이동 장치(101)에 송신하는 것을 요청할 수 있다. 이동 장치(101)는 객체의 3-D 이미지 또는 360°파노라마 뷰를 생성하도록 그의 클러스터 파트너로부터 수신된 사진 및 그 자체의 카메라에 의해 찍힌 사진을 처리하기 위해 사진 처리 애플리케이션을 실행할 수 있다. 그 다음, 이동 장치(101)는 생성된 이미지를 실시간으로 그의 클러스터 파트너와 공유할 수 있다. 그와 같이, 이동 장치(101, 102, 104, 및 105)는 객체의 3-D 이미지 또는 360°파노라마 뷰를 더 효과적으로 그리고 효율적으로 생성하기 위해 사진 처리 애플리케이션에 대해 협력할 수 있다.
다른 예에서, 클러스터 파트너는 음악 작곡의 다수의 트랙을 기록하는 것에 대해 협력할 수 있다. 클러스터 마스터로서의 이동 장치(101)는 그의 클러스터 파트너(이동 장치(102, 104, 및 105)) 각각에게 상이한 악기의 음악 트랙을 지정된 메트로놈 비트에서 기록하도록 명령할 수 있다. 이동 장치(102, 104, 및 105)에 의해 기록되는 3개의 트랙은 4개의 트랙 작곡을 합성하기 위해 이동 장치(101)에 전송되고 이동 장치(101)에 의해 기록되는 트랙과 결합될 수 있다. 그 다음, 이동 장치(101)는 합성된 작곡을 실시간으로 그의 3개의 클러스터 파트너와 공유할 수 있다.
각각의 클러스터 멤버는 그의 클러스터 파트너와 애플리케이션에 대해 협력하거나 장치 기능을 공유하도록 그의 가용성을 나타내기 위해 주기적인 심박동 신호를 방출할 수 있다. 클러스터 멤버에 대한 심박동 신호는 그의 IP 어드레스와 같은 이동 장치의 식별 정보를 포함하는 데이터 패킷일 수 있고, 또한 이동 장치가 가입할 수 있는 애플리케이션 또는 이동 장치가 공유할 수 있는 장치 기능에 대한 정보를 포함할 수 있다. 클러스터 멤버는 클러스터 멤버 또는 클러스터 마스터에 의해 설정된 주파수에서 그의 심박동 신호를 다른 클러스터 멤버에 브로드캐스트할 수 있다. 클러스터 멤버가 더 이상 임의의 애플리케이션에 대해 협력하거나 임의의 장치 기능을 공유하는 데 이용 가능하지 않을 때, 그것은 심박동 신호를 송신하는 것을 정지할 수 있다. 클러스터 마스터는 클러스터 멤버로부터의 심박동 신호를 감시하고 공유된 애플리케이션에 대해 협력하거나 장치 기능을 공유하도록 강화될 수 있는 멤버를 결정할 수 있다. 예를 들어, 클러스터 마스터로서의 이동 장치(101)에 의해 유지되는 클러스터 데이터베이스는 이동 장치(101)가 메모리의 부족으로 실행되고 있을 때 이동 장치(102 및 104)의 메모리가 강화될 자격이 있는 것을 표시할 수 있다. 이동 장치(101)가 심박동 신호를 이동 장치(104)로부터 검출하지만, 이동 장치(102)로부터 검출하지 못하면, 이동 장치(101)가 메모리의 부족으로 실행할 때 이동 장치(104)의 메모리만이 강화될 것이다. 이동 장치(101)는 이동 장치(101)가 이동 장치(104)의 메모리를 강화하고 있을 때 이동 장치(104)의 심박동 신호를 계속해서 감시할 수 있다. 이동 장치(104)가 메모리 또는 배터리 전력의 부족으로 실행되고 있을 때, 이동 장치(104)는 그의 메모리가 더 이상 이용 가능하지 않을 것을 표시하기 위해 심박동 신호를 방출하는 것을 정지할 수 있다. 그 다음, 이동 장치(101)는 이동 장치(104)의 메모리를 강화하는 것을 정지할 수 있다. 클러스터 마스터는 클러스터 데이터베이스가 애플리케이션에 대해 협력하거나 장치 기능을 공유하기 위해 클러스터 멤버의 현재 가용성을 반영하도록 클러스터 멤버로부터 수신된 심박동 신호에 기초하여 클러스터 데이터베이스를 동적으로 갱신할 수 있다. 게다가, 클러스터 마스터는 새로운 멤버가 클러스터에 가입하거나 기존 멤버가 클러스터를 떠남에 따라, 또는 새로운 애플리케이션 또는 장치 기능이 식별됨에 따라 클러스터 데이터베이스를 갱신할 수 있다.
하나 이상의 실시예에서, 클러스터 마스터는 클러스터에 가입하고자 하는 요청을 새로운 이동 장치로부터 수신할 수 있다. 클러스터 마스터는 이동 장치가 연락처 리스트에 속하는 것을 검증함으로써, 사용자가 보안 코드를 제공하도록 요청함으로써, 또는 다른 핸드쉐이킹 프로토콜을 통해 요청 이동 장치를 인증할 수 있다. 인증의 레벨은 네트워크의 사이즈, 네트워크의 보안, 또는 클러스터 파트너의 수의 기능일 수 있다. 예를 들어, 네트워크(103)가 집 내의 이동 장치를 연결하는 WiFi 네트워크이면, 인증의 레벨은 낮을 수 있다. 한편, 네트워크(103)가 인터넷이면, 더 안전한 인증 프로토콜이 필요할 수 있다. 이동 장치가 인증되면, 클러스터 마스터는 클러스터 멤버로서 새로운 이동 장치의 IP 어드레스, 전화 번호, 또는 다른 장치/사용자 식별자를 추가하기 위해 클러스터 데이터베이스를 갱신한다. 클러스터 마스터는 또한 이동 장치가 그의 클러스터 파트너와 협력하거나 공유하기를 원하도록 이동 장치가 애플리케이션 또는 장치 기능을 식별하는 것을 요청할 수 있다. 대안으로, 클러스터 마스터는 이동 장치가 협력하거나 공유하도록 애플리케이션 또는 장치 기능을 지정할 수 있다. 클러스터 마스터는 클러스터 파트너로서의 이동 장치를 클러스터 데이터베이스에서 유지되는 협력 애플리케이션 또는 공유 장치 기능의 리스트에 추가할 수 있다.
도 2는 본 개시의 하나 이상의 실시예에 따른 이동 장치의 클러스터에 가입하는 이동 장치를 구성하고 클러스터 마스터가 이동 장치가 애플리케이션에 대해 협력하거나 장치 기능을 공유할 것을 요청하는 방법을 예시하는 흐름도를 도시한다.
단계(201)에서, 클러스터 마스터는 클러스터에 가입하고자 하는 요청을 이동 장치로부터 수신한다. 이동 장치는 클러스터 마스터에 인접할 수 있고 로컬 WiFi 네트워크를 통해 클러스터 마스터에 연결될 수 있다. 대안으로, 이동 장치는 도시에 걸쳐 위치될 수 있고 광역 네트워크를 통해 클러스터 마스터에 연결될 수 있다. 대안으로, 이동 장치는 전세계에 걸쳐 위치될 수 있고 인터넷을 통해 클러스터 마스터에 연결될 수 있다. 클러스터 마스터는 이동 장치와 연관된 IP 어드레스, 전화 번호, 또는 다른 장치/사용자 식별자와 같은, 고유 식별자를 찾음으로써 이동 장치가 클러스터 멤버인지를 판단하기 위해 클러스터 데이터베이스를 검색할 수 있다. 이동 장치가 클러스터 데이터베이스에서 발견되지 않으면, 클러스터 마스터는 단계(203)에서 요청 이동 장치를 인증할 수 있다. 언급된 바와 같이, 인증 단계에서의 보안의 레벨은 네트워크 사이즈의 기능일 수 있다. 예를 들어, 이동 장치가 로컬 WiFi에 연결되면, 그것은 이동 장치가 신뢰된 사용자의 연락처 리스트 상에 있는 것을 간단히 검증함으로써 인증될 수 있다. 한편, 이동 장치가 인터넷에 연결되면, 이동 장치의 사용자가 계정 및 보안 코드를 설정하는 것을 필요로 하는 더 안전한 인증 프로토콜이 요구될 수 있다.
단계(205)에서, 이동 장치가 인증된 후에, 클러스터 마스터는 그의 IP 어드레스, 전화 번호, 장치 식별자, 사용자 계정, 보안 코드 등과 같은 이동 장치 상의 정보를 포함하도록 클러스터 데이터베이스를 갱신할 수 있다. 클러스터 마스터는 또한 클러스터 마스터가 이동 장치의 어떤 자원 또는 장치 기능이 강화될 수 있는지를 판단하는 것을 돕기 위해 클러스터 데이터베이스가 이러한 정보로 갱신될 수 있도록 이동 장치가 그의 장치 특징, 기능, 구성 등을 제공하는 것을 요청할 수 있다. 단계(207)에서, 클러스터 마스터는 클러스터 마스터가 이동 장치가 협력하거나 공유하는 것을 요청하는 애플리케이션 또는 장치 기능을 지정한다. 클러스터 마스터는 추가 클러스터 파트너를 갖는 것으로부터 이익을 얻는 애플리케이션을 지정할 수 있다. 예를 들어, 이동 장치가 카메라를 갖는다면, 클러스터 마스터는 이동 장치가 감시를 위한 추가 카메라를 제공하기 때문에 이동 장치와의 협력을 위한 폐쇄 회로 TV 애플리케이션을 지정할 수 있다. 유사하게, 이동 장치가 기록 능력을 갖는다면, 음악 작곡 애플리케이션은 또한 이동 장치가 악기의 추가 트랙을 기록하는 능력을 제공하기 때문에 협력을 위해 지정될 수 있다. 애플리케이션에 대해 협력하기 위해 클러스터 데이터베이스에서 식별되는 클러스터 파트너가 이미 있다면, 이동 장치는 추가 클러스터 파트너일 수 있다. 클러스터 마스터는 또한 그것이 이동 장치로부터 강화하고 싶어하는 장치 기능을 지정할 수 있다. 장치 기능을 공유하기 위해 클러스터 데이터베이스에서 식별되는 클러스터 파트너가 이미 있다면, 이동 장치는 일차 클러스터 파트너의 장치 기능이 이용 불가능한 경우 이동 장치의 장치 기능이 강화될 수 있도록 이차 클러스터 파트너일 수 있다. 대안으로, 이동 장치의 장치 기능은 다른 클러스터 파트너 또는 파트너의 것과 동시에 강화될 수 있다.
단계(209)에서, 클러스터 마스터는 이동 장치가 단계(207)에서 지정된 애플리케이션에 가입하거나 장치 기능을 공유하도록 요청한다. 이동 장치는 그의 클러스터 파트너와 가입하거나 공유하는 요청된 애플리케이션 또는 장치 기능 중 어느 것을 판단할 수 있다. 예를 들어, 이동 장치의 배터리가 저장 용량이 부족하면, 이동 장치는 그의 배터리를 공유하기를 원하지 않을 수 있다. 유사하게, 이동 장치가 고정된 위치에 있지 않으면, 그것은 추가 카메라를 제공하기 위해 폐쇄 회로 TV 애플리케이션에 가입하기를 원하지 않을 수 있다. 단계(211)에서, 클러스터 마스터는 이동 장치가 기꺼이 가입하거나 공유하는 어느 애플리케이션 또는 장치 기능에 관해 이동 장치로부터 응답을 수신한다. 클러스터 마스터는 클러스터 파트너로서의 이동 장치를 이동 장치가 가입하거나 공유하고 있는 그러한 애플리케이션 및 장치 기능에 추가하기 위해 클러스터 데이터베이스를 갱신한다. 장치 기능에서 공유하는 하나보다 많은 클러스터 파트너가 있을 때, 클러스터 파트너는 클러스터 파트너가 클러스터 데이터베이스에 리스팅되는 순서로 강화될 수 있다. 예를 들어, 배터리에 대한 장치 기능이 제 2 클러스터 파트너로서 새롭게 추가된 이동 장치 전에 제 1 클러스터 파트너를 리스팅하면, 이동 장치의 배터리는 클러스터 마스터 및 제 1 클러스터 파트너의 배터리가 둘 다 부족할 때만 강화될 수 있다. 반대로, 배터리에 대한 장치 기능이 이동 장치 후에 제 3 클러스터 파트너를 리스팅하면, 이동 장치는 이동 장치의 배터리가 부족할 때 제 3 클러스터 파트너의 배터리를 강화할 수 있다. 클러스터 마스터가 클러스터 데이터베이스를 갱신한 후에, 클러스터 데이터베이스의 사본은 이동 장치가 그것이 가입하도록 호출될 수 있는 어느 애플리케이션, 이동 장치가 제공할 수 있는 어느 장치 기능, 및 다른 클러스터 파트너의 어는 장치 기능이 이동 장치에 의해 강화될 수 있는 것을 알도록 이동 장치를 포함하는 모든 클러스터 파트너에 분배될 수 있다.
도 3은 본 개시의 하나 이상의 실시예에 따른 이동 장치를 구성하는 클러스터 마스터가 이동 장치의 클러스터에 가입하고 이동 장치가 협력 또는 공유를 위한 애플리케이션 또는 장치 기능을 지정하는 방법을 예시하는 흐름도를 도시한다. 단계(301)에서, 클러스터 마스터는 클러스터에 가입하고자 하는 요청을 이동 장치로부터 수신한다. 이동 장치는 클러스터에 가입하는 새로운 장치 또는 그것이 클러스터에 재가입하기를 원하는 것을 나타내는 그의 심박동 신호를 재활성화하는 기존 클러스터 멤버일 수 있다. 클러스터 마스터는 도 2의 단계(203)와 유사하게, 단계(303)에서 요청 이동 장치를 인증할 수 있다. 이동 장치가 새로운 장치이면, 단계(305)에서, 클러스터 마스터는 단계(205)와 유사하게 이동 장치 및 그의 장치 특징, 기능, 구성 등에 대한 정보를 포함하도록 클러스터 데이터베이스를 갱신할 수 있다. 한편, 이동 장치가 클러스터에 재가입하고 있으면, 클러스터 마스터는 이동 장치가 가입하거나 공유하고 있는 애플리케이션 및 장치 기능을 포함하기 위해 심박동 신호를 판독하고 클러스터 데이터베이스를 갱신할 수 있다. 단계(307)에서, 이동 장치가 새로운 장치이면, 이동 장치는 이동 장치가 가입하거나 공유하기를 원하는 애플리케이션 또는 장치 기능을 클러스터 마스터에 표시할 수 있다. 이것은 클러스터 마스터가 이동 장치가 지정된 애플리케이션에 대해 협력하거나 지정된 장치 기능을 공유하도록 요청하는 도 2와 대조적이다. 이동 장치로부터 수신되는 바와 같이 협력 애플리케이션 또는 공유 장치 기능이 클러스터 마스터에 의해 이전에 식별되지 않았다면, 클러스터 마스터는 추가 클러스터 파트너가 애플리케이션에 대해 협력하거나 장치 기능을 공유하도록 요청할 수 있다. 단계(309)에서, 클러스터 마스터는 단계(307)에서 수신된 애플리케이션 및 장치 기능을 위한 클러스터 파트너로서 이동 장치를 추가하기 위해 클러스터 데이터베이스를 갱신한다.
도 4는 본 개시의 하나 이상의 실시예에 따른 클러스터 마스터에 의해 요청된 바와 같이 클러스터 멤버가 상주 애플리케이션에 대해 협력하는 방법을 예시하는 흐름도를 도시한다.
단계(401)에서, 클러스터 마스터는 애플리케이션에 가입하거나 장치 기능을 제공하는 데 이용 가능한 클러스터 멤버로부터 심박동 신호 신호를 수신한다. 수신된 심박동 신호에 기초하여, 클러스터 마스터는 이용 가능한 클러스터 멤버, 및 각각의 이용 가능한 클러스터 멤버로부터 협력을 위한 애플리케이션 및 공유를 위한 장치 기능을 식별한다. 클러스터 마스터는 클러스터 데이터베이스에서 각각의 애플리케이션 또는 장치 기능에 대한 클러스터 파트너의 리스팅을 적절히 갱신할 수 있다. 그의 심박동 신호를 송신하는 것을 정지했던 클러스터 멤버는 클러스터 데이터베이스에서 이용 불가능한 멤버로서 식별되고 그의 연관된 엔트리로부터 클러스터 파트너로서 제거될 수 있다. 단계(403)에서, 사용자는 그의 클러스터 파트너와의 협력으로 클러스터 마스터 상에서 실행하는 공유된 애플리케이션을 선택한다. 예를 들어, 사용자는 4개의 기록 트랙까지 갖는 음악 작곡을 생성하는 음악 작곡 애플리케이션을 선택할 수 있다.
단계(405)에서, 클러스터 마스터는 선택된 애플리케이션에 대해 협력하는 데 이용 가능한 클러스터 파트너를 식별하기 위해 클러스터 데이터베이스를 검색한다. 클러스터 마스터는 그것이 선택된 애플리케이션에 대해 협력하기 위해 초대하는 클러스터 파트너를 선택한다. 예를 들어, 음악 작곡 애플리케이션에 대해, 클러스터 마스터는 클러스터 데이터베이스에서 음악 작곡 애플리케이션을 위한 이용 가능한 클러스터 파트너의 리스트로부터 클러스터 파트너를 선택함으로써 4개의 기록 트랙을 갖는 음악 작곡에 대해 협력하기 위해 3개의 추가 클러스터 파트너를 선택할 수 있다. 단계(407)에서, 클러스터 마스터는 애플리케이션에 가입하기 위해 선택된 클러스터 파트너를 초대한다. 이것은 클러스터 파트너의 사용자가 초대를 통지받을 수 있도록 텍스트 메시지, 팝업, 음성으로서, 다른 수단에 의해, 또는 프로토콜의 조합에 의해 송신될 수 있다. 클러스터 파트너는 클러스터 마스터로부터 초대를 수신하고, 각각의 클러스터 파트너의 사용자는 초대를 수락하거나 거절할 수 있다. 예를 들어, 클러스터 마스터는 사용자가 초대를 수락하거나 거절하도록 클러스터 파트너의 이동 장치 상에 링크 또는 메뉴 버튼을 제공할 수 있다. 사용자가 링크를 클릭하거나 버튼을 누를 때, 클러스터 파트너는 응답을 다시 클러스터 마스터에 송신한다. 단계(409)에서, 클러스터 마스터는 응답을 수신하고 초대를 수락했던 클러스터 파트너에게 애플리케이션에 대해 협력하도록 명령한다. 본 개시의 하나 이상의 실시예에서, 클러스터 마스터는 클러스터 파트너를 초대하지 않고 클러스터 파트너로부터 요청의 수락을 대기하지 않으면서 클러스터 파트너에게 애플리케이션에 대해 협력하도록 명령할 수 있다. 클러스터 마스터는 데이터를 처리하거나 생성하도록 특정 애플리케이션을 활성화하기 위해 커맨드 및 명령을 클러스터 파트너에 송신할 수 있다. 커맨드 또는 명령은 텍스트 메시지, 팝업 커맨드, 음성, APT 커맨드로서, 다른 수단에 의해, 또는 프로토콜의 조합에 의해 송신될 수 있다. 클러스터 마스터는 또한 처리를 위해 데이터를 클러스터 파트너에 송신할 수 있다. 예를 들어, 음악 작곡 애플리케이션에 대해, 클러스터 마스터는 음악 작곡에 대해 협력하기 위해 3개의 클러스터 파트너를 초대할 수 있다. 모든 3개의 클러스 파트너가 초대를 수락하면, 클러스터 마스터는 각각의 클러스터 파트너에게 지정된 시간 길이 동안 선택된 악기로 트랙을 기록하도록 명령할 수 있다. 임의의 클러스터 파트너가 수락을 거절하면, 클러스터 마스터는 애플리케이션에 가입하기 위해 초대하는 다른 클러스터 파트너를 선택하기 위해 클러스터 데이터베이스를 검색할 수 있다. 기록을 시작하는 명령의 일부로서, 클러스터 마스터는 클러스터 파트너 및 클러스터 마스터에 의해 기록되는 4개의 트랙을 동기화하기 위해 메트로놈 비트를 지정할 수 있다.
단계(411)에서, 클러스터 파트너는 애플리케이션에 대해 협력하고 요청된 데이터를 다시 클러스터 마스터에 송신한다. 하나 이상의 실시예에서, 클러스터 파트너는 모든 요청된 데이터가 생성되었을 때 애플리케이션의 실행을 정지하고 완료 메시지를 다시 클러스터 마스터에 송신할 수 있다. 다른 실시예에서, 클러스터 파트너는 클러스터 마스터에 의해 정지하도록 지시될 때까지 데이터를 계속해서 생성할 수 있다. 클러스터 파트너가 애플리케이션에 대해 협력하고 있는 시간 동안, 클러스터 파트너는 그것이 애플리케이션에 대해 협력하고 있거나 그것이 다른 애플리케이션을 실행하는 데 이용 가능하지 않은 것을 표시하기 위해 심박동 신호를 계속해서 생성할 수 있다. 단계(413)에서, 클러스터 마스터는 클러스터 파트너로부터 수신된 데이터 및 클러스터 마스터에 의해 내적으로 생성된 데이터를 사용하여 애플리케이션으로부터 최종 출력을 생성한다. 단계(415)에서, 클러스터 마스터는 애플리케이션으로부터의 최종 출력을 협력 클러스터 파트너와 공유한다. 예를 들어, 음악 작곡 애플리케이션에 대해, 3개의 클러스터 파트너 각각은 클러스터 마스터와 함께 지정된 메트로놈 비트에서 선택된 악기로 음악의 트랙을 기록한다. 3개의 클러스터 파트너는 3개의 기록된 트랙을 클러스터 마스터에 송신한다. 클러스터 마스터는 최종 음악 작곡을 생성하기 위해 클러스터 파트너로부터의 3개의 기록된 트랙을 그 자체의 기록된 트랙과 결합한다. 그 다음, 클러스터 마스터는 최종 음악 작곡을 3개의 클러스터 파트너와 공유할 수 있다.
도 4에 약술된 단계는 또한 클러스터 마스터 없이 구현될 수 있다. 예를 들어, 클러스터 내의 각각의 멤버는 클러스터 데이터베이스의 사본을 유지할 수 있다. 임의의 멤버는 애플리케이션에 대해 협력하는 데 이용 가능한 클러스터 파트너를 식별하거나 장치 기능을 공유하기 위해 임의의 다른 클러스터 멤버로부터 수신된 심박동 신호를 감시할 수 있다. 멤버는 클러스터 데이터베이스에서 각각의 애플리케이션 또는 장치 기능에 대한 클러스터 파트너의 리스팅을 적절히 갱신할 수 있다. 멤버가 애플리케이션을 실행하기를 원할 때, 그것은 애플리케이션에 가입하는 이용 가능한 클러스터 파트너의 리스팅으로부터 그것이 초대하는 클러스터 파트너를 선택하기 위해 클러스터 데이터베이스를 검색할 수 있다. 초대는 클러스터 파트너의 사용자가 초대를 통지받을 수 있도록 텍스트 메시지, 팝업, 음성으로서, 다른 수단에 의해, 또는 프로토콜의 조합에 의해 송신될 수 있다. 초대는 사용자가 초대를 수락하거나 거절하도록 클러스터 파트너의 이동 장치 상에 링크 또는 메뉴 버튼을 제공할 수 있다. 사용자가 링크를 클릭하거나 버튼을 누름으로써 초대를 수락할 때, 클러스터 파트너는 모든 다른 클러스터 파트너에 의해 수신되는 확인 응답을 송신한다. 따라서, 임의의 멤버는 애플리케이션에 대해 협력하는 데 이용 가능한 클러스터 파트너에 대한 지식을 갖는다.
멤버는 데이터를 처리하거나 생성하기 위해 특정 애플리케이션을 활성화하도록 커맨드 및 명령을 그것의 클러스터 파트너에 송신함으로써 애플리케이션을 활성화할 수 있다. 커맨드 또는 명령은 텍스트 메시지, 팝업 커맨드, 음성, API 커맨드로서, 또는 다른 수단에 의해 송신될 수 있다. 애플리케이션이 활성화될 때, 각각의 클러스터 파트너는 데이터를 생성하거나 처리하고 데이터를 그것의 다른 모든 클러스터 파트너에 송신할 수 있고 또한 모든 그것의 다른 클러스터 파트너로부터 데이터를 수신할 수 있다. 클러스터 파트너 사이의 데이터의 이동은 다수의 프로토콜의 조합에 의해 이루어질 수 있다. 유사하게, 멤버는 다수의 프로토콜의 조합에 의해 커맨드 또는 명령을 그것의 클러스터 파트너에 송신할 수 있다. 따라서, 각각의 클러스터 파트너는 다른 클러스터 파트너와 협력하여 애플리케이션으로부터 그것의 최종 출력을 생성할 수 있다. 예를 들어, 음악 작곡 애플리케이션에 대해, 각각의 클러스터 파트너는 작곡의 음악 트랙을 기록하고, 그것의 기록을 모든 클러스터 파트너에 송신하고, 모든 그것의 클러스터 파트너로부터 기록을 수신하고, 최종 음악 작곡을 생성한다.
도 5는 본 개시의 하나 이상의 실시예에 따른 클러스터 슬레이브에 의해 요청된 바와 같이 클러스터 멤버가 상주 애플리케이션에 대해 협력하는 방법을 예시하는 흐름도를 도시한다.
단계(501)에서, 클러스터 마스터는 애플리케이션을 시작하고자 하는 요청을 멤버로부터 수신한다. 클러스터 마스터는 애플리케이션에 가입하기를 원할 수 있는 추가 클러스터 파트너를 식별하기 위해 클러스터 데이터베이스를 검색할 수 있다. 단계(407)와 유사하게, 클러스터 마스터는 애플리케이션에 가입하기 위해 추가 클러스터 파트너를 초대할 수 있다. 초대는 클러스터 파트너의 사용자가 초대를 통지받을 수 있도록 텍스트 메시지, 팝업, 음성으로서, 다른 수단에 의해, 또는 프로토콜의 조합에 의해 송신될 수 있다. 초대는 사용자가 초대를 수락하거나 거절하도록 클러스터 파트너의 이동 장치 상에 링크 또는 메뉴 버튼을 제공할 수 있다. 단계(409)와 유사하게, 사용자가 링크를 클릭하거나 버튼을 누름으로써 초대를 수락할 때, 클러스터 파트너는 클러스터 마스터에 의해 수신되는 확인 응답을 송신한다. 단계(503)에서, 멤버는 클러스터 마스터에서 애플리케이션을 활성화한다. 멤버는 데이터를 처리하거나 생성하기 위해 어떤 애플리케이션을 활성화하도록 커맨드 및 명령을 클러스터 마스터에 송신할 수 있다. 커맨드 또는 명령은 텍스트 메시지, 팝업 커맨드, 음성, API 커맨드로서, 또는 다른 수단에 의해 송신될 수 있다. 멤버는 또한 처리를 위해 데이터를 클러스터 마스터에 송신할 수 있다. 클러스터 마스터는 사용자에 의한 선택을 위해 멤버의 이동 장치 상에 링크 또는 메뉴 버튼을 제공함으로써와 같이 멤버로부터 추가 입력을 요청할 수 있다. 단계(505)에서, 클러스터 마스터는 애플리케이션을 실행하고 데이터를 애플리케이션으로부터 멤버로 그리고 가입했던 다른 클러스터 파트너로 출력한다. 클러스터 마스터는 또한 애플리케이션에 대한 데이터를 멤버 및 클러스터 파트너로부터 수신할 수 있다. 예를 들어, 클러스터 멤버는 비디오 서버에 연결된 클러스터 마스터로부터 비디오 스트리밍 서비스를 요청할 수 있다. 클러스터 마스터는 비디오 스트리밍 서비스에 대한 추가 클러스터 파트너를 식별하기 위해 클러스터 데이터베이스를 검색할 수 있다. 클러스터 마스터는 비디오 스트리밍 서비스에 가입하기 위해 추가 클러스터 파트너를 초대할 수 있다. 클러스터 마스터는 클러스터 멤버 상에 비디오 메뉴를 제공함으로써 비디오 서버로부터 이용 가능한 비디오를 선택하기 위해 클러스터 멤버를 요청할 수 있다. 클러스터 멤버의 사용자가 비디오를 선택한 후, 클러스터 마스터는 선택된 비디오를 클러스터 멤버로 그리고 가입했던 모든 다른 클러스터 파트너로 스트리밍하기 위해 비디오 스트리밍 서비스를 시작한다.
클러스터 파트너는 애플리케이션 내의 그것의 연속 참여를 그것의 심박동 신호를 통해 다른 클러스터 파트너로 시그널링할 수 있다. 따라서, 클러스터 파트너가 더 이상 애플리케이션에 참여하기를 원하지 않을 때, 그것은 그것의 심박동 신호를 송신하는 것을 정지할 수 있다. 대안으로, 클러스터 파트너는 그것이 더 이상 애플리케이션에 참여하고 있지 않은 것을 표시하는 심박동 신호 또는 메시지를 송신할 수 있다. 단계(507)에서, 클러스터 마스터는 클러스터 파트너 중 어느 것이 애플리케이션에 참여하는 것을 중단했는지를 판단하기 위해 클러스터 파트너의 심박동 신호를 감시한다. 클러스터 마스터는 데이터를 애플리케이션으로부터, 애플리케이션에서의 그의 참여를 중단하고 있는 그러한 클러스터 파트너로 출력하는 것을 중단하고, 데이터를 그러한 데이터 파트너로부터 애플리케이션으로 수신하는 것을 중단한다. 단계(509)에서, 클러스터 마스터는 애플리케이션에 가입하는 적어도 하나의 클러스터 파트너로부터 심박동 신호가 있는지를 판단한다. 애플리케이션에 가입하는 적어도 하나의 클러스터 파트너로부터 심박동 신호가 있다면, 클러스터 마스터는 데이터를 애플리케이션에 대한 활성 클러스터 파트너로 출력하고 데이터를 활성 클러스터 파트너로부터 수신하는 것을 계속한다. 애플리케이션에 가입하는 클러스터 파트너 중 어느 것으로부터 심박동 신호가 없다면, 클러스터 마스터는 단계(511)에서 애플리케이션을 종료한다. 예를 들어, 비디오 스트리밍 서비스에 대해, 클러스터 파트너가 스트리밍 비디오를 턴 오프할 때, 클러스터 파트너는 그것의 심박동 신호를 송신하는 것을 정지할 수 있다. 클러스터 마스터는 스트리밍 비디오를 수신하는 모든 클러스터 파트너로부터 심박동 신호를 감시할 수 있고 심박동 신호가 누락된 임의의 클러스터 파트너에 스트리밍 비디오를 종결할 수 있다. 모든 클러스터 파트너가 비디오를 턴 오프했을 때, 클러스터 마스터는 클러스터 파트너 중 어느 것으로부터 심박동 신호를 검출하지 않는다. 그 다음, 클러스터 마스터는 비디오 스트리밍 서비스를 종결할 수 있다.
도 6은 본 개시의 하나 이상의 실시예에 따른 클러스터 멤버가 장애 조치 상태에서 장치 기능을 공유하는 방법을 예시하는 흐름도를 도시한다.
단계(601)에서, 클러스터 마스터는 장치 기능을 제공하는 데 이용 가능한 클러스터 멤버로부터 심박동 신호를 수신한다. 단계(401)와 유사하게, 클러스터 마스터는 이용 가능한 것으로 식별된 클러스터 멤버에 기초한 클러스터 데이터베이스에서 각각의 장치 기능에 대한 클러스터 파트너의 리스팅을 갱신할 수 있다. 클러스터 멤버는 그것이 장치 기능을 이용 불가능하게 하는 애플리케이션을 실행하고 있을 때, 또는 배터리 전력이 낮을 때 등과 같은, 다양한 이유로 장치 기능을 제공하는데 이용 가능하지 않을 수 있다. 갱신된 클러스터 데이터베이스는 모든 클러스터 멤버에 전달될 수 있다. 단계(603)에서, 일차 멤버로 지칭되는 클러스터 멤버는 장애 조치 상태를 검출한다. 단계(605)에서, 일차 멤버는 장애 조치 상태와 연관된 장치 기능을 제공하는 데 이용 가능한 클러스터 파트너를 식별하기 위해 클러스터 데이터베이스를 검색한다. 언급된 바와 같이, 이동 장치의 장치 기능은 음성, 셀룰러 데이터, 배터리, WiFi, 메모리, CPU, 디스플레이, GPS 등을 포함할 수 있다. 음성 및 셀룰러 데이터와 연관된 장애 조치 상태는 이동 장치가 나쁜 셀룰러 신호 수신을 경험하고 있을 때 발생할 수 있고; 배터리와 연관된 장애 조치 상태는 배터리 전력이 특정 임계값 레벨 아래일 때 발생할 수 있고; WiFi와 연관된 장애 조치 상태는 WiFi 신호 강도가 낮을 때 또는 이용 가능한 대역폭이 낮을 때 발생할 수 있고; 메모리와 연관된 장애 조치 상태는 이동 장치가 물리 또는 가상 메모리의 부족으로 실행되고 있을 때 발생할 수 있고; CPU와 연관된 장애 조치 상태는 이동 장치의 CPU가 과부하될 때 발생할 수 있다.
예를 들어, 일차 멤버는 테더링된(tethered) WiFi 연결을 랩톱에 제공하고 있을 수 있다. 클러스터 마스터는 WiFi를 포함하는 장치 기능을 제공하는 데 이용 가능한 클러스터 파트너로부터 심박동 신호를 감시할 수 있다. 클러스터 마스터는 WiFi 기능을 제공하고 클러스터 데이터베이스를 일차 멤버에 전달하는 데 이용 가능한 클러스터 파트너를 포함하도록 클러스터 데이터베이스를 갱신할 수 있다. 일차 멤버가 WiFi 신호 강도가 나쁠 때 또는 이용 가능한 대역폭이 낮을 때와 같이 WiFi와 연관된 장애 조치 상태를 경험할 때, 일차 멤버는 랩톱으로의 테더링된 WiFi 연결이 중단 없이 운영될 수 있도록 WiFi 기능을 제공하는 데 이용 가능한 클러스터 파트너를 식별하기 위해 클러스터 데이터베이스를 검색할 수 있다.
단계(607)에서, 일차 멤버는 장애 조치 상태와 연관된 장치 기능을 제공하기 위해 식별된 클러스터 파트너를 요청한다. 요청은 클러스터 파트너의 사용자가 요청을 통지받을 수 있도록 텍스트 메시지, 팝업, 음성으로서, 또는 다른 수단에 의해 송신될 수 있다. 요청은 사용자가 요청을 수락하거나 거절하도록 클러스터 파트너의 이동 장치 상에 링크 또는 메뉴 버튼을 제공할 수 있다. 클러스터 파트너는 링크를 클릭하거나 버튼을 누름으로써 요청을 수락하거나 거절할 수 있다. 클러스터 파트너는 단계(609)에서 그것의 응답을 다시 일차 멤버에 송신한다. 클러스터 파트너가 요청을 거절하면, 일차 멤버는 장치 기능을 제공하는 데 이용 가능한 추가 클러스터 파트너를 식별하고 추가 클러스터 파트너를 요청하도록 클러스터 데이터베이스를 검색하기 위해 단계(605, 607, 및 609)를 반복할 수 있다. 클러스터 파트너가 요청을 수락하면, 일차 멤버는 단계(611)에서 클러스터 파트너에 장치 기능의 제공을 핸드오버함으로써 클러스터 파트너의 장치 기능을 강화한다. 예를 들어, 랩톱으로의 테더링된 WiFi 연결에 대해, 일차 멤버는 식별된 클러스터 파트너가 WiFi 기능을 제공하도록 요청할 수 있다. 클러스터 파트너가 요청을 수락하면, 일차 멤버는 클러스터 파트너에게 테더링된 WiFi 연결을 랩톱에 제공하도록 명령할 수 있다. 그 다음, 클러스터 파트너는 테더링된 WiFi 연결을 위해 새로운 일차 멤버가 된다. 새로운 일차 멤버는 차례로 WiFi 기능 또는 다른 장치 기능을 제공하는 데 이용 가능한 다른 클러스터 파트너를 가질 수 있다. 따라서, 상이한 장애 조치 상태에 걸쳐 임무 수행에 필수적인 애플리케이션의 연속 동작을 보장하기 위해 공유된 장치 기능의 계층이 있을 수 있다. 본 개시의 하나 이상의 실시예에서, 임무 수행에 필수적인 애플리케이션에 대해 일차 멤버는 클러스터 파트너부터의 요청의 수락을 대기하지 않으면서 클러스터 파트너의 장치 기능을 강화할 수 있다. 단계(613)에서, 일차 멤버의 장치 기능이 더 이상 요구되지 않을 때, 일차 멤버는 장치 기능을 사용하는 애플리케이션을 종결하고 다른 애플리케이션에 의한 사용을 위해 이용 가능한 장치 기능을 해제한다.
애플리케이션 가능한 경우에, 본 개시에 의해 제공되는 다양한 실시예는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어의 조합을 사용하여 구현될 수 있다. 또한 애플리케이션 가능한 경우에, 본 명세서에 진술된 다양한 하드웨어 구성요소 및/또는 소프트웨어 구성요소는 본 개시의 사상으로부터 벗어나지 않으면서 소프트웨어, 하드웨어, 및/또는 둘 다를 포함하는 복합 구성요소로 결합될 수 있다. 애플리케이션 가능한 경우에, 본 명세서에 진술된 다양한 하드웨어 구성요소 및/또는 소프트웨어 구성요소는 본 개시의 사상으로부터 벗어나지 않으면서 소프트웨어, 하드웨어, 또는 둘 다를 포함하는 서브구성요소로 분리될 수 있다. 게다가, 애플리케이션 가능한 경우에, 소프트웨어 구성요소가 하드웨어 구성요소로 구현될 수 있고, 그 역도 또한 마찬가지인 점이 고려된다.
이동 장치의 클러스터를 형성하고 이동 장치의 상주 애플리케이션 또는 장치 기능을 강화하기 위한 프로그램 코드 및/또는 데이터와 같은, 본 개시에 따른 애플리케이션 소프트웨어는 하나 이상의 컴퓨터 판독 가능 매체 상에 저장될 수 있다. 또한 본 명세서에서 식별된 애플리케이션 소프트웨어는 네트워킹되고/되거나 그렇지 않은 하나 이상의 범용 또는 특정 목적 컴퓨터 및/또는 컴퓨터 시스템을 사용하여 구현될 수 있다는 점이 고려된다. 애플리케이션 가능한 경우에, 본 명세서에 설명된 다양한 단계의 순서는 본 명세서에 설명된 특징을 제공하기 위해 변경되고/되거나, 복합 단계로 결합되고/되거나, 서브 단계로 분리될 수 있다.
본 개시의 실시예가 설명되었지만, 이러한 실시예는 본 개시를 예시하지만 제한하지는 않는다. 예를 들어, 이동 장치의 클러스터가 설명되지만, 고정 컴퓨팅 장치는 또한 클러스터로 구성하는 데에 적절할 수 있다. 또한 본 개시의 실시예가 이러한 실시예에 제한되지 않아야 하지만, 다양한 수정 및 변형이 본 개시의 원리에 따라 당업자에 의해 이루어지고 이하에 청구된 바와 같은 본 개시의 사상 및 범위 내에 포함되어야 한다는 점이 이해되어야 한다.

Claims (20)

  1. 클러스터 네트워크 내의 장치로서,
    프로세서와,
    하나 이상의 공유 자원 및 상기 공유 자원 각각에 대해 상기 공유 자원을 협력적으로 사용하는 데 이용 가능한 상기 클러스터 네트워크의 하나 이상의 클러스터 파트너를 리스팅하도록 구성된 클러스터 데이터베이스와,
    상기 장치가 상기 공유 자원을 협력적으로 사용하도록 하는 복수의 머신 판독 가능 명령어를 저장하도록 구성된 메모리를 포함하되,
    상기 메모리는
    상기 클러스터 데이터베이스를 갱신하기 위해 상기 클러스터 네트워크 상의 통신을 감시하고,
    협력 사용을 위한 자원을 결정하고 - 상기 자원은 상기 클러스터 데이터베이스 내의 상기 하나 이상의 공유 자원에 리스팅됨 - ,
    상기 자원에 대해 협력하기 위해 클러스터 파트너를 결정하고,
    상기 자원의 사용에 대해 상기 클러스터 파트너와 협력하도록 상기 프로세서에 의해 실행되는
    장치.
  2. 제 1 항에 있어서,
    상기 협력 사용을 위한 자원은, 애플리케이션을 실행하는데 요구되는 자원이 상기 장치와 상기 클러스터 파트너 사이에서 분배되는 상기 애플리케이션을 포함하고, 상기 장치는 상기 애플리케이션으로부터의 출력을 제공하기 위해 상기 장치 및 상기 클러스터 파트너 상에서 상기 자원의 사용을 조정하는
    장치.
  3. 제 1 항에 있어서,
    상기 클러스터 파트너와 협력하기 위해, 상기 장치는 상기 클러스터 파트너를 초대하고 상기 클러스터 파트너가 상기 장치와 협력할 준비가 되어 있다는 확인을 수신하는
    장치.
  4. 제 1 항에 있어서,
    상기 자원에 대해 협력하도록 클러스터 파트너를 결정하기 위해, 상기 장치는 상기 클러스터 데이터베이스로부터 상기 자원을 협력적으로 사용하는 데 이용 가능한 상기 하나 이상의 클러스터 파트너 중 상기 클러스터 파트너를 선택하는
    장치.
  5. 제 1 항에 있어서,
    상기 장치는 상기 클러스터 네트워크의 멤버로부터 상기 자원을 협력적으로 사용하라는 요청을 수신하고, 상기 장치와 협력하는 상기 클러스터 파트너는 상기 요청을 개시하는 상기 멤버인
    장치.
  6. 제 1 항에 있어서,
    상기 협력 사용을 위한 자원은 또한 상기 장치에서 발견되는 상기 클러스터 파트너의 장치 기능을 포함하고, 상기 장치가 상기 자원의 사용에 대해 상기 클러스터 파트너와 협력하기 위해, 상기 장치는 상기 클러스터 파트너에게 상기 장치의 장치 기능을 상기 클러스터 파트너의 장치 기능으로 대체하거나 확장하도록 명령하는
    장치.
  7. 제 6 항에 있어서,
    상기 클러스터 파트너의 장치 기능은 상기 장치 내의 장애 조치(failover) 상태에 기초하여 결정되고, 상기 클러스터 파트너의 장치 기능은 상기 장치 기능의 동작의 중단 없이 상기 장치의 장치 기능을 대체하거나 확장하는
    장치.
  8. 제 1 항에 있어서,
    상기 장치는 상기 클러스터 데이터베이스를 유지하고 상기 클러스터 네트워크의 상기 클러스터 파트너에 대한 멤버십을 관리하도록 구성된 클러스터 마스터인
    장치.
  9. 제 8 항에 있어서,
    상기 장치는 장애 조치 상태에서 상기 클러스터 마스터가 되도록 상기 클러스터 파트너를 지정하는
    장치.
  10. 제 1 항에 있어서,
    상기 클러스터 데이터베이스를 갱신하도록 상기 클러스터 네트워크 상의 통신을 감시하기 위해, 상기 장치는 상기 공유 자원 중 하나에 대해 협력하기 위한 가용성을 나타내는 클러스터 파트너로부터의 심박동 신호를 듣고, 상기 공유 자원을 협력적으로 사용하는 데 이용 가능한 하나 이상의 클러스터 파트너 중 하나로서 상기 클러스터 파트너를 포함하도록 상기 클러스터 데이터베이스를 갱신하는
    장치.
  11. 클러스터 네트워크의 클러스터 파트너 사이에서 공유 자원에 대해 협력하는 방법에 있어서,
    하나 이상의 공유 자원 및 상기 공유 자원 각각에 대해 상기 공유 자원을 협력적으로 사용하는 데 이용 가능한 상기 클러스터 네트워크의 하나 이상의 클러스터 파트너의 리스팅을 포함하는 클러스터 데이터베이스를 장치에 의해 유지하는 단계와,
    상기 클러스터 데이터베이스를 갱신하기 위해 상기 클러스터 네트워크 상의 통신을 상기 장치에 의해 감시하는 단계와,
    협력 사용을 위한 자원을 결정하는 단계 - 상기 자원은 상기 클러스터 데이터베이스 내의 상기 하나 이상의 공유 자원에 리스팅됨 - 와,
    상기 자원에 대해 협력하기 위해 클러스터 파트너를 결정하는 단계와,
    상기 자원의 사용에 대해 상기 장치와 상기 클러스터 파트너 사이에서 협력하는 단계를 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 협력 사용을 위한 자원은 애플리케이션을 실행하는 데 요구되는 자원이 상기 장치와 상기 클러스터 파트너 사이에서 분배되는 상기 애플리케이션을 포함하고, 상기 장치와 상기 클러스터 파트너 사이에서 협력하는 단계는 상기 애플리케이션을 실행할 때 상기 장치 및 상기 클러스터 파트너 상에서 상기 자원의 사용을 조정하는 단계를 포함하는
    방법.
  13. 제 11 항에 있어서,
    상기 장치와 상기 클러스터 파트너 사이에서 협력하는 단계는 상기 장치가 상기 클러스터 파트너를 초대하고 상기 클러스터 파트너가 상기 장치와 협력할 준비가 되어 있다는 확인을 상기 장치에 의해 수신하는 단계를 포함하는
    방법.
  14. 제 11 항에 있어서,
    상기 자원에 대해 협력하기 위해 클러스터 파트너를 결정하는 단계는 상기 장치가 상기 클러스터 데이터베이스로부터 상기 자원을 협력적으로 사용하는 데 이용 가능한 상기 하나 이상의 클러스터 파트너 중 상기 클러스터 파트너를 선택하는 단계를 포함하는
    방법.
  15. 제 11 항에 있어서,
    협력 사용을 위한 자원을 결정하는 단계는 상기 클러스터 네트워크의 멤버로부터 상기 자원을 협력적으로 사용하라는 요청을 상기 장치에 의해 수신하는 단계를 포함하고, 상기 장치와 상기 자원의 사용에 대해 협력하는 상기 클러스터 파트너는 상기 요청을 개시하는 멤버인
    방법.
  16. 제 11 항에 있어서,
    상기 협력 사용을 위한 자원은 또한 상기 장치에서 발견되는 상기 클러스터 파트너의 장치 기능을 포함하고, 상기 자원의 사용에 대해 상기 장치와 상기 클러스터 파트너 사이에서 협력하는 단계는 상기 장치의 장치 기능을 상기 클러스터 파트너의 장치 기능으로 대체하거나 확장하는 단계를 포함하는
    방법.
  17. 제 16 항에 있어서,
    상기 협력 사용을 위한 자원을 결정하는 단계는 상기 장치 내의 장애 조치 상태에 기초하여 상기 장치 기능을 결정하는 단계를 포함하고, 상기 장치의 장치 기능은 상기 장치 기능의 동작의 중단 없이 상기 클러스터 파트너의 장치 기능에 의해 대체되거나 확장되는
    방법.
  18. 제 11 항에 있어서,
    클러스터 마스터에 의해 상기 클러스터 데이터베이스를 유지하는 단계 및 상기 클러스터 마스터에 의해 상기 클러스터 네트워크의 상기 클러스터 파트너에 대한 멤버십을 관리하는 단계를 더 포함하는
    방법.
  19. 제 11 항에 있어서,
    상기 클러스터 네트워크 상의 통신을 상기 장치에 의해 감시하는 단계는, 상기 공유 자원 중 하나에 대해 협력하기 위한 가용성을 나타내는 클러스터 파트너로부터의 심박동 신호를 듣고, 상기 공유 자원의 사용에 대해 협력하는 데 이용 가능한 상기 하나 이상의 클러스터 파트너 중 하나로서 상기 클러스터 파트너를 포함하도록 상기 클러스터 데이터베이스를 갱신하는 단계를 포함하는
    방법.
  20. 장치의 하나 이상의 프로세서에 의해 실행될 때 상기 장치가 방법을 수행하게 하도록 구성되는 복수의 머신 판독 가능 명령어를 저장하도록 구성된 비일시적 컴퓨터 판독 가능 매체로서,
    상기 방법은
    하나 이상의 공유 자원 및 상기 공유 자원 각각에 대해 상기 공유 자원을 협력적으로 사용하는 데 이용 가능한 상기 클러스터 네트워크의 하나 이상의 클러스터 파트너의 리스팅을 포함하는 클러스터 데이터베이스를 장치에 의해 유지하는 단계와,
    상기 클러스터 데이터베이스를 갱신하기 위해 상기 클러스터 네트워크 상의 통신을 상기 장치에 의해 감시하는 단계와,
    협력 사용을 위한 자원을 결정하는 단계 - 상기 자원은 상기 클러스터 데이터베이스 내의 상기 하나 이상의 공유 자원에 리스팅됨 - 와,
    상기 자원에 대해 협력하기 위해 클러스터 파트너를 결정하는 단계와,
    상기 자원의 사용에 대해 상기 장치와 상기 클러스터 파트너 사이에서 협력하는 단계를 포함하는
    비일시적 컴퓨터 판독 가능 매체.
KR1020147036986A 2012-07-02 2013-07-02 이동 장치 및 애플리케이션의 클러스터링을 위한 시스템 및 방법 KR20150027771A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/539,809 US10061620B2 (en) 2012-07-02 2012-07-02 System and method for clustering of mobile devices and applications
US13/539,809 2012-07-02
PCT/US2013/049151 WO2014008303A2 (en) 2012-07-02 2013-07-02 System and method for clustering of mobile devices and applications

Publications (1)

Publication Number Publication Date
KR20150027771A true KR20150027771A (ko) 2015-03-12

Family

ID=49779323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147036986A KR20150027771A (ko) 2012-07-02 2013-07-02 이동 장치 및 애플리케이션의 클러스터링을 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US10061620B2 (ko)
EP (1) EP2867788A4 (ko)
KR (1) KR20150027771A (ko)
AU (1) AU2013286747B2 (ko)
WO (1) WO2014008303A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10405023B2 (en) 2016-08-16 2019-09-03 At&T Intellectual Property I, L.P. Method and apparatus for providing video content using collaborative end points

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101515043B1 (ko) * 2012-08-30 2015-04-24 한국전자통신연구원 협업 서비스 제공 서버 및 그 방법, 소셜리티 관리 서버
US9208676B2 (en) * 2013-03-14 2015-12-08 Google Inc. Devices, methods, and associated information processing for security in a smart-sensored home
WO2014052869A1 (en) * 2012-09-28 2014-04-03 Go Factory, LLC A massively distributed cloud-based platform providing features as a service to support mobile and web applications
US10425471B2 (en) * 2012-10-02 2019-09-24 Razer (Asia-Pacific) Pte. Ltd. Multi-tasker
US9848019B2 (en) * 2013-05-30 2017-12-19 Verizon Patent And Licensing Inc. Failover for mobile devices
WO2015051120A1 (en) * 2013-10-03 2015-04-09 Go Factory, LLC Creating, joining, finding, discovering, restoring and relocating process-based channels
US20200089702A1 (en) * 2013-10-10 2020-03-19 Pushd, Inc. Digital picture frames and methods of photo sharing
US11068905B2 (en) * 2014-03-31 2021-07-20 Red Hat, Inc. Behavior adjustment based on capabilities of a downstream server
FR3023662B1 (fr) * 2014-07-10 2017-10-20 Traxens Procede d'adhesion a une grappe de dispositifs electroniques communiquant via un resau sans fil, dispositif electronique mettant en oeuvre ledit procede, et systeme associes
US9743255B2 (en) * 2015-06-24 2017-08-22 Samsung Electronics Co., Ltd. Telephony collaboration system and method for a trusted environment
CN106357592A (zh) * 2015-07-17 2017-01-25 中兴通讯股份有限公司 资源共享方法、装置及系统
ES2703473B2 (es) * 2016-07-12 2020-10-22 Proximal Systems Corp Aparato, sistema y procedimiento de gestion de acoplamiento de intermediario
US10279068B2 (en) * 2017-03-01 2019-05-07 Dbg Group Investments, Llc Method and device for enhancing the reduction of pathogens, allergens and odor-causing agents
KR102648102B1 (ko) 2019-01-18 2024-03-18 삼성전자주식회사 전자 장치와 외부 서버 간에 어플리케이션 프로그램에 관한 작업 환경을 제공하는 방법 및 장치
US11082505B2 (en) * 2019-07-29 2021-08-03 Cisco Technology, Inc. Dynamic discovery of available storage servers
US11463516B2 (en) * 2020-06-29 2022-10-04 Amdocs Development Limited System, method, and computer program for distributed application execution using a cluster of mobile devices
WO2023046279A1 (en) * 2021-09-22 2023-03-30 Telefonaktiebolaget Lm Ericsson (Publ) Worker node cluster management

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003068A (en) * 1997-02-14 1999-12-14 Electronic Data Systems Corporation Method and apparatus for portably providing shared removable resources to a plurality of computing devices
US7403980B2 (en) 2000-11-08 2008-07-22 Sri International Methods and apparatus for scalable, distributed management of virtual private networks
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US6928476B2 (en) 2002-08-23 2005-08-09 Mirra, Inc. Peer to peer remote data storage and collaboration
US20040132445A1 (en) * 2003-01-03 2004-07-08 Gary Rogalski Methods and systems of sharing mutual resources between an external device and a cordless telephone via a communications medium
US20050071842A1 (en) * 2003-08-04 2005-03-31 Totaletl, Inc. Method and system for managing data using parallel processing in a clustered network
US20060172756A1 (en) * 2005-01-31 2006-08-03 Jacob Sharony System and method for clustering mobile devices in a wireless network
US7698391B2 (en) * 2005-05-16 2010-04-13 Oracle International Corporation Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate
US20070198744A1 (en) * 2005-11-30 2007-08-23 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8395652B1 (en) * 2006-06-28 2013-03-12 Insors Integrated Communications Data network collaboration systems having a shared file
US8402514B1 (en) * 2006-11-17 2013-03-19 Network Appliance, Inc. Hierarchy-aware role-based access control
KR100901872B1 (ko) * 2006-12-01 2009-06-09 한국전자통신연구원 그리드 서비스를 이용한 이종 노매딕/이동 통신 네트워크간 협업 시스템 및 그 방법
WO2010071884A2 (en) * 2008-12-19 2010-06-24 Watchguard Technologies, Inc. Self-monitoring cluster of network security devices
US8037187B2 (en) * 2009-12-11 2011-10-11 International Business Machines Corporation Resource exchange management within a cloud computing environment
US20120066487A1 (en) 2010-09-09 2012-03-15 Novell, Inc. System and method for providing load balancer visibility in an intelligent workload management system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10405023B2 (en) 2016-08-16 2019-09-03 At&T Intellectual Property I, L.P. Method and apparatus for providing video content using collaborative end points
US11019387B2 (en) 2016-08-16 2021-05-25 At&T Intellectual Property I, L.P. Method and apparatus for providing video content using collaborative end points

Also Published As

Publication number Publication date
EP2867788A4 (en) 2016-08-24
US20140006502A1 (en) 2014-01-02
US10061620B2 (en) 2018-08-28
WO2014008303A3 (en) 2015-07-30
AU2013286747A1 (en) 2015-01-29
WO2014008303A2 (en) 2014-01-09
AU2013286747B2 (en) 2016-05-12
EP2867788A2 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
KR20150027771A (ko) 이동 장치 및 애플리케이션의 클러스터링을 위한 시스템 및 방법
KR102578623B1 (ko) 통신 접속 방법 및 장치, 컴퓨터 디바이스, 및 저장 매체
US9294455B2 (en) Maintaining video conference session continuity during transfer of session to alternative device
US11316909B2 (en) Data transmission method and apparatus, and computer storage medium
US20190238401A1 (en) Method and apparatus for extending service capabilities in a communication network
CN112235121B (zh) 一种线上会议实现方法、装置、设备及存储介质
US8819199B2 (en) Method, apparatus, and computer program product for providing a smooth transition between peer-to-peer node types
KR102127019B1 (ko) 무선 네트워크 상에서의 멀티 모달 통신 우선순위
US7437126B2 (en) Radio terminal, communication control method and computer program
US9774824B1 (en) System, method, and logic for managing virtual conferences involving multiple endpoints
US8650309B2 (en) Cascading architecture for audio and video streams
WO2013166762A1 (zh) 个人网设备组网方法及系统
US20220286731A1 (en) Multimedia apparatus and cast method
US9112917B2 (en) Controller system and method therefor
JP4792495B2 (ja) 通信制御装置および方法
KR20220047034A (ko) Mec 서비스를 제공하기 위한 방법 및 장치
US9774640B2 (en) Method and system for sharing applications among a plurality of electronic devices
WO2013159479A1 (zh) 个人网管理方法和装置
KR101519935B1 (ko) 이벤트 관리 시스템
JP2004240906A (ja) セッション転送時の転送先端末発見方法、およびそれを実現するための通信システム
EP2043330A1 (en) Method of supporting a collaborative session
Shamsi et al. Macnet: Mobile adhoc collaborative networks
Toledano Opportunistic, collaborative and synchronized, proximal device ecology
CN114827097A (zh) 通信网络构建方法、装置及计算机设备
JP2009303069A (ja) マルチメディア会議制御装置及び方法及びプログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination