KR102287566B1 - 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 - Google Patents

분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 Download PDF

Info

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
Application number
KR1020200056472A
Other languages
English (en)
Other versions
KR20200131178A (ko
Inventor
지신 레주
롤프 슈스터
볼프강 테이머
Original Assignee
폭스바겐 악티엔게젤샤프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 폭스바겐 악티엔게젤샤프트 filed Critical 폭스바겐 악티엔게젤샤프트
Publication of KR20200131178A publication Critical patent/KR20200131178A/ko
Application granted granted Critical
Publication of KR102287566B1 publication Critical patent/KR102287566B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/325
    • 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/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity

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

분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 {METHOD FOR EXECUTING AN APPLICATION ON A DISTRIBUTED SYSTEM ARCHITECTURE}
본 발명은 본원의 방법 관련한 독립 청구항의 전제부에 따른 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 및 시스템 관련한 독립 청구항의 전제부에 따른 대응하는 분산 시스템 아키텍처에 관한 것이다.
모바일 통신 및 클라우드 컴퓨팅의 발생에 의해, 애플리케이션을 위한 데이터의 처리가 더 이상 모바일 장치 자체, 예를 들어 차량 또는 다른 사용자 디바이스에서 수행될 필요가 없다. 더 높은 컴퓨팅 성능으로 인해, 예를 들어 클라우드 리소스 및/또는 엣지 클라우드 리소스와 같은 원격 리소스들을, 원격 리소스와의 통신에 시간 및 에너지가 요구된다 하더라도, 데이터의 처리를 위해 사용하는 것이 유리할 수 있다. 이 경우, 사용자는 로컬 컴퓨팅이 모바일 장치 자체에서, 예를 들어 차량 내에서 사용될지 여부, 또는 모바일 장치 근처의 모바일 엣지 서버에서 또는 모바일 장치로부터 멀리 떨어진 클라우드 컴퓨팅 센터에서 계산이 수행될지 여부를 결정해야 한다. 이러한 결정은 사용자 편의를 저해하지 않도록, 가능한 한 자동적으로 수행되어야 한다. 또한, 모바일 장치가 이동하는 동안, 모바일 장치에서 인접한 엣지 서버들 간의 전송도 가능한 한 자동적으로 수행되어야 한다.
네트워크를 클러스터 환경으로 포함시키는 것은 일반적으로 시아오 친(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는 왕복 시간에 따른 애플리케이션 성능을 도시한다.
이하의 도면들에서, 상이한 예시적인 실시예들의 동일한 기술적 특징들에 대해 동일한 참조 번호들이 사용된다.
도 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)의 정적 임계값으로서 정의된다. 방정식은 다음과 같이 표시된다:
Figure 112020047786266-pat00001
=
Figure 112020047786266-pat00002
,
여기서 N은 순서대로 애플리케이션 서버(21, 22)에 전송된 요구의 개수이다.
상기 방법은 분산 시스템 아키텍처(100)에 의해 기록된 실제 왕복 시간(RTT1, RTT2)에 기초하기 때문에, 정적 임계값을 결정하기 위한 안정적인 접근법이다.
그러나, 개발자가 분산 시스템 아키텍처(100)에 액세스할 수 없는 경우, 다른 방법이 바람직할 수 있다.
제2 방법은 기본 애플리케이션(APP)의 동역학의 기초를 기반으로 할 수 있다. 적용 가능성을 제한하지 않고, 애플리케이션(APP)의 하나 이상의 주요 파라미터는 시간(t)의 함수(f(t))로서 설명되고, 이는 출력 데이터(f(t))를 맵핑한다. 이러한 함수(f(t))가 빠르게 변할수록, 허용 가능한 왕복 시간(RTT1, RTT2)은 더 짧아진다. 애플리케이션 개발자는 여기서 최대 허용 가능한 편차를 이러한 함수(f(t))의 임계값(Δfmax)으로서 지정할 수 있으며, 이는 허용 시간(Δtmax)의 허용 가능한 값을 결정한다. Δtmax의 정적 임계값은 따라서 다음 방정식에서 표시된 바와 같이 계산된다:
Figure 112020047786266-pat00003
,
여기서 k는 상수이며, 개발자에 의해 지정된 기준치와 비교하여 애플리케이션(APP)의 최대 허용될 수 있는 편차를 나타낸다. 애플리케이션(APP)은 함수(f(t))를 계산하고, 그 동역학은 미분 함수(
Figure 112020047786266-pat00004
)를 통해 추정될 수 있다.
Figure 112020047786266-pat00005
는 애플리케이션 함수(f(t))의 변화율의 평균값이다. 위의 기준치는 (네트워크 대기 시간, 컴퓨팅 지연 등이 없는) 이상적인 시나리오에서 제공된 입력 통지 시퀀스에 대해 애플리케이션(APP)이 제공해야 하는 출력 시퀀스이다. 제2 방법은 파라미터 값을 위해 엣지 인프라(102)에 액세스할 필요가 없기 때문에, 개발자에게는 더 간단하다.
또한, 본 발명은 허용 시간(Δtmax)이 적응성, 특히 시간 의존적 임계값을 포함할 수 있는 것을 제공할 수 있다.
일부 애플리케이션(APP)의 경우, 최대 허용될 수 있는 허용 시간(Δtmax)은 정적일 수 있다. 대부분의 경우에는, 최대 허용될 수 있는 허용 시간(Δtmax)은 정적이 아니며, 시간(t)의 함수로서 변한다. 이러한 경우에, 허용 시간(Δtmax)의 자동적 또는 적응성 적응이 유리할 수 있다. 애플리케이션(APP)이 시간(t)의 함수(f(t))로서 설명되는 경우, 그 동역학은 그 미분 함수(
Figure 112020047786266-pat00006
)를 통해 표현된다. 함수(f(t))가 느리게 변하는 경우(즉, 제1 미분 함수(
Figure 112020047786266-pat00007
)가 0에 가까운 경우), 각각의 애플리케이션 서버(21, 22)의 느린 응답이, 결정된 오류 한계 내에서 함수(f(t))를 수행하기에 또한 충분하다. 애플리케이션 개발자는, 여기서 각각의 애플리케이션 서버(21, 22)가 왕복 시간 지연을 도입하는 경우, 초과해서는 안 되는 함수(f(t))의 허용 가능한 편차(Δfmax)를 정의할 수 있다. 함수(f(t))의 최대 허용될 수 있는 변화(Δfmax)와, 응답 시간으로서 대응하는 최대 허용될 수 있는 허용 시간(Δtmax)의 비는 다음 방정식으로부터 생성된다:
Figure 112020047786266-pat00008
.
이에 대해서는 도 3을 참조한다.
또한, 도 4는 어떻게 미분 함수(
Figure 112020047786266-pat00009
)의 평균값이 요구과 응답 사이의 길이의 간격(Δtmax)에 있는지에 대한 방법을 도시한다. 실제로, 애플리케이션 함수(f(t))의 변화율의 평균값(f'mean)은 측정을 통해 더 긴 간격으로부터 근사될 수 있고, 이동 평균 접근법에 의해 적응될 수 있다. 허용 시간의 적응성 임계값(Δtmax (t))은 다음과 같이 계산될 수 있다:
Figure 112020047786266-pat00010
.
본 발명의 맥락에서, 최소 변화율은 최대 허용될 수 있는 응답 시간을 결정한다(도 3 참조). Δtmax (t)의 값은 평균값(
Figure 112020047786266-pat00011
)에 대해 허용될 수 있는 최소값에 기초하는 최대값으로 제한된다(도 4 참조). 본 발명의 의미에서 스칼라 함수일뿐만 아니라 또한 벡터 함수일 수도 있는 애플리케이션(APP) 또는 함수(f(t))의 실제 예시는 운전자 보조 시스템에서 차량 오브젝트의 추적일 수 있다. 추적에 대해, 추적된 오브젝트와 차량 사이의 최대 허용 가능한 거리가 지정된다. 이 경우, 편차는 허용될 수 있는 한계 내로 오류를 유지하기 위해, 최대 허용 가능한 왕복 시간으로 변환된다.
애플리케이션 성능에 대한 전체 품질 측정은 예를 들어 이전 예시에서 오브젝트가 얼마나 양호하게 추적될 수 있는지와 같은 애플리케이션 성능(q(Δtruntime))이다. 이것은, 선택된 런타임 환경(사용자 디바이스(101) 및 엣지 인프라(102))으로부터 실제 왕복 시간(RTT1, RTT2)(도 5의 예에서는 Δtruntime로 지칭됨)이 도 5에서 볼 수 있는 바와 같이 0% 내지 100% 사이의 품질 값으로 맵핑됨으로써, 형성될 수 있다. 시간(t(n-N))으로부터 현재 시간(tn)까지의 N+1 측정 창에 대한 성능 품질은 모든 개별 측정에 대한 평균으로서 계산될 수 있다:
Figure 112020047786266-pat00012
요약하자면, 본 발명은 복수의 이점들을 제공한다:
- 왕복 시간(RTT1, RTT2)에 대한 허용 시간(Δtmax)을 어떤 애플리케이션 서버(21, 22)가 사용되어야 할지를 결정하기 위한 단일 파라미터로서 사용하는 것은 개발자를 상당히 용이하게 한다. 이 경우, 개발자는 단지 단일 파라미터만 설정하면 된다.
- 정적 접근법에 따르면, 왕복 시간(RTT1, RTT2)은 애플리케이션 서버들(21, 22) 간에 결정을 하기 위해 허용 시간(Δtmax)의 정적 임계값과 비교되는 반면, 적응성 접근법에서는 왕복 시간(RTT1, RTT2)은 애플리케이션 서버들(21, 22) 간에 결정을 하기 위해 허용 시간(Δtmax)의 동적 임계값과 비교된다.
최대 허용 가능한 편차에 대한 올바른 값이 임계값(Δfmax)으로서 선택되는 경우, 적응성 접근법이 정적 접근법보다 더 효율적이다. 편차는 감소되며, 동시에 적응의 경우 엣지 인프라(102)의 가동률은 향상된다.
Δfmax의 값이 최소 임계값보다 더 작은 경우, 엣지 인프라(102)의 편차 및 가동률에 대한 정적 접근법이 적응성 접근법보다 더 양호하다. 따라서, 적응성 접근법의 선택은 주문 제작형이고, 개발자로부터 허용된 애플리케이션 편차(Δfmax)에 의존한다.
도면의 상기 설명은 예시의 범위에서 본 발명을 배타적으로 설명한다. 물론, 실시예들의 개별적인 특징들은, 기술적으로 의미가 있는 한, 본 발명의 범위를 벗어나지 않고 서로 자유롭게 조합될 수 있다.
100 분산 시스템 아키텍처
101 사용자 디바이스
102 엣지 인프라
10 애플리케이션 클라이언트
21 로컬 애플리케이션 서버
22 원격 애플리케이션 서버
30 애플리케이션 관리자
APP 애플리케이션
RTT1 제1 왕복 시간
RTT2 제2 왕복 시간
i 인덱스, 카운터
t 시간
ti 요구 시간
Δtci 응답 시간
Δtli 응답 시간
Δtmax 허용 시간
Δt 시차
f(t) 출력 데이터에 대한 함수
Figure 112020047786266-pat00013
출력 데이터 변화의 속도
Figure 112020047786266-pat00014
최대 속도
Figure 112020047786266-pat00015
평균 속도
q(Δtruntime) 애플리케이션 성능
Δtruntime 왕복 시간

Claims (14)

  1. 분산 시스템 아키텍처(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)을 실행하기 위한 방법.
  2. 제1항에 있어서,
    상기 제1 왕복 시간(RTT1)이 상기 허용 시간(Δtmax) 미만인 경우, 상기 애플리케이션(APP)은 상기 로컬 애플리케이션 서버(21)에 할당되거나, 또는
    상기 제2 왕복 시간(RTT2)이 상기 허용 시간(Δtmax) 미만인 경우, 상기 애플리케이션(APP)은 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 왕복 시간(RTT1) 및 상기 제2 왕복 시간(RTT2)이 상기 허용 시간(Δtmax) 미만인 경우, 상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당하는 것은 적어도 하나의 조건에 따라 수행되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  4. 제3항에 있어서,
    상기 적어도 하나의 조건은 다음의 정보:
    사용자 선호도, 경험 데이터, 및 애플리케이션 성능(q(Δtruntime))
    중 적어도 하나를 포함할 수 있는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 허용 시간(Δtmax)은 정적 임계값을 포함하는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  6. 제5항에 있어서,
    상기 정적 임계값은 입력 데이터의 처리를 위한 다수의 요구에 대한 상기 제1 왕복 시간(RTT1) 및 상기 제2 왕복 시간(RTT2)의 평균값으로서 확인되거나, 또는
    상기 정적 임계값은 상기 분산 시스템 아키텍처(100)의 측정을 통해 결정되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  7. 제5항에 있어서,
    상기 정적 임계값의 결정 시 출력 데이터(f(t))의 동역학(dynamics)이 고려되거나, 또는
    상기 정적 임계값은 상기 애플리케이션(APP)에 대해 한 번 결정되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 허용 시간(Δtmax)은 적응성 임계값을 포함하는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  9. 제8항에 있어서,
    상기 적응성 임계값의 결정 시 출력 데이터(f(t))의 동역학이 고려되거나, 또는
    상기 적응성 임계값은 상기 애플리케이션(APP)이 실행될 때 동적으로 적응되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  10. 제5항에 있어서,
    상기 애플리케이션(APP)이 동적 애플리케이션인 경우와, 상기 출력 데이터(f(t))가 결정된 임계값(Δfmax)보다 더 빠르게 변하는 경우 중 적어도 하나의 경우,
    상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당 시, 상기 허용 시간(Δtmax)의 범위 내의 적응성 임계값이 고려되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  11. 제5항에 있어서,
    상기 애플리케이션(APP)이 정적 또는 느리게 변하는 애플리케이션인 경우와, 상기 출력 데이터(f(t))가 결정된 임계값(Δfmax)보다 더 느리게 변하는 경우 중 적어도 하나의 경우,
    상기 애플리케이션(APP)을 상기 로컬 애플리케이션 서버(21) 또는 상기 적어도 하나의 원격 애플리케이션 서버(22)에 할당 시, 상기 허용 시간(Δtmax)의 범위 내의 정적 임계값이 고려되는 것을 특징으로 하는 분산 시스템 아키텍처(100)에서 애플리케이션(APP)을 실행하기 위한 방법.
  12. 입력 데이터를 수신하고, 처리된 입력 데이터에 기초하여 출력 데이터(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).
  13. 제12항에 있어서,
    상기 애플리케이션 관리자(30)는 제1항 또는 제2항에 따른 방법을 수행하도록 설계되는 것을 특징으로 하는 분산 시스템 아키텍처(100).
  14. 제12항에 있어서,
    상기 애플리케이션 클라이언트(10)는 사용자 디바이스(101), 모바일 장치, 스마트폰, 랩톱, 및 차량 중 적어도 하나에 제공되는 것을 특징으로 하는 분산 시스템 아키텍처(100).
KR1020200056472A 2019-05-13 2020-05-12 분산 시스템 아키텍처에서 애플리케이션을 실행하기 위한 방법 KR102287566B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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