KR101619686B1 - 네트워크 기반 컴퓨팅을 위한 워크로드 예측 - Google Patents

네트워크 기반 컴퓨팅을 위한 워크로드 예측 Download PDF

Info

Publication number
KR101619686B1
KR101619686B1 KR1020147029653A KR20147029653A KR101619686B1 KR 101619686 B1 KR101619686 B1 KR 101619686B1 KR 1020147029653 A KR1020147029653 A KR 1020147029653A KR 20147029653 A KR20147029653 A KR 20147029653A KR 101619686 B1 KR101619686 B1 KR 101619686B1
Authority
KR
South Korea
Prior art keywords
servers
request
calendar data
requests
data
Prior art date
Application number
KR1020147029653A
Other languages
English (en)
Other versions
KR20140139048A (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 KR20140139048A publication Critical patent/KR20140139048A/ko
Application granted granted Critical
Publication of KR101619686B1 publication Critical patent/KR101619686B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • 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/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • 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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1485Tariff-related aspects
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Power Sources (AREA)
  • Computer And Data Communications (AREA)

Abstract

기술들은 클라우드 컴퓨팅 시스템에서 워크로드를 효율적으로 스케줄링하는데 효율적인 시스템들 및 방법들에 대해 일반적으로 설명된다. 하나의 예에서, 캘린더 데이터는 가입자들의 각 세트들과 연관된 디바이스들의 각 세트들로부터 수집되고, 특정 시간 또는 시간 범위에서 수행될 워크로드는 캘린더 데이터의 분석에 부분적으로 기초하여 예측된다. 또한, 예측된 요청들의 세트와 연관된 타이밍 데이터는 분석에 기초하여 결정되고, 예측된 요청들의 세트를 서비스하는 클라우드 컴퓨팅 리소스들 중 적어도 일부는, 타이밍 데이터에 기초하여 동적으로 스케줄링된다.

Description

네트워크 기반 컴퓨팅을 위한 워크로드 예측{WORKLOAD PREDICTION FOR NETWORK-BASED COMPUTING}
본 개시물은 일반적으로 네트워크 기반 컴퓨팅을 위한 워크로드 예측에 관한 것이다.
클라우드/네트워크 기반 컴퓨팅은, 리소스 멀티플렉싱에 기초하여 다수의 서비스들을 전달하는, 고도로 확장가능하고, 유연하고 비용-효율적이며, 공유된 컴퓨팅 인프라스트럭처를 제공한다. 일 예로서, 이들 서비스들은 대체로 3개의 카테고리들로 분할될 수 있다: IaaS (Infrastructure-as-a-Service), PaaS (Platform-as-a-Service) 및 SaaS (Software-as-a-Service). 통상적으로, 다수의 애플리케이션들은, 다수의 디바이스들을 통해 다수의 사용자들에 의해 액세스될 수 있는 공유된 컴퓨팅 인프라스트럭처에 의해 호스팅된다. 또한, 공유된 컴퓨팅 인프라스트럭처는, 애플리케이션들의 호스팅 및/또는 실행을 용이하게 하는 컴퓨터들, 서버들, 및/또는 데이터 저장 시스템들과 같은 공유된 리소스들을 포함할 수 있다. 시스템 효율 및 성능을 증가시키기 위한 공유된 리소스의 관리는 도전 과제이다. 또한, 종래의 접근법들은 리소스들을 비효율적으로 관리하고 상당히 고비용이다.
종래의 접근법의 상술된 결함들은 단지 종래의 접근법들 및 기법들의 문제들 중 일부 문제의 개요만을 제공할 뿐이고, 총망라한 것으로 의도된 것이 아니다. 종래의 시스템들 및 기법들에 의한 다른 문제들, 및 여기에 설명된 다양한 비제한적인 실시형태들의 대응하는 이익들은 다음의 설명의 검토시 더욱 명확해질 수도 있다. 아울러, 본 발명의 배경이 되는 기술은 미국 특허출원공개공보 US2006/0277294호 (공개일 2006.12.07.) 에 개시되어 있다.
여기에 개시된 하나 이상의 실시형태들은, 가입자들의 각 세트들과 연관된 디바이스들의 각 세트들로부터 캘린더 데이터를 수집하는 것, 및 캘린더 데이터의 분석에 부분적으로 기초하여 특정 시간 또는 시간 범위에서 수행될 워크로드를 예측하는 것을 포함하는 방법에 관한 것이다. 또한, 하나의 실시형태에서, 메모리, 및 메모리에 통신적으로 커플링된 적어도 하나의 프로세서를 포함하는 시스템이 개시된다. 이 프로세서는, 가입자와 연관된 디바이스들의 세트로부터 캘린더 데이터를 획득하도록 구성된 데이터 수집 컴포넌트, 및 디바이스들의 세트 중 한 디바이스로부터의 요청에 대한 서비스의 프로비전 (provision) 을 용이하게 하기 위해, 캘린더 데이터에 부분적으로 기초하여 서버들의 세트 중 적어도 일부를 동적으로 스케줄링하도록 구성된 리소스 관리 컴포넌트를 포함하여, 하나 이상의 컴퓨터 실행가능 컴포넌트들의 실행을 용이하게 한다.
하나의 실시형태에서, 컴퓨터 실행가능 명령들을 저장한 컴퓨터 판독가능 저장 매체가 여기에 개시된다. 컴퓨터 실행가능 명령들은, 실행에 응답하여, 적어도 하나의 프로세서를 포함하는 컴퓨팅 시스템으로 하여금, 가입자들의 각 세트들과 연관된 디바이스들의 각 세트들로부터 수신된 캘린더 데이터를 분석하는 것, 분석에 기초하여 예측된 요청들의 세트와 연관된 타이밍 데이터를 식별하는 것, 및 식별에 기초하여 예측된 요청들의 세트를 프로세싱하는 서버들의 세트 중 적어도 일부를 동적으로 스케줄링하는 것을 포함하는 동작들을 수행하게 한다.
다른 실시형태에서, 메모리, 및 메모리에 통신적으로 커플링된 적어도 하나의 프로세서를 포함하는 통신 디바이스가 여기에 개시된다. 프로세서는, 적어도, 캘린더 데이터를 통신 네트워크에 송신하는 것으로서, 캘린더 데이터는 통신 네트워크 내의 서버들의 세트의 서브세트를 동적으로 스케줄링하도록 이용되는, 그 캘린더 데이터를 통신 네트워크에 송신하고, 캘린더 데이터의 송신에 후속하여, 통신 네트워크에게 요청을 지향시키는 것으로서, 요청은 서버들의 세트의 서브세트에 의해 서비스되는, 그 통신 네트워크에게 요청을 지향시키는 적어도 하나의 컴퓨터 실행가능 컴포넌트의 실행을 용이하게 한다. 또한, 또 다른 실시형태에서, 방법은 디바이스로부터 요청을 수신하는 것, 및 수신 이전에 디바이스로부터 수신되는 캘린더 데이터에 기초하여 요청을 프로세싱하기 위해 서버들의 세트의 서브세트를 동적으로 결정하는 것을 포함하는 방법이 여기에 개시된다.
전술된 요약은 오직 예시적인 것이며, 임의의 방식으로 제한하도록 의도되지 않는다. 상술된 예시적인 양태들, 실시형태들 및 특징들에 부가하여, 추가의 양태들, 실시형태들 및 특징들이 도면들 및 다음의 상세한 설명을 참조하여 명확해질 것이다.
도 1 은 클라우드 컴퓨팅 환경에서 리소스 관리를 위해 구성된 일 예시적인 시스템의 비제한적인 실시형태를 예시한 것이다.
도 2 는 클라우드 컴퓨팅 리소스들의 관리를 용이하게 하도록 구성된 일 예시적인 시스템의 비제한적인 실시형태를 예시한 것이다.
도 3 은 워크로드 스케줄링을 위해 이용되는 캘린더 데이터를 획득하도록 구성된 일 예시적인 시스템의 비제한적인 실시형태를 예시한 것이다.
도 4 는 캘린더 데이터에 기초하여 클라우드 리소스들을 동적으로 스케줄링하도록 구성된 일 예시적인 시스템의 비제한적인 실시형태를 예시한 것이다.
도 5 는 계획된 및/또는 비계획된 요청들을 서비스하도록 구성되는 일 예시적인 시스템의 비제한적인 실시형태의 고레벨 다이어그램이다.
도 6 은 본 개시물의 적어도 일부의 양태들에 따라 하나 이상의 피처들 (features) 을 자동화하는 것을 용이하게 하는 일 예시적인 시스템을 예시한 것이다.
도 7 은 클라우드 컴퓨팅 인프라스트럭처와 연관된 빌링을 용이하게 하도록 구성된 일 예시적인 시스템의 비제한적인 실시형태의 블록 다이어그램을 예시한 것이다.
도 8 은 캘린더 데이터에 기초하여 워크로드 예측을 용이하게 하는 일 예시적인 방법의 비제한적인 실시형태를 예시한 것이다.
도 9 는 효율적인 워크로드 밸런싱 및 요청 서비싱 (servicing) 을 용이하게 하는 일 예시적인 방법의 비제한적인 실시형태를 예시한 것이다.
도 10 은 캘린더 데이터에 기초하여 서버들의 세트를 스케줄링하기 위한 컴퓨터 판독가능 명령들의 세트의 비제한적인 실시형태를 예시한 것이다.
도 11 은 다양한 실시형태들이 구현될 수 있는 일 예시적인 통신 디바이스를 나타내는 블록 다이어그램이다.
도 12 는 본 개시물의 적어도 일부의 실시형태들에 따른 네트워크 기반 컴퓨팅을 위한 워크로드 스케줄링을 위해 배열되는 일 예시적인 컴퓨팅 디바이스를 예시한 블록 다이어그램이다.
도 13 은 다양한 실시형태들이 구현될 수 있는 일 예시적인 비제한적인 동작 환경을 나타낸 블록 다이어그램이다.
다음의 상세한 설명에서, 그 일부분을 형성하는 첨부된 도면들이 참조된다. 도면들에서, 유사한 도면 부호들은 통상적으로, 그 문맥에서 달리 지시되지 않는다면, 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면들, 및 청구항들에서 설명되는 예시적인 실시형태들은 제한하려고 의도된 것이 아니다. 여기에 제시된 요지의 범위 또는 사상을 벗어나는 일 없이, 다른 실시형태들이 이용될 수도 있고 다른 변경들이 이루어질 수도 있다. 여기에 일반적으로 설명되고 도면들에 예시되는 바와 같이, 본 개시물의 양태들은 광범위한 상이한 구성들로 배열되고, 치환되고, 결합되고, 분리되고, 설계될 수 있으며, 이러한 구성들 모두가 여기에 명백하게 고려되는 것이 용이하게 이해될 것이다.
다양한 비제한적인 실시형태들에서, 클라우드 컴퓨팅 시스템의 워크로드를 스케줄링하기 위한 (예를 들어, 리소스들을 할당하기 위한) 시스템들 및 방법들이 제공된다. 하나 이상의 가입자들과 연관된 디바이스들의 세트로부터 수신되는 캘린더 데이터의 분석에 기초하여, 미리, 워크로드가 결정될 수 있다. 일 예로서, 캘린더 데이터는, 시간 또는 시간 범위를 식별하기 위해 이용될 수 있는 스케줄 관련 또는 타이밍 관련 정보를 제공할 수 있고, 이 시간 또는 시간 범위에서/시간 또는 시간 범위 동안 서비스에 대한 요청이 하나 이상의 가입자들로부터 수신될 수 있다. 클라우드 컴퓨팅 시스템 내의 서버들 중 적어도 일부는, 서비스의 프로비전 (provision) 을 용이하게 하기 위해, 워크로드에 부분적으로 기초하여 동적으로 스케줄링될 수 있다.
전술된 개요는 오직 예시적인 것이며, 임의의 방식으로 제한하도록 의도되지 않는다. 상술된 예시적인 양태들, 실시형태들 및 특징들에 부가하여, 추가의 양태들, 실시형태들 및 특징들이 도면들 및 다음의 상세한 설명을 참조하여 명확해질 것이다.
클라우드 컴퓨팅 인프라스트럭처에서, 네트워킹된 서버들은 다수의 고객들의 다수의 컴퓨팅 디바이스들로부터 수신된 요청들을 서비스한다. 이 요청들의 타이밍이 미리 알려지지 않았기 때문에 네트워킹된 서버들과 연관된 리소스 관리는 도전 과제일 수 있다. 여기에 개시된 다양한 실시형태들은, 타이밍 데이터에 기초하여 효율적인 리소스 관리를 용이하게 할 수 있는, 요청들과 연관된 타이밍 데이터를 결정하기 위해 사용자의 디바이스로부터 수집된 캘린더 데이터를 이용한다. 여기에 사용되는 용어 "클라우드" 는, 사용자 요청들을 서비스하기 위해 이용되는 애플리케이션들의 세트를 호스팅하는, 서로 통신적으로 및/또는 동작적으로 커플링된 서버들의 세트를 지칭할 수 있다는 점에 주목한다. 일반적으로, 클라우드 컴포넌트 리소스들은, 클라우드에 기초하고 로컬로 (예를 들어, 사용자 디바이스 상에) 저장되지 않는 서비스들로의 액세스를 제공하기 위해 대부분의 임의의 유선 및/또는 무선 통신 네트워크를 통해 사용자 디바이스들과 통신할 수 있다. 통상적인 클라우드 컴퓨팅 환경은, 최종 사용자들에게 리소스들을 제공하기 위해 서로 상호작용하는, 함께 집성된 다수의 계층들을 포함할 수 있다.
도 1 은 클라우드 컴퓨팅 시스템에서 리소스 관리를 위해 구성된 일 예시적인 시스템 (100) 의 비제한적인 실시형태를 예시한 것이다. 또한, 시스템 (100) 은 로드 밸런싱 효율 및 전체 시스템 성능을 증가시키기 위해 클라우드 컴퓨팅 인프라스트럭처 (104) 내에서 리소스들 (1021 내지 102n; 여기서 n 은 임의의 자연수일 수 있다) 을 스케줄링하는 것을 용이하게 한다. 통상적으로, 리소스들 (1021 내지 102n) 은 다수의 사용자들 (고객들, 가입자들, 소비자들 등) 에 의해 공유되고, 다수의 사용자들과 연관된 사용자 디바이스들 (106) 의 세트로부터 수신된 사용자 요청들을 프로세싱하기 위해 이용된다.
하나의 실시형태에서, 시스템 (100) 은 워크로드 식별 및 리소스 할당 및/또는 스케줄링을 용이하게 할 수 있는 리소스 관리 컴포넌트 (108) 를 포함한다. 일 양태에 따르면, 리소스 관리 컴포넌트 (108) 는 하나 이상의 사용자 디바이스들 (106) 로부터 캘린더 데이터 (110) 를 수신하고 캘린더 데이터 (110) 의 분석에 기초하여 워크로드를 식별할 수 있다. 또한, 리소스 관리 컴포넌트 (108) 는 캘린더 데이터 (110) 를 이용함으로써 요청 (112) 의 수신과 연관된 타이밍 데이터를 미리 계산할 수 있다. 예로서, 타이밍 데이터는 사용자 디바이스, 예컨대, 사용자 디바이스들 (106) 중 하나가 요청(들) (112) (예를 들어, 계획된 또는 예측가능한 요청들) 을 클라우드 컴퓨팅 인프라스트럭처 (104) 에 전송할 가능성이 있는 (예를 들어, 월요일 07:30 AM 에서의) 시간 및/또는 (예를 들어, 화요일 08:00 AM 에서부터 11:00 AM 까지의) 기간을 포함할 수 있다. 부가적으로 또는 옵션적으로, 리소스 관리 컴포넌트 (108) 는 캘린더 데이터 (110) 에 기초하여 발생되는 타이밍 데이터의 정확도를 검증하거나 및/또는 증가시키기 위해 통계적 예측 툴들 (예를 들어, 베이지안 네트워크들 (Bayesian networks), 신경 네트워크들 등) 을 채용할 수 있다.
리소스들 (1021 내지 102n) 의 비효율적인 이용을 피하거나 및/또는 감소시키기 위해, 리소스 관리 컴포넌트 (108) 는 식별된 워크로드에 기초하여 리소스들을 동적으로 스케줄링하거나 및/또는 할당할 수 있다. 하나의 양태에서, 리소스 관리 컴포넌트 (108) 는 리소스들 (1021 내지 102n) 의 세트와 연관된 전력 관리 피처들 (power management features) 을 제어할 수 있다. 예를 들어, 리소스 관리 컴포넌트 (108) 는, 현재 워크로드의 함수로서, 리소스들 (1021 내지 102n) 의 세트의 전력 관련 모드, 예컨대, 저전력 모드, 대기 모드, 파워 오프 모드, 파워 온 모드 등 (그러나 이들로 제한되지 않는다) 을 변경할 수 있다.
또한, 리소스 관리 컴포넌트 (108) 는 사용자 디바이스(들) (106) 로부터 수신되는 요청(들) (112) 을 서비스하기 위해 리소스들 (1021 내지 102n) 중 일부를 할당할 수 있고, 예를 들어, 캘린더 데이터를 공유하지 않는 가입자들 (미도시) 로부터 수신되는 비계획된, 예측불가능한, 및/또는 랜덤한 요청(들) (미도시) 을 서비스하기 위해 리소스들 (1021 내지 102n) 중 나머지 부분을 할당할 수 있다. 하나의 예에서, 요청(들) (112) 을 서비스하기 위해 할당된 리소스들 (1021 내지 102n) 중 일부는, 비계획된, 예측불가능한, 및/또는 랜덤한 요청들을 서비스하기 위해 할당된 리소스들 (1021 내지 102n) 중 나머지 부분에 비해 상대적으로 느리게 응답할 수 있다. 그러나, 요청(들) (112) 을 서비스하는 것과 관련된 요금은 비계획된 및/또는 랜덤한 요청(들) 을 서비스하기 위해 부과된 요금보다 더 낮을 수 있다. 일 예로서, 리소스 관리 컴포넌트 (108) 는 요청(들) (112) 을 서비스하기 위해 할당된 리소스들 (1021 내지 102n) 중 일부에 대한 전력 관리를 용이하게 할 수 있는 반면, 비계획된 및/또는 랜덤한 요청들을 서비스하기 위해 할당된 리소스들 (1021 내지 102n) 중 나머지 부분은 빠른 응답을 제공하는 "올웨이즈-온 (always-on)" 모드에서 유지될 수 있다.
하나의 양태에서, 리소스 관리 컴포넌트 (108) 가 클라우드 컴퓨팅 인프라스트럭처 (104) 내에 상주하도록 나타나 있지만, 본 명세서는 이러한 것으로 제한되지 않고 리소스 관리 컴포넌트 (108) 가 클라우드 컴퓨팅 인프라스트럭처 (104) 의 외부에 있거나 및/또는 통신적으로 커플링될 수 있다는 점에 주목한다. 하나의 예에서, 리소스 관리 컴포넌트 (108) 는 하나 이상의 리소스들 (1021 내지 102n) 에 의해 구현될 수 있다. 또한, 클라우드 컴퓨팅 인프라스트럭처 (104) 의 "사용자" 는 개인으로 제한되지 않고, 기업들 또는 다른 엔티티들을 포함할 수 있다는 점에 주목할 수 있다. 또한, 기업들 및/또는 엔티티들의 캘린더 정보는 또한, 예를 들어, 시스템 (100) 에 의해 워크로드의 예측을 위해 수집 및 사용될 수 있다.
도 2 는 클라우드 컴퓨팅 리소스들의 관리를 용이하게 하도록 구성되는 일 예시적인 시스템 (200) 의 비제한적인 실시형태를 예시한 것이다. 클라우드 컴퓨팅의 인기가 계속 증대함에 따라, 클라우드 리소스들을 효율적으로 관리하는 것의 중요성이 증가된다. 또한, 리소스 관리 컴포넌트 (108) 는 리소스들의 스케줄링 및/또는 할당을 제어하여, 성능이 증가되거나 및/또는 동작 비용들이 감소되도록 한다. 하나 이상의 사용자 디바이스들 (106) 및 리소스 관리 컴포넌트 (108) 는, 예를 들어, 시스템 (100) 과 관련하여, 여기에 더욱 완전히 설명되는 기능성을 포함할 수 있다는 점에 또한 주목한다.
하나의 양태에서, 리소스 관리 컴포넌트 (108) 는 데이터 수집 컴포넌트 (202) 및 스케줄링 컴포넌트 (204) 를 포함할 수 있다. 데이터 수집 컴포넌트 (202) 는 사용자 디바이스들 (106) 의 세트로부터 캘린더 데이터를 요청할 수 있다. 일 예로서, (예를 들어, 미래의 시간 또는 날짜에 관련된) 캘린더 데이터는 스케줄링 관련 정보, 미팅 정보, 태스크들, 해야 할 일의 리스트들 (to-do lists), 이벤트 데이터, 약속 데이터, 프로젝트 타임라인 또는 데드라인 정보, 근무 교대 데이터, 프로젝트 할당 데이터, 워크플로 데이터, 가용성 데이터 등을 포함할 수 있지만, 이들로 제한되지 않는다. 일 실시형태에 따르면, 데이터 수집 컴포넌트 (202) 는, 예를 들어, 주기적으로, 요구시, 특정 시간에, 이벤트/스케줄에 기초하여 등으로 캘린더 데이터를 요청할 수 있다. 부가적으로 또는 대안적으로, 하나 이상의 사용자 디바이스들 (106) 은, 예를 들어, 사용자가 정보를 입력함에 따라, 주기적으로, 특정 시간에, 유휴 모드 동안에 등으로 캘린더 데이터를 데이터 수집 컴포넌트 (202) 에 푸시할 수 있다. 다시 말해, 데이터 수집 컴포넌트 (202) 는 사용자 디바이스(들) (106) 와 같은 사용자 디바이스의 사용자와 연관된 캘린더(들) 와 클라우드 컴퓨팅 시스템 사이의 링크 또는 인터페이스를 제공할 수 있다. 일 예로서, 캘린더 데이터는 사용자(들) 와 연관된 웹 기반 포탈 및/또는 하나 이상의 사용자 디바이스들 (106) 과 연관된 시스템 또는 사용자 애플리케이션으로부터 수신될 수 있다.
스케줄링 컴포넌트 (204) 는 특정 시간에 및/또는 특정 시간 범위 동안에 미리 워크로드를 결정하기 위해 캘린더 데이터를 분석할 수 있다. 또한, 워크로드는, 특정 시간에 및/또는 특정 시간 범위 동안에 클라우드 컴퓨팅 시스템에 의해 프로세싱되는 다수의 요청들 및/또는 하나 이상의 사용자 디바이스들 (106) 로부터 수신된 다수의 요청들을 나타낼 수 있다. 일 예로서, 캘린더 데이터는, 요청이 하나 이상의 사용자 디바이스들 (106) 에 의해 전송되거나 및/또는 클라우드 컴퓨팅 시스템에 의해 수신될 수 있는 타이밍 데이터, 예를 들어, 시간 (또는 범위) 을 나타낼 수 있다. 하나의 양태에서, 스케줄링 컴포넌트 (204) 는 클라우드 컴퓨팅 시스템 내의 리소스들을 적어도 2개의 부분들로 분할할 수 있다. 예를 들어, 부분 I 은 비교적 느리게 응답하지만 낮은 비용으로 동작할 수 있는 리소스들 (예를 들어, 서버들) 을 포함할 수 있고, 부분 II 는 즉시 (또는 거의 즉시) 응답하지만 높은 비용으로 응답할 수 있는 리소스들 (예를 들어, 서버들) 을 포함할 수 있다. 하나의 양태에서, 스케줄링 컴포넌트 (204) 는 하나 이상의 사용자 디바이스들 (106) 로부터 수신된, 계획된 요청들을 서비스하기 위해 부분 I 을 할당할 수 있고, 랜덤한 요청들, 예를 들어, 확률적으로 클라우드 리소스들에 액세스하는 사용자들로부터 수신되는 요청들을 서비스하기 위해 부분 II 를 할당할 수 있다. 또한, 스케줄링 컴포넌트 (204) 는, 캘린더 데이터에 기초하여, 부분 I 내의 하나 이상의 리소스들의 전력 소비를 감소시키는 전력 관리 기법들을 구현할 수 있다.
일 예로서, 데이터 수집 컴포넌트 (202) 는 워크 랩톱 (work laptop) 상의 고용인의 캘린더로부터, 2 일의 휴가 시간을 나타내는 캘린더 데이터를 획득할 수 있다. 캘린더 데이터의 평가에 기초하여, 스케줄링 컴포넌트 (204) 는 2 일의 휴가일 동안에 고용인으로부터 요청을 수신하는 것에 대한 (예를 들어, 미리 정의된 임계치보다 낮은) 낮은 확률을 결정할 수 있다. 이에 따라, 스케줄링 컴포넌트 (204) 는 전력을 보존하거나 및/또는 비용들을 감소시키기 위해 부분 I 내의 리소스들 중 적어도 일부를 셧 다운할 수 있다.
도 3 은 워크로드 스케줄링을 위해 이용되는 캘린더 데이터를 획득하도록 구성된 일 예시적인 시스템 (300) 의 비제한적인 실시형태를 예시한 것이다. 나타낸 바와 같이, 시스템 (300) 은, 데이터 수집 및 데이터 집성을 각각 용이하게 할 수 있는 통신 컴포넌트 (302) 및 집성 컴포넌트 (304) 를 더 포함하는 데이터 수집 컴포넌트 (202) 를 포함한다. 또한, 데이터 수집 컴포넌트 (202) 는, 예를 들어, 시스템 (200) 과 관련하여, 여기에 더욱 완전히 설명되는 기능성을 포함할 수 있다.
일 양태에 따르면, 통신 컴포넌트 (302) 는 하나 이상의 사용자 디바이스들 (1061 내지 106N; 여기서 N 은 자연수일 수 있다) 와 통신하여 이 사용자 디바이스들로부터 캘린더 데이터를 수집하는 인터페이스를 제공할 수 있다. 예로서, 하나 이상의 사용자 디바이스들 (1061 내지 106N) 은 개인용 컴퓨터, 태블릿 컴퓨터, 셀룰러 폰, 개인 휴대 정보 단말기 (PDA), 랩톱, 게이밍 모듈, 미디어 플레이어/리코더, 디지털 다이어리, 디지털 캘린더/클록 등을 포함할 수 있지만, 이들로 제한되지 않는다. 또한, 하나 이상의 사용자 디바이스들 (1061 내지 106N) 은 또한, 예를 들어, 하나 이상의 사용자들, 사무실, 공장, 비즈니스, 조직 등과 연관된 스케줄 관련 데이터를 저장하는 서버 (예를 들어, 웹 서버 및/또는 네트워크 서버), 데이터 스토어, 데이터 센터 등을 포함할 수 있다. 하나의 예에서, 하나 이상의 사용자 디바이스들 (1061 내지 106N) 은 단일의 사용자 및/또는 다수의 사용자들과 연관될 수 있다. 일 예로서, 통신 컴포넌트 (302) 는, 셀룰러 네트워크들, WiFi 네트워크들, 인터넷 프로토콜 (IP) 네트워크들 등을 포함하지만 이들로 제한되지 않는, 사용자 디바이스들 (1061 내지 106N) 과의 통신을 위한 다양한 유선 및/또는 무선 네트워크들 및/또는 프로토콜들을 채용할 수 있다.
하나의 실시형태에서, 통신 컴포넌트 (302) 는, 예를 들어, 주기적으로 (예를 들어, 매일, 매주, 격주 등으로), 특정 시간에 (예를 들어, 자정에), 미리 정의된 스케줄에 기초하여, 요구시, 이벤트에 응답하여, 유휴 모드 및/또는 낮은 트래픽 조건들 동안 등에서 사용자 디바이스들 (1061 내지 106N) 의 세트에게 질의 및/또는 폴링할 수 있다. 다른 실시형태에서, 하나 이상의 사용자 디바이스들 (1061 내지 106N) 은, 예를 들어, 사용자 발생한 또는 편집한 캘린더 데이터에 응답하여, 주기적으로 (예를 들어, 매일, 매주, 격주 등으로), 유휴 모드 동안에, 특정 시간, 날짜, 또는 스케줄에, 요구시, 이벤트에 응답하여 등으로 관련 캘린더 데이터를 통신 컴포넌트에 송신할 수 있다. 통상적으로, 캘린더 데이터는 이벤트들, 약속들, 미팅들, 태스크들, 근무 교대들, 워크 플로들, 프로젝트 타임라인들, 해야 할 일의 리스트들, 일지 기입들, 만기일들 또는 데드라인들, 자유/바쁜 시간들 등과 연관된 데이터를 포함할 수 있지만, 이들로 제한되지 않는다. 또한, 하나의 실시형태에서, 통신 컴포넌트 (302) 는 사용자가 언제 그리고 어떻게 클라우드 리소스들을 이용할 계획인지를 특정하는 명백한 사용자 입력을 (예를 들어, 사용자 디바이스들 (1061 내지 106N) 을 통해) 수신할 수 있다. 하나의 양태에서, 통신 컴포넌트 (302) 는 사용자들과 연관된 하나 이상의 프라이버시 정책들에 기초하여 캘린더 데이터를 수신하거나 및/또는 요청할 수 있다. 예를 들어, 사적인 것으로 마킹된 이벤트들 또는 약속들과 연관된 데이터는 데이터 수집 컴포넌트 (202) 에 의해 수집되지 않는다.
일 양태에 따르면, 집성 컴포넌트 (304) 는 통신 컴포넌트 (302) 에 의해 획득된 캘린더 데이터를 집성하고 데이터 스토어 (306) 에 저장할 수 있다. 또한, 캘린더 데이터는 클라우드 컴퓨팅 시스템에서 리소스들과 연관된 워크로드들의 스케줄링을 개선시키기 위해 이용될 수 있다. 일 예로서, 워크로드 스케줄링은, 캘린더 데이터가 고레벨의 정확도를 갖지 않는 경우들조차도, 캘린더 데이터의 이용에 의해 실질적으로 개선될 수 있다. 데이터 스토어 (306) 가 휘발성 메모리(들) 또는 비휘발성 메모리(들) 를 포함할 수 있거나, 또는 휘발성 또는 비휘발성 메모리(들) 양쪽 모두를 포함할 수 있다는 점에 주목한다. 제한이 아닌 예시로서, 비휘발성 메모리는 ROM (read only memory), 프로그래밍가능 ROM (PROM), 전기적으로 프로그래밍가능 ROM (EPROM), 전기적으로 소거가능한 PROM (EEPROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리는 외부 캐시 메모리로서 동작하는 RAM (random access memory) 을 포함할 수 있다. 제한이 아닌 예시로서, RAM 은 정적 RAM (SRAM), 동적 RAM (DRAM), 동기 DRAM (SDRAM), 더블 데이터 레이트 SDRAM (DDR SDRAM), 강화된 SDRAM (ESDRAM), 싱크링크 DRAM (SLDRAM), 및 다이렉트 램버스 RAM (DRRAM) 과 같은 많은 형태로 이용가능하다. 본 시스템들 및 방법들의 메모리 (예를 들어, 데이터 스토어들, 데이터베이스들) 는 이러한 그리고 임의의 다른 적합한 타입들의 메모리를 포함하는 것으로 의도되고, 이들로 제한되지 않는다.
도 4 는 캘린더 데이터에 기초하여 클라우드 리소스들을 동적으로 스케줄링하도록 구성된 일 예시적인 시스템 (400) 의 비제한적인 실시형태를 예시한 것이다. 하나의 양태에서, 스케줄링 컴포넌트 (204) 는 분석 컴포넌트 (402), 할당 컴포넌트 (404), 및 전력 관리 컴포넌트 (406) 를 포함할 수 있다. 또한, 스케줄링 컴포넌트 (204) 는, 예를 들어, 시스템 (200) 과 관련하여, 여기에 더욱 완전히 설명되는 기능성을 포함할 수 있다.
하나의 양태에서, 분석 컴포넌트 (402) 는, 하나 이상의 사용자 디바이스들로부터 수신된 (예를 들어, 데이터 수집 컴포넌트 (202) 에 의해 수집되고 저장된) 캘린더 데이터를 평가할 수 있다. 또한, 분석 컴포넌트 (402) 는 하나 이상의 사용자 디바이스들에 의해 전송된, 클라우드 서비스(들) 에 대한, 요청(들) 의 수신과 연관된 도착 시간 (또는 시간 범위) 을 나타내는 타이밍 데이터를 예측할 수 있다. 이러한 요청(들) 은 (예를 들어, 요청(들) 의 수신과 연관된 도착 시간이 캘린더 데이터에 기초하여 계획되거나 및/또는 예측될 수 있기 때문에) 계획된 또는 예측가능한 요청(들) 이라고 지칭될 수 있다. 요청(들) 은 캘린더 데이터를 제공하는 사용자 디바이스(들) (예를 들어, 사용자 디바이스들 (106)) 로부터 및/또는 사용자(들) 와 연관된 상이한 디바이스(들) 로부터 수신될 수 있다는 점에 주목한다. 예를 들어, 캘린더 데이터가 사용자의 휴대폰으로부터 획득될 수 있지만, 클라우드 서비스에 대한 계획된/예측가능한 요청은 사용자의 랩톱으로부터 클라우드 컴퓨팅 인프라스트럭처에서 수신될 수 있다. 또한, 분석 컴포넌트 (402) 는, 수신될 요청의 타입, 예를 들어, 요청될 가능성이 있는 특정 서비스를, 캘린더 데이터의 평가에 기초하여, 식별, 예측, 및/또는 추론할 수 있다. 또한, 분석 컴포넌트 (402) 는, 타이밍 데이터에 기초하여, 한 기간 동안 추정된 및/또는 예측된 시스템 워크로드를 결정할 수 있다.
추정된 및/또는 예측된 시스템 워크로드는 클라우드 리소스들의 동적 할당을 용이하게 하기 위해 할당 컴포넌트 (404) 에 의해 이용될 수 있다. 하나의 양태에서, 할당 컴포넌트 (404) 는 이용가능한 클라우드 리소스들의 총 수를 (예를 들어, 동일한 또는 동일하지 않은) 적어도 2 개의 부분들로 파티셔닝할 수 있다. 예를 들어, 제 1 부분은 서비스 예측가능한 요청들 (예를 들어, 캘린더 데이터에 부분적으로 기초하여 예측되는 요청들) 에 이용될 수 있는 서비들의 제 1 세트를 포함할 수 있고, 및 서비스 비계획된 요청들 (예를 들어, 확률적으로 클라우드에 액세스하는 사용자들로부터의 요청들) 에 이용될 수 있는 서버들의 제 2 세트를 포함할 수 있다. 다시 말해, 제 1 부분은 캘린더 데이터를 클라우드 컴퓨팅 인프라스트럭처에 제공하는 고객들에 의해 이용될 수 있고, 제 2 부분은 캘린더 데이터를 클라우드 컴퓨팅 인프라스트럭처에 제공하지 않는 고객들에 대해 이용될 수 있다. 할당 컴포넌트 (404) 는 클라우드 리소스들을 2개의 부분들로 파티셔닝하는 것으로 제한되지 않는다는 점과 클라우드 리소스들은 (예를 들어, 서비스 요금들, 원하는 응답 시간들, 고객에 의해 제공된 데이터의 양 또는 정확도 등에 기초하여) 거의 임의의 수의 부분들로 분할될 수도 있다는 점에 주목한다. 예를 들어, 제 3 부분은 서비스 계획된 요청들, 예를 들어, 미리 사용자에 의해 명백히 특정되는 요청들에 이용될 수 있는 서버들의 제 3 세트를 포함할 수 있다.
일 양태에 따르면, 전력 관리 컴포넌트 (406) 는 전력 소비 및 비용들을 감소시키기 위해 클라우드 컴퓨팅 리소스들 중 하나 이상의 부분들 (예를 들어, 서버들의 제 1 세트) 과 연관된 전력 모드를 제어할 수 있다. 일 예로서, 전력 관리 컴포넌트 (406) 는 타이밍 데이터에 기초하여, 계획된 요청이 수신되거나 및/또는 프로세싱될 가능성이 없다는 식별시 서버들의 제 1 세트를 셧 다운할 수 있다 (또는 저전력/슬립/대기 전력 모드로 스위치할 수 있다). 이에 따라, 하나 이상의 사용자 디바이스들이 클라우드 리소스들을 이용하거나 또는 액세스하고 있는 기간 동안 전력 소비 및 비용들이 감소될 수 있다.
하나의 예에서, (예를 들어, 할당 컴포넌트 (404) 에 의한) 제 1 및 제 2 부분들 간의 서버들의 할당은, 응답 시간에 관련된 사용자/애플리케이션 선호도들 및 타이밍 데이터의 정확도에 기초한다. 또한, 제 1 및 제 2 부분들 간의 서버들의 할당은 동적으로 조정될 수 있다. 하나의 양태에서, 모든 사용자들의 요청 계획들이 미리 알려진 경우, 사용자들이 계획된 요청들을 수신하기 전에 (또는 계획된 요청들에 응답하여/후속하여) 클라우드 서비스들을 이용하지 않아서/클라우드 서비스들에 액세스하지 않아서 서버들의 제 1 세트를 파워-업하지 않을 때 전력 관리 컴포넌트 (406) 는 서버들의 제 1 세트를 셧 다운할 수 있다. 다른 양태에서, 모든 요청 계획들이 미리 알려져 있지 않은 경우, 전력 관리 컴포넌트 (406) 는, 임의의 시간에 수신된 요청들을 서비스하기 위해 서버들의 제 1 세트가 준비 상태에 있다는 (예를 들어, 파워 온된) 것을 보장할 수 있다. 또한, 사용자/애플리케이션이 보다 높은 지연 허용오차를 가지며 준비 시간 지연 (예를 들어, 기동 지연) 을 견딜 수 있는 경우, 전력 관리 컴포넌트 (406) 는 계획된 요청의 수신시 (또는 수신한 후) 서버들의 제 1 세트를 파워 업할 수 있다.
도 5 는 계획된 및/또는 비계획된 요청들을 서비스하도록 구성되는 일 예시적인 시스템 (500) 의 비제한적인 실시형태의 고레벨 다이어그램이다. 하나의 양태에서, 클라우드 컴퓨팅 인프라스트럭처 (104) 및/또는 사용자 디바이스(들) (106) 는, 예를 들어, 시스템들 (100 내지 400) 과 관련하여, 여기에 더욱 완전히 설명되는 기능성을 포함할 수 있다. 일 예로서, 클라우드 컴퓨팅 인프라스트럭처 (104) 는 하나 이상의 사용자 디바이스들 (106) 로부터의 캘린더 데이터를 수신 및/또는 수집하고 (예를 들어, 리소스 관리 컴포넌트 (108) 를 이용함으로써) 미래의 기간(들) 에 대한 워크로드를 결정할 수 있다. 또한, 클라우드 리소스들 (5021 내지 502N) 은 특정 기간 동안 결정된 워크로드에 기초하여 동적으로 파티셔닝될 수 있다. 일 예로서, 클라우드 리소스들 (5021 내지 502N) 은 (예를 들어, 할당 컴포넌트 (404) 에 의해) 부분 I 서버들 (5041) 및 부분 II 서버들 (5042) 로 분할될 수 있다. 일 양태에 따르면, 부분 I 서버들 (5041) 은, 예를 들어, 하나 이상의 사용자 디바이스들 (106), 예를 들어, 캘린더 데이터를 제공하는 가입자들과 연관된 디바이스들로부터 수신된 요청들 (예를 들어, 계획된 요청들) 을 서비스할 수 있고, 부분 II 서버들 (5042) 은 하나 이상의 사용자 디바이스들 (506), 예를 들어, 캘린더 데이터를 제공하지 않는 가입자들과 연관된 디바이스들로부터 수신된 요청들 (예를 들어, 비계획된 요청들) 을 서비스할 수 있다. 일 예로서, 서비스하는 것은 응답을 발생시키기 위해 수신된 요청과 연관된 데이터를 분석하거나 및/또는 프로세싱하는 것을 포함할 수 있지만, 이들로 제한되지 않는다. 응답이 요청자 (예를 들어, 사용자 디바이스들 (106) 및/또는 (506)) 에게 다시 송신되거나 및/또는 미래의 프로세싱을 위해 이용될 수 있다.
일 실시형태에 따르면, 부분 I 서버들 (5041) 은 계획된 요청들이 클라우드 컴퓨팅 인프라스트럭처 (104) 에 의해 수신될 가능성이 없는 기간 동안, 전력 소비를 감소시키는 전력 모드, 예를 들어, 셧 다운 모드, 저전력 모드, 슬립 모드 등 (그러나 이들로 제한되지 않는다) 으로 (예를 들어, 전력 관리 컴포넌트 (406) 에 의해) 스위치될 수 있다. 일 예로서, 부분 II 서버들 (5042) 은, 비계획된 요청들을 서비스하기 위해, 올웨이즈-레디 (always-ready) 및/또는 전체 전력 모드에 있을 수 있다. 하나의 양태에서, 부분 II 서버들 (5042) 이 하나 이상의 사용자 디바이스들 (506) 로부터 수신된 모든 비계획된 요청들을 핸들링할 수 없는 경우, 부분 I 서버들 (5041) 중 적어도 일부의 부분 I 서버의 전력 모드가 전체 전력 또는 파워-온 모드로 스위치될 수 있어, 부분 I 서버들 (5041) 중 일부는 비계획된 요청들의 세트를 서비스하기 위해 이용될 수 있다. 통상적으로, 부분 I 서버들 (5041) 을 저전력 상태 (예를 들어, 셧 다운) 로부터 준비 상태 (예를 들어, 파워 온) 로 스위칭하는 동안 준비 시간 지연이 도입된다. 하나의 양태에서, 부분 I 서버들 (5041) 의 전력 소비가 감소될 수 있기 때문에, 부분 I 서버들 (5041) 에 의해 서비스되는 요청들은, 부분 II 서버들 (5042) 에 의해 서비스된 요청들보다 더 낮은 요금이 부과될 수 있거나 및/또는 더 낮은 빌링 레이트가 할당될 수 있다.
일 예로서, 엔지니어가 시작 시간을 변화시켜 매일 2 시간 동안 알고리즘을 실행하기 위해 클라우드 리소스들 (5021 내지 502N) 을 이용하는 비제한적인 시나리오를 고려한다. 하나의 양태에서, (예를 들어, 리소스 관리 컴포넌트 (108) 를 이용하는 것에 의한) 클라우드 컴퓨팅 인프라스트럭처 (104) 는 엔지니어가 어떤 2 시간을 사용하여 주어진 날 동안 알고리즘을 실행하는지를 결정하거나 및/또는 예측할 수 있고, 나머지 시간 동안 부분 I 서버들 (5041) 을 셧 다운할 수 있다. 이에 따라, 계획된 요청들의 타이밍에 관련된 명백한 및/또는 묵시적 데이터를 포함하는 캘린더 데이터를 제공함으로서, 워크로드가 미리 계산될 수 있어서, 효율적인 스케줄링이 용이하게 될 수 있다.
도 6 은 본 개시물의 적어도 일부의 양태들에 따른 하나 이상의 피처들을 자동화하는 것을 용이하게 하는 시스템 (600) 을 예시한 것이다. 하나의 실시형태에서, 시스템 (600) 은, 도 6 에 도시된 바와 같이, 예를 들어, 리소스 관리 컴포넌트 (108) 내에 상주하거나, 및/또는 리소스 관리 컴포넌트 (108) 에 로컬로 또는 원격으로 연결될 수 있는 인공 지능 (AI) 컴포넌트 (602) 를 포함할 수 있다. (예를 들어, 워크로드 스케줄링과 관련된) 본 개시물은 다양한 양태들을 실행하기 위한 다양한 AI 기반 방식들을 채용할 수 있다. 예를 들어, 타이밍 데이터 및/또는 워크로드, 리소스들의 할당, 리소스들의 전력 관리 등을 결정하거나 및/또는 검증하기 위한 프로세스는, 자동화 분류자 (classifier) 시스템 및 프로세스를 통해 용이하게 될 수 있다.
분류자는, 입력 속성 벡터 x = (x1, x2, x3, x4, xn) 를, 입력이 클래스에 속한다는 확신, 즉, f(x) = confidence(class) 에 매핑시키는 함수이다. 이러한 분류는 사용자가 자동적으로 수행되기를 원하는 액션을 전망 또는 추론하기 위해 (예를 들어, 분석 유틸리티들 및 비용들을 고려하여) 확률적 및/또는 통계 기반 분석을 채용할 수 있다. 클라우드 컴퓨팅 서비스들의 경우, 캘린더 데이터로부터 속성들이 유도될 수 있고, 클래스들은 관심 있는 카테고리들 또는 영역들 (예를 들어, 우선순위들의 레벨들) 일 수 있다. 서포트 벡터 머신 (support vector machine; SVM) 은, 채용될 수 있는 분류자의 일 예이다. SVM 은 가능한 입력들의 공간에서 초곡면을 찾음으로써 동작하고, 이 초곡면은 비-트리거링 이벤트들로부터 트리거링 기준들을 분리하려고 시도한다. 직관적으로, 이는 트레이밍 데이터와 가깝지만 동일하지 않은 테스팅 데이터에 대한 분류를 올바르게 한다. 다른 디렉티드 및 언디렉티드 모델 분류 접근법들은, 예를 들어, 나이브 베이즈 (naive Bayes), 베이지안 네트워크들, 판정 트리들, 신경 네트워크들, 퍼지 로직 모델들을 포함하고, 독립성의 상이한 패턴들을 제공하는 확률적 분류 모델들이 채용될 수 있다. 또한, 여기에 사용되는 분류는 우선순위의 모델들을 전개하는데 이용되는 통계적 회귀가 포함된다.
본 명세서로부터 용이하게 인식되는 바와 같이, 다양한 실시형태들은 (예를 들어, 일반적 트레이닝 데이터를 통해) 명백히 훈련될 뿐만 아니라 (예를 들어, 사용자 거동을 관측하는 것, 외부 정보를 수신하는 것을 통해) 묵시적으로 훈련된 분류자들을 채용할 수 있다. 예를 들어, SVM들은 분류자 컨스트럭터 및 피처 선택 모듈 내의 학습 또는 트레이닝 페이즈를 통해 구성된다. 따라서, 분류자(들) 는, 요청이 클라우드 컴퓨팅 인프라스트럭처에 의해 언제 수신될 가능성이 있는지, 최적의 및/또는 효율적인 스케줄링을 용이하게 하도록 클라우드 리소스들이 어떻게 파티셔닝될 수 있는지, 클라우드 리소스들의 세트와 연관된 전력 모드(들) 가 언제 스위칭되어야 하는지 등을 미리 결정된 기준들에 따라 결정하는 것을 포함하지만 이들로 제한되지 않는 다수의 기능들을 자동적으로 학습하고 수행하는데 사용될 수 있다. 기준들은, 이력 패턴들, 사용자 디바이스 거동, 사용자 선호도들, 클라우드 컴퓨팅 서비스 제공자 선호도들 및/또는 정책들, 리소스 가용도 및/또는 용량/능력 등을 포함할 수 있지만 이들로 제한되지 않는다.
도 7 은 클라우드 컴퓨팅 인프라스트럭처와 연관된 빌링을 용이하게 하도록 구성된 일 예시적인 시스템 (700) 의 비제한적인 실시형태의 블록 다이어그램을 예시한 것이다. 하나의 예에서, 클라우드 컴퓨팅 인프라스트럭처 (104), 사용자 디바이스(들) (106), 부분 I 서버들 (5041), 부분 II 서버들 (5042), 및 사용자 디바이스(들) (506) 는, 예를 들어, 시스템들 (100 내지 500) 과 관련하여, 여기에 더욱 완전히 설명되는 기능성을 포함할 수 있다. 일 양태에 따르면, 클라우드 컴퓨팅 인프라스트럭처 (104) 는 리소스 이용과 연관된 빌링 레코드들을 발생시키거나 및/또는 유지하도록 채용될 수 있는 빌링 컴포넌트 (702) 를 포함할 수 있다 (또는 빌링 컴포넌트 (702) 에 통신적으로 커플링될 수 있다). 또한, 빌링 컴포넌트 (702) 는 사용자 디바이스(들) (106) 및 사용자 디바이스(들) (506) 로부터 각각 수신된 계획된 또는 비계획된 요청들을 모니터링할 수 있다. 부가적으로 또는 대안적으로, 빌링 컴포넌트 (702) 는 요청들을 서비스하기 위한 부분 I 서버들 및/또는 부분 II 서버들의 사용을 추적할 수 있다.
통상적으로, 빌링 컴포넌트 (702) 는 빌링 레코드들을 발생시키도록/업데이트하도록 클라우드 컴퓨팅 서비스 제공자에 의해 정의된 하나 이상의 빌링 정책들 및/또는 방식들을 이용할 수 있다. 예를 들어, 빌링 컴포넌트 (702) 는, 사용자 디바이스(들) (506) 로부터 수신된, 비계획된 요청들에 할당된 요금 및/또는 빌링 레이트에 비해, 사용자 디바이스(들) (106) 로부터 수신된, 계획된 요청들에 대해 더 낮은 요금 및/또는 빌링 레이트를 할당할 수 있다. 부가적으로 또는 대안적으로, 빌링 컴포넌트 (702) 는 리소스 이용에 기초하여 요금/빌링 레이트를 부과할 수 있다, 예를 들어, 빌링 컴포넌트 (702) 는 부분 I 서버들 (5042) 의 이용에 비해, 부분 I 서버들 (5041) 의 비용에 대해 더 낮은 비용을 부과할 수 있다. 또한, 빌링 컴포넌트 (702) 는, 예를 들어, 매월, 매년 등으로 사용자에 대한 빌 또는 인보이스를 준비할 수 있고, 이는 사용자 디바이스에게 송신될 수 있거나 및/또는 온라인 포탈을 통해 액세스될 수 있다.
도 8 내지 도 10 은 개시된 요지에 따른 방법들 및/또는 플로 다이어그램들을 예시한 것이다. 설명의 단순화를 위해, 방법들은 일련의 액트들 (acts) 로서 나타내고 설명된다. 다양한 실시형태들은 예시된 액트들에 의해 및/또는 액트들의 순서에 의해 제한되지 않고, 예를 들어, 액트들은 다양한 순서로 및/또는 동시에, 그리고 여기에 제시 및 설명되지 않은 다른 액트들과 함께 발생할 수 있다는 것을 이해해야 한다. 또한, 개시된 요지에 따라 방법들을 구현하기 위해 모든 예시된 액트들이 요구되지 않을 수도 있다. 또한, 방법들은 대안적으로 상태 다이어그램 또는 이벤트들을 통해 일련의 상호관련된 상태들로서 나타낼 수 있다는 점에 주목한다. 부가적으로, 이하에 그리고 이 명세서 전반을 통해 개시된 방법들은 이러한 방법들을 컴퓨터들에 수송 및 전송하는 것을 용이하게 하도록 제조 물품 상에 저장되는 것이 가능하다는 점에 또한 주목한다. 여기에 사용되는 바와 같이, 용어 제조 물품은 컴퓨터 판독가능 디바이스 또는 컴퓨터 판독가능 저장/통신 매체로부터 액세스가능한 컴퓨터 프로그램을 포함하는 것으로 의도된다.
이제 도 8 을 참조하면, 캘린더 데이터에 기초하여 워크로드 예측을 용이하게 하는 일 예시적인 방법 (800) 의 비제한적인 실시형태가 예시된다. 예시적인 방법들은 블록들 802, 804, 806, 및/또는 808 중 하나 이상에 의해 예시된 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다.
캘린더 데이터에 기초하여 워크로드를 예측하는 일 예시적인 프로세스는 블록 802 로 시작될 수도 있다. 블록 802 에서, 캘린더 데이터가, 예를 들어, 가입자 (예를 들어, 개별 사용자 또는 기업) 와 연관된 하나 이상의 통신 디바이스들로부터 수집될 수 있다. 일 예로서, 캘린더 데이터는, 주기적으로, 이벤트에 응답하여, 유휴 모드 또는 낮은 네트워크 트래픽 동안, 특정된 스케줄에서, 요구시 등으로 요청 및/또는 수신될 수 있다. 또한, 캘린더 데이터는 이벤트들, 약속들, 미팅들, 태스크들, 근무 교대들, 해야 할 일의 리스트들, 할당들, 자유/바쁜 시간들 등과 연관된 데이터를 포함할 수 있지만 이들로 제한되지 않는다. 블록 802 이후에 블록 804 가 후속될 수도 있다.
블록 804 에서, 캘린더 데이터의 분석에 기초하여 워크로드가 예측될 수 있다. 하나의 양태에서, 계획된/예측가능한 요청의 도착 및/또는 수신에 관련된 타이밍 데이터가 결정될 수 있다. 또한, 계획된/예측가능한 요청의 타입 및/또는 계획된/예측가능한 요청을 서비스하기 위해 이용된 리소스(들) 가 또한 식별될 수 있다. 블록 804 이후에 블록 806 이 후속될 수도 있다. 블록 806 에서, 워크로드에 기초하여 클라우드 리소스들이 할당될 수 있다. 일 예로서, 클라우드 리소스들은 적어도 2개의 부분들로 분할될 수 있어서, 제 1 부분이 (예를 들어, 기동 지연으로 인해) 비교적 느리게 응답하지만 저비용으로 동작하는 리소스들 (예를 들어, 서버들) 을 포함할 수 있고, 제 2 부분이 즉시 (또는 거의 즉시) 응답하지만 고비용으로 동작할 수 있는 리소스들 (예를 들어, 서버들) 을 포함할 수 있다. 제 1 부분은 계획된/예측가능한 요청들을 프로세싱하는데 이용될 수 있지만, 제 2 부분은 비계획된/예측불가능한 요청들을 프로세싱하는데 이용될 수 있다. 또한, 블록 808 에서, 워크로드에 기초하여 클라우드 리소스들 중 적어도 일부의 클라우드 리소스들의 전력 소비가 제어될 수 있다. 예를 들어, 계획된 요청이 미리 정의된 양의 시간 동안 수신되지 않을 것이라고 결정되었다면, 제 1 부분에서의 서버들은 셧 다운될 수 있다.
도 9 는 효율적인 워크로드 밸런싱 및 요청 서비싱 (servicing) 을 용이하게 하는 일 예시적인 방법 (900) 의 비제한적인 실시형태를 예시한 것이다. 하나의 양태에서, 방법 (900) 은 가입자 디바이스들의 세트로부터 수신된 캘린더 데이터에 적어도 기초하여, 계획된 요청들과 연관된 워크로드를 식별함으로써 클라우드 리소스들을 스케줄링하는 것을 용이하게 할 수 있다. 예시적인 방법들은 블록들 902, 904, 906, 908, 910, 및/또는 912 에 의해 예시된 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다.
효율적인 워크로드 밸런싱을 위한 일 예시적인 프로세스는 블록 902 로 시작될 수 있다. 블록 902 에서, 요청이, 예를 들어, 가입자 디바이스로부터 수신될 수 있다. 블록 902 이후에 판정 블록 904 가 후속될 수도 있다. 판정 블록 904 에서, 이 요청이 계획된 요청인지 여부가 결정될 수 있다. 예를 들어, 그/그녀의 캘린더 데이터 중 적어도 일부가 제공 및/또는 공유된 가입자와 연관된 디바이스로부터 요청이 수신되는지 여부가 식별될 수 있다. 이 요청이 계획된 요청이라고 결정되었다면, 블록 906 에서, 서버들의 세트의 제 1 서브세트가 결정될 수 있다. 일 예로서, 제 1 서브세트는, 하나 이상의 계획된 요청들을 서비스하기 위해 할당되고 전력을 보존하는 (예를 들어, 계획된 요청이 수신될 가능성이 없을 때 저전력 모드로 스위칭되는) 서버들을 포함할 수 있다. 블록 906 이후에 블록 908 이 후속될 수도 있다. 블록 908 에서, 서버들의 세트의 제 1 서브세트를 이용함으로써 저비용으로 요청이 서비스될 수 있다. 대안적으로, 요청이 계획된 요청이 아니라고 판정 블록 904 에서 결정되었다면, 블록 910 에서, 서버들의 제 2 서브세트가 결정될 수 있다. 일 예로서, 제 1 서브세트는, 비계획된 요청들을 서비스하기 위해 채용되고 올웨이즈-온 상태에 있는 서버들을 포함할 수 있다. 블록 910 이후에 블록 912 가 후속될 수도 있다. 블록 912 에서, 서버들의 세트의 제 2 서브세트를 이용함으로써 고비용으로 요청이 서비스될 수 있다.
도 10 은 캘린더 데이터에 기초하여 서버들의 세트를 스케줄링하기 위한 컴퓨터 판독가능 명령들의 세트의 일 예시적인, 비제한적인 실시형태의 플로 다이어그램을 예시한 것이다. 컴퓨터 판독가능 저장 매체 (1000) 는 블록들 1002, 1004, 및/또는 1006 중 하나 이상에 의해 예시된 컴퓨터 실행가능 명령들을 포함할 수 있다. 블록 1002 에서, 이 명령들은 캘린더 데이터를 분석하도록 동작할 수 있다. 일 예로서, 캘린더 데이터는 하나 이상의 사용자 디바이스들로부터 수신될 수 있고 이벤트 데이터, 미팅 데이터, 바쁨/자유 데이터, 약속 데이터 등을 포함할 수 있지만 이들로 제한되지 않는다. 블록 1002 이후에 블록 1004 가 후속될 수도 있다. 1004 에서, 명령들은 분석에 기초하여 타이밍 데이터를 식별하도록 동작할 수 있다. 일 예로서, 타이밍 데이터는 특정 시간 또는 시간 범위에서의 워크로드를 나타낼 수 있다. 또한, 타이밍 데이터는 하나 이상의 사용자 디바이스들로부터 수신되는 예측된 요청과 연관된 데이터 (예를 들어, 수신 시간, 요청 타입 등) 를 포함할 수 있다.
블록 1004 이후에 블록 1006 이 후속될 수도 있다. 블록 1006 에서, 명령들은 예측된 요청을 프로세싱하는 서버들 (예를 들어, 클라우드 컴퓨팅 서버들) 의 세트 중 적어도 일부를 동적으로 스케줄링하도록 동작할 수 있다. 일 예로서, 서버들의 세트 중 적어도 일부는, (예를 들어, 기동 지연으로 인해) 비교적 느리게 응답하지만 저비용으로 동작하는 서버들을 포함할 수 있는 제 1 부분, 및 즉시 (또는 거의 즉시) 응답하지만 고비용으로 동작할 수 있는 서버들을 포함할 수 있는 제 2 부분을 포함하지만 이들로 제한되지 않는 다수의 부분들로 파티셔닝될 수 있다. 또한, 제 1 부분에서의 서버들은 예측된 요청을 프로세싱하는데 이용될 수 있다. 하나의 양태에서, 제 1 부분에서의 서버들의 전력 소비가 제어될 수 있다, 예를 들어, 예측된 요청이 미리 정의된 양의 시간 동안 수신되지 않을 것이라고 결정되었다면, 제 1 부분에서의 서버들이 셧 다운될 수 있다.
예시적인 컴퓨팅 디바이스
상술된 바와 같이, 하나 이상의 사용자 디바이스(들) (106) 는 핸드헬드용, 휴대용, 및 다른 컴퓨팅 디바이스들일 수 있다. 이에 따라, 도 11 에서 후술되는 아래의 범용 사용자 디바이스 (106) 는 컴퓨팅/통신 디바이스의 단지 하나의 예이다.
요구되지 않았지만, 실시형태들은, 디바이스 또는 오브젝트에 대한 서비스들의 개발자에 의한 사용을 위해, 운영 시스템을 통해 부분적으로 구현될 수 있거나, 및/또는 여기에 설명된 다양한 실시형태들의 하나 이상의 기능적 양태들을 수행하도록 동작하는 애플리케이션 소프트웨어 내에 포함될 수 있다. 소프트웨어는 클라이언트 워크스테이션들, 서버들 또는 다른 디바이스들과 같은 하나 이상의 컴퓨터들에 의해 실행되는, 프로그램 모듈들과 같은 컴퓨터 실행가능 명령들의 일반적인 맥락에서 설명될 수 있다. 컴퓨터 시스템들은 데이터를 통신하는데 사용될 수 있는 다양한 구성들 및 프로토콜들을 가져서, 어떠한 특정 구성 또는 프로토콜도 제한하는 것으로 간주되어서는 안된다는 점에 주목할 수 있다.
도 11 은 여기에 설명된 실시형태들의 하나 이상의 양태들이 구현될 수 있는 일 예시적인 사용자 디바이스 (106) 의 블록 다이어그램을 예시한 것이다. 하나의 예에서, 사용자 디바이스 (106) 는 프로세싱 유닛 (1120), 시스템 메모리 (1130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트들을 프로세싱 유닛 (1120) 에 커플링하는 시스템 버스 (1122) 를 포함할 수 있지만 이들로 제한되지 않는다.
하나의 양태에서, 사용자 디바이스 (106) 는 다양한 컴퓨터 판독가능 저장 매체를 포함할 수 있고 사용자 디바이스 (106) 에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 일 예로서, 시스템 메모리 (1130) 는 ROM (read only memory) 및/또는 RAM (random access memory) 와 같은 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 판독가능 매체를 포함할 수 있다. 제한이 아닌 예로서, 메모리 (1130) 는 또한 운영 시스템, 애플리케이션 프로그램들, 다른 프로그램 모듈들, 및 프로그램 데이터를 포함할 수 있다. 또한, 메모리 (1130) 는 도 1 의 리소스 관리 컴포넌트 (108) 로 송신될 수 있는 캘린더 데이터 (110) 를 저장할 수 있다.
사용자는 입력 디바이스들 (1140) 을 통해 커맨드들 및 정보 (예를 들어, 캘린더 데이터) 를 사용자 디바이스 (106) 에 입력할 수 있다. 모니터, 터치 스크린 디스플레이 또는 다른 타입의 디스플레이 또는 디스플레이 디바이스는 또한 출력 인터페이스 (1150) 와 같은 인터페이스를 통해 시스템 버스 (1122) 에 연결된다. 또한, 사용자 디바이스 (106) 는 또한 출력 인터페이스 (1150) 를 통해 연결될 수 있는 프린터 및 스피커들과 같은 다른 주변장치 출력 컴포넌트들 및/또는 디바이스들을 포함할 수 있다.
하나의 양태에서, 사용자 디바이스 (106) 는 원격 컴퓨터 (1170) 와 같은 하나 이상의 다른 원격 컴퓨터들에 대한 논리적 연결들을 사용하여 네크워킹된 또는 분산된 환경에서 동작할 수 있다. 예를 들어, 원격 컴퓨터 (1170) 는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스 또는 다른 통상의 네트워크 노드일 수 있고, 사용자 디바이스 (106) 에 대해 상술된 엘리먼트들의 전부 또는 임의의 것을 포함할 수 있다. 도 11 에 나타낸 논리적 연결들은 LAN (local area network) 또는 WAN (wide area network) 과 같은 네트워크 (1172) 를 포함하지만, 또한 다른 통신 네트워크들/버스들을 포함할 수 있다. 이러한 네트워킹 환경들은 가정들, 사무실들, 엔터프라이즈-와이드 컴퓨터 네트워크들, 인트라넷들 및 인터넷에서 흔하다. 일 예로서, 캘린더 데이터 (110) 및 요청(들) (112) 은 네트워크 인터페이스 (1160) 를 통해 도 1 의 리소스 관리 컴포넌트 (108) 에 송신될 수 있다.
예시적인 컴퓨팅 환경
도 12 는 본 개시물에 따라 워크로드를 스케줄링하도록 배열된 일 예시적인 컴퓨팅 디바이스 (1200) 를 예시한 블록 다이어그램이다. 매우 기본적인 구성 (1202) 에서, 컴퓨팅 디바이스 (1200) 는 통상적으로 하나 이상의 프로세서들 (1204) 및 시스템 메모리 (1206) 를 포함한다. 메모리 버스 (1208) 는 프로세서 (1204) 와 시스템 메모리 (1206) 사이에서 통신하기 위해 사용될 수 있다.
원하는 구성에 의존하여, 프로세서 (1204) 는 마이크로프로세서 (μP), 마이크로제어기 (μC), 디지털 신호 프로세서 (DSP) 또는 이들의 임의의 조합을 포함하지만, 이들로 제한되지 않는 임의의 타입으로 이루어질 수 있다. 프로세서 (1204) 는 레벨 1 캐시 (1210) 및 레벨 2 캐시 (1212) 와 같은 하나 이상의 레벨의 캐싱, 프로세서 코어 (1214) 및 레지스터들 (1216) 을 포함할 수 있다. 예시적인 프로세서 코어 (1214) 는 산술 논리 유닛 (ALU), 부동 소수점 유닛 (FPU), 디지털 신호 프로세싱 코어 (DSP 코어), 또는 이들의 임의의 조합을 포함할 수 있다. 예시적인 메모리 제어기 (1218) 는 또한 프로세서 (1204) 에서 사용될 수 있거나, 또는 일부 구현들에서 메모리 제어기 (1218) 는 프로세서 (1204) 의 내부 부분일 수 있다.
원하는 구성에 의존하여, 시스템 메모리 (1206) 는 휘발성 메모리 (예컨대, RAM), 비휘발성 메모리 (예컨대, ROM, 플래시 메모리 등), 또는 이들의 임의의 조합을 포함하지만 이들로 제한되지 않는 임의의 타입으로 이루어질 수 있다. 시스템 메모리 (1206) 는 운영 시스템 (1220), 하나 이상의 애플리케이션들 (1222), 및 프로그램 데이터 (1224) 를 포함할 수 있다. 애플리케이션 (1222) 은 도 8 의 프로세스 (800) 에 대하여 설명된 것들을 포함하여 여기에 설명된 기능들을 수행하도록 배열된 워크로드 스케줄링 알고리즘 (1226) 을 포함할 수 있다. 프로그램 데이터 (1224) 는 여기에 설명된 것과 같은 워크로드 스케줄링 알고리즘 (1226) 으로의 동작을 위해 유용할 수 있는 집성된 캘린더 데이터 (1228) 를 포함할 수 있다. 일부 실시형태들에서, 애플리케이션 (1222) 은 운영 시스템 (1220) 상의 프로그램 데이터 (1224) 로 동작하도록 배열될 수 있어서 효율적인 워크로드 스케줄링의 구현들이 여기에 설명된 바와 같이 제공될 수 있게 한다. 이러한 설명된 기본 구성 (1202) 은 도 12 에서 안쪽 점선 내의 컴포넌트들에 의해 예시된다.
컴퓨팅 디바이스 (1200) 는 부가적인 특징들 또는 기능성, 및 기본 구성 (1202) 과 임의의 필요한 디바이스들 및 인터페이스들 사이의 통신들을 용이하게 하기 위한 부가적인 인터페이스들을 가질 수 있다. 예를 들어, 버스/인터페이스 제어기 (1230) 는 스토리지 인터페이스 버스 (1234) 를 통해 기본 구성 (1202) 과 하나 이상의 데이터 스토리지 디바이스들 (1232) 사이의 통신들을 용이하게 하는데 사용될 수 있다. 데이터 스토리지 디바이스들 (1232) 은 착탈식 스토리지 디바이스들 (1236), 비착탈식 스토리지 디바이스들 (1238), 또는 이들의 조합일 수 있다. 착탈식 및 비착탈식 스토리지 디바이스들의 예들은, 몇 가지 예를 들자면, 플렉시블 디스크 드라이브들 및 하드 디스크 드라이브들 (HDD) 과 같은 자기 디스크 디바이스들, 컴팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들과 같은 광학 디스크 드라이브들, 솔리드 스테이트 드라이브들 (SSD) 및 테이프 드라이브들을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성의 착탈식 및 비착탈식 매체를 포함할 수 있다.
시스템 메모리 (1206), 착탈식 스토리지 디바이스들 (1236) 및 비착탈식 스토리지 디바이스들 (1238) 은 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD) 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 원하는 정보를 저장하는데 사용될 수 있고, 컴퓨팅 디바이스 (1200) 에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이들로 제한되지 않는다. 이러한 임의의 컴퓨터 저장 매체는 컴퓨팅 디바이스 (1200) 의 부분일 수 있다.
컴퓨팅 디바이스 (1200) 는 또한 다양한 인터페이스 디바이스들 (예를 들어, 출력 디바이스들 (1242), 주변장치 인터페이스들 (1244) 및 통신 디바이스들 (1246)) 로부터 버스/인터페이스 제어기 (1230) 를 통해 기본 구성 (1202) 으로의 통신을 용이하게 하기 위한 인터페이스 버스 (1240) 를 포함할 수 있다. 예시적인 출력 디바이스들 (1242) 은 하나 이상의 A/V 포트들 (1252) 을 통해 디스플레이 또는 스피커들과 같은 다양한 외부 디바이스들로 통신하도록 구성될 수 있는 그래픽 프로세싱 유닛 (1248) 및 오디오 프로세싱 유닛 (1250) 을 포함한다. 예시적인 주변장치 인터페이스들 (1244) 은 하나 이상의 I/O 포트들 (1258) 을 통해 입력 디바이스들 (예를 들어, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 또는 다른 주변장치 디바이스들 (예를 들어, 프린터, 스캐너 등) 과 같은 외부 디바이스들과 통신하도록 구성될 수 있는 직렬 인터페이스 제어기 (1254) 또는 병렬 인터페이스 제어기 (1256) 를 포함한다. 예시적인 통신 디바이스 (1246) 는, 하나 이상의 통신 포트들 (1264) 을 통해 네트워크 통신 링크에 걸쳐 하나 이상의 다른 컴퓨팅 디바이스들 (1262) 과의 통신들을 용이하게 하도록 배열될 수 있는 네트워크 제어기 (1260) 를 포함한다.
네트워크 통신 링크는 통신 매체의 하나의 예일 수 있다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 변조된 데이터 신호에서의 다른 데이터, 예컨대, 반송파 또는 다른 수송 메커니즘에 의해 구현될 수 있고, 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호" 는 그 특징 세트 중 하나 이상을 갖는 신호일 수 있거나, 신호 내의 정보를 인코딩하도록 하는 방식으로 변경될 수 있다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체, 및 음향, 무선 주파수 (RF), 마이크로파, 적외선 (IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다. 여기에 사용된 용어 컴퓨터 판독가능 매체는 저장 매체 및 통신 매체 양쪽 모두를 포함할 수 있다.
컴퓨팅 디바이스 (1200) 는 휴대폰, 개인 휴대 정보 단말기 (PDA), 개인용 미디어 플레이어 디바이스, 무선 웹-와치 디바이스, 개인용 헤드셋 디바이스, 애플리케이션용 디바이스, 또는 상기의 기능들 중 임의의 기능을 포함하는 하이브리드 디바이스와 같은 소형 폼 팩터 휴대용 (또는 모바일) 전자 디바이스의 일부분으로서 구현될 수 있다. 컴퓨팅 디바이스 (1200) 는 또한 랩톱 컴퓨터와 비-랩톱 컴퓨터 양쪽의 구성들을 포함하는 개인용 컴퓨터로서 구현될 수 있다.
도 13 은 본 개시물의 요지가 상호작용할 수 있는 샘플-컴퓨팅 환경 (1300) 의 개략적 블록 다이어그램이다. 시스템 (1300) 은 하나 이상의 클라이언트(들) (1310) 를 포함한다. 클라이언트(들) (1310) 는 하드웨어 및/또는 소프트웨어 (예를 들어, 스레드들, 프로세스들, 컴퓨팅 디바이스들) 일 수 있다. 시스템 (1300) 은 또한 하나 이상의 서버(들) (1330) 를 포함한다. 따라서, 시스템 (1300) 은 다른 모델들 중에서, 2-티어 (two-tier) 클라이언트 서버 모델 또는 멀티-티어 모델 (예를 들어, 클라이언트, 미들 티어 서버, 데이터 서버) 에 대응할 수 있다. 서버(들) (1330) 는 또한 하드웨어 및/또는 소프트웨어 (예를 들어, 스레드들, 프로세스들, 컴퓨팅 디바이스들) 일 수 있다. 서버들 (1330) 은, 예를 들어, 본 개시물을 채용함으로써 변환들을 수행하기 위한 스레드들을 하우징할 수 있다. 클라이언트 (1310) 와 서버 (1330) 사이의 하나의 가능한 통신은 2개 이상의 컴퓨터 프로세스들 사이에서 송신된 데이터 패킷의 형태로 될 수 있다.
시스템 (1300) 은 클라이언트(들) (1310) 와 서버(들) (1330) 사이의 통신들을 용이하게 하도록 채용될 수 있는 통신 프레임워크 (1350) 를 포함한다. 클라이언트(들) (1310) 는, 클라이언트(들) (1310) 에 로컬인 정보를 저장하도록 채용될 수 있는 하나 이상의 클라이언트 데이터 스토어(들) (1320) 에 동작가능하게 연결된다. 이와 마찬가지로, 서버(들) (1330) 는, 서버(들) (1330) 에 로컬인 정보를 저장하도록 채용될 수 있는 하나 이상의 서버 데이터 스토어(들) (1340) 에 동작가능하게 연결된다.
본 개시물은 다양한 양태들의 예시들로서 의도되는, 본 출원에 설명된 특정 실시형태들의 관점으로 제한되어서는 안된다. 당업자에 의해 인식되는 것과 같이, 본 개시물의 사상 및 범위를 벗어남 없이 다양한 변경들 및 변형들이 이루어질 수 있다. 본 개시물의 범위 내에서 기능적으로 등가의 방법들 및 장치들은, 여기에 열거된 방법들 및 장치들에 부가하여, 전술된 설명들로부터 당업자에게 명백할 것이다. 이러한 변경들 및 변형들은 첨부된 청구항들의 범위 내에 있도록 의도된다. 본 개시물은 이러한 청구항들이 권리를 가지는 등가물들의 전체 범위와 함께, 첨부된 청구항들의 조항에 의해서만 제한되어야 한다. 본 개시물은 물론 변화할 수 있는, 특정 방법들, 시약들, 화합물들, 조성들 또는 생물학적 시스템들에 제한되지 않는 것을 이해해야 한다. 또한, 여기에 사용된 전문용어는 오직 특정 실시형태들을 설명하기 위한 것이며, 제한하려고 의도된 것이 아님을 이해해야 한다.
예시된 실시형태에서, 여기에 설명된 동작들, 프로세스들 등 중 임의의 것은 컴퓨터 판독가능 매체 상에 저장된 컴퓨터 판독가능 명령들로서 구현될 수 있다. 컴퓨터 판독가능 명령들은 모바일 유닛, 네트워크 엘리먼트, 및/또는 임의의 다른 컴퓨팅 디바이스의 프로세서에 의해 수행될 수 있다.
시스템들의 양태들의 하드웨어와 소프트웨어 구현들 사이에는 구별이 거의 없다; 하드웨어 또는 소프트웨어의 사용은 일반적으로 (그러나 특정 맥락에서 하드웨어와 소프트웨어 사이의 선택이 중요하게 될 수 있다는 점에서 항상 그런 것은 아니지만) 비용 대비 효율의 트레이드오프를 나타내는 설계상 선택 (design choice) 이다. 여기에 설명된 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 영향 받을 수 있는 다양한 비이클들 (vehicles) (예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어) 이 있으며, 선호되는 비이클은 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 전개되는 맥락에 따라 변경될 것이다. 예를 들어, 만약 구현자가 속도 및 정확도가 중요하다고 결정하면, 구현자는 주로 하드웨어 및/또는 펌웨어 비이클을 선택할 수 있고; 만약 유연성이 중요하다면, 구현자는 주로 소프트웨어 구현을 선택할 수 있으며; 또는, 또 다른 대안으로서, 구현자는 하드웨어, 소프트웨어, 및/또는 펌웨어 중 일부 조합을 선택할 수 있다.
전술된 상세한 설명은 블록 다이어그램들, 플로차트들, 및/또는 예들의 사용을 통해 디바이스들 및/또는 프로세스들의 다양한 실시형태들을 설명하였다. 이러한 블록 다이어그램들, 플로차트들, 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 이러한 블록 다이어그램들, 플로차트들, 또는 예들 내에서의 각각의 기능 및/또는 동작은, 광범위한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 실질적인 임의의 조합에 의해, 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 당업자에 의해 이해될 것이다. 하나 실시형태에서, 여기에 설명된 요지 중 여러 부분들은 ASIC들 (Application Specific Integrated Circuits), FPGA들 (Field Programmable Gate Arrays), DSP들 (digital signal processors), 또는 다른 집적 형태들을 통해 구현될 수 있다. 그러나, 당업자라면, 여기에 개시된 실시형태들의 일부 양태들이, 전체적으로 또는 부분적으로, 집적 회로들에서, 하나 이상의 컴퓨터들 상에서 실행하는 하나 이상의 컴퓨터 프로그램들 (예를 들어, 하나 이상의 컴퓨터 시스템들 상에서 실행하는 하나 이상의 프로그램들) 로서, 하나 이상의 프로세스들 상에서 실행하는 하나 이상의 프로그램들 (예를 들면, 하나 이상의 마이크로프로세서들 상에서 실행하는 하나 이상의 프로그램들) 로서, 펌웨어로서, 또는 실질적으로 이들의 임의의 조합으로서, 등가적으로 구현될 수 있으며, 회로부를 설계하는 것 및/또는 소프트웨어 및/또는 펌에어에 대한 코드를 기입하는 것은 본 개시물의 견지에서 당업자의 스킬 내에 있을 것임을 알 것이다. 또한, 여기에 설명된 요지의 메커니즘들이 다양한 형태들의 프로그램 제품으로서 배포될 수 있으며, 여기에 설명된 요지의 예시적인 실시형태는 이 배포를 실제 실행하기 위해 사용되는 특정한 타입의 신호 베어링 매체에 관계없이 적용됨을 알 것이다. 신호 베어링 매체의 예들은, 다음의 것, 즉, 플렉시블 디스크, 하드 디스크 드라이브, CD, DVD, 디지털 테이프, 컴퓨터 메모리 등과 같은 기록가능한 타입의 매체; 및 디지털 및/또는 아날로그 통신 매체 (예를 들면, 광 섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 송신 타입의 매체를 포함하지만, 이들로 제한되지 않는다.
당업자라면, 여기서 설명된 형식으로 디바이스들 및/또는 프로세스들을 설명하고, 그 후에 공학 실무를 사용하여 그러한 설명된 디바이스들 및/또는 프로세스들을 데이터 프로세싱 시스템들에 통합한다는 것은 당해 분야에서는 일반적이란 것을 인식할 것이다. 즉, 여기에 설명된 디바이스들 및/또는 프로세스들 중 적어도 일부는 합당한 실험량을 통해 데이터 프로세싱 시스템에 통합될 수 있다. 당업자라면, 전형적인 데이터 프로세싱 시스템은 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 장치, 휘발성 및 비휘발성 메모리와 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 운영 시스템들, 드라이버들, 그래픽 사용자 인터페이스들 및 애플리케이션 프로그램들과 같은 컴퓨테이션 엔티티들 (computational entities), 터치 패드 또는 스크린과 같은 하나 이상의 상호작용 디바이스들, 및/또는 피드백 루프들 및 제어 모터들 (예를 들면, 포지션 및/또는 속력을 감지하기 위한 피드백; 컴포넌트들 및/또는 양들을 이동 및/또는 조정하기 위한 제어 모터들) 를 포함하는 제어 시스템들 중 하나 이상을 일반적으로 포함한다는 것을 인식할 것이다. 전형적인 데이터 프로세싱 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템들에서 전형적으로 발견되는 바와 같은 임의의 적합한 상업적으로 이용가능한 컴포넌트들을 이용하여 구현될 수 있다.
때때로, 여기에 설명된 요지는 상이한 다른 컴포넌트들 내에 포함된, 또는 상이한 다른 컴포넌트들과 연결된 상이한 컴포넌트들을 예시한다. 이렇게 나타낸 아키텍처들은 단순히 예들일 뿐이고, 사실 동일한 기능성을 달성하는 많은 다른 아키텍처들이 구현될 수 있다는 것을 이해해야 한다. 개념적인 면에서, 동일한 기능성을 달성하기 위한 컴포넌트들의 임의의 배열은, 원하는 기능이 달성되도록 효과적으로 "연관" 된다. 그러므로, 특정 기능성을 달성하기 위해 여기에서 결합된 임의의 2개의 컴포넌트들은, 아키텍처들 또는 중간 컴포넌트들에 관계없이, 원하는 기능성을 달성하도록 서로 "연관될" 것으로 보여질 수 있다. 이와 마찬가지로, 이렇게 연관된 임의의 2개의 컴포넌트들은 또한 원하는 기능성을 달성하도록 서로 "동작가능하게 연결된" 것으로, 또는 "동작가능하게 커플링된" 것으로도 보여질 수 있으며, 이렇게 연관될 수 있는 임의의 2개의 컴포넌트들은 또한 원하는 기능성을 달성하도록 서로 "동작가능하게 커플링될 수 있는" 것으로도 보여질 수 있다. 동작가능하게 커플링될 수 있는 것의 구체적인 예들은 물리적으로 맞물리거나 및/또는 물리적으로 상호작용하는 컴포넌트들 및/또는 무선으로 상호작용가능하거나 및/또는 무선으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작용하거나 및/또는 논리적으로 상호작용가능한 컴포넌트들을 포함하지만, 이들로 제한되지 않는다.
여기에 실질적으로 임의의 복수 및/또는 단수 용어들을 사용하는 것과 관련하여, 당업자는 문맥 및/또는 애플리케이션에 적절하도록 복수에서 단수로 및/또는 단수에서 복수로 전환할 수 있다. 다양한 단수/복수 전환은 명백함을 위해 여기에 명확하게 설명될 수 있다.
일반적으로, 여기에 그리고 특히 첨부된 청구항들 (예를 들어, 첨부된 청구항들의 본문들) 에서 사용되는 용어들은 일반적으로 "개방적인 (open)" 용어들 (예를 들어, "포함하는 (including)" 이라는 용어는 "포함하지만 제한되지 않는" 으로 해석되어야 하고, "갖는 (having)" 이라는 용어는 "적어도 갖는" 으로 해석되어야 하고, "포함한다" 라는 용어는 "포함하지만 제한되지 않는다" 로 해석되어야 한다는 것 등) 로서 의도된다는 것이 당업자에 의해 이해될 것이다. 또한, 도입된 청구항 기재의 구체적 수가 의도되는 경우, 이러한 의도는 청구항에 명시적으로 기재될 것이며, 이러한 기재의 부재 시에는 그러한 의도가 없다는 것이 당업자에 의해 이해될 것이다. 예를 들어, 이해를 돕기 위하여, 다음의 첨부된 청구항들은 청구항 기재를 도입하기 위해 "적어도 하나" 및 "하나 이상" 의 서두 어구의 사용을 포함할 수 있다. 그러나, 이러한 어구의 사용은, 동일 청구항이 서두 어구 "하나 이상" 또는 "적어도 하나" 및 "a" 또는 "an" 과 같은 부정관사 (예를 들어, "a" 및/또는 "an" 은 "적어도 하나" 또는 "하나 이상" 을 의미하도록 해석되어야 한다) 를 포함할 때에도, 부정관사 "a" 또는 "an" 에 의한 청구항 기재의 도입이 이렇게 도입된 청구항 기재를 포함하는 임의의 특정 청구항을 하나의 이러한 기재만을 포함하는 실시형태들로 제한한다는 것을 내포하는 것으로 해석되어서는 안되며; 청구항 기재를 도입하는데 사용되는 정관사의 사용에 대해서도 동일하게 유효하다. 또한, 도입된 청구항 기재의 구체적 수가 명시적으로 기재되는 경우에도, 당업자는 이러한 기재가 적어도 기재된 수 (예를 들어, 다른 수식어 없이, "2개의 기재" 에 대한 그대로의 기재는, 적어도 2개의 기재들 또는 2개 이상의 기재들을 의미한다) 를 의미하는 것으로 해석되어야 한다는 것을 인식할 것이다. 또한, "A, B 및 C 중 적어도 하나 등" 과 유사한 관례가 사용되는 경우에서, 일반적으로 이러한 구성은 당업자가 그 관례를 이해할 것이라는 의미로 의도된다 (예를 들어, "A, B 및 C 중 적어도 하나를 갖는 시스템" 은 A 만을, B 만을, C 만을, A 와 B 를 함께, A 와 C 를 함께, B 와 C 를 함께, 및/또는 A, B 및 C 를 함께 등을 갖는 시스템을 포함하지만 이들로 제한되지 않을 것이다). "A, B 또는 C 중 적어도 하나 등" 과 유사한 관례가 사용되는 경우에서, 일반적으로 이러한 구성은 당업자가 그 관례를 이해할 것이라는 의미로 의도된다 (예를 들어, "A, B 또는 C 중 적어도 하나를 갖는 시스템" 은 A 만을, B 만을, C 만을, A 와 B 를 함께, A 와 C 를 함께, B 와 C 를 함께, 및/또는 A, B 및 C 를 함께 갖는 시스템 등을 포함하지만 이들로 제한되지 않을 것이다). 또한, 상세한 설명, 청구항들 또는 도면들에서, 2개 이상의 택일적 용어를 제시하는 사실상 임의의 이접 단어 및/또는 어구는 용어들 중 하나, 용어들 중 어느 하나 또는 양쪽의 용어 모두를 포함할 가능성들을 고려하도록 이해되어야 한다는 것이 당업자에 의해 이해될 것이다. 예를 들어, 어구 "A 또는 B" 는 "A" 또는 "B" 또는 "A 및 B" 의 가능성을 포함하도록 이해될 것이다.
또한, 용어들 "사용자", "가입자", "고객", "소비자" 등은, 맥락이 용어들 간의 특정 구별(들) 을 보증하지 않는 한, 본 명세서 전반에 걸쳐 상호교환가능하게 채용된다. 이러한 용어들은, 시뮬레이팅된 비전, 사운드 인식 등을 제공할 수 있는 인공 지능 (예를 들어, 복잡한 수학적 형식들에 기초하여 추론을 행하는 능력) 을 통해 지원되는 자동화된 컴포넌트들 또는 휴먼 엔티티들로 지칭할 수 있다는 것을 이해해야 한다. 여기에 사용된 바와 같이, "추론하다" 또는 "추론" 과 같은 용어는 이벤트들 및/또는 데이터를 통해 캡처된 관측들의 세트로부터 시스템, 환경, 및/또는 사용자의 상태들에 관해 도출하거나 추론하는 프로세스를 일반적으로 지칭한다. 추론은 특정 맥락 또는 액션을 식별하도록 채용될 수 있거나, 또는, 예를 들어, 상태들에 걸친 확률 분포를 발생시킬 수 있다. 추론은 확률적일 수 있다, 즉, 데이터 및 이벤트들의 고려에 기초하여 관심 있는 상태들에 걸친 확률 분포의 컴퓨테이션일 수 있다. 추론은 또한 이벤트들 및/또는 데이터의 세트로부터 보다 높은 레벨의 이벤트들을 구성하기 위해 채용된 기법들을 지칭할 수 있다. 이러한 추론 결과들은, 이벤트들이 시간적으로 근접하게 상관되든 아니든, 그리고 이벤트들 및 데이터가 하나의 또는 몇몇의 이벤트 및 데이터 소스들로부터 유래하든 간에, 관측된 이벤트들의 세트 및/또는 저장된 이벤트 데이터로부터 새로운 이벤트들 또는 액션들의 구성을 발생시킨다.
당업자에 의해 인식되는 것과 같이, 기입된 설명을 제공하는 것과 같은 임의의 및 모든 목적들을 위해, 여기에 개시된 모든 범위들은 또한 임의의 그리고 모든 가능한 하위범위들 및 그 하위범위들의 조합들을 포함한다. 임의의 열거된 범위는 동일한 범위가 최소한 1/2, 1/3, 1/4, 1/5, 1/10 등과 동일하게 분할되는 것을 충분히 설명하고 가능하게 하는 것으로 용이하게 인식될 수 있다. 비제한적인 예로서, 여기에 설명되는 각각의 범위는 1/3 미만, 1/3 중간, 1/3 이상 등으로 용이하게 분할될 수 있다. 당업자에 의해 인식되는 것과 같이, "까지 (up to)", "적어도 (at least)" 등과 같은 모든 언어는 언급된 수를 포함하며, 그 후에 전술된 것과 같은 하위범위들로 분할될 수 있는 범위들을 지칭한다. 결국, 당업자에 의해 인식되는 것과 같이, 범위는 각각의 개별 멤버를 포함한다. 따라서, 예를 들어, 1개 내지 3개의 셀들을 갖는 그룹은 1, 2, 또는 3개의 셀들을 갖는 그룹들을 지칭한다. 이와 유사하게, 1개 내지 5개의 셀들을 갖는 그룹은 1, 2, 3, 4 또는 5개의 셀들을 갖는 그룹들 등을 지칭한다.
전술된 것으로부터, 본 개시물의 다양한 실시형태들은 예시의 목적으로 여기에 설명되었고 본 개시물의 범위 및 사상을 벗어남 없이 다양한 변경들이 이루어질 수 있다는 것을 인식할 것이다. 이에 따라, 여기에 개시된 다양한 실시형태들은 제한되는 것으로 의도되지 않으며, 진정한 범위 및 사상은 하기의 특허청구범위에 의해 나타난다.

Claims (35)

  1. 프로세서를 포함하는 시스템에 의해, 가입자들의 각 제 1 세트들과 연관된 디바이스들의 각 제 1 세트들로부터 캘린더 데이터를 수신하는 것;
    상기 캘린더 데이터의 분석에 부분적으로 기초하여 특정 시간 또는 시간 범위에서 수행될 워크로드를 결정하는 것; 및
    상기 워크로드에 기초하여, 상기 디바이스들의 제 1 세트로부터 수신된 요청들의 제 1 세트에 응답하기 위한 서버들의 제 1 세트, 및 상기 캘린더 데이터를 공유하지 않는 가입자들의 각 제 2 세트들과 연관된 디바이스들의 각 제 2 세트들로부터 수신된 요청들의 제 2 세트에 응답하기 위한 서버들의 제 2 세트를 할당하는 것
    을 포함하고,
    상기 서버들의 제 1 세트는, 상기 서버들의 제 2 세트보다 더 느린, 요청들에 응답하기 위한 응답 시간을 갖는, 방법.
  2. 제 1 항에 있어서,
    상기 워크로드에 따라 상기 서버들의 제 1 세트의 로드 밸런싱을 용이하게 하는 것을 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 결정하는 것은, 상기 분석에 기초하여, 상기 디바이스들의 제 1 세트들 중 한 디바이스로부터 수신되는 상기 요청들의 제 1 세트 중 한 요청과 연관된 타이밍 데이터를 결정하는 것을 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 수신하는 것은, 상기 디바이스들의 제 1 세트에 관련된 기업과 연관된 캘린더 데이터를 수신하는 것을 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 요청들의 제 1 세트 중 한 요청이 수신되었다고 결정하는 것; 및
    상기 요청의 서비싱 (servicing) 을 용이하게 하기 위해 상기 요청을 상기 서버들의 제 1 세트에게 지향시키는 것
    을 더 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 할당하는 것은, 상기 요청의 수신의 시간이 상기 분석에 기초하여 결정될 수 없다는 결정에 응답하여 상기 요청들의 제 2 세트 중 한 요청을 서비스하기 위해 상기 서버들의 제 2 세트를 할당하는 것을 포함하는, 방법.
  7. 제 6 항에 있어서,
    상기 요청이 수신되었다고 결정하는 것; 및
    상기 요청의 서비싱을 용이하게 하기 위해 상기 요청을 상기 서버들의 제 2 세트에게 지향시키는 것
    을 더 포함하는, 방법.
  8. 제 3 항에 있어서,
    상기 타이밍 데이터에 기초하여 상기 서버들의 제 1 세트를 스케줄링하는 것을 더 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 스케줄링하는 것은, 상기 서버들의 제 1 세트와 연관된 전력 관리를 용이하게 하는 것을 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 용이하게 하는 것은, 상기 요청이 수신될 가능성이 없는 기간 동안, 상기 서버들의 제 1 세트 중 적어도 일부를 셧 다운 모드 또는 저전력 모드 중 적어도 하나의 모드로 스위칭하는 것을 포함하는, 방법.
  11. 제 9 항에 있어서,
    상기 용이하게 하는 것은, 상기 요청이 수신될 가능성이 있는 기간 동안, 상기 서버들의 제 1 세트 중 적어도 일부를 스위칭 온하는 것을 포함하는, 방법.
  12. 제 1 항에 있어서,
    상기 요청들의 제 1 세트 중 제 1 요청을 서비스하기 위해 제 1 빌링 레이트를 할당하는 것; 및
    상기 요청들의 제 2 세트 중 제 2 요청을 서비스하기 위해, 상기 제 1 빌링 레이트보다 더 높은 제 2 빌링 레이트를 할당하는 것
    을 더 포함하는, 방법.
  13. 제 1 항에 있어서,
    상기 수신하는 것은, 주기적으로, 미리 정의된 시간에, 요구시, 미리 정의된 스케줄에 기초하여, 또는 이벤트가 발생하였다는 결정에 응답하여 중 적어도 하나로 상기 캘린더 데이터를 수신하는 것을 포함하는, 방법.
  14. 메모리; 및
    상기 메모리에 통신적으로 커플링되어, 하나 이상의 컴퓨터 실행가능 컴포넌트들의 실행을 용이하게 하는 적어도 하나의 프로세서
    를 포함하고,
    상기 하나 이상의 컴퓨터 실행가능 컴포넌트들은,
    제 1 가입자와 연관된 디바이스들의 제 1 세트로부터 캘린더 데이터를 수신하도록 구성된 데이터 수집 컴포넌트; 및
    상기 캘린더 데이터에 기초하여, 서버들의 세트 중 제 1 부분을 스케줄링하여 상기 디바이스들의 제 1 세트 중 제 1 디바이스로부터의 제 1 요청에 대한 서비스의 프로비전 (provision) 을 용이하게 하고, 상기 서버들의 세트 중 제 2 부분을 스케줄링하여 상기 캘린더 데이터를 공유하지 않는 제 2 가입자와 연관된 디바이스들의 제 2 세트 중 제 2 디바이스로부터의 제 2 요청에 대한 서비스의 프로비전을 용이하게 하도록 구성된 리소스 관리 컴포넌트
    를 포함하는, 시스템.
  15. 제 14 항에 있어서,
    상기 컴퓨터 실행가능 컴포넌트들은,
    상기 캘린더 데이터에 기초하여 상기 서버들의 세트의 로드 밸런싱을 용이하게 하도록 구성된 스케줄링 컴포넌트를 더 포함하는, 시스템.
  16. 제 14 항에 있어서,
    상기 컴퓨터 실행가능 컴포넌트들은,
    상기 리소스 관리 컴포넌트에 의해 상기 서버들의 세트 중 적어도 제 1 부분의 스케줄링을 용이하게 하도록 상기 캘린더 데이터를 평가하도록 구성된 분석 컴포넌트를 더 포함하는, 시스템.
  17. 제 16 항에 있어서,
    상기 분석 컴포넌트는 또한, 상기 캘린더 데이터에 기초하여 상기 제 1 요청의 수신과 연관된 기간을 결정하도록 구성되는, 시스템.
  18. 제 17 항에 있어서,
    상기 리소스 관리 컴포넌트는 또한, 상기 기간에 기초하여 상기 서버들의 세트 중 적어도 제 1 부분의 전력 관리를 용이하게 하도록 구성되는, 시스템.
  19. 제 14 항에 있어서,
    상기 컴퓨터 실행가능 컴포넌트들은,
    상기 제 1 요청에 대한 서비스의 프로비전에 적용가능한 제 1 빌링 레이트, 및 상기 제 2 요청에 대한 서비스의 프로비전에 적용가능한 제 2 빌링 레이트를 부과하도록 구성된 빌링 컴포넌트를 더 포함하고,
    상기 제 1 빌링 레이트는 상기 제 2 빌링 레이트보다 더 낮은, 시스템.
  20. 삭제
  21. 컴퓨터 실행가능 명령들을 저장한 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령들은, 실행에 응답하여, 프로세서를 포함하는 컴퓨팅 시스템으로 하여금,
    가입자들의 각 제 1 세트들과 연관된 디바이스들의 각 제 1 세트들로부터 수신된 캘린더 데이터를 분석하는 것;
    상기 분석에 기초하여, 상기 디바이스들의 각 제 1 세트들로부터 수신된 예측된 요청들의 세트와 연관된 타이밍 데이터를 결정하는 것; 및
    상기 타이밍 데이터에 기초하여, 상기 예측된 요청들의 세트를 프로세싱하는 서버들의 세트 중 제 1 부분, 및 상기 캘린더 데이터를 공유하지 않는 가입자들의 각 제 2 세트들과 연관된 디바이스들의 각 제 2 세트들로부터 수신된 비예측된 요청들의 세트를 프로세싱하는 상기 서버들의 세트 중 제 2 부분을 스케줄링하는 것
    을 포함하는 동작들을 수행하게 하고,
    상기 서버들의 세트 중 제 2 부분은, 상기 서버들의 세트 중 제 1 부분보다 더 빨리 상기 요청들에 응답하도록 지시되는, 컴퓨터 판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 동작들은,
    상기 예측된 요청들의 세트를 프로세싱하기 위해 상기 서버들의 세트 중 적어도 제 1 부분을 할당하는 것; 및
    상기 비예측된 요청들의 세트를 프로세싱하기 위해 상기 서버들의 세트 중 제 2 부분을 할당하는 것
    을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  23. 제 21 항에 있어서,
    상기 동작들은,
    상기 예측된 요청들의 세트를 프로세싱하는 것에 적용가능한 제 1 빌링 레이트, 및 상기 상기 비예측된 요청들의 세트를 프로세싱하는 것에 적용가능한 제 2 빌링 레이트를 할당하는 것을 더 포함하고,
    상기 제 1 빌링 레이트는 상기 제 2 빌링 레이트보다 더 낮은, 컴퓨터 판독가능 저장 매체.
  24. 제 21 항에 있어서,
    상기 스케줄링하는 것은, 상기 결정에 기초하여 상기 서버들의 세트 중 하나 이상의 서버들의 전력 모드의 변경을 용이하게 하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  25. 제 21 항에 있어서,
    상기 결정하는 것은, 상기 예측된 요청들의 세트 중 적어도 일부가 수신될 가능성이 있는 기간을 추론하는 것을 포함하는, 컴퓨터 판독가능 저장 매체.
  26. 제 21 항에 있어서,
    상기 동작들은, 주기적으로, 미리 정의된 시간에, 요구시, 또는 이벤트가 검출되었다는 결정에 응답하여 중 적어도 하나로 상기 캘린더 데이터를 수신하는 것을 더 포함하는, 컴퓨터 판독가능 저장 매체.
  27. 메모리; 및
    상기 메모리에 통신적으로 커플링되어, 적어도 하나의 컴퓨터 실행가능 컴포넌트의 실행을 용이하게 하는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 컴퓨터 실행가능 컴포넌트는 적어도,
    통신 네트워크의 네트워크 디바이스에게의 캘린더 데이터의 송신을 용이하게 하는 것으로서, 상기 캘린더 데이터는 상기 통신 네트워크 내의 서버들의 세트의 제 1 서브세트를 할당하여 통신 디바이스로부터의 요청을 프로세싱하고, 상기 서버들의 세트의 제 2 서브세트를 할당하여 상기 캘린더 데이터를 공유하지 않는 상이한 통신 디바이스로부터의 상이한 요청을 프로세싱하도록 이용되는, 상기 통신 네트워크의 네트워크 디바이스에게의 캘린더 데이터의 송신을 용이하게 하고;
    상기 캘린더 데이터의 송신에 후속하여, 상기 통신 네트워크에게 상기 요청을 지향시키는 것으로서, 상기 서버들의 세트의 제 1 서브세트는, 상기 서버들의 세트의 제 2 서브세트가 상기 상이한 요청에 응답하는 것보다 더 느린 레이트로 상기 요청에 응답하는, 상기 통신 네트워크에게 상기 요청을 지향시키는, 통신 디바이스.
  28. 제 27 항에 있어서,
    상기 적어도 하나의 프로세서는 또한, 상기 서버들의 세트의 제 1 서브세트로부터 응답을 수신하기 위한 상기 적어도 하나의 컴퓨터 실행가능 컴포넌트의 실행을 용이하게 하는, 통신 디바이스.
  29. 제 27 항에 있어서,
    상기 적어도 하나의 프로세서는 또한, 주기적으로, 미리 정의된 시간에, 요구시, 또는 이벤트가 검출되었다는 결정에 응답하여 중 적어도 하나로 상기 네트워크 디바이스에게의 상기 캘린더 데이터의 송신을 용이하게 하기 위한 상기 적어도 하나의 컴퓨터 실행가능 컴포넌트의 실행을 용이하게 하는, 통신 디바이스.
  30. 제 27 항에 있어서,
    상기 캘린더 데이터는, 상기 통신 디바이스가 상기 네트워크 디바이스에게 상기 요청을 전송할 기간을 결정하기 위해 이용되는, 통신 디바이스.
  31. 프로세서를 포함하는 시스템에 의해, 수신 이전에 캘린더 데이터를 공유한 제 1 디바이스로부터의 제 1 요청, 및 수신 이전에 캘린더 데이터를 공유하지 않는 제 2 디바이스로부터의 제 2 요청을 수신하는 것; 및
    상기 제 1 요청을 프로세싱하기 위해 네트워크 서버들의 세트의 제 1 서브세트를 결정하고 상기 제 2 요청을 프로세싱하기 위해 상기 네트워크 서버들의 세트의 제 2 서브세트를 결정하는 것
    을 포함하고,
    상기 네트워크 서버들의 세트의 제 1 서브세트는, 상기 네트워크 서버들의 세트의 제 2 서브세트보다 더 느린 레이트로 응답하도록 지시되는, 방법.
  32. 제 31 항에 있어서,
    상기 네트워크 서버들의 세트의 제 1 서브세트에게 상기 제 1 요청을 지향시키는 것을 더 포함하고,
    상기 제 1 요청은 상기 네트워크 서버들의 세트의 제 1 서브세트에 의해 프로세싱되고, 상기 제 1 요청에 대한 응답은 상기 제 1 디바이스에게 제공되는, 방법.
  33. 제 31 항에 있어서,
    주기적으로, 미리 정의된 시간에, 요구시, 또는 이벤트가 검출되었다는 결정에 응답하여 중 적어도 하나로 상기 제 1 디바이스로부터 상기 캘린더 데이터를 수신하는 것을 더 포함하는, 방법.
  34. 제 33 항에 있어서,
    상기 캘린더 데이터를 분석하는 것에 기초하여 상기 수신과 연관된 기간을 결정하는 것을 더 포함하는, 방법.
  35. 제 34 항에 있어서,
    상기 기간에 기초하여 상기 네트워크 서버들의 세트의 제 1 서브세트의 전력 관리를 용이하게 하는 것을 더 포함하는, 방법.
KR1020147029653A 2012-04-25 2012-04-25 네트워크 기반 컴퓨팅을 위한 워크로드 예측 KR101619686B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/074659 WO2013159291A1 (en) 2012-04-25 2012-04-25 Workload prediction for network-based computing

Publications (2)

Publication Number Publication Date
KR20140139048A KR20140139048A (ko) 2014-12-04
KR101619686B1 true KR101619686B1 (ko) 2016-05-10

Family

ID=49482122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147029653A KR101619686B1 (ko) 2012-04-25 2012-04-25 네트워크 기반 컴퓨팅을 위한 워크로드 예측

Country Status (3)

Country Link
US (1) US9509632B2 (ko)
KR (1) KR101619686B1 (ko)
WO (1) WO2013159291A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2184681A1 (en) * 2008-10-31 2010-05-12 HSBC Holdings plc Capacity control
US9363154B2 (en) * 2012-09-26 2016-06-07 International Business Machines Corporaion Prediction-based provisioning planning for cloud environments
US9275245B2 (en) 2013-03-15 2016-03-01 Airwatch Llc Data access sharing
US9141979B1 (en) * 2013-12-11 2015-09-22 Ca, Inc. Virtual stand-in computing service for production computing service
US10027536B2 (en) 2014-06-25 2018-07-17 Futurewei Technologies, Inc. System and method for affinity-based network configuration
US10091058B2 (en) 2014-11-10 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for model-driven, affinity-based, network functions
KR101686658B1 (ko) * 2014-12-17 2016-12-14 (주)에임투지 사용자 서비스 품질 기반 클라우드 오토 스케일링 장치 및 그 방법
US10832224B2 (en) * 2015-05-06 2020-11-10 Vmware, Inc. Calendar based management of information technology (IT) tasks
US20160344597A1 (en) * 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Effectively operating and adjusting an infrastructure for supporting distributed applications
US9996393B2 (en) 2015-11-19 2018-06-12 International Business Machines Corporation Dynamic virtual processor manager
US10636065B2 (en) 2016-03-09 2020-04-28 Western Digital Technologies, Inc. Data storage device, method and system, and control of data storage device based on writing operations and lifetime
US10652164B2 (en) 2016-04-21 2020-05-12 Oracle International Corporation Instant notification of load balance and resource scheduling based on resource capacities and event recognition
US10768997B2 (en) 2016-12-05 2020-09-08 International Business Machines Corporation Tail latency-based job offloading in load-balanced groups
US10700978B2 (en) 2016-12-05 2020-06-30 International Business Machines Corporation Offloading at a virtual switch in a load-balanced group
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
KR102108835B1 (ko) 2018-04-24 2020-05-29 주식회사 넥서스커뮤니티 예측 로드 밸런싱 방법 및 장치 그리고 예측 로드 밸런싱 방법이 수록된 컴퓨터로 읽어들일 수 있는 기록 매체
US11184247B2 (en) * 2018-06-19 2021-11-23 International Business Machines Corporation Workload management for computing cluster
US11943285B2 (en) * 2019-03-22 2024-03-26 International Business Machines Corporation Metering computing resources in cloud computing environments
US11475413B2 (en) * 2019-04-25 2022-10-18 Red Hat, Inc. Concurrent meeting and compute instance scheduling
US11068856B2 (en) * 2019-04-30 2021-07-20 International Business Machines Corporation Biometric data based scheduling
US11704617B2 (en) * 2019-06-20 2023-07-18 Stripe, Inc. Systems and methods for modeling and analysis of infrastructure services provided by cloud services provider systems
WO2021006861A1 (en) * 2019-07-05 2021-01-14 Visa International Service Association Method and system using ai call prediction and cache
US11250361B2 (en) * 2020-05-22 2022-02-15 Hitachi, Ltd. Efficient management method of storage area in hybrid cloud
US11063881B1 (en) * 2020-11-02 2021-07-13 Swarmio Inc. Methods and apparatus for network delay and distance estimation, computing resource selection, and related techniques
US12010035B2 (en) * 2022-05-12 2024-06-11 At&T Intellectual Property I, L.P. Apparatuses and methods for facilitating an identification and scheduling of resources for reduced capability devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050041580A1 (en) * 2000-11-08 2005-02-24 Yevgeniy Petrovykh Method and apparatus for anticipating and planning communicaiton-center resources based on evaluation of events waiting in a communicaiton center master queue
US20060277294A1 (en) * 2005-06-07 2006-12-07 Dimitri Kanevsky Computer management system
US20080215742A1 (en) * 2000-04-28 2008-09-04 German Goldszmidt METHOD AND APPARATUS FOR DYNAMICALLY ADJUSTING RESOURCES ASSIGNED TO PLURALITY OF CUSTOMERS, FOR MEETING SERVICE LEVEL AGREEMENTS (SLAs) WITH MINIMAL RESOURCES, AND ALLOWING COMMON POOLS OF RESOURCES TO BE USED ACROSS PLURAL CUSTOMERS ON A DEMAND BASIS

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351775B1 (en) 1997-05-30 2002-02-26 International Business Machines Corporation Loading balancing across servers in a computer network
US20040111307A1 (en) * 2002-12-04 2004-06-10 International Business Machines Corporation Electronic calendar management of privately owned resources
US8271807B2 (en) * 2008-04-21 2012-09-18 Adaptive Computing Enterprises, Inc. System and method for managing energy consumption in a compute environment
US20080184248A1 (en) * 2007-01-29 2008-07-31 Yahoo! Inc. Optimization of job scheduling for resource clusters with access control and usage reporting
US9614958B2 (en) * 2007-03-29 2017-04-04 Deutsche Telekom Ag Predictive computer network services provisioning for mobile users
US8577998B2 (en) * 2008-07-08 2013-11-05 Cisco Technology, Inc. Systems and methods of detecting non-colocated subscriber devices
US9419814B2 (en) * 2009-03-03 2016-08-16 Cisco Technology, Inc. Event / calendar based auto-start of virtual disks for desktop virtualization
US20100257015A1 (en) 2009-04-01 2010-10-07 National Information Solutions Cooperative, Inc. Graphical client interface resource and work management scheduler
US8468246B2 (en) * 2009-04-13 2013-06-18 Raytheon Company System and method for allocating resources in a distributed computing system
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US8862738B2 (en) * 2010-10-18 2014-10-14 International Business Machines Corporation Reallocating resource capacity among resource pools in a cloud computing environment
CN102004671B (zh) 2010-11-15 2013-03-13 北京航空航天大学 一种云计算环境下数据中心基于统计模型的资源管理方法
CN102104496B (zh) 2010-12-23 2013-08-14 北京航空航天大学 一种云计算环境下中间数据的容错性优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080215742A1 (en) * 2000-04-28 2008-09-04 German Goldszmidt METHOD AND APPARATUS FOR DYNAMICALLY ADJUSTING RESOURCES ASSIGNED TO PLURALITY OF CUSTOMERS, FOR MEETING SERVICE LEVEL AGREEMENTS (SLAs) WITH MINIMAL RESOURCES, AND ALLOWING COMMON POOLS OF RESOURCES TO BE USED ACROSS PLURAL CUSTOMERS ON A DEMAND BASIS
US20050041580A1 (en) * 2000-11-08 2005-02-24 Yevgeniy Petrovykh Method and apparatus for anticipating and planning communicaiton-center resources based on evaluation of events waiting in a communicaiton center master queue
US20060277294A1 (en) * 2005-06-07 2006-12-07 Dimitri Kanevsky Computer management system

Also Published As

Publication number Publication date
US20140229610A1 (en) 2014-08-14
KR20140139048A (ko) 2014-12-04
WO2013159291A1 (en) 2013-10-31
US9509632B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
KR101619686B1 (ko) 네트워크 기반 컴퓨팅을 위한 워크로드 예측
US11630704B2 (en) System and method for a workload management and scheduling module to manage access to a compute environment according to local and non-local user identity information
US11467883B2 (en) Co-allocating a reservation spanning different compute resources types
US20230108293A1 (en) Co-Allocating a Reservation Spanning Different Compute Resources Types
US9086923B2 (en) Autonomic workflow management in dynamically federated, hybrid cloud infrastructures
US7996338B2 (en) Combining predictive models of forgetting, relevance, and cost of interruption to guide automated reminding
Hashem et al. MapReduce scheduling algorithms: a review
Shao et al. Efficient jobs scheduling approach for big data applications
Alsurdeh et al. Hybrid workflow scheduling on edge cloud computing systems
Ying et al. Optimizing energy, locality and priority in a mapreduce cluster
Tan et al. A dynamic scheduling algorithm for energy harvesting embedded systems
Fargo et al. Autonomic performance-per-watt management (APM) of cloud resources and services
Lu et al. Decomposing workload bursts for efficient storage resource management
Zacheilas et al. A Pareto-based scheduler for exploring cost-performance trade-offs for MapReduce workloads
Gadre et al. Investigating MapReduce framework extensions for efficient processing of geographically scattered datasets
Saleh An efficient grid-scheduling strategy based on a fuzzy matchmaking approach
Wang et al. Deep reinforcement learning task scheduling method based on server real-time performance
Lu Workload Prediction and Resource Management for Energy Efficiency in Cloud Data Centres
Jadagerimath et al. A Study and Analysis of Energy Efficient Machine Learning Algorithm for Virtualized Sensor Cloud Infrastructure
Soosai et al. Efficient time based scheduler for implementing reservation plan in cloud
Çavdar et al. A simulation framework for priority scheduling on heterogeneous clusters
Avelar et al. Cloud-Supported Certification for Energy-Efficient Web Browsing and Services
Chantem et al. An Online Holistic Scheduling Framework for Energy-Constrained Wireless Real-Time Systems
Gosney et al. An Adaptive Middleware Framework for Optimal Scheduling on Large Scale Compute Clusters

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 4