KR20230160392A - 로컬 클라우드용 근거리 통신망(lan)과 함께 고가용성 제어기를 사용하기 위한 방법 및 장치 - Google Patents

로컬 클라우드용 근거리 통신망(lan)과 함께 고가용성 제어기를 사용하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20230160392A
KR20230160392A KR1020237036790A KR20237036790A KR20230160392A KR 20230160392 A KR20230160392 A KR 20230160392A KR 1020237036790 A KR1020237036790 A KR 1020237036790A KR 20237036790 A KR20237036790 A KR 20237036790A KR 20230160392 A KR20230160392 A KR 20230160392A
Authority
KR
South Korea
Prior art keywords
network node
message
timer
available
processor
Prior art date
Application number
KR1020237036790A
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 KR20230160392A publication Critical patent/KR20230160392A/ko

Links

Classifications

    • 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/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • 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
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/827Aggregation of resource allocation or reservation requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

방법은 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 클라우드를 형성하는 네트워크 노드의 적어도 하나의 프로세서에 의해 수행된다. 상기 방법은 제1 타이머를 제1 값으로 설정하는 단계를 포함하고, 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관되어 있다. 상기 방법은 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계를 더 포함한다. 상기 방법은, 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계를 더 포함한다. 상기 방법은, 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계를 더 포함한다.

Description

로컬 클라우드용 근거리 통신망(LAN)과 함께 고가용성 제어기를 사용하기 위한 방법 및 장치
관련 출원에 대한 상호 참조
본 출원은 2021년 11월 30일에 출원된 미국 가특허출원 제63/284,529호와 2022년 10월 28일에 출원된 미국 특허출원 제17/976,451호에 기초하고 이들 출원에 대한 우선권을 주장하며,그 개시내용은 참조에 의해 그 전체가 본 명세서에 포함된다.
개시된 주제는 에지 클라우드용 고가용성(high availability) 서비스로서 사용될 수 있는 다수의 디바이스를 포함하여 구성된 로컬 클라우드를 생성하기 위한 방법 및 시스템에 관한 것이다.
클라우드 컴퓨팅은 인터넷을 통해 컴퓨팅 자원, 애플리케이션, 서버, 데이터 스토리지, 개발 도구, 네트워킹 능력에 대한 주문형 액세스(on-demand access)로 정의될 수 있다. 클라우드 컴퓨터 서비스는 클라우드 서비스 제공자(cloud services provider, CSP)에 의해 관리되는 원격 데이터 센터에서 호스팅될 수 있다. 클라우드 컴퓨팅은 구독 기반 서비스(subscription-based service)일 수 있으며, 클라우드 기반 구독은 구매, 할부 등의 비용을 절감하여 자원 비용을 낮추는 데 도움이 된다. 클라우드 컴퓨팅은 기민함(agility)과 가치 실현 시간(time-to-value)을 향상시키고 비용 효율적인 방식(cost-effective manner)으로 더 쉽게 확장될 수 있다.
현재 애플리케이션은 사물 인터넷(internet of things, IoT), 인공 지능(Artificial Intelligence, AI), 기계 학습(Machine learning, MI), 몰입형 미디어(Immersive Media)의 개념에 더 중점을 두고 있다. 게다가 인터넷 다바이스의 수도 기하급수적으로 증가하고 있다. 데이터 센터 또는 클라우드 서버(지리적으로 먼 위치일 가능성 있음)에서 계산을 수행하는 것은, 이러한 계산에는 사용자에게서 클라우드 또는 데이터 센터로 데이터를 이동하고 돌려받는 데 상당한 대역폭을 필요로하고, 또한 대기 시간(latency)도 추가되기 때문에 효율적인 접근 방식이 아닐 수 있다.
에지 컴퓨팅(edge computing)은 자원을 네트워크 에지에 배치하여 컴퓨팅 능력을 사용자에게 더 가까이 가져옴으로써, 네트워크 지연을 줄이고 상위 클라우드에의 대역폭 요건을 경감하며, 신뢰성과 비용 절감을 강화한다. 에지 컴퓨팅은 여러 홉을 거치며 클라우드 네트워크에 의존하여 더 먼 거리를 이동하는 대신 사용자에게 더 가까운 곳에서 데이터의 계산을 가능하게 한다.
네트워크 운영자가 에지 컴퓨팅을 사용할 때 얻을 수 있는 주요 이점은 실시간 동적 컴퓨팅이 사용자에게 더 가까워져 대기 시간이 줄어들고; 사용자가 클라우드 서버에 부담을 덜 주기 때문에 비용이 절감되며; 로컬 클라우드가 사용자에게 더 가깝기 때문에 경험 품질(quality of experience, QoE)이 더 높아져, 트래픽 전달이 더 빨라진다는 것이다.
라이트필드(Lightfield), 증강 현실(Augmented Reality, AR), 가상 현실(Virtual Reality, VR)과 같은 몰입형 기술을 위해서는 고성능(high-end) 하드웨어 디바이스가 필요하다. 이러한 요건은 이러한 애플리케이션이 사용자에게 진정한 몰입적 환경에 있다는 느낌을 주기 위해 엄청난 양의 처리 능력과 스토리지를 필요로 할 가능성이 높기 때문에 발생한다. 또한 이러한 애플리케이션은 특정 객체를 인식하기 위해 실시간 비디오 스트림 처리가 필요하며 일부 애플리케이션에는 새로운 비디오 프레임 생성이 필요할 수도 있다.
따라서, 몰입형 기술을 사용하는데 있어 현재 해결해야 할 과제로는 처리 용량, 저장 용량, 에너지 소비 및 디바이스의 무게를 포함한다. 이러한 모든 과제는 디바이스에서 실행되는 애플리케이션의 엄청난 처리 요구사항으로 인해 더욱 두드러지고 있다. 사용자가 헤드셋을 착용해야 하는 몰입형 기술의 경우, 무거운 디바이스로 인해 사용자는 불편한 경험을 하고, 높은 처리 용량으로 인해 애플리케이션 요구사항을 충족시키기 위해 GPU에 크게 의존하는 라이트필드 디바이스를 포함한 디바이스의 가격이 높아진다. 디바이스의 한정된 자원 가용성으로 인해, 사용 가능한 자원보다 더 많은 태스크의 처리는 계산 대기 시간을 추가할 것이고, 디바이스가 배터리로 구동되는 경우, 계산 부하의 추가는 디바이스의 배터리가 더 빨리 소모되고 충전 사이의 서비스 간격 시간이 단축된다. 따라서, 현재 기술 수준의 능력과 미래 디바이스 및 시스템에 대한 요구사항 사이에는 격차가 존재한다.
몰입형 기술에 사용되는 디바이스가 단독으로 존재하는 경우, 디바이스 자체는 디바이스 사용자에게 용인 가능한 QoE를 제공하는 데 필요한 모든 자원을 제공해야 한다. 디바이스가 LAN을 사용하여 다른 디바이스에 연결되는 경우, 디바이스는 지원을 요청하는 디바이스에 고도로 국부적인(highly local) 공유 자원을 사용하여, LAN의 다른 디바이스에 지원을 요청할 수 있다.
다음은 그러한 실시예의 기본적인 이해를 제공하기 위해 본 개시의 하나 이상의 실시예의 단순화된 개요를 제시한다. 이 개요는 고려된 모든 실시예의 광범위한 개관이 아니며, 모든 실시예의 핵심 또는 중요한 요소를 확인하려는 것도 어느 또는 모든 실시예의 범위를 기술하려는 것도 아니다. 이 개요의 유일한 목적은 나중에 제시되는 더 상세한 설명에 대한 서두로서 본 개시의 하나 이상의 실시예의 일부 개념을 단순화된 형태로 제시하는 것이다.
에지 클라우드에 대한 고가용성 서비스로서 사용될 수 있는 다수의 디바이스를 포함하여 구성된 로컬 클라우드를 생성하기 위한 방법, 장치 및 컴퓨터로 판독 가능한 매체가 본 개시에 의해 개시된다.
예시적인 실시예에 따르면, 방법은 근거리 통신망(local area network, LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 함께 클라우드를 형성하는 네트워크 노드의 적어도 하나의 프로세서에 의해 수행된다. 상기 방법은 제1 타이머를 제1 값으로 설정하는 단계를 포함하고, 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기(active controller)인지를 판정하는 것과 연관된다. 상기 방법은 상기 제1 타이머를 시작하는 단계를 더 포함한다. 상기 방법은 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계를 더 포함한다. 상기 방법은 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계를 더 포함한다. 상기 방법은 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계를 더 포함한다.
예시적인 실시예에 따르면, 장치는 근거리 통신망(LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 노드와 함께 클라우드를 형성한다. 상기 장치는 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령받은 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함한다. 상기 컴퓨터 프로그램 코드는,
상기 적어도 하나의 프로세서로 하여금 제1 타이머를 제1 값으로 설정하게 하도록 구성된 제1 설정 코드(setting code)를 포함하고, 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관된다. 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머를 시작하게 하도록 구성된 제1 시작 코드(starting code)를 더 포함한다. 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하게 하도록 구성된 제1 판정 코드(determining code)를 더 포함한다. 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하게 하도록 구성된 재시작 코드(restarting code)를 더 포함한다. 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하게 하도록 구성된 제1 할당 코드(assigning code)를 더 포함한다.
예시적인 실시예에 따르면, 명령어가 저장되어 있는, 컴퓨터로 판독 가능한 비일시적 매체로서, 상기 명령어는, 근거리 통신망(LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 함께 클라우드를 형성하는 네트워크 노드의 프로세서에 의해 수행될 때, 상기 프로세서로 하여금 제1 타이머를 제1 값으로 설정하는 단계를 포함하는 방법을 실행하게 하며, 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관되어 있다. 상기 방법은 상기 제1 타이머를 시작하는 단계 및 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계를 더 포함한다. 상기 방법은 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계를 더 포함한다. 상기 방법은 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계를 더 포함한다.
추가적인 실시예는 다음의 설명에서 제시될 것이며, 부분적으로는 설명으로부터 명백할 것이며, 및/또는 본 개시의 제시된 실시예의 실시에 의해 학습될 수 있다.
상기한 측면 및 다른 측면은 첨부 도면과 함께 이하의 다양한 실시예에 대한 설명으로부터 명백해질 것이다.
도 1은 본 개시의 다양한 실시예에 따른 능동 제어기 및 가용 제어기를 포함하는 LAN의 도면이다.
도 2는 본 개시의 다양한 실시예에 따른 제어기-제어기(controller-controller) 통신 프로세스의 도면이다.
도 3은 본 개시의 다양한 실시예에 따른 능동 제어기-작업자(active controller-worker) 연결 셋업의 도면이다.
도 4는 본 개시의 다양한 실시예에 따른 능동 제어기-작업자 태스크 할당의 도면이다.
도 5는 본 개시의 다양한 실시예에 따른 컴퓨터 시스템의 개략도이다.
예시적인 실시예에 대한 다음의 상세한 설명은 첨부 도면을 참조한다. 서로 다른 도면의 동일한 참조 번호는 동일하거나 유사한 요소를 식별할 수 있다.
전술한 개시는 예시 및 설명을 제공하지만, 개시된 정확한 형태로 구현을 제한하거나 총망라하려는 의도는 아니다. 수정 및 변형은 위의 개시 내용에 비추어 가능하거나 구현의 실시로부터 취득될 수 있다. 또한, 한 실시예의 하나 이상의 특징 또는 컴포넌트는 다른 실시예(또는 다른 실시예의 하나 이상의 특징)에 통합되거나 조합될 수 있다. 추가적으로, 아래에 제공되는 동작(operation)의 흐름도 및 설명에서, 하나 이상의 동작이 생략될 수 있고, 하나 이상의 동작이 추가될 수 있으며, 하나 이상의 동작이 (적어도 부분적으로) 동시에 수행될 수 있으며, 하나 이상의 동작의 순서는 전환될 수 있다.
여기에 설명된 시스템 및/또는 방법은 여러 다른 형태의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있음은 명백할 것이다. 이러한 시스템 및/또는 방법을 구현하는 데 사용되는 실제 특화된 제어 하드웨어 또는 소프트웨어 코드는 구현에 대한 한정사항이 아니다. 따라서, 시스템 및/또는 방법의 동작 및 거동(behavior)은 구체적인 소프트웨어 코드를 참조하지 않고 여기에 설명되었으며, 이는 소프트웨어 및 하드웨어는 여기서의 설명에 기초하여 시스템 및/또는 방법을 구현하도록 설계될 수 있음이 이해된다.
특징들의 구체적인 조합이 청구범위에 언급되고 및/또는 명세서에 개시되어 있더라도, 이러한 조합은 가능한 구현의 개시를 한정하려는 의도는 아니다. 실제로, 이들 특징 중 다수는 청구범위에 구체적으로 언급되지 않고 및/또는 명세서에 개시되지 않은 방식으로 조합될 수 있다. 아래에 나열된 각 종속항은 단 하나의 청구항에만 직접적으로 종속할 수 있지만, 가능한 구현의 개시에는 청구항 세트의 다른 모든 청구항과 조합된 각 종속항을 포함한다.
여기에서 사용된 어떠한 요소(element), 행위(act) 또는 명령(instruction)도 명시적으로 설명되지 않는 한 중요하거나 필수적인 것으로 해석되어서는 안 된다. 또한, 여기에서 사용된 "일"(영어의 관사 "a" 및 "an"에 해당)이라는 표현은 하나 이상의 항목을 포함하도록 의도되었으며, "하나 이상"과 상호교환적으로 사용될 수 있다. 하나의 항목만 의도된 경우 "하나"라는 용어 또는 이와 유사한 표현이 사용된다. 또한, 여기에서 사용된 용어 "가지다(has, have)", "갖는(having)", "포함하다(include)", "포함하는(including)" 등의 용어는 제한이 없는 용어(open-ended terms)로 의도된다. 또한, "~에 기초하여(based on)"라는 문구는 달리 명시적으로 언급되지 않는 한 "적어도 부분적으로 ~에 기초하여"를 의미하도록 의도된다. 또한, "[A]와 [B] 중 적어도 하나" 또는 "[A] 또는 [B] 중 적어도 하나"와 같은 표현은 A만을 포함하거나, B만을 포함하거나, A와 B를 모두 포함하는 것으로 이해되어야 한다.
본 명세서 전반에 걸쳐 "하나의 실시예(one embodiment)", "일 실시예(an embodiment)" 또는 유사한 표현은 지시된 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 솔루션의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 문구 "하나의 실시예에서", "일 실시예에서" 및 유사한 표현은 모두 동일한 실시예를 지칭할 수 있지만 반드시 그런 것은 아니다.
또한, 본 개시의 설명된 특징, 이점 및 특성은 하나 이상의 실시예에서 임의의 적절한 방식으로 조합될 수 있다. 관련 기술 분야의 당업자는 여기서의 설명에 비추어 본 개시가 특정 실시예의 구체적인 특징 또는 이점 중 하나 이상 없이 실시될 수 있음을 인식할 것이다. 다른 경우에, 본 개시의 모든 실시예에는 존재하지 않을 수 있는 특정 실시예에서는 추가적인 특징 및 이점을 인식할 수 있다.
본 개시의 실시예는 LAN에 연결된 디바이스를 그러한 디바이스의 처리 용량을 공유하는 에지 클라우드에 대한 고가용성 서비스로서 사용하는 문제를 해결한다. 본 개시의 실시예는 (i) 몰입형 기술을 포함한, 높은 계산 자원을 요구하는 기술에 사용되지만 요구받은 모든 계산 태스크를 수행하는 데 충분한 자원이 없을 수 있는 디바이스를 포함하고, (ii) 필요한 경우 이러한 공유 자원을 사용하기 위해, 일부 자원을 로컬 클라우드에 제공하기에 충분한 자원을 보유한 디바이스를 포함하며, (iii) 로컬 클라우드 제어기의 역할을 할 의향이 있는 적어도 2개의 디바이스를 포함하는 임의의 LAN에 적용 가능한 방법 및 장치를 포함한다.
본 개시에서, "디바이스"라는 용어는 로컬 클라우드로부터 가용 자원에 액세스하는 능력을 갖는 LAN에 연결된 모든 디바이스를 지칭할 수 있다. "능동 제어기(active controller)"라는 용어는 로컬 클라우드에서 사용 가능한 자원을 식별하고 디바이스를 대신하여 태스크를 할당하는 임의의 디바이스를 의미할 수 있다. "작업자(worker)"라는 용어는 능동 제어기에 의해 할당된 태스크를 수행하는 임의의 디바이스를 의미할 수 있다.
도 1은 LAN 네트워크의 일 실시예를 나타내며, 여기서 108은 LAN(101)에 대한 게이트웨이 라우터이고, 디바이스(102, 103, 104, 105, 106, 107)는 네트워크에 연결된 서로 다른 디바이스이다. 몇몇 실시예에서, LAN(101)에 연결된 다수의 디바이스로부터의 자원은 로컬 클라우드를 생성하는 데 사용될 수 있다. 셋업(setup)은 LAN 내의 다른 디바이스를 등록하고(enlisting) 그러한 디바이스에 대한 태스크 할당을 관리하는 능동 제어기(107)로서 작동하는 LAN 내의 임의의 디바이스를 포함할 수 있다. "태스크 할당 관리"는 로컬 클라우드 내에서의 작업자 간의 태스크 마이그레이션을 포함한다.
요청을 서비스하고 가용성이 높은 로컬 클라우드 서비스를 제공하기 위해 능동 제어기를 할당하기 위해 다양한 실시예가 활용될 수 있다. 도 1에서는 디바이스 6(107)이 능동 제어기 역할을 하고 있지만, 현재 능동 제어기가 응답하지 않는 경우에 디바이스 1(102)과 디바이스 4(106)도 능동 제어기 역할을 할 수 있다.
도 2는 가용 제어기가 고가용성 능동 제어기 선택 프로세스에 참여하는 프로세스의 실시예의 흐름도를 나타낸다. 프로세스는 가용 제어기(201)가 2개의 타이머를 2개의 타이머 값 T1V과 T2V로 각각 초기화하는 동작 201에서 시작할 수 있다. 예를 들어, 타이머는 T1 타이머, T2 타이머일 수 있다. 몇몇 실시예에서, 2개의 타이머 값 T1V과 T2V는 미리 결정될 수 있다. 타이머 값 T1V과 T2V는 하나 이상의 제어기를 사용할 수 있는 경우 제어기가 활성화되지 않는 시간의 양을 제한하는 데 사용될 수 있다. 타이머 값 T1V는, 가용 제어기가 다른 제어기가 이미 활성화되어 있다는 지시를 기다리는 시간의 양에 대응할 수 있다. 타이머 값 T2V는 능동 제어기가 이미 능동 제어기라는 지시를 전송하기 전에 대기하는 시간의 양에 대응할 수 있다. 몇몇 실시예에서, 타이머 값 T1V는 타이머 값 T2V보다 길다. T1V와 T2V의 타이머 값과, T1V와 T2V의 비율은 제공될 수 있거나, 실험적으로 결정될 수 있거나, 적응적으로 결정될 수 있다. 몇몇 실시예에서, 타이머 값 T1V와 타이머 값 T2V 사이의 3:1 비율은 이전의 능동 제어기가 더 이상 활성 상태가 아닌 한, 가용 제어기가 적어도 2개의 "I am active" 메시지를 수신할 수 있도록 하며, 이 경우 능동 제어기는 한다. 제어기는 능동 제어기의 역할을 맡을 수 있다.
몇몇 실시예에서, 모두가 동시에 활성 상태라고 선언할 수 있는 가용 제어기 간의 동기화를 피하기 위해(예를 들어, LAN의 모든 디바이스가 동시에 전원이 켜진 후), 각각의 가용 제어기는 T1 타이머를 T1V로 설정한 후 T1 타이머에 무작위로 선택된 작은 시간 구간(time interval)을 추가할 수 있다. 몇몇 실시예에서, 자신을 가용 제어기로 먼저 어나운스한 디바이스는 능동 제어기가 되는 우선순위를 가질 수 있다.
프로세스는 동작 201에서 동작 202로 진행하여, 가용 제어기가 "who is active?" 메시지를 "모든 제어기" 멀티캐스트 그룹에 전송한다. 동작 203에서, 가용 제어기는 T1 타이머를 T1V로 설정한다. 동작 204에서, 가용 제어기는 현재의 능동 제어기로부터 "I am active" 멀티캐스트 메시지가 도착하거나 T1 타이머가 만료될 때까지 기다린다. LAN에 이미 능동 제어기가 있음을 지시하는 "I am active" 메시지가 수신되면, 프로세스는 동작 204에서 동작 203으로 복귀하여 T1 타이머를 T1V로 재설정한다. T1 타이머가 만료되면, 이는 LAN에 능동 제어기가 포함되어 있지 않음을 지시하므로, 프로세스는 동작 204에서 동작 205로 진행된다.
동작 205에서, 가용 제어기는 능동 제어기가 되기 위해 모든 제어기에 "I am active" 메시지를 멀티캐스팅한다. 동작 206에서, 능동 제어기는 T2 타이머를 T2V로 설정한다(206). 동작 207에서, 능동 제어기는 도 3 및 도 4에서 설명되는 바와 같이 능동 제어기의 역할을 수행한다. 동작 208에서, 능동 제어기는 "who is active?" 멀티캐스트 메시지가 현재의 능동 제어기로부터 도착하기를 기다리거나, T2 타이머가 만료되기를 기다린다. 이러한 조건 중 하나라도 충족되면 프로세스는 동작 205로 돌아간다. 기다리는 동안, 능동 제어기는 또한 로컬 클라우드 자원에 대한 요청을 수신하고 그러한 요청을 충족할 자원이 있는 작업자를 식별할 수 있다. 능동 제어기가 "Who is active?"멀티 메시지의 수신에 의해 깨어났는지 T2 타이머의 만료에 의해 깨어났는지에 관계없이, 능동 제어기는 동작 205에서 모든 가용 제어기에게 멀티캐스트 “I am active” 메시지를 전송하고, 동작 206에서 T2 타이머를 T2V로 설정한 후, 동작 207에서 이전과 같이 대기한다. 가용 제어기가 능동 제어기가 되면, 이 제어기는 무기한으로 능동 제어기로 계속 동작할 수 있다.
도 3은 능동 제어기(301) - 작업자(304) 연결 셋업의 실시예를 도시한다. 로컬 클라우드에 대한 요청이 오면, 능동 제어기(301)는 LAN에 연결된 작업자(304)를 발견하기 위해 메시지를 브로드캐스팅할 수 있다. 디바이스가 로컬 클라우드에 자원을 제공하는 데 동의하는 경우, 디바이스는 능동 제어기에 확인응답(acknowledgement)(302)을 전송할 수 있다. 그러면 능동 제어기는 SLA 요청(306)으로 응답할 수 있으며, 이는 자원 가용성 시간 및 전력 가용성을 포함하여 작업자의 자원을 공유하라는 작업자에 대한 요청을 포함할 수 있다. 작업자가 동의하면, 작업자는 SLA 응답(303)을 전송할 수 있으며, 그 후 능동 제어기는 연결(307)을 셋업할 수 있다. 작업자는 작업자의 활성 앱 수 및 작업자의 에너지 소비와 같은 정보도 공유해야 할 수 있다. 작업자는 EH한 세션 중에 그러한 정보를 공유해야 할 수 있다.
능동 제어기가 작업자로부터 SLA 응답을 수신한 후, 능동 제어기는 다양한 작업자에게 태스크 할당을 시작할 수 있다. 도 4는 능동 제어기-작업자 태스크 할당의 실시예를 나타낸다. 태스크(411)는 능동 제어기(412)가 작업자(403, 405, 407 및 408)에 할당해야 하는 하나 이상의 태스크에 대응할 수 있다. 능동 제어기는 하나 이상의 태스크를 서브태스크(401, 402, 404, 406, 409, 410)으로 나눌 수 있다.
몇몇 실시예에서, 능동 제어기는 태스크를 할당하기 위해 작업자의 자원 가용성(예컨대, 작업자가 임대하려는 스토리지, 작업자의 총 스토리지 용량, 작업자의 전력 가용성 등)을 사용할 수 있다. 몇몇 실시예에서, 작업자는 작업자의 자원 중 일부를 사용하는 관련 없는 로컬 계산을 포함하지만 이에 한정되지 않는 다양한 이유로 자원을 제공하려는 작업자의 의지를 업데이트하도록 능동 제어기에 통지할 수 있다.
몇몇 실시예에서, 어떤 이유로 인해 작업자가 더 이상 사용되기를 원하지 않는 경우, 작업자는 참여에 있어 이러한 변경을 능동 제어기에 통지할 수 있다. 작업자가 바로 연결을 끊을 수는 없다. 대신, 능동 제어기는 작업자에게서 실행 중인 활성 태스크가 있는지 확인할 수 있다. 작업자는 연결해제 전에 현재 태스크를 완료하는 것을 선택하거나 능동 제어기가 태스크를 네트워크의 다른 작업자에게 마이그레이션할 때까지 기다릴 수 있다. 네트워크 문제나 다른 문제로 인해 작업자의 연결이 끊어지는 경우, 능동 제어기는 연결이 끊긴 작업자에게 할당된 태스크를 네트워크의 몇몇 다른 작업자에게 재할당할 수 있다.
몇몇 실시예에서, 능동 제어기가 응답하지 않게 되고 다른 제어기가 사용 가능해지면, 도 2에 나타낸 프로세스를 사용하여 새로운 능동 제어기가 선택될 수 있다. 몇몇 실시예에서, 로컬 클라우드는 LAN 소유자가 지불의 대가로 컴퓨팅 및 저장 자원을 임대하는 가입 기반 서비스(subscription-based service)로 사용될 수 있다. 일례에서는 로컬 클라우드를 사용하여 이미지/파일을 저장하거나 일부 이미지 처리 태스크를 수행할 수 있다. 근거리 클라우드(local area cloud)는 또한 네트워크 내의 임의의 디바이스에 대해 임의의 태스크를 수행하는 데 사용될 수 있다. 예를 들어, 네트워크의 어느 디바이스가 몰입형 미디어를 스트리밍하고 있고 그 디바이스가 인커밍 미디어 스트림을 처리(디코딩, 스티칭)할 자원이 충분하지 않은 경우, 그 디바이스는 네트워크의 능동 제어기에 그 디바이스를 대신하여 미디어를 처리하도록 요청할 수 있다.
에지 클라우드에 대한 고가용성 서비스로서 LAN을 사용하는 방법은 컴퓨터로 판독 가능한 명령어를 사용하고 하나 이상의 컴퓨터로 판독 가능한 매체에 물리적으로 저장되어 있는 컴퓨터 소프트웨어로 구현될 수 있다. 예를 들어, 도 5는 본 개시의 실시예를 구현하는데 적합한 컴퓨터 시스템(500)의 실시예를 나타낸다.
컴퓨터 소프트웨어는 컴퓨터 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(graphics processing unit, GPU) 등에 의해, 어셈블리(assembly), 컴파일(compilation), 링킹(linking), 또는 이와 유사한 메커니즘을 거쳐 직접, 또는 해석(interpretation), 마이크로 코드 실행(micro-code execution) 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성할 수 있는 임의의 적절한 기계어 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어는, 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함한, 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
도 5에 도시된 컴퓨터 시스템(500)의 컴포넌트는 예시적인 것이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 한정도 시사하려는 것은 아니다. 컴포넌트의 구성은 컴퓨터 시스템(500)의 예시적인 실시예에 나타낸 컴포넌트 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요건을 가지는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(500)은 특정 휴먼 인터페이스 입력 디바이스(human interface input device)를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는 한 명 이상의 인간 사용자에 의한 입력, 예를 들어 촉각 입력(예: 키 누름(keystroke), 스와이프(swip), 데이터 장갑(data glove) 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)에 응답할 수 있다. 휴먼 인터페이스 디바이스는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득한 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오(stereoscopic video)를 포함한 3차원 비디오)와 같은, 사람에 의한 의식적 입력과 반드시 직접 관련이 있는 것은 아닌 특정 미디어를 캡처하는 데 사용될 수도 있다.
입력 휴먼 인터페이스 기기는 키보드(501), 마우스(502), 트랙 패드(503), 터치 스크린(510), 데이터 장갑(도시되지 않음), 조이스틱(505), 마이크로폰(506), 스캐너(507), 카메라(508) 중 하나 이상(각각 하나만 표시됨)을 포함할 수 있다.
컴퓨터 시스템(500)은 특정 휴먼 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해, 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 촉각 출력 디바이스(예: 터치 스크린(510), 데이터 장갑(도시되지 않음), 또는 조이스틱(505)에 의한 촉각 피드백이지만, 입력 디바이스의 역할을 하지 않는 촉각 피드백 디바이스도 있을 수 있음), 오디오 출력 디바이스(예: 스피커(509), 헤드폰(도시되지 않음)), 시각적 출력 디바이스(예: 각각 터치 스크린(510) 입력 기능이 있거나 없는, 각각 촉각 피드백 기능이 있거나 없는, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함한, 스크린(510) - 그 일부는 스테레오그래픽 출력(stereographic), 가상 현실 안경(virtual-reality glasses)(도시되지 않음), 홀로그래픽 디스플레이(holographic display) 및 연기 탱크(smoke tank)(도시되지 않음)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 할 수 있음 -), 및 프린터(도시되지 않음)를 포함할 수 있다. 컴퓨터 시스템(500)은 또한 CD/DVD 등의 매체(521)를 갖는 CD/DVD ROM RW(Z20)을 포함한 광학 매체, 썸 드라이브(thumb-drive)(522), 착탈 가능한 하드 드라이브 또는 솔리드 스테이트 드라이브(523), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(security dongle)(도시되지 않음)과 같은 특수한 ROM/ASIC/PLD 기반 디바이스 등의 인간이 액세스 가능할 수 있는 저장 디바이스 및 그 연관 매체를 포함할 수도 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용된 바와 같이 "컴퓨터로 판독 가능한 매체"라는 용어가 송신 매체, 반송파(carrier wave) 또는 기타 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(500)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스(554)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광 등의 네트워크일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용(delay-tolerant) 등의 네트워크일 수 있다. 네트워크의 예로는 이더넷과 같은 LAN, 무선 LAN, GSM, 3G, 4G, 5G, LTE, 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV, 및 지상파 방송 TV를 포함하는 TV 와이어라인(wireline) 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량 및 산업용, 등을 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(549)(예: 컴퓨터 시스템(500)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 것은 일반적으로 이하에 설명하는 바와 같이 시스템 버스에 부착함으로써 컴퓨터 시스템(500)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템에의 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 어느 것을 사용하여, 컴퓨터 시스템(500)은 다른 네트워크와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예: TV 방송), 단방향 전송 전용(예: CANbus에서 특정 CANbus 디바이스로) 또는 양방향(예를 들어 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템으로)일 수 있다. 특정 프로토콜 및 프로토콜 스택이 전술한 바와 같은 네트워크 및 네트워크 인터페이스 각각에 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스, 인간이 액세스 가능한 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(500)의 코어(540)에 부착될 수 있다.
코어(540)는 하나 이상의 중앙 처리 유닛(CPU)(541), 그래픽 처리 유닛(GPU)(542), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Area, FPGA)(543) 형태의 특화된 프로그램 가능한 처리 유닛, 특정 태스크를 위한 하드웨어 가속기(544) 등을 포함할 수 있다. 판독 전용 메모리(Read-only memory, ROM)(545), 랜덤 액세스 메모리(546), 사용자가 액세스할 수 없는 내부 하드 드라이브, SSD 등의 내부 대용량 저장장치(547)와 함께, 이러한 디바이스들은 시스템 버스(548)을 통해 연결될 수 있다. 몇몇 컴퓨터 시스템에서, 시스템 버스(548)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스는 코어의 시스템 버스(548)에 직접 연결되거나 주변 버스(549)를 통해 연결될 수 있다. 주변 버스를 위한 아키텍처로는 PCI, USB 등을 포함한다.
CPU(541), GPU(542), FPGA(543) 및 가속기(544)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어를 실행할 수 있다. 그 컴퓨터 코드는 ROM(545) 또는 RAM(546)에 저장될 수 있다. 이행 데이터(transitional data)는 RAM(546)에도 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 저장장치(547)에 저장될 수 있다. 메모리 디바이스 중 어느 것에 대한 빠른 저장 및 검색은, 하나 이상의 CPU(541), GPU(542), 대용량 저장장치(547), ROM(545), RAM(546) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터로 판독 가능한 매체는 다양한 컴퓨터로 구현되는 동작(computer-implemented operation)을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구축된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 당업자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
한정이 아닌 예로서, 아키텍처(500), 구체적으로 코어(540)를 갖는 컴퓨터 시스템은 하나 이상의 유형의 컴퓨터로 판독 가능한 매체에 구현된 소프트웨어 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터로 판독 가능한 매체는 위에서 소개한 바와 같이 사용자가 액세스할 수 있는 대용량 저장장치와 연관된 매체일 수 있을 뿐만 아니라 코어 내부 대용량 저장장치(547) 또는 ROM(545)과 같은, 비일시적인 성질의 코어(540)의 특정 저장장치일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스에 저장되고 코어(540)에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는 구체적인 필요에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(540) 및 특히 내부의 프로세서(CPU, GPU, FPGA 등 포함)로 하여금 RAM(546)에 저장된 데이터 구조를 정의하고 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 작동할 수 있는, 논리 배선(logic hardwired)의 결과로서 그렇지 않으면 회로(예: 가속기(544))에 다른 방식으로 구현되는 기능을 제공할 수 있다. 소프트웨어에 대한 언급은 논리를 포함할 수 있으며, 적절한 경우 그 반대도 마찬가지이다. 컴퓨터로 판독 가능한 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(IC)), 실행을 위한 논리를 구현하는 회로, 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어와 소프트웨어의 임의의 적절한 조합을 포함한다.
본 개시 내용은 여러 예시적인 실시예를 설명했지만, 본 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 본 명세서에 명시적으로 도시되거나 설명되지는 않았지만 본 개시의 원리를 구현하고 따라서 본 개시의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해할 것이다.
전술한 개시는 예시 및 설명을 제공하지만, 개시된 정확한 형태로 구현을 제한하거나 총망라하려는 의도는 아니다. 수정 및 변형은 위의 개시내용에 비추어 가능하거나 구현의 실시를 통해 획득될 수 있다.
본 명세서에 개시된 프로세스/흐름도에서 블록의 특정 순서 또는 계층은 예시적인 접근법의 예시임이 이해된다. 설계 선호도에 따라, 프로세스/흐름도의 특정 순서 또는 블록 계층이 재배열될 수 있음이 이해된다. 또한, 일부 블록은 결합되거나 생략될 수 있다. 첨부된 방법 청구항은 다양한 블록의 요소를 샘플 순서로 제시하며, 제시된 특정 순서 또는 계층 구조에 한정되는 것을 의미하지 않는다.
몇몇 실시예는 임의의 가능한 기술 세부사항의 통합 레벨에서의 시스템, 방법 및/또는 컴퓨터로 판독 가능한 매체와 관련될 수 있다. 또한, 전술한 위의 컴포넌트 중 하나 이상은 컴퓨터로 판독 가능한 매체에 저장되고 적어도 하나의 프로세서에 의해 실행 가능한 명령어로 구현될 수 있다(및/또는 적어도 하나의 프로세서를 포함할 수 있음). 컴퓨터로 판독 가능한 매체는 프로세서로 하여금 동작을 수행하게 하기 위한, 컴퓨터로 판독 가능한 프로그램 명령어를 구비한, 컴퓨터로 판독 가능한 비일시적 저장 매체(또는 매체들)를 포함할 수 있다.
컴퓨터로 판독 가능한 저장 매체는 명령 실행 디바이스에 의한 사용을 위해 명령어를 유지하고 저장할 수 있는 유형의 디바이스일 수 있다. 컴퓨터로 판독 가능한 저장 매체는 예를 들어, 전자 저장 디바이스, 자기 저장 디바이스, 광학 저장 디바이스, 전자기 저장 디바이스, 반도체 저장 디바이스, 또는 이들의 임의의 적절한 조합일 수 있다. 컴퓨터로 판독 가능한 저장 매체의 보다 구체적인 예의 비망라적인 목록에는 다음을 포함한다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능한 프로그램 가능한 판독 전용 메모리 전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 펀치 카드 또는 명령이 기록된 홈의 융기 구조(raised structure)와 같은 기계적으로 인코딩된 디바이스, 및 전술한 것의 임의의 적적할 조합. 본 명세서에 사용된 컴퓨터로 판독 가능한 저장 매체는 전파(radio wave) 또는 기타 자유롭게 전파되는 전자기파, 도파관을 통해 전파되는 전자기파 또는 기타 송신 매체(예컨대, 광섬유 케이블을 통과하는 광펄스) 또는 전선을 통해 송신되는 전기 신호와 같이, 그 자체로 일시적인 신호로 해석되어서는 안 된다.
본 명세서에 설명된 컴퓨터로 판독 가능한 프로그램 명령어는 컴퓨터로 판독 가능한 저장 매체로부터 각각의 컴퓨팅/처리 디바이스로 다운로드될 수 있거나, 예를 들어 인터넷, 근거리 통신망, 광역 통신망, 및/또는 무선 통신망과 같은 네트워크를 통해 외부 컴퓨터 또는 외부 저장 디바이스로 다운로드될 수 있다. 네트워크는 구리 송신 케이블, 광 송신 섬유, 무선 송신, 라우터, 방화벽, 교환기, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함할 수 있다. 각각의 컴퓨팅/처리 디바이스의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터로 판독 가능한 프로그램 명령어를 수신하고, 개개의 컴퓨팅/처리 디바이스 내의 컴퓨터로 판독 가능한 저장 매체에 저장하기 위해 컴퓨터로 판독 가능한 프로그램 명령어를 포워딩한다.
동작을 수행하기 위한 컴퓨터로 판독 가능한 프로그램 코드/명령어는 어셈블러 명령어, 명령어 세트 아키텍처(instruction-set-architecture, ISA) 명령어, 기계 명령어, 기계 종속 명령어, 마이크로코드, 펌웨어 명령어, 상태 설정 데이터(state-setting data), 집적 회로용 구성 데이터, 또는 Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 이와 유사한 절차적 프로그래밍 언어를 포함한, 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드 또는 객체 코드일 수 있다. 컴퓨터로 판독 가능한 프로그램 명령어는 사용자 컴퓨터에서 전체적으로, 사용자 컴퓨터에서 부분적으로, 독립형 소프트웨어 패키지로서, 사용자 컴퓨터에서 부분적으로 그리고 원격 컴퓨터에서 부분적으로, 또는 원격 컴퓨터나 서버에서 전체적으로 실행될 수 있다. 후자의 경우, 원격 컴퓨터는 근거리 통신망(LAN)이나 광역 통신망(WAN)을 포함한 모든 유형의 네트워크를 통해 사용자의 컴퓨터에 연결되거나, 외부 컴퓨터에 연결될 수 있다(예를 들어, 인터넷 서비스 제공자를 사용하여 인터넷을 통해). 몇몇 실시예에서, 예를 들어 프로그래밍 가능한 논리 회로, 필드프로그래머블 게이트 어레이(FPGA) 또는 프로그래머블 로직 어레이(PLA)를 포함하는 전자 회로는 여러 측면 또는 동작을 수행하기 위해, 컴퓨터로 판독 가능한 프로그램 명령어의 상태 정보를 활용하여 컴퓨터로 판독 가능한 프로그램 명령어를 실행하여 개인화할 수 있다.
이러한 컴퓨터로 판독 가능한 프로그램 명령어는 범용 컴퓨터, 특수 목적 컴퓨터 또는 다른 프로그래밍 가능한 데이터 처리 장치의 프로세서에 제공되어, 기계를 생성하여, 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치의 프로세서를 통해 실행되는 명령어가 흐름도 및/또는 블록도의 블록 또는 블록들에 지정된 기능/행위를 구현하기 위한 수단을 생성하도록 한다. 이러한 컴퓨터로 판독 가능한 프로그램 명령어는 또한 컴퓨터, 프로그래밍 가능한 데이터 처리 장치, 및/또는 기타 디바이스가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있어, 명령어를 저장하고 있는, 컴퓨터로 판독 가능한 저장 매체가 흐름도 및/또는 블록도의 블록 또는 블록들에 지정된 기능/행위의 측면을 구현하는 명령어를 포함하는 제조품으로 구성하도록 한다.
컴퓨터로 판독 가능한 프로그램 명령어는 또한 컴퓨터, 다른 프로그램 가능한 데이터 처리 장치, 또는 기타 디바이스에 로드되어 일련의 동작 단계가 컴퓨터, 다른 프로그램 가능한 장치 또는 기타 디바이스에서 수행되어 컴퓨터로 구현된 프로세스를 생성할 수 있으므로, 컴퓨터, 다른 프로그램 가능한 장치 또는 기타 디바이스에서 실행되는 명령어는 흐름도 및/또는 블록도의 블록 또는 블록들에 지정된 기능/행위를 구현할 수 있다.
도면의 흐름도와 블록도는 다양한 실시예에 따른 시스템, 방법 및 컴퓨터로 판독 가능한 매체의 가능한 구현에 대한 아키텍처, 기능 및 동작을 설명한다. 이와 관련하여, 흐름도 또는 블록도의 각 블록은 지정된 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 명령어의 모듈, 세그먼트 또는 부분을 나타낼 수 있다. 방법, 컴퓨터 시스템 및 컴퓨터로 판독 가능한 매체는 도면에 도시된 것보다 추가 블록, 더 적은 수의 블록, 다른 블록, 또는 다르게 배열된 블록을 포함할 수 있다. 몇몇 대안적인 구현에서, 블록에 언급된 기능은 도면에 언급된 순서를 벗어나 발생할 수 있다. 예를 들어, 연속적으로 도시된 2개의 블록은 실제로 동시에 또는 실질적으로 동시에 실행될 수 있거나, 관련된 기능에 따라 블록이 때때로 역순으로 실행될 수 있다. 블록도 및/또는 흐름도 예시의 각 블록과 블록도 및/또는 흐름도 예시의 블록들의 조합은 지정된 기능이나 행위를 수행하거나 특수 목적의 하드웨어와 컴퓨터 명령어의 조합을 수행하는 특수 목적의 하드웨어 기반 시스템에 의해 구현될 수 있다는 점도 유의할 것이다.
여기에 설명된 시스템 및/또는 방법은 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합의 여러 다른 형태로 구현될 수 있음은 명백할 것이다. 이러한 시스템 및/또는 방법을 구현하는 데 사용되는 실제 특화된 제어 하드웨어 또는 소프트웨어 코드는 구현을 한정하지 않는다. 따라서, 시스템 및/또는 방법의 동작 및 거동은 특정 소프트웨어 코드를 참조하지 않고 본 명세서에 설명되었으며, 소프트웨어 및 하드웨어는 본 명세서에서의 설명에 기초하여 시스템 및/또는 방법을 구현하도록 설계될 수 있음이 이해된다.
이상의 개시내용은 또한 아래에 나열된 실시예를 포함한다:
(1) 방법은, 근거리 통신망(local area network, LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 함께 클라우드를 형성하는 네트워크 노드의 적어도 하나의 프로세서에 의해 수행되며, 상기 방법은 다음을 포함한다: 제1 타이머를 제1 값으로 설정하는 단계 - 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관됨 -; 상기 제1 타이머를 시작하는 단계; 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계; 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계; 및 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계.
(2) 특징 (1)에 따른 방법은, 다음을 더 포함한다: 제2 타이머를 제2 값으로 설정하는 단계; 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 제2 타이머를 시작하는 단계; 상기 제2 타이머의 만료 또는 상기 복수의 네트워크 노드 중 다른 네트워크 노드로부터 상기 능동 제어기의 식별을 요청하는 제3 메시지의 수신에 기초하여, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 상기 네트워크 노드가 상기 클라우드의 능동 제어기임을 지시하는 제2 메시지를 브로드캐스팅하는 단계.
(3) 특징 (2)에 따른 방법에서, 상기 제1 타이머는 상기 제2 타이머보다 길다.
(4) 특징 (1)∼(3) 중 어느 하나에 따른 방법은 다음을 더 포함한다: 상기 네트워크 노드가 상기 능동 제어기인 동안, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 제4 메시지를 브로드캐스팅하여 가용 제어기를 발견하는 단계; 및 상기 제4 메시지에 기초하여 상기 하나 이상의 추가 네트워크 노드 중의 가용 네트워크 노드로부터, 상기 가용 네트워크 노드가 가용 제어기임을 지시하는 제5 메시지를 수신하는 단계.
(5) 특징 (4)에 따른 방법은 다음을 더 포함한다: 상기 제5 메시지의 수신에 기초하여, 상기 가용 네트워크 노드에 제6 메시지를 전송하여 상기 가용 네트워크 노드의 하나 이상의 자원을 지정하도록 상기 가용 네트워크 노드에 요청하는 단계; 상기 제6 메시지에 기초하여, 상기 가용 네트워크 노드의 하나 이상의 자원 중 적어도 하나의 자원을 지정하는 제7 메시지를 수신하는 단계; 및 상기 제6 메시지의 수신에 기초하여, 상기 적어도 하나의 자원에 기초하여 상기 가용 네트워크 노드에 하나 이상의 태스크를 할당하는 단계.
(6) 특징 (5)에 따른 방법은 다음을 더 포함한다: 상기 가용 네트워크 노드가 더 이상 상기 가용 제어기가 아님을 지시하는 제7 메시지를 상기 가용 네트워크 노드로부터 수신하는 단계; 및 상기 제7 메시지의 수신에 기초하여, 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았는지를 판정하는 단계
(7) 특징 (6)에 따른 방법은 다음을 더 포함한다: 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 가용 네트워크 노드와의 연결을 해제하기 전에 상기 가용 네트워크 노드가 상기 하나 이상의 태스크를 완료할 때까지 기다리는 단계.
(8) 특징 (6)에 따른 방법은 다음을 더 포함한다: 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 하나 이상의 태스크를 상기 하나 이상의 추가 네트워크 노드에서 다른 가용 네트워크 노드로 마이그레이션하는(migrating) 단계.
(9) 장치는, 근거리 통신망(LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 노드와 함께 클라우드를 형성하며, 상기 장치는 다음을 포함한다: 컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및 상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령받은 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서로 하여금 제1 타이머를 제1 값으로 설정하게 하도록 구성된 제1 설정 코드 - 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관됨 -; 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머를 시작하게 하도록 구성된 제1 시작 코드; 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하게 하도록 구성된 제1 판정 코드; 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하게 하도록 구성된 재시작 코드; 및 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하게 하도록 구성된 제1 할당 코드를 포함한다.
(10) 특징 (9)에 따른 장치에 있어서, 상기 컴퓨터 프로그램 코드는 다음을 더 포함한다: 상기 적어도 하나의 프로세서로 하여금 제2 타이머를 제2 값으로 설정하게 하도록 구성된 제2 설정 코드; 상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 제2 타이머를 시작하게 하도록 구성된 제2 시작 코드; 상기 적어도 하나의 프로세서로 하여금, 상기 제2 타이머의 만료 또는 상기 복수의 네트워크 노드 중 다른 네트워크 노드로부터 상기 능동 제어기의 식별을 요청하는 제3 메시지의 수신에 기초하여, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 상기 네트워크 노드가 상기 클라우드의 상기 능동 제어기임을 지시하는 제2 메시지를 브로드캐스팅하게 하도록 구성된 제1 브로드캐스팅 코드.
(11) 특징 (11)에 따른 장치에 있어서, 상기 제1 타이머는 상기 제2 타이머보다 길다.
(12) 특징 (9)∼(11) 중 어느 하나에 따른 장치에 있어서, 상기 컴퓨터 프로그램 코드는 다음을 더 포함한다: 상기 네트워크 노드가 상기 능동 제어기인 동안, 상기 적어도 하나의 프로세서로 하여금 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 제4 메시지를 브로드캐스팅하여 가용 제어기를 발견하게 하도록 구성된 제2 브로드캐스팅 코드; 및 상기 적어도 하나의 프로세서로 하여금, 상기 제4 메시지에 기초하여 상기 하나 이상의 추가 네트워크 노드 중의 가용 네트워크 노드로부터, 상기 가용 네트워크 노드가 가용 제어기임을 지시하는 제5 메시지를 수신하게 하도록 구성된 제1 수신 코드.
(13) 특징 (12)에 따른 장치에 있어서, 상기 컴퓨터 프로그램 코드는 다음을 더 포함한다: 상기 제5 메시지의 수신에 기초하여, 상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드에 제6 메시지를 전송하여 상기 가용 네트워크 노드의 하나 이상의 자원을 지정하도록 상기 가용 네트워크 노드에 요청하게 하도록 구성된 제1 전송 코드; 상기 적어도 하나의 프로세서로 하여금 상기 제6 메시지에 기초하여, 상기 가용 네트워크 노드의 하나 이상의 자원 중 적어도 하나의 자원을 지정하는 제7 메시지를 수신하게 하도록 구성된 제2 수신 코드; 및 상기 적어도 하나의 프로세서로 하여금 상기 제6 메시지의 수신에 기초하여, 상기 적어도 하나의 자원에 기초하여 상기 가용 네트워크 노드에 하나 이상의 태스크를 할당하게 하도록 구성된 제2 할당 코드.
(14) 특징 (13)에 따른 장치에 있어서, 상기 컴퓨터 프로그램 코드는 다음을 더 포함한다: 상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드가 더 이상 상기 가용 제어기가 아님을 지시하는 제7 메시지를 상기 가용 네트워크 노드로부터 수신하게 하도록 구성된 제2 수신 코드; 및 상기 적어도 하나의 프로세서로 하여금 상기 제7 메시지의 수신에 기초하여, 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았는지를 판정하게 하도록 구성된 제2 판정 코드.
(15) 특징 (14)에 따른 장치에 있어서, 상기 컴퓨터 프로그램 코드는 다음을 더 포함한다: 상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 가용 네트워크 노드와의 연결을 해제하기 전에 상기 가용 네트워크 노드가 상기 하나 이상의 태스크를 완료할 때까지 기다리게 하도록 구성된 대기 코드.
(16) 특징 (15)에 따른 장치에 있어서, 상기 컴퓨터 프로그램 코드는 다음을 더 포함한다: 상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 하나 이상의 태스크를 상기 하나 이상의 추가 네트워크 노드에서 다른 가용 네트워크 노드로 마이그레이션하게 하도록 구성된 마이그레이팅 코드.
(17) 명령어가 저장되어 있는, 컴퓨터로 판독 가능한 비일시적 매체에 있어, 상기 명령어는, 근거리 통신망(LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 함께 클라우드를 형성하는 네트워크 노드의 프로세서에 의해 수행될 때, 상기 프로세서로 하여금 다음을 포함하는 방법을 실행하게 한다: 제1 타이머를 제1 값으로 설정하는 단계 - 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관됨 -; 상기 제1 타이머를 시작하는 단계; 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계; 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계; 및 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계.
(18) 특징 (17)에 따른 컴퓨터로 판독 가능한 비일시적 매체는 다음을 더 포함한다: 제2 타이머를 제2 값으로 설정하는 단계; 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 제2 타이머를 시작하는 단계; 상기 제2 타이머의 만료 또는 상기 복수의 네트워크 노드 중 다른 네트워크 노드로부터 상기 능동 제어기의 식별을 요청하는 제3 메시지의 수신에 기초하여, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 상기 네트워크 노드가 상기 클라우드의 능동 제어기임을 지시하는 제2 메시지를 브로드캐스팅하는 단계.
(19) 특징 (18)에 따른 컴퓨터로 판독 가능한 비일시적 매체에 있어서, 상기 제1 타이머는 상기 제2 타이머보다 길다.
(20) 특징 (17)∼(19) 중 어느 하나에 따른 컴퓨터로 판독 가능한 비일시적 매체는 다음을 더 포함한다: 상기 네트워크 노드가 상기 능동 제어기인 동안, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 제4 메시지를 브로드캐스팅하여 가용 제어기를 발견하는 단계; 및 상기 제4 메시지에 기초하여 상기 하나 이상의 추가 네트워크 노드 중의 가용 네트워크 노드로부터, 상기 가용 네트워크 노드가 가용 제어기임을 지시하는 제5 메시지를 수신하는 단계.

Claims (20)

  1. 근거리 통신망(local area network, LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 함께 클라우드를 형성하는 네트워크 노드의 적어도 하나의 프로세서에 의해 수행되는 방법으로서,
    제1 타이머를 제1 값으로 설정하는 단계 - 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관됨 -;
    상기 제1 타이머를 시작하는 단계;
    상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계;
    상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계; 및
    상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    제2 타이머를 제2 값으로 설정하는 단계;
    상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 제2 타이머를 시작하는 단계;
    상기 제2 타이머의 만료 또는 상기 복수의 네트워크 노드 중 다른 네트워크 노드로부터 상기 능동 제어기의 식별을 요청하는 제3 메시지의 수신에 기초하여, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 상기 네트워크 노드가 상기 클라우드의 능동 제어기임을 지시하는 제2 메시지를 브로드캐스팅하는 단계
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 제1 타이머는 상기 제2 타이머보다 긴, 방법.
  4. 제1항에 있어서,
    상기 네트워크 노드가 상기 능동 제어기인 동안,
    상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 제4 메시지를 브로드캐스팅하여 가용 제어기를 발견하는 단계; 및
    상기 제4 메시지에 기초하여 상기 하나 이상의 추가 네트워크 노드 중의 가용 네트워크 노드로부터, 상기 가용 네트워크 노드가 가용 제어기임을 지시하는 제5 메시지를 수신하는 단계
    를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 제5 메시지의 수신에 기초하여,
    상기 가용 네트워크 노드에 제6 메시지를 전송하여 상기 가용 네트워크 노드의 하나 이상의 자원을 지정하도록 상기 가용 네트워크 노드에 요청하는 단계;
    상기 제6 메시지에 기초하여, 상기 가용 네트워크 노드의 하나 이상의 자원 중 적어도 하나의 자원을 지정하는 제7 메시지를 수신하는 단계; 및
    상기 제6 메시지의 수신에 기초하여, 상기 적어도 하나의 자원에 기초하여 상기 가용 네트워크 노드에 하나 이상의 태스크를 할당하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 가용 네트워크 노드가 더 이상 상기 가용 제어기가 아님을 지시하는 제7 메시지를 상기 가용 네트워크 노드로부터 수신하는 단계; 및
    상기 제7 메시지의 수신에 기초하여, 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았는지를 판정하는 단계
    를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 가용 네트워크 노드와의 연결을 해제하기 전에 상기 가용 네트워크 노드가 상기 하나 이상의 태스크를 완료할 때까지 기다리는 단계를 더 포함하는 방법.
  8. 제6항에 있어서,
    상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 하나 이상의 태스크를 상기 하나 이상의 추가 네트워크 노드에서 다른 가용 네트워크 노드로 마이그레이션하는(migrating) 단계를 더 포함하는 방법.
  9. 근거리 통신망(LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 노드와 함께 클라우드를 형성하는 장치로서,
    컴퓨터 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 컴퓨터 프로그램 코드에 액세스하고 상기 컴퓨터 프로그램 코드에 의해 명령받은 대로 동작하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 제1 타이머를 제1 값으로 설정하게 하도록 구성된 제1 설정 코드 - 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관됨 -;
    상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머를 시작하게 하도록 구성된 제1 시작 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하게 하도록 구성된 제1 판정 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하게 하도록 구성된 재시작 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하게 하도록 구성된 제1 할당 코드
    를 포함하는, 장치.
  10. 제9항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 제2 타이머를 제2 값으로 설정하게 하도록 구성된 제2 설정 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 제2 타이머를 시작하게 하도록 구성된 제2 시작 코드;
    상기 적어도 하나의 프로세서로 하여금, 상기 제2 타이머의 만료 또는 상기 복수의 네트워크 노드 중 다른 네트워크 노드로부터 상기 능동 제어기의 식별을 요청하는 제3 메시지의 수신에 기초하여, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 상기 네트워크 노드가 상기 클라우드의 상기 능동 제어기임을 지시하는 제2 메시지를 브로드캐스팅하게 하도록 구성된 제1 브로드캐스팅 코드
    를 더 포함하는, 장치.
  11. 제10항에 있어서,
    상기 제1 타이머는 상기 제2 타이머보다 긴, 장치.
  12. 제9항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 네트워크 노드가 상기 능동 제어기인 동안,
    상기 적어도 하나의 프로세서로 하여금 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 제4 메시지를 브로드캐스팅하여 가용 제어기를 발견하게 하도록 구성된 제2 브로드캐스팅 코드; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 제4 메시지에 기초하여 상기 하나 이상의 추가 네트워크 노드 중의 가용 네트워크 노드로부터, 상기 가용 네트워크 노드가 가용 제어기임을 지시하는 제5 메시지를 수신하게 하도록 구성된 제1 수신 코드
    를 더 포함하는, 방법.
  13. 제12항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 제5 메시지의 수신에 기초하여,
    상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드에 제6 메시지를 전송하여 상기 가용 네트워크 노드의 하나 이상의 자원을 지정하도록 상기 가용 네트워크 노드에 요청하게 하도록 구성된 제1 전송 코드;
    상기 적어도 하나의 프로세서로 하여금 상기 제6 메시지에 기초하여, 상기 가용 네트워크 노드의 하나 이상의 자원 중 적어도 하나의 자원을 지정하는 제7 메시지를 수신하게 하도록 구성된 제2 수신 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 제6 메시지의 수신에 기초하여, 상기 적어도 하나의 자원에 기초하여 상기 가용 네트워크 노드에 하나 이상의 태스크를 할당하게 하도록 구성된 제2 할당 코드
    를 더 포함하는, 장치.
  14. 제13항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드가 더 이상 상기 가용 제어기가 아님을 지시하는 제7 메시지를 상기 가용 네트워크 노드로부터 수신하게 하도록 구성된 제2 수신 코드; 및
    상기 적어도 하나의 프로세서로 하여금 상기 제7 메시지의 수신에 기초하여, 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았는지를 판정하게 하도록 구성된 제2 판정 코드
    를 더 포함하는, 장치.
  15. 제14항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 가용 네트워크 노드와의 연결을 해제하기 전에 상기 가용 네트워크 노드가 상기 하나 이상의 태스크를 완료할 때까지 기다리게 하도록 구성된 대기 코드
    를 더 포함하는, 장치.
  16. 제15항에 있어서,
    상기 컴퓨터 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금 상기 가용 네트워크 노드가 완료되지 않은 하나 이상의 태스크를 할당받았다는 판정에 기초하여, 상기 하나 이상의 태스크를 상기 하나 이상의 추가 네트워크 노드에서 다른 가용 네트워크 노드로 마이그레이션하게 하도록 구성된 마이그레이팅 코드
    를 더 포함하는, 장치.
  17. 명령어가 저장되어 있는, 컴퓨터로 판독 가능한 비일시적 매체로서
    상기 명령어는, 근거리 통신망(LAN)을 통해 하나 이상의 추가 네트워크 노드와 연결되고, 상기 하나 이상의 추가 네트워크 노드와 함께 클라우드를 형성하는 네트워크 노드의 프로세서에 의해 수행될 때, 상기 프로세서로 하여금
    제1 타이머를 제1 값으로 설정하는 단계 - 상기 제1 타이머는 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 상기 클라우드의 능동 제어기인지를 판정하는 것과 연관됨 -;
    상기 제1 타이머를 시작하는 단계;
    상기 제1 타이머가 만료되기 전에, 상기 하나 이상의 추가 네트워크 노드 중 다른 네트워크 노드가 능동 제어기임을 지시하는 제1 메시지가 수신되었는지 여부를 판정하는 단계;
    상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되었다는 판정에 기초하여, 상기 제1 타이머를 재시작하는 단계; 및
    상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 클라우드의 능동 제어기인, 상기 하나 이상의 추가 네트워크 노드 중 적어도 하나의 네트워크 노드에 하나 이상의 태스크를 할당하는 단계
    를 포함하는 방법을 실행하게 하는,
    컴퓨터로 판독 가능한 비일시적 매체.
  18. 제17항에 있어서,
    제2 타이머를 제2 값으로 설정하는 단계;
    상기 제1 타이머가 만료되기 전에 상기 제1 메시지가 수신되지 않았다는 판정에 기초하여, 상기 제2 타이머를 시작하는 단계;
    상기 제2 타이머의 만료 또는 상기 복수의 네트워크 노드 중 다른 네트워크 노드로부터 상기 능동 제어기의 식별을 요청하는 제3 메시지의 수신에 기초하여, 상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 상기 네트워크 노드가 상기 클라우드의 능동 제어기임을 지시하는 제2 메시지를 브로드캐스팅하는 단계
    를 더 포함하는, 컴퓨터로 판독 가능한 비일시적 매체.
  19. 제18항에 있어서,
    상기 제1 타이머는 상기 제2 타이머보다 긴, 컴퓨터로 판독 가능한 비일시적 매체.
  20. 제17항에 있어서,
    상기 네트워크 노드가 상기 능동 제어기인 동안,
    상기 하나 이상의 추가 네트워크 노드로부터 각각의 네트워크 노드에 제4 메시지를 브로드캐스팅하여 가용 제어기를 발견하는 단계; 및
    상기 제4 메시지에 기초하여 상기 하나 이상의 추가 네트워크 노드 중의 가용 네트워크 노드로부터, 상기 가용 네트워크 노드가 가용 제어기임을 지시하는 제5 메시지를 수신하는 단계
    를 더 포함하는, 컴퓨터로 판독 가능한 비일시적 매체.
KR1020237036790A 2021-11-30 2022-11-01 로컬 클라우드용 근거리 통신망(lan)과 함께 고가용성 제어기를 사용하기 위한 방법 및 장치 KR20230160392A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163284529P 2021-11-30 2021-11-30
US63/284,529 2021-11-30
US17/976,451 2022-10-28
US17/976,451 US11876730B2 (en) 2021-11-30 2022-10-28 Method and apparatus for using high availability controller with local area network (LAN) for local cloud
PCT/US2022/048605 WO2023101784A1 (en) 2021-11-30 2022-11-01 Method and apparatus for using high availability controller with local area network (lan) for local cloud

Publications (1)

Publication Number Publication Date
KR20230160392A true KR20230160392A (ko) 2023-11-23

Family

ID=86499559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036790A KR20230160392A (ko) 2021-11-30 2022-11-01 로컬 클라우드용 근거리 통신망(lan)과 함께 고가용성 제어기를 사용하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US11876730B2 (ko)
JP (1) JP2024513025A (ko)
KR (1) KR20230160392A (ko)
CN (1) CN116803065A (ko)
WO (1) WO2023101784A1 (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502360B2 (en) * 2005-03-04 2009-03-10 Itt Manufacturing Enterprises, Inc. Method and apparatus for dynamic neighbor discovery within wireless networks using time division multiple access (TDMA)
US7639663B1 (en) * 2005-03-04 2009-12-29 Itt Manufacturing Enterprises, Inc. Method and apparatus for dynamic channel access within wireless networks
US7668100B2 (en) 2005-06-28 2010-02-23 Avaya Inc. Efficient load balancing and heartbeat mechanism for telecommunication endpoints
US20150195162A1 (en) * 2014-01-06 2015-07-09 Google Inc. Multi-Master Selection in a Software Defined Network
US11146620B2 (en) * 2017-09-14 2021-10-12 Cisco Technology, Inc. Systems and methods for instantiating services on top of services
US10761520B1 (en) 2018-04-11 2020-09-01 Amazon Technologies, Inc. Cluster-based work cell orchestrator
US11144358B1 (en) 2018-12-06 2021-10-12 Pure Storage, Inc. Asynchronous arbitration of shared resources
US11044309B2 (en) * 2019-06-27 2021-06-22 Intel Corporation Optimizing operations in ICN based networks
WO2022040347A1 (en) * 2020-08-20 2022-02-24 Intrusion, Inc. System and method for monitoring and securing communications networks and associated devices

Also Published As

Publication number Publication date
US20230171204A1 (en) 2023-06-01
JP2024513025A (ja) 2024-03-21
US11876730B2 (en) 2024-01-16
CN116803065A (zh) 2023-09-22
WO2023101784A1 (en) 2023-06-08

Similar Documents

Publication Publication Date Title
US9251040B2 (en) Remote debugging in a cloud computing environment
US20190196875A1 (en) Method, system and computer program product for processing computing task
US11516628B2 (en) Media streaming with edge computing
JP7100154B6 (ja) プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
US20210096903A1 (en) Method and apparatus for a step-enabled workflow
CN113795822B (zh) 用于处理工作流的方法、装置、计算机系统及存储介质
WO2015117445A1 (zh) 任务窗口的处理方法及装置
CN117221324B (zh) 云服务器的创建任务分发方法、装置、电子设备及介质
CN112418389A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
KR20230160392A (ko) 로컬 클라우드용 근거리 통신망(lan)과 함께 고가용성 제어기를 사용하기 위한 방법 및 장치
WO2022083342A1 (zh) 数据传输方法和电子设备
US20230171310A1 (en) Method and apparatus for using nonstop controller with local area network (lan) for local cloud
CN114731343A (zh) 云服务的方法和装置
US20230126595A1 (en) Method and apparatus for using local area network as service for edge cloud
CN116700956B (zh) 请求处理方法、装置、电子设备和计算机可读介质
CN118211000A (zh) 内嵌网页请求处理方法、装置、电子设备和可读介质

Legal Events

Date Code Title Description
A201 Request for examination