KR20210142829A - 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법 - Google Patents

복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법 Download PDF

Info

Publication number
KR20210142829A
KR20210142829A KR1020200059465A KR20200059465A KR20210142829A KR 20210142829 A KR20210142829 A KR 20210142829A KR 1020200059465 A KR1020200059465 A KR 1020200059465A KR 20200059465 A KR20200059465 A KR 20200059465A KR 20210142829 A KR20210142829 A KR 20210142829A
Authority
KR
South Korea
Prior art keywords
edge
application
edge device
list
devices
Prior art date
Application number
KR1020200059465A
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 삼성에스디에스 주식회사
Priority to KR1020200059465A priority Critical patent/KR20210142829A/ko
Publication of KR20210142829A publication Critical patent/KR20210142829A/ko

Links

Images

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/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • H04L67/2833
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • H04L67/322
    • 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/566Grouping or aggregating service requests, e.g. for unified processing
    • 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/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

복수의 엣지 디바이스에 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법이 제공된다. 본 발명의 실시예들에 따른 엣지 컴퓨팅 시스템은 서버, 및 상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션을 로컬 네트워크 내의 제2 엣지 디바이스에게 배포하는 제1 엣지 디바이스를 포함하고, 상기 제2 엣지 디바이스는 상기 제1 엣지 디바이스로부터 상기 애플리케이션을 수신하여 설치하고, 상기 애플리케이션을 상기 로컬 네트워크 내의 제3 엣지 디바이스에게 배포한다.

Description

복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법 {EDGE COMPUTING SYSTEM AND METHOD FOR DISTRIBUTING AN APPLICATION TO A PLURALITY OF EDGE DEVICES}
본 발명은 엣지 컴퓨팅 시스템 및 방법에 관한 것이다. 보다 자세하게는, 복수의 엣지 디바이스에게 애플리케이션을 효과적으로 배포할 수 있는 엣지 컴퓨팅 시스템 및 방법에 관한 것이다.
클라우드 컴퓨팅의 네트워크 과부하 및 대량 데이터 처리 문제를 해결하기 위해 클라우드 서버와 디바이스의 중간에 엣지 디바이스를 설치하는 엣지 컴퓨팅이 널리 확산되고 있다. 엣지 컴퓨팅 환경에서, 복수의 엣지 디바이스들은 네트워크를 통해 IoT 클라우드(Cloud) 서버와 센서(Sensor)들에 연결된다. 엣지 디바이스들은 다양한 센서로부터 데이터(data)를 수집하여 저장하고, 이를 분석하며 그 결과를 클라우드 서버에 제공한다. 클라우드 서버는 엣지 디바이스들을 관리하고, 엣지 디바이스들이 제공하는 데이터를 활용하여 다양한 사용자 서비스를 제공하며, 엣지 디바이스들이 필요한 역할을 수행할 수 있도록 관련 소프트웨어 애플리케이션들을 배포한다.
종래의 엣지 컴퓨팅 시스템에서는 클라우드 서버가 각 엣지 디바이스에 접속하여 관련 에이전트(Agent) 및 애플리케이션을 설치하는 방식으로 엣지 디바이스들에 애플리케이션을 배포한다. 이 경우, 엣지 디바이스의 수가 많아지면, 애플리케이션 설치 및 배포를 위한 리소스 사용량이 기하급수적으로 증가하는 문제가 있다.
또한, 특정 유형의 엣지 컴퓨팅 시스템에서는 마스터 노드를 두어, 마스터 노드가 클라우드 서버와 엣지 디바이스들을 중계하도록 한다. 그러나, 이 경우 마스터 노드가 정상적으로 구동되지 않거나 장애가 발생하면, 마스터 노드가 복구되기 전까지 엣지 디바이스들에게 필요한 애플리케이션을 배포할 수 없는 문제가 있다.
이에, 이러한 문제점들을 해결하고 엣지 컴퓨팅 환경에서 안정적이고 효과적으로 애플리케이션을 배포할 수 있는 새로운 시스템에 대한 요구가 증가되고 있다.
대한민국 공개특허공보 제10-2020-0051037호 (2020.05.12 공개)
본 발명의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 엣지 디바이스들에게 애플리케이션을 배포함에 있어 클라우드 서버의 부하 및 리소스 사용량을 최소화할 수 있는 엣지 컴퓨팅 시스템 및 방법을 제공하는 것이다.
본 발명의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 엣지 컴퓨팅 환경 내에서 마스터 노드와 같은 중요 엣지 디바이스에 장애가 발생하여도, 이에 영향받지 않고 안정적으로 다른 엣지 디바이스들에 애플리케이션을 배포할 수 있는 엣지 컴퓨팅 시스템 및 방법을 제공하는 것이다.
본 발명의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 클라우드 서버와의 통신이 단절된 상태에서도 엣지 디바이스들 간에 자율적으로 애플리케이션을 배포하고, 오류를 복구할 수 있는 엣지 컴퓨팅 시스템 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 엣지 컴퓨팅 방법은 서버, 및 상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고 상기 애플리케이션을 로컬 네트워크 내의 제2 엣지 디바이스에게 배포하는 제1 엣지 디바이스를 포함하고, 상기 제2 엣지 디바이스는 상기 제1 엣지 디바이스로부터 상기 애플리케이션을 수신하여 설치하고 상기 애플리케이션을 상기 로컬 네트워크 내의 제3 엣지 디바이스에게 배포한다.
일 실시예로서, 상기 제1 엣지 디바이스는 상기 로컬 네트워크 내의 엣지 디바이스들의 정보를 수집하여 상기 서버에 송신할 수 있다.
일 실시예로서, 상기 서버는 상기 수집된 정보를 기반으로 상기 애플리케이션이 배포될 엣지 디바이스들의 목록을 상기 제1 엣지 디바이스에 송신할 수 있다.
일 실시예로서, 상기 목록은 미리 결정된 기준에 따라 상기 애플리케이션이 배포될 엣지 디바이스들을 그룹화 한 그룹핑(Grouping) 정보를 포함할 수 있다.
일 실시예로서, 상기 미리 결정된 기준은 운영시스템(OS, Operating System)의 종류, CPU의 종류, GPU의 유무, 또는 사용자의 지정을 포함할 수 있다.
일 실시예로서, 상기 제1 엣지 디바이스는 상기 목록 내 엣지 디바이스들의 우선 순위를 참조하여, 상기 제1 엣지 디바이스가 상기 목록 내 엣지 디바이스들에게 상기 애플리케이션을 배포할 순서를 결정할 수 있다.
일 실시예로서, 상기 우선 순위는 상기 목록 내 엣지 디바이스들의 가용 메모리, CPU 사용률, 또는 레이턴시(Latency)를 기준으로 결정될 수 있다.
일 실시예로서, 상기 제1 엣지 디바이스는 상기 목록을 상기 제2 엣지 디바이스에게 송신하고, 상기 제2 엣지 디바이스는 상기 목록을 참조하여 상기 제2 엣지 디바이스가 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정할 수 있다.
일 실시예로서, 상기 목록은 상기 목록 내 엣지 디바이스들의 상기 애플리케이션이 설치된 현황(Status)을 나타내는 현황 정보를 포함할 수 있다.
일 실시예로서, 상기 현황 정보는 상기 목록 내 엣지 디바이스들의 상기 애플리케이션 설치 결과에 따라 업데이트될 수 있다.
일 실시예로서, 상기 제1 엣지 디바이스 또는 상기 제2 엣지 디바이스는 상기 현황 정보가 미설치(Not-Installed) 또는 실패(Failed)로 표시된 엣지 디바이스에게 상기 애플리케이션의 배포를 시도할 수 있다.
일 실시예로서, 상기 제2 엣지 디바이스는 상기 목록을 상기 제3 엣지 디바이스에게 송신하고, 상기 제3 엣지 디바이스는 상기 제2 엣지 디바이스로부터 상기 애플리케이션을 수신하여 설치하되, 상기 제3 엣지 디바이스의 설치가 실패하면 상기 현황 정보가 설치된(Installed)으로 표시된 엣지 디바이스에게 상기 애플리케이션의 배포를 요청할 수 있다.
일 실시예로서, 상기 제3 엣지 디바이스는 미리 결정된 횟수만큼 상기 제3 엣지 디바이스의 설치가 실패하면 더 이상 상기 애플리케이션의 배포를 요청하지 않을 수 있다.
일 실시예로서, 상기 제3 엣지 디바이스는 자신이 상기 애플리케이션을 설치한 결과를 상기 현황 정보에 업데이트하고, 상기 목록 상에 상기 현황 정보가 미설치(Not-Installed)인 엣지 디바이스가 없으면, 상기 애플리케이션의 배포 결과를 나타내는 메시지를 상기 제1 엣지 디바이스에 송신할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 엣지 컴퓨팅 방법은 로컬 네트워크 내 엣지 디바이스들의 정보를 수집하여 서버로 송신하는 단계, 상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션의 배포를 위한 엣지 디바이스들의 목록을 수신하는 단계, 및 상기 목록을 참조하여 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정하고 상기 다른 엣지 디바이스에게 상기 목록 및 상기 애플리케이션을 전송하는 단계를 포함하고, 상기 다른 엣지 디바이스는 상기 전송된 애플리케이션을 설치하고 상기 설치가 완료되면 상기 목록을 참조하여 상기 애플리케이션을 배포할 또 다른 엣지 디바이스를 결정하고 상기 또 다른 엣지 디바이스에게 상기 애플리케이션을 전송한다.
일 실시예로서, 상기 다른 엣지 디바이스 또는 상기 또 다른 엣지 디바이스로부터 상기 애플리케이션의 배포 결과를 나타내는 메시지를 수신하는 단계, 및 상기 수신한 메시지에 기반하여 상기 목록 내 모든 엣지 디바이스에 대해 상기 애플리케이션의 배포 결과가 결정된 것으로 판단되면, 상기 서버로 완료 메시지를 송신하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 엣지 컴퓨팅 방법을 실행하기 위해 컴퓨팅 장치와 결합되는 컴퓨터 프로그램은 로컬 네트워크 내 엣지 디바이스들의 정보를 수집하여 서버로 송신하는 단계, 상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션의 배포를 위한 엣지 디바이스들의 목록을 수신하는 단계, 및 상기 목록을 참조하여 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정하고 상기 다른 엣지 디바이스에게 상기 목록 및 상기 애플리케이션을 전송하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고, 상기 다른 엣지 디바이스는 상기 전송된 애플리케이션을 설치하고 상기 설치가 완료되면 상기 목록을 참조하여 상기 애플리케이션을 배포할 또 다른 엣지 디바이스를 결정하고 상기 또 다른 엣지 디바이스에게 상기 애플리케이션을 전송한다.
도 1은 본 발명의 실시예들에 따른 엣지 컴퓨팅 시스템이 동작하는 엣지 컴퓨팅 환경을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 클라우드 서버 및 엣지 디바이스의 예시적인 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른, 애플리케이션 배포를 위한 사전 정보를 수집하는 방법을 개념적으로 설명하는 도면이다.
도 4는 애플리케이션 배포를 위해 클라우드 서버가 제공하는 목록의 예시적인 형태를 보여주는 도면이다.
도 5는 각 엣지 디바이스들의 우선 순위(Priority)를 결정하는 방법을 구체적인 예를 들어 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른, 각 엣지 디바이스들 간에 애플리케이션이 배포되는 방법을 설명하는 도면이다.
도 7은 엣지 디바이스들에 애플리케이션이 배포되는 결과에 따라, 에지 디바이스들의 목록이 업데이트되는 방법을 예시적으로 설명하는 도면이다.
도 8은 엣지 디바이스가 애플리케이션 설치에 실패했을 때 이를 복구하는 방법을 구체적인 예를 들어 설명하는 도면이다.
도 9는 본 발명의 일 실시예에 따른, 엣지 디바이스들의 복수의 그룹으로 그룹핑 된 경우 애플리케이션을 배포하는 방법을 설명하는 도면이다.
도 10 및 도 11은 본 발명의 몇몇 실시예들에 따른, 엣지 컴퓨팅 방법을 설명하는 순서도들이다.
도 12는 본 발명의 다양한 실시예들이 구현되는 컴퓨팅 장치(500)의 예시적인 하드웨어 구성을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명의 실시예들에 따른 엣지 컴퓨팅 시스템이 동작하는 엣지 컴퓨팅 환경을 나타내는 도면이다. 도 1을 참조하면, 엣지 컴퓨팅 환경(1000)은 클라우드 서버(10), 복수의 엣지 디바이스(110, 120, 130, 140) 및 네트워크 장치(30)를 포함한다.
도 1의 엣지 컴퓨팅 환경(1000)에서 복수의 엣지 디바이스(110, 120, 130, 140)는 네트워크 장치(30)를 통해 로컬 네트워크(20)를 구성할 수 있다. 엣지 디바이스(110, 120, 130, 140)들은 네트워크 장치(30)로부터 로컬 네트워크(20)를 구성하는 엣지 디바이스들의 정보를 획득하며, 네트워크 장치(30)를 통하거나 P2P 방식으로 서로 간의 통신을 수행할 수 있다.
본 발명에서는 클라우드 서버(10)는 엣지 디바이스(110, 120, 130, 140)들을 모니터링하고, 엣지 디바이스(110, 120, 130, 140)들에 배포할 애플리케이션을 관리하며, 애플리케이션을 엣지 디바이스(110, 120, 130, 140) 중 어느 하나(예를 들어, 제1 엣지 디바이스)에 전송하여 로컬 네트워크(20) 내의 엣지 디바이스(110, 120, 130, 140)들이 상호간에 애플리케이션을 전파, 배포하도록 한다. 그리고, 엣지 디바이스(110, 120, 130, 140)들에 대한 애플리케이션 배포가 완료되면, 그 중 하나(예를 들어, 최초 애플리케이션을 전송받았던 제1 엣지 디바이스)로부터 배포 결과에 대한 리포트를 수신한다.
일 실시예로서, 클라우드 서버(10)는 배포된 애플리케이션을 통해 엣지 디바이스(110, 120, 130, 140)들로부터 센서 데이터나 분석 데이터를 수집하는 다양한 서비스 서버를 포함할 수 있다.
본 발명에서는, 클라우드 서버(10)가 각 엣지 디바이스(110, 120, 130, 140)마다 직접 애플리케이션을 배포하지 않는다. 클라우드 서버(10)는 로컬 네트워크(20) 내의 제1 엣지 디바이스(110)에게 최초로 애플리케이션을 배포하기만 하면, 그 이후 엣지 디바이스들(110, 120, 130, 140) 상호간의 애플리케이션 전파를 통해 로컬 네트워크(20) 내에서의 애플리케이션 배포가 점진적으로 완료되게 된다. 따라서, 애플리케이션 배포 시 클라우드 서버에 과다한 부하가 가해졌던 종래의 문제점이 해결될 수 있다.
또한, 제1 엣지 디바이스(110)가 마치 마스터 노드처럼 클라우드 서버(10)로부터의 애플리케이션 배포를 중계하고 있기는 하나, 본 발명에서는 기본적으로 애플리케이션을 배포받은 각 노드(여기서는, 엣지 디바이스)들이 새로운 배포자가 되어 애플리케이션을 전파하게 된다. 따라서, 제1 엣지 디바이스(110)가 클라우드 서버(10)로부터 애플리케이션을 다운받은 후 이를 다른 장치(예를 들어, 제2 엣지 디바이스)에게 배포하기만 하면, 그 이후에는 제1 엣지 디바이스(110)에 고장이나 장애가 발생하여도 제2 엣지 디바이스(120)를 기점으로 계속적으로 로컬 네트워크(20) 내 애플리케이션 배포가 이루어진다. 따라서, 마스터 노드의 장애 시, 애플리케이션 배포가 중단되었던 종래의 문제점이 해결될 수 있다.
또한, 본 발명에서 각 엣지 디바이스(110, 120, 130, 140)들은 로컬 네트워크(20) 내의 다른 엣지 디바이스들을 자가 탐색하여 애플리케이션을 배포하므로, 어떤 엣지 디바이스에 애플리케이션 오류가 발생하여도 곧 다른 엣지 디바이스가 이를 감지하여 애플리케이션을 다시 배포해준다. 따라서, 발생한 오류의 자율적 복구가 가능하며, 클라우드 서버(10)나 관리자의 개입없이 스스로 오류를 해결할 수 있게 된다.
이하에서는, 이러한 본 발명의 특징 및 그와 관련된 구체적인 실시예를 각 도면을 참조하여 상세하게 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른, 클라우드 서버 및 엣지 디바이스의 예시적인 구성을 나타내는 블록도이다. 도 2를 참조하면, 클라우드 서버(10) 및 그와 통신하는 제1 엣지 디바이스(110)의 주요 구성이 도시된다. 다만, 이는 로컬 네트워크(20) 내 애플리케이션 배포와 관련된 구성들을 위주로 도시한 것으로, 클라우드 서버(10) 및 제1 엣지 디바이스(110)는 도시된 구성 외에 다른 구성들을 더 포함할 수 있다.
클라우드 서버(10)는 엣지 관리 모듈(11), 리소스 모니터링 모듈(12), 엣지 모니터링 모듈(13), 엣지 그룹 관리 모듈(14) 및 배포 관리 모듈(15)을 포함한다.
엣지 관리 모듈(11)은 엣지 디바이스(110, 120, 130, 140, 도 1 참조)들을 관리하고, 엣지 디바이스(110, 120, 130, 140)와 통신하는 모듈이다. 리소스 모니터링 모듈(12)은 엣지 컴퓨팅 시스템의 전반적인 리소스를 모니터링하는 모듈이다. 예를 들어, 리소스 모니터링 모듈(12)은 각 엣지 디바이스(110, 120, 130, 140)들이 현재 사용하는 리소스 양 및 그 비율을 모니터링할 수 있다. 엣지 모니터링 모듈(13)은 엣지 디바이스(110, 120, 130, 140)들의 동작 및 현황을 모니터링하는 모듈이다. 엣지 모니터링 모듈(13)은 예를 들어, 엣지 디바이스(110, 120, 130, 140)들이 정상적으로 동작하는지 또는 고장인지, 어떤 로컬 네트워크에 속하는지, 또는, 각 엣지 디바이스(110, 120, 130, 140)마다 어떤 애플리케이션이 설치되어 있는지 등을 모니터링할 수 있다. 엣지 그룹 관리 모듈(14)은 엣지 디바이스(110, 120, 130, 140)들이 소정의 기준에 따라 그룹핑(Grouping)되는 경우 그 그룹을 관리하는 모듈이다. 예를 들어, 엣지 디바이스(110, 120, 130, 140)들이 사용되는 OS를 기준으로 복수의 그룹으로 구분되는 경우, 엣지 그룹 관리 모듈(14)은 각 그룹에 종속되어 수행되는 관리작업을 수행하게 된다. 배포 관리 모듈(15)은 엣지 디바이스(110, 120, 130, 140)들에 애플리케이션을 배포하기 위한 관리 작업을 수행한다. 예를 들어, 배포 관리 모듈(15)은 배포할 애플리케이션을 결정하고, 준비하고, 배포를 위한 작업을 할당한 후 실행하는 일련의 관리작업을 수행할 수 있다.
제1 엣지 디바이스(110)는 엣지 에이전트(111), 리소스 관리 모듈(112), 장치 스캔 모듈(113) 및 설치 및 배포 모듈(114)을 포함한다. 엣지 에이전트(111)는 클라우드 서버(10)와 통신하여 애플리케이션 배포를 위한 정보를 송수신하고, 애플리케이션을 클라우드 서버(10)로부터 내려받는 일련의 작업들을 관리한다. 리소스 관리 모듈(112)은 제1 엣지 디바이스(110) 및 주변의 다른 엣지 디바이스(120, 130, 130)의 리소스 및 그 사용 현황을 수집하여 모니터링하고 관리한다. 장치 스캔 모듈(113)은 로컬 네트워크(20) 내의 다른 엣지 디바이스(120, 130, 140)들을 탐색하고, 엣지 디바이스(120, 130, 140)들의 리소스 정보나 시스템 정보를 획득한다. 설치 및 배포 모듈(114)은 내려받은 애플리케이션을 설치하고 ,설치가 완료되면 설치 상태를 업데이트 한 후 다른 엣지 디바이스(120, 130, 140)에 애플리케이션을 배포하는 모듈이다.
상기와 같은 구성을 통해 제1 엣지 디바이스(110)는 클라우드 서버(10)와 통신하여 애플리케이션을 내려받아 설치한 후, 설치가 성공적으로 완료되면 주변의 다른 엣지 디바이스를 탐색하여 애플리케이션을 배포하게 된다.
도 3은 본 발명의 일 실시예에 따른, 애플리케이션 배포를 위한 사전 정보를 수집하는 방법을 개념적으로 설명하는 도면이다.
본 실시예에서, 애플리케이션의 배포 전에, 제1 엣지 디바이스(110)는 로컬 네트워크(20) 내의 다른 엣지 디바이스(120, 130, 140)들의 정보를 수집한 후 이를 클라우드 서버(10)에 제공한다.
일 실시예로서, 제1 엣지 디바이스(110)는 네트워크 장치(30, 도 1 참조)에 접속하여, 로컬 네트워크(20)를 구성하는 엣지 디바이스(120, 130, 140)의 정보를 획득하고, 획득한 정보를 이용하여 엣지 디바이스(120, 130, 140)들에게 액세스한 후, 엣지 디바이스(120, 130, 140)들로부터 그들의 리소스 정보나 시스템 정보를 획득할 수 있다. 획득한 정보는 상기 엣지 디바이스 정보로서 클라우드 서버(10)에 제공된다.
클라우드 서버(10)는 제공된 엣지 디바이스(110, 120, 130, 140)들의 정보를 기반으로 애플리케이션 배포를 위한 목록을 작성하여 제1 엣지 디바이스(110)에게 제공한다. 상기 목록에 대해서 도 4를 참조하여 설명한다.
도 4는 애플리케이션 배포를 위해 클라우드 서버가 제공하는 목록의 예시적인 형태를 보여주는 도면이다. 도 4를 참조하면 목록(40)은 복수의 항목(ID, IP, MAC, CPU, MEM, Priority, Status 등)을 포함한다.
ID 항목(41)은 애플리케이션을 배포할 각 엣지 디바이스를 식별하는 ID가 기재된 항목이다. 예를 들어, 제1 엣지 디바이스(110)의 ID는'Device 01', 제2 엣지 디바이스(120)의 ID는'Device 02', 제3 엣지 디바이스(130)의 ID는'Device 03'과 같이 각 엣지 디바이스는 자신과 매칭된 ID로 고유하게 구분될 수 있다.
IP 항목(42)은 각 엣지 디바이스의 IP 정보를 기록한 항목이다. IP 항목(42)은 애플리케이션을 배포할 때 배포 대상 엣지 디바이스에 액세스하기 위해 참조될 수 있다.
MAC 항목(43)은 각 엣지 디바이스의 MAC Address를 기록한 항목이다. 앞서 ID 항목(41)이 클라우드 장치가 임의적으로 부여한 식별자를 기록한 항목이라면, MAC 항목(43)은 엣지 디바이스에 고정적으로 부여된 기기 식별자를 기재한 항목이다. MAC 항목(43)은 애플리케이션을 배포할 때 배포 대상 엣지 디바이스를 확인하기 위한 용도로 참조될 수 있다.
CPU 항목(44)은 각 엣지 디바이스의 CPU 사용률을 나타내는 항목이다. 가령 CPU 항목(44)에'12'가 기재되어 있으면 해당 엣지 디바이스는 현재 자신의 CPU를 12% 사용하고 있음을 나타낸다. CPU 항목(44)은 후술할 Priority(우선 순위) 항목(46)을 결정하는 데 참조될 수 있다.
MEM 항목(45)은 각 엣지 디바이스의 가용 메모리를 나타내는 항목이다. 가령 MEM 항목(45)에'26'가 기재되어 있으면 해당 엣지 디바이스는 현재 자신의 메모리 중 26%가 사용가능한 상태임을 나타낸다. MEM 항목(45)은 앞서의 CPU 항목(44)과 함께 후술할 Priority(우선 순위) 항목(46)을 결정하는 데 참조될 수 있다.
Priority 항목(46)은 애플리케이션을 배포할 각 엣지 디바이스의 우선 순위를 기재한 항목이다. Priority 항목(46)에 기재된 숫자가 작을수록 더 높은 우선 순위를 가짐을 의미한다. 우선 순위는 어떤 엣지 디바이스에 우선적으로 애플리케이션이 배포되어야 하는 지를 가리키는 것으로, 가령, 애플리케이션을 배포하는 엣지 디바이스는 Priority 항목(46)을 참조하여 우선 순위 높은 엣지 디바이스부터 낮은 엣지 디바이스의 순으로 순차적으로 애플리케이션을 배포할 수 있다. 우선 순위를 결정하는 구체적인 방법 및 실시예에 대해서는 도 5에서 구체적으로 후술된다.
Status 항목(47)은 각 엣지 디바이스들에 애플리케이션이 배포된 상태 정보를 나타낸다. 가령 Status 항목(47)에 'Not Installed'로 기재되어 있으면, 해당 엣지 디바이스에는 애플리케이션이 배포(또는, 설치)되지 않았음을 의미한다. 반면에, Status 항목(47)에 'Installed'로 기재되어 있으면, 해당 엣지 디바이스에는 애플리케이션이 이미 배포(또는, 설치)되었음을 의미한다. 그리고, Status 항목(47)에 'Progress'로 기재되어 있으면, 해당 엣지 디바이스에는 현재 애플리케이션이 배포(또는, 설치)되고 있는 중임을 의미한다. 그리고, Status 항목(47)에 'Failed'로 기재되어 있으면, 해당 엣지 디바이스는 기존에 애플리케이션 배포(또는, 설치)가 시도되었으나 실패하여 현재는 애플리케이션이 배포(또는, 설치)되지 않은 상태임을 의미한다.
상기 목록(40)은 클라우드 서버(10)로부터 제1 엣지 디바이스(110)에 전송되어, 제1 엣지 디바이스(110)가 애플리케이션을 다른 엣지 디바이스에게 배포할 때 참조된다. 그리고, 제1 엣지 디바이스(110)가 애플리케이션을 다른 엣지 디바이스에게 배포할 때 상기 목록(40)도 함께 배포되어, 애플리케이션을 배포받은 다른 엣지 디바이스가 또 다른 엣지 디바이스에게 애플리케이션을 배포할 때도 참조된다.
도 5는 각 엣지 디바이스들의 우선 순위(Priority)를 결정하는 방법을 구체적인 예를 들어 설명하는 도면이다. 도 5의 실시예에서, 우선 순위는 각 엣지 디바이스들의 리소스 및 시스템 정보(50)를 참조하여 결정된다.
일 실시예로서, 상기 정보(50)는 엣지 디바이스들의 CPU 사용률(CPU Usage), 가용 메모리(Memory Available), 및 레이턴시(Latency)를 포함할 수 있다. 상기 정보(50)는 앞서, 제1 엣지 디바이스(110)가 다른 엣지 디바이스(120, 130, 140)로부터 수집한 엣지 디바이스 정보를 기반으로 만들어진 것일 수 있다.
클라우드 서버(10)는 상기 정보(50)를 참조하여, 각 엣지 디바이스들에 애플리케이션을 배포할 우선 순위를 결정한다. 일 실시예로서, 클라우드 서버(10)는 가용 메모리를 제1 기준으로 하여 가용 메모리가 높은 엣지 디바이스일수록 높은 우선 순위를 부여하고, CPU 사용률을 제2 기준으로 하여 제1 기준(가용 메모리)가 같은 엣지 디바이스들 중에서는 CPU 사용률이 낮은 디바이스일수록 높은 우선 순위를 부여하고, 레이턴시를 제3 기준으로 하여 제1 기준(가용 메모리) 및 제2 기준(CPU 사용률)이 같은 엣지 디바이스들 중에서는 레이턴시가 낮은 디바이스일수록 높은 우선 순위를 부여할 수 있다. 다만, 이는 예시적인 기준을 설명한 것으로서 본 발명의 범위는 이에 한정되지 않는다. 가령, 위의 기준과 다르게 레이턴시를 제1 기준으로 삼는 것 또한 가능하다.
한편, 위의 기준에 따를 때, 도 5의 실시예에서는 가용 메모리가 가장 높은 Device 03이 가장 높은 우선 순위를 부여받고, 가용 메모리가 동일한 Device 02와 Device 04 간에는 CPU 사용률이 더 낮은 Device 04가 더 높은 우선 순위를 부여받게 된다.
도 6은 본 발명의 일 실시예에 따른, 각 엣지 디바이스들 간에 애플리케이션이 배포되는 방법을 설명하는 도면이다. 도 6에서는, 도 1의 엣지 디바이스(110, 120, 130, 140)들 외에도 다른 엣지 디바이스(150, 160, 170)들이 로컬 네트워크(20)에 더 포함된 것으로 가정한다. 제1 엣지 디바이스(110)는 클라우드 서버(10)로부터 애플리케이션 및 목록(40)을 다운받은 것으로 전제한다. 이하, 도면을 참조하여 설명한다.
제1 엣지 장치(110)는 다운받은 애플리케이션을 설치한다. 그리고 설치가 완료되면, 다른 엣지 디바이스들에게 애플리케이션을 배포하기 위해 로컬 네트워크(20) 내 주변의 다른 엣지 디바이스에게 현재 상태를 문의한다.
이때, 제1 엣지 장치(110)는 상기 목록(40)을 참조하여 각 엣지 디바이스들의 애플리케이션 배포 상태를 확인한 후, 상태가 미설치(Not installed) 또는 실패(Failed)로 나타난 엣지 디바이스들에게만 현재 상태를 문의할 수 있다. 배포 상태가 설치됨(Installed) 또는 설치 중(Progress)이면, 해당 엣지 디바이스에는 애플리케이션을 중복하여 배포할 필요가 없기 때문이다.
또한, 제1 엣지 장치(110)는 상기 목록(40)을 참조하여 우선 순위가 높은 순서로 애플리케이션 배포 순서를 결정한 후, 그에 따라 각 엣지 디바이스에 순차적으로 현재 상태를 문의할 수 있다. 도 4를 참조하면, 제2 엣지 디바이스(120, Device 02)와 제3 엣지 디바이스(130, Device 03)가 우선 순위가 높으므로, 제1 엣지 디바이스(110, Device 01)는 제2 엣지 디바이스(120) 및 제3 엣지 디바이스(130)에 현재 상태를 문의한다. 다만, 이는 제1 엣지 디바이스(110)가 동시에 애플리케이션을 배포할 수 있는 엣지 디바이스의 개수가 2개로 설정된 것을 가정한 것으로, 만약 동시에 애플리케이션을 배포할 수 있는 엣지 디바이스의 개수가 3개라면 제1 엣지 디바이스(110)는 제4 엣지 디바이스(140, Device 04)에까지 현재 상태를 문의할 것이다. 동시에 애플리케이션을 배포할 수 있는 엣지 디바이스의 개수는 고정적으로 미리 결정될 수도 있고, 제1 엣지 디바이스(110)의 리소스 상황 등에 기반하여 유동적으로 결정될 수도 있다.
제1 엣지 디바이스(110)는 제2 엣지 디바이스(120) 및 제3 엣지 디바이스(130)로부터 현재 상태를 회신받아 자신의 목록(40)을 업데이트 한다. 가령, 기존 목록(40)에는 제2 엣지 디바이스(120)의 상태가 미설치로 되어 있었지만 그 동안 어떤 변경사항이 있어 제2 엣지 디바이스(120)의 상태가 설치됨으로 바뀐 경우, 제1 엣지 디바이스(110)는 목록(40)에서 제2 엣지 디바이스(120)의 상태를 설치됨으로 업데이트하게 된다. 다만, 여기서는 제2 엣지 디바이스(120) 및 제3 엣지 디바이스(130)의 상태가 미설치로 변동이 없는 것으로 가정한다.
제1 엣지 디바이스(110)는 미설치로 회신받은 제2 엣지 디바이스(120) 및 제3 엣지 디바이스(130)에게 애플리케이션을 배포한다. 이때, 제1 엣지 디바이스(110)는 목록(40)에서 제2 엣지 디바이스(120) 및 제3 엣지 디바이스(130)의 상태를 설치 중(Progress)로 업데이트할 수 있다. 한편, 제1 엣지 디바이스(110)는 자신이 저장하고 있는 목록(40)을 애플리케이션과 함께 제2 엣지 디바이스(120) 및 제3 엣지 디바이스(130)에게 배포한다.
제2 엣지 디바이스(120)는 배포된 애플리케이션을 설치하고, 성공적으로 설치가 완료되면 자신이 저장하는 목록(40)에서 자신의 상태를 설치됨으로 업데이트한다. 이때, 제2 엣지 디바이스(120)는 목록(40) 상에서 상태 정보가 미설치 또는 실패인 엣지 디바이스가 없으면, 더 이상 애플리케이션 배포를 시도할 장치가 없는 것이므로 애플리케이션의 배포 결과를 나타내는 메시지를 제1 엣지 디바이스(110)에 송신할 수 있다. 일 실시예로서, 제2 엣지 디바이스(120)는 설치가 성공하였다는 메시지를 제1 엣지 디바이스(110)에게 회신할 수 있다. 반면에, 설치가 실패하면 제2 엣지 디바이스(120)는 자신이 저장하는 목록(40)에서 자신의 상태를 실패로 업데이트한다. 여기서는, 설명의 간명화를 위해 설치가 성공한 것으로 가정한다. 설치가 실패한 경우의 이후 절차에 대해서는 도 8에서 별도 실시예로 후술된다.
그리고, 제2 엣지 디바이스(120)는 설치가 완료된 후, 목록(40)을 참조하여 자신이 애플리케이션을 배포할 다른 엣지 디바이스를 결정한 후, 해당 엣지 디바이스들에게 현재 상태를 문의한다. 이때, 제2 엣지 디바이스(120)는 제1 엣지 디바이스(110)의 경우와 동일하게, 목록(40)의 상태가 미설치 또는 실패인 엣지 디바이스들 중에서 그 우선 순위에 따라 자신이 애플리케이션을 배포할 다른 엣지 디바이스를 결정할 수 있다.
한편, 제3 엣지 디바이스(130) 또한, 제2 엣지 디바이스(120)의 경우와 동일하게, 배포된 애플리케이션을 설치하고 성공적으로 설치가 완료되면 자신이 저장하는 목록(40)에서 자신의 상태를 설치됨으로 업데이트한다. 그리고, 제3 엣지 디바이스(130)는 설치가 완료된 후, 목록(40)을 참조하여 자신이 애플리케이션을 배포할 다른 엣지 디바이스를 결정한 후, 해당 엣지 디바이스들에게 현재 상태를 문의한다. 제3 엣지 디바이스(130)가 애플리케이션을 설치하고, 애플리케이션을 배포할 다른 엣지 디바이스를 결정하는 구체적인 방법은 제2 엣지 디바이스(120)의 경우와 실질적으로 동일하다.
한편, 제2 엣지 디바이스(120)가 애플리케이션을 설치하고 다른 엣지 디바이스에게 애플리케이션을 배포하는 과정과, 제3 엣지 디바이스(130)가 애플리케이션을 설치하고 다른 엣지 디바이스에게 애플리케이션을 배포하는 과정은, 서로 독립적으로 그리고 동시적으로 발생한다. 제3 엣지 디바이스(130)는 제2 엣지 디바이스(120)의 동작에 영향받지 않고, 스스로 애플리케이션 설치 및 배포 작업을 수행하게 된다.
따라서, 제2 엣지 디바이스(120)가 애플리케이션 배포를 시도하는 엣지 디바이스와, 제3 엣지 디바이스(130)가 애플리케이션 배포를 시도하는 엣지 디바이스는 서로 중복될 수 있다. 즉, 제2 엣지 디바이스(120)가 제4 엣지 디바이스(140)에게 상태를 문의하여 애플리케이션을 배포하는 와중에, 제3 엣지 디바이스(130)가 제4 엣지 디바이스(140)에게 현재 상태를 문의할 수 있다. 이 경우, 제4 엣지 디바이스(140)는 나중에 액세스 한 제3 엣지 디바이스(130)에게 현재 상태를 설치 중(Progress)로 회신함으로써, 복수의 엣지 디바이스(120, 130)로부터 애플리케이션을 중복 배포받는 문제를 피할 수 있다. 이 경우, 제3 엣지 디바이스(130)는 제4 엣지 디바이스(140)의 회신에 응답하여, 자신이 저장하는 목록(40)에서 제4 엣지 디바이스(140)의 상태를 설치 중으로 업데이트하고, 다음 우선 순위의 엣지 디바이스에게 추가로 애플리케이션 배포를 시도하게 된다. 이에 대한 구체적인 예가 도 7에 도시된다.
도 7을 참조하면 앞서 설명한 사례에 해당하는 제3 엣지 디바이스(130)의 목록(40)이 도시된다. 제1 내지 제3 엣지 디바이스(110, 120, 130)에는 이미 애플리케이션이 설치되어 있는 상황으로, 목록(40)에는 이미 그러한 부분이 반영되어 있다. 그리고, 제4 엣지 디바이스(140)에게 현재 상태를 문의한 결과 설치 중으로 회신 받았으므로, 그에 따라 제4 엣지 디바이스(140)의 상태도 설치 중(Progress)로 업데이트 되었다.
다시 도 6으로 돌아가면, 이러한 방식이 반복되어, 애플리케이션을 설치한 엣지 디바이스는 자신의 목록(40)을 참조하여 자신이 애플리케이션을 배포할 다른 엣지 디바이스에게 상태를 문의하게 되고, 회신받은 상태가 미설치 또는 실패이면 해당 엣지 디바이스에게 애플리케이션을 자신의 목록(40)과 함께 배포한다. 그리고, 이를 배포받은 엣지 디바이스는 설치 완료 후 자신이 새로운 배포자가 되어 다른 엣지 디바이스들에게 애플리케이션을 목록(40)과 함께 배포하게 된다. 이처럼, 각 엣지 디바이스가 새로운 배포자가 되는 전파(Propagation) 방법을 통해 순차적으로 로컬 네트워크(20) 내의 모든 엣지 디바이스들(110, 120, 130, 140, 150, 160, 170)에게 애플리케이션이 배포되게 된다. 그리고, 가장 마지막으로 애플리케이션을 배포 받아 설치가 완료된 엣지 디바이스의 경우, 그 목록(40)에는 모든 엣지 디바이스가 설치됨 상태로 표시될 것이다. 이는 로컬 네트워크(20) 내의 모든 배포 대상 엣지 디바이스에 대해 애플리케이션 배포가 완료되었다는 의미이므로, 해당 엣지 디바이스는 그 결과를 나타내는 메시지를 제1 엣지 디바이스(110)에게 송신한다. 제1 엣지 디바이스(110)는 상기 메시지에 기반하여, 전체 배포 대상에 대해 애플리케이션 배포가 완료되었는지 확인하고 그에 따라 배포 완료 메시지를 클라우드 서버(10)에 송신한다.
도 8은 엣지 디바이스가 애플리케이션 설치에 실패했을 때 이를 복구하는 방법을 구체적인 예를 들어 설명하는 도면이다. 도 8의 실시예에서는, 제6 엣지 디바이스(160)가 애플리케이션을 전송받았으나, 설치에 실패하여 최종적으로 애플리케이션이 설치되지 않은 상황을 가정한다.
로컬 네트워크(20) 내에 애플리케이션이 배포되는 도중에는, 제6 엣지 디바이스(160)의 설치가 실패하였더라도, 곧 다른 엣지 디바이스들이 제6 엣지 디바이스(160)에게 현재 상태를 문의하고, 그에 따라 제6 엣지 디바이스(160)가 실패를 회신하고, 실패를 회신 받은 다른 엣지 디바이스가 자신의 목록(40)에서 제6 엣지 디바이스(160)의 상태를 실패로 업데이트한 후, 제6 엣지 디바이스(160)에게 애플리케이션을 배포하는 본 발명에 따른 일련의 단계들을 통해, 제6 엣지 디바이스(160)의 설치 실패는 치유(Cure)되고 애플리케이션을 다시 배포받을 수 있게 된다.
그에 따라, 클라우드 서버(10)나 다른 관리자의 개입이 없더라도 엣지 디바이스에서 발생한 애플리케이션 설치의 오류를 자율적으로 해소할 수 있게 된다.
다만, 이러한 방법은 제6 엣지 디바이스(160)가 가장 최후에 애플리케이션을 설치하는 장치인 경우에는 동작하지 않는다. 제6 엣지 디바이스(160)가 애플리케이션을 설치하는 도중에 다른 엣지 디바이스들이 상태를 문의하면 제6 엣지 디바이스(160)는 설치 중으로 회신할 것이고, 이를 회신 받은 다른 엣지 디바이스들은 제6 엣지 디바이스(160)에게 다시 현재 상태를 문의하지 않을 것이다. 이후, 제6 엣지 디바이스(160)에서 진행중이던 애플리케이션 설치가 실패하면, 제6 엣지 디바이스(160)는 다른 엣지 디바이스들로부터 애플리케이션을 재배포 받지 못하게 되고, 설치가 실패한 상태로 남겨질 수 있다.
이러한 상황을 회피하기 위해, 제6 엣지 디바이스(160)는 i) 설치 실패에 따라 목록(40)을 업데이트 했을 때 자신이 애플리케이션을 설치하지 않은 마지막 디바이스인 경우(예를 들어, 다른 엣지 디바이스들의 상태가 모두 설치됨 일 때), 또는 ii) 설치 실패 후 일정 시간이 경과할 때까지 다른 엣지 디바이스들로부터 상태 문의를 받지 못한 경우, 목록(40)에서 설치됨으로 상태가 표시된 다른 엣지 디바이스에게 능동적으로 애플리케이션 배포를 요청할 수 있다.
가령, 도 8의 목록(40)에는 Device 01, Device 02, Device 03, Device 04, 및 Device 05가 설치됨으로 표시되므로, 해당 ID에 대응하는 제1 엣지 디바이스(110), 제2 엣지 디바이스(120), 제3 엣지 디바이스(130), 제4 엣지 디바이스(140), 및 제5 엣지 디바이스(150) 중 어느 하나에게 제6 엣지 디바이스(160)가 애플리케이션 배포를 요청하고, 요청을 받은 엣지 디바이스가 제6 엣지 디바이스(160)에게 애플리케이션을 배포하는 방식으로 제6 엣지 디바이스(160)는 자신의 오류를 치유하고 애플리케이션을 설치하게 된다.
다만, 이 경우에도, 제6 엣지 디바이스(160)가 반복적으로 애플리케이션을 수신하여 설치하였으나 일정 횟수(예를 들어, 3번) 이상 실패한 경우, 제6 엣지 디바이스는 더 이상 다른 엣지 디바이스에게 애플리케이션의 배포를 요청하지 않을 수 있다. 이는, 여러 번 설치를 시도하여 계속해서 설치에 실패하였다면 해당 엣지 디바이스 환경에 문제가 있는 것이므로, 불필요한 리소스 소모를 방지하기 위해 더 이상의 배포 요청을 하지 않도록 한 것이다.
도 9는 본 발명의 일 실시예에 따른, 엣지 디바이스들의 복수의 그룹으로 그룹핑 된 경우 애플리케이션을 배포하는 방법을 설명하는 도면이다.
경우에 따라, 같은 로컬 네트워크(20) 내의 엣지 디바이스들이라도 이들을 소정의 기준에 따라 복수의 그룹으로 구분하고, 각 그룹 내에서만 본 발명에 따른 애플리케이션의 상호 배포(또는, 전파)를 수행하도록 할 수도 있다. 예를 들어, 클라우드 서버(10)로부터 제1 엣지 디바이스(110)가 애플리케이션을 배포받은 후, 제1 엣지 디바이스(110)는 제1 그룹(70) 내 제2 엣지 디바이스(120)와 제2 그룹(80) 내 제5 엣지 디바이스(150)에게 애플리케이션을 배포한다. 그리고 이후의 애플리케이션 배포는 각 그룹 내에서만 이루어진다. 즉, 제1 그룹(70)의 엣지 디바이스들(120, 130, 140)은 제1 그룹(70) 내 다른 엣지 디바이스들에만 애플리케이션을 배포하고, 즉 제2 그룹(80)의 엣지 디바이스들(150, 160, 170)은 제2 그룹(80) 내 다른 엣지 디바이스들에만 애플리케이션을 배포한다. 이때, 각 그룹에 대한 관리 및 각 그룹을 기준으로 한 애플리케이션 배포 정책은 클라우드 서버(10)에 의해 미리 정해질 수 있다.
일 실시예로서, 각 그룹을 구분하는 그룹핑(Grouping)은, 각 엣지 디바이스들의 OS(Operation System, 운영 시스템) 종류, CPU 종류, 또는 GPU 유무를 기준으로 정해질 수 있다. 예를 들어, OS 종류를 기준으로, OS 종류가'Rasbian'인 장치들을 제1 그룹(70)으로, OS 종류가 'Ubuntu'인 장치들을 제2 그룹(80)으로 정할 수 있다. 또는, CPU 종류를 기준으로, 4코어 CPU를 가진 장치들을 제1 그룹(70)으로, 2코어 CPU를 가진 장치들을 제2 그룹(80)으로 정할 수도 있다. 또는, GPU 유무를 기준으로, GPU가 있는 장치들을 제1 그룹(70)으로, GPU가 없는 장치들을 제2 그룹(80)으로 정할 수도 있다.
또는, 그 외에도 사용자로부터 그룹핑 할 대상을 지정받고, 그에 따라 엣지 디바이스들을 그룹핑 할 수도 있다. 예를 들어, 사용자가 엣지 디바이스들(120, 130, 140)을 제1 그룹(70)으로 지정하고, 다른 엣지 디바이스들(150, 160, 170)을 제2 그룹(80)으로 지정한 것에 따라, 상기 제1 그룹(70) 및 제2 그룹(80)을 결정할 수 있다.
도 10 및 도 11은 본 발명의 몇몇 실시예들에 따른, 엣지 컴퓨팅 방법을 설명하는 순서도들이다.
도 10은 클라우드 서버(10)로부터 직접 애플리케이션을 배포받는 엣지 디바이스(예를 들어, 제1 엣지 디바이스)의 동작 방법을 설명한다. 이하 도면을 참조하여 설명한다.
S110 단계에서, 엣지 디바이스는 로컬 네트워크 내 다른 엣지 디바이스들의 정보를 수집하여 클라우드 서버로 송신한다. 클라우드 서버는 송신된 엣지 디바이스들의 정보에 기반하여 애플리케이션을 배포할 목록을 작성한다.
S120 단계에서, 엣지 디바이스는 클라우드 서버로부터 애플리케이션을 내려받아 설치(Install)한다. 이때, 엣지 디바이스는 클라우드 서버로부터 애플리케이션 배포를 위한 상기 목록을 함께 수신한다.
S130 단계에서, 엣지 디바이스는 목록을 참조하여 애플리케이션을 배포할 다른 엣지 디바이스 및 그 순서를 결정한다. 이때, 엣지 디바이스는 목록의 상태 및 우선 순위를 참조할 수 있다.
S140 단계에서, 엣지 디바이스는 배포 대상 엣지 디바이스에게 현재 상태를 문의한 후, 현재 미설치 또는 실패 상태이면 해당 엣지 디바이스에게 목록과 애플리케이션을 전송한다. 해당 엣지 디바이스는 전송받은 애플리케이션을 설치한 후, 역시 전송받은 목록을 참조하여 자신이 새로운 배포자가 되어 또 다른 애플리케이션에게 애플리케이션을 배포하게 된다. 이러한 연쇄적인 전파를 거쳐 로컬 네트워크(20) 내의 모든 엣지 디바이스들에게 애플리케이션 배포가 완료되게 된다.
S150 단계에서, 엣지 디바이스는 마지막으로 애플리케이션을 설치한 디바이스로부터 애플리케이션의 배포 결과를 나타내는 메시지를 수신하게 된다.
S160 단계에서, 엣지 디바이스는 앞서 수신한 메시지에 기반하여 클라우드 서버에게 애플리케이션의 배포가 완료되었음을 나타내는 메시지를 송신힌다.
도 11은 애플리케이션을 배포받은 후 자신이 배포자가 되어 다른 엣지 디바이스에게 애플리케이션을 배포하는 경우의 동작 방법을 설명한다. 이하 도면을 참조하여 설명한다.
S210 단계에서, 엣지 디바이스는 애플리케이션을 수신하여 설치(Install)한다.
S220 단계에서, 엣지 디바이스는 애플리케이션 설치가 성공하였는지 판단한다. 설치가 성공하였으면, 본 실시예는 S230 단계로 진행하여 엣지 디바이스는 목록에서 자신의 현황 정보를 업데이트하고(즉, 자신의 상태를 설치됨으로 업데이트하고), 자신이 새로운 배포자가 되어 애플리케이션을 배포할 배포 대상을 확인한다. 반면에, 설치가 실패하였으면, 본 실시예는 S270 단계로 진행하여, 엣지 디바이스는 목록에서 자신의 현황 정보를 실패로 업데이트하고 그대로 종료한다.
이후 S240 단계에서, 엣지 디바이스는 목록 내에 배포 대상 엣지 디바이스가 존재하는지 확인한다. 예를 들어, 목록 내에 상태가 미설치 또는 실패로 표시된 엣지 디바이스가 있으면, 이는 배포 대상 엣지 디바이스가 존재하는 것이다. 반면에, 목록 내의 모든 엣지 디바이스가 설치됨 또는 설치 중 상태이면, 이는 배포 대상 엣지 디바이스가 존재하지 않는 것이다.
배포 대상 엣지 디바이스가 존재하면, 본 실시예는 S250 단계로 진행하여 엣지 디바이스는 배포 대상 엣지 디바이스에게 현재 상태를 문의한다. 그리고, S260 단계에서, 상기 문의에 대한 회신 결과, 배포 대상 엣지 디바이스가 설치됨 또는 설치 중 상태가 아니면, 엣지 디바이스는 배포 대상 엣지 디바이스에게 애플리케이션을 목록과 함께 배포하고, 자신의 목록의 현황 정보를 업데이트한다.
한편, 앞서 S240 단계에서 배포 대상 엣지 디바이스가 존재하지 않으면, 본 실시예는 S280 단계로 진행하여 로컬 네트워크(20) 내 모든 엣지 디바이스에 애플리케이션이 배포된 것으로 보고, 제1 엣지 디바이스(110)에 애플리케이션의 배포 결과를 나타내는 메시지를 전송한다.
이하에서는, 도 12를 참조하여 본 발명의 다양한 실시예에서 설명된 방법들이 구현되는 예시적인 컴퓨팅 장치(500)에 대하여 설명하도록 한다.
도 12는 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다. 앞서 설명된 클라우드 서버(10) 및 엣지 디바이스(110, 120, 130, 140)와 같이, 본 발명의 엣지 컴퓨팅 환경에서 동작하는 다양한 장치들이 도 12의 컴퓨팅 장치(500)로 구현될 수 있다.
도 12에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 12에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 예를 들어, 컴퓨터 프로그램(591)은 로컬 네트워크 내 엣지 디바이스들의 정보를 수집하여 서버로 송신하는 동작, 상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션의 배포를 위한 엣지 디바이스들의 목록을 수신하는 동작, 및 상기 목록을 참조하여 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정하고 상기 다른 엣지 디바이스에게 상기 목록 및 상기 애플리케이션을 전송하는 동작을 실행시키기 위한 인스트럭션들(Instructions)을 포함하고, 이때 상기 다른 엣지 디바이스는 상기 전송된 애플리케이션을 설치하고, 상기 설치가 완료되면 상기 목록을 참조하여 상기 애플리케이션을 배포할 또 다른 엣지 디바이스를 결정하고, 상기 또 다른 엣지 디바이스에게 상기 애플리케이션을 전송할 수 있다. 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 서버; 및
    상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션을 로컬 네트워크 내의 제2 엣지 디바이스에게 배포하는 제1 엣지 디바이스를 포함하고,
    상기 제2 엣지 디바이스는,
    상기 제1 엣지 디바이스로부터 상기 애플리케이션을 수신하여 설치하고, 상기 애플리케이션을 상기 로컬 네트워크 내의 제3 엣지 디바이스에게 배포하는,
    엣지 컴퓨팅 시스템.
  2. 제1 항에 있어서,
    상기 제1 엣지 디바이스는,
    상기 로컬 네트워크 내의 엣지 디바이스들의 정보를 수집하여 상기 서버에 송신하는,
    엣지 컴퓨팅 시스템.
  3. 제2 항에 있어서,
    상기 서버는,
    상기 수집된 정보를 기반으로 상기 애플리케이션이 배포될 엣지 디바이스들의 목록을 상기 제1 엣지 디바이스에 송신하는,
    엣지 컴퓨팅 시스템.
  4. 제3 항에 있어서,
    상기 목록은,
    미리 결정된 기준에 따라 상기 애플리케이션이 배포될 엣지 디바이스들을 그룹화 한 그룹핑(Grouping) 정보를 포함하는,
    엣지 컴퓨팅 시스템.
  5. 제4 항에 있어서,
    상기 미리 결정된 기준은,
    운영시스템(OS, Operating System)의 종류, CPU의 종류, GPU의 유무, 또는 사용자의 지정을 포함하는,
    엣지 컴퓨팅 시스템.
  6. 제3 항에 있어서,
    상기 제1 엣지 디바이스는,
    상기 목록 내 엣지 디바이스들의 우선 순위를 참조하여, 상기 제1 엣지 디바이스가 상기 목록 내 엣지 디바이스들에게 상기 애플리케이션을 배포할 순서를 결정하는,
    엣지 컴퓨팅 시스템.
  7. 제6 항에 있어서,
    상기 우선 순위는,
    상기 목록 내 엣지 디바이스들의 가용 메모리, CPU 사용률, 또는 레이턴시(Latency)를 기준으로 결정되는,
    엣지 컴퓨팅 방법.
  8. 제3 항에 있어서,
    상기 제1 엣지 디바이스는,
    상기 목록을 상기 제2 엣지 디바이스에게 송신하고,
    상기 제2 엣지 디바이스는,
    상기 목록을 참조하여 상기 제2 엣지 디바이스가 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정하는,
    엣지 컴퓨팅 방법.
  9. 8 항에 있어서,
    상기 목록은,
    상기 목록 내 엣지 디바이스들의 상기 애플리케이션이 설치된 현황(Status)을 나타내는 현황 정보를 포함하는,
    엣지 컴퓨팅 방법.
  10. 제9 항에 있어서,
    상기 현황 정보는,
    상기 목록 내 엣지 디바이스들의 상기 애플리케이션 설치 결과에 따라 업데이트되는,
    엣지 컴퓨팅 방법.
  11. 제9 항에 있어서,
    상기 제1 엣지 디바이스 또는 상기 제2 엣지 디바이스는,
    상기 현황 정보가 미설치(Not-Installed) 또는 실패(Failed)로 표시된 엣지 디바이스에게 상기 애플리케이션의 배포를 시도하는,
    엣지 컴퓨팅 방법.
  12. 제9 항에 있어서,
    상기 제2 엣지 디바이스는,
    상기 목록을 상기 제3 엣지 디바이스에게 송신하고,
    상기 제3 엣지 디바이스는,
    상기 제2 엣지 디바이스로부터 상기 애플리케이션을 수신하여 설치하되, 상기 제3 엣지 디바이스의 설치가 실패하면 상기 현황 정보가 설치됨(Installed)으로 표시된 엣지 디바이스에게 상기 애플리케이션의 배포를 요청하는,
    엣지 컴퓨팅 방법.
  13. 제12 항에 있어서,
    상기 제3 엣지 디바이스는,
    미리 결정된 횟수만큼 상기 제3 엣지 디바이스의 설치가 실패하면 더 이상 상기 애플리케이션의 배포를 요청하지 않는,
    엣지 컴퓨팅 방법.
  14. 제12 항에 있어서,
    상기 제3 엣지 디바이스는,
    자신이 상기 애플리케이션을 설치한 결과를 상기 현황 정보에 업데이트하고,
    상기 목록 상에 상기 현황 정보가 미설치(Not-Installed)인 엣지 디바이스가 없으면, 상기 애플리케이션의 배포 결과를 나타내는 메시지를 상기 제1 엣지 디바이스에 송신하는,
    엣지 컴퓨팅 방법.
  15. 로컬 네트워크 내 엣지 디바이스들의 정보를 수집하여 서버로 송신하는 단계;
    상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션의 배포를 위한 엣지 디바이스들의 목록을 수신하는 단계; 및
    상기 목록을 참조하여 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정하고 상기 다른 엣지 디바이스에게 상기 목록 및 상기 애플리케이션을 전송하는 단계를 포함하고,
    상기 다른 엣지 디바이스는,
    상기 전송된 애플리케이션을 설치하고,
    상기 설치가 완료되면 상기 목록을 참조하여 상기 애플리케이션을 배포할 또 다른 엣지 디바이스를 결정하고,
    상기 또 다른 엣지 디바이스에게 상기 애플리케이션을 전송하는,
    엣지 컴퓨팅 방법.
  16. 제15 항에 있어서,
    상기 다른 엣지 디바이스 또는 상기 또 다른 엣지 디바이스로부터 상기 애플리케이션의 배포 결과를 나타내는 메시지를 수신하는 단계; 및
    상기 수신한 메시지에 기반하여 상기 목록 내 모든 엣지 디바이스에 대해 상기 애플리케이션의 배포 결과가 결정된 것으로 판단되면, 상기 서버로 완료 메시지를 송신하는 단계를 더 포함하는,
    엣지 컴퓨팅 방법.
  17. 엣지 컴퓨팅 방법을 실행하기 위해 컴퓨팅 장치와 결합되어,
    로컬 네트워크 내 엣지 디바이스들의 정보를 수집하여 서버로 송신하는 단계;
    상기 서버로부터 애플리케이션을 내려 받아 설치(Install)하고, 상기 애플리케이션의 배포를 위한 엣지 디바이스들의 목록을 수신하는 단계; 및
    상기 목록을 참조하여 상기 애플리케이션을 배포할 다른 엣지 디바이스를 결정하고 상기 다른 엣지 디바이스에게 상기 목록 및 상기 애플리케이션을 전송하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고,
    상기 다른 엣지 디바이스는,
    상기 전송된 애플리케이션을 설치하고,
    상기 설치가 완료되면 상기 목록을 참조하여 상기 애플리케이션을 배포할 또 다른 엣지 디바이스를 결정하고,
    상기 또 다른 엣지 디바이스에게 상기 애플리케이션을 전송하는,
    컴퓨터 프로그램.
KR1020200059465A 2020-05-19 2020-05-19 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법 KR20210142829A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200059465A KR20210142829A (ko) 2020-05-19 2020-05-19 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200059465A KR20210142829A (ko) 2020-05-19 2020-05-19 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20210142829A true KR20210142829A (ko) 2021-11-26

Family

ID=78700293

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200059465A KR20210142829A (ko) 2020-05-19 2020-05-19 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20210142829A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775806B2 (en) 2022-02-10 2023-10-03 Nota, Inc. Method of compressing neural network model and electronic apparatus for performing the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200051037A (ko) 2017-09-27 2020-05-12 지멘스 악티엔게젤샤프트 사물 인터넷 환경에서의 에지 디바이스들 상의 소프트웨어 애플리케이션들의 프로비저닝

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200051037A (ko) 2017-09-27 2020-05-12 지멘스 악티엔게젤샤프트 사물 인터넷 환경에서의 에지 디바이스들 상의 소프트웨어 애플리케이션들의 프로비저닝

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775806B2 (en) 2022-02-10 2023-10-03 Nota, Inc. Method of compressing neural network model and electronic apparatus for performing the same

Similar Documents

Publication Publication Date Title
US10645152B2 (en) Information processing apparatus and memory control method for managing connections with other information processing apparatuses
US9026655B2 (en) Method and system for load balancing
EP2923272B1 (en) Distributed caching cluster management
US11888933B2 (en) Cloud service processing method and device, cloud server, cloud service system and storage medium
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
RU2585981C2 (ru) Крупномасштабная система хранения данных
CN110196722B (zh) 云主机批量管理方法、系统、设备及存储介质
US20090199175A1 (en) Dynamic Allocation of Virtual Application Server
US20170289297A1 (en) Distributed caching cluster client configuration
US20180176289A1 (en) Information processing device, information processing system, computer-readable recording medium, and information processing method
US10050832B2 (en) Server clustering in mobile computing environment
US7890952B2 (en) Autonomic peer-to-peer computer software installation
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
US9529772B1 (en) Distributed caching cluster configuration
US9342291B1 (en) Distributed update service
JP2016224832A (ja) ダンプ管理装置、ダンプ管理プログラム及びダンプ管理方法
US20150381433A1 (en) Management support method, management support device, and management support program
US9851980B1 (en) Distributed update service enabling update requests
KR20210142829A (ko) 복수의 엣지 디바이스에게 애플리케이션을 배포하는 엣지 컴퓨팅 시스템 및 방법
WO2021248972A1 (zh) 默认网关管理方法、网关管理器、服务器及存储介质
CN114296909A (zh) 一种根据kubernetes事件的节点自动扩容缩容方法及系统
US11256575B2 (en) Methods, electronic devices and computer program products for managing and performing data backup jobs
CN114827177B (zh) 一种分布式文件系统的部署方法、装置及电子设备
CN114172903B (zh) slurm调度系统的节点扩容方法、装置、设备和介质
JP4232606B2 (ja) ファイル配信システム、クライアントプログラム、クライアント、サーバプログラム、サーバ、及び方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal