KR20210049551A - 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템 - Google Patents

컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템 Download PDF

Info

Publication number
KR20210049551A
KR20210049551A KR1020190133990A KR20190133990A KR20210049551A KR 20210049551 A KR20210049551 A KR 20210049551A KR 1020190133990 A KR1020190133990 A KR 1020190133990A KR 20190133990 A KR20190133990 A KR 20190133990A KR 20210049551 A KR20210049551 A KR 20210049551A
Authority
KR
South Korea
Prior art keywords
edge
container
module
computing device
edge computing
Prior art date
Application number
KR1020190133990A
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 KR1020190133990A priority Critical patent/KR20210049551A/ko
Priority to US16/666,081 priority patent/US11321132B2/en
Publication of KR20210049551A publication Critical patent/KR20210049551A/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

엣지 컴퓨팅 방법 및 시스템이 제공된다. 본 개시의 몇몇 실시예에 따른 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법은 엣지 모듈 및 컨테이너 자원 할당값을 수신하는 단계, 상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 단계 및 상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 단계를 포함하고, 상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고, 상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고, 상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치이다.
이러한 방법에 따르면, 제조 플랜트 내에 on-premised 형태로 설치된 엣지 컴퓨팅 장치에 대해서도, 현재 작업 상황 및 자원 필요량에 따라 유동적으로 가용 컴퓨팅 자원을 조정할 수 있다. 또한, 제조 플랜트와 같이 시간이나 상황에 따라 데이터 트래픽이 유동적인 환경에서도, 이에 대응하여 엣지 컴퓨팅 장치의 할당 자원을 빠르게 조정할 수 있으므로 안정적인 서비스 제공이 가능해진다.

Description

컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템{EDGE COMPUTING METHOD AND APPARATUS FOR FLEXIBLY ALLOCATING COMPUTING RESOURCE}
본 개시는 엣지 컴퓨팅 방법 및 시스템에 관한 것이다. 보다 자세하게는, 시간에 따른 데이터 처리 요구량의 변화를 고려하여 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템에 관한 것이다.
클라우드 컴퓨팅(cloud computing)은 데이터를 클라우드 서버라 불리는 중앙의 서버에서 데이터를 처리하고 분석하고, 그 결과를 무선 네트워크를 통해 사용자에게 제공하는 컴퓨팅 방식이다. 이러한 클라우드 컴퓨팅은 고성능의 클라우드 서버에 장소의 제약없이 손쉽게 접근하여 이용할 수 있다는 점에서 그 활용도가 급속히 증가하고 있다. 그러나, 이러한 클라우드 컴퓨팅도 클라우드와 사용자 간의 비 근접성으로 인해 발생하는 지연 시간(latency) 증가, 클라우드로 많은 데이터를 전송하면서 발생하는 통신 비용의 증가, 및 위치-인지성(location-awareness) 등을 제공할 수 없다는 등의 문제점을 가지고 있다.
엣지 컴퓨팅(edge computing)은 이러한 클라우드 컴퓨팅의 문제점을 해결하기 위해서 만들어진 개념이다. 엣지 컴퓨팅은 기존의 클라우드 컴퓨터와 달리 데이터 소스에서 가장 가까운 엣지 장치나 게이트웨이에서 바로 데이터 처리 및 분석을 수행하는 기술로서, 최근에는 엣지 컴퓨팅을 공장이나 생산 현장과 같은 제조 플랜트에까지 확대하여 이용하려는 노력들이 시도되고 있다.
그러나, 순간적인 컴퓨팅 자원의 필요량에 따라 유동적으로 스케일-아웃(Scale-Out)을 할 수 있는 클라우드 컴퓨팅과는 달리, 제조 플랜트 내에 on-premised 형태로 설치되는 엣지 컴퓨팅은 일시적으로 컴퓨팅 자원을 많이 필요로 하는 상황에서 이에 대응하여 가용 컴퓨팅 자원을 유동적으로 늘리는 것이 어려운 문제가 있다. 또한, 제조 플랜트는 공정 계획, 시간(계절, 월, 일 등) 또는 상황에 따라 발생하는 데이터 트래픽이 유동적이나, on-premised 형태인 엣지 컴퓨팅으로는 이러한 환경 변화에 빠르게 적응할 수 없어서 안정적인 서비스를 제공하기 어려운 문제점이 있었다.
한국공개특허 제10-2019-0106306호 (2019.09.18 공개)
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 컴퓨팅 자원의 필요량에 따라 유동적으로 가용 컴퓨팅 자원을 조정할 수 있는 엣지 컴퓨팅 방법 및 시스템을 제공하는 데 있다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 제조 플랜트와 같이 시간이나 상황에 따라 데이터 트래픽이 유동적인 환경에 빠르게 대응하여 안정적인 서비스를 제공할 수 있는 엣지 컴퓨팅 방법 및 시스템을 제공하는 데 있다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법은, 엣지 모듈 및 컨테이너 자원 할당값을 수신하는 단계; 상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 단계; 및 상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 단계를 포함하고, 상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고, 상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고, 상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치이다.
일 실시예로서, 상기 엣지 모듈은 상기 엣지 컴퓨팅 장치와 직접 또는 다른 장치를 경유하여 통신하는 서버로부터 제공되고, 상기 서버는 상기 엣지 컴퓨팅 장치로부터 제공되는 센서 데이터를 이용하여 학습한 머신 러닝 기반의 인공지능 모델을 통해 상기 엣지 모듈을 생성할 수 있다.
일 실시예로서, 상기 서버는 상기 엣지 모듈 및 상기 엣지 컴퓨팅 장치를 모니터링한 결과에 기반하여, 상기 엣지 모듈을 상기 엣지 컴퓨팅 장치에 배포할 수 있다.
일 실시예로서, 상기 엣지 컴퓨팅 장치가 수집한 데이터를 상기 컨테이너에 배치된 상기 엣지 모듈을 이용하여 전처리 또는 필터링하는 단계; 및 상기 전처리 또는 필터링 된 데이터를 상기 엣지 모듈의 엣지 분석 모듈을 이용하여 데이터 분석 처리하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 컨테이너의 자원 할당값은 상기 엣지 컴퓨팅 장치와 직접 또는 다른 장치를 경유하여 통신하는 서버로부터 제공되고, 상기 서버는 상기 엣지 모듈의 예상 필요 자원량을 산출한 후, 상기 산출된 예상 필요 자원량에 따라 상기 컨테이너 자원 할당값을 결정할 수 있다.
일 실시예로서, 상기 컨테이너의 자원 할당값은 상기 엣지 컴퓨팅 장치와 직접 또는 다른 장치를 경유하여 통신하는 서버로부터 제공되고, 상기 서버는 상기 엣지 모듈의 예상 필요 자원량을 예측하는 모델을 생성하여 제공하고, 상기 컨테이너 자원 할당값은 상기 예상 필요 자원량을 예측하는 모델에 기반하여 산출될 수 있다.
일 실시예로서, 상기 컨테이너의 자원 할당값은 상기 컨테이너 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값을 포함할 수 있다.
일 실시예로서, 상기 엣지 컴퓨팅 장치는 상기 컨테이너와 상이한 다른 컨테이너를 포함하고, 상기 다른 컨테이너에는 상기 엣지 모듈과 상이한 다른 엣지 모듈이 배치되고, 상기 엣지 모듈과 상기 다른 엣지 모듈은 서로 상보적인 시간 - 자원 사용량 그래프를 가질 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법은, 엣지 모듈의 자원 사용량을 수집하는 단계; 상기 엣지 모듈의 자원 사용량을 참조하여, 상기 엣지 모듈이 배치된 컨테이너에 할당된 자원이 부족한지 판단하는 단계; 상기 판단 결과에 따라, 상기 엣지 모듈의 자원 사용량을 참조하여 상기 엣지 모듈의 필요 자원량을 산출하는 단계; 및 상기 엣지 모듈의 필요 자원량에 기반하여 상기 컨테이너의 자원 할당값을 산출하는 단계를 포함하고, 상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고, 상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고, 상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치이다.
일 실시예로서, 상기 엣지 컴퓨팅 장치는 상기 산출된 자원 할당값에 따라 상기 컨테이너에 자원을 다시 할당할 수 있다.
일 실시예로서, 상기 컨테이너의 자원 할당값을 산출하는 단계는, 상기 엣지 모듈의 상기 필요 자원량이 상기 엣지 컴퓨팅 장치의 가용 자원으로 수용 가능한지 판단하는 단계를 포함할 수 있다.
일 실시예로서, 상기 컨테이너의 자원 할당값을 산출하는 단계는, 상기 엣지 컴퓨팅 장치가 포함된 엣지 클러스터 내의 엣지 컴퓨팅 장치들의 가용 자원을 확인하는 단계; 및 상기 가용 자원을 확인한 결과에 기반하여, 상기 엣지 모듈에 대한 엣지 배포 정책을 결정하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 컨테이너의 자원 할당값에 따라 컨테이너에 자원을 다시 할당하는 단계를 더 포함하고, 상기 자원이 다시 할당되는 컨테이너는 상기 엣지 클러스터 내의 복수의 엣지 컴퓨팅 장치의 가용 자원을 통합하여 구성되는 크로스오버 컨테이너일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 컴퓨터 자원을 유동적으로 할당하는 엣지 컴퓨팅 시스템은, 프로세서; 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 엣지 모듈 및 컨테이너 자원 할당값을 수신하는 동작, 상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 동작, 및 상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하고, 상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고, 상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고, 상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 컴퓨팅 장치와 결합되어 동작하는 컴퓨터 프로그램은, 엣지 모듈 및 컨테이너 자원 할당값을 수신하는 단계; 상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 단계; 및 상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장되고, 상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고, 상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고, 상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치이다.
상술한 본 개시의 다양한 실시예에 따르면, 제조 플랜트 내에 on-premised 형태로 설치된 엣지 컴퓨팅 장치에 대해서도, 현재 작업 상황 및 자원 필요량에 따라 유동적으로 가용 컴퓨팅 자원을 조정할 수 있다.
또한, 제조 플랜트와 같이 시간이나 상황에 따라 데이터 트래픽이 유동적인 환경에서도, 이에 대응하여 엣지 컴퓨팅 장치의 할당 자원을 빠르게 조정할 수 있으므로 안정적인 서비스 제공이 가능해진다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예에 따른 엣지 컴퓨팅 시스템(1000)을 나타내는 개념도이다.
도 2는 도 1에 도시된 엣지 장치들(310, 320, 330, 340)이 구동하는 컨테이너 및 엣지 모듈의 개념과 그것들 간의 관계를 설명하기 위한 도면이다.
도 3은 도 1에 도시된 엣지 컴퓨팅 시스템(1000)의 동작 방법을 나타내는 순서도이다.
도 4는 도 3의 엣지 모듈 생성 단계(S110)를 구체화한 일 실시예를 나타내는 순서도이다.
도 5는 도 4를 참조하여 설명된, 엣지 모듈을 생성하는 방법의 구체적인 실시예를 도시하는 도면이다.
도 6은 도 4에 도시된 S115 단계를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 7은 도 6을 참조하여 설명된, 머신 러닝 기반으로 엣지 모듈을 생성하는 구체적인 실시예를 도시하는 도면이다.
도 8은 도 3에 도시된 컨테이너의 자원 할당값 결정 단계(S120)를 구체화한 일 실시예를 나타내는 순서도이다.
도 9는 도 3에 도시된 컨테이너 생성 및 엣지 모듈 배치 단계(S130)를 구체화한 일 실시예를 나타내는 순서도이다.
도 10은 도 8 및 도 9를 참조하여 설명된, 컨테이너의 자원 할당값을 결정하고, 그에 따라 컨테이너를 생성 후 엣지 모듈을 배치하는 구체적인 실시예를 도시하는 도면이다.
도 11은 도 3에 도시된 엣지 모듈을 이용하여 데이터를 처리하는 단계(S140)를 구체화한 일 실시예를 나타내는 순서도이다.
도 12는 도 11을 참조하여 설명된, 엣지 모듈을 이용한 데이터 처리의 구체적인 실시예를 도시하는 도면이다.
도 13은 본 개시의 다른 몇몇 실시예에 따른, 엣지 장치 내 컨테이너 자원을 유동적으로 재할당하는 엣지 컴퓨팅 방법을 나타내는 순서도이다.
도 14는 도 13에서 설명된, 엣지 장치 내 컨테이너 자원을 유동적으로 재할당하는 방법을 구체적인 실시예를 통해 설명하는 도면이다.
도 15는 도 13의 컨테이너의 자원 할당값 산출 단계(S240)를 구체화한 일 실시예를 나타내는 순서도이다.
도 16은 도 15의 실시예에서, 복수의 엣지 장치 간에 크로스오버 컨테이너를 구성하고 이를 통해 엣지 모듈을 구동하는 경우를 설명하는 도면이다.
도 17은 본 개시의 다양한 실시예에 따른 사용자 인터페이스 객체 탐지 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치(2000)를 도시하는 블록도이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 앞서 상술한 기술적 과제를 해결하기 위한 본 개시의 다양한 실시예들에 대하여 설명하도록 한다.
도 1은 본 개시의 몇몇 실시예에 따른 엣지 컴퓨팅 시스템(1000)을 나타내는 개념도이다. 도 1을 참조하면, 엣지 컴퓨팅 시스템(1000)은 서버(100), 복수의 포그 장치(210, 220), 및 복수의 엣지 장치(310, 320, 330, 340)를 포함한다.
서버(100)는 복수의 포그 장치(210, 220)를 통해 또는 엣지 장치(340)와 데이터 통신을 하는 중앙의 서버로서, 클라우드 서버일 수 있다. 서버(100)는 고성능의 프로세서 및 하드웨어를 구비하고, 복수의 포그 장치(210, 220) 또는 복수의 엣지 장치(310, 320, 330, 340)가 처리하기 어려운 작업들을 처리하고 그 결과를 복수의 포그 장치(210, 220) 또는 복수의 엣지 장치(310, 320, 330, 340)에 제공할 수 있다. 서버(100)의 구체적인 구성 및 기능들은 도 3 내지 도 17을 참조하며 상세히 후술되므로 여기서는 그에 대한 자세한 설명은 생략한다.
복수의 포그 장치(210, 220)는 서버(100)와 엣지 장치들(310, 320, 330)을 중계하며, 엣지 장치들(310, 320, 330)의 작업 현황을 모니터링하고 그것들의 엣지 컴퓨팅을 관리한다. 복수의 포그 장치(210, 220)는 각각 하나 이상의 엣지 장치와 연결되며, 자신과 연결된 엣지 장치들의 상위 장치로서 기능할 수 있다. 복수의 포그 장치(210, 220)의 구체적인 구성 및 기능들은 도 3 내지 도 17을 참조하며 상세히 후술되므로 여기서는 그에 대한 자세한 설명은 생략한다.
복수의 엣지 장치(310, 320, 330, 340)는 엣지 컴퓨팅을 수행하는 장치로서, 여기서는 제조 플랜트에서 설비에 설치된 또는 설비들 사이에 설치된 컴퓨팅 장치를 의미한다. 복수의 엣지 장치(310, 320, 330, 340)는 제1 엣지 장치(310)와 같이 센서들(400)과 연계되어 그로부터 센서 데이터를 수신하는 장치일 수 있다. 한편, 복수의 엣지 장치(310, 320, 330, 340)는 제1, 제2 및 제N 엣지 장치와 같이 특정 포그 장치(210)에 의해 관리 및 제어되는 장치일 수도 있고, 제K 엣지 장치와 같이 중간에 다른 포그 장치가 없이 서버(100)에 의해 직접 관리 및 제어되는 장치일 수도 있다. 복수의 엣지 장치(310, 320, 330, 340)의 구체적인 구성 및 기능들은 도 3 내지 도 17을 참조하며 상세히 후술되므로 여기서는 그에 대한 자세한 설명은 생략한다.
일반적으로, 공장과 같은 제조 플랜트 내에 on-premised형태로 설치된 엣지 컴퓨팅 장치는 공정이 진행되는 설비 자체에 부착되어 설치되거나, 설비 사이사이에 설치되어 있기 때문에 한번 설치되고 나면 장치의 하드웨어 자원을 유동적으로 변경하기 어렵다. 이는 클라우드 서비스가 CPU나 메모리 등의 사용량이 증가하는 상황에서, 해당 작업에 할당되는 컴퓨팅 자원을 자동으로 스케일-아웃/스케일-인(Scale-out/Scale-in)하여 필요한 자원 요구량에 쉽게 대응할 수 있는 점과 대비된다.
본 개시는 클라우드 서비스와 유사한 유동적인 컴퓨팅 자원 할당 기능을 엣지 컴퓨팅 장치에 제공하기 위해, 각 엣지 장치(310, 320, 330, 340)에 독립적으로 컴퓨팅 작업을 수행할 수 있는 컨테이너(container)를 구성하고, 엣지 장치(310, 320, 330, 340)의 실제 작업을 수행하는 작업 모듈(이하, '엣지 모듈'이라 함)을 컨테이너에 배치한다. 이때, 엣지 모듈 및 컨테이너는 특정 엣지 장치에 고정적으로 설치 및 배치되는 것이 아니며, 현재 작업 상황 및 자원 필요량에 따라 복수의 엣지 장치들 중에서 가장 적합한 엣지 장치에 유동적으로 배포 및 설치된다.
도 2는 도 1에 도시된 엣지 장치들(310, 320, 330, 340)이 구동하는 컨테이너 및 엣지 모듈의 개념과 그것들 간의 관계를 설명하기 위한 도면이다. 도 2를 참조하면, 제1 엣지 장치(310) 및 제2 엣지 장치(320)에 설치 및 배치된 컨테이너들(315, 316, 325, 326)의 예가 도시된다. 설명의 편의를 위해, 각 컨테이너들(315, 316, 325, 326) 내부에서 동작하는 엣지 모듈의 시간에 따른 자원 사용량 그래프를 각 컨테이너들(315, 316, 325, 326) 안에 도시하였다.
도 2에서, 각 엣지 장치(310, 320)는 복수의 컨테이너를 포함할 수 있는 것으로 예시된다. 가령, 제1 엣지 장치(310)는 제1 컨테이너(315) 및 제2 컨테이너(316)를 포함하고, 제2 엣지 장치(320)는 제3 컨테이너(325) 및 제4 컨테이너(326)를 포함한다. 이때, 각 컨테이너(315, 316, 325, 326)들은 고정적인 하드웨어 구성이 아니라, 가상 머신(virtual machine)과 같이 필요에 따라 적절한 컴퓨팅 자원을 할당받아 구동되는 컴퓨팅 요소이다.
한편, 본 개시에서, 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈을 의미하고, 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 엣지 컴퓨팅 장치의 소프트웨어 구성요소를 의미하고, 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치를 의미한다.
각 컨테이너(315, 316, 325, 326)는 내부에 배치되는 엣지 모듈의 자원 사용량에 적합한 크기의 컴퓨팅 자원을 할당받으며, 다른 컨테이너들과 독립적으로 자신의 엣지 모듈을 실행할 수 있어 다른 컨테이너의 동작이나 버전에 간섭받지 않는다.
각 엣지 장치(310, 320)는 엣지 모듈의 자원 필요량을 고려하여 컨테이너(315, 316, 325, 326)를 구성하고 엣지 모듈을 배정받을 수 있다. 가령, 도 2에 도시된 것처럼, 제1 엣지 장치(310)의 두 개의 컨테이너(315, 316)에는 시간 - 자원 사용량 그래프가 서로 상보적인 엣지 모듈들이 할당될 수 있다. 즉, 제1 컨테이너(315)의 엣지 모듈이 자원을 많이 사용하는 시간에는 제2 컨테이너(316)의 엣지 모듈이 자원을 적게 사용하고, 반대로 제1 컨테이너(315)의 엣지 모듈이 자원을 적게 사용하는 시간에 제2 컨테이너(316)의 엣지 모듈이 자원을 많이 사용하는 관계의 엣지 모듈들이 제1 엣지 장치(310)의 컨테이너들(315, 316)에 배정될 수 있다. 이는 제1 엣지 장치(310)의 컴퓨팅 하드웨어 사용 효율을 최대화하기 위함이다. 유사한 이유로, 제2 엣지 장치(320)의 두 개의 컨테이너(325, 326)에도 시간 - 자원 사용량 그래프가 서로 상보적인 엣지 모듈들이 각각 할당될 수 있다.
한편, 본 개시에서는 기본적으로 하나의 컨테이너에 하나의 엣지 모듈이 배치되는 것을 전제한다. 이는 엣지 모듈들이 구동될 때 서로 충돌을 일으키지 않도록 하기 위함이다. 다만, 이는 하나의 실시예일 뿐이므로 본 개시의 범위가 이에 한정되는 것은 아니며, 경우에 따라 하나의 컨테이너에 복수의 엣지 모듈이 배치될 수도 있다.
다시 도 1로 돌아가서, 앞서 설명한 유동적인 컴퓨팅 자원 할당 기능을 엣지 컴퓨팅 장치에 제공하기 위해, 엣지 컴퓨팅 시스템(1000)은 중앙의 서버(100) 및 중간의 포그 장치들(210, 220)을 이용하여 엣지 장치들(310, 320, 330, 340)의 현재 자원 사용량 및 향후 자원 필요량을 산출하고, 그에 따라 컴퓨팅 자원을 가장 효율적으로 활용할 수 있는 방식으로, 각 엣지 장치들(310, 320, 330, 340)에 엣지 모듈들을 배포하고 엣지 모듈이 구동될 컨테이너의 자원 할당값을 제공한다. 이를 통해, 각 엣지 장치들(310, 320, 330, 340)은 엣지 모듈이 필요로 하는 자원량에 기반하여 능동적으로 컨테이너의 할당되는 자원을 조정할 수 있으며, 엣지 컴퓨팅 시스템(100)의 효율적 컴퓨팅 자원 분배 및 안정적인 서비스 제공이 가능해진다.
한편, 도 3 이하에서는 엣지 컴퓨팅 시스템(1000)이 구동되는 구체적인 방법이 설명된다. 도 3 이하에서는 설명의 간명화를 위해, 기본적으로 서버(100)와 제1 포그 장치(210)와 제1 엣지 장치(310) 간의 관계 및 그 동작만을 중심으로 설명한다. 한편, 이하에서 각 단계의 수행 주체가 명시되지 않은 경우에는, 그 주체가 도 1의 엣지 컴퓨팅 시스템(100)인 것으로 전제한다.
도 3은 도 1에 도시된 엣지 컴퓨팅 시스템(1000)에 기반한 엣지 컴퓨팅 방법을 나타내는 순서도이다. 도 3을 참조하면, 엣지 컴퓨팅 방법은 S110 단계 내지 S140 단계의 네 단계로 구성된다.
S110 단계에서, 엣지 컴퓨팅 시스템(1000)은 센서로부터 데이터를 수신하고, 수신한 데이터를 기반으로 엣지 모듈을 생성한다. S110 단계의 명확한 이해를 위해 도 4 및 도 5를 참조하여 부연 설명한다.
도 4는 도 3의 엣지 모듈 생성 단계(S110)를 구체화한 일 실시예를 나타내는 순서도이다. 도 5는 도 4를 참조하여 설명된, 엣지 모듈을 생성하는 방법이 시스템 상에서 구동되는 방법을 설명하는 도면이다. 도 4 및 도 5의 실시예에서는 제1 엣지 장치(310)가 센서로부터 데이터를 수신하여 서버(100)로 전송하고, 서버(100)가 전송된 데이터를 기반으로 분석 모델을 생성하고, 이를 통해 엣지 모듈을 생성하는 일련의 단계들이 설명된다.
먼저, S111 단계에서, 제1 엣지 장치(310)는 센서로부터 수신한 데이터를 표준 데이터 포맷으로 파싱한다. 도 5를 참조하면, 센서 데이터가 제1 엣지 장치의 인터페이스(I/F, 311)로 입력되고, 인터페이스(311) 내에서 수신한 데이터의 통신 프로토콜을 해석하고(a), 해석된 데이터를 표준화된 데이터 포맷으로 파싱하여(b), 외부로 전송하는(c) 일련의 단계들이 수행된다.
S112 단계에서, 제1 엣지 장치(310)는 자신과 연결된 상위 포그 장치가 존재하는지 판단한다. 상위 포그 장치가 존재하는 경우, 본 실시예는 S113 단계로 진행하여 파싱한 데이터를 상위 포그 장치(210)로 전송한다. 상위 포그 장치(210)는 이를 다시 서버(100)로 전달하게 된다. 이때, 상위 포그 장치(210)는 수신한 데이터를 자신의 엣지 정보 DB(212)에 저장하고, 정해진 주기에 따라 엣지 정보 DB(212)에 저장된 데이터를 서버(100)로 일괄 전송하는 방식으로 데이터를 전달할 수 있다. 반면에, 상위 포그 장치가 존재하지 않는 경우, 본 실시예는 S114 단계로 진행하여 제1 엣지 장치(310)는 서버(100)와 직접 연결을 시도하고, 서버(100)와 연결된 후 파싱한 데이터를 서버로 직접 전송한다. 도 5를 참조하면, 제1 엣지 장치(310)와 연결된 상위 포그 장치(210)가 존재하므로, 제1 엣지 장치(310)는 파싱한 데이터를 제1 포그 장치(210)를 통해 서버(100)로 전송하는 예가 실선으로 도시되고 있다. 그러나, 만약 제1 엣지 장치(310)의 상위 포그 장치가 없었다면, 도 5의 점선과 같이 파싱한 데이터를 서버(100)로 직접 전송할 수도 있을 것이다.
S115 단계에서, 서버(100)는 전송된 센서 데이터를 기반으로 엣지 모듈을 생성한다. 이때, 서버(100)는 도 5에 도시된 것처럼 한편, 이때, 서버(100)는 도 5에 도시된 것처럼 IOT 플랫폼 서버, MES 서버, 공용 클라우드 서버, 외부 시스템 서버 또는 그것들이 결합된 서버일 수 있다. 한편, 도 5에 도시된 컨테이너 엔진(313, 또는 docker)은 컨테이너 내에 엣지 모듈을 배치하는 일을 자동화해주는 소프트웨어를 의미한다.
계속 도 5를 참조하면, 서버(100)는 전송된 센서 데이터를 수신하여 센서 데이터 DB(110)에 저장한다. 그리고, 센서 데이터 DB(110)에 저장된 데이터들을 기반으로 엣지 분석 모델(10)을 생성하고, 생성된 분석 모델(10)을 통해 제1 엣지 장치(310)에서 필요한 작업을 수행할 엣지 모듈을 생성한다. 이때, 서버(100)는 머신 러닝 기반의 인공지능 모델을 통해 센서 데이터 DB(110)에 저장된 데이터들을 학습하고, 이를 기반으로 수신한 센서 데이터(110)를 분석 또는 처리하기에 적합한 엣지 분석 모델을 생성할 수 있다. 이하, 도 6 및 도 7을 참조하여 이에 대한 자세한 설명을 이어간다.
도 6은 도 4에 도시된 S115 단계를 더욱 구체화한 일 실시예를 나타내는 순서도이다. 도 7은 도 6에서 설명되는 방법을 통해 머신 러닝 기반으로 엣지 모듈을 생성하는 구체적인 실시예를 도시하는 도면이다.
먼저, 도 6을 참조하면, S115a 단계에서, 서버(100)는 엣지 분석모델 생성부(120)를 통해 센서 데이터 DB(110)를 이용하여, 머신 러닝을 이용한 엣지 분석모델을 생성한다. 구체적으로, 서버(100)는 머신 러닝 기반의 인공지능 모델인 엣지 분석모델 생성부(120)를 이용하여 센서 데이터 DB(110)에 축적된 데이터를 학습한다. 그리고, 학습의 결과로 특정 목적에 맞게 데이터를 분석 또는 처리하도록 트레이닝된 분석모델(10)을 생성한다. 생성된 분석모델(10)은 엣지 모듈 관리부(130)에 제공된다.
일 실시예로서, 엣지 분석모델 생성부(120)는 그 목적에 따라 다양한 분석모델을 생성할 수 있다. 예를 들어, 엣지 분석모델 생성부(120)는 특정 장치나 센서의 동작이상을 감지하는 이상감지 분석모델 또는 특정 장치나 센서의 불량을 판단하는 불량판단 분석모델을 생성할 수 있다.
S115b 단계에서, 서버(100)는 생성된 엣지 분석모델에 기반하여 엣지 모듈을 생성한다. 구체적으로, 서버(100)는 엣지 모듈 관리부(130)를 이용하여 엣지 분석모델 생성부(120)가 제공한 분석모델(10)을 개별 엣지 장치에 배포할 엣지 모듈(20)로서 가공한다. 예를 들어, 엣지 모듈 관리부(130)는 제공된 분석모델(10)을 제1 엣지 장치(310)의 인터페이스에 맞게 튜닝하여 엣지 모듈(20)을 만들 수도 있고, 제공된 분석모델(10) 자체를 그대로 엣지 모듈(20)로서 관리할 수도 있다.
S115c 단계에서, 서버(100)는 생성된 엣지 모듈을 엣지 모듈 저장소(140)에 저장한다. 엣지 모듈 저장소(140)는 엣지 모듈을 필요할 때 즉시 배포하고 적용하기 위해 미리 모듈화시켜 저장하는 저장소로서, 서버(100)가 엣지 모듈을 배포할 때는 엣지 모듈 저장소(140)에 저장된 엣지 모듈들을 검색하여 배포하게 된다.
다시 도 3으로 돌아가면, S120 단계에서, 엣지 컴퓨팅 시스템(1000)은 엣지 모듈의 특성과 제조 플랜트의 공정 계획을 기반으로, 상기 엣지 모듈이 실행될 컨테이너의 자원 할당값을 결정한다. 이하, 도 8을 참조하여 이에 대한 상세한 설명을 이어간다. 도 8은 도 3에 도시된 컨테이너의 자원 할당값 결정 단계(S120)를 구체화한 일 실시예를 나타내는 순서도이다.
도 8을 참조하면, S121 단계에서, 서버(100)는 엣지 모듈 및 엣지 장치들의 정보를 조회한다. 이때, 조회하는 정보에는 각 엣지 모듈들의 배포 현황(즉, 어떤 엣지 장치에 어떤 엣지 모듈들이 배포되어 있는지) 또는 각 엣지 장치와 엣지 모듈들의 자원 사용량 정보가 포함될 수 있다.
S122 단계에서, 서버(100)는 각 엣지 장치들에 어떤 엣지 모듈들을 배포할지, 엣지 모듈을 배포할 엣지 장치를 결정한다. 이때, 서버(100)는 앞서 조회한 엣지 모듈 및 엣지 장치들의 정보를 기반으로, 각 엣지 장치마다 배포되는 엣지 모듈들의 자원 사용량의 합이 해당 엣지 장치의 컴퓨팅 자원량을 초과하지 않도록, 그리고, 전반적으로 엣지 모듈 배포후의 엣지 장치들의 자원 사용률이 서로 비슷한 수준을 유지하도록 엣지 모듈을 배포할 엣지 장치를 결정할 수 있다.
S123 단계에서, 서버(100)는 엣지 모듈이 배포되는 엣지 장치에 대해, 엣지 모듈이 실행될 컨테이너의 자원 할당값을 결정한다. 이때, 서버(100)는 배포되는 엣지 모듈의 특성과 제조 플랜트의 공정 계획을 기반으로, 엣지 모듈의 예상 필요 자원량을 산출한 후 이에 따라 상기 컨테이너의 자원 할당값을 결정할 수 있다. 일 실시예로서, 상기 결정되는 자원 할당값은 상기 컨테이너 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값일 수 있다.
다시 도 3으로 돌아가면, S130 단계에서, 엣지 컴퓨팅 시스템(1000)은 제1 엣지 장치(310)에 엣지 모듈을 배포하고, 결정된 자원 할당값에 기반하여 컨테이너를 생성한다. 생성된 컨테이너에는 상기 배포된 엣지 모듈이 배치된다. 이하, 도 9를 참조하여 이에 대한 상세한 설명을 이어간다. 도 9는 도 3에 도시된 컨테이너 생성 및 엣지 모듈 배치 단계(S130)를 구체화한 일 실시예를 나타내는 순서도이다.
도 9를 참조하면, S131 단계에서, 제1 엣지 장치(310)는 서버(100)와 통신하여 서버(100)의 엣지 모듈 배포부(150)와 제1 엣지 장치(310)의 엣지 에이전트(314)를 연결한다. 이때, 엣지 모듈 배포부(150)와 엣지 에이전트(314)는 기밀성을 위해 보안 채널을 통해 연결될 수 있다.
S132 단계에서, 제1 엣지 장치(310)의 엣지 에이전트(314)는 엣지 모듈 배포부(150)로부터 자신에게 배포되는 엣지 모듈을 수신한다. 이때, 엣지 에이전트(314)는 S120 단계에서 서버(100)가 결정한 컨테이너 자원 할당값을 함께 수신할 수 있다.
S133 단계에서, 엣지 에이전트(314)는 수신한 컨테이너 자원 할당값에 기반하여 컨테이너를 생성한다.
S134 단계에서, 엣지 에이전트(314)는 생성된 컨테이너에 배포된 엣지 모듈을 배치한다.
상기 S120 및 S130 단계에 대한 보다 명확한 이해를 위해, 도 10을 참조하여 부연 설명한다. 도 10은 도 8 및 도 9를 참조하여 설명된, 컨테이너의 자원 할당값을 결정하고, 그에 따라 컨테이너를 생성 후 엣지 모듈을 배치하는 구체적인 실시예를 도시하는 도면이다.
도 10을 참조하면, 서버(100)는 엣지 장치들 및 그것에 배포된 엣지 모듈들을 모니터링하고, 엣지 장치들에 엣지 모듈을 배포하는 엣지 모듈 배포부(150)를 포함한다.
먼저, 서버(100)는 엣지 모듈 관리부(130)에 포함된 자원량 산출부(131)를 이용하여, 배포될 엣지 모듈들이 실행될 컨테이너의 자원 할당값을 결정한다. 이때, 자원량 산출부(131)는 배포되는 엣지 모듈의 특성과 제조 플랜트의 공정 계획을 기반으로, 엣지 모듈의 예상 필요 자원량을 산출한 후 이에 따라 상기 컨테이너의 자원 할당값을 결정할 수 있다. 일 실시예로서, 상기 결정되는 자원 할당값은 상기 컨테이너 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값일 수 있다.
다음으로, 서버(100)는 엣지 모듈 배포부(150)를 통해 엣지 모듈 저장소(140)로부터 배포할 엣지 모듈을 불러온 후, 배포 관리자(152)를 통해 제1 엣지 장치(310)의 엣지 에이전트(314)에 상기 엣지 모듈을 전송한다. 이때, 서버(100)는 엣지 모듈 관리부(130)로부터 상기 결정된 컨테이너의 자원 할당값을 수신하고 이를 동시에 또는 순차로 상기 엣지 에이전트(314)에 전송할 수 있다.
엣지 에인전트(314)는 엣지 모듈 배포부(150)로부터 상기 엣지 모듈 및 상기 자원 할당값을 수신하고, 엣지 런타임 엔진(315a)에 엣지 모듈에 대한 정보 및 컨테이너의 자원 할당값을 제공한다. 엣지 런타임 엔진(315a)은 제공된 엣지 모듈에 대한 정보 및 컨테이너의 자원 할당값에 따라 제1 엣지 장치(310)의 컴퓨팅 자원을 할당하여 컨테이너를 생성한다. 그리고, 엔지 런타임 엔진(315a)은 컨테이너 엔진(313)을 이용하여 컨테이너(315) 내에 엣지 모듈(315b)을 배치한다.
다시 도 3으로 돌아가서, S140 단계에서, 엣지 컴퓨팅 시스템(1000)은 배치된 엣지 모듈을 이용하여 센서로부터 수신되는 데이터를 처리한다. 이하, 구체적인 설명을 위해 도 11 및 도 12를 참조한다. 도 11은 도 3에 도시된 엣지 모듈을 이용하여 데이터를 처리하는 단계(S140)를 구체화한 일 실시예를 나타내는 순서도이다. 도 12는 도 11을 참조하여 설명된, 엣지 모듈을 이용한 데이터 처리의 구체적인 실시예를 도시하는 도면이다.
이하 도면을 참조하여 설명하면, S141 단계에서, 제1 엣지 장치(310)는 센서 데이터를 인터페이스(311)를 통해 수집하고, 엣지 모듈(315b)은 수집한 센서 데이터를 인터페이스(311)로부터 수신한다.
S142 단계에서, 제1 엣지 장치(310)의 엣지 모듈(315b)는 수신한 센서 데이터가 전처리 또는 필터링 대상 데이터인지 판단한다. 전처리 또는 필터링 대상 데이터이면 관련 처리를 위해 본 실시예는 S143 단계로 진행한다. S143 단계에서, 제1 엣지 장치(310)의 엣지 모듈(315b)은 수신한 센서 데이터에 대해 전처리 또는 필터링을 수행한다. 한편, 전처리 또는 필터링 대상 데이터가 아니면, 본 실시예는 S143 단계를 건너뛰고 바로 S144 단계로 진행한다.
S144 단계에서, 제1 엣지 장치(310)의 엣지 모듈(315b)은 상기 전처리 또는 필터링된 데이터(또는 S143 단계를 건너뛰고 제공되는 데이터)가 분석 대상 데이터인지 판단한다. 분석 대상 데이터이면, 관련 분석 처리를 위해 본 실시예는 S145 단계로 진행한다. 분석 대상 데이터가 아니면, 본 실시예는 S145 단계를 건너뛰고 바로 S146 단계로 진행한다.
S145 단계에서, 제1 엣지 장치(310)의 엣지 모듈(315b)은 제공된 데이터에 대해 엣지 모듈(315b)의 엣지 분석모델을 이용한 데이터 분석 처리를 수행한다. 일 실시예로서, 배포된 엣지 모듈(315b)이 도 7에서 설명한 이상감지 분석모델을 포함하는 모듈인 경우 상기 데이터 분석 처리는 제공된 데이터로부터 이상 여부를 감지하는 데이터 분석 처리 일 수 있다. 다른 실시예로서, 배포된 엣지 모듈(315b)이 도 7에서 설명한 불량판단 분석모델을 포함하는 모듈인 경우 상기 데이터 분석 처리는 제공된 데이터로부터 불량 여부를 판단하는 데이터 분석 처리 일 수 있다.
S146 단계에서, 제1 엣지 장치(310)는 분석처리가 완료된 데이터(또는 앞서 S145 단계를 건너뛰고 제공된 데이터)를 서버(100)로 전송한다. 일 실시예로서, 이때, 제1 엣지 장치(310)는 앞서 도 5에서와 유사하게, 자신의 상위 포그 장치가 존재하는지 판단하고, 그에 따라 데이터를 전송하는 경로를 다르게 할 수 있다. 예를 들어, 제1 엣지 장치(310)의 상위 포그 장치가 존재하는 경우, 제1 엣지 장치(310)는 데이터를 상위 포그 장치(210)로 전송한다. 이때, 상위 포그 장치(210)는 이를 다시 서버(100)로 전달하게 되는데, 상위 포그 장치(210)는 수신한 데이터를 자신의 엣지 정보 DB(212)에 저장했다가 정해진 주기에 따라 엣지 정보 DB(212)에 저장된 데이터를 서버(100)로 일괄 전송하는 방식으로 데이터를 전달할 수 있다. 반면에, 상위 포그 장치가 존재하지 않는 경우, 제1 엣지 장치(310)는 서버(100)와 연결하여 데이터를 서버로 직접 전송한다. 한편, 서버(100)로 전송된 데이터는 서버(100) 내 엣지 결과 DB(160)에 저장될 수 있다. 일 실시예로서, 서버(100)는 엣지 모듈 저장소(140), 센서 데이터 DB(110) 및 엣지 결과 DB(160)가 하나의 스토리지에 포함되도록 상기 엣지 모듈 저장소(140), 센서 데이터 DB(110) 및 엣지 결과 DB(160)를 구성할 수 있다.
도 13은 본 개시의 다른 몇몇 실시예에 따른, 엣지 장치 내 컨테이너 자원을 유동적으로 재할당하는 엣지 컴퓨팅 방법을 나타내는 순서도이다. 본 실시예에서는 엣지 장치에 엣지 모듈이 배포된 이후에 컨테이너 자원 부족 등의 경우에 대응하여 컨테이너 자원을 재할당하는 예가 설명된다. 도 13을 참조하면, 본 실시예에 따른 엣지 컴퓨팅 방법은 S210 단계 내지 S250 단계의 다섯 단계로 구성된다.
S210 단계에서, 엣지 컴퓨팅 시스템(1000)은 엣지 모듈의 자원 사용량을 수집한다.
S220 단계에서, 엣지 컴퓨팅 시스템(1000)은 수집한 엣지 모듈의 자원 사용량을 기초로 컨테이너에 할당된 자원이 부족한지 판단한다. 컨테이너에 할당된 자원이 부족하지 않으면, 현재 상태로도 큰 문제가 없는 것이므로 본 실시예는 더 이상 진행하지 않고 그대로 종료한다. 반면에, 컨테이너에 할당된 자원이 부족한 것으로 판단되면, 컨테이너에 적절한 자원을 재할당하기 위해 본 실시예는 S230 단계로 진행한다.
S230 단계에서, 엣지 컴퓨팅 시스템(1000)은 엣지 모듈의 자원 사용량 정보에 기반하여 엣지 모듈의 필요 자원량을 산출한다. 이를 위해, 엣지 컴퓨팅 시스템(1000)은 제1 포그 장치(210)를 통해 서버(100)로 수집한 엣지 모듈의 자원 사용량 정보를 제공하고, 서버(100)가 제공된 자원 사용량 정보에 따라 엣지 모듈의 예상 필요 자원량을 산출하도록 할 수 있다. 이때, 상기 필요 자원량 산출은 도 10에서 설명된 엣지 모듈 관리부(130)의 자원량 산출부(131)에 의해 수행될 수 있다.
일 실시예로서, 서버(100)는 상기 필요 자원량 산출을 위해 공정 계획 정보를 수집하고, 공정 계획에 따른 엣지 모듈의 예상 사용량 또는 예상 연산량을 계산한 후, 상기 엣지 모듈의 사용량 정보, 상기 공정 계획 정보, 상기 예상 사용량 또는 예상 연산량, 또는 상기 엣지 모듈의 특성을 기반으로 상기 필요 자원량을 산출할 수 있다.
일 실시예로서, 서버(100)는 상기 필요 자원량 산출을 위해 공정 계획 정보를 수집하고, 공정 계획에 따른 엣지 모듈의 예상 사용량 또는 예상 연산량을 계산한 후, 상기 엣지 모듈의 사용량 정보, 상기 공정 계획 정보, 상기 예상 사용량 또는 예상 연산량, 또는 상기 엣지 모듈의 특성을 기반으로 엣지 모듈의 최적 자원량을 예측하는 모델을 생성한 후, 이를 제1 포그 장치(210)에 제공하여 상기 엣지 모듈의 필요 자원량을 산출하도록 할 수도 있다.
S240 단계에서, 엣지 컴퓨팅 시스템(1000)은 엣지 모듈의 산출된 필요 자원량을 참조하여 엣지 모듈이 배치되는 컨테이너의 자원 할당값을 산출한다. 일 실시예로서, 상기 컨테이너의 자원 할당값 산출은 제1 포그 장치(210)에 의해 수행될 수 있다. 이때, 상기 자원 할당값은 상기 컨테이너에 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값일 수 있다. 산출된 자원 할당값은 제1 엣지 장치(310)로 제공된다.
S250 단계에서, 제1 엣지 장치(310)의 엣지 에이전트(314)는 상기 제공된 자원 할당값을 엣지 런타임 엔진(315a)에 제공하여, 상기 자원 할당값에 따라 컨테이너에 컴퓨팅 자원을 다시 할당하도록 한다(또는, 기존 컨테이너를 삭제하고 상기 자원 할당값에 따라 새로 컨테이너를 생성한다). 그리고, 엣지 에이전트(314)는 엣지 런타임 엔진(315a)를 통해 상기 컨테이너에 엣지 모듈을 다시 배치한다.
도 14는 도 13에서 설명된, 엣지 장치 내 컨테이너 자원을 유동적으로 재할당하는 방법을 구체적인 실시예를 통해 설명하는 도면이다. 이하, 도 14를 참조하여 설명한다.
먼저, 제1 포그 장치(210)는 엣지 장치들(310, 320)로부터 엣지 모듈들의 자원 사용량을 수집한다. 그리고, 수집된 자원 사용량을 참조하여, 현재 엣지 장치들(310, 320)의 컨테이너들(315, 316, 325, 326)에 할당된 자원이 각자의 엣지 모듈을 구동하기에 부족한지 판단한다. 그리고, 컨테이너들(315, 316, 325, 326)에 할당된 자원이 부족하다고 판단되면, 제1 포그 장치(210)는 서버(100)에 엣지 모듈들의 자원 사용량 정보(예를 들어, 자원 사용량의 시간별 추이 등)를 전송한다.
서버(100)는 제1 포그 장치(210)로부터 자원 사용량 정보를 수신하고, 엣지 모듈들의 필요 자원량을 산출한다. 이때, 서버(100)는 직접 필요 자원량을 산출하는 대신, 엣지 모듈들의 필요 자원량을 예측하는 모델을 생성하고 이를 제1 포그 장치(210)에 제공할 수도 있다. 일 실시예로서, 앞서 설명한 바와 같이, 서버(100)는 제조 플랜트의 공정 계획 정보를 수집하고, 공정 계획에 따른 엣지 모듈의 예상 사용량 또는 예상 연산량을 계산한 후, 상기 엣지 모듈의 사용량 정보, 상기 공정 계획 정보, 상기 예상 사용량 또는 예상 연산량, 또는 상기 엣지 모듈의 특성을 기반으로 상기 필요 자원량을 산출하거나 상기 필요 자원량을 예측하는 모델의 생성할 수 있다. 그리고, 서버(100)는 상기 산출된 필요 자원량 또는 상기 필요 자원량 예측 모델을 제1 포그 장치(210)에 제공한다.
제1 포그 장치(210)는 상기 제공된 필요 자원량 또는 필요 자원량 예측 모델을 이용하여, 엣지 모듈이 배치되는 컨테이너의 자원 할당값을 산출한다. 이때, 산출되는 자원 할당값은 컨테이너에 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값일 수 있는 점은 앞서 설명한 바와 같다. 산출된 자원 할당값은 엣지 장치들(310, 320)에 제공된다.
엣지 장치들(310, 320)은 제공된 각자의 자원 할당값을 엣지 에이전트(314, 324)에 제공하고, 자원 할당값에 기반하여 자신의 컨테이너(315, 316, 325, 326)에 컴퓨팅 자원을 할당한다(또는, 기존 컨테이너를 삭제하고 상기 자원 할당값에 따라 새로 컨테이너를 생성한다). 그리고, 엣지 장치들(310, 320)은 엣지 에이전트(314, 324)를 이용하여 자원이 재할당된(또는, 새로 생성된) 컨테이너에 엣지 모듈을 배치한다.
도 15는 도 13의 컨테이너의 자원 할당값 산출 단계(S240)를 구체화한 일 실시예를 나타내는 순서도이다. 도 15를 참조하면, 본 실시예에 따른 컨테이너의 자원 할당값 산출 단계는 S241 단계 내지 S246 단계의 여섯 단계로 구성된다.
S241 단계에서, 제1 포그 장치(210)는 엣지 모듈의 필요 자원량이 현재 엣지 모듈이 배치된 엣지 장치의 가용자원으로 수용 가능한지 판단한다. 수용 가능하면, 본 실시예는 S245 단계로 바로 진행한다. 수용 가능하지 않으면, 본 실시예는 S242 단계로 진행한다.
S242 단계에서, 제1 포그 장치(210)은 엣지 클러스터 내 엣지 장치들의 가용 자원을 확인한다. 여기서, 엣지 클러스터는 복수의 엣지 장치들을 묶은 하나의 그룹으로, 예를 들어, 제1 포그 장치(210)에 의해 관리되는 복수의 엣지 장치들이 하나의 엣지 클러스터로 분류될 수 있다. 클러스터 내 엣지 장치들의 가용 자원에 대한 정보는 서버(100)로 제공된다.
S243 단계에서, 서버(100)는 엣지 클러스터 내 가용 자원이 있는 엣지 장치(이하, '유휴 엣지 장치'라 함)들에 엣지 모듈이 배포될 수 있도록 엣지 배포 정책을 결정한다. 상기 엣지 배포 정책은 상기 유휴 엣지 장치들 중 어떤 엣지 장치에 어떤 엣지 모듈을 배포할 지에 대한 정보 또는 그 때의 컨테이너 구성 방법(예를 들어, 단일 엣지 장치로 컨테이너를 구성할 지, 복수 장치에 크로스오버 컨테이너를 구성할 지)에 대한 정보를 포함할 수 있다.
S244 단계에서, 서버(100)는 엣지 배포 정책에 따라 원래 엣지 모듈이 배치되지 않았던 다른 새로운 엣지 장치에 엣지 모듈을 배포한다.
S245 단계에서, 서버(100)는 엣지 모듈의 필요 자원량을 참조하여 엣지 모듈이 배치되는 컨테이너의 자원 할당값을 산출한다. 일 실시예로서, 산출되는 자원 할당값은 상기 컨테이너에 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값일 수 있다.
S246 단계에서, 서버(100)는 산출된 자원 할당값을 제1 엣지 장치(310)로 제공한다.
도 16은 도 15의 실시예에서, 복수의 엣지 장치 간에 크로스오버 컨테이너를 구성하고 이를 통해 엣지 모듈을 구동하는 경우를 설명하는 도면이다. 도 16의 실시예는 도 14의 실시예와 유사하다. 다만, 도 16의 실시예는 복수의 엣지 장치(310, 320)에 걸쳐 하나의 크로스오버 컨테이너(317)가 구성되고, 상기 크로스오버 컨테이너(317)에 크로스오버 엣지 모듈이 배치되는 점이 상이하다. 앞서, 도 15의 S242 단계 내지 S244 단계에서 설명한 것처럼, 현재 엣지 모듈이 배치되어 있는 엣지 장치의 가용 자원으로 엣지 모듈의 필요 자원량을 수용할 수 없는 경우, 컴퓨팅 자원의 여유가 있는 다른 엣지 장치에 엣지 모듈을 배치해야 한다. 그러나, 경우에 따라 단일 엣지 장치만으로 엣지 모듈의 필요 자원량을 수용할 수 없는 경우(즉, 엣지 모듈의 필요 자원량을 단독으로 수용할 수 있는 엣지 장치를 찾지 못한 경우), 복수의 엣지 장치를 연계하고 그들의 가용 자원을 통합하여 하나의 컨테이너(이하, '크로스오버 컨테이너'라 함)를 구성할 수도 있다.
도 16을 참조하면, 제1 엣지 장치(310) 및 제2 엣지 장치(320)를 연계하여 하나의 크로스오버 컨테이너(317)가 구성되고, 크로스오버 컨테이너(317) 내에 하나의 엣지 모듈(317b)이 배치되는 예가 도시된다. 이때, 컨테이너 엔진(313, 323) 및 엣지 에이전트(314, 324)는 각 엣지 장치(310, 320)마다 구성되지만, 컨테이너를 직접 인터페이스하는 엣지 런타임 엔진은 엣지 장치(310, 320)들을 가로지르는 1개의 크로스오버 엣지 런타임 엔진(317a)으로 구성될 수 있다.
일 실시예로서, 크로스오버 컨테이너(317)를 구성하는 경우, 각 엣지 에이전트들(314, 324)은 상호 연동을 위해 프록시를 구성할 수 있다.
이하에서는, 도 17을 참조하여 본 개시의 다양한 실시예에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(2000)에 대하여 설명하도록 한다.
도 17은 컴퓨팅 장치(2000)를 나타내는 하드웨어 구성도이다. 도 15에 도시된 바와 같이, 컴퓨팅 장치(2000)는 하나 이상의 프로세서(2100), 프로세서(2100)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(2200), 버스(2500), 통신 인터페이스(2400)와 컴퓨터 프로그램(2310)을 저장하는 스토리지(2300)를 포함할 수 있다. 다만, 도 17에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 17에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(2100)는 컴퓨팅 장치(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(3100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(2100)는 본 개시의 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(2000)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(2200)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(2200)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(2300)로부터 하나 이상의 프로그램(2310)을 로드할 수 있다. 메모리(2200)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(2500)는 컴퓨팅 장치(2000)의 구성 요소 간 통신 기능을 제공한다. 버스(2500)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(2400)는 컴퓨팅 장치(2000)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(2400)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(2400)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 경우에 따라, 통신 인터페이스(2400)는 생략될 수도 있다.
스토리지(2300)는 상기 하나 이상의 컴퓨터 프로그램(2310)과 각종 데이터 등을 비임시적으로 저장할 수 있다. 스토리지(2300)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(2310)은 메모리(2200)에 로드될 때 프로세서(2100)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(2100)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(2310)은 컴퓨팅 장치(2000)가 도 1의 서버(100)인 경우, 도 6에서 설명한 전송된 센서 데이터를 분석하는 동작, 머신 러닝을 이용하여 엣지 분석모델을 생성하는 동작, 엣지 분석모델에 기반하여 엣지 모듈을 생성하는 동작, 및 생성된 엣지 모듈을 엣지 모듈 저장소에 저장하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또는, 컴퓨터 프로그램(2310)은 컴퓨팅 장치(2000)가 도 1의 서버(100)인 경우, 도 8에서 설명한 엣지 모듈 및 엣지 장치들의 정보를 조회하는 동작, 엣지 모듈을 배포할 엣지 장치를 결정하는 동작, 및 엣지 모듈이 실행될 컨테이너의 자원 할당값을 결정하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
다른 예로서, 컴퓨터 프로그램(2310)은 컴퓨팅 장치(2000)가 도 1의 엣지 장치(310, 320, 330, 또는 340)인 경우, 도 9에서 설명한 서버의 엣지 모듈 배포부와 엣지 장치의 엣지 에이전트를 연결하는 동작, 엣지 모듈 및 컨테이너 자원 할당값을 수신하는 동작, 컨테이너 자원 할당값에 기반하여 컨테이너를 생성하는 동작, 및 생성된 컨테이너에 엣지 모듈을 배치하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또는, 컴퓨터 프로그램(2310)은 컴퓨팅 장치(2000)가 도 1의 엣지 장치(310, 320, 330, 또는 340)인 경우, 도 11에서 설명한 센서로부터 수집된 데이터를 수신하는 동작, 데이터가 전처리 또는 필터링 대상인지 여부를 판단하는 동작, 데이터를 전처리 또는 필터링하는 동작, 데이터가 분석 대상 데이터인지 판단하는 동작, 엣지 분석 모델을 이용하여 데이터를 분석 처리하는 동작, 및 처리된 데이터를 서버로 전송하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또 다른 예로서, 컴퓨터 프로그램(2310)은 컴퓨팅 장치(2000)가 도 1의 포그 장치(210, 또는 220)인 경우, 도 13에서 설명한 엣지 모듈의 자원 사용량을 수집하는 동작, 컨테이너에 할당된 자원이 부족한지 판단하는 동작, 엣지 모듈의 자원 사용량 정보에 기반하여 엣지 모듈의 필요 자원량을 산출하는 동작, 엣지 모듈의 필요 자원량을 참조하여 컨테이너의 자원 할당값을 산출하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또는, 컴퓨터 프로그램(2310)은 컴퓨팅 장치(2000)가 도 1의 포그 장치(210, 또는 220)인 경우, 도 15에서 설명한 엣지 모듈의 필요 자원량이 엣지 장치의 가용 자원으로 수용가능한지 판단하는 동작, 엣지 모듈의 필요 자원량을 참조하여 컨테이너의 자원 할당값을 산출하는 동작, 및 산출된 자원 할당값을 엣지 장치에 제공하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 17을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 17을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법에 있어서,
    엣지 모듈 및 컨테이너 자원 할당값을 수신하는 단계;
    상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 단계; 및
    상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 단계를 포함하고,
    상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고,
    상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고,
    상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치인,
    엣지 컴퓨팅 방법.
  2. 제1 항에 있어서,
    상기 엣지 모듈은,
    상기 엣지 컴퓨팅 장치와 직접 또는 다른 장치를 경유하여 통신하는 서버로부터 제공되고,
    상기 서버는,
    상기 엣지 컴퓨팅 장치로부터 제공되는 데이터를 이용하여 학습한 머신 러닝 기반의 인공지능 모델을 통해 상기 엣지 모듈을 생성하는,
    엣지 컴퓨팅 방법.
  3. 제2 항에 있어서,
    상기 서버는,
    상기 엣지 모듈 및 상기 엣지 컴퓨팅 장치를 모니터링한 결과에 기반하여, 상기 엣지 모듈을 상기 엣지 컴퓨팅 장치에 배포하는,
    엣지 컴퓨팅 방법.
  4. 제1 항에 있어서,
    상기 엣지 컴퓨팅 장치가 수집한 데이터를 상기 컨테이너에 배치된 상기 엣지 모듈을 이용하여 전처리 또는 필터링하는 단계; 및
    상기 전처리 또는 필터링 된 데이터를 상기 엣지 모듈의 엣지 분석 모듈을 이용하여 데이터 분석 처리하는 단계를 더 포함하는,
    엣지 컴퓨팅 방법.
  5. 제1 항에 있어서,
    상기 컨테이너의 자원 할당값은,
    상기 엣지 컴퓨팅 장치와 직접 또는 다른 장치를 경유하여 통신하는 서버로부터 제공되고,
    상기 서버는,
    상기 엣지 모듈의 예상 필요 자원량을 산출한 후, 상기 산출된 예상 필요 자원량에 따라 상기 컨테이너 자원 할당값을 결정하는,
    엣지 컴퓨팅 방법.
  6. 제1 항에 있어서,
    상기 컨테이너의 자원 할당값은,
    상기 엣지 컴퓨팅 장치와 직접 또는 다른 장치를 경유하여 통신하는 서버로부터 제공되고,
    상기 서버는,
    상기 엣지 모듈의 예상 필요 자원량을 예측하는 모델을 생성하여 제공하고,
    상기 컨테이너 자원 할당값은,
    상기 예상 필요 자원량을 예측하는 모델에 기반하여 산출되는,
    엣지 컴퓨팅 방법.
  7. 제1 항에 있어서,
    상기 컨테이너의 자원 할당값은,
    상기 컨테이너 할당할 CPU 할당량 또는 메모리 할당량을 나타내는 값을 포함하는,
    엣지 컴퓨팅 방법.
  8. 제1 항에 있어서,
    상기 엣지 컴퓨팅 장치는,
    상기 컨테이너와 상이한 다른 컨테이너를 포함하고,
    상기 다른 컨테이너에는 상기 엣지 모듈과 상이한 다른 엣지 모듈이 배치되고,
    상기 엣지 모듈과 상기 다른 엣지 모듈은 서로 상보적인 시간 - 자원 사용량 그래프를 갖는,
    엣지 컴퓨팅 방법.
  9. 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법에 있어서,
    엣지 모듈의 자원 사용량을 수집하는 단계;
    상기 엣지 모듈의 자원 사용량을 참조하여, 상기 엣지 모듈이 배치된 컨테이너에 할당된 자원이 부족한지 판단하는 단계;
    상기 판단 결과에 따라, 상기 엣지 모듈의 자원 사용량을 참조하여 상기 엣지 모듈의 필요 자원량을 산출하는 단계; 및
    상기 엣지 모듈의 필요 자원량에 기반하여, 상기 컨테이너의 자원 할당값을 산출하는 단계를 포함하고,
    상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고,
    상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고,
    상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치인,
    엣지 컴퓨팅 방법.
  10. 제9 항에 있어서,
    상기 엣지 컴퓨팅 장치는,
    상기 산출된 자원 할당값에 따라 상기 컨테이너에 자원을 다시 할당하는,
    엣지 컴퓨팅 방법.
  11. 제9 항에 있어서,
    상기 컨테이너의 자원 할당값을 산출하는 단계는,
    상기 엣지 모듈의 상기 필요 자원량이 상기 엣지 컴퓨팅 장치의 가용 자원으로 수용 가능한지 판단하는 단계를 포함하는,
    엣지 컴퓨팅 방법.
  12. 제11 항에 있어서,
    상기 컨테이너의 자원 할당값을 산출하는 단계는,
    상기 엣지 컴퓨팅 장치가 포함된 엣지 클러스터 내의 엣지 컴퓨팅 장치들의 가용 자원을 확인하는 단계; 및
    상기 가용 자원을 확인한 결과에 기반하여, 상기 엣지 모듈에 대한 엣지 배포 정책을 결정하는 단계를 더 포함하는,
    엣지 컴퓨팅 방법.
  13. 제12 항에 있어서,
    상기 컨테이너의 자원 할당값에 따라 컨테이너에 자원을 다시 할당하는 단계를 더 포함하고,
    상기 자원이 다시 할당되는 컨테이너는,
    상기 엣지 클러스터 내의 복수의 엣지 컴퓨팅 장치의 가용 자원을 통합하여 구성되는 크로스오버 컨테이너인,
    엣지 컴퓨팅 방법.
  14. 프로세서;
    상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    엣지 모듈 및 컨테이너 자원 할당값을 수신하는 동작,
    상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 동작, 및
    상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함하고,
    상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고,
    상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고,
    상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치인,
    컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 시스템.
  15. 컴퓨팅 장치와 결합되어,
    엣지 모듈 및 컨테이너 자원 할당값을 수신하는 단계;
    상기 컨테이너 자원 할당값에 기초하여 컨테이너를 생성하는 단계; 및
    상기 생성된 컨테이너에 상기 엣지 모듈을 배치하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장되고,
    상기 엣지 모듈은 엣지 컴퓨팅 장치에 배포되어 미리 결정된 데이터 처리 동작을 수행하도록 구성된 모듈이고,
    상기 컨테이너는 상기 엣지 모듈을 구동하기 위한 격리된 컴퓨팅 환경을 제공하는 상기 엣지 컴퓨팅 장치의 소프트웨어 구성요소이고,
    상기 엣지 컴퓨팅 장치는 온-프레미스(on-premise) 방식으로 설치된 컴퓨팅 장치인,
    컴퓨터 프로그램.
KR1020190133990A 2019-10-25 2019-10-25 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템 KR20210049551A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190133990A KR20210049551A (ko) 2019-10-25 2019-10-25 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템
US16/666,081 US11321132B2 (en) 2019-10-25 2019-10-28 Edge computing method and apparatus for flexibly allocating computing resource

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133990A KR20210049551A (ko) 2019-10-25 2019-10-25 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20210049551A true KR20210049551A (ko) 2021-05-06

Family

ID=75586079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133990A KR20210049551A (ko) 2019-10-25 2019-10-25 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템

Country Status (2)

Country Link
US (1) US11321132B2 (ko)
KR (1) KR20210049551A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722109A (zh) * 2021-11-02 2021-11-30 深圳大学 一种容器化边缘计算智能服务引擎系统
KR20220095519A (ko) * 2020-12-30 2022-07-07 아주대학교산학협력단 서비스 요청에 대응한 단말 추천을 위한 서브 그래프 생성 장치 및 방법
KR102514114B1 (ko) * 2021-12-14 2023-03-27 주식회사 테스트웍스 딥러닝 모델 기반의 서비스 제공을 위한 원격 서버 가상화 운용 방법, 시스템 및 컴퓨터 프로그램
KR20230069490A (ko) * 2021-11-12 2023-05-19 한국전자기술연구원 마이크로 데이터센터 내 운용 서비스별 작업 부하 예측 모델 적용 방법
CN117827382A (zh) * 2024-03-06 2024-04-05 国网四川省电力公司信息通信公司 基于资源部署审核的容器云资源管理方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11824784B2 (en) * 2019-12-20 2023-11-21 Intel Corporation Automated platform resource management in edge computing environments
JP2022090784A (ja) * 2020-12-08 2022-06-20 キヤノン株式会社 エッジデバイス、プログラム、及びエッジデバイスの制御方法
US11762743B2 (en) * 2021-06-28 2023-09-19 International Business Machines Corporation Transferring task data between edge devices in edge computing
EP4122655A1 (de) * 2021-07-22 2023-01-25 Siemens Aktiengesellschaft Additive manufacturing system und verfahren zur additiven herstellung eines bauteils
CN115714785A (zh) * 2021-08-18 2023-02-24 维沃移动通信有限公司 算力资源的确定方法和设备
US20230155959A1 (en) * 2021-11-12 2023-05-18 Electronics And Telecommuncations Research Institure Apparatus and method for resource allocation in edge computing environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106306A (ko) 2018-03-08 2019-09-18 주식회사 케이티 Vr 서비스를 제공하는 서버, 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460255B2 (en) * 2016-07-29 2019-10-29 Splunk Inc. Machine learning in edge analytics
US11599750B2 (en) * 2018-09-28 2023-03-07 Intel Corporation Edge devices utilizing personalized machine learning and methods of operating the same
US11010637B2 (en) * 2019-01-03 2021-05-18 International Business Machines Corporation Generative adversarial network employed for decentralized and confidential AI training
US10461421B1 (en) * 2019-05-07 2019-10-29 Bao Tran Cellular system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106306A (ko) 2018-03-08 2019-09-18 주식회사 케이티 Vr 서비스를 제공하는 서버, 시스템 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220095519A (ko) * 2020-12-30 2022-07-07 아주대학교산학협력단 서비스 요청에 대응한 단말 추천을 위한 서브 그래프 생성 장치 및 방법
CN113722109A (zh) * 2021-11-02 2021-11-30 深圳大学 一种容器化边缘计算智能服务引擎系统
KR20230069490A (ko) * 2021-11-12 2023-05-19 한국전자기술연구원 마이크로 데이터센터 내 운용 서비스별 작업 부하 예측 모델 적용 방법
KR102514114B1 (ko) * 2021-12-14 2023-03-27 주식회사 테스트웍스 딥러닝 모델 기반의 서비스 제공을 위한 원격 서버 가상화 운용 방법, 시스템 및 컴퓨터 프로그램
CN117827382A (zh) * 2024-03-06 2024-04-05 国网四川省电力公司信息通信公司 基于资源部署审核的容器云资源管理方法
CN117827382B (zh) * 2024-03-06 2024-04-30 国网四川省电力公司信息通信公司 基于资源部署审核的容器云资源管理方法

Also Published As

Publication number Publication date
US20210124617A1 (en) 2021-04-29
US11321132B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
KR20210049551A (ko) 컴퓨팅 자원을 유동적으로 할당하는 엣지 컴퓨팅 방법 및 시스템
EP3543854A1 (en) Resource control stack based system for multiple domain presentation of cloud computing resource control
CN107222531B (zh) 一种容器云资源调度方法
CN111625354B (zh) 一种边缘计算设备算力的编排方法及其相关设备
US8230432B2 (en) Defragmenting blocks in a clustered or distributed computing system
US8739169B2 (en) Method for monitoring operating experiences of images to improve workload optimization in cloud computing environments
KR20220006490A (ko) 워크로드 동적 자원 배치 및 최적화 수행관리를 위한 하이브리드 클라우드 자원 배분 방법
CN105049268A (zh) 分布式计算资源分配系统和任务处理方法
CN112540578A (zh) 工业控制系统超融合架构
US20190391897A1 (en) Adaptive thresholds for containers
KR102016238B1 (ko) 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체
US10303128B2 (en) System and method for control and/or analytics of an industrial process
CN111818159A (zh) 数据处理节点的管理方法、装置、设备及存储介质
US11237862B2 (en) Virtualized network function deployment
CN112783649A (zh) 一种面向云计算的交互感知的容器化微服务资源调度方法
CN103116570A (zh) 具有动态可重构监督程序节点的分布式计算架构
CN110399271B (zh) 日志处理设备、方法、电子设备及计算机可读存储介质
CN105580007A (zh) 监控计算网络
CN110399272B (zh) 日志处理设备、方法、电子设备及计算机可读存储介质
CN113055478A (zh) 一种设备数据的处理方法、装置、设备及介质
CN110633085B (zh) 基于微服务架构的继电保护整定计算方法及装置
Bali et al. Rule based auto-scalability of IoT services for efficient edge device resource utilization
US20220035681A1 (en) Ict resource managment device, ict resource management method and ict resource management program
GB2564863A (en) Containerized application platform
CN114490049A (zh) 在容器化边缘计算中自动分配资源的方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right