KR102287566B1 - 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 - Google Patents
분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 Download PDFInfo
- Publication number
- KR102287566B1 KR102287566B1 KR1020200056472A KR20200056472A KR102287566B1 KR 102287566 B1 KR102287566 B1 KR 102287566B1 KR 1020200056472 A KR1020200056472 A KR 1020200056472A KR 20200056472 A KR20200056472 A KR 20200056472A KR 102287566 B1 KR102287566 B1 KR 102287566B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- input data
- app
- application server
- round trip
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H04L67/325—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법에 관한 것으로서, 입력 데이터를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터(f(t))를 제공하기 위한, 특히 모바일, 애플리케이션 클라이언트(10), 애플리케이션 클라이언트(10)로부터 입력 데이터를 수신하고, 애플리케이션 클라이언트(10)를 위해 입력 데이터를 처리하고, 그리고 처리된 입력 데이터를 애플리케이션 클라이언트(10)로 재전송하기 위한, 애플리케이션 클라이언트(10) 상의 로컬 애플리케이션 서버(21) 및 적어도 하나의 원격 애플리케이션 서버(22), 및 애플리케이션(APP)을 로컬 애플리케이션 서버(21) 또는 적어도 하나의 원격 애플리케이션 서버(22)에 할당하기 위한 애플리케이션 관리자(30)를 포함한다. 상기 방법은: 로컬 애플리케이션 서버(21)에서 입력 데이터를 수신하여 처리하기 위한 제1 왕복 시간(RTT1)을 결정하는 단계, 적어도 하나의 원격 애플리케이션 서버(22)에서 입력 데이터를 수신하여 처리하기 위한 제2 왕복 시간(RTT2)을 결정하는 단계, 애플리케이션(APP)에 대한 입력 데이터를 수신하여 처리하기 위한 허용 시간(tolerance time)(Δtmax)을 결정하는 단계, 제1 왕복 시간(RTT1) 및 제2 왕복 시간(RTT2)을 허용 시간(Δtmax)과 비교하는 단계, 비교에 따라, 애플리케이션(APP)을 로컬 애플리케이션 서버(21) 또는 적어도 하나의 원격 애플리케이션 서버(22)에 할당하는 단계를 포함하고, 왕복 시간(RTT1, RTT2)은 이용 가능한 애플리케이션 서버(21, 22)에 입력 데이터를 포함하는 요청을 전송할 때부터, 이용 가능한 애플리케이션 서버(21, 22)로부터 계산된 결과를 수신할 때까지의 기간으로서 결정된다.
Description
본 발명은 본원의 방법 관련한 독립 청구항의 전제부에 따른 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 및 시스템 관련한 독립 청구항의 전제부에 따른 대응하는 분산 시스템 아키텍처에 관한 것이다.
모바일 통신 및 클라우드 컴퓨팅의 발생에 의해, 애플리케이션을 위한 데이터의 처리가 더 이상 모바일 장치 자체, 예를 들어 차량 또는 다른 사용자 디바이스에서 수행될 필요가 없다. 더 높은 컴퓨팅 성능으로 인해, 예를 들어 클라우드 리소스 및/또는 엣지 클라우드 리소스와 같은 원격 리소스들을, 원격 리소스와의 통신에 시간 및 에너지가 요구된다 하더라도, 데이터의 처리를 위해 사용하는 것이 유리할 수 있다. 이 경우, 사용자는 로컬 컴퓨팅이 모바일 장치 자체에서, 예를 들어 차량 내에서 사용될지 여부, 또는 모바일 장치 근처의 모바일 엣지 서버에서 또는 모바일 장치로부터 멀리 떨어진 클라우드 컴퓨팅 센터에서 계산이 수행될지 여부를 결정해야 한다. 이러한 결정은 사용자 편의를 저해하지 않도록, 가능한 한 자동적으로 수행되어야 한다. 또한, 모바일 장치가 이동하는 동안, 모바일 장치에서 인접한 엣지 서버들 간의 전송도 가능한 한 자동적으로 수행되어야 한다.
네트워크를 클러스터 환경으로 포함시키는 것은 일반적으로 시아오 친(Xiao Qin) 외: "클러스터 상의 병렬 애플리케이션에 대한 통신 인식 로드 밸런싱(Communication-Aware Load Balancing for Parallel Applications on Clusters)", IEEE 컴퓨터에 대한 트랜잭션, 59호, 2010년 1월, 42 - 52 페이지로부터 공지되어 있다.
공개 공보 EP 3 425 873 A1호가 예시적으로 보여주는 바와 같이, 현재, 애플리케이션은 그의 우선 순위에 따라 로컬 애플리케이션 서버 또는 원격 애플리케이션 서버에 할당된다. 이 경우, 애플리케이션은 시간 임계적으로 또는 정상적으로 분류된다. 우선 순위에 따라, 이러한 애플리케이션은 로컬 또는 원격 애플리케이션 서버로 고정 할당된다. 그러나, 이러한 할당은 고정적이고, 유연하지 않으며, 이것은 모바일 애플리케이션에서의 편의 손실로 이어질 수 있다.
따라서, 본 발명의 과제는 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 개선된 방법을 제공하는 것이다. 특히, 본 발명의 과제는 분산 시스템 아키텍처 내에서 이용 가능한 리소스들에 대해 유연하고, 적응 가능하며 편리하게 애플리케이션을 할당하는 것을 가능하게 하는, 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법을 제공하는 것이다. 또한, 본 발명의 과제는 대응하는 분산 시스템 아키텍처를 제공하는 것이다.
본 발명에 따른 과제는 방법 관련한 독립 청구항의 특징, 특히 특징부의 특징을 갖는 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법에 의해 달성된다. 또한, 본 발명의 과제는 시스템 관련한 독립 청구항의 특징, 특히 특징부의 특징을 갖는 대응하는 분산 시스템 아키텍처에 의해 달성된다. 본 발명의 바람직한 개발예는 종속 청구항에서 설명된다. 본 발명의 개별 양태에 대해 개시된 특징들은, 본 발명의 발명 양태의 개시에 대해 항상 상호 참조되거나 또는 상호 참조될 수 있는 방식으로 서로 조합될 수 있다.
본 발명은 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법을 제공하고:
- 입력 데이터(예를 들어 센서 데이터)를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터(예를 들어 액추에이터 설정)를 제공하기 위한, (예를 들어 모바일 장치, 모바일 폰, 스마트폰, 랩톱, 차량 제어 장치, 내비게이션 유닛, 인포테인먼트 시스템 등과 같은 예를 들어 사용자 디바이스의), 특히 모바일, 애플리케이션 클라이언트,
- 애플리케이션 클라이언트로부터 입력 데이터를 수신하고, 애플리케이션 클라이언트를 위해 입력 데이터를 처리하고, 그리고 처리된 입력 데이터를 애플리케이션 클라이언트로 재전송하기 위한, 애플리케이션 클라이언트 상의 로컬 애플리케이션 서버(로컬 컴퓨팅 유닛) 및 적어도 하나의 원격 애플리케이션 서버(클라우드 서버 및 하나 이상의 엣지 클라우드 서버), 및
- 애플리케이션(또는 애플리케이션에 대한 입력 데이터를 처리하기 위한 적어도 하나의 컴퓨팅 태스크)을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당하기 위한 애플리케이션 관리자(로컬 제어 장치)
를 포함한다.
이를 위해, 본 발명에 따르면, 본 방법은 다음의 단계들을 포함하는 것이 제공된다:
- 로컬 애플리케이션 서버에서 입력 데이터를 수신하여 처리하기 위한(그리고 경우에 따라서는 처리된 입력 데이터를 애플리케이션 클라이언트로 재전송하기 위한) 제1 왕복 시간을 결정하는 단계,
- 적어도 하나의 원격 애플리케이션 서버에서 입력 데이터를 수신하여 처리하기 위한(그리고 경우에 따라서는 처리된 입력 데이터를 애플리케이션 클라이언트로 재전송하기 위한) 제2 왕복 시간을 결정하는 단계,
- 애플리케이션에 대한 입력 데이터를 수신하여 처리하기 위한(그리고 경우에 따라서는 처리된 입력 데이터를 애플리케이션 클라이언트로 재전송하기 위한) 특히 최대 허용될 수 있는 허용 시간(tolerance time)을 결정하는 단계,
- 제1 왕복 시간 및 제2 왕복 시간을 허용 시간과 비교하는 단계,
- 이러한 비교에 따라, 애플리케이션을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당하는 단계.
여기서 본 발명은 모든 애플리케이션이 상이하다는 것을 인식한다. 이들은 필요한 처리 또는 계산의 유형에 따라, 상이한 속도 및 상이한 (허용될 수 있는 그리고/또는 허용 가능한) 응답 시간을 갖는다. 본 발명은 로컬 이용 가능한 컴퓨팅 리소스들이 제한되는 모든 영역에 유리하게 적용된다. 애플리케이션 중 일부는 자동차, 드론, 인지 애플리케이션 등을 포함한다. 원격 애플리케이션 서버, 예를 들어 중앙 클라우드 서버 및/또는 하나 이상의 엣지 클라우드 서버에서의 처리의 결과는 로컬 계산에서보다 기본적으로 더 양호한데, 왜냐하면 하드웨어 리소스들이 원격 애플리케이션 서버에서 더 양호하기 때문이고, 이 경우 로컬 컴퓨팅 리소스들은 보통 제한적이다.
여기서 본 발명의 사상은, 모든 유형의 애플리케이션에 대해, 특정 애플리케이션을 위한 가장 효율적인 계산 환경을 선택하기 위해, 입력 데이터를 수신하여 처리하기 위한 허용 시간, 또는 다르게 표현하면 지연 임계값 또는 왕복 시간(소위, 라운드 트립 타임(Round trip time))(RTT)을 전송 기준으로서 사용하는 것이 가능하다는 것이다. 허용 시간 또는 왕복 시간 또는 라운드 트립 타임은 로컬 장치(즉, 애플리케이션 클라이언트)가 이용 가능한 애플리케이션 서버(로컬 또는 원격)에 센서 원 데이터(즉, 입력 데이터)를 포함하는 요청을 전송할 때부터, 애플리케이션 서버로부터 계산된 결과를 수신할 때까지의 기간이다. 따라서, 허용 시간 또는 왕복 시간은 이용 가능한 애플리케이션 서버에서의 대기 시간(소위 지연 속도) 및 컴퓨팅 시간을 포함한다. 본 발명의 맥락에서, 전송 결정이 이루어질 수 있도록 하기 위해, 네트워크 내에서의 처리량을 명시적으로 고려하는 것은 필요하지 않은데, 왜냐하면 이러한 정보는 허용 시간에 이미 맵핑되기 때문이다. 허용 시간 또는 왕복 시간은 개발자가 애플리케이션을 개발할 때 설정할 수 있는 간단한 단일 파라미터이다. 본 발명의 맥락에서, 허용 시간 또는 왕복 시간을 정적 또는 적응성 임계값으로 설정하는 것이 가능하며, 이는 이하에서 개별적으로 참조된다. 애플리케이션의 동역학(dynamics)은 본 발명의 맥락에서 애플리케이션의 시작 전에 그리고/또는 작동 시간 중에 한 번 측정될 수 있으며, 이에 따라 허용 시간은 적응성으로 변경될 수 있다. 애플리케이션에서의 느린 변경은 본 발명의 맥락에서 높은 임계값으로 이어질 수 있는 반면, 애플리케이션에서의 빠른 변경은 낮은 임계값으로 이어질 수 있다. 본 발명의 맥락에서, 허용 시간의 결정 시, 사용자 경험 및/또는 애플리케이션에 의해 정의된 품질 기준이 또한 고려될 수 있다.
본 발명의 맥락에서 분산 시스템 아키텍처는 3개의 칼럼(column)을 기초로 한다:
- 애플리케이션 클라이언트는 본 발명의 맥락에서 프론트 엔드로서 기능한다. 입력 데이터(예를 들어 센서 정보)를 읽고, 출력 데이터(예를 들어 액추에이터 출력)를 제공한다.
이 경우, 애플리케이션 클라이언트는 소위 HMI라고 하는 휴먼 머신 인터페이스로 간주될 수 있다. 애플리케이션 클라이언트는 애플리케이션을 작동할 수 있는 로컬 이용 가능한 컴퓨팅 장치(로컬 애플리케이션 서버)를 포함한다.
애플리케이션 서버(로컬 또는 원격)는 (예를 들어 센서의) 입력 데이터를 처리하고, 그리고 처리된 입력 데이터를 예를 들어 출력 데이터(예를 들어 대응하는 액추에이터에 대한 제어값)의 형태로 출력하기 위한 컴퓨팅 모듈이다.
애플리케이션 서버는 애플리케이션 클라이언트가 위치되는 곳에서 로컬로 제공될 수 있다. 또한, 엣지 클라우드 서버 또는 클라우드에서의 더 큰 컴퓨팅 센터로 이동될 수도 있다. 본 발명의 맥락에서, 애플리케이션 서버는 적어도 하나의 로컬 애플리케이션 서버 및 복수의 원격 애플리케이션 서버를 포함할 수 있다. 복수의 원격 애플리케이션 서버는 다시, 복수의 (또한 변화하는) 엣지 클라우드 서버 및 적어도 하나의 중앙 클라우드 서버를 포함할 수 있다.
애플리케이션 관리자는 본 발명에 따른 규칙 또는 본 발명에 따른 방법에 기초하여 입력 데이터가 처리될 위치를 결정하는 유닛이다.
또한, 본 발명은 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법에서, 제1 왕복 시간이 허용 시간 미만인 경우, 애플리케이션이 로컬 애플리케이션 서버에 할당되는 것을 제공할 수 있다. 유리하게는, 제1 왕복 시간이 허용 시간을 초과하지 않는 경우, 애플리케이션은 로컬 애플리케이션 서버에서 직접 성공적으로 실행될 수 있다.
또한, 본 발명은 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법에서, 제2 왕복 시간이 허용 시간 미만인 경우, 애플리케이션이 적어도 하나의 원격 애플리케이션 서버에 할당되는 것을 제공할 수 있다. 이 경우, 필요로 하는 대기 시간 및 적어도 하나의 원격 애플리케이션 서버에서의 처리 시간이 제2 왕복 시간의 범위 내의 허용 시간을 초과하지 않는 경우, 애플리케이션은 적어도 하나의 원격 애플리케이션 서버에 할당될 수 있다.
또한, 본 발명은 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법에서, 제1 왕복 시간 및 제2 왕복 시간이 허용 시간 미만인 경우, 애플리케이션을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당하는 것은 적어도 하나의 조건에 따라 수행되는 것을 제공할 수 있다. 이러한 조건에 의해, 2개 이상의 애플리케이션 서버가 허용 시간 내에 처리된 입력 데이터를 제공할 수 있는 경우에서의 할당이 수행될 수 있다.
또한, 적어도 하나의 조건은 적어도 하나의 다음의 정보: 사용자 선호도, 경험 데이터 및/또는 애플리케이션 성능을 포함할 수 있는 것이 고려될 수 있다. 예를 들어 2개 이상의 애플리케이션 서버가 허용 시간 내에 처리된 입력 데이터를 제공할 수 있는 경우, 원격 (엣지) 클라우드 솔루션이 바람직할 수 있는 것이 고려될 수 있다.
본 발명의 맥락에서, 허용 시간이 정적 임계값을 포함하는 것이 또한 가능하다. 따라서, 허용 시간은 예를 들어 애플리케이션 개발자에 의해 한 번 및/또는 적은 노력으로 결정될 수 있다.
또한, 본 발명은 정적 임계값이 입력 데이터의 처리를 위한 다수의 요구에 대한 제1 왕복 시간 및 제2 왕복 시간의 평균값으로서 확인되는 것을 제공할 수 있다. 따라서, 허용 시간을 결정하기 위한 적합한 임계값은 다수의 요구로부터 계산될 수 있다.
또한, 본 발명의 맥락에서, 정적 임계값은 분산 시스템 아키텍처의 측정을 통해 결정되는 것이 고려될 수 있다. 따라서, 측정이 단지 한 번만 수행되더라도, 각각의 분산 시스템 아키텍처에 대한 허용 시간을 결정하기 위한 적합한 임계값이 계산될 수 있다.
또한, 본 발명의 맥락에서, 정적 임계값의 결정 시 출력 데이터의 동역학이 고려되는 것이 고려될 수 있다. 여기서 출력 데이터의 기능적 평균을 고려하기 위해, (단지) 허용 시간 내에 출력 데이터의 동역학이 검사될 수 있다.
또한, 정적 임계값은 애플리케이션에 대해 한 번 결정되는 것도 고려될 수 있다. 이러한 방식으로, 허용 시간을 결정하기 위한 컴퓨팅 비용이 낮게 유지될 수 있다.
본 발명의 맥락에서, 허용 시간은 적응성, 특히 시간 의존적 임계값을 포함하는 것도 또한 가능하다. 이러한 방식으로, 출력 데이터의 변화 및 출력 데이터의 변화의 속도를 포함할 수 있는, 현재 상황에 따라 허용 시간을 자동적으로 업데이트하는 것이 가능하다.
또한, 본 발명은 적응성 임계값의 결정 시 출력 데이터의 동역학이 고려되는 것을 제공할 수 있다. 따라서, 출력 데이터의 변화의 속도가 고려될 수 있다. 따라서, 본 발명은 애플리케이션에서의 느린 변화가 높은 임계값으로 이어질 수 있고, 애플리케이션에서의 빠른 변화가 낮은 임계값으로 이어질 수 있는 상황을 허용할 수 있다.
또한, 본 발명의 맥락에서, 적응성 임계값은 애플리케이션이 실행될 때 동적으로 적응되는 것도 고려될 수 있다. 따라서, 적응성 임계값은 시간이 지남에 따라 정기적으로 업데이트될 수 있다.
또한, 본 발명은 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법에서, 애플리케이션이 동적 애플리케이션인 경우, 그리고/또는 출력 데이터가 결정된 임계값보다 더 빠르게 변하는 경우, 애플리케이션을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당 시, 바람직하게는 허용 시간의 범위 내의 적응성 임계값이 고려되는 것을 제공할 수 있다. 임계값을 기초로 하여, 적응성 임계값이 바람직할 때, 또는 출력 데이터의 변화의 속도가 적응성 임계값의 계산이 가치가 있을 만큼 충분히 높을 때에 대한 간단한 규칙이 확립될 수 있다.
또한, 본 발명은 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법에서, 애플리케이션이 정적 또는 실질적으로 느리게 변하는 애플리케이션인 경우, 그리고/또는 출력 데이터가 결정된 임계값보다 더 느리게 변하는 경우, 애플리케이션을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당 시, 바람직하게는 허용 시간의 범위 내의 정적 임계값이 고려되는 것을 제공할 수 있다. 따라서, 다소 느리게 변화하는 애플리케이션의 경우, 허용 시간을 결정하기 위한 컴퓨팅 용량은 감소될 수 있다.
또한, 본 발명은 분산 시스템 아키텍처를 제공하고:
입력 데이터를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터를 제공하기 위한, 특히 모바일, 애플리케이션 클라이언트, 애플리케이션 클라이언트로부터 입력 데이터를 수신하고, 애플리케이션 클라이언트를 위해 입력 데이터를 처리하고, 그리고 처리된 입력 데이터를 애플리케이션 클라이언트로 재전송하기 위한, 애플리케이션 클라이언트 상의 로컬 애플리케이션 서버 및 적어도 하나의 원격 애플리케이션 서버, 및 애플리케이션을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당하기 위한 애플리케이션 관리자를 포함한다. 이를 위해, 본 발명에 따라 애플리케이션 관리자는:
- 로컬 애플리케이션 서버에서 입력 데이터를 수신하여 처리하기 위한 제1 왕복 시간을 결정하도록,
- 적어도 하나의 원격 애플리케이션 서버에서 입력 데이터를 수신하여 처리하기 위한 제2 왕복 시간을 결정하도록,
- 애플리케이션에 대한 입력 데이터를 수신하여 처리하기 위한 허용 시간을 결정하도록,
- 제1 왕복 시간 및 제2 왕복 시간을 허용 시간과 비교하도록,
- 이러한 비교에 따라, 애플리케이션을 로컬 애플리케이션 서버 또는 적어도 하나의 원격 애플리케이션 서버에 할당하도록
설계되는 것이 제공된다.
본 발명에 따른 분산 시스템 아키텍처에 의해, 본 발명에 따른 방법과 관련하여 전술된 바와 동일한 이점들이 달성된다. 이러한 특징들은 본 경우에 완전히 참조된다.
유리하게는, 애플리케이션 관리자는 전술한 바와 같이 작동할 수 있는 방법을 전체적으로 또는 부분적으로 수행하도록 구체적으로 설계될 수 있다.
본 발명의 맥락에서, 애플리케이션 클라이언트는 사용자 디바이스, 모바일 장치, 스마트폰, 랩톱 및/또는 차량에 제공되는 것이 고려될 수 있다.
본 발명은 개선시키는 다른 수단은 도면을 참조하여 본 발명의 바람직한 예시적인 실시예의 설명에 의해 이하에서 보다 상세히 설명될 것이다. 이 경우, 청구항 및 설명 부분에 언급된 특징들은 각각 그 자체로 개별적으로, 또는 임의의 조합으로 본 발명에 중요할 수 있다. 이 경우, 도면은 단지 설명을 위한 것이며, 어떠한 방식으로든 본 발명을 제한하려는 것이 아님에 유의해야 한다.
도 1은 본 발명의 맥락에서 분산 시스템 아키텍처의 개략도를 도시한다.
도 2는 제1 왕복 시간 및 제2 왕복 시간을 허용 시간과 비교하기 위한 다이어그램을 도시한다.
도 3은 출력 데이터의 평균 변화 속도와 허용 시간 사이의 의존성을 도시한다.
도 4는 시간에 따른 출력 데이터의 변화의 속도를 도시한다.
도 5는 왕복 시간에 따른 애플리케이션 성능을 도시한다.
도 2는 제1 왕복 시간 및 제2 왕복 시간을 허용 시간과 비교하기 위한 다이어그램을 도시한다.
도 3은 출력 데이터의 평균 변화 속도와 허용 시간 사이의 의존성을 도시한다.
도 4는 시간에 따른 출력 데이터의 변화의 속도를 도시한다.
도 5는 왕복 시간에 따른 애플리케이션 성능을 도시한다.
이하의 도면들에서, 상이한 예시적인 실시예들의 동일한 기술적 특징들에 대해 동일한 참조 번호들이 사용된다.
도 1은 본 발명의 맥락에서 예시적인 분산 시스템 아키텍처(100)를 도시한다. 분산 시스템 아키텍처(100)는 이하의 3개의 요소를 포함한다:
- 입력 데이터(예를 들어 센서 데이터)를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터(f(t))(예를 들어 액추에이터 설정)를 제공하기 위한, (예를 들어 모바일 장치, 모바일 폰, 스마트폰, 랩톱, 차량 제어 장치, 내비게이션 유닛, 인포테인먼트 시스템 등과 같은 예를 들어 사용자 디바이스(101)의), 특히 모바일, 애플리케이션 클라이언트(10),
- 애플리케이션 클라이언트(10)로부터 입력 데이터를 수신하고, 애플리케이션 클라이언트(10)를 위해 입력 데이터를 처리하고, 그리고 처리된 입력 데이터를 애플리케이션 클라이언트(10)로 재전송하기 위한, 애플리케이션 클라이언트(10) 상의 로컬 애플리케이션 서버(21)(로컬 컴퓨팅 유닛) 및 적어도 하나의 원격 애플리케이션 서버(22)(클라우드 서버 및 하나 이상의 엣지 클라우드 서버), 및
- 애플리케이션(APP)을 로컬 애플리케이션 서버(21) 또는 적어도 하나의 원격 애플리케이션 서버(22)에 할당하기 위한 애플리케이션 관리자(30)(로컬 제어 장치).
본 발명은 도 1에 따른 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법을 제공하고, 다음의 단계들을 포함한다:
- 로컬 애플리케이션 서버(21)에서 입력 데이터를 수신하여 처리하기 위한 제1 왕복 시간(RTT1)을 결정하는 단계,
- 적어도 하나의 원격 애플리케이션 서버(22)에서 입력 데이터를 수신하여 처리하기 위한 제2 왕복 시간(RTT2)을 결정하는 단계,
- 애플리케이션(APP)에 대한 입력 데이터 변수를 수신하여 처리하기 위한, 특히 최대 허용될 수 있는 허용 시간(Δtmax)을 결정하는 단계,
- 제1 왕복 시간(RTT1) 및 제2 왕복 시간(RTT2)을 허용 시간(Δtmax)과 비교하는 단계,
- 이러한 비교에 따라, 애플리케이션(APP)(또는 입력 데이터를 처리하기 위한 적어도 하나의 컴퓨팅 태스크)을 애플리케이션(APP)을 위한 로컬 애플리케이션 서버(21) 또는 적어도 하나의 원격 애플리케이션 서버(22)에 할당하는 단계.
특히 애플리케이션 관리자(30)는 본 발명에 따른 방법을 수행하도록 형성된다.
로컬 애플리케이션 서버(21)는 애플리케이션 클라이언트(10), 특히 사용자 디바이스(101) 내에 위치될 수 있다.
또한, 이것은 엣지 클라우드 서버 또는 클라우드 내의 보다 큰 컴퓨팅 센터로 이동될 수도 있다. 도 1은 로컬로 또는 클라우드에서 수행될 수 있는 애플리케이션 클라이언트 및 관리자와 애플리케이션 서버 간의 통신을 보여준다.
엣지 인프라(102)는 중앙 클라우드 서버 및 하나 이상의 엣지 클라우드 서버를 포함하는 적어도 하나의 원격 애플리케이션 서버(22)를 포함할 수 있다.
도 1에 도시된 바와 같이, 애플리케이션 클라이언트(10)로부터 로컬 애플리케이션 서버(21) 및 적어도 하나의 원격 애플리케이션 서버(22)로 전송된 입력 데이터는 인덱스(i)를 갖는 원 데이터로서 연속적으로 넘버링된다. 이러한 인덱스는 실제 입력 데이터와 함께 각각의 애플리케이션 서버(21, 22)로 전송되고, 또한 각각의 애플리케이션 서버(21, 22)의 응답에 추가된다. 이러한 메커니즘은 애플리케이션 클라이언트(10)가 동일한 입력에 대해 상이한 애플리케이션 서버(21, 22)의 응답 시간(Δtci, Δtli)을 비교할 수 있는 것을 보장한다.
애플리케이션 클라이언트(10)는 로컬 애플리케이션 서버(21)(ti+Δtli) 및 (엣지) 클라우드(ti+Δtci)에서의 원격 애플리케이션 서버(22)의 왕복 시간(RTT1, RTT2)을 측정할 수 있고 비교할 수 있다.
각 애플리케이션은 결정된 기간, 즉 본 발명에 따른 허용 시간(Δtmax)을 가지며, 이 허용 시간은 이들 애플리케이션 서버들(21, 22)이 애플리케이션(APP)에 대한 컴퓨팅 태스크를 수행하기 위해 고려되도록 하기 위해, 각각의 애플리케이션 서버(21, 22) 상에서의 입력 데이터의 처리가 아무리 늦어도 완료되어야 하는 시점을 나타낸다.
도 2에서, 로컬 응답 시간(Δtli) 또는 (엣지) 클라우드 응답 시간(Δtci)으로부터의 인덱스 번호(i)를 갖는 컴퓨팅 태스크를 위한 왕복 시간(RTT1, RTT2)이 허용 시간(Δtmax)과 비교된다. 여기서 왕복 시간(RTT1, RTT2)은 각각의 애플리케이션 서버(21, 22) 상의 통신 지연 및 컴퓨팅 시간을 포함한다.
두 응답 시간(Δtli, Δtci)이 허용 시간(Δtmax) 미만인 경우, 애플리케이션 관리자(30)는 2개의 런타임 환경 또는 2개의 애플리케이션 서버(21, 22)를 자유롭게 선택할 수 있다.
또한, 하나 또는 다른 애플리케이션 서버(21, 22) 중 어떤 것이 바람직한지에 대해 기초가 되는 적어도 하나의 조건이 제공될 수 있다. 예를 들어 제1 왕복 시간(RTT1) 및 제2 왕복 시간(RTT2)이 허용 시간(Δtmax) 미만인 경우, 적어도 하나의 조건은 적어도 하나의 원격 애플리케이션 서버(22)(클라우드 서버 또는 엣지 클라우드 서버)의 사용을 제공할 수 있다. 또한, 적어도 하나의 조건은 다음과 같은 적어도 하나의 정보: 예를 들어 사용자 선호도, 경험 데이터 및/또는 애플리케이션 성능(q(Δtruntime))을 포함할 수 있는 것이 고려될 수 있다.
예를 들어 도 1에 따른 상황에서의 적어도 하나의 조건은 제2 왕복 시간(RTT2)(또는 원격 응답 시간)이 제1 왕복 시간(RTT1)(또는 로컬 응답 시간)보다 더 길지 않은 경우, 적어도 하나의 원격 애플리케이션 서버(22)가 바람직하다는 것을 제공할 수 있다. 기본적으로, 원격 반응 시간이 허용 시간(Δtmax)을 초과하는 경우, 로컬 애플리케이션 서버(21) 상의 로컬 컴퓨팅이 유일하고 유용한 선택이다. 마찬가지로, 로컬 응답 시간이 허용 시간(Δtmax)보다 더 긴 경우, 적어도 하나의 원격 애플리케이션 서버(22) 상에서의 원격 컴퓨팅만이 가능하게 된다. 2개의 왕복 시간(RTT1, RTT2)이 허용 시간(Δtmax)보다 더 긴 경우, 애플리케이션(APP)을 위한 계산 작업은 실시간으로 수행될 수 없다.
여기서 본 발명에 따른 사상은 허용 시간(Δtmax)을 사용하여 이를 왕복 시간들(RTT1, RTT2)과 비교하는 것에 있다. 이에 기초하여, 각각의 애플리케이션 서버(21, 22)의 사용에 대한 결정이 이루어진다.
본 발명의 맥락에서, 허용 시간(Δtmax)은 정적 임계값을 포함할 수 있다. 허용 시간(Δtmax)의 정적 임계값을 계산하기 위한 방법이 이하에서 설명된다.
이 경우, 정적 임계값을 계산하기 위한 제1 방법은 로컬 애플리케이션 서버(21) 및 엣지 인프라(102)를 포함하는 분산 시스템 아키텍처(100)가 개발자에게 측정을 위해 이용 가능할 때 구현될 수 있다. 이러한 방법에서, 애플리케이션(APP)은 그 개발 후에, 입력 데이터의 정의된 시퀀스를 위해 이러한 분산 시스템 아키텍처(100)에서 두 번 실행된다. 제1 실행에서, 애플리케이션 계산은 사용자 디바이스(101)에서 전체적으로 수행되고, 엣지 인프라(102)는 사용되지 않는다. 제2 실행에서, 애플리케이션 계산은 엣지 인프라(102)에서 수행되고, 사용자 디바이스(101)의 컴퓨팅 리소스는 사용되지 않는다. 두 개의 단계에서 동일한 순서의 입력 데이터가 사용된다. 입력 데이터의 왕복 시간(RTT1, RTT2)은 두 실행에 대한 다수의 요구에 대해 평균화된다. 이 경우, 이러한 값이 허용 시간(Δtmax)의 정적 임계값으로서 정의된다. 방정식은 다음과 같이 표시된다:
여기서 N은 순서대로 애플리케이션 서버(21, 22)에 전송된 요구의 개수이다.
상기 방법은 분산 시스템 아키텍처(100)에 의해 기록된 실제 왕복 시간(RTT1, RTT2)에 기초하기 때문에, 정적 임계값을 결정하기 위한 안정적인 접근법이다.
그러나, 개발자가 분산 시스템 아키텍처(100)에 액세스할 수 없는 경우, 다른 방법이 바람직할 수 있다.
제2 방법은 기본 애플리케이션(APP)의 동역학의 기초를 기반으로 할 수 있다. 적용 가능성을 제한하지 않고, 애플리케이션(APP)의 하나 이상의 주요 파라미터는 시간(t)의 함수(f(t))로서 설명되고, 이는 출력 데이터(f(t))를 맵핑한다. 이러한 함수(f(t))가 빠르게 변할수록, 허용 가능한 왕복 시간(RTT1, RTT2)은 더 짧아진다. 애플리케이션 개발자는 여기서 최대 허용 가능한 편차를 이러한 함수(f(t))의 임계값(Δfmax)으로서 지정할 수 있으며, 이는 허용 시간(Δtmax)의 허용 가능한 값을 결정한다. Δtmax의 정적 임계값은 따라서 다음 방정식에서 표시된 바와 같이 계산된다:
여기서 k는 상수이며, 개발자에 의해 지정된 기준치와 비교하여 애플리케이션(APP)의 최대 허용될 수 있는 편차를 나타낸다. 애플리케이션(APP)은 함수(f(t))를 계산하고, 그 동역학은 미분 함수()를 통해 추정될 수 있다. 는 애플리케이션 함수(f(t))의 변화율의 평균값이다. 위의 기준치는 (네트워크 대기 시간, 컴퓨팅 지연 등이 없는) 이상적인 시나리오에서 제공된 입력 통지 시퀀스에 대해 애플리케이션(APP)이 제공해야 하는 출력 시퀀스이다. 제2 방법은 파라미터 값을 위해 엣지 인프라(102)에 액세스할 필요가 없기 때문에, 개발자에게는 더 간단하다.
또한, 본 발명은 허용 시간(Δtmax)이 적응성, 특히 시간 의존적 임계값을 포함할 수 있는 것을 제공할 수 있다.
일부 애플리케이션(APP)의 경우, 최대 허용될 수 있는 허용 시간(Δtmax)은 정적일 수 있다. 대부분의 경우에는, 최대 허용될 수 있는 허용 시간(Δtmax)은 정적이 아니며, 시간(t)의 함수로서 변한다. 이러한 경우에, 허용 시간(Δtmax)의 자동적 또는 적응성 적응이 유리할 수 있다. 애플리케이션(APP)이 시간(t)의 함수(f(t))로서 설명되는 경우, 그 동역학은 그 미분 함수()를 통해 표현된다. 함수(f(t))가 느리게 변하는 경우(즉, 제1 미분 함수()가 0에 가까운 경우), 각각의 애플리케이션 서버(21, 22)의 느린 응답이, 결정된 오류 한계 내에서 함수(f(t))를 수행하기에 또한 충분하다. 애플리케이션 개발자는, 여기서 각각의 애플리케이션 서버(21, 22)가 왕복 시간 지연을 도입하는 경우, 초과해서는 안 되는 함수(f(t))의 허용 가능한 편차(Δfmax)를 정의할 수 있다. 함수(f(t))의 최대 허용될 수 있는 변화(Δfmax)와, 응답 시간으로서 대응하는 최대 허용될 수 있는 허용 시간(Δtmax)의 비는 다음 방정식으로부터 생성된다:
이에 대해서는 도 3을 참조한다.
또한, 도 4는 어떻게 미분 함수()의 평균값이 요구과 응답 사이의 길이의 간격(Δtmax)에 있는지에 대한 방법을 도시한다. 실제로, 애플리케이션 함수(f(t))의 변화율의 평균값(f'mean)은 측정을 통해 더 긴 간격으로부터 근사될 수 있고, 이동 평균 접근법에 의해 적응될 수 있다. 허용 시간의 적응성 임계값(Δtmax (t))은 다음과 같이 계산될 수 있다:
본 발명의 맥락에서, 최소 변화율은 최대 허용될 수 있는 응답 시간을 결정한다(도 3 참조). Δtmax (t)의 값은 평균값()에 대해 허용될 수 있는 최소값에 기초하는 최대값으로 제한된다(도 4 참조). 본 발명의 의미에서 스칼라 함수일뿐만 아니라 또한 벡터 함수일 수도 있는 애플리케이션(APP) 또는 함수(f(t))의 실제 예시는 운전자 보조 시스템에서 차량 오브젝트의 추적일 수 있다. 추적에 대해, 추적된 오브젝트와 차량 사이의 최대 허용 가능한 거리가 지정된다. 이 경우, 편차는 허용될 수 있는 한계 내로 오류를 유지하기 위해, 최대 허용 가능한 왕복 시간으로 변환된다.
애플리케이션 성능에 대한 전체 품질 측정은 예를 들어 이전 예시에서 오브젝트가 얼마나 양호하게 추적될 수 있는지와 같은 애플리케이션 성능(q(Δtruntime))이다. 이것은, 선택된 런타임 환경(사용자 디바이스(101) 및 엣지 인프라(102))으로부터 실제 왕복 시간(RTT1, RTT2)(도 5의 예에서는 Δtruntime로 지칭됨)이 도 5에서 볼 수 있는 바와 같이 0% 내지 100% 사이의 품질 값으로 맵핑됨으로써, 형성될 수 있다. 시간(t(n-N))으로부터 현재 시간(tn)까지의 N+1 측정 창에 대한 성능 품질은 모든 개별 측정에 대한 평균으로서 계산될 수 있다:
요약하자면, 본 발명은 복수의 이점들을 제공한다:
- 왕복 시간(RTT1, RTT2)에 대한 허용 시간(Δtmax)을 어떤 애플리케이션 서버(21, 22)가 사용되어야 할지를 결정하기 위한 단일 파라미터로서 사용하는 것은 개발자를 상당히 용이하게 한다. 이 경우, 개발자는 단지 단일 파라미터만 설정하면 된다.
- 정적 접근법에 따르면, 왕복 시간(RTT1, RTT2)은 애플리케이션 서버들(21, 22) 간에 결정을 하기 위해 허용 시간(Δtmax)의 정적 임계값과 비교되는 반면, 적응성 접근법에서는 왕복 시간(RTT1, RTT2)은 애플리케이션 서버들(21, 22) 간에 결정을 하기 위해 허용 시간(Δtmax)의 동적 임계값과 비교된다.
최대 허용 가능한 편차에 대한 올바른 값이 임계값(Δfmax)으로서 선택되는 경우, 적응성 접근법이 정적 접근법보다 더 효율적이다. 편차는 감소되며, 동시에 적응의 경우 엣지 인프라(102)의 가동률은 향상된다.
Δfmax의 값이 최소 임계값보다 더 작은 경우, 엣지 인프라(102)의 편차 및 가동률에 대한 정적 접근법이 적응성 접근법보다 더 양호하다. 따라서, 적응성 접근법의 선택은 주문 제작형이고, 개발자로부터 허용된 애플리케이션 편차(Δfmax)에 의존한다.
도면의 상기 설명은 예시의 범위에서 본 발명을 배타적으로 설명한다. 물론, 실시예들의 개별적인 특징들은, 기술적으로 의미가 있는 한, 본 발명의 범위를 벗어나지 않고 서로 자유롭게 조합될 수 있다.
Claims (14)
- 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법으로서, 상기 분산 시스템 아키텍처(100)는,
입력 데이터를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터(f(t))를 제공하기 위한 애플리케이션 클라이언트(10),
상기 애플리케이션 클라이언트(10)로부터 입력 데이터를 수신하고, 상기 애플리케이션 클라이언트(10)를 위해 입력 데이터를 처리하고, 처리된 입력 데이터를 상기 애플리케이션 클라이언트(10)로 재전송하기 위한, 상기 애플리케이션 클라이언트(10) 상의 로컬 애플리케이션 서버(21) 및 적어도 하나의 원격 애플리케이션 서버(22), 및
상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당하기 위한 애플리케이션 관리자(30)
를 포함하고,
상기 방법은,
상기 로컬 애플리케이션 서버(21)에서 입력 데이터를 수신하여 처리하기 위한 제1 왕복 시간(RTT1)을 결정하는 단계,
상기 적어도 하나의 원격 애플리케이션 서버(22)에서 입력 데이터를 수신하여 처리하기 위한 제2 왕복 시간(RTT2)을 결정하는 단계,
상기 애플리케이션(APP)에 대한 입력 데이터를 수신하여 처리하기 위한 허용 시간(tolerance time)(Δtmax)을 결정하는 단계,
상기 제1 왕복 시간(RTT1) 및 상기 제2 왕복 시간(RTT2)을 상기 허용 시간(Δtmax)과 비교하는 단계,
상기 비교에 따라, 상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당하는 단계
를 포함하고,
상기 왕복 시간(RTT1, RTT2)은 이용 가능한 애플리케이션 서버(21, 22)에 상기 입력 데이터를 포함하는 요청을 전송할 때부터, 상기 이용 가능한 애플리케이션 서버(21, 22)로부터 계산된 결과를 수신할 때까지의 기간으로서 결정되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제1항에 있어서,
상기 제1 왕복 시간(RTT1)이 상기 허용 시간(Δtmax) 미만인 경우, 상기 애플리케이션(APP)은 상기 로컬 애플리케이션 서버(21)에 할당되거나, 또는
상기 제2 왕복 시간(RTT2)이 상기 허용 시간(Δtmax) 미만인 경우, 상기 애플리케이션(APP)은 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제1항 또는 제2항에 있어서,
상기 제1 왕복 시간(RTT1) 및 상기 제2 왕복 시간(RTT2)이 상기 허용 시간(Δtmax) 미만인 경우, 상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당하는 것은 적어도 하나의 조건에 따라 수행되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제3항에 있어서,
상기 적어도 하나의 조건은 다음의 정보:
사용자 선호도, 경험 데이터, 및 애플리케이션 성능(q(Δtruntime))
중 적어도 하나를 포함할 수 있는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제1항 또는 제2항에 있어서,
상기 허용 시간(Δtmax)은 정적 임계값을 포함하는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제5항에 있어서,
상기 정적 임계값은 입력 데이터의 처리를 위한 다수의 요구에 대한 상기 제1 왕복 시간(RTT1) 및 상기 제2 왕복 시간(RTT2)의 평균값으로서 확인되거나, 또는
상기 정적 임계값은 상기 분산 시스템 아키텍처(100)의 측정을 통해 결정되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제5항에 있어서,
상기 정적 임계값의 결정 시 출력 데이터(f(t))의 동역학(dynamics)이 고려되거나, 또는
상기 정적 임계값은 상기 애플리케이션(APP)에 대해 한 번 결정되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제1항 또는 제2항에 있어서,
상기 허용 시간(Δtmax)은 적응성 임계값을 포함하는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제8항에 있어서,
상기 적응성 임계값의 결정 시 출력 데이터(f(t))의 동역학이 고려되거나, 또는
상기 적응성 임계값은 상기 애플리케이션(APP)이 실행될 때 동적으로 적응되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제5항에 있어서,
상기 애플리케이션(APP)이 동적 애플리케이션인 경우와, 상기 출력 데이터(f(t))가 결정된 임계값(Δfmax)보다 더 빠르게 변하는 경우 중 적어도 하나의 경우,
상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당 시, 상기 허용 시간(Δtmax)의 범위 내의 적응성 임계값이 고려되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 제5항에 있어서,
상기 애플리케이션(APP)이 정적 또는 느리게 변하는 애플리케이션인 경우와, 상기 출력 데이터(f(t))가 결정된 임계값(Δfmax)보다 더 느리게 변하는 경우 중 적어도 하나의 경우,
상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당 시, 상기 허용 시간(Δtmax)의 범위 내의 정적 임계값이 고려되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법. - 입력 데이터를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터(f(t))를 제공하기 위한 애플리케이션 클라이언트(10),
상기 애플리케이션 클라이언트(10)로부터 입력 데이터를 수신하고, 상기 애플리케이션 클라이언트(10)를 위해 입력 데이터를 처리하고, 그리고 처리된 입력 데이터를 상기 애플리케이션 클라이언트(10)로 재전송하기 위한, 상기 애플리케이션 클라이언트(10) 상의 로컬 애플리케이션 서버(21) 및 적어도 하나의 원격 애플리케이션 서버(22), 및
애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당하기 위한 애플리케이션 관리자(30)
를 포함하는 분산 시스템 아키텍처(100)에 있어서,
상기 애플리케이션 관리자(30)는,
상기 로컬 애플리케이션 서버(21)에서 입력 데이터를 수신하여 처리하기 위한 제1 왕복 시간(RTT1)을 결정하도록,
상기 적어도 하나의 원격 애플리케이션 서버(22)에서 입력 데이터를 수신하여 처리하기 위한 제2 왕복 시간(RTT2)을 결정하도록,
상기 애플리케이션(APP)에 대한 입력 데이터를 수신하여 처리하기 위한 허용 시간(Δtmax)을 결정하도록,
상기 제1 왕복 시간(RTT1) 및 상기 제2 왕복 시간(RTT2)을 상기 허용 시간(Δtmax)과 비교하도록,
상기 비교에 따라, 상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당하도록
설계되고,
상기 왕복 시간(RTT1, RTT2)은 이용 가능한 애플리케이션 서버(21, 22)에 상기 입력 데이터를 포함하는 요청을 전송할 때부터, 상기 이용 가능한 애플리케이션 서버(21, 22)로부터 계산된 결과를 수신할 때까지의 기간으로서 결정되는 것을 특징으로 하는 분산 시스템 아키텍처(100). - 제12항에 있어서,
상기 애플리케이션 관리자(30)는 제1항 또는 제2항에 따른 방법을 수행하도록 설계되는 것을 특징으로 하는 분산 시스템 아키텍처(100). - 제12항에 있어서,
상기 애플리케이션 클라이언트(10)는 사용자 디바이스(101), 모바일 장치, 스마트폰, 랩톱, 및 차량 중 적어도 하나에 제공되는 것을 특징으로 하는 분산 시스템 아키텍처(100).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102019206923.1A DE102019206923B3 (de) | 2019-05-13 | 2019-05-13 | Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur |
DE102019206923.1 | 2019-05-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200131178A KR20200131178A (ko) | 2020-11-23 |
KR102287566B1 true KR102287566B1 (ko) | 2021-08-10 |
Family
ID=71739318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200056472A KR102287566B1 (ko) | 2019-05-13 | 2020-05-12 | 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11363120B2 (ko) |
KR (1) | KR102287566B1 (ko) |
CN (1) | CN111930494A (ko) |
DE (1) | DE102019206923B3 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019206923B3 (de) * | 2019-05-13 | 2020-08-13 | Volkswagen Aktiengesellschaft | Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur |
KR102418059B1 (ko) * | 2020-12-08 | 2022-07-06 | 현대오토에버 주식회사 | 차량의 이종 제어기간 통신 응답시간 추정 장치 및 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008009865A (ja) * | 2006-06-30 | 2008-01-17 | Yokogawa Electric Corp | 分散コンピュータシステム |
US20140222896A1 (en) * | 2013-02-07 | 2014-08-07 | Hitachi, Ltd. | Distributed processing system and management method of distributed processing system |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026425A (en) * | 1996-07-30 | 2000-02-15 | Nippon Telegraph And Telephone Corporation | Non-uniform system load balance method and apparatus for updating threshold of tasks according to estimated load fluctuation |
US9137324B2 (en) * | 2002-04-10 | 2015-09-15 | International Business Machines Corporation | Capacity on-demand in distributed computing environments |
US20040001476A1 (en) * | 2002-06-24 | 2004-01-01 | Nayeem Islam | Mobile application environment |
US7331048B2 (en) * | 2003-04-04 | 2008-02-12 | International Business Machines Corporation | Backfill scheduling of applications based on data of the applications |
EP1661124A4 (en) * | 2003-09-05 | 2008-08-13 | Stephen D Grody | PROCESSES AND DEVICES FOR PROVIDING SERVICES THROUGH THE USE OF LANGUAGE IDENTIFICATION |
US7707288B2 (en) * | 2005-01-06 | 2010-04-27 | International Business Machines Corporation | Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment |
US7548977B2 (en) * | 2005-02-11 | 2009-06-16 | International Business Machines Corporation | Client / server application task allocation based upon client resources |
US7877517B2 (en) * | 2005-11-09 | 2011-01-25 | International Business Machines Corporation | Determining whether to compress data transmitted over a network |
US20090327495A1 (en) * | 2008-06-27 | 2009-12-31 | Oqo, Inc. | Computing with local and remote resources using automated optimization |
US9311158B2 (en) * | 2010-09-03 | 2016-04-12 | Adobe Systems Incorporated | Determining a work distribution model between a client device and a cloud for an application deployed on the cloud |
TWI470567B (zh) | 2012-02-03 | 2015-01-21 | Univ Nat Chiao Tung | 考慮耗時與耗電的卸載運算量的決策方法與運算系統 |
US20140095695A1 (en) | 2012-09-28 | 2014-04-03 | Ren Wang | Cloud aware computing distribution to improve performance and energy for mobile devices |
US20150006620A1 (en) * | 2013-06-27 | 2015-01-01 | Applied Materials, Inc. | Scalable manufacturing facility management system |
KR102173107B1 (ko) * | 2013-12-11 | 2020-11-02 | 삼성전자주식회사 | 클라우드 서버 기반 영상 처리 방법, 단말 및 시스템 |
US9250914B2 (en) * | 2013-12-20 | 2016-02-02 | Intel Corporation | Method and apparatus for selecting cache locality for atomic operations |
US9875121B2 (en) * | 2014-09-17 | 2018-01-23 | International Business Machines Corporation | API server |
CN105704181A (zh) | 2014-11-26 | 2016-06-22 | 国际商业机器公司 | 管理移动设备中的任务的方法和装置 |
US10666534B2 (en) * | 2015-06-29 | 2020-05-26 | Citrix Systems, Inc. | Systems and methods for measuring round trip time in network devices between the device and an endpoint |
EP3394751A1 (en) * | 2015-12-23 | 2018-10-31 | IDAC Holdings, Inc. | Methods of offloading computation from mobile device to cloud |
US10291494B2 (en) * | 2016-04-20 | 2019-05-14 | Cisco Technology, Inc. | Distributing data analytics in a hierarchical network based on computational complexity |
US10375644B2 (en) * | 2017-02-16 | 2019-08-06 | At&T Intellectual Property I, L.P. | Method and apparatus for optionally running mobile applications locally or virtually |
US10637783B2 (en) * | 2017-07-05 | 2020-04-28 | Wipro Limited | Method and system for processing data in an internet of things (IoT) environment |
US10565464B2 (en) * | 2017-12-21 | 2020-02-18 | At&T Intellectual Property I, L.P. | Adaptive cloud offloading of mobile augmented reality |
US10776236B1 (en) * | 2018-04-16 | 2020-09-15 | Parallels International Gmbh | Transferrable containerized applications for remote-access client-server environments |
US20200106714A1 (en) * | 2018-09-28 | 2020-04-02 | Element Ai Inc. | System and method for managing network resources |
US20200195731A1 (en) * | 2018-12-12 | 2020-06-18 | Sichuan University | Lccs system and method for executing computation offloading |
DE102019206923B3 (de) * | 2019-05-13 | 2020-08-13 | Volkswagen Aktiengesellschaft | Verfahren zum Ausführen einer Anwendung auf einer verteilten Systemarchitektur |
-
2019
- 2019-05-13 DE DE102019206923.1A patent/DE102019206923B3/de active Active
-
2020
- 2020-05-12 KR KR1020200056472A patent/KR102287566B1/ko active IP Right Grant
- 2020-05-12 US US15/930,087 patent/US11363120B2/en active Active
- 2020-05-13 CN CN202010401676.7A patent/CN111930494A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008009865A (ja) * | 2006-06-30 | 2008-01-17 | Yokogawa Electric Corp | 分散コンピュータシステム |
US20140222896A1 (en) * | 2013-02-07 | 2014-08-07 | Hitachi, Ltd. | Distributed processing system and management method of distributed processing system |
Also Published As
Publication number | Publication date |
---|---|
KR20200131178A (ko) | 2020-11-23 |
DE102019206923B3 (de) | 2020-08-13 |
CN111930494A (zh) | 2020-11-13 |
US20200366760A1 (en) | 2020-11-19 |
US11363120B2 (en) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6457447B2 (ja) | データセンターのネットワークトラフィックスケジューリング方法及び装置 | |
EP3117335B1 (en) | Coordinated admission control for network-accessible block storage | |
US8392558B1 (en) | System and method for determining overload state for service requests | |
US8429282B1 (en) | System and method for avoiding system overload by maintaining an ideal request rate | |
US10771533B2 (en) | Adaptive communication control device | |
JP5000456B2 (ja) | 資源管理システム、資源管理装置およびその方法 | |
CN110753131A (zh) | 微服务分布式限流方法及装置、存储介质和电子设备 | |
US20160203024A1 (en) | Apparatus and method for allocating resources of distributed data processing system in consideration of virtualization platform | |
KR102287566B1 (ko) | 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 | |
KR20170060118A (ko) | 분류된 네트워크 스트림의 관리 | |
CN110058937B (zh) | 用于调度专用处理资源的方法、设备和介质 | |
EP3319270B1 (en) | Service registration method, usage method and relevant apparatus | |
KR20180047070A (ko) | 동적인 에지 컴퓨팅을 수행하는 방법 및 장치 | |
KR20200054368A (ko) | 전자 장치 및 이의 제어방법 | |
CN105791381A (zh) | 访问控制的方法及装置 | |
CN110235106B (zh) | 完成侧客户端节流 | |
US11201824B2 (en) | Method, electronic device and computer program product of load balancing for resource usage management | |
CN111245924A (zh) | 负载均衡方法及装置、计算机存储介质 | |
CN110235105B (zh) | 用于在受信任客户端组件中的服务器处理之后的客户端侧节流的系统和方法 | |
US10277503B2 (en) | Cross-domain service request placement in a software defined environment (SDE) | |
WO2018143235A1 (ja) | 管理システム、管理装置、管理方法及びプログラム | |
US8380850B1 (en) | System and method for damping overload state oscillations | |
JP2015087892A (ja) | 情報処理システム | |
US11362890B2 (en) | System management device, system management method, program, and information processing system | |
US8380938B2 (en) | Providing shared access to data storage resources across cluster computing environment boundaries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |