KR20140129137A - 기계 학습을 이용하여 매체 컴포넌트들을 매핑하기 위한 방법 - Google Patents

기계 학습을 이용하여 매체 컴포넌트들을 매핑하기 위한 방법 Download PDF

Info

Publication number
KR20140129137A
KR20140129137A KR1020147025155A KR20147025155A KR20140129137A KR 20140129137 A KR20140129137 A KR 20140129137A KR 1020147025155 A KR1020147025155 A KR 1020147025155A KR 20147025155 A KR20147025155 A KR 20147025155A KR 20140129137 A KR20140129137 A KR 20140129137A
Authority
KR
South Korea
Prior art keywords
computing device
components
application
default
placement
Prior art date
Application number
KR1020147025155A
Other languages
English (en)
Other versions
KR101595763B1 (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 KR20140129137A publication Critical patent/KR20140129137A/ko
Application granted granted Critical
Publication of KR101595763B1 publication Critical patent/KR101595763B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or 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/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/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 클라우드 컴퓨팅에 관한 것이다. 특히, 본 발명은 클라우드 내의 애플리케이션 컴포넌트들의 효율적이고 유연한 배치를 가능하게 하는 클라우드 컴퓨팅을 위한 방법들 및 시스템들에 관한 것이다. 컴퓨팅 디바이스(101)가 기술된다. 컴퓨팅 디바이스(101)는 대응하는 복수의 애플리케이션들(700)의 하나 이상의 컴포넌트들(703)에 대한 복수의 컴포넌트 배치 요청들을 수신하고; 복수의 컴포넌트 배치 요청들로부터 복수의 특징 벡터들(203)을 각각 결정하는 것으로서, 각각의 특징 벡터(203)는 각각의 컴포넌트 배치 요청의 상이한 속성들을 기술하는 벡터 차원들을 포함하는, 상기 복수의 특징 벡터들(203)을 각각 결정하고; 복수의 컴포넌트 배치 요청들에 관한 복수의 배치 결정들(205)을 각각 결정하는 것으로서, 각각의 배치 결정(205)은 각각의 애플리케이션(700)의 하나 이상의 컴포넌트들(703)이 배치된 하나 이상의 실행 컴퓨팅 디바이스들(101)의 표시를 포함하는, 상기 복수의 배치 결정들(205)을 각각 결정하고; 복수의 특징 벡터들(203)을 클러스터링하고, 그에 의해 하나 이상의 클러스터들(202)을 산출하는 것으로서, 각각의 클러스터(202)는 디폴트 컴포넌트 배치 요청의 상이한 속성들을 기술하는 디폴트 특징 벡터(203)를 포함하는, 상기 하나 이상의 클러스터들(202)을 산출하고; 하나 이상의 클러스터들 각각에 대한 디폴트 배치 결정(205)을 결정하고; 하나 이상의 디폴트 특징 벡터들 및 각각의 하나 이상의 디폴트 배치 결정들(205)을 컴퓨팅 디바이스(101)의 데이터베이스(204)에 저장하도록 적응된다.

Description

기계 학습을 이용하여 매체 컴포넌트들을 매핑하기 위한 방법{METHOD FOR MAPPING MEDIA COMPONENTS EMPLOYING MACHINE LEARNING}
본 발명은 클라우딩 컴퓨팅에 관한 것이다. 특히, 본 발명은 클라우드 내의 애플리케이션 컴포넌트들의 효율적이고 유연한 배치를 가능하게 하는 클라우드 컴퓨팅을 위한 방법들 및 시스템들에 관한 것이다.
인터넷은 이용자들이 매체를 소비하는 방식을 변화시키고 있다. 인터넷 기술들에 의해 가능해져, 이용자들로 하여금 원할 때마다, 어디든 필요한 곳에서 및 임의의 선호 디바이스 상에서 라이브 3D 방송, 라이브 이벤트들의 시간 이동된 뷰잉 또는 주문형 비디오와 같이 매체 서비스들을 즐기도록 허용하는 쪽으로 진화가 신속히 이동하고 있다. 특히, 인터넷에서, 이용자는 관찰자일 뿐만 아니라 몰입하는 참여자일 것이다. 웹 기반 서비스들은 실시간 또는 실감 멀티미디어 통신에서의 멀티미디어 콘텐트의 대량 공유와 같은, 새로운 개인화된 매체 중심 애플리케이션들의 전체 계층에 대한 기폭제이다. 이들 서비스들은 순수 콘텐트 스트림으로서가 아니라, 요청된 데이터를 적합한 시간, 위치 및 포맷으로 제공할 매체 처리 기능들의 조직화된 흐름으로서 실현될 것이다. 고화질 비디오 포맷들의 도입으로, 이전된 데이터 볼륨은 데이터 변환 처리에서 코드 빌딩의 크기를 넘어설 것이다. 따라서 서비스 컴포넌트들을 분산형 서비스 인프라스트럭처 상에 지적인 방식으로 배치하는 것은 미래형 인터넷 인프라스트럭처(future internet infrastructure)의 스케일링을 증가시키는 방식을 제공할 것이다. 즉, 이전된 데이터 볼륨들이 증가함에 따라, 분산형 애플리케이션의 SW 컴포넌트들을 클라우드 네트워크 내의 적합한 위치들에 이전 및 배치하는 것이 더욱 효율적이 될 수 있다.
본 문서는 서비스/애플리케이션 컴포넌트들의 효율적이고 유연한 배치를 가능하게 하는 컴퓨팅 디바이스들(또한 노드들이라고도 칭해짐)의 클라우드를 제공하는 기술적 문제를 다룬다. 특히, 본 문서는 컴퓨팅 디바이스들의 클라우드 내에 애플리케이션 컴포넌트들을 배치시키는 효율적인 방식을 제공하는 기술적 문제를 다룬다.
2011년 9월 21일, IEEE의, 그리드 컴퓨팅, 제 12차 IEEE/ACM 국제 회의에서
Figure pct00001
등에 의한 논문("Autonomic Resource Management With Support Vector Machines")의 157면 내지 164면은 클라우드 서비스들을 관리하기 위한 인간 간섭의 정도를 감소시키는 소프트웨어 솔루션을 기술한다.
일 양태에 따라, 분산형 클라우드 컴퓨팅에 적응된 컴퓨팅 디바이스(또한 컴퓨팅 노드 또는 노드라고도 칭해짐)가 기술된다. 컴퓨팅 디바이스는 대응하는 복수의 애플리케이션들의 하나 이상의 컴포넌트들에 대한 복수의 컴포넌트 배치 요청들을 수신하도록 적응될 수 있다. 또한, 컴퓨팅 디바이스는 복수의 컴포넌트 배치 요청들로부터 복수의 특징 벡터들을 각각 결정하도록 적응될 수 있다. 복수의 특징 벡터들 중 하나의 특징 벡터는 각각의 컴포넌트 배치 요청의 상이한 속성들(또는 상이한 양태들)을 기술하는 벡터 차원들을 포함한다. 이와 같이, 특징 벡터는 대응하는 컴포넌트 배치 요청의 구조화된 모델로서 이해될 수 있다.
또한, 컴퓨팅 디바이스는 복수의 컴포넌트 배치 요청들에 관한 복수의 배치 결정들을 각각 결정하도록 적응될 수 있다. 배치 결정은 각각의 애플리케이션의 하나 이상의 컴포넌트들이 배치된 하나 이상의 실행 컴퓨팅 디바이스들의 표시를 포함한다. 특히, 컴퓨팅 디바이스는 다른 컴퓨팅 디바이스들로부터 제어 메시지들을 수신하고 수신된 제어 메시지들에 기초하여 복수의 배치 결정들(및 가능한 특징 벡터들)을 결정하도록 적응될 수 있다.
이와 같이, 컴퓨팅 디바이스는 복수의 특징 벡터들 및 대응하는 복수의 배치 결정들을 포함하는 트레이닝 데이터를 수집하도록 적응될 수 있다. 특히, 컴퓨팅 디바이스는 컴포넌트 배치 요청에 및 배치 결정에 포함된 정보를 구조화하도록 적응될 수 있고, 그에 의해 기계 학습을 위해 이용될 수 있는 트레이닝 데이터를 제공하고, 그에 의해 미래의 컴포넌트 배치 요청들의 촉진된 배치를 가능하게 한다.
기계 학습의 콘텍스트에서, 컴퓨팅 디바이스는 복수의 특징 벡터들을 클러스터링하도록 적응되고, 그에 의해 하나 이상의 클러스터들을 산출한다. 클러스터링은 기계 학습 알고리즘, 예를 들면 지원 벡터 기계 알고리즘을 이용하여 수행될 수 있다. 각각의 클러스터는 통상적으로 디폴트 컴포넌트 배치 요청의 상이한 속성들을 기술하는 디폴트 특징 벡터를 포함한다. 즉, 클러스터는 디폴트 특징 벡터에 의해 표현될 수 있다. 또한 컴퓨팅 디바이스는 하나 이상의 클러스터들 각각에 대한 디폴트 배치 결정을 결정하도록 적응될 수 있다. 하나 이상의 디폴트 특징 벡터들 및 각각의 하나 이상의 디폴트 배치 결정들은 컴퓨팅 디바이스의 데이터베이스에 저장될 수 있다. 특히, 하나 이상의 디폴트 특징 벡터들 및 각각의 하나 이상의 디폴트 배치 결정들은 미래의 배치 결정들에 이용될 수 있다.
컴퓨팅 디바이스는 기계 학습의 콘텍스트에서 벡터 결정들의 수를 감소시키도록 적응될 수 있고, 즉 컴퓨팅 디바이스는 벡터 공간의 차원을 감소시키도록 적응될 수 있고, 그에 의해 미래의 컴포넌트 배치 요청들을 다루기 위한 전면적인 복잡성을 감소시킨다. 특히, 컴퓨팅 디바이스는 복수의 특징 벡터들의 제 1 벡터 차원이 상관 임계치보다 작은 대응하는 복수의 배치 결정들과의 상관을 가진다고 결정하도록 적응될 수 있다. 즉, 컴퓨팅 디바이스는 배치 결정들에 대해 영향을 거의 미치지 않거나 전혀 미치지 않는 제 1 벡터 차원을 결정할 수 있다. 이러한 제 1 벡터 차원이 결정되면, 제 1 벡터 차원은 복수의 특징 벡터들로부터 제거될 수 있다.
벡터 차원들은 애플리케이션 컴포넌트에 의해 처리된 데이터의 싱크 및/또는 소스의 위치; 애플리케이션에 의해 처리된 싱크들 및/또는 소스들의 수; 애플리케이션 컴포넌트에 의해 요구된 컴퓨팅 리소스들(컴퓨팅 리소스들은 처리기 리소스들, 메모리 리소스들, 대역폭 리소스들 중 하나 이상일 수 있다); 애플리케이션 컴포넌트에 의해 요구된 접속 속성들(접속 속성들은 대역폭, 지연, 최대 비트 에러 레이트 중 하나 이상일 수 있다); 및/또는 애플리케이션의 하나 이상의 컴포넌트들의 그래프 구조(그래프 구조는 애플리케이션의 하나 이상의 컴포넌트들이 어떻게 상호링크되는지를 표시할 수 있다) 중 하나 이상을 표시할 수 있다. 벡터 차원들은 이들을 서로 비교가능하게 하기 위해 적합한 메트릭들을 가질 수 있다.
컴퓨팅 디바이스는 새로운 컴포넌트 배치 요청을 다루기 위해 저장된 디폴트 특징 벡터들 및 대응하는 디폴트 배치 결정들을 이용하도록 적응될 수 있다. 특히, 컴퓨팅 디바이스는 새로운 애플리케이션의 하나 이상의 컴포넌트들의 배치를 위한 새로운 컴포넌트 배치 요청을 수신하도록 적응될 수 있다. 새로운 특징 벡터는 새로운 컴포넌트 배치 요청으로부터(상기 언급된 기계 학습 단계의 콘텍스트에서 행해진 것과 유사한 방식으로) 결정될 수 있다. 컴퓨팅 디바이스는 그 후에 컴퓨팅 디바이스에 저장된 하나 이상의 디폴트 특징 벡터들에 기초하여 새로운 애플리케이션의 하나 이상의 컴포넌트들을 배치할 장소를 결정할 수 있다. 특히, 컴퓨팅 디바이스는, 새로운 배치 요청이 하나 이상의 디폴트 배치 결정들 중 하나로서 동일하게(또는 유사한 방식으로) 다루어질 수 있는지를 결정하기 위하여, 새로운 특징 벡터를 하나 이상의 디폴트 특징 벡터들과 비교할 수 있다.
컴퓨팅 디바이스는 하나 이상의 디폴트 특징 벡터들로부터 새로운 특징 벡터의 최소 거리를 결정하도록 적응될 수 있다. 새로운 특징 벡터와 디폴트 특징 벡터 사이의 거리는 벡터 차원들 각각의 메트릭들에 기초하여 결정될 수 있다. 예로서, 거리는 새로운 특징 벡터와 하나 이상의 디폴트 특징 벡터들 중 하나의 각각의 벡터 차원들의 가중된 차에 기초하여 결정될 수 있다. 최소 거리가 최소 임계치보다 낮은 경우, 컴퓨팅 디바이스는 새로운 특징 벡터로부터의 최소 거리에서 디폴트 특징 벡터에 대응하는 디폴트 배치 결정에 기초하여 새로운 애플리케이션의 하나 이상의 컴포넌트들을 배치할 장소를 결정할 수 있다. 특히, 컴퓨팅 디바이스는 컴포넌트 배치 요청을 디폴트 배치 결정 내에 표시된 실행 컴퓨팅 디바이스에 넘겨줄 수 있다.
상기에 개요된 바와 같이, 본 문서는 복수의 컴퓨팅 디바이스들을 포함하는 매체 클라우드에 관한 것이다. 또한, 본 문서는, 각각의 컴퓨팅 디바이스가 새로운 애플리케이션의 하나 이상의 컴포넌트들의 배치에 관한 개별적인 결정을 취하도록 적응되는 분산형 배치 방식에 관한 것이다. 이러한 배치 결정은 이전 배치 결정들(기계 학습을 이용한)로부터 도출된 디폴트 배치 결정들에 기초하여 취해질 수 있다. 대안적으로 또는 부가적으로, 컴퓨팅 디바이스는 개별 배치 결정을 하기 위해, 컴퓨팅 디바이스에서 이용가능한 토폴로지 및/또는 리소스 정보를 이용하도록 적응될 수 있다.
컴퓨팅 디바이스는 제 1 토폴로지 영역에 위치될 수 있다. 통상적으로, 복수의 이러한 컴퓨팅 디바이스들을 포함하는 분산형 클라우드(본 명세서에서 매체 클라우드라고 칭해짐)는 복수의 토폴로지 영역들(이들은 하나 이상의 구역들로 더 세분될 수 있음)로 분할된다. 컴퓨팅 디바이스는 제 1 토폴로지 영역 이외의 복수의 토폴로지 영역들에 위치된 복수의 기준 컴퓨팅 디바이스들을 나타내는 토폴로지 리스트를 각각 포함한다. 즉, 컴퓨팅 디바이스는 분산형 클라우드의 다른 영역들(또는 구역들)의 각각 내에 위치된 적어도 하나의 기준 컴퓨팅 디바이스의 표시(예를 들면 네트워크 식별자)를 제공하는 토폴로지 리스트를 유지한다. 토폴로지 리스트는 다른 영역(또는 구역)마다 하나 두 개의 기준 컴퓨팅 디바이스들을 포함할 수 있다. 통상적으로, 기준 컴퓨팅 디바이스들은, 각각의 컴퓨팅 디바이스가 구역에 대한 상이한 앵커 지점(anchor point)을 가지고, 그에 의해 단일 장애 지점들을 제거하는 것을 보장하기 위해, 영역 내의 컴퓨팅 디바이스들의 이용가능한 리스트로부터 랜덤하게 선택된다.
컴퓨팅 디바이스는 또한 컴퓨팅 디바이스의 및 컴퓨팅 디바이스의 이웃에 위치된 적어도 하나의 이웃 컴퓨팅 디바이스의 이용가능한 컴퓨팅 리소스들을 나타내는 로컬 리소스 리스트를 포함할 수 있다. 컴퓨팅 디바이스의 이웃은 적어도 하나의 이웃 컴퓨팅 디바이스에 의해 충족될 필요가 있는 하나 이상의 이웃 조건들에 의해 규정될 수 있다. 하나 이상의 이웃 조건들은 컴퓨팅 디바이스와 적어도 하나의 이웃 컴퓨팅 디바이스 사이의 최대 왕복 시간(round trip time)을 포함할 수 있다. 대안적으로 또는 부가적으로, 하나 이상의 이웃 조건들은 적어도 하나의 이웃 컴퓨팅 디바이스가 제 1, 즉 동일한, 토폴로지 영역 내에 위치되는 조건을 포함할 수 있다.
최소 거리가 최소 임계치보다 크다고 결정할 때(즉, 컴퓨팅 디바이스가 이전 배치 결정들에 의존할 수 없다고 결정할 때), 컴퓨팅 디바이스는 토폴로지 리스트(에만)에 기초하여, 새로운 애플리케이션의 하나 이상의 컴포넌트들이 제 1 토폴로지 영역에 또는 제 1 토폴로지 영역 이외의 복수의 토폴로지 영역들 중 하나에 배치되어야 하는지를 결정하도록 적응될 수 있다. 통상적으로, 새로운 컴포넌트 배치 요청은 컴포넌트/애플리케이션의 싱크 또는 소스의 선호 위치에 관한 정보를 포함한다. 예로서, 하나 이상의 컴포넌트들의 싱크 또는 소스의 선호 위치에 관한 정보는 하나 이상의 컴포넌트 및 하나 이상의 컴포넌트들이 상호작용하는 애플리케이션의 다른 컴포넌트들의 요건들의 기술로부터 도출될 수 있다. 컴퓨팅 디바이스는 선호 위치를 그 자신의 위치 및 매체 클라우드의 토폴로지 영역들의 위치와 비교할 수 있다.
하나 이상의 컴포넌트들이 제 1 토폴로지 영역 이외의 복수의 토폴로지 영역들 중 하나에 위치된다고 결정되는 경우, 컴퓨팅 디바이스는 컴포넌트 배치 요청을 제 1 토폴로지 영역 이외의 복수의 토폴로지 영역들 중 각각의 토폴로지 영역의 기준 컴퓨팅 디바이스에 넘겨주도록 적응될 수 있다. 즉, 다른 토폴로지 영역이 선호 위치에 더 근접하다고 결정되는 경우, 다른 토폴로지 영역의 기준 컴퓨팅 디바이스(또는 기준 컴퓨팅 디바이스들 중 하나)에 배치 요청이 넘겨지고, 컴퓨팅 디바이스의 토폴로지 리스트로부터 기준 컴퓨팅 디바이스(즉, 기준 컴퓨팅 디바이스에 대한 표시)가 취해진다. 이와 같이, 컴퓨팅 디바이스는 다른 컴퓨팅 디바이스 또는 더 높은 레벨의 네트워크 관리 엔티티에 의논할 필요 없이, 그 토폴로지 리스트에 기초하여 토폴로지 관리 작업을 수행하도록 적응될 수 있다. 즉, 토폴로지 관리 작업은 컴퓨팅 디바이스에 의해 자체적으로 수행될 수 있다.
하나 이상의 컴포넌트들이 제 1 토폴로지 영역에 배치되어야 한다고 결정되는 경우, 컴퓨팅 디바이스는 로컬 리소스 리스트로부터 새로운 애플리케이션의 하나 이상의 컴포넌트들을 실행하기 위한 컴퓨팅 리소스들을 가진 선택된 컴퓨팅 디바이스를 식별하도록 적응될 수 있다. 즉, 컴퓨팅 디바이스가 컴포넌트의 선호 위치가 제 1 토폴로지 영역 내(또는 컴퓨팅 디바이스의 구역 내)에 놓여 있다고 결정하는 경우, 컴퓨팅 디바이스는 다른 컴퓨팅 디바이스 또는 더 높은 레벨의 네트워크 관리 엔티티에 의논할 필요 없이, 그 로컬 리소스 리스트 내에서 이용가능한 리소스 정보에 기초하여 리소스 관리 작업을 수행할 수 있다. 이것은 리소스 관리 작업이 컴퓨팅 디바이스에 의해 자체적으로 수행될 수 있음을 의미한다.
디폴트 배치 결정이 식별되었을 때 및 새로운 배치 요청이 디폴트 배치 결정 내에 식별된 실행 컴퓨팅 디바이스에 넘겨졌을 때 토폴로지 리스트 및/또는 로컬 리소스 리스트에 기초한 새로운 배치 요청의 상기 언급된 처리가 또한 이용될 수 있음을 유념해야 한다. 특히, 실행 컴퓨팅 디바이스는 새로운 애플리케이션의 하나 이상의 컴포넌트들의 처리를 더욱 최적화하기 위해 그 토폴로지 리스트 및/또는 그 로컬 리소스 리스트를 이용할 수 있다.
컴퓨팅 디바이스는 지점-대-다지점, 지점-대-지점 또는 다지점-대-다지점 애플리케이션의 디폴트 애플리케이션 서버일 수 있다. 이러한 디폴트 애플리케이션 서버는 지점-대-다지점, 지점-대-지점 또는 다지점-대-다지점 애플리케이션을 셋업하기 위한 복수의 컴퓨팅 디바이스들의 클라우드에서의 디폴트 액세스 지점일 수 있다. 이러한 디폴트 애플리케이션 서버들의 예들은 예를 들면, 특정 토폴로지 영역에서의 중앙 화상 회의 서버, 특정 토폴로지 영역에서의 중앙 방송 서버, 및/또는 특정 토폴로지 영역에서의 중앙 통화 처리 서버이다.
또 다른 양태에 따라, 디폴트 배치 결정들의 데이터베이스를 결정하기 위한 방법 및/또는 새로운 애플리케이션의 하나 이상의 컴포넌트들을 컴퓨팅 디바이스들의 클라우드 중 하나의 컴퓨팅 디바이스 상에 배치하기 위한 방법이 기술된다. 상기 방법은 대응하는 복수의 애플리케이션들의 하나 이상의 컴포넌트들에 대한 복수의 컴포넌트 배치 요청들을 수신하는 단계를 포함한다. 상기 방법은 복수의 컴포넌트 배치 요청들로부터 복수의 특징 벡터들을 각각 결정하는 단계로 진행하고, 각각의 특징 벡터는 각각의 컴포넌트 배치 요청의 상이한 속성들을 기술하는 벡터 차원들을 포함한다. 또한, 상기 방법은 복수의 컴포넌트 배치 요청들에 관한 복수의 배치 결정들을 각각 결정하는 단계로 진행하고, 각각의 배치 결정은 각각의 애플리케이션의 하나 이상의 컴포넌트들이 배치된 하나 이상의 실행 컴퓨팅 디바이스들의 표시를 포함한다. 이와 같이 상기 방법은 기계 학습을 가능하게 하기 위해 트레이닝 배치 요청들(복수의 특징 벡터들에 의해 표현된) 및 배치 결정들의 세트를 결정하는 단계를 포함한다. 상기 방법은 복수의 특징 벡터들을 클러스터링하고, 그에 의해 하나 이상의 클러스터들을 산출하는 단계로서, 각각의 클러스터는 디폴트 컴포넌트 배치 요청의 상이한 속성들을 기술하는 디폴트 특징 벡터를 포함하는, 상기 산출하는 단계를 포함한다. 또한, 하나 이상의 클러스터들 각각에 대한 디폴트 배치 결정이 결정된다. 하나 이상의 디폴트 특징 벡터들 및 각각의 하나 이상의 디폴트 배치 결정들은 컴퓨팅 디바이스의 데이터베이스에 저장된다. 따라서, 디폴트 배치 결정들의 데이터베이스가 결정될 수 있다. 또한, 새로운 애플리케이션의 하나 이상의 컴포넌트들을 배치하기 위해 데이터베이스에 저장된 하나 이상의 디폴트 특징 벡터들 및 각각의 하나 이상의 디폴트 배치 결정들이 이용될 수 있다.
또 다른 양태에 따라, 소프트웨어 프로그램이 기술된다. 소프트웨어 프로그램은 처리기 상에서 실행하도록 및 컴퓨팅 디바이스 상에서 실행될 때 본 문서에 개요된 방법 단계들을 수행하도록 적응될 수 있다.
또 다른 양태에 따라, 저장 매체가 기술된다. 저장 매체는 처리기 상에서 실행하도록 및 컴퓨팅 디바이스 상에서 실행될 때 본 문서에 개요된 방법 단계들을 수행하도록 적응된 소프트웨어 프로그램을 포함할 수 있다.
또 다른 양태에 따라, 컴퓨터 프로그램 제품이 기술된다. 컴퓨터 프로그램은 컴퓨터 상에서 실행될 때 본 문서에 개요된 방법 단계들을 수행하기 위한 실행가능한 지시들을 포함할 수 있다.
본 문서에 개요된 양호한 실시예들을 포함하는 방법들 및 시스템들이 독립적으로 또는 이 문서에 개시된 다른 방법들 및 시스템들과 조합하여 이용될 수 있음을 유념해야 한다. 또한 본 문서에 개시된 방법들 및 시스템들의 모든 양태들은 임의적으로 조합될 수 있다. 특히, 특허청구항들의 특징들은 임의의 방식으로 서로 조합될 수 있다.
본 발명은 첨부 도면들을 참조하여 예시적인 방식으로 하기에 설명된다.
도 1은 클라우드 내의 컴퓨팅 노드들의 예시적 배열을 도시한 도면.
도 2는 복수의 컴퓨팅 노드들의 구역적 그룹화의 예시적 표현을 도시한 도면.
도 3은 컴퓨팅 노드의 예시적 리소스 및 토폴로지 그래프를 도시한 도면.
도 4는 애플리케이션의 예시적 컴포넌트들을 도시한 도면.
도 5는 애플리케이션 배치 상황을 기술하는 예시적 벡터 공간을 도시한 도면.
도 6은 애플리케이션 배치를 위한 예시적 학습 방법의 흐름도.
도 7은 기계 학습을 이용하는 애플리케이션 배치를 위한 예시적 방법의 흐름도.
오늘까지도 네트워크들의 증가된 수송 용량 요구들은 주로 새로운 인프라스트럭처 요소들의 인스톨 또는 기술적 약진들에 의해 네트워크들의 인스톨된 대역폭을 강화함으로써 달성된다. 실질적 관심사가 존재하지만, 네트워크들의 이러한 진화는 증가된 용량 수요들이 적어도 타당한 가격들을 지속할 것으로 예상될 수 없게 한다. 미래의 네트워크 고도화들(network enhancements)이 더욱 도전적이게 됨에 따라, 증가하는 용량 수요들을 충족시킬 대안적인 접근법들에 대한 필요성이 존재한다. 네트워크 용량에 대한 증가하는 수요를 다루기 위한 잘 확립된 접근법은 "상위 계층(higher layer)" 지능을 네트워크들에 추가하는 것이다. 추가된 "상위 계층" 지능은 전체 트래픽을 감소시키기 위한 것이고, 따라서 예를 들면 트래픽 국부화에 의해 이용가능한 수송 능력을 강화한다. 이러한 "상위 계층" 지능의 개념의 제 1 성과는 콘텐트 전달 네트워크들(Content Delivery Networks; CDN)의 도입이었다. CDN들은 기본적으로 인터넷의 방송 전달 특성들을 포함하는 (매체) 서비스들의 대규모 채택을 가능하게 한다.
그러나, 개인화된 매체 스트림들에 대한 최근에 생긴 경향이 존재하고, 여기서 매체 스트림들은 인터넷, 즉 클라우드의 어딘가에서 처리를 받아야 하고, 그에 의해 예를 들면 개인화된 "멀티-뷰(multi-view)" 비디오 서비스에 대한 IP-TV의 진화를 가능하게 하거나(2007년, IEEE 분산 시스템들 온라인, 제 8권, 제 3 호, 조항 제 0703-o3006호의 Ishfaq Ahmad에 의한 "Multi-View Video: Get Ready for Next-Generation Television" 참조), 또는 "OnLive"와 같은 클라우드 기반 게임 서비스들을 가능하게 한다(예를 들면 온라이브, http://www.onlive.com/ 참조). CDN들이 동일한 콘텐트의 다수의 수신자들로의 효율적인 전달을 위해 만들어졌지만, 네트워크 내에서 처리를 요구하는 개인화된 콘텐트 스트림들에 대한 새로운 경향이 인터넷 인프라스트럭처에 도전하고 있다.
오늘날의 애플리케이션들 및 대응하는 클라우드 인프라스트럭처들은 통상적으로 네트워크를 통해 애플리케이션이 실행되는 전용 위치(즉, 데이터 센터)쪽으로 데이터가 이동되는 방식으로 설계된다. 이러한 클라우드 컴퓨팅 패러다임을 미래의 인터넷 설계에 보존하는 것은 매체 스트림들에 대한 처리 기능이 위치된 "임의의(arbitrary)" 데이터 센터들에 수송되어야 할 대량의 트래픽을 유발한다. 본 문서에는 지정된 데이터 센터들에서의 이러한 중앙집중식 애플리케이션 처리의 패러다임을 변경하는 것이 제안된다. 특히, 애플리케이션 요건들에 따라 애플리케이션들 또는 애플리케이션들의 부분들의 이동을 강요하는 지능 인프라스트럭처가 제안된다. 이러한 방식들은 트래픽 국부화에 의해 네트워크들로부터 불필요한 "장거리(long distance)" 트래픽을 오프로드할 수 있고 따라서 미래의 네트워크들에서 수송 용량의 제한된 가요성의 문제를 극복하도록 도울 것이다.
오늘날의 클라우드 인프라스트럭처들과 함께, 컴퓨팅 인프라스트럭처의 인터넷으로의 오프로딩은 필수적이게 되었다. Amazon EC2, Rackspace 또는 Microsoft Azure와 같은 클라우드 컴퓨팅 제공자들은, Facebook 또는 Animoto와 같은 인터넷 기반 서비스들의 매우 동적인 필요들을 지원하는 자동화된 스케일러빌리티(scalability) 및 임시 배치와 같은 특징들을 제공하는 서비스로서 인프라스트럭처 또는 플랫폼들을 제공한다.
그러나, 오늘날의 접근법은 비용이 상당하다: 오늘날의 접근법은, 트래픽 로컬을 유지하는 대신에, 더 많은 트래픽이 중앙집중식 데이터 센터들(클라우드 컴퓨팅 제공자들에 의해 제공된)에 라우팅되기 때문에 코어 네트워크들 상의 전체 부하를 증가시킨다. 중앙집중식 데이터 센터들은 데이터를 처리하여 이를 다시 요청자들에게 전송한다. 이것은 통상적인 요청/응답 기반 웹-서비스들에 실현 가능한 것으로 보이지만, 이러한 중앙집중식 접근법은 개인화된 멀티뷰 비디오 렌더링과 같은 대량 매체 중심 실시간 애플리케이션들에 대한 실제 인터넷 아키텍처의 설계를 파괴할 수 있다.
인터넷이 개발자들 및 최종-이용자들이 그들 개인화된 애플리케이션들을 통합된 네트워크 및 컴퓨팅 인프라스트럭처 상에서 실행할 수 있게 하는 서비스 지향 컴퓨팅 패러다임을 직접 지원하기 위한 고유 능력들을 임베딩하는 것이 제안된다.
자율적 서비스들은 이러한 애플리케이션들이 만들어질 수 있는 컴포넌트들이 되어야 한다. 자율적 서비스들은 그 기계 상에서 그들의 물리적 인스틴티에이션(physical instantiation)에 의해 처리된 특정 호스트 인프라스트럭처 하드웨어에 제한되어서는 안되고, 분산형 컴퓨팅 리소스들 상에 동적으로 배치되고 데이터 흐름들의 소스들과 싱크들 사이의 데이터-흐름들에 병치될(collocated) 수 있는 이동가능한 오브젝트들이 되어야 한다.
자율적 서비스들은 작업 흐름 또는 콘텍스트 조건들이 변하는 경우에 서비스들의 동적 구성 및 서비스들의 잠재적 적응 또는 재배치를 가능하게 하기 위해, 서비스들의 잘 규정된 추상 모델을 이용할 수 있다. 서비스 컴포넌트들의 헐거운 결합은 요구시 서비스 작업 흐름의 상호접속을 가능하게 해야 하고 서비스 구성을 수정함으로써 동일한 관련 데이터를 이용자에게 제공해야 하는 작업 흐름의 적응들을 용이하게 해야 한다(서비스들 및 그들 인터페이스들이 어떤 의미상 서비스 기술을 가지는 것을 고려하면).
이용자의 관점으로부터, 클라우드는 통상적으로 중앙집중식 서버와 같이 거동한다. 그러나, 클라우드는 통상적으로 자유 리소스들의 집합형 또는 분산형 세트를 코히런트 방식으로 활용한다. 계산 부하 및 네트워크 리소스들을 모니터링함으로써, 데이터-경로들 상에 QoS(Quality of Service; 서비스 품질) 관리 메커니즘들을 적용할 필요 없이 인스턴스들을 동적으로 스케일-업 및 스케일-다운하고 네트워크 부하를 관리하는 것이 가능하다.
특히 매체 애플리케이션들에서, 이러한 컴포넌트들은 데이터 변환 서비스들, 즉 다른 데이터 스트림을 생성하기 위해 데이터를 소비하는 엔티티들로서 구현될 수 있다. 즉, 매체 애플리케이션들은 데이터 변환 서비스들의 시퀀스로서 모델링될 수 있다. 이와 같이, 비디오 카메라들은 비디오 데이터를 생성한 데이터 소스들이다. 비디오 코덱들, 스케일링 또는 프레이밍 컴포넌트들과 같은 비디오 처리 컴포넌트들은 매체 스트림을 예를 들면 이동 단말기들 또는 TV 디스플레이들에 적합한 포맷으로 적응시키기 위해 데이터 변환을 허용할 수 있다. 이미지 인식은 비디오 신호에서 오브젝트들을 식별할 수 있고, 이것은 장면의 3D 모델을 생성하기 위해 상이한 소스들로부터 병합될 수 있다.
카메라들의 이러한 데이터 변환 모델 및 오리지널 비디오 스트림들을 이용하여, 이용자를 위한 새로운 개인화된 뷰가 렌더링되어 디스플레이에 전송될 수 있다. 이러한 서비스는 직접 그래프에 의해 표현될 수 있으며, 이것은 배치 시간에 인스틴티에이팅될 것이다. 인스틴티에이션 처리 동안, 요구된 리소스들은 이용가능한 리소스 풀로부터 선택된다. 인스틴티에이션 처리 동안 요구된 리소스들을 선택한 결과로서, 서비스에 의해 네트워크 상에 부과된 전체 트래픽은 감소될 것이다. 즉, 리소스 선택 처리는 서비스에 의해 네트워크 상에 부과된 전체 트래픽을 감소시키기 위한 것이다. 리소스 선택 처리는 또한 서비스의 소비자들에 대한 QoE(Quality of Experience; 체감 품질) 양태들을 최적화하는 것을 고려할 수 있다.
가변 서비스 특성들을 가진 애플리케이션들은 매체 클라우드(Media Cloud; MC) 개념으로부터 상이한 확장에 대한 이점을 가진다. 특정 시간 기간에 걸쳐 연속하는 데이터의 일치된 흐름을 요구하는 애플리케이션들 또는 처리를 위해 대량의 데이터의 이전을 요구하는 애플리케이션들에 대해 주요 이점들이 달성될 수 있다. 한편, 매우 제한된 데이터 이전만을 요구하는 애플리케이션들에 대해, 서비스 이전 오버헤드 및 인스틴티에이션 비용은 받은 이점들을 초과할 수 있다. 결과적으로, 데이터와 연관된 "메타-정보(meta-information)"의 검색을 허용하는 메커니즘들을 제공하는 것이 MC 개념 내에서 이로울 수 있다. 데이터와 연관된 이러한 "메타-정보"는, 데이터가 일정한 매체(예를 들면, 비디오) 스트림이거나 서비스 실행에 앞서 이전되어야 할 제한된 양의 데이터(예를 들면, 데이터 파일)만인 경우, 데이터가 위치된 장소에 관한, 서비스 실행을 위해 이전되어야 하는 데이터가 얼마나 많은지에 관한 정보를 제공할 수 있다.
매체 클라우드 시나리오들을 네트워크 아키텍처에 의해 본질적으로 지원하기 위해, 기존의 인터넷 아키텍처로부터의 일부 기본 원리들이 다시 고려되어야 한다. 먼저, 콘텐트 네트워킹으로부터 잘 알려진 원리들은 본 문서에 기술된 MC 접근법을 지원하도록 확장되어야 한다. 콘텐트 네트워크들은 데이터의 로컬리티(locality)를 익스플로어링하고, 즉 소스에서 데이터에 대한 요청을 서빙하는 대신에, 로컬 캐시된 데이터 복제가 전달된다. 라우팅 결정들을 위해 콘텐트가 생성된 위치를 이용하는 대신에, 콘텐트를 직접 처리하여 이 정보를 라우팅을 위해 이용하는 방식이 제안될 수 있다.
상기 언급된 방식의 확장은 콘텐트를 처리할 뿐만 아니라, 요청된 데이터를 제공할 수 있고 처리 파이프라인을 인스틴티에이팅하여 필요한 변환들을 행할 수 있는 서비스를 처리할 수 있다. 단일 도메인의 모든 이용자들을 위한 중앙집중식 처리를 수행하는 대신에, 이용가능한 네트워크 계층에서 고유한 "멀티-캐스트(multi-cast)" 능력들을 활용하여 적합한 위치들에서 매체 흐름들이 조합되거나 분리될 수 있다. 이것은, 멀티-캐스트가 "멀티-캐스트"가 네트워크에서 지원되는 경우를 알지 못하는 서비스 개발자에 의해 명시적으로 포함되어야 하고, 따라서 오버레이 메커니즘들에 의해서만 달성될 수 있는 기존 방식들을 넘어서는 이점이 있다.
상이한, 서비스 컴포넌트들 사이에서 교환되는 (매체) 흐름들의 트래픽 패턴들이 정확하게 예측되는 경우, 본 명세서에 기술된 MC-가능한 네트워크는 패킷마다 기초하여 라우팅 결정들을 실행하는 대신에, 이러한 흐름 패턴들에 대해 직접적으로 동작할 수 있다. 따라서, MC-가능한 네트워크는 서비스 컴포넌트들 사이에서 교환된 매체 스트림들의 이용가능한 메타-정보를 네트워크에 제공함으로써 효율적인 흐름-기반 스위칭을 가능하게 할 수 있다. 이 정보는 이러한 MC-가능한 네트워크들에서의 제어 평면이 전체 처리량을 증가시키는 것을 가능하게 할 수 있다.
MC 방식은 흐름 기반 스위칭 패러다임이 통상적으로 흐름 제어 핸들러들에서 더 많은 역동성을 지원하는 비용을 지불하고 달성되는 것을 또한 고려할 수 있다. 이러한 비용들을 "제한(limit)"하기 위해, MC-가능한 네트워크들은 동일한 데이터 센터들에서 실행된 서비스 컴포넌트들 사이의 경로를 공유하고 있는 다수의 데이터 스트림들을 집계하는 능력을 제공해야 한다. 데이터 센터들 사이의 조인트 스트림들(joint streams)의 집계 단위(aggregated granularity)를 도입함으로써, 코어 네트워크 자체의 제어 복잡성이 제한될 수 있다.
MC를 제공할 때 네트워크에 대한 다른 요건은 더 이상 기계들이 아닌 서비스들(즉, 서비스 컴포넌트들)인 매체 흐름 최종-지점들의 끊임없는 재배치가 지원되는 방식으로 흐름들이 네트워크에서 다루어져야 한다는 것이다. 결과적으로, MC-가능한 네트워크들에 대해, 소켓 인터페이스와 같은 클라이언트 API들이 수정되어야 할 수 있다. 후에 이 서비스의 후속 소비자 컴포넌트들에 분배될 출력 데이터를 생성하기 위해 데이터의 입력 스트림(들)에 대해 일반적으로 동작하는 자립형 컴포넌트들로부터 MC-가능한 서비스들이 만들어짐에 따라, 통신을 위한 전용 소켓들의 이용은 더 이상 효율적일 수 없고 새로운 패러다임들이 미래의 인터넷의 콘텍스트에서 고려되어야 할 수 있다.
통상적으로, 일반 클라우드 애플리케이션의 처리 리소스들은 서비스 실행시간에 앞서 할당되어야 한다. 가장 흔히 이러한 매핑은 어떤 데이터 센터가 특정 애플리케이션을 호스팅해야 하는지를 결정하는 수동 관리 작업이다. 결과적으로, 처리될 데이터의 원래 위치에 상관없이, 처리될 데이터는 통상적으로, 미리-할당된 데이터 센터쪽으로 전송되어야하고, 거기서 처리되어야 하고, 목적지로 전송되어져야 한다. 이러한 정적 배치 방식은 서비스 실행을 실행 시간에 동적으로 적응시킴으로써 서비스 성능 및 리소스 활용을 개선하는 분산형 매체 애플리케이션 배치들의 이점들을 활용하기에 충분하지 않다. 예를 들면, 글로벌 화상 회의 서비스는 화상 회의 서비스의 이용자들의 이용 패턴에 따라 증대 및 축소, 또는 더욱 적합한 위치들로 이동하는 것이 가능해질 수 있다. 리소스들의 이러한 적응은 MC 내의 화상 회의 서비스의 애플리케이션 컴포넌트들을 생성함으로써, 분해함으로써 또는 이동함으로써 달성될 수 있다. 본 문서는 서비스 스케일링 및 컴포넌트 로컬리티를 처리하는 복잡한 서비스 논리(미들웨어)를 회피하면서, 애플리케이션 컴포넌트들에 대한 이러한 배치 및 재배치 결정들을 효율적으로 제공하기 위한 것이다.
적어도 이용자 컴포넌트들 당 단위에 대해 동작하는 정확하게 분산형 서비스 배치들에 대해, 교육된 컴포넌트 배치 결정들은 통상적으로 서비스 실행시간 동안에만 달성될 수 있다. 그 시간에만 관련 매체 스트림들의 데이터 소스들 및 데이터 싱크들이 알려지고 따라서 매체 처리 컴포넌트들이 인접한 처리 리소스 위치들에 할당될 수 있고, 그에 의해 트래픽 로컬을 유지함으로써 감소된 단-대-단 서비스 지연 및 오프로딩된 네트워크들을 유발한다. 서비스 프로파일들을 변경하고 트래픽 패턴들을 가변하는 것은 서비스 실행시간 동안 컴포넌트들에 대한 리소스 재-할당을 필요로 할 수도 있다. 따라서, 효율적인 컴포넌트 배치는 통상적으로 애플리케이션 컴포넌트가 인스틴티에이팅될 때 일회성 매핑 결정을 요구할 뿐만 아니라, 통상적으로 리소스 할당들의 연속적 평가를 필요로 한다.
본 명세서에 기술된 매체 클라우드는 통상적으로 경량 애플리케이션 컴포넌트들(즉, 비교적 작은 데이터 크기를 가진 애플리케이션 컴포넌트들)을 이용하고 효과적인 매체 처리에 적응된 흐름-기반 프로그래밍 모델에 따라 분산형 편성 미들웨어(distributed orchestration middleware)를 제공한다. 애플리케이션 컴포넌트의 작은 크기로 인해, 컴포넌트들은 실행 동안 유연하게 배치가능하고, 애플리케이션 컴포넌트가 최고 이용자 체감을 최저 비용으로 제공하기 위해 가장 효율적으로 실행하는 위치에 배치될 수 있다.
애플리케이션 컴포넌트들은 외부 애플리케이션 논리로부터 내부 기능적 논리를 분리할 수 있다. 통상적으로, 애플리케이션 컴포넌트들은 스트리밍된 매체의 새로운 인스턴스의 도착에 의해, 예를 들면 비디오 프레임의 도착에 의해 트리거링된다. 응답하여, 메시지들은 애플리케이션 컴포넌트를 실행 환경에 접속하는 - 매체 클라우드에서 "포트들(ports)"이라고 칭해짐 - 결정된 접속기들을 통해 적합한 애플리케이션 컴포넌트들쪽으로 전달된다. 새로운 비디오 프레임이 수신될 때, 애플리케이션 컴포넌트는 이에 대해 동작하고, 예를 들면 수신된 프레임을 적색-녹색-청색(RGB) 컬러 공간에서 그레이-스케일 이미지로 변환하거나, 프레임들을 2개의 입력 스트림들에서 단일 출력 이미지로 병합하거나, 또는 얼굴 검출을 수행한다.
애플리케이션 컴포넌트가 그 동작을 끝내고 결과들을 생성할 때마다, 처리된 데이터를 애플리케이션 컴포넌트에 의해 생성된 데이터의 잠재적 소비자들에게 이전하기 위한 실행 환경을 호출한다. 실행 환경은 생성된 출력의 소비자들을 식별 및 분석하고 데이터 수송을 다룬다. 실행 환경에 의한 이러한 다룸은 애플리케이션 컴포넌트로부터 외부 바인딩들을 숨기고, 실행 시간에서도 전체 애플리케이션의 동적 바인딩 및 재구성을 허용한다. 전송자 및 수신자가 일치된 방식으로 메시지를 해석하고 있음을 보장하기 위해 상이한 포트 유형들이 고려될 수 있다.
본 문서에 기술된 MC 콘텍스트 내에서, 전체 애플리케이션 논리는 애플리케이션 컴포넌트들을 생성하거나 해산(dismiss)하고 애플리케이션 컴포넌트들 사이의 접속들을 구성하거나 해제하는 제어 컴포넌트들에 의해 확립된다. 제어 컴포넌트들이 통상적으로 매체 경로에 참여하지 않더라도, 제어 컴포넌트들은 구성 파라미터들을 제공하거나, 제어 지시를 차일드 컴포넌트들에 전송하거나 에러 메시지들을 수신하기 위해, 특정 제어 포트를 통해 차일드 컴포넌트들에 접속된다.
통상적으로, 새로운 애플리케이션 컴포넌트는 대응하는 제어 컴포넌트가 상주하는 동일한 로컬 리소스에서 인스틴티에이팅된다. 매체 흐름에서 다른 애플리케이션 컴포넌트들에 대한 접속들이 확립된 후에, 실행 환경은 상기에 개요된 매핑 처리를 호출하고 애플리케이션 컴포넌트 및 애플리케이션 컴포넌트의 상태를, 성능, 지연 또는 다른 이유들로 애플리케이션 컴포넌트를 호스팅하기에 더욱 적합한 리소스에 이전한다.
애플리케이션 컴포넌트-기반 접근법의 유연성은 임의의 이동체 대신에 알려진 사람의 존재를 식별하기 위해 다른 애플리케이션 컴포넌트들의 주문시 추가에 의해, 예를 들면 얼굴 검출 기능에 의해 확장 애플리케이션들을 허용한다.
애플리케이션 컴포넌트 배치 처리의 콘텍스트에서, 다양한 기술적 문제들의 예를 든다: 효율적인 리소스 할당의 실현 전략들 및 관리 방식들은 고도 분산형 리소스 배치들 알고리즘들, 미세-단위 서비스 배치들(fine-grained service deployments)의 적당한 제한들의 식별(즉, 애플리케이션 컴포넌트들의 최적 단위의 식별), 적합한 할당 알고리즘들 및 전략들의 설계, 및 완전 분산형 할당 접근법의 실행가능성의 경우에도 효율적인 성능 및 스케일을 제공한다. 본 문서는 이들 기술적 문제들을 다룬다. 특히, 본 문서는 MC 내에 애플리케이션 컴포넌트들을 배치하기 위한 방법을 기술한다.
완전 분산형 할당 접근법에 대한 가능한 솔루션은 '글로벌(global)' 지식에 기초하여 단일 계산 단계에서 애플리케이션 컴포넌트를 계산 리소스에 할당하는 것이 아니라, 현재 가장 적합한 리소스에 도달될 때까지 리소스에서의 국부적 지식에 기초하여 리소스에서 리소스로 컴포넌트를 포워딩하는 것일 수 있다. 이 접근법은 IP 네트워크들에서의 IP 패킷들에 대한 포워딩 접근법과 비교가능하다. 이러한 포워딩 접근법에서, 토폴로지 및 수요 정보는 이웃들 또는 선택된 시설 주위의 작은 변경의 원들에 제한될 수 있는 반면, 수요 정보는 컴포넌트들을 이웃의 에지 상에 클라이언트들에 매핑함으로써, 이들 이웃들 외부의 나머지 (원격) 클라이언트들을 위해 암시적으로 캡쳐(capture)된다. 원 반경은 스케일러빌리티와 성능 사이의 트레이드-오프를 조정하기 위해 이용될 수 있다.
다른 접근법은 복제 선택을 위해 분산된 매핑 노드들의 이용일 수 있다. 고객의 복제들로의 요청들의 가중된 분리를 유지하면서, 클라이언트-복제 로컬리티를 최대의 가능한 범위로 유지하는 알고리즘이 이용될 수 있다. 이러한 접근법은 클라이언트 성능 및 서버 부하를 공동으로 고려하여 최적화 문제를 해결한다.
상기 언급된 접근법들은 통상적으로 분산된 서비스 요청들과 함께 현재 분산 시스템 상태를 기억하지 않는다. 결과적으로, 시스템 상태 또는 요청 레이트의 각각의 소폭 변화는 시간 및 처리 수고를 요구하는 최적화 문제의 해결에 대한 및/또는 느리고 국소 최저치를 관련시킬 수 있는 다중-단계 애플리케이션 컴포넌트 재배치에 대한 필요성을 유발한다. 또한, 상기 언급된 접근법들은 반복되는 및 동기화되는 서비스 공격들의 식별을 위한 능력들을 제공하지 않는다.
도 1은 컴퓨팅 노드들(또한 컴퓨팅 디바이스들이라고도 칭해짐)(101)의 세트(100)를 도시한다. 이들 컴퓨팅 노드들(101)은 계층 없는 평면 배열을 형성하고, 즉 세트(100)의 컴퓨팅 노드들(101) 중 어느 것도 전체 제어 또는 관리 기능을 가지지 않는다. 컴퓨팅 노드들(101)의 각각은 다른 컴퓨팅 노드들(101)과 독립적으로 작업하고 컴퓨팅 노드(101)에서 이용가능한 세트(100)의 구조의 개별 정보에만 의존한다. 세트(100)는 본 문서에서 매체 클라우드(MC)(100)라고 칭해진다. 상이한 노드들(101)은 인터넷과 같은 통신 네트워크(103)를 통해 상호접속된다.
서비스들 또는 애플리케이션들을 분산 방식(중앙집중 방식과 반대)으로 제공하기 위해, 클라우드 컴퓨팅 어플라이언스들(101)의 분산된 배열(100)을 이용하는 것이 제안된다. 서비스들 또는 애플리케이션들의 분산된 제공의 결과로서, 더욱 리소스 효율적인 방식(특히 서비스들 또는 애플리케이션들이 통신 네트워크(103)의 요구된 전송 리소스들에 관해)으로 제공될 수 있는 것이 기대된다. 이러한 콘텍스트에서, 클라우드 컴퓨팅 어플라이언스들(101)에 대한 완전 분산형 리소스 관리(RM) 시스템이 기술되고, 그에 의해 클라우드 컴퓨팅 어플라이언스들(101) 상에 제공된 RM 기능들 중 어느 것도 이용가능한 리소스들에 관해 및 배열(100)의 토폴로지에 관해 완전한 지식을 가지지 않는다. 전체적으로, MC(100)의 노드들(101)의 각각의 자율적, 분산된 및 자립적 리소스 관리(RM) 기능을 제공하는 것이 바람직하다.
이 콘텍스트에서, "자율적(autonomous)" RM 기능은 애플리케이션 또는 애플리케이션의 컴포넌트를 실행시킬 장소를 결정하기 위해, 각각의 노드(101)가 그 로컬 리소스 이웃들에 관해 자체적으로 결정하는 것을 의미한다. 또한, "자율적" RM 기능은 다른 클라우드 리소스 영역의 대표에 관해 자체적으로 결정한다. 즉, MC(100)는 복수의 클라우드 영역들(102)로 세분될 수 있고, 제 1 영역(102)의 노드들(101)의 각각은 전체 제 2 영역(102)을 대표하는 제 2 영역(또는 제 2 영역(102)의 소구역)의 노드(101)를 자체적으로 선택할 수 있다. 이와 같이, 각각의 노드(101)는 노드의 영역(102) 내의 노드(101)의 이웃에서 이용가능한 리소스들의 로컬 리소스 그래프를 자체적으로 만들어낼 수 있다. 또한, 각각의 노드(101)는 MC(100)의 다른 영역(102)의 대표 노드들의 토폴로지 리스트를 만들어낼 수 있고, 그에 의해 MC(100)의 모든 영역(102)(및 가능한 모든 소-구역들)에 대한 엔트리의 지점을 각각의 노드(101)에 제공한다.
각각의 노드(101)의 RM 기능은 리소스 관리 기능이 모든 노드(101) 상에 배치된다는 점에서 "분산된다(distributed)". 일 실시예에서, 노드들(101) 중 어느 것도 임의의 특정역할(예를 들면, 조정 역할)을 가지지 않는다. 각각의 노드(101)는 "자립적(autarkic)" 방식으로 RM 기능을 수행하고, 이것은 MC(100) 내의 소프트웨어 컴포넌트를 배치할 장소에 관한 결정이 노드의 RM 기능에 의해서만(상위 계층 제어 기능에 의논하지 않고) 수행된다는 것을 의미한다." 자립적" 방식으로 동작하기 위해, 각각의 노드(101)는 다른 영역들 및/또는 (서브)구역들(예를 들면, 토폴로지 리스트를 통해)에 대한 개별 링크 및 근처/로컬 리소스들(예를 들면, 로컬 리소스 그래프)의 개별 뷰를 유지한다.
MC(100)의 노드들(101)은 MC(100) 내의 모든 노드들(101)의 위치의 공동의 전체 네트워크 맵을 공유하지 않는다. 대신에, 각각의 노드(101)는 전체 MC(100)의 노드의 뷰를 반영하는 개별 네트워크 맵을 포함한다. 개별 네트워크 맵은 로컬 리소스 그래프(그에 의해 동일한 영역 또는 구역(102) 내의 이웃하는 노드들의 일부를 표시) 및 토폴로지 리스트(그에 의해 MC(100)의 각각의 영역(102)(또는 구역)의 적어도 하나의 대표 노드를 제공)를 포함할 수 있다.
도 2는 노드들(101)의 토폴로지 클러스터링(300)을 도시한다. 상기에 표시된 바와 같이, MC(100)의 토폴로지는 계층 레벨들(예를 들면, 하나 이상의 구역들(302)을 포함하는 영역들의)로 정렬될 수 있다. 이와 같이, 노드(101)(예를 들면, 도 3의 노드 B)는 그 자체가 영역(102)(예를 들면 영역 a)에 귀속하는 구역(302)(예를 들면 구역 α)에 귀속할 수 있다.
특정 노드(101)는 전체 MC(100)의 제한된 뷰만을 가진다. MC(100)의 이러한 제한된 뷰는 노드(103)에 의해 "자율적" RM 기능을 수행하기 위해 이용된다. 이러한 RM 기능의 부분은 노드(101)에 의해 수행되는 토폴로지 관리라고 칭해질 수 있다. MC(100)의 각각의 영역(102)(또는 구역(302))에 도달될 수 있기 위해, 각각의 노드(101)는 다른 영역(102)(또는 구역(302))을 대표하는 하나(여러 개일 수 있음)를 토폴로지 트리 또는 토폴로지 리스트(또한 토폴로지의 리스트라고 칭해짐)에 추가된다. MC(100)의 노드들이 예를 들면 영역들(102)(구역들(302)로 세분되지 않고)에서 하나의 계층 레벨로 구성되는 경우, 각각의 루트 노드(101)는 임의의 다른 영역(102)의 (임의의) 대표를 저장해야 한다. 노드들(101)이 2개의 계층 레벨들, 예를 들면 구역들(302) 및 영역들(102)(각각의 영역(102)은 하나 이상의 구역들(302)을 유지함)로 구성되는 경우, 각각의 루트 노드(101)는 임의의 다른 영역(102)의 (임의의) 대표 및 이 영역(102)에서의 구역들(302) 중 어느 것의 (임의의) 대표를 저장해야 한다.
이와 같이, 각각의 노드(101)는 영역(102) 내(또는 구역(302) 내)의 리소스 관리를 수행하는 능력을 노드(101)에 제공하는 로컬 리소스 그래프(RG)의 루트 위치에 스스로를 삽입한다. 또한, 각각의 노드(101)는 토폴로지 그래프(또는 토폴로지 리스트)의 루트 위치에 스스로를 삽입한다. 이것은 네트워크의 개별 뷰를 노드(101)에 제공한다. 각각의 (루트) 노드(101)는 다른 구역들(302)(및/또는 영역들(102))의 하나 이상의 대표들을 그 토폴로지 그래프(TG)에 추가한다. 구역(302) 내의 임의의 노드가 이 구역(302)을 대표할 수 있음을, 즉 모든 노드들은 동일하고 영역(102) 또는 구역(302)의 노드들 중 어느 것도 특별한 작업들을 가지지 않음을 유념해야 한다. 2개의 계층적 토폴로지(영역들(102) 및 구역들(302)을 포함)의 경우, 노드(101)의 TG를 이용하여 노드들(101)의 각각으로부터 정확한 구역(302)을 어드레싱하는데 최대 2개의 단계들이 요구된다.
지역적 및 구역적 토폴로지 정보는 도 3에 도시된 테이블(600) 내에 저장될 수 있다. 테이블(600)은 로컬 리소스 그래프(601)의 각각의 노드들과 연관된 비용들(611)을 포함하는 로컬 리소스 그래프(601)의 노드들을 표시한다. 다른 노드의 비용들(611)은 다른 노드에 속한 리소스 값들, 예를 들면, 이용가능한 처리 리소스들, 이용가능한 링크 대역폭, 이용가능한 메모리 리소스들, 달성 가능한 왕복 시간 등을 포함할 수 있다. 또한, 테이블(600)은 다른 구역들 및/또는 영역들의 대표 노드들을 나타내는 토폴로지 리스트(602)를 제공한다. 토폴로지 정보 엔트리들은 또한 다수의 대안들(구역/영역 당 단일 엔트리 대신에)을 유지할 수 있다. 이와 같이, 메모리 테이블(600)은 MC(100)의 노드들 뷰포인트의 표현이다. 로컬 리소스 리스트(601) 내의 노드들의 수는 통상적으로, 영역/구역 내의 노드들의 총수보다 작은 미리 결정된 수로 제한된다. 토폴로지 리스트(602) 내의 영역/구역 당 노드들의 수는 영역/구역 내의 노드들의 총수보다 작은 노드들의 수(예를 들면 하나 둘의 노드들)로 제한된다. 이것은 각각의 노드(101)가 완전한 MC(100)의 제한된 뷰만을 가지는 것을 의미한다.
노드(101)는 테이블(600)에서 리소스들 및 토폴로지를 관리한다. 리소스 엔트리들(611)은 이웃하는 노드들로부터 수신된 비용 투플 정보(cost tuple information)를 저장한다. 루트 요소로부터의 거리(d)에 의존하여, 비용 투플 값들의 정밀성은 정확도, 현실, 통합된 뷰(aggregated view) 등에 관해 가변할 수 있다. 비용 투플들은 처리, 메모리, 링크 대역폭, RTI(round trip time) 등과 같은 리소스 값들을 포함할 수 있다. 컴포넌트 인스틴티에이션 처리(즉, 컴포넌트 배치 처리)의 경우, 노드는 먼저 그 자신의 리소스 상태를 분석한 다음 이를 RG(601)에서 노드들과 비교한다. 노드는 컴포넌트를 국부적으로 인스틴티에이팅하거나 RG(601) 내의 이웃 노드에 포워딩하는지를 결정한다.
로컬 리소스 그래프(601)는 노드(101)에 의해 수행되는 리소스 관리에 이용될 수 있다. 상기에 표시된 바와 같이, 각각의 노드는 노드(101)에서 이용가능한 제한된 정보에 기초하여, 특히 로컬 리소스 그래프(601)에 기초하여 독립된 리소스 관리 기능을 수행한다. 로컬 리소스 그래프(601)는 노드들의 서브세트(이것은 통상적으로 동일한 구역으로부터 취해짐)에 기초한다. 복수의 구역들(302) 사이의 경계 근처에 위치되는 노드들(101)에 대해, 로컬 리소스 그래프(601) 내의 이웃하는 노드들은 다른 구역들의 노드들을 포함할 수 있음을 유념해야 한다. 통상적으로, 로컬 리소스 그래프(RG) 트리 심도가 제한된다(근처의 네트워크 이웃들로 또는 부근으로). 노드(101)의 부팅 처리시, 로컬 리소스 그래프 내의 위치들은 (지역의) 노드들의 주어진 세트로부터 협의될 수 있다. 즉, 노드(101)는 로컬 리소스 그래프 내에 배치되도록 적합한 서브세트 이용가능한 노드들을 선택할 수 있다. 연속하는 (느린) 최적화 처리는 노드들이 동일한 구역의 다른 노드들로 대체되도록 허용한다. 이것은, 로컬 리소스 노드 내의 노드가 노드(101)의 리소스 관리 기능에 (그다지) 기여하지 않는다고 루트 노드(101)가 관찰하는 경우에, 루트 노드(101)는 기여하지 않는 노드를 루트 노드(101)의 이웃으로부터 다른 노드로 대체하기로 결정할 수 있다.
상기에 표시된 바와 같이, 로컬 RG의 각각의 노드(101)는 비용 스칼라/투플(611)에 귀속된다. 이 투플(611)은 새로운 컴포넌트 인스틴티에이션 요청이 배치되어야 할 장소를 결정하도록 돕는다. 즉 MC(100) 내의 애플리케이션의 컴포넌트의 실행을 배치할 장소를 결정할 때, 노드(101)는 노드에 의해 제공된 비용들(611)에 기초하여, 로컬 RG(601)에게 의논하고 로컬 RG(601) 내에 포함된 노드들 중 하나에 컴포넌트를 배치할 수 있다. 로컬 RG(601)의 노드들은 현재 리소스 상태에 관해 그들 RG 루트 노드(101)에 정기적으로 통보한다. 즉, 로컬 RG(601)의 노드들은 그들 리소스들에 관한 정보를 루트 노드(101)에 밀어 넣고, 그에 의해 루트 노드(101)가 실체화된 리소스 관리 결정들을 할 수 있음을 보장한다. 특히, 로컬 RG 정보(예를 들면, 비용(611))는 컴포넌트 배치를 위해 적합한 노드로서 로컬 RG(루트 노드 자체를 포함) 내의 노드들 중 하나를 식별하는데 이용된다. 컴포넌트의 배치 처리는 여러 반복들을 취할 수 있음을 유념해야 한다. 한편, 리소스 관리 기능을 수행하기 위한 중심 또는 부분적 중심 기능이 존재하지 않고, 그에 의해 단일 장애 지점의 위험을 제거한다.
이와 같이, 각각의 노드(101)는 다른 구역들의 하나 이상의 대표 노드들을 포함하는 로컬 리소스 그래프(601) 및 토폴로지 그래프(602)를 포함하는 제한된 네트워크 뷰를 가진다. 상기에 표시된 바와 같이, MC(100)의 토폴로지는 비발디 및 메리디안 알고리즘들을 이용하여 분산 방식으로 결정될 수 있다. 초기화 단계에서, 각각의 노드(101)는 동일한 구역/영역 내의 노드들의 완전한 리스트에 액세스할 수 있다. 노드(101)는 로컬 리소스 그래프(601)를 만들기 위해 이러한 노드들의 리스트를 이용한다. 또한, 초기화 단계에서, 각각의 노드(101)는 나머지 구역들/영역들로부터 적어도 하나의 노드를 선택할 수 있다. 나머지 구역들/영역들의 적어도 하나의 노드의 선택은, 구역의 노드들이 다른 구역들의 상이한 대표 노드들을 가지는 것을 보장하기 위해 랜덤 방식으로 수행되어야 하고, 그에 의해 장애들 또는 루프홀들의 단일 지점을 방지한다.
다음에는, 노드(101)에 의해 제공되는 매핑 기능(401)에 관한 세부 사항들이 기술된다. 노드들에서 이용가능한 토폴로지 및 리소스 정보(즉, 정보(600))에 기초하여, MC(100)의 노드들은 매체 클라우드 시스템(100)의 노드들(101) 상에 소프트웨어(매체) 컴포넌트들의 (최적) 배치에 관해 결정할 수 있다. 도 4에 도시된 바와 같이, 애플리케이션(700)은 통상적으로 복수의 컴포넌트들(703)로 구성된다. 예로서, 전화 회의 애플리케이션은 복수의 오디오 코덱(코딩/디코딩) 컴포넌트들(전화 회의의 참여자마다 하나씩) 및 믹서 컴포넌트(참여자들의 음성 채널들을 접속하기 위한)를 포함한다. 통상적으로, 애플리케이션(700)(및 컴포넌트들(703))은 소스(701)(이로부터 데이터가 제공됨) 및 싱크(702)(이에 데이터가 제공됨)를 구비한다. 상기 언급된 예들에서, 전화 회의 애플리케이션의 개별 참여자들은 소스들 및 싱크들이 된다고 간주될 수 있다. 컴포넌트 배치 처리의 작업은 통신 네트워크(103)의 리소스들의 소비를 감소하기 위해, 애플리케이션(700)의 컴포넌트들(703)을 MC(100) 내의 적합한 위치들에 배치하는 것이다. 예로서, 전화 회의 애플리케이션의 오디오 코덱 컴포넌트를 각각의 참여자들의 부근 내에 배치함으로써, 애플리케이션에 의해 요구된 전송 대역폭이 감소될 수 있다(인코딩된 음성 트래픽만이 통신 네트워크(103)를 통해 전송될 때). 또한, 전화 회의 애플리케이션의 믹서 컴포넌트는 전화 회의의 참여자들 사이의 중심 위치에 배치되어야 한다.
도 4에서, 상이한 컴포넌트들(703) 사이 및 소스(701)와 싱크(702) 사이의 링크들의 상이한 폭들은 링크들에 관한 상이한 요건들을 나타낸다(고무 밴드 모델). 더 높은 스프링 상수를 나타내는 컴포넌트들(703) 사이의 밴드들은 컴포넌트들(703)이 서로 근접하게(예를 들면, 동일한 노드 상에) 배치되어야 함을 나타낸다.
배치 절차는 이용가능한 노드 리소스 및 이용가능한 링크 리소스들을 고려해야 한다. 또한, 애플리케이션 컴포넌트들(703)의 요건들(예를 들면, 처리기 리소스들, 메모리 리소스들, 링크 대역폭, 지연, 지터에 관해)이 고려되어야 한다.
이러한 배치 결정들은 중앙집중 방식으로 수행될 수 있다. 그러나, 컴포넌트 배치를 위한 중앙집중형 또는 메시형 솔루션들은 통상적으로 대형 시스템들에서 스케일링하지 않는다. 또한, 이러한 중앙집중형 솔루션들은 단일 장애 지점들을 제공하려는 경향이 있다.
본 문서에서, 매체 클라우드(100)의 노드들(101)에서 이용가능한 제한된 정보를 이용하는 분산 배치 방식이 기술된다. 분산 배치 방식은 개별 노드들(101)에 의해 수행되는 개별 매핑 기능들(401)을 이용한다. 이들 매핑 기능들은 2개의 부-작업들로 분리된다; 토폴로지 관리 및 리소스 관리. 토폴로지 관리는 노드들(101)의 각각에서 이용가능한 토폴로지 정보(특히, 토폴로지 리스트(602))를 이용한다. 컴포넌트 배치 요청에는 통상적으로 애플리케이션(또는 컴포넌트)의 싱크 또는 소스에 관한 구역 정보가 동반된다. 노드는 이 토폴로지 정보를 확인하고 토폴로지 정보가 그 자신의 것과 매칭하지 않는 경우, 요청을 구역(또는 영역)의 대표에 포워딩한다. 즉, 노드는 컴포넌트의 원하는 싱크 또는 소스 위치가 노드의 구역과 일치하는지를 검증한다. 그렇지 않은 경우, 컴포넌트 배치 요청은 적합한 영역 또는 구역의 대표 노드에 넘겨지고, 이것은 노드에 알려진다(토폴로지 리스트(602)로부터). 2개의 계층 토폴로지(구역들 및 영역들)에서, 정확한 구역(302)에 어드레싱하는데 최대 2개의 단계들이 요구된다. 다중 컴포넌트들에 대한 배치 요청의 경우, 토폴로지 처리는 1회만 수행되어야 한다. 즉, 관련 컴포넌트들의 리스트(동일 서비스 또는 애플리케이션에 속함)는 단일 단계에 배치될 수 있다.
리소스 관리는 MC(100)의 상이한 노드들의 부하 상태에 의존하여 로컬 리소스 배치로 향해진다. 노드가 컴포넌트 배치 요청을 수신하여 컴포넌트가 그 구역 내에 배치되어야한다는 것을 식별하는 경우, 노드는 컴포넌트를 실행하기 위해 필수 리소스들을 가지는 그래프(601) 내의 노드를 식별하기 위해 그 로컬 리소스 그래프(601)에 의논한다. 통상적으로, 네트워크의 상이한 노드들(101)은 배치될 컴포넌트의 복제들을 이미 캐싱했다. 이와 같이, 통상적으로 식별된 노드 상에서 컴포넌트의 인스틴티에이션을 개시하는 것만이 필요하다. 달리, 식별된 노드는 중앙 컴포넌트 데이터베이스로부터 컴포넌트를 다운로딩할 수 있다.
일 예에서, 도 2의 노드(311)(소스)는 노드(312)(싱크)를 관련시키는 싱크를 가지는 애플리케이션의 셋업을 요청한다. 문제는 노드(311)가 싱크의 부근에 있는 노드를 어떻게 찾을 수 있는지(그 반대로도 가능)이다. 상기에 표시된 바와 같이, MC(100)의 각각의 노드(101)에서의 매핑 기능(MF)(401)은 그 자신의 것과 이웃의 리소스 점유들 및 토폴로지 정보를 저장하여, 각각의 노드는 자립적 방식으로 그 배치 결정을 도출할 수 있다. 먼저, 이용가능한 토폴로지 정보는 싱크 또는 소스의 부근에 있는 네트워크 구역을 찾기 위해 이용된다. 두 번째, 선택된 구역에서 이웃하는 노드들의 로컬 리소스 정보가 이용되어, 노드는 새로운 컴포넌트를 그 이웃 내에 배치할 장소를 결정할 수 있다. 상기 언급된 배치 방식을 이용하여, 노드들 중 어느 것도 MC(100)의 완전하고 정확한 리소스 및 토폴로지 정보를 알아야 할 필요가 없다. 그럼에도 불구하고, 달성된 배치는 거의 정확하다. 본 문서에 개요된 배치 방식에서, MC 노드들(101) 중 어느 것도 온라인 처리 동안 특별한 역할을 가지지 않음을 유념해야 한다. 결과적으로, 하나 여러 개의 임의의 MC 노드들(101)은 시스템 브레이크다운을 유발하지 않고 장애가 생길 수 있다.
노드의 매핑 결정 처리는 다음의 단계들을 수반할 수 있다. 제 1 단계에서, 싱크(컴포넌트 배치 요청 내에서 요청된)가 노드와 동일한 영역/구역에 있는지의 여부가 확인될 수 있다. 이것이 그 경우가 아니면, 노드는 요청된 싱크와 매칭해야 하는 영역/구역에서의 대표 노드를 테이블(602)에서 검색한다. 노드는 컴포넌트 배치 요청을 대표 노드에 포워딩한다. 대표 노드는 싱크가 그 영역 및 구역에 있음을 확인하고 그렇지 않으면 목적지 구역으로부터 개별 대표에 요청을 포워딩해야 한다. 대표 노드는 근처에 있고 컴포넌트를 실행하기 위해 최상의 비용 값을 갖는 가장 적합한 MC노드를 위해 그 로컬 RG(601)를 확인한다. 애플리케이션이 통상적으로 다수의 컴포넌트들로 구성되고 그에 의해 이들 컴포넌트들 사이의 상호접속이 다양한 요건들을 가짐을 유념해야 한다. 애플리케이션 그래프 정보의 전체 또는 더 큰 부분들이 더 많은 전체적 매핑 결정을 위해 제공될 수 있는 경우에 배치 결정이 개선될 수 있다.
상기에 표시된 바와 같이, 각각의 노드(101)는 로컬 리소스 그래프(601)를 포함한다. 컴포넌트 배치 요청을 수신할 때, 노드(101)는 그 로컬 리소스 그래프(601) 내에서 적합한 노드를 검색하고 컴포넌트 배치 요청을 이 노드에 포워딩한다. 이 노드는 또한 로컬 리소스 그래프(601)를 포함하고, 컴포넌트 배치 요청을 다루기 위해 이 로컬 리소스 그래프(601) 내에서 적합한 노드를 검색한다. 이 반복 처리의 수렴을 보장하기 위해, 컴포넌트 배치 요청의 포워딩은 최소 요구 개선에 관한 조건이 받아들여질 수 있다. 특히, 이것이 컴포넌트 배치를 위해 최소 요구 개선(예를 들면, 처리기 용량/대역폭 등의 20% 감소)에 이르는 경우, 컴포넌트 배치 요청이 로컬 리소스 그래프(601) 내의 노드에만 포워딩될 수 있다고 지정될 수 있다.
이와 같이, MC(100)의 복수의 노드들(101)은 중앙집중식 배치 서버의 관련 없이, 네트워크 내에서 애플리케이션 컴포넌트들의 분산된 배치를 수행하는 것이 가능하다. 복수의 노드들(101)은 컴포넌트 배치 메시지들(예를 들면, 하나 이상의 이웃하는 컴퓨팅 디바이스에서 이용가능한 컴퓨팅 리소스들에 관한 정보에 대한 컴포넌트 배치 요청들 및/또는 메시지들)의 교환에 의존한다. 다음에는 기계 자체-학습에 기초하여 분산형 배치 방식을 촉진하기 위한 방법이 기술된다.
상기에 개요된 바와 같이, 배치 알고리즘들(분산형 배치 방식의 일부로서)은 분산된 매체/클라우드 컴퓨팅 시스템(100)의 노드들(101) 상의 가상 기계들(Virtual Machines; VM), 애플리케이션, 또는 애플리케이션들 컴포넌트들의 위치들을 계산하여, 서비스 소프트웨어(VM, 애플리케이션들, 컴포넌트들)의 배치가 리소스 이용(CPU, 메모리, 대역폭 등) 및 이용자에 의해 체험된 서비스 품질에 관해 최적화된다. 예로서, 화상 회의 애플리케이션이 고려된다. 회의의 대부분의 참여자들이 미국에 위치되면, 믹서 애플리케이션 컴포넌트(703)는 바람직하게 미국에 위치되어야 한다. 회의의 고르게 분산된 (위치) 참여자들의 다른 경우에, 공동 믹서 애플리케이션 컴포넌트(703)의 위치는 네트워크 리소스 할당이 최소가 되도록 결정되어야 한다.
전체적으로, 높은 수의 애플리케이션들(및 대응하는 애플리케이션 컴포넌트들)이 MC(100) 내에 배치된다. 분산된 배치 처리들의 결과들은 미래의 애플리케이션 배치 요청들의 배치를 위해 이용될 수 있는 배치 지식을 추출하는데 이용될 수 있다. 특히, 분류자는 특정 서비스(애플리케이션)가 액세스되는 매체 클라우드(100)의 진입 포트들을 식별함으로써, 상이한 서비스 액세스 상황들(회의 애플리케이션들, 방송 애플리케이션들 등)을 구별할 수 있다. (분산형) 배치 알고리즘이 특정 서비스 액세스 상황에 대해 (거의) 최적의 배치를 발견한 경우, 구체적인 서비스 액세스 상황과 함께 배치 결정이 기억될 수 있다. 결과적으로, 그 다음 시간, 분류자가 저장된 액세스 상황과 유사한 액세스 상황을 식별할 때, 기억된 배치 위치가 이용되고 셋업될 수 있다. 이와 같이, 미래의 배치 결정들은 이전 배치 결정들에 의존함으로써 촉진될 수 있다.
통상적으로, MC(100) 상에서 병렬로 이용되는 다수의 다양한 서비스(애플리케이션들)(700)가 존재한다. 이들 서비스들(700)의 각각은 상이한 진입 포트들을 통해 서비스(700) 및 MC(100)에 도달하는 상이한 양의 클라이언트들에 의해 이용될 수 있다. 통상적으로, 액세스 상황의 작은 변동들(예를 들면, (n-1)명의 회의 클라이언트들이 미국에 위치되고 1명이 독일에 위치되는 시나리오와 비교하여, n명의 회의 클라이언트들이 미국에 위치되는 시나리오)은 소프트웨어 컴포넌트들(703)의 변하지 않는 최적의 배치를 유발한다. 기계 학습-기반 분류는 동일한 배치 결정을 이용하여 어떤 액세스 상황이 최적으로 서빙될 수 있는지를 식별하기 위해 적용될 수 있다. 기계 학습 기반 분류는 또한, 동일한 배치 결정을 이용하여 서빙될 수 있는 유사한 액세스 상황들의 소위 (ε)-공간(room)을 규정하는 국부적 초구들(local hyperspheres; 특정 액세스 상황 주변)의 규정/학습을 허용한다. 국부적 초구는 지금까지 알려진 최적의 컴포넌트/소프트웨어 배치를 저장하는 데이터베이스 엔트리와 함께 할당될 수 있다. 최적의 컴포넌트 배치를 포함하는 데이터베이스 엔트리와 초구의 할당은 온라인 학습 절차의 일부이다. MC 리소스 관리가 데이터베이스 엔트리에 따라 배치를 셋업한 후, 분산형 매핑 알고리즘들(상기에 개요된 바와 같이)을 적용함으로써 컴포넌트 배치의 다른 개선이 달성될 수 있다. 개선된 배치 상황이 결정될 수 있는 경우, 제안된 컴포넌트 배치를 포함하는 데이터베이스 엔트리는 개선된 배치로 겹쳐 쓰기되고, 그에 의해 연속하는 온라인 학습 과정을 제공한다.
온라인 학습 과정은 하나의 국부적 초구를 여러 상이한 국부적 초구들로 분리하는 분류자(액세스 상황들을 분류하기 위해 이용됨)를 유발할 수 있다. 이것은, 단일 초구에 의해 분류된 액세스 상황들에 대한 유일한 (전자의) 최상의 배치 상황이 개별 초구들을 이용하여 상이한 배치 솔루션들로 분리되는 경우를 발생시킬 수 있다.
분류는 서비스 유형마다 별도로 수행될 수 있거나, 매체/클라우드 시스템(100) 상에서 실행하는 모든 서비스들에 대한 단일 분류자로 수행될 수 있다. 서비스(또는 애플리케이션) 유형은 액세스 상황의 유형(예를 들면, 다-대-다(화상 회의에 대한 경우일 때), 단-대-다(방송에 대한 경우일 때), 지점-대-지점(지점-대-지점 통신들의 경우일 때))에 기초하여 규정될 수 있다. 대안적으로 또는 부가적으로, 서비스 유형은 구역적 고려상황들(대륙, 국가, 도시)에 기초하여 규정될 수 있다. 대안적으로 또는 부가적으로, 서비스 유형은 렌더링된 실제 서비스(예를 들면, 회의, 방송, 등)에 기초하여 규정될 수 있다. 모든 서비스들에 대한 단일 분류자의 경우, 컴퓨팅 서비스들 사이의 상호작용이 또한 고려될 수 있다. 결과적으로, 국부적 초구들의 수는 상당히 증가할 수 있다.
서비스 액세스 상황 외에도, (서버들 및 싱크들)의 리소스 할당 상황이 분류자에 대한 부가 입력들로서 이용될 수 있다. 예로서, 분류자의 기계 학습(ML)은
Figure pct00002
상이한 클라이언트들로부터의 서비스 액세스 상황들;
Figure pct00003
제공된 (클라우드) 서비스들의 유형 및 그들 액세스 상황;
Figure pct00004
서비스가 액세스되는 진입 및 출구 클라우드 포트들;
Figure pct00005
노드들(101) 및 네트워크 리소스 할당들을 고려할 수 있고, 그에 의해 상이한 특징 투플들이 리소스마다 예상될 수 있다.
학습 단계 동안, ML 분류자는 동일하거나 유사한 배치 상황들을 포함하는 복수의 초구들을 만든다. 또한, ML 분류자는 복수의 초구들에 대한 개별 리소스 배치 결정들을 결정한다.
따라서, 최적의 및 효율적인 애플리케이션 컴포넌트 배치 결정을 가능하게 하기 위해, 기계 자체-학습 시스템이 이용될 수 있다. ML 시스템은 2개의 상이한 단계들에서 동작한다: 학습 단계 및 실행 단계. ML 시스템은 MC(100)의 개별 노드(101) 상에서 실행될 수 있다.
학습 단계 동안, ML 시스템(예를 들면, 특정 노드(101) 상에서 실행)은 특정 배치 상황을 기술하는 특징 벡터를 도출하기 위해, 매체 클라우드 제어 트래픽 메시지들(예를 들면, 리소스들에 관한 배치 요청들 및 메시지들, 및 배치 결정들에 관한 메시지들)을 분석한다. 특징 벡터는 통상적으로, 애플리케이션 그래프의 유형(애플리케이션 컴포넌트들의 별 유형 그래프, 애플리케이션 컴포넌트들의 선형 그래프), 애플리케이션 컴포넌트들의 지리적 분포, 애플리케이션 컴포넌트들 사이의 접속들의 속성들(예를 들면, 대역폭, 지연, 등)과 같은 배치 상황을 기술하는 다양한 차원들을 가진다. 특징 벡터들은 특징 벡터들의 상이한 차원들에 의해 형성되는 특징 공간으로 임베딩될 수 있다. 특정 애플리케이션 배치 요청의 특징 벡터는 특정 컴포넌트 매핑 및 대응하는 배치 상세들과 함께 특징 벡터 데이터베이스에 저장된다. 학습 단계 동안, 시스템은 컴포넌트 배치들의 분류에 중요한 특징 벡터 차원들 및 특성들과, 쓸모없어서 누락될 수 있는 특징 벡터 차원들 및 특성들을 구별하는 것을 학습한다. 이러한 특징 공간 차원들의 감소는 학습 과정의 효율성 및 매체 클라우드 분류 결과들의 품질을 증가시킨다.
학습 단계의 결과로서, 매체 클라우드 애플리케이션 액세스 상황들의 클러스터들(예를 들면, 콘텐트 배포 네트워크(CDN)-형, 화상회의-형 등)의 분류를 반영하는 기하학적 임베딩이 획득된다. 즉, 학습 단계는 배치 결정들과 함께, 통상적인 애플리케이션 액세스 상황들(그들 특징 벡터들을 통해 식별된)에 대한 복수의 클러스트들을 제공한다.
실행 단계 동안, 학습 단계 동안 이미 알려진 매체 클라우드 애플리케이션들에 대해 획득된 매핑 결과들은 새로운 및/또는 알려지지 않은 매체 클라우드 애플리케이션 배치 요청을 위한 애플리케이션 컴포넌트 매핑을 제안하도록 활용된다.
이를 위해, 학습 단계에 이용된 것과 동일한 방식을 이용하여 애플리케이션 배치 요청으로부터 새로운 애플리케이션 배치 요청에 대한 특징 벡터가 추출된다. 특히, 제어 메시지들은 애플리케이션 배치 요청의 특징 벡터를 결정하기 위해 분석될 수 있다. 새로운 애플리케이션 배치 요청에 대해 추출된 특징 벡터는 그 후에 매체 클라우드 특징 공간으로 임베딩된다.
그 후에, 기하학적 고려사항에 의해, 특징 공간 및 대응하는 애플리케이션 분류에서 이전에 학습된 매체 클라우드 배치의 가장 근접한 표현이 획득된다. 결과적으로, 매체 학습 단계 동안 애플리케이션 매핑 정보로 채워진 트레이닝된 MC 배치 데이터베이스로부터 이 특징 벡터에 대한 대응하는 배치 상세들을 리콜하는 것이 가능하다.
결과적으로, 매체 클라우드 매핑에 대한 재-배치 제안이 고속 및 효율적인 방식으로 기계 학습 처리로부터 이전 매체 클라우드 애플리케이션 매핑 체험에 기초하여 획득된다. 결과적으로, 애플리케이션 배치 요청들은 고속 및 효율적인 방식으로 적합한 MC 노드들(101)로 향해질 수 있다.
기하학적 고려사항들에 의해 애플리케이션 배치 상황을 기술하는 특징 벡터의 식별은 예를 들면 특징 공간의 적합한 메트릭을 규정함으로써 및 메트릭의 고려사항 하에 상이한 특징 벡터들 사이의 거리를 계산함으로써 가능하다. 이 메트릭은 상이한 벡터 차원들에 대한 상이한 가중들을 이용할 수 있고, 그에 의해 학습 및 실행 단계 동안 상이한 차원들을 강조한다.
매체 클라우드 특징 벡터들은 매체 클라우드 인프라스트럭처에 대한 애플리케이션 및 그 매핑을 특징짓는 다음의 예시적 정보를 포함할 수 있다:
Figure pct00006
애플리케이션 그래프 내의 관계(예를 들면, 별 유형 그래프, 선형 그래프);
Figure pct00007
애플리케이션 컴포넌트들의 리소스들로의 할당;
Figure pct00008
애플리케이션 컴포넌트 리소스 소비;
Figure pct00009
애플리케이션 컴포넌트들의 지상-위치(geo-location);
Figure pct00010
클라이언트들의 진입/출구 지점들(디바이스들)(싱크들(702), 소스들(701)); 및/또는
Figure pct00011
접속 속성들(대역폭, 지연, 손실률,...).
도 5는 가능한 애플리케이션 배치 상황들의 예시적 벡터 공간(200)을 도시한다. 특정 애플리케이션 배치 상황은 통상적으로 특정 애플리케이션 배치 요청에 링크된다. 예시적 벡터 공간(200)은 3개의 벡터 차원들(201), q, v, w를 포함하고, 각각의 벡터 차원은 가능한 애플리케이션 배치 상황들의 대응하는 속성을 표현한다. 상기에 표시된 바와 같이, 예시적 속성들(또는 벡터 차원들)은 애플리케이션 그래프(즉, 애플리케이션 컴포넌트들(703)의 관련 배열, 예를 들면 별 유형 배열로 또는 성형 배열로), 상이한 애플리케이션 컴포넌트들(701)의 리소스 소비, 애플리케이션(700)에 대한 싱크들(702)/소스들(701)의 위치, 등에 관련된다. 따라서, 벡터 공간(200)의 지점(또는 특징 벡터)(203)은 특정 애플리케이션 배치 상황(특징 벡터의 상이한 차원들의 값들을 통해)을 기술한다.
벡터 공간(200)에서 애플리케이션 배치 상황을 표현하기 위해, 속성(또는 벡터 차원)(201)의 값들은 벡터 공간(200)에서 표현될 수 있는 수치 값과 연관될 수 있다. 예로서, 애플리케이션(700)에 대한 상이한 싱크들(702)/소스들(701)의 지상-위치들은 2개의 벡터 차원들(201)(하나는 위도 각도에 대한 것이고 다른 하나는 경도 각도에 대한 것)에 대응할 수 있다. 통상적인 벡터 공간(200)은 수백 개의 차원들(201)을 가질 수 있음을 유념해야 한다.
학습 단계 동안, 다양한 배치 요청들은 MC(100)에 의해 분산 방식으로 다루어진다. 배치 요청에 관련된 노드(101)는 특정 배치 요청에 관한 노드들(101) 사이에서 교환되는 메시지들을 관찰할 수 있다. 결과적으로, 노드(101)는 메시지들로부터 배치 요청에 관한 정보를 추출할 수 있고, 그에 의해 특정 애플리케이션 배치 요청을 기술하는 특징 벡터(203)를 덧붙인다. 또한, 노드(101)는 최종 배치 상세들(205)(즉, MC(100) 내에서 애플리케이션 컴포넌트들이 배치된 장소의 정보)를 교환된 메시지들로부터 학습한다. 특징 벡터(203) 및 대응하는 배치 상세들(205)은 노드(101)의 데이터베이스(204)에 저장될 수 있다.
결과적으로, 노드(101)는 기계 학습을 위해 트레이닝 데이터로서 이용될 수 있는 복수의 특징 벡터들(203) 및 대응하는 배치 상세들(205)을 수집한다. 특히, 분류자는 특징 벡터들(203)의 복수의 클러스터들(202)을 결정하기 위해 이용될 수 있고, 클러스터(202) 내의 특징 벡터들(203)은 특징 공간(200)에서 비교적 낮은 거리를 가진다. 즉, 클러스터(202)의 배치 상황들은 서로 유사하다. 도시된 예에서, 분류자는 유럽에서의 참여자들과의 화상 회의(VC) 애플리케이션 요청들에 대한 상이한 클러스트(202), 세계 도처에 분산된 참여자들과의 VC 애플리케이션 요청들에 대한 상이한 클러스터(202), 2명의 참여자들과의 VC 애플리케이션 요청들에 대한 상이한 클러스터(202), 및 방송된 TV 스트림의 뷰포인트 렌더링과 같은 콘텐트 배포 네트워크(CDN) 애플리케이션 요청들에 대한 상이한 클러스터(202)를 결정한다. 분류자는 각각의 클러스터(202)에 대한 평균 및/또는 대표 배치 상세들(205)을 결정하도록 적응된다. 이들 평균 및/또는 대표 배치 상세들(205)은 새로운 배치 요청의 배치를 촉진하기 위해, 노드(101)에 의해 이용될 수 있다. 특히, 노드(101)는 새로운 배치 요청의 특징 벡터(203)를 결정할 수 있다. 또한, 노드(101)는 배치 요청을 다루기 위해, 특징 벡터(203)가 클러스터(202) 내(또는 근접한)에 있고 그 후에 클러스터(202)의 평균 및/또는 대표 배치 상세들(205)을 이용하는지를 결정할 수 있다.
도 6은 예시적 학습 방법(400)의 흐름도를 도시한다. 노드(101)는 복수의 애플리케이션 배치 요청들의 특징 벡터들을 덧붙이기 위해, MC 제어 트래픽을 모니터링한다(단계(401)). 또한, 애플리케이션 배치 요청들에 관한 매핑들(즉, 배치 상세들)은 제어 메시지들로부터 추출되고(단계(402)) 데이터베이스에 저장된다(단계(404)). 추출된 특징 벡터들 및 대응하는 매핑들은 학습 모델의 트레이닝 데이터로서 이용된다(단계(403)). 예시적 학습 모델은 지원 벡터 기계(support vector machine; SVM) 방식을 이용한다. 학습 모델은 복수의 애플리케이션 배치 요청들을 클러스터링하기 위해 분류자를 적용할 수 있다. 이러한 클러스터링의 결과로서, 특징 벡터(203)의 특정 차원들은 배치를 위해 중요할 수 있고, 특징 벡터(203)의 다른 차원들은 배치 결정에 영향을 거의 주지 않을 수 있다고 관찰될 수 있다(단계(406)). 후자의 차원들은 특징 벡터(203)로부터 제거될 수 있고, 그에 의해 기계 학습 방식의 및 배치 처리의 계산 복잡성을 감소시킨다(단계(406)). 최종적으로, 클러스터들(202)의 대표 특징 벡터들(203)은 특징 공간(200)에 임베딩될 수 있다(단계(407)). 대표 특징 벡터(203)는 특징 공간(200) 내의 초구를 규정할 수 있고, 초구는, 대표 특징 벡터(203)에 의해 기술된 배치 상황과 유사하고, 대표 특징 벡터(203)를 위해 저장된 배치 상세들(205)에 따라 다루어질 수 있는 배치 상황들을 포함한다.
도 7은 노드(101)의 데이터베이스(204) 내에 저장된 배치 정보를 이용하는(단계(501)) 예시적 배치 방법(500)의 흐름도를 도시한다. 노드(101)는 새로운 배치 요청에 관한 제어 메시지들을 관찰하고 특징 벡터(203)를 덧붙이기 위해 추출된 정보를 이용하고(단계(502)), 이 정보는 특징 공간(200)에 임베딩된다(단계(503)). 후속적으로, 가장 근접한 대표 특징 벡터(203)가 데이터베이스(204)로부터 결정되고(단계(504)), 그에 의해 새로운 배치 요청에 적합할 수 있는 배치 상세들(205)을 결정한다(단계(505)). 새로운 애플리케이션 요청은 노드(101)의 데이터베이스(204)로부터 취해진 배치 상세들(205)에 따라 노드(101)에 의해 다루어질 수 있다. 후속적으로, 배치는 본 문서에 기술된 분산형 배치 방식을 이용하여 개선될 수 있다(단계(506)). 업데이트된 배치 상세들 및 오리지널 특징 벡터(203)는 학습 방법(400)에서 다른 트레이닝 데이터로서 이용될 수 있음을 유념해야 한다.
본 문서에서, 클라우드 컴퓨팅을 위한 네트워크 및 대응하는 컴퓨팅 디바이스들(노드들)에 대한 아키텍처가 기술되었다. 기술된 아키텍처는 분산형 애플리케이션 컴포넌트 배치 방식의 구현을 허용하고, 이것은 애플리케이션들의 컴포넌트들이 컴퓨팅 클라우드 내의 적합한 노드들에 배치되도록 허용한다. 또한, 기계 학습 기술은, 유사한 상황들에서 고속 배치들로부터 획득되는 지식이 새로운 애플리케이션을 위한 최적의 매핑을 신속하게 찾기 위해 이용될 수 있기 때문에, 애플리케이션 컴포넌트 배치 방식을 더욱 효율적이게 하기 위해 이용된다. 기술된 아키텍처 및 방법은 증가하는 수요들에 스케일링 가능하고 단일 장애 지점들을 드러내지 않는다. 또한, 기술된 아키텍처는 클라우드 컴퓨팅을 이용할 때 통신 네트워크 내에서 요구되는 대역폭 리소스들의 감소를 가능하게 한다.
기술 및 도면들은 제안된 방법들 및 시스템들의 원리들을 기술하기 위한 것일뿐임을 유념해야 한다. 따라서 당업자들은 본 명세서에 명시적으로 기술되거나 도시되지 않았지만, 본 발명의 원리들을 구현하고 그 사상 및 범위 내에 포함되는 다양한 배열들을 고안할 수 있음을 알 것이다. 또한, 본 명세서에서 인용된 모든 예들은, 주로, 제안된 방법들 및 시스템들의 원리들 및 본 발명자들에 의해 본 기술 분야를 발전시키는데 기여한 개념들을 이해하는데 있어서 판독자를 돕기 위해 단지 교육적인 목적으로 분명하게 의도되고, 이러한 구체적으로 인용된 예들 및 조건들에 대한 제한이 없는 것으로서 해석되어야 한다. 또한, 본 발명의 원리들, 양태들, 및 실시예들 뿐만 아니라, 그 특정 예들을 인용하는 본 명세서의 모든 서술들은 그 등가들을 포함하도록 의도된다.
또한, 다양한 상술된 방법들의 단계들 및 기술된 시스템들의 컴포넌트들이 프로그래밍된 컴퓨터들에 의해 수행될 수 있음을 유념해야 한다. 본 명세서에서, 일부 실시예들은 또한 프로그램 저장 디바이스들, 예를 들면 디지털 데이터 저장 매체들을 커버하도록 의도되며, 이들 저장 매체들은 기계 또는 컴퓨터 판독가능하고 기계-실행가능한 또는 컴퓨터-실행가능한 지시들의 프로그램들을 인코딩하고, 상기 지시들은 상기 상술된 방법들의 일부 또는 모든 단계들을 수행한다. 프로그램 저장 디바이스들은 예를 들면 디지털 메모리들, 자기 디스크들 및 자기 테이프들, 하드 드라이브들과 같은 자기 저장 매체들, 또는 광학적으로 판독가능한 디지털 데이터 저장 매체들일 수 있다. 실시예들은 또한 상술된 방법들의 상기 단계들을 수행하도록 프로그래밍된 컴퓨터들을 커버하도록 의도된다.
또한, 본 특허 문서에 기술된 다양한 요소들의 기능들은 전용 하드웨어 뿐만 아니라, 적합한 소프트웨어와 연관되는 소프트웨어를 실행시킬 수 있는 하드웨어의 이용을 통해 제공될 수 있음을 유념해야 한다. 처리기에 의해 제공될 때, 기능들은 단일 전용 처리기에 의해, 단일 공유된 처리기에 의해, 또는 일부가 공유될 수 있는 복수의 개별 처리기들에 의해 제공될 수 있다. 또한, 용어 "처리기(processor)" 또는 "제어기(controller)"의 명시적 이용은 소프트웨어를 실행시킬 수 있는 하드웨어를 배타적으로 나타내도록 해석되어서는 안되고, 제한하지 않고 디지털 신호 처리기(digital signal processor; DSP) 하드웨어, 네트워크 처리기, 주문형 반도체(application specific integrated circuit; ASIC), 필드 프로그래밍가능한 게이트 어레이(field programmable gate array; FPGA), 소프트웨어를 저장하기 위한 판독 전용 메모리(ROM), 랜덤 액세스 메모리(random access memory; RAM), 및 비휘발성 메모리를 포함한다. 통상적인 및/또는 종래의 다른 하드웨어가 또한 포함될 수 있다.
최종적으로, 본 명세서의 임의의 구성도들은 본 발명의 원리들을 구현하는 예시적인 회로의 개념적 뷰들을 표현함을 유념해야 한다. 유사하게, 임의의 흐름도들, 흐름 도면들, 상태 전이 도면들, 유사 코드(pseudo code) 등은 컴퓨터 판독가능한 매체에서 실질적으로 표현되고, 컴퓨터 또는 처리기가 명시적으로 도시되는지에 상관없이 컴퓨터 또는 처리기에 의해 그렇게 실행될 수 있는 다양한 처리들을 표현한다.
100: 매체 클라우드 101: 컴퓨팅 디바이스들
102: 복수의 클라우드 영역들 103: 통신 네트워크
600: 테이블
601: 로컬 리소스 그래프 602: 토폴로지 리스트

Claims (11)

  1. 컴퓨팅 디바이스(101)에 있어서:
    - 대응하는 복수의 애플리케이션들(700)의 하나 이상의 컴포넌트들(703)에 대한 복수의 컴포넌트 배치 요청들을 수신하고;
    - 상기 복수의 컴포넌트 배치 요청들로부터 복수의 특징 벡터들(203)을 각각 결정하는 것으로서, 각각의 특징 벡터(203)는 각각의 컴포넌트 배치 요청의 상이한 속성들을 기술하는 벡터 차원들을 포함하는, 상기 복수의 특징 벡터들(203)을 각각 결정하고;
    - 상기 복수의 컴포넌트 배치 요청들에 관한 복수의 배치 결정들(205)을 각각 결정하는 것으로서; 각각의 배치 결정(205)은 각각의 애플리케이션(700)의 상기 하나 이상의 컴포넌트들(703)이 배치된 하나 이상의 실행 컴퓨팅 디바이스들(101)의 표시를 포함하는, 상기 복수의 배치 결정들(205)을 각각 결정하고;
    - 상기 복수의 특징 벡터들(203)을 클러스터링하고, 그에 의해 하나 이상의 클러스터들(202)을 산출하는 것으로서, 각각의 클러스터(202)는 디폴트 컴포넌트 배치 요청의 상이한 속성들을 기술하는 디폴트 특징 벡터(203)를 포함하는, 하나 이상의 클러스터들(202)을 산출하고;
    - 상기 하나 이상의 클러스터들 각각에 대한 디폴트 배치 결정(205)을 결정하고;
    - 상기 하나 이상의 디폴트 특징 벡터들 및 상기 각각의 하나 이상의 디폴트 배치 결정들(205)을 상기 컴퓨팅 디바이스(101)의 데이터베이스(204)에 저장하고;
    - 새로운 애플리케이션(700)의 하나 이상의 컴포넌트들(703)에 대한 새로운 컴포넌트 배치 요청을 수신하고;
    - 상기 새로운 컴포넌트 배치 요청으로부터 새로운 특징 벡터(203)를 결정하고;
    - 상기 하나 이상의 디폴트 특징 벡터들(203)에 기초하여 상기 새로운 애플리케이션(700)의 하나 이상의 컴포넌트들(703)을 배치할 장소를 결정하도록 적응되는, 컴퓨팅 디바이스.
  2. 제 1 항에 있어서,
    상기 클러스터링은 기계 학습 알고리즘, 특히 지원 벡터 기계 알고리즘을 이용하여 수행되는, 컴퓨팅 디바이스.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 컴퓨팅 디바이스(101)는,
    - 상기 복수의 특징 벡터들(203)의 제 1 벡터 차원이 상관 임계치보다 작은 대응하는 배치 결정들과의 상관을 가진다고 결정하고;
    - 상기 복수의 특징 벡터들(203)로부터 상기 제 1 벡터 차원을 제거하도록 적응되는, 컴퓨팅 디바이스.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 컴퓨팅 디바이스(101)는,
    - 다른 컴퓨팅 디바이스들(101)로부터 제어 메시지들을 수신하고;
    - 상기 수신된 제어 메시지들에 기초하여 상기 복수의 배치 결정들(205)을 결정하도록 적응되는, 컴퓨팅 디바이스.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 벡터 차원들은:
    - 애플리케이션 컴포넌트(703)에 의해 처리된 데이터의 싱크(702) 및/또는 소스(701)의 위치;
    - 애플리케이션(700)에 의해 처리된 싱크들(703) 및/또는 소스들(701)의 수;
    - 애플리케이션 컴포넌트(703)에 의해 요구된 컴퓨팅 리소스들로서, 처리기 리소스들, 메모리 리소스들, 대역폭 리소스들 중 하나 이상인, 상기 컴퓨팅 리소스들;
    - 애플리케이션 컴포넌트(703)에 의해 요구된 접속 속성들로서, 대역폭, 지연(latency), 최대 비트 에러 레이트 중 하나 이상인, 상기 접속 속성들;
    - 애플리케이션(700)의 상기 하나 이상의 컴포넌트들(703)의 그래프 구조로서, 상기 애플리케이션(700)의 하나 이상의 컴포넌트들(703)이 어떻게 상호링크되는지를 나타내는, 상기 그래프 구조 중 하나 이상을 나타내는, 컴퓨팅 디바이스.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 컴퓨팅 디바이스(101)는,
    - 상기 하나 이상의 디폴트 특징 벡터들(203)로부터 상기 새로운 특징 벡터(203)의 최소 거리를 결정하고;
    - 상기 최소 거리가 최소 임계치보다 낮은 경우, 상기 새로운 특징 벡터(203)로부터의 상기 최소 거리에서 상기 디폴트 특징 벡터(203)에 대응하는 상기 디폴트 배치 결정(205)에 기초하여 상기 새로운 애플리케이션(700)의 하나 이상의 컴포넌트들(703)을 배치할 장소를 결정하도록 적응되는, 컴퓨팅 디바이스.
  7. 제 6 항에 있어서,
    상기 최소 거리는 상기 새로운 특징 벡터(203) 및 상기 하나 이상의 디폴트 특징 벡터들(203) 각각의 벡터 차원들의 가중된 차에 기초하여 결정되는, 컴퓨팅 디바이스.
  8. 제 6 항 또는 제 7 항에 있어서,
    상기 컴퓨팅 디바이스(101)는,
    - 상기 컴포넌트 배치 요청을 상기 디폴트 배치 결정(205) 내에 표시된 실행 컴퓨팅 디바이스(101)에 넘겨주도록 적응되는, 컴퓨팅 디바이스.
  9. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
    - 상기 컴퓨팅 디바이스(101)는 제 1 토폴로지 영역(102)에 위치되고;
    - 상기 컴퓨팅 디바이스(101)는 상기 제 1 토폴로지 영역(102) 이외의 복수의 토폴로지 영역들(102)에 위치된 복수의 기준 컴퓨팅 디바이스들을 나타내는 토폴로지 리스트(602)를 각각 포함하고;
    - 상기 컴퓨팅 디바이스(101)는 상기 컴퓨팅 디바이스(101)의 및 상기 컴퓨팅 디바이스(101)의 이웃에 위치된 적어도 하나의 이웃 컴퓨팅 디바이스(101)의 이용가능한 컴퓨팅 리소스들을 나타내는 로컬 리소스 리스트(601)를 포함하고;
    - 상기 최소 거리가 최소 임계치보다 크다고 결정할 때, 상기 컴퓨팅 디바이스(101)는,
    - 상기 토폴로지 리스트(602)에 기초하여, 상기 새로운 애플리케이션(700)의 상기 하나 이상의 컴포넌트들(703)이 상기 제 1 토폴로지 영역(102)에 또는 상기 제 1 토폴로지 영역(102) 이외의 상기 복수의 토폴로지 영역들(102) 중 하나에 배치되어야 하는지를 결정하고;
    - 상기 새로운 애플리케이션의 하나 이상의 컴포넌트들(703)이 상기 제 1 토폴로지 영역 이외의 상기 복수의 토폴로지 영역들 중 하나에 배치되어야 한다고 결정되는 경우, 상기 제 1 토폴로지 영역 이외의 상기 복수의 토폴로지 영역들 중 상기 각각의 토폴로지 영역의 기준 컴퓨팅 디바이스에 상기 컴포넌트 배치 요청을 넘겨주고;
    - 상기 새로운 애플리케이션(700)의 상기 하나 이상의 컴포넌트들(703)이 상기 제 1 토폴로지 영역(102)에 배치되어야 한다고 결정되는 경우, 상기 로컬 리소스 리스트(601)로부터 상기 새로운 애플리케이션의 하나 이상의 컴포넌트들을 실행하기 위한 컴퓨팅 리소스들을 가진 선택된 컴퓨팅 디바이스를 식별하도록 적응되는, 컴퓨팅 디바이스.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    - 상기 컴퓨팅 디바이스(101)는 지점-대-다지점, 지점-대-지점 또는 다지점-대-다지점 애플리케이션(700)의 디폴트 애플리케이션 서버이고;
    - 상기 디폴트 애플리케이션 서버는 상기 지점-대-다지점, 상기 지점-대-지점 또는 상기 다지점-대-다지점 애플리케이션(700)을 셋업하기 위한 복수의 컴퓨팅 디바이스들(101)의 클라우드(100)에서의 액세스의 디폴트 지점인, 컴퓨팅 디바이스.
  11. 새로운 애플리케이션(700)의 하나 이상의 컴포넌트들(703)을 매체 클라우드(100)의 컴퓨팅 디바이스(101) 상에 배치하기 위한 방법에 있어서:
    - 대응하는 복수의 애플리케이션들(700)의 하나 이상의 컴포넌트들(703)에 대한 복수의 컴포넌트 배치 요청들을 수신하는 단계(401);
    - 상기 복수의 컴포넌트 배치 요청들로부터 복수의 특징 벡터들(203)을 각각 결정하는 단계(402)로서, 각각의 특징 벡터(203)는 각각의 컴포넌트 배치 요청의 상이한 속성들을 기술하는 벡터 차원들을 포함하는, 상기 복수의 특징 벡터들(203)을 각각 결정하는 단계(402);
    - 상기 복수의 컴포넌트 배치 요청들에 관한 복수의 배치 결정들(205)을 각각 결정하는 단계(402)로서, 각각의 배치 결정(205)은 각각의 애플리케이션(700)의 상기 하나 이상의 컴포넌트들(703)이 배치된 하나 이상의 실행 컴퓨팅 디바이스들(101)의 표시를 포함하는, 상기 복수의 배치 결정들(205)을 각각 결정하는 단계(402);
    - 상기 복수의 특징 벡터들(203)을 클러스터링하고, 그에 의해 하나 이상의 클러스터들(202)을 산출하는 단계(403)로서, 각각의 클러스터(202)는 각각의 디폴트 컴포넌트 배치 요청의 상이한 속성들을 기술하는 디폴트 특징 벡터(203)에 의해 표현되는, 상기 하나 이상의 클러스터들(202)을 산출하는 단계(403);
    - 상기 하나 이상의 클러스터들 각각에 대해, 디폴트 특징 벡터(203)에 대응하는 디폴트 배치 결정(205)을 결정하는 단계(403);
    - 상기 하나 이상의 디폴트 특징 벡터들 및 상기 각각의 하나 이상의 디폴트 배치 결정들(205)을 상기 컴퓨팅 디바이스(101)의 데이터베이스(204)에 저장하는 단계(404); 및
    - 상기 새로운 애플리케이션의 하나 이상의 컴포넌트들(703)을 배치하기 위해 상기 데이터베이스(204)에 저장된 상기 하나 이상의 디폴트 특징 벡터들 및 상기 각각의 하나 이상의 디폴트 배치 결정들(205)을 이용하는 단계(500)를 포함하고, 상기 이용하는 단계(500)는:
    - 새로운 애플리케이션(700)의 하나 이상의 컴포넌트들(703)에 대한 새로운 컴포넌트 배치 요청을 수신하는 단계;
    - 상기 새로운 컴포넌트 배치 요청으로부터 새로운 특징 벡터(203)를 결정하는 단계; 및
    - 상기 하나 이상의 디폴트 특징 벡터들(203)에 기초하여 상기 새로운 애플리케이션(700)의 하나 이상의 컴포넌트들(703)을 배치할 장소를 결정하는 단계를 포함하는, 새로운 애플리케이션의 하나 이상의 컴포넌트들을 배치하기 위한 방법.
KR1020147025155A 2012-02-15 2013-01-28 기계 학습을 이용하여 매체 컴포넌트들을 매핑하기 위한 방법 KR101595763B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP12305171.6A EP2629247B1 (en) 2012-02-15 2012-02-15 Method for mapping media components employing machine learning
EP12305171.6 2012-02-15
PCT/EP2013/051563 WO2013120686A1 (en) 2012-02-15 2013-01-28 Method for mapping media components employing machine learning

Publications (2)

Publication Number Publication Date
KR20140129137A true KR20140129137A (ko) 2014-11-06
KR101595763B1 KR101595763B1 (ko) 2016-02-19

Family

ID=47605553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147025155A KR101595763B1 (ko) 2012-02-15 2013-01-28 기계 학습을 이용하여 매체 컴포넌트들을 매핑하기 위한 방법

Country Status (7)

Country Link
US (1) US9684706B2 (ko)
EP (1) EP2629247B1 (ko)
JP (1) JP5921724B2 (ko)
KR (1) KR101595763B1 (ko)
CN (1) CN104115165B (ko)
IN (1) IN2014DN07099A (ko)
WO (1) WO2013120686A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210008150A (ko) * 2015-10-28 2021-01-20 구글 엘엘씨 연산 그래프 수정
WO2021060609A1 (ko) * 2019-09-25 2021-04-01 전자부품연구원 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 모델 제공 방법

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9083757B2 (en) * 2012-11-21 2015-07-14 Telefonaktiebolaget L M Ericsson LLP Multi-objective server placement determination
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US9654355B2 (en) 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with adaptation services
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US10250451B1 (en) * 2014-01-13 2019-04-02 Cazena, Inc. Intelligent analytic cloud provisioning
EP3161733A1 (en) * 2014-06-30 2017-05-03 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US9742690B2 (en) * 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
US9747636B2 (en) 2014-12-08 2017-08-29 Bank Of America Corporation Enhancing information security using an information passport dashboard
US11336519B1 (en) * 2015-03-10 2022-05-17 Amazon Technologies, Inc. Evaluating placement configurations for distributed resource placement
CN104834561B (zh) * 2015-04-29 2018-01-19 华为技术有限公司 一种数据处理方法及装置
US10057187B1 (en) * 2015-05-27 2018-08-21 Amazon Technologies, Inc. Dynamic resource creation to connect client resources in a distributed system
CN105868435B (zh) * 2015-09-09 2019-02-15 辽宁邮电规划设计院有限公司 一种基于线性相关性分析实现光网络建设的高效控制方法
US9998550B2 (en) * 2015-09-24 2018-06-12 International Business Machines Corporation Network based service composition with variable conditions
US11775850B2 (en) 2016-01-27 2023-10-03 Microsoft Technology Licensing, Llc Artificial intelligence engine having various algorithms to build different concepts contained within a same AI model
US11868896B2 (en) 2016-01-27 2024-01-09 Microsoft Technology Licensing, Llc Interface for working with simulations on premises
US11841789B2 (en) 2016-01-27 2023-12-12 Microsoft Technology Licensing, Llc Visual aids for debugging
US10664766B2 (en) 2016-01-27 2020-05-26 Bonsai AI, Inc. Graphical user interface to an artificial intelligence engine utilized to generate one or more trained artificial intelligence models
US11120299B2 (en) 2016-01-27 2021-09-14 Microsoft Technology Licensing, Llc Installation and operation of different processes of an AI engine adapted to different configurations of hardware located on-premises and in hybrid environments
US20170264501A1 (en) * 2016-03-14 2017-09-14 Catalina Labs, Inc. System and method for generating advice for improving internet and wifi performance in a network using machine-learning techniques
JP6664812B2 (ja) * 2016-05-10 2020-03-13 国立研究開発法人情報通信研究機構 仮想資源自動選択システム及び方法
US10412390B2 (en) * 2016-07-12 2019-09-10 Mediatek Inc. Video processing system using low-cost video encoding/decoding architecture
CN107808687B (zh) * 2016-09-08 2021-01-29 京东方科技集团股份有限公司 医疗数据获取方法、处理方法、集群处理系统及方法
US10515095B2 (en) 2016-10-05 2019-12-24 International Business Machines Corporation Detecting clusters and relationships in large data sets
US10445080B2 (en) * 2017-01-06 2019-10-15 Wipro Limited Methods for adaptive placement of applications and devices thereof
US10977397B2 (en) 2017-03-10 2021-04-13 Altair Engineering, Inc. Optimization of prototype and machine design within a 3D fluid modeling environment
US10409950B2 (en) 2017-03-10 2019-09-10 General Electric Company Systems and methods for utilizing a 3D CAD point-cloud to automatically create a fluid model
US10803211B2 (en) * 2017-03-10 2020-10-13 General Electric Company Multiple fluid model tool for interdisciplinary fluid modeling
US10867085B2 (en) 2017-03-10 2020-12-15 General Electric Company Systems and methods for overlaying and integrating computer aided design (CAD) drawings with fluid models
US11538591B2 (en) 2017-03-10 2022-12-27 Altair Engineering, Inc. Training and refining fluid models using disparate and aggregated machine data
JP6882673B2 (ja) 2017-06-02 2021-06-02 富士通株式会社 通信経路管理プログラム、通信経路管理方法、および通信経路管理装置
WO2018236674A1 (en) * 2017-06-23 2018-12-27 Bonsai Al, Inc. HIERARCHICAL DECOMPOSITION DEEPENING REINFORCEMENT LEARNING FOR A MODEL OF ARTIFICIAL INTELLIGENCE
CN109214519B (zh) * 2017-07-07 2022-07-01 阿里巴巴集团控股有限公司 数据处理系统、方法和设备
KR101857922B1 (ko) * 2017-10-19 2018-05-15 현승민 산업 자동화에서의 데이터 수집 처리를 위한 동적 아키텍처 시스템
KR102535411B1 (ko) 2017-11-16 2023-05-23 삼성전자주식회사 메트릭 학습 기반의 데이터 분류와 관련된 장치 및 그 방법
US10798399B1 (en) * 2017-12-11 2020-10-06 Amazon Technologies, Inc. Adaptive video compression
US10901804B2 (en) 2017-12-15 2021-01-26 Fujitsu Limited Apparatus and method to select services for executing a user program based on a code pattern included therein
US10776173B1 (en) 2018-04-30 2020-09-15 Amazon Technologies, Inc. Local placement of resource instances in a distributed system
NO344692B1 (en) * 2018-06-27 2020-03-09 Pexip AS Automatic deployment of distributed video conference system
CA3108301C (en) * 2018-08-01 2021-09-07 Centurylink Intellectual Property Llc Machine learning for quality of experience optimization
CN109740143B (zh) * 2018-11-28 2022-08-23 平安科技(深圳)有限公司 基于机器学习的句子距离映射方法、装置和计算机设备
US11423328B2 (en) 2018-12-31 2022-08-23 Hughes Network Systems, Llc Determining availability of network service
US11184794B2 (en) * 2019-05-22 2021-11-23 Microsoft Technology Licensing, Llc Systems and methods for distribution of application logic in digital networks
CN110933178B (zh) * 2019-12-09 2022-02-01 聚好看科技股份有限公司 调整集群系统内的节点配置的方法及服务器
CN111176564B (zh) 2019-12-25 2024-02-27 三星(中国)半导体有限公司 确定ssd内数据摆放策略的方法及装置
US11557221B2 (en) 2020-04-01 2023-01-17 International Business Machines Corporation Intelligent cabling and connection instruction refinement
KR20220062632A (ko) * 2020-04-07 2022-05-17 텐센트 아메리카 엘엘씨 클라우드 서비스를 위한 태스크 근접성
US11297121B2 (en) * 2020-04-07 2022-04-05 Tencent America LLC Split rendering using network based media processing workflow
US20210320986A1 (en) * 2020-04-07 2021-10-14 Tencent America LLC Task proximity for cloud services
EP4075733A1 (en) * 2021-04-14 2022-10-19 Robert Bosch GmbH Method and apparatus for radio access network planning in a production environment
CN114339772B (zh) * 2021-11-19 2023-04-07 煤炭科学技术研究院有限公司 一种资源配置方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012005611A1 (en) * 2010-07-08 2012-01-12 Greenbutton Limited A method for estimating job run time

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2187833C (en) 1995-12-13 2002-08-27 Paul Joseph Guarneri System and method for a scalable and reliable transmission of electronic software distribution
US5886991A (en) 1995-12-13 1999-03-23 Lucent Technologies Inc. System and method for quickly distributing program updates in a distributed architecture processing system
US5631907A (en) 1995-12-13 1997-05-20 Lucent Technologies Inc. Reliable broadcast protocol structure for electronic software distribution
US5724345A (en) 1995-12-13 1998-03-03 Lucent Technologies Inc. System and method for a scalable and reliable transmission of electronic software distribution
US7113986B2 (en) * 2000-07-14 2006-09-26 Business Signatures Corporation System and method for modeling information system capacity and accepting sessions in an information system
JP3944176B2 (ja) 2004-02-20 2007-07-11 株式会社東芝 探索要求送信装置およびプログラム
JP4652741B2 (ja) 2004-08-02 2011-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 異常検出装置、異常検出方法、異常検出プログラム、及び記録媒体
US7689645B2 (en) 2005-03-24 2010-03-30 Fuji Xerox Co., Ltd. Systems and methods for brokering services
US20070168548A1 (en) 2006-01-19 2007-07-19 International Business Machines Corporation Method and system for performing multi-cluster application-specific routing
US20070300239A1 (en) * 2006-06-23 2007-12-27 International Business Machines Corporation Dynamic application instance placement in data center environments
JP2009134590A (ja) 2007-11-30 2009-06-18 Advanced Telecommunication Research Institute International 行動識別システム、行動識別方法、最適センサ集合決定方法および最適パラメータ決定方法。
JP2009265876A (ja) 2008-04-24 2009-11-12 Sony Corp 制御装置、制御方法、制御方法のプログラム及び制御方法のプログラムを記録した記録媒体
JP5245852B2 (ja) 2009-01-17 2013-07-24 日本電気株式会社 サーバ処理分散装置、サーバ処理分散方法及びサーバ処理分散プログラム
US8479181B2 (en) 2010-02-01 2013-07-02 International Business Machines Corporation Interactive capacity planning
CN102012808B (zh) * 2010-11-10 2013-06-19 上海光芒科技有限公司 云计算环境下的基于soa的可扩展的分布式架构
CN102012936B (zh) 2010-12-07 2013-04-17 中国电信股份有限公司 基于云计算平台的海量数据聚合方法和系统
US10678602B2 (en) * 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US8806015B2 (en) * 2011-05-04 2014-08-12 International Business Machines Corporation Workload-aware placement in private heterogeneous clouds
US8924392B2 (en) * 2011-05-23 2014-12-30 Cisco Technology, Inc. Clustering-based resource aggregation within a data center
US9262498B2 (en) * 2011-05-27 2016-02-16 Red Hat, Inc. Generating optimized host placement of data payload in cloud-based storage network
EP2724226A1 (en) * 2011-06-23 2014-04-30 CohortFS, LLC Dynamic data placement for distributed storage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012005611A1 (en) * 2010-07-08 2012-01-12 Greenbutton Limited A method for estimating job run time

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Oliver Niehorster et al. Autonomic Resource Management with Support Vector Machines, Grid Computing, 2011.09.21. 12th IEEE/ACM *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210008150A (ko) * 2015-10-28 2021-01-20 구글 엘엘씨 연산 그래프 수정
WO2021060609A1 (ko) * 2019-09-25 2021-04-01 전자부품연구원 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 모델 제공 방법

Also Published As

Publication number Publication date
JP2015515037A (ja) 2015-05-21
WO2013120686A1 (en) 2013-08-22
EP2629247A1 (en) 2013-08-21
US9684706B2 (en) 2017-06-20
US20150066929A1 (en) 2015-03-05
EP2629247B1 (en) 2014-01-08
CN104115165A (zh) 2014-10-22
KR101595763B1 (ko) 2016-02-19
JP5921724B2 (ja) 2016-05-24
IN2014DN07099A (ko) 2015-04-24
CN104115165B (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
KR101595763B1 (ko) 기계 학습을 이용하여 매체 컴포넌트들을 매핑하기 위한 방법
EP2592550B1 (en) Distributed mapping function for large scale media clouds
US20200244588A1 (en) Scalable network slice based queuing using segment routing flexible algorithm
US10218776B2 (en) Distribution of cloud services in a cloud environment
Sahoo et al. A survey on replica server placement algorithms for content delivery networks
US11159391B2 (en) Instantiation of a telco blockchain in a NFV environment
Zamani et al. Deadline constrained video analysis via in-transit computational environments
Wahab et al. MAPLE: A machine learning approach for efficient placement and adjustment of virtual network functions
WO2019068246A1 (en) CONTROL DEVICE COMMUNICATIONS IN ACCESS NETWORKS
CN107846371B (zh) 一种多媒体业务QoE资源分配方法
Jahromi et al. Online VNF placement and chaining for value-added services in content delivery networks
Kunze et al. Use cases for in-network computing
Simoens et al. Challenges for orchestration and instance selection of composite services in distributed edge clouds
Imagane et al. Performance evaluations of multimedia service function chaining in edge clouds
Ravuri et al. A scalable hierarchically distributed architecture for next-generation applications
EP2651101B1 (en) Method for mapping media components based on link and/or processing cost
Abouelela et al. Multidomain hierarchical resource allocation for grid applications
Duan et al. End-to-end service delivery with qos guarantee in software defined networks
US10785127B1 (en) Supporting services in distributed networks
Eissa et al. Design of an optimized traffic‐aware routing algorithm using integer linear programming for software‐defined networking
Zou et al. D3w: Towards self-management of distributed data-driven workflows with qos guarantees
Kryftis et al. A resource prediction engine for efficient multimedia services provision
TalebiFard et al. Towards a context adaptive icn-based service centric framework
Manzoni et al. Modeling Distributed MQTT Systems Using Multicommodity Flow Analysis. Electronics 2022, 11, 1498
Rayani Architectures and Algorithms for Content Delivery in Future Networks

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
FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 4